You're nearly there. When FQSaveToCache is set false, or the header insert is executed (after lines have been cached), the cached lines of the invoice will get writtened.
So you need to check the FQSaveToCache logic in your INSERT queries. For example for two invoices with two lines in each I do:
insert invoiceline FQSaveToCache 1 <<< Invoice 1 line 1 insert invoiceline FQSaveToCache 1 <<< Invoice 1 line 2 insert invoice <<< header sets FQSaveToCache 0
Invoice 1 gets written to QuickBooks
insert invoiceline FQSaveToCache 1 <<< Invoice 2 line 1 insert invoiceline FQSaveToCache 1 <<< Invoice 2 line 2 insert invoice <<< change the CustomerRefListID, header sets FQSaveToCache 0
Invoice 2 gets written to QuickBooks for different customer.
You can create any number of invoices you wish with a range of invoice lines using a sequence of SQL statements. You don't need to use the Invoice header and you can do your inserts just using the InvoiceLine table like this:
insert invoiceline FQSaveToCache 1 <<< Invoice 1 line 1 using CustomerRefListID for Cust1 insert invoiceline FQSaveToCache 0 <<< Invoice 1 line 2 using CustomerRefListID for Cust1
Invoice 1 gets written to QuickBooks for Cust1
insert invoiceline FQSaveToCache 1 <<< Invoice 2 line 1 using CustomerRefListID for Cust2 insert invoiceline FQSaveToCache 1 <<< Invoice 2 line 2 using CustomerRefListID for Cust2 insert invoiceline FQSaveToCache 1 <<< Invoice 2 line 3 using CustomerRefListID for Cust3 insert invoiceline FQSaveToCache 0 <<< Invoice 2 line 4 using CustomerRefListID for Cust2
Invoice 2 gets written to QuickBooks for Cust2
instead. Simply do single line invoices as a single SQL INSERT with the CUSTOMER detail, for example:
INSERT INTO "InvoiceLine" ("CustomerRefListID", "ClassRefListID", "RefNumber", "InvoiceLineItemRefListID", "InvoiceLineDesc", "InvoiceLineRate", "InvoiceLineAmount", "InvoiceLineSalesTaxCodeRefListID", "FQSaveToCache") VALUES ('470001-1071525403', '30000-933272658', 'QODBCClass2', '250000-933272656', 'Building permit Additional Room', 100.00000, 100.00, '20000-999022286', 0)
See: How do I create Invoices? for more detail. |