Examples - mkplabs/systogether-quickbooks GitHub Wiki

The following examples are provided to demonstrate some of the easy to use features in SysTogether

Migrate Quickbooks Items to Salesforce Products

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 );

Quickbooks Items to Salesforce PricebookEntries

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 );

Quickbooks Customers to Salesforce Accounts

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 );

Quickbooks Invoices and Lines to Salesforce Invoice__c and Invoice_Line__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 );
⚠️ **GitHub.com Fallback** ⚠️