Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>To my understanding, a Sales Receipt does not have a separate payment line. With an Invoice you receive a Payment with lines at some later point in time, but with a Sales Receipt the payment has already taken place, so that information is captured as part of the Sales Receipt itself. The payment line that you see in the screenshot is then generated from the information stored on the Sales Receipt.</p> <p>This would also explain why Sales Receipts only allow a single payment method and why split payments are not possible - the full amount of the Sales Receipt is regarded as having been received, so only information about the payment method itself is stored.</p> <p>Take a look at the <code>PaymentMethodRef</code>, <code>CheckNumber</code>, <code>DepositToAccountRef</code> and <code>CreditCardTxnInfo</code> properties of the returned <code>ISalesReceiptRet</code>; the closest linkable documentation I could find is for <a href="https://member.developer.intuit.com/qbSDK-Current/doc/html/QBSDK%20Programmers%20Guide/18_SalesReceipt.22.2.html" rel="nofollow">adding a Sales Receipt</a>, but that should be sufficient for listing the available properties (Their <a href="http://dev.developer.intuit.com/qbSDK-current/OSR/OnscreenRef/index-QBFC.html" rel="nofollow">OSR tool</a> is prettier, but provides no way to link to a particular set of results).</p> <p>You may also find it helpful to examine <code>Interop.QBFC5Lib.dll</code> in Reflector (Or your preferred equivalent). For me, it was often faster than trying to consult the official documentation.</p> <hr> <p><strike>I'm not sure what you mean when you say you want to use the TxnLineID to mark the payment line as cleared. If you mean that the Sales Receipt is showing an open balance, then it seems that this is a <a href="http://www.sleeter.com/blog/2012/10/why-does-quickbooks-treat-sales-receipts-as-open/" rel="nofollow">known issue</a>.</strike></p> <p>Alternatively, if you want to confirm the status of the credit card transaction, you can look at the <code>ResultCode</code> and <code>ResultMessage</code> properties on <code>ISalesReceiptRet.CreditCardTxnInfo.CreditCardTxnResultInfo</code>. </p> <p>Keep in mind that there are some restrictions around modifying a Sales Receipt that has a credit card payment. From the <a href="http://developer.intuit.com/qbSDK-current/QBSDK7.0/doc/PDF/QBSDK_ProGuide.pdf" rel="nofollow">Programmer's Guide</a>:</p> <blockquote> <p>If the payment method used in the original SalesReceipt is a credit card, with the credit card transaction data provided by QBMS via the qbmsXML requests and responses, you cannot change the customer, payment method, or the total transaction amount, including any line item changes that would change the total amount of the transaction.</p> </blockquote> <hr> <p><strong>Update:</strong> In my testing, it appears that you don't need a TxnLineID when clearing a Sales Receipt. Continuing on from your code, once you've populated <code>ret</code>, the following should do what you want:</p> <pre><code>msr.ClearRequests(); IClearedStatusMod csm = msr.AppendClearedStatusModRq(); csm.TxnID.SetValue(ret.TxnID.GetValue()); // Leave TxnLineID null csm.ClearedStatus.SetValue(ENClearedStatus.csCleared); resp = sm.DoRequests(msr); // Confirm status here </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload