Examples - mkplabs/systogether-quickbooks GitHub Wiki
The following examples are provided to demonstrate some of the easy to use features in SysTogether
- Quickbooks Items to Salesforce Products
- Quickbooks Items to Salesforce PricebookEntries
- Quickbooks Customers to Salesforce Accounts
- Quickbooks Invoices and Lines to Salesforce Invoice__c and Invoice_Line__c
List<ST4QB.Obj> qbItems = ST4QB.API.query('SELECT * FROM Item');
List<Product2> products = new List<Product2>();
for ( ST4QB.Obj o : qbItems ){
o.set('sfRecord', new Product2() );
Product2 prod = (Product2)o.tosObject();
products.add( prod );
}
database.upsert( products, Product2.Quickbooks_Id__c );
Pricebook2 pb = [SELECT Id FROM Pricebook2 Where IsStandard = true LIMIT 1];
List<ST4QB.Obj> qbItems = ST4QB.API.query('SELECT * FROM Item');
List<PricebookEntry> products = new List<PricebookEntry>();
for ( ST4QB.Obj o : qbItems ){
o.set('sfRecord', new PricebookEntry() );
PricebookEntry prod = (PricebookEntry)o.tosObject();
prod.Pricebook2Id = pb.Id;
prod.UseStandardPrice = false;
products.add( prod );
}
database.upsert( products, PricebookEntry.Quickbooks_Id__c );
List<ST4QB.Obj> qbCustomers = ST4QB.API.query('SELECT * FROM Customer');
List<Account> accounts = new List<Account>();
for ( ST4QB.Obj o : qbCustomers ){
Account acc = (Account)o.tosObject();
accounts.add( acc );
}
database.upsert( accounts, Account.Quickbooks_Id__c );
List<ST4QB.Obj> qbInvoices = ST4QB.API.query('SELECT * FROM Invoice');
List<Invoice__c> invoices = new List<Invoice__c>();
List<Invoice_Line__c> invoiceLines = new List<Invoice_Line__c>();
for ( ST4QB.Obj o : qbInvoices ){
Invoice__c inv = (Invoice__c)o.tosObject();
invoices.add( inv );
Map<String,Object> qbRecord = (Map<String,Object>)o.get('qbRecord');
List<Object> qbLines = (List<Object>)qbRecord.get('Line');
for ( Object l : qbLines ){
Map<String,Object> line = (Map<String,Object>)l;
ST4QB.Obj lineObj = new ST4QB.Obj('InvoiceLine',line);
Invoice_Line__c il = (Invoice_Line__c)lineObj.toSObject();
il.Invoice__r = inv;
il.Quickbooks_Id__c = inv.Quickbooks_Id__c+'|'+lineObj.get('Id');
invoiceLines.add( il );
}
}
database.upsert( invoices, Invoice__c.Quickbooks_Id__c );
for ( Invoice_Line__c l : invoiceLines ){
l.Invoice__c = l.Invoice__r.Id;
l.Invoice__r = null;
}
database.upsert( invoiceLines, Invoice_Line__c.Quickbooks_Id__c );