我正在编写一个自定义应用程序,它允许我们的会计师使用 qbsdk 将付款输入我们的会计系统。具体来说,我正在使用 AppendReceivePaymentAddRq(我将在下面详细说明我的代码)。我担心的是,当使用 QB 界面通过接收付款时,付款被放入未存款资金,然后我们可以转到银行 > 存款,我们在那里看到付款。
在使用 AppendReceivePaymentAddRq 方法时,付款会被放入未存款的资金中,但是当我们转到银行 > 存款时,我们看不到付款。但是,付款确实会应用于发票。
我在 AppendReceivePaymentAddRq 中做错了吗?这是我的代码。
Dim msgSetRequest As IMsgSetRequest = Common.CreateRequest()
Dim paymentRequest As IReceivePaymentAdd = msgSetRequest.AppendReceivePaymentAddRq()
paymentRequest.CustomerRef.ListID.SetValue(Me.CustomerListId)
paymentRequest.ARAccountRef.FullName.SetValue(Me.ARAccount)
paymentRequest.TxnDate.SetValue(Me.TransactionDate)
paymentRequest.TotalAmount.SetValue(Me.TotalAmount)
paymentRequest.PaymentMethodRef.FullName.SetValue(Me.PaymentMethod)
paymentRequest.Memo.SetValue(Me.Memo)
paymentRequest.DepositToAccountRef.FullName.SetValue(Me.DepositToAccount)
paymentRequest.RefNumber.SetValue(Me.PayRef)
For Each invoice As Invoice In Me.OpenInvoices
If invoice.PaymentAmount > 0 Then
Dim appliedPayment As IAppliedToTxnAdd = paymentRequest.ORApplyPayment.AppliedToTxnAddList.Append()
appliedPayment.TxnID.SetValue(invoice.TransactionId)
appliedPayment.PaymentAmount.SetValue(invoice.PaymentAmount)
End If
Next
Dim msgSetResponse As IMsgSetResponse = Common.SessionManager.DoRequests(msgSetRequest)
Dim responseList As IResponseList = msgSetResponse.ResponseList
If responseList IsNot Nothing Then
For i As Integer = 0 To responseList.Count - 1
Dim response As IResponse = responseList.GetAt(i)
If (response.StatusCode = 0) Then
FieldManager.UpdateChildren(Me)
Else
Dim message = response.StatusMessage
Throw New ApplicationException(message)
End If
Next
End If