This module implements a number of basic small-business accounting functions.
More...
|
| | Address |
| | An address is a helper object used by the GncOwner object (and its actual implementations GncCustomer, ::GncVendor and ::GncEmployee).
|
| |
| | Billing Terms |
| | Describes billing terms, that is when a bill is due, and what sort of discount is applied (if any).
|
| |
| | Customer |
| |
| | Employee |
| |
| | Entry |
| |
| | Invoice |
| | An invoice holds a list of entries, a pointer to the customer, and the job, the dates entered and posted, as well as the account, transaction and lot for the posted invoice.
|
| |
| | Job |
| |
| | Owner |
| |
| | TaxTable |
| | Define an object to track tax properties for invoices.
|
| |
| | Vendor |
| |
This module implements a number of basic small-business accounting functions.
Some notes on tracking fields in gncBillTerm and gncTaxTable objects
- a child is a 'frozen' instance of a parent. For example, the tax percentage in a particular tax table may change over time, but you dont want that change to affect already-posted invoices... So you make sure there is an immutable 'copy' (read: child) of the tax table when you post the invoice and repoint at the child.
- a parent can have many children, but it will only have a 'child' pointer if the parent has not been modified. Think of this as a copy-on-write mechanism. posted invoices will continue to use the same child until the parent is modified, at which point a new child will be created.
- invisible means "dont show this in the list". It's so you dont get all the children in the tax table list – you only see parents. I suppose this flag could also be called "is-child" as I believe that only children can be invisible, and ALL children are invisible.
- refcount is a listing of how many objects are referencing it. Basically, it's letting you know how many customer, vendor, entries, etc are referencing e.g. a particular tax table object. mostly this was done to make sure you cannot delete an in-use taxtable.
- children don't use refcounts, only parents do.
- A child always points to its parent (it can have only 1).
- A parent has a list of all children.
- A parent has a pointer to the current 'replica child', if one exists.