qbo.Accounting

posted Nov 21, 2014, 3:04 PM by Kevin Cassidy   [ updated Mar 18, 2015, 5:55 PM by Eric Patrick ]

Overview


The QBO3 accounting module manages accounting information. While not a full-blown accounting system, the module's Ledger tables can easily be used to track accounting data, and can be configured by power users to do some pretty powerful things.

Real-world use cases include:
  • Tracking borrower financials for a collections or loss mitigation system
  • Tracking vendor fees and costs
  • Tracking data costs associated with execution of a business process (e.g. ordering credit reports, etc.)
  • Tracking total debt associated with a mortgage

Classes

The accounting module comprises the following classes:
  • Ledger: a ledger represents an invoice or similar financial statement
  • Ledger Item: a ledger item represents a line item within a ledger
  • Ledger Template: a template that determines the behavior of a Ledger (repeatability, how to generate an invoice document, etc.)
  • Ledger Template Item: determines the behavior of a Ledger Item (repeatability, whether it can be edited, included in a ledger's total, etc.)

Templates

In addition to supporting extranet and repeatability, QBO3 Ledger Templates also support the following:
  • Expandable - Allows for the ability to add items on the fly or leave the ledger locked down to the items supplied with the template.
  • Locked - Locks the amount values supplied when the ledger is created.
  • Refresh On Insert - Pre-populates the ledger items with mapped values (or default values) when a ledger is created.
  • Calculate Method - Object based statement or method that is used to populate the ledger item values.
  • Project Method - Object based statement or method that is used to project the ledger item values.
  • Custom Types - a power user defined enumeration used to populate the Type drop down when editing a Ledger
  • Custom Statuses - a power user defined enumeration used to populate the Status drop down when editing a Ledger
  • Item Types - a power user defined enumeration used to populate the Type drop down when editing a Ledger Items
  • Item Statuses - a power user defined enumeration used to populate the Status drop down when editing a Ledger Items
  • Invoice Template - an Attachment Template used to generate an invoice document (usually a PDF) for a ledger
  • Invoice Matrix - a matrix that includes an Attachment Template output to soft-code the invoice document template to use
Ledger items are also template based and additionally support the following:
  • Use In Projections - Can the item be used in future projections.
  • Manual Insert - Determines if the item should always be included with the ledger.
  • Is Debit - Default value is Credit.
  • Is Totaled - Used to determine if the item should be included in the ledger total.
  • Is Locked - Locks the amount values supplied when the ledger is created.
  • Can Exclude - Allows the item to be excluded on the fly.
  • Can Refresh - Allows the item to be updated with the calculated values.
There are three key ways billing ledgers can be supported in QBO3:
  1. Ledgers with item amounts populated by the user.
  2. Ledgers with item amounts populated by the object summary.
  3. Ledgers with items that are child ledgers.

Automated Calculations

The Ledger/Calculate method iterates through each item in a ledger, calling calculate on each item, and storing the sum of each item in the Ledger.Balance column.  There are three scenarios that are considered when calculating an item:

Scenario 1: Simple Items

With a "simple" item in a ledger, the item's amount is added to the ledger's balance (a straight forward sum). For example, assume we have:

Item
Amount 
Is Totaled Notes
Item 1
125.00
Yes  
Item 2 
100.00
Yes  
Item 3 
 50.00
No 
Balance
275.00

This is the simple SUM of all items 
Adjusted Balance
225.00

Item 3 is ignored.  

Scenario 2: Nested Items

A ledger item may point to a nested (child) ledger, in which case, calling calculate will call calculate on the nested ledger (recursively). For example, assume we have:

Item
Amount 
Is Totaled Notes
Attorney Fees and Costs
2157.55
Yes This may comprise another entire ledger, the items of which detail each fee or cost incurred.
Hard Costs
1200.00
Yes This may comprise another ledger, the items of which detail each hard cost incurred.
Late Fee
 150.00
Yes 
Balance
275.00

This is the simple SUM of all items 
Adjusted Balance
225.00

Item 3 is ignored.  

Scenario 3: Matrix-based Items

In many use cases, there are complex rules that drive the calculation of a ledger item. In such a scenario, a power user may define a Matrix to determine the amount to populate into the ledger item.





Comments