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