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

📄 -

📁 VB开发的ERP系统
💻
📖 第 1 页 / 共 5 页
字号:
                Exit Function
            End If
        Else
            Tsxx = "该单据可能被其他用户删除!"
            Call Xtxxts(Tsxx, 0, 4)
            Exit Function
        End If
        Flag = Not Trim(.Fields("invoiceflag"))
    End With
    '<<]
    '审核数据判断
    strTemp = "select * from xs_V_invoiceconsign where InvoiceBillMainID = " & TempId
    Set RsTemp = Cw_DataEnvi.DataConnect.Execute(strTemp)
    With RsTemp
        Do While Not .EOF
            If Abs(.Fields("RecQuantity")) - Abs(.Fields("InvQuantity")) < Abs(.Fields("Inv_Quantity")) Then
                Tsxx = "该发票中货物 ' " & Trim(.Fields("warename")) & " ' 的开票数量太大!"
                Call Xtxxts(Tsxx, 0, 4)
                Exit Function
            End If
            .MoveNext
        Loop
    End With

    On Error GoTo ErrTemp
    Cw_DataEnvi.DataConnect.BeginTrans
        '将单据写入审核标识
        Cw_DataEnvi.DataConnect.Execute ("Update Xs_InvoiceBillMain Set Checker='" & Xtczy & "' Where InvoiceBillMainID='" & TempId) & "'"
        '回写发货单、订单
        strTemp = "select * from Xs_V_InvoiceConsign where InvoiceBillMainID = " & TempId
        Set RsTemp = Cw_DataEnvi.DataConnect.Execute(strTemp)
        With RsTemp
            If Flag Then            '现销产生回款单
                '回写发货单数据
                Cw_DataEnvi.DataConnect.Execute ("Update Xs_ConsignBillMain Set returnmoneyflag=1 Where ConsignBillMainID='" & TempId & "'")
                Cw_DataEnvi.DataConnect.Execute ("Update Xs_ConsignBillSub Set settleallflag=1,capreturnmoney=capitalwhole Where ConsignBillMainID='" & TempId & "'")
                
                BackID = CreatBillID(1408)
                BackCode = CreatBillCode(1408, True)
                CreateCode = CreatBillCode(1409, True)
                '生成回款单
                If RecTemp.State Then RecTemp.Close
                RecTemp.Open "Select * From Xs_ReturnMoney Where 1=2", Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    RecTemp.AddNew
                    RecTemp.Fields("kjyear") = Xtyear          '会计年
                    RecTemp.Fields("period") = Xtmm            '会计月
                    RecTemp.Fields("ReturnDate") = Format(Xtrq, "yyyy-mm-dd")           '回款日期
                    RecTemp.Fields("ReturnMoneyID") = BackID                          '回款ID
                    RecTemp.Fields("ReturnMoneyCode") = BackCode                        '回款单号
                    RecTemp.Fields("cusCode") = Trim(.Fields("cuscode") & "")           '客户编码
                    RecTemp.Fields("deptCode") = Trim(.Fields("deptcode") & "")         '部门编码
                    RecTemp.Fields("personCode") = Trim(.Fields("personcode") & "")     '职员编码
                    RecTemp.Fields("foreigncurrcode") = Trim(.Fields("foreigncurrcode") & "")   '币种
                    RecTemp.Fields("exchrate") = Trim(.Fields("exchrate") & "")         '汇率
                    RecTemp.Fields("ConVertFlag") = .Fields("ConVertFlag")              '折算方式
                    RecTemp.Fields("CapitalRemainMoney") = 0                            '核销剩余金额(原币)
                    RecTemp.Fields("signdate") = Format(Xtrq, "yyyy-mm-dd")             '签收日期
                    RecTemp.Fields("maker") = Trim(Xtczy & "")                          '制单人
                    RecTemp.Fields("makerdate") = Format(Xtrq, "yyyy-mm-dd")            '制单日期
                    RecTemp.Fields("checker") = Trim(Xtczy & "")                        '审核人
                    RecTemp.Fields("checkerdate") = Format(Xtrq, "yyyy-mm-dd")          '审核日期
                    RecTemp.Update
                    RecTemp.Close
                '回写回款单核销关系
                strTemp = "select * from Xs_MoneyWare where 1=2"
                RecTemp.Open strTemp, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                    RecTemp.AddNew
                    RecTemp.Fields("MoneyWareCode") = CreateCode            '标识为同次核销
                    RecTemp.Fields("kjyear") = Xtyear
                    RecTemp.Fields("period") = Xtmm
                    RecTemp.Fields("billtype") = 0
                    RecTemp.Fields("billid") = BackID                         '回款单ID
                    RecTemp.Fields("billcode") = BackCode                       '回款单号
                    RecTemp.Fields("cuscode") = Trim(.Fields("cuscode") & "")   '客户
                    RecTemp.Fields("CapitalUsedMoney") = 0                      '本币核销金额
                    RecTemp.Fields("verifier") = Xtczy
                    RecTemp.Fields("verifierdate") = Format(Xtrq, "yyyy-mm-dd")
                    RecTemp.Update
            End If
            
            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"))  '回款金额(本币)
                        RecTemp.Update
                        RecTemp.Close
                        '回款单
                        Cw_DataEnvi.DataConnect.Execute ("Update Xs_ReturnMoney set ReturnMoney=ReturnMoney+ cast('" & Quantity * Val(.Fields("TaxUnitPrice")) & "' as money),CapitalReturnMoney" & _
                                "=CapitalReturnMoney+ cast( '" & Quantity * Val(.Fields("capitalTaxUnitPrice")) & "' as money) where ReturnMoneyID = '" & BackID & "'")
                        '回款单核销关系
                        Cw_DataEnvi.DataConnect.Execute ("Update Xs_MoneyWare set CapitalUsedMoney=CapitalUsedMoney+ cast( '" & Quantity * Val(.Fields("capitalTaxUnitPrice")) & "' as money) " & _
                                " where billid = '" & BackID & "' and billtype=0")
                        '发货单核销关系
                        strTemp = "select * from Xs_MoneyWare where 1=2"
                        RecTemp.Open strTemp, Cw_DataEnvi.DataConnect, adOpenDynamic, adLockOptimistic
                            RecTemp.AddNew
                            RecTemp.Fields("MoneyWareCode") = CreateCode        '标识为同次核销
                            RecTemp.Fields("kjyear") = Xtyear
                            RecTemp.Fields("period") = Xtmm
                            RecTemp.Fields("billtype") = 1
                            RecTemp.Fields("billid") = Trim(.Fields("consignbillmainid"))       '发货单ID
                            RecTemp.Fields("billcode") = Trim(.Fields("consigncode"))           '发货单号
                            RecTemp.Fields("cuscode") = Trim(.Fields("cuscode"))                '客户
                            RecTemp.Fields("warecode") = WareCode                               '货物编码
                            RecTemp.Fields("CapitalUsedMoney") = Quantity * Val(.Fields("capitalTaxUnitPrice"))     '本币核销金额
                            RecTemp.Fields("verifier") = Xtczy
                            RecTemp.Fields("verifierdate") = Format(Xtrq, "yyyy-mm-dd")
                    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
    Cw_DataEnvi.DataConnect.CommitTrans
    
    Inv_Check = True
    Exit Function
    
ErrTemp:
    Cw_DataEnvi.DataConnect.RollbackTrans
    Tsxx = "审核时出错,数据被恢复!"
    Call Xtxxts(Tsxx, 0, 1)
End Function

Public Function Inv_UnCheck(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              '回款单号
    Dim Tsxx As String                  '系统信息提示
        
    Inv_UnCheck = 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 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
            

⌨️ 快捷键说明

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