⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clssales.cls

📁 金算盘软件代码
💻 CLS
📖 第 1 页 / 共 4 页
字号:
                    dblTempPrice = recTemp_1(0)
                    Set recTemp_1 = Nothing
'                    .rdoColumns(3) = lngTempID
'                    .rdoColumns(6) = dblTempPrice      '最近销售价
                    strSQL = "UPDATE Item SET"
                    strSQL = strSQL & " lngRecentSaleReceiptDetailID=" & lngTempID & " , dblRecenetSalePrice=" & dblTempPrice
                    strSQL = strSQL & " WHERE lngItemID=" & !ModifyID
                    If gclsBase.ExecSQL(strSQL) = False Then
                        GoTo TheErr
                    End If
                End If
'                .Update
            End If

            If .rdoColumns(0) = .rdoColumns(4) Then '当前ID是最高销售价格单据子表ID
                strSQL = "SELECT Max(ItemActivityDetail.dblCurrPrice) AS 表达式1" _
                       & " FROM ItemActivity , ItemActivityDetail WHERE ItemActivity.lngActivityID = ItemActivityDetail.lngActivityID" _
                       & " AND (((ItemActivity.lngActivityTypeID)=11) AND ((ItemActivityDetail.lngItemID)=" & lngItemID & ") AND ((ItemActivityDetail.lngActivityDetailID)<>" & lngActivityDetailID & "))"
                Set recTemp_1 = gclsBase.BaseDB.OpenResultset(strSQL, rdOpenStatic)
'                .Edit
                If (recTemp_1.BOF And recTemp_1.EOF) Or (IsNull(recTemp_1(0))) Then
'                    .rdoColumns(4) = 0
'                    .rdoColumns(7) = 0
                    strSQL = "UPDATE Item SET"
                    strSQL = strSQL & " lngMaxSalePriceReceiptDetailID=0 , dblMaxSalePrice=0 "
                    strSQL = strSQL & " WHERE lngItemID=" & !ModifyID
                    If gclsBase.ExecSQL(strSQL) = False Then
                        GoTo TheErr
                    End If
                Else
                    dblCurrPrice_Temp = recTemp_1(0)
                    Set recTemp_1 = Nothing
                    strSQL = "SELECT ItemActivityDetail.lngActivityDetailID " _
                           & " FROM ItemActivity , ItemActivityDetail WHERE ItemActivity.lngActivityID = ItemActivityDetail.lngActivityID " _
                           & " AND (((ItemActivityDetail.dblCurrPrice)=" & dblCurrPrice_Temp & ") AND ((ItemActivity.lngActivityTypeID)=11) AND ((ItemActivityDetail.lngItemID)=" & lngItemID & "))"
                    Set recTemp_1 = gclsBase.BaseDB.OpenResultset(strSQL, rdOpenStatic)
                    If recTemp_1.BOF And recTemp.EOF Then Exit Function
                    
'                    .rdoColumns(4) = recTemp_1(0)
'                    .rdoColumns(7) = dblCurrPrice_Temp
                    strSQL = "UPDATE Item SET"
                    strSQL = strSQL & " lngMaxSalePriceReceiptDetailID=" & recTemp_1(0) & " , dblMaxSalePrice=" & dblCurrPrice_Temp
                    strSQL = strSQL & " WHERE lngItemID=" & !ModifyID
                    Set recTemp_1 = Nothing
                    If gclsBase.ExecSQL(strSQL) = False Then
                        GoTo TheErr
                    End If
                End If
'                .Update
            End If
            '3)
            If .rdoColumns(0) = .rdoColumns(5) Then '当前ID是最低销售价格单据子表ID
                strSQL = "SELECT Min(ItemActivityDetail.dblCurrPrice) AS 表达式1" _
                       & " FROM ItemActivity, ItemActivityDetail WHERE ItemActivity.lngActivityID = ItemActivityDetail.lngActivityID" _
                       & " AND (((ItemActivity.lngActivityTypeID)=11) AND ((ItemActivityDetail.lngItemID)=" & lngItemID & ") AND ((ItemActivityDetail.lngActivityDetailID)<>" & lngActivityDetailID & "))"
                Set recTemp_1 = gclsBase.BaseDB.OpenResultset(strSQL, rdOpenStatic)
'                .Edit
                If (recTemp_1.BOF And recTemp_1.EOF) Or (IsNull(recTemp_1(0))) Then
'                    .rdoColumns(5) = 0
'                    .rdoColumns(8) = 0
                    strSQL = "UPDATE Item SET"
                    strSQL = strSQL & " lngMinSalePriceReceiptDetailID=0 , dblMinSalePrice=0 "
                    strSQL = strSQL & " WHERE lngItemID=" & !ModifyID
                    If gclsBase.ExecSQL(strSQL) = False Then
                        GoTo TheErr
                    End If
                Else
                   dblCurrPrice_Temp = recTemp_1(0)
                    Set recTemp_1 = Nothing
                    strSQL = "SELECT ItemActivityDetail.lngActivityDetailID " _
                           & " FROM ItemActivity,ItemActivityDetail WHERE ItemActivity.lngActivityID = ItemActivityDetail.lngActivityID " _
                           & " AND (((ItemActivityDetail.dblCurrPrice)=" & dblCurrPrice_Temp & ") AND ((ItemActivity.lngActivityTypeID)=11) AND ((ItemActivityDetail.lngItemID)=" & lngItemID & "))"
                    Set recTemp_1 = gclsBase.BaseDB.OpenResultset(strSQL, rdOpenStatic)
                    If recTemp_1.BOF And recTemp.EOF Then Exit Function
                    
'                    .rdoColumns(5) = recTemp_1(0)
'                    .rdoColumns(8) = dblCurrPrice_Temp
                    strSQL = "UPDATE Item SET"
                    strSQL = strSQL & " lngMinSalePriceReceiptDetailID=" & recTemp_1(0) & " , dblMinSalePrice=" & dblCurrPrice_Temp
                    strSQL = strSQL & " WHERE lngItemID=" & !ModifyID
                    Set recTemp_1 = Nothing
                    If gclsBase.ExecSQL(strSQL) = False Then
                        GoTo TheErr
                    End If
                End If
'                .Update
            End If
            
            .MoveNext
        Loop
    End With

    If Not recTemp Is Nothing Then
        Set recTemp = Nothing
    End If
    If Not recTemp_1 Is Nothing Then
        Set recTemp_1 = Nothing
    End If
    ChangeItemInfo = 1
    Exit Function
TheErr:
    If Not recTemp Is Nothing Then
        Set recTemp = Nothing
    End If
    If Not recTemp_1 Is Nothing Then
        Set recTemp_1 = Nothing
    End If
    ChangeItemInfo = -1
End Function

'商品成本资料明细
'商品性质表中存在:成本方法
Private Function DeleteItemCostDetail() As Integer
    Dim strSQL As String
'    Dim recTmp As rdoResultset
    strSQL = "DELETE FROM ItemCostDetail WHERE ItemCostDetail.lngOutActivityDetailID IN " & _
        " (SELECT ItemActivityDetail.lngActivityDetailID FROM ItemActivityDetail " & _
        " WHERE ItemActivityDetail.lngActivityID=" & lngActivityID & ")"
    If gclsBase.ExecSQL(strSQL) = False Then DeleteItemCostDetail = -1

    DeleteItemCostDetail = 1
    
'   strSql = "SELECT ItemCostDetail.lngItemID,ItemCostDetail.lngInActivityDetailID," _
'          & " ItemCostDetail.lngOutActivityDetailID,ItemCostDetail.dblQuantity,ItemCostDetail.dblAmount " _
'          & " FROM ItemCostDetail,ItemActivityDetail WHERE ItemCostDetail.lngOutActivityDetailID = ItemActivityDetail.lngActivityDetailID " _
'          & " AND (((ItemActivityDetail.lngActivityID)=" & lngActivityID & "))"
'   Set recTmp = gclsBase.BaseDB.OpenResultset(strSql, rdOpenStatic)
'   Do While Not recTmp.EOF
'      strSql = "DELETE ItemCostDetail WHERE lngItemID=" & recTmp(0) & " AND lngInActivityDetailID=" & recTmp(1) _
'         & " AND lngOutActivityDetailID=" & recTmp(2) & " AND dblQuantity=" & recTmp(3) & " AND dblAmount=" & recTmp(4)
'      If gclsBase.ExecSQL(strSql) = False Then
'         recTmp.Close
'         Set recTmp = Nothing
'         DeleteItemCostDetail = -1
'         Exit Do
'      End If
'      recTmp.MoveNext
'   Loop
'   recTmp.Close
'   Set recTmp = Nothing
End Function

'//////////////////////////////////////结束:对照表处理////////////////////////////////////////////////////






'////////////////////////////////////////////////////////////////////////////////
'//
'//                                 删除列表记录
'//
'////////////////////////////////////////////////////////////////////////////////
'<接口>
'blnByVoid:删除功能由作废调用
Public Function DeleteSales(arglngActivityID As Long, Optional blnByVoid As Boolean, Optional ByVal blnWriteOffBill As Boolean = False, Optional ByRef blnIsWriteOff As Boolean = False, Optional blnAlert As Boolean = True, Optional ByVal blnNoTrans As Boolean = False) As Boolean
    Dim strSQL As String
    Dim recTemp As rdoResultset
    Dim intResult As Integer
    '-----------------------------------------
    Dim intYear As Integer '凭证会计年度
    Dim bytPeriod As Byte   '凭证会计期间
    Dim lngReceiptTypeID As Long
    Dim strReceiptNo As String
    Dim lngReceiptNo As Long
    '------------------------------------------
    lngActivityID = arglngActivityID
    If blnByVoid Then
        strDelOrVoid = "作废!"
    Else
        strDelOrVoid = "删除!"
    End If
    
    strSQL = "SELECT ItemActivity.lngActivityTypeID, ItemActivity.blnIsVoid, Decode(ItemActivity.lngActivityTypeID,11,'商品销售',12,'直运销售',13,'委托出库',14,'委托结算',15,'加工出库',16,'分期出库',17,'分期结算',18,'销售发票',19,'领用出库',20,'成本调整',21,'盘亏出库',22,'其他出库')AS 销售类型 ,ItemActivity.* From ItemActivity WHERE (ItemActivity.lngActivityID)=" & lngActivityID
    Set recTemp = gclsBase.BaseDB.OpenResultset(strSQL, rdOpenStatic)
    If recTemp.BOF And recTemp.EOF Then
        cMsgBox "此单据已被删除!"
        Set recTemp = Nothing
        Exit Function
    End If
    lngActivityTypeID = recTemp(0)
    strBillNO = ID2String(lngActivityTypeID + 1, lngActivityID) & "号"
    blnIsVoid = (recTemp(1) <> 0)
    blnIsPrinted = (recTemp!blnIsPrinted <> 0)
    mblnIsCash = (recTemp!blnIsCash <> 0)
    #If conVersionType = 16 Then
        '财务版
        strTypeName = "销售发票"
    #Else
        strTypeName = recTemp(2)
    #End If
    '-------------------------------------------------------------------
    intYear = gclsBase.FYearOfDate(C2Date(recTemp!strDate))
    bytPeriod = gclsBase.PeriodOfDate(C2Date(recTemp!strDate))
    lngReceiptTypeID = recTemp!lngReceiptTypeID
    strReceiptNo = recTemp!strReceiptNo
    lngReceiptNo = recTemp!lngReceiptNo
    blnIsInvoice = (recTemp!blnIsInvoice <> 0) Or (recTemp!lngReceiptTypeID = 20)
    '--------------------------------------------------------------------
    
    Set recTemp = Nothing
   blnNoAlert = False
   If blnAlert = True Then
       If BeforeDelete(blnByVoid, , , , blnWriteOffBill) <> 1 Then Exit Function  '判断单据能否删除
   End If
    
    If blnNoAlert = False Then
      If Not blnWriteOffBill Then
          If Not blnByVoid And blnAlert Then ' 非作废操作调用无须删除提问
              If blnIsVoid = False Then
                  If ShowMsg(thehWnd, "您确实要删除" & strBillNO & strTypeName & "单据吗?", MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "提示信息") <> IDYES Then Exit Function
              Else
                  If ShowMsg(thehWnd, "您确实要删除" & strBillNO & "已经作废的" & strTypeName & "单据吗?", MB_YESNO + MB_ICONQUESTION + MB_DEFBUTTON2 + MB_SYSTEMMODAL, "提示信息") <> IDYES Then Exit Function
              End If
          End If
      End If
   End If
'    '删除作废单据无须判断
'    If Not blnIsVoid Then
'        If blnAlert = True Then
'            If BeforeDelete(blnByVoid, , , , blnWriteOffBill) <> 1 Then Exit Function  '判断单据能否删除
'        End If
'    End If
    
    On Error GoTo DeleteErr
    
    Dim i As Long
    If Not blnNoTrans Then
        gclsBase.BaseWorkSpace.BeginTrans
    End If
    If Not blnWriteOffBill Then
'        gclsBase.BaseWorkSpace.BeginTrans
        For i = LBound(lngWriteOffID) To UBound(lngWriteOffID)
            If lngWriteOffID(i) <> 0 Then
                Dim clsTmp As clsSales
                Set clsTmp = New clsSales
                clsTmp.SethWnd thehWnd
                If clsTmp.DeleteSales(lngWriteOffID(i), False, True) = False Then
                    If Not blnNoTrans Then
                        gclsBase.BaseWorkSpace.RollBacktrans
                    End If
'                    gclsBase.BaseWorkSpace.rollbacktrans
                    blnIsWriteOff = False
                    DeleteSales = False
                    Set clsTmp = Nothing

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -