📄 -
字号:
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 + -