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

📄 -

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 3 页
字号:
                Exit Function
            End If
            If Trim(.Fields("ArBookFlag") & "") = 1 Then
                Tsxx = "该单据已被应收系统使用,不允许弃审!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
            If Trim(.Fields("InvalideMaker") & "") <> "" Then
                Tsxx = "该单据已被作废,不允许弃审!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
        Else
            Tsxx = "该单据可能被其他用户删除!"
            Call Xtxxts(Tsxx, 0, 4)
            Exit Function
        End If
        Flag = Not Trim(.Fields("invoiceflag"))
    End With
    '<<]
   
    On Error GoTo ErrTemp
    Cw_DataEnvi.DataConnect.BeginTrans
        '将单据清除审核标识
        Cw_DataEnvi.DataConnect.Execute ("Update Xs_InvoiceBillMain Set Checker='' Where InvoiceBillMainID='" & TempId) & "'"
        '回写发货单、订单
        StrTemp = "select * from Xs_V_InvoiceConsign where InvoiceBillMainID = " & TempId
        Set RsTemp = Cw_DataEnvi.DataConnect.Execute(StrTemp)
        With RsTemp
            Do While Not .EOF
                WareCode = Trim(.Fields("warecode"))
                ConsignId = Trim(.Fields("consignbillmainid"))
                Quantity = Val(.Fields("inv_quantity"))              '核销数量
                '发货单
                If RecTemp.State Then RecTemp.Close
                StrTemp = "select * from xs_consignbillsub where consignbillmainid='" & ConsignId & "' and warecode='" & WareCode & "'"
                RecTemp.Open StrTemp, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                If RecTemp.RecordCount > 0 Then
                    RecTemp.Fields("invquantity") = RecTemp.Fields("invquantity") - Quantity                '开票数量
                    RecTemp.Fields("invoiceMoney") = RecTemp.Fields("invoiceMoney") - Quantity * Val(.Fields("TaxUnitPrice"))          '总金额(原币)
                    RecTemp.Fields("CapInvoiceMoney") = RecTemp.Fields("CapInvoiceMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))      '总金额(本币)
                    If Flag Then
                        RecTemp.Fields("ReturnMoney") = RecTemp.Fields("ReturnMoney") - Quantity * Val(.Fields("TaxUnitPrice"))            '回款金额(原币)
                        RecTemp.Fields("CapReturnMoney") = RecTemp.Fields("CapReturnMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))        '回款金额(本币)
                    End If
                End If
                RecTemp.Update
                RecTemp.Close
                '订单
                StrTemp = "select orderbillmainid from xs_consignbillmain where ConsignBillMainID = " & ConsignId
                Set RecTemp = Cw_DataEnvi.DataConnect.Execute(StrTemp)
                If RecTemp.RecordCount > 0 Then
                    OrderId = Val(RecTemp.Fields("orderbillmainid") & "")       '取订单号
                    If RecTemp.State Then RecTemp.Close
                    StrTemp = "select * from xs_orderbillsub where orderbillmainid='" & OrderId & "' and warecode='" & WareCode & "'"
                    RecTemp.Open StrTemp, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    If RecTemp.RecordCount > 0 Then                             '是否有订单
                    RecTemp.Fields("invoicequantity") = RecTemp.Fields("invoicequantity") - Quantity                '开票数量
                    RecTemp.Fields("invoiceMoney") = RecTemp.Fields("invoiceMoney") - Quantity * Val(.Fields("TaxUnitPrice"))          '总金额(原币)
                    RecTemp.Fields("CapInvoiceMoney") = RecTemp.Fields("CapInvoiceMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))     '总金额(本币)
                    If Flag Then
                        RecTemp.Fields("ReturnMoney") = RecTemp.Fields("ReturnMoney") - Quantity * Val(.Fields("TaxUnitPrice"))            '回款金额(原币)
                        RecTemp.Fields("CapReturnMoney") = RecTemp.Fields("CapReturnMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))  '回款金额(本币)
                    End If
                        RecTemp.Update
                        RecTemp.Close
                    End If
                End If
                .MoveNext
            Loop
        End With
        '现销回款
        If Flag Then
            Cw_DataEnvi.DataConnect.Execute ("Update Xs_ConsignBillMain Set returnmoneyflag=0 Where ConsignBillMainID='" & TempId & "'")
            Cw_DataEnvi.DataConnect.Execute ("Update Xs_ConsignBillSub Set settleallflag=0,capreturnmoney=0 Where ConsignBillMainID='" & TempId & "'")
            
            Sqlstr = "select * from Xs_V_CM Where Cbillid='" & ConsignId & "'"
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            If RecTemp.RecordCount > 0 Then
                BackCode = Trim(RecTemp.Fields("MoneyWareCode"))
                BackID = Trim(RecTemp.Fields("Mbillid"))        '回款单ID
            End If
            Cw_DataEnvi.DataConnect.Execute ("delete Xs_ReturnMoney Where ReturnMoneyID='" & BackID & "'")
            Cw_DataEnvi.DataConnect.Execute ("delete Xs_MoneyWare Where MoneyWareCode='" & BackCode & "'")
        End If
    Cw_DataEnvi.DataConnect.CommitTrans
    Inv_UnCheck = True
    Exit Function
ErrTemp:
    Cw_DataEnvi.DataConnect.RollbackTrans
    Tsxx = "弃审时出错,数据被恢复!"
    Call Xtxxts(Tsxx, 0, 1)
End Function

Public Function Inv_Cancel(TempId As Integer) As Boolean               '发票作废
    Dim StrTemp As String
    Dim RecTemp As New ADODB.Recordset
    Dim RsTemp As New ADODB.Recordset
    Dim WareCode As String
    Dim OrderId As Integer
    Dim ConsignId As Integer
    Dim Flag As Boolean                 '是否现销
    Dim Quantity As Double              '核销数量
    Dim BackID As Integer               '回款ID
    Dim BackCode As String              '回款单号
    
    Inv_Cancel = False
    
    StrTemp = "Select Checker,AccountOpt,ArBookFlag,InvalideMaker,invoiceflag From Xs_InvoiceBillMain Where InvoiceBillMainID=" & TempId
    Set RecTemp = Cw_DataEnvi.DataConnect.Execute(StrTemp)
    With RecTemp
        If Not .EOF Then
            If Trim(.Fields("Checker") & "") = "" Then
                Tsxx = "该单据未审核,不允许作废!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
            If Trim(.Fields("AccountOpt") & "") <> "" Then
                Tsxx = "该单据已经结帐,不允许作废!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
            If Trim(.Fields("ArBookFlag") & "") = 1 Then
                Tsxx = "该单据已被应收系统使用,不允许作废!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
            If Trim(.Fields("InvalideMaker") & "") <> "" Then
                Tsxx = "该单据已被作废,不允许再作废!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
        Else
            Tsxx = "该单据可能被其他用户删除!"
            Call Xtxxts(Tsxx, 0, 4)
            Exit Function
        End If
        Flag = Not Trim(.Fields("invoiceflag"))
    End With
    '<<]
   
    On Error GoTo ErrTemp
    Cw_DataEnvi.DataConnect.BeginTrans
        '清除作废标识
        Cw_DataEnvi.DataConnect.Execute ("Update Xs_InvoiceBillMain Set InvalideMaker='" & Xtczy & "' Where InvoiceBillMainID='" & TempId) & "'"
        '回写发货单、订单
        StrTemp = "select * from Xs_V_InvoiceConsign where InvoiceBillMainID = " & TempId
        Set RsTemp = Cw_DataEnvi.DataConnect.Execute(StrTemp)
        With RsTemp
            Do While Not .EOF
                WareCode = Trim(.Fields("warecode"))
                ConsignId = Trim(.Fields("consignbillmainid"))
                Quantity = Val(.Fields("inv_quantity"))              '核销数量
                '发货单
                If RecTemp.State Then RecTemp.Close
                StrTemp = "select * from xs_consignbillsub where consignbillmainid='" & ConsignId & "' and warecode='" & WareCode & "'"
                RecTemp.Open StrTemp, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                If RecTemp.RecordCount > 0 Then
                    RecTemp.Fields("invquantity") = RecTemp.Fields("invquantity") - Quantity                '开票数量
                    RecTemp.Fields("invoiceMoney") = RecTemp.Fields("invoiceMoney") - Quantity * Val(.Fields("TaxUnitPrice"))          '总金额(原币)
                    RecTemp.Fields("CapInvoiceMoney") = RecTemp.Fields("CapInvoiceMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))      '总金额(本币)
                    If Flag Then
                        RecTemp.Fields("ReturnMoney") = RecTemp.Fields("ReturnMoney") - Quantity * Val(.Fields("TaxUnitPrice"))            '回款金额(原币)
                        RecTemp.Fields("CapReturnMoney") = RecTemp.Fields("CapReturnMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))        '回款金额(本币)
                    End If
                End If
                RecTemp.Update
                RecTemp.Close
                '订单
                StrTemp = "select orderbillmainid from xs_consignbillmain where ConsignBillMainID = " & ConsignId
                Set RecTemp = Cw_DataEnvi.DataConnect.Execute(StrTemp)
                If RecTemp.RecordCount > 0 Then
                    OrderId = Val(RecTemp.Fields("orderbillmainid") & "")       '取订单号
                    If RecTemp.State Then RecTemp.Close
                    StrTemp = "select * from xs_orderbillsub where orderbillmainid='" & OrderId & "' and warecode='" & WareCode & "'"
                    RecTemp.Open StrTemp, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    If RecTemp.RecordCount > 0 Then                             '是否有订单
                    RecTemp.Fields("invoicequantity") = RecTemp.Fields("invoicequantity") - Quantity                '开票数量
                    RecTemp.Fields("invoiceMoney") = RecTemp.Fields("invoiceMoney") - Quantity * Val(.Fields("TaxUnitPrice"))          '总金额(原币)
                    RecTemp.Fields("CapInvoiceMoney") = RecTemp.Fields("CapInvoiceMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))     '总金额(本币)
                    If Flag Then
                        RecTemp.Fields("ReturnMoney") = RecTemp.Fields("ReturnMoney") - Quantity * Val(.Fields("TaxUnitPrice"))            '回款金额(原币)
                        RecTemp.Fields("CapReturnMoney") = RecTemp.Fields("CapReturnMoney") - Quantity * Val(.Fields("capitalTaxUnitPrice"))  '回款金额(本币)
                    End If
                        RecTemp.Update
                        RecTemp.Close
                    End If
                End If
                .MoveNext
            Loop
        End With
        '现销回款
        If Flag Then
            Cw_DataEnvi.DataConnect.Execute ("Update Xs_ConsignBillMain Set returnmoneyflag=0 Where ConsignBillMainID='" & TempId & "'")
            Cw_DataEnvi.DataConnect.Execute ("Update Xs_ConsignBillSub Set settleallflag=0,capreturnmoney=0 Where ConsignBillMainID='" & TempId & "'")
            
            Sqlstr = "select * from Xs_V_CM Where Cbillid='" & ConsignId & "'"
            Set RecTemp = Cw_DataEnvi.DataConnect.Execute(Sqlstr)
            If RecTemp.RecordCount > 0 Then
                BackCode = Trim(RecTemp.Fields("MoneyWareCode"))
                BackID = Trim(RecTemp.Fields("Mbillid"))        '回款单ID
            End If
            Cw_DataEnvi.DataConnect.Execute ("delete Xs_ReturnMoney Where ReturnMoneyID='" & BackID & "'")
            Cw_DataEnvi.DataConnect.Execute ("delete Xs_MoneyWare Where MoneyWareCode='" & BackCode & "'")
        End If
    Cw_DataEnvi.DataConnect.CommitTrans
    Inv_Cancel = True                   '作废成功
    Exit Function
ErrTemp:
    Cw_DataEnvi.DataConnect.RollbackTrans
    Tsxx = "作废时出错,数据被恢复!"
    Call Xtxxts(Tsxx, 0, 1)
End Function

⌨️ 快捷键说明

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