Update
1 min
The following is an example of update Sales Receipt. The QuickBooks Invoice Id (id) is required to update the Invoice (See Sales Receipt for the available fields).
Note: You can only update one record at a time.
- When you want to update specific fields of an entity without affecting others, use a sparse update operation by setting sparse= 'true' in your request. This approach is more efficient and less prone to unintended changes than a full update.
// Create a Map to store all the data of a Sales REeceipt
List<Object> salesReceiptList = new List<Object>();
Map<String, Object> salesReceiptMap = new Map<String, Object>();
salesReceiptMap.put('Id', '159');
salesReceiptMap.put('SyncToken','0');
salesReceiptMap.put('CustomerRef',new Map<String, Object>{'value' => '9'});
// Initializing the Sales Receipt Line Items
List<Object> lineItemList = new List<Object>();
Map<String, Object> lineItemMap = new Map<String, Object>();
lineItemMap.put('LineNum',1);
lineItemMap.put('Amount',100);
lineItemMap.put('Description','Description Updated');
lineItemMap.put('DetailType', 'SalesItemLineDetail');
Map<String, Object> salesLineItemDetailMap = new Map<String, Object>();
salesLineItemDetailMap.put('Qty',2);
salesLineItemDetailMap.put('UnitPrice',50);
salesLineItemDetailMap.put('TaxCodeRef' , new Map<String, Object>{'value' => 'TAX'});
lineItemMap.put('SalesItemLineDetail', salesLineItemDetailMap);
lineItemList.add(lineItemMap);
// Adding the Line Items to Sales Receipt
salesReceiptMap.put('Line',lineItemList);
salesReceiptList.add(salesReceiptMap);
// Initializing the RequestJSON Data to be passed.
Map<String, Object> reqJSONMap = new Map<String, Object>();
reqJSONMap.put('salesReceipts' , salesReceiptList);
String reqJSON = JSON.serialize(reqJSONMap);
Map<String, Object> finalReqMap = new Map<String, Object>();
Map<String, Object> reqOptions = new Map<String, Object>();
finalReqMap.put('options' , reqOptions);
finalReqMap.put('version' , '1.0');
finalReqMap.put('action' , 'updateSalesReceipt');
finalReqMap.put('RequestJSON' , reqJSON);
finalReqMap.put('skipDML' , false);
//Required, if QuickBooks Multi-Org is enabled in Breadwinner.
finalReqMap.put('qbOrgId', '4620816365285051610');
System.debug('Request ::: ' + finalReqMap);
// Placing a request to Breadwinner Global API
Map<String, Object> respMap = breadwinner_qbo.BreadwinnerQBAPI.call(finalReqMap);
System.debug('Response ::: ' + respMap);