Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(SQL Server) Quickbooks Send an InvoiceDemonstrates how to send an invoice using the Quickbooks REST API. For more information, see https://www.developer.intuit.com/app/developer/qbo/docs/api/accounting/most-commonly-used/invoice#send-an-invoice
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int DECLARE @iTmp0 int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- This example requires the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. -- First get our previously obtained OAuth2 access token. DECLARE @jsonToken int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonToken OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @jsonToken, 'LoadFile', @success OUT, 'qa_data/tokens/qb-access-token.json' DECLARE @rest int -- Use "Chilkat_9_5_0.Rest" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Rest', @rest OUT -- Connect to the REST server. DECLARE @bTls int SELECT @bTls = 1 DECLARE @port int SELECT @port = 443 DECLARE @bAutoReconnect int SELECT @bAutoReconnect = 1 DECLARE @success int EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'sandbox-quickbooks.api.intuit.com', @port, @bTls, @bAutoReconnect DECLARE @sbAuth int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbAuth OUT EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, 'Bearer ' EXEC sp_OAMethod @jsonToken, 'StringOf', @sTmp0 OUT, 'access_token' EXEC sp_OAMethod @sbAuth, 'Append', @success OUT, @sTmp0 EXEC sp_OAMethod @sbAuth, 'GetAsString', @sTmp0 OUT EXEC sp_OASetProperty @rest, 'Authorization', @sTmp0 -- -------------------------------------------------------------------------- -- Note: The above code to setup the initial REST connection -- can be done once. After connecting, any number of REST calls can be made. -- If the connection is lost, the next REST method call will automatically -- reconnect if needed. -- -------------------------------------------------------------------------- -- Technically, the POST has an empty request body, but the Quickbooks documentation indicates that -- the Content-Type header should be set to "application/octet-stream", which really makes no sense -- because there is not content. (How can no content have a type???) EXEC sp_OAMethod @rest, 'AddHeader', @success OUT, 'Content-Type', 'application/octet-stream' EXEC sp_OASetProperty @rest, 'AllowHeaderFolding', 0 DECLARE @sbResponseBody int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponseBody OUT EXEC sp_OAMethod @rest, 'FullRequestNoBodySb', @success OUT, 'POST', '/v3/company/<realmID>/invoice/<invoiceId>/send?sendTo=<emailAddr>', @sbResponseBody IF @success <> 1 BEGIN EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @jsonToken EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @sbAuth EXEC @hr = sp_OADestroy @sbResponseBody RETURN END DECLARE @respStatusCode int EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @respStatusCode OUT -- Success is indicated by a 200 response status code. PRINT 'response status code = ' + @respStatusCode DECLARE @jsonResponse int -- Use "Chilkat_9_5_0.JsonObject" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @jsonResponse OUT EXEC sp_OAMethod @jsonResponse, 'LoadSb', @success OUT, @sbResponseBody EXEC sp_OASetProperty @jsonResponse, 'EmitCompact', 0 EXEC sp_OAMethod @jsonResponse, 'Emit', @sTmp0 OUT PRINT @sTmp0 EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT IF @iTmp0 <> 200 BEGIN PRINT 'Failed.' EXEC @hr = sp_OADestroy @jsonToken EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @sbAuth EXEC @hr = sp_OADestroy @sbResponseBody EXEC @hr = sp_OADestroy @jsonResponse RETURN END -- Sample output... -- (See the parsing code below..) -- -- Use the this online tool to generate parsing code from sample JSON: -- Generate Parsing Code from JSON -- { -- "Invoice": { -- "TxnDate": "2013-03-14", -- "domain": "QBO", -- "CurrencyRef": { -- "name": "United States Dollar", -- "value": "USD" -- }, -- "ShipDate": "2013-03-01", -- "TrackingNum": "123456789", -- "ClassRef": { -- "name": "Class 1", -- "value": "200900000000000003901" -- }, -- "PrintStatus": "NeedToPrint", -- "SalesTermRef": { -- "value": "4" -- }, -- "DeliveryInfo": { -- "DeliveryType": "Email", -- "DeliveryTime": "2014-12-17T11:50:52-08:00" -- }, -- "TotalAmt": 52.0, -- "Line": [ -- { -- "Description": "Sample invoice create request", -- "DetailType": "SalesItemLineDetail", -- "SalesItemLineDetail": { -- "TaxCodeRef": { -- "value": "TAX" -- }, -- "Qty": 1, -- "UnitPrice": 50, -- "ServiceDate": "2013-03-04", -- "ItemRef": { -- "name": "Hours", -- "value": "2" -- } -- }, -- "LineNum": 1, -- "Amount": 50.0, -- "Id": "1" -- }, -- { -- "DetailType": "SubTotalLineDetail", -- "Amount": 50.0, -- "SubTotalLineDetail": {} -- }, -- { -- "DetailType": "DiscountLineDetail", -- "Amount": 5.0, -- "DiscountLineDetail": { -- "DiscountAccountRef": { -- "name": "Discounts given", -- "value": "30" -- }, -- "PercentBased": true, -- "DiscountPercent": 10 -- } -- }, -- { -- "DetailType": "SalesItemLineDetail", -- "Amount": 2.0, -- "SalesItemLineDetail": { -- "ItemRef": { -- "value": "SHIPPING_ITEM_ID" -- } -- } -- } -- ], -- "DueDate": "2013-05-13", -- "MetaData": { -- "CreateTime": "2013-03-14T01:42:16-07:00", -- "LastUpdatedTime": "2014-12-17T11:50:58-08:00" -- }, -- "DocNumber": "Sample_Inv#2", -- "PrivateNote": "Summary for sample invoice", -- "sparse": false, -- "DepositToAccountRef": { -- "name": "Undeposited Funds", -- "value": "4" -- }, -- "CustomerMemo": { -- "value": "This is the customer message" -- }, -- "EmailStatus": "EmailSent", -- "Deposit": 12.0, -- "Balance": 40.0, -- "CustomerRef": { -- "name": "Mr V3 Service Customer Jr2", -- "value": "15" -- }, -- "TxnTaxDetail": { -- "TxnTaxCodeRef": { -- "value": "5" -- }, -- "TotalTax": 5.0, -- "TaxLine": [ -- { -- "DetailType": "TaxLineDetail", -- "Amount": 5.0, -- "TaxLineDetail": { -- "NetAmountTaxable": 50.0, -- "TaxPercent": 10, -- "TaxRateRef": { -- "value": "2" -- }, -- "PercentBased": true -- } -- } -- ] -- }, -- "SyncToken": "0", -- "BillEmail": { -- "Address": "test@intuit.com" -- }, -- "ShipAddr": { -- "City": "San Jose", -- "Country": "USA", -- "Line5": "Cube 999", -- "Line4": "Dept 12", -- "Line3": "123 street", -- "Line2": "Building 1", -- "Line1": "Intuit", -- "PostalCode": "95123", -- "Lat": "37.2374847", -- "Long": "-121.8277925", -- "CountrySubDivisionCode": "CA", -- "Id": "36" -- }, -- "DepartmentRef": { -- "name": "Mountain View", -- "value": "1" -- }, -- "ShipMethodRef": { -- "name": "UPS", -- "value": "UPS" -- }, -- "BillAddr": { -- "City": "Mountain View", -- "Country": "USA", -- "Line5": "Cube 999", -- "Line4": "Dept 12", -- "Line3": "123 street", -- "Line2": "Building 1", -- "Line1": "Google", -- "PostalCode": "95123", -- "Lat": "37.2374847", -- "Long": "-121.8277925", -- "CountrySubDivisionCode": "CA", -- "Id": "35" -- }, -- "ApplyTaxAfterDiscount": false, -- "CustomField": [ -- { -- "StringValue": "Custom1", -- "Type": "StringType", -- "Name": "Custom 1" -- }, -- { -- "StringValue": "Custom2", -- "Type": "StringType", -- "Name": "Custom 2" -- }, -- { -- "StringValue": "Custom3", -- "Type": "StringType", -- "Name": "Custom 3" -- } -- ], -- "Id": "96" -- }, -- "time": "2013-03-14T13:32:04.895-07:00" -- } -- DECLARE @Description nvarchar(4000) DECLARE @DetailType nvarchar(4000) DECLARE @SalesItemLineDetailTaxCodeRefValue nvarchar(4000) DECLARE @SalesItemLineDetailQty int DECLARE @SalesItemLineDetailUnitPrice int DECLARE @SalesItemLineDetailServiceDate nvarchar(4000) DECLARE @SalesItemLineDetailItemRefName nvarchar(4000) DECLARE @SalesItemLineDetailItemRefValue nvarchar(4000) DECLARE @LineNum int DECLARE @Amount nvarchar(4000) DECLARE @Id nvarchar(4000) DECLARE @DiscountLineDetailDiscountAccountRefName nvarchar(4000) DECLARE @DiscountLineDetailDiscountAccountRefValue nvarchar(4000) DECLARE @DiscountLineDetailPercentBased int DECLARE @DiscountLineDetailDiscountPercent int DECLARE @TaxLineDetailNetAmountTaxable nvarchar(4000) DECLARE @TaxLineDetailTaxPercent int DECLARE @TaxLineDetailTaxRateRefValue nvarchar(4000) DECLARE @TaxLineDetailPercentBased int DECLARE @StringValue nvarchar(4000) DECLARE @Type nvarchar(4000) DECLARE @Name nvarchar(4000) DECLARE @InvoiceTxnDate nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceTxnDate OUT, 'Invoice.TxnDate' DECLARE @InvoiceDomain nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDomain OUT, 'Invoice.domain' DECLARE @InvoiceCurrencyRefName nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceCurrencyRefName OUT, 'Invoice.CurrencyRef.name' DECLARE @InvoiceCurrencyRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceCurrencyRefValue OUT, 'Invoice.CurrencyRef.value' DECLARE @InvoiceShipDate nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipDate OUT, 'Invoice.ShipDate' DECLARE @InvoiceTrackingNum nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceTrackingNum OUT, 'Invoice.TrackingNum' DECLARE @InvoiceClassRefName nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceClassRefName OUT, 'Invoice.ClassRef.name' DECLARE @InvoiceClassRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceClassRefValue OUT, 'Invoice.ClassRef.value' DECLARE @InvoicePrintStatus nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoicePrintStatus OUT, 'Invoice.PrintStatus' DECLARE @InvoiceSalesTermRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceSalesTermRefValue OUT, 'Invoice.SalesTermRef.value' DECLARE @InvoiceDeliveryInfoDeliveryType nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDeliveryInfoDeliveryType OUT, 'Invoice.DeliveryInfo.DeliveryType' DECLARE @InvoiceDeliveryInfoDeliveryTime nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDeliveryInfoDeliveryTime OUT, 'Invoice.DeliveryInfo.DeliveryTime' DECLARE @InvoiceTotalAmt nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceTotalAmt OUT, 'Invoice.TotalAmt' DECLARE @InvoiceDueDate nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDueDate OUT, 'Invoice.DueDate' DECLARE @InvoiceMetaDataCreateTime nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceMetaDataCreateTime OUT, 'Invoice.MetaData.CreateTime' DECLARE @InvoiceMetaDataLastUpdatedTime nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceMetaDataLastUpdatedTime OUT, 'Invoice.MetaData.LastUpdatedTime' DECLARE @InvoiceDocNumber nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDocNumber OUT, 'Invoice.DocNumber' DECLARE @InvoicePrivateNote nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoicePrivateNote OUT, 'Invoice.PrivateNote' DECLARE @InvoiceSparse int EXEC sp_OAMethod @jsonResponse, 'BoolOf', @InvoiceSparse OUT, 'Invoice.sparse' DECLARE @InvoiceDepositToAccountRefName nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDepositToAccountRefName OUT, 'Invoice.DepositToAccountRef.name' DECLARE @InvoiceDepositToAccountRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDepositToAccountRefValue OUT, 'Invoice.DepositToAccountRef.value' DECLARE @InvoiceCustomerMemoValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceCustomerMemoValue OUT, 'Invoice.CustomerMemo.value' DECLARE @InvoiceEmailStatus nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceEmailStatus OUT, 'Invoice.EmailStatus' DECLARE @InvoiceDeposit nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDeposit OUT, 'Invoice.Deposit' DECLARE @InvoiceBalance nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBalance OUT, 'Invoice.Balance' DECLARE @InvoiceCustomerRefName nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceCustomerRefName OUT, 'Invoice.CustomerRef.name' DECLARE @InvoiceCustomerRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceCustomerRefValue OUT, 'Invoice.CustomerRef.value' DECLARE @InvoiceTxnTaxDetailTxnTaxCodeRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceTxnTaxDetailTxnTaxCodeRefValue OUT, 'Invoice.TxnTaxDetail.TxnTaxCodeRef.value' DECLARE @InvoiceTxnTaxDetailTotalTax nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceTxnTaxDetailTotalTax OUT, 'Invoice.TxnTaxDetail.TotalTax' DECLARE @InvoiceSyncToken nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceSyncToken OUT, 'Invoice.SyncToken' DECLARE @InvoiceBillEmailAddress nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillEmailAddress OUT, 'Invoice.BillEmail.Address' DECLARE @InvoiceShipAddrCity nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrCity OUT, 'Invoice.ShipAddr.City' DECLARE @InvoiceShipAddrCountry nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrCountry OUT, 'Invoice.ShipAddr.Country' DECLARE @InvoiceShipAddrLine5 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLine5 OUT, 'Invoice.ShipAddr.Line5' DECLARE @InvoiceShipAddrLine4 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLine4 OUT, 'Invoice.ShipAddr.Line4' DECLARE @InvoiceShipAddrLine3 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLine3 OUT, 'Invoice.ShipAddr.Line3' DECLARE @InvoiceShipAddrLine2 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLine2 OUT, 'Invoice.ShipAddr.Line2' DECLARE @InvoiceShipAddrLine1 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLine1 OUT, 'Invoice.ShipAddr.Line1' DECLARE @InvoiceShipAddrPostalCode nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrPostalCode OUT, 'Invoice.ShipAddr.PostalCode' DECLARE @InvoiceShipAddrLat nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLat OUT, 'Invoice.ShipAddr.Lat' DECLARE @InvoiceShipAddrLong nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrLong OUT, 'Invoice.ShipAddr.Long' DECLARE @InvoiceShipAddrCountrySubDivisionCode nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrCountrySubDivisionCode OUT, 'Invoice.ShipAddr.CountrySubDivisionCode' DECLARE @InvoiceShipAddrId nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipAddrId OUT, 'Invoice.ShipAddr.Id' DECLARE @InvoiceDepartmentRefName nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDepartmentRefName OUT, 'Invoice.DepartmentRef.name' DECLARE @InvoiceDepartmentRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceDepartmentRefValue OUT, 'Invoice.DepartmentRef.value' DECLARE @InvoiceShipMethodRefName nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipMethodRefName OUT, 'Invoice.ShipMethodRef.name' DECLARE @InvoiceShipMethodRefValue nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceShipMethodRefValue OUT, 'Invoice.ShipMethodRef.value' DECLARE @InvoiceBillAddrCity nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrCity OUT, 'Invoice.BillAddr.City' DECLARE @InvoiceBillAddrCountry nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrCountry OUT, 'Invoice.BillAddr.Country' DECLARE @InvoiceBillAddrLine5 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLine5 OUT, 'Invoice.BillAddr.Line5' DECLARE @InvoiceBillAddrLine4 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLine4 OUT, 'Invoice.BillAddr.Line4' DECLARE @InvoiceBillAddrLine3 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLine3 OUT, 'Invoice.BillAddr.Line3' DECLARE @InvoiceBillAddrLine2 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLine2 OUT, 'Invoice.BillAddr.Line2' DECLARE @InvoiceBillAddrLine1 nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLine1 OUT, 'Invoice.BillAddr.Line1' DECLARE @InvoiceBillAddrPostalCode nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrPostalCode OUT, 'Invoice.BillAddr.PostalCode' DECLARE @InvoiceBillAddrLat nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLat OUT, 'Invoice.BillAddr.Lat' DECLARE @InvoiceBillAddrLong nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrLong OUT, 'Invoice.BillAddr.Long' DECLARE @InvoiceBillAddrCountrySubDivisionCode nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrCountrySubDivisionCode OUT, 'Invoice.BillAddr.CountrySubDivisionCode' DECLARE @InvoiceBillAddrId nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceBillAddrId OUT, 'Invoice.BillAddr.Id' DECLARE @InvoiceApplyTaxAfterDiscount int EXEC sp_OAMethod @jsonResponse, 'BoolOf', @InvoiceApplyTaxAfterDiscount OUT, 'Invoice.ApplyTaxAfterDiscount' DECLARE @InvoiceId nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @InvoiceId OUT, 'Invoice.Id' DECLARE @time nvarchar(4000) EXEC sp_OAMethod @jsonResponse, 'StringOf', @time OUT, 'time' DECLARE @i int SELECT @i = 0 DECLARE @count_i int EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'Invoice.Line' WHILE @i < @count_i BEGIN EXEC sp_OASetProperty @jsonResponse, 'I', @i EXEC sp_OAMethod @jsonResponse, 'StringOf', @Description OUT, 'Invoice.Line[i].Description' EXEC sp_OAMethod @jsonResponse, 'StringOf', @DetailType OUT, 'Invoice.Line[i].DetailType' EXEC sp_OAMethod @jsonResponse, 'StringOf', @SalesItemLineDetailTaxCodeRefValue OUT, 'Invoice.Line[i].SalesItemLineDetail.TaxCodeRef.value' EXEC sp_OAMethod @jsonResponse, 'IntOf', @SalesItemLineDetailQty OUT, 'Invoice.Line[i].SalesItemLineDetail.Qty' EXEC sp_OAMethod @jsonResponse, 'IntOf', @SalesItemLineDetailUnitPrice OUT, 'Invoice.Line[i].SalesItemLineDetail.UnitPrice' EXEC sp_OAMethod @jsonResponse, 'StringOf', @SalesItemLineDetailServiceDate OUT, 'Invoice.Line[i].SalesItemLineDetail.ServiceDate' EXEC sp_OAMethod @jsonResponse, 'StringOf', @SalesItemLineDetailItemRefName OUT, 'Invoice.Line[i].SalesItemLineDetail.ItemRef.name' EXEC sp_OAMethod @jsonResponse, 'StringOf', @SalesItemLineDetailItemRefValue OUT, 'Invoice.Line[i].SalesItemLineDetail.ItemRef.value' EXEC sp_OAMethod @jsonResponse, 'IntOf', @LineNum OUT, 'Invoice.Line[i].LineNum' EXEC sp_OAMethod @jsonResponse, 'StringOf', @Amount OUT, 'Invoice.Line[i].Amount' EXEC sp_OAMethod @jsonResponse, 'StringOf', @Id OUT, 'Invoice.Line[i].Id' EXEC sp_OAMethod @jsonResponse, 'StringOf', @DiscountLineDetailDiscountAccountRefName OUT, 'Invoice.Line[i].DiscountLineDetail.DiscountAccountRef.name' EXEC sp_OAMethod @jsonResponse, 'StringOf', @DiscountLineDetailDiscountAccountRefValue OUT, 'Invoice.Line[i].DiscountLineDetail.DiscountAccountRef.value' EXEC sp_OAMethod @jsonResponse, 'BoolOf', @DiscountLineDetailPercentBased OUT, 'Invoice.Line[i].DiscountLineDetail.PercentBased' EXEC sp_OAMethod @jsonResponse, 'IntOf', @DiscountLineDetailDiscountPercent OUT, 'Invoice.Line[i].DiscountLineDetail.DiscountPercent' SELECT @i = @i + 1 END SELECT @i = 0 EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'Invoice.TxnTaxDetail.TaxLine' WHILE @i < @count_i BEGIN EXEC sp_OASetProperty @jsonResponse, 'I', @i EXEC sp_OAMethod @jsonResponse, 'StringOf', @DetailType OUT, 'Invoice.TxnTaxDetail.TaxLine[i].DetailType' EXEC sp_OAMethod @jsonResponse, 'StringOf', @Amount OUT, 'Invoice.TxnTaxDetail.TaxLine[i].Amount' EXEC sp_OAMethod @jsonResponse, 'StringOf', @TaxLineDetailNetAmountTaxable OUT, 'Invoice.TxnTaxDetail.TaxLine[i].TaxLineDetail.NetAmountTaxable' EXEC sp_OAMethod @jsonResponse, 'IntOf', @TaxLineDetailTaxPercent OUT, 'Invoice.TxnTaxDetail.TaxLine[i].TaxLineDetail.TaxPercent' EXEC sp_OAMethod @jsonResponse, 'StringOf', @TaxLineDetailTaxRateRefValue OUT, 'Invoice.TxnTaxDetail.TaxLine[i].TaxLineDetail.TaxRateRef.value' EXEC sp_OAMethod @jsonResponse, 'BoolOf', @TaxLineDetailPercentBased OUT, 'Invoice.TxnTaxDetail.TaxLine[i].TaxLineDetail.PercentBased' SELECT @i = @i + 1 END SELECT @i = 0 EXEC sp_OAMethod @jsonResponse, 'SizeOfArray', @count_i OUT, 'Invoice.CustomField' WHILE @i < @count_i BEGIN EXEC sp_OASetProperty @jsonResponse, 'I', @i EXEC sp_OAMethod @jsonResponse, 'StringOf', @StringValue OUT, 'Invoice.CustomField[i].StringValue' EXEC sp_OAMethod @jsonResponse, 'StringOf', @Type OUT, 'Invoice.CustomField[i].Type' EXEC sp_OAMethod @jsonResponse, 'StringOf', @Name OUT, 'Invoice.CustomField[i].Name' SELECT @i = @i + 1 END EXEC @hr = sp_OADestroy @jsonToken EXEC @hr = sp_OADestroy @rest EXEC @hr = sp_OADestroy @sbAuth EXEC @hr = sp_OADestroy @sbResponseBody EXEC @hr = sp_OADestroy @jsonResponse END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.