mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-30 12:44:01 -06:00
83d14e1c1c
It is split into - /libgnucash (for the non-gui bits) - /gnucash (for the gui) - /common (misc source files used by both) - /bindings (currently only holds python bindings) This is the first step in restructuring the code. It will need much more fine tuning later on.
82 lines
3.4 KiB
Plaintext
82 lines
3.4 KiB
Plaintext
/** \page business1 Business Overview
|
|
|
|
API: \ref Business
|
|
|
|
\section businessoverview Business Objects
|
|
|
|
The GnuCash Business objects, in src/business/business-core, implement
|
|
certain basic small-business accounting functions. Below follows a summary
|
|
overview of the objects and the data that they store. These are listed in
|
|
order of complexity; with the basic building blocks first, and the more
|
|
complex structures last.
|
|
|
|
\subsection address Address:
|
|
A very simple object, stores strings for name/street-address/phone/fax/email
|
|
The address is not a separate entity, but is meant to be embedded in other
|
|
objects (that is, there is no addressbook; there is no address database that
|
|
is separate from the objects that use addresses; there is no 'foreach'
|
|
that can be used to iterate over all addresses.)
|
|
|
|
API: \ref Address
|
|
|
|
\subsection billterm BillTerm:
|
|
Describes billing terms, that is when a bill is due, and what sort of a
|
|
discount is applied (if any). The BillTerm object currently supports:
|
|
-- the discount applied to a bill (absolute numeric value),
|
|
-- the number of days until payment is due,
|
|
-- the number of days until a discount expires.
|
|
-- cutoff ??
|
|
The proximo type does what ???
|
|
|
|
API: \ref BillTerm
|
|
|
|
\subsection entry Entry:
|
|
|
|
\subsection invoice Invoice:
|
|
Pulls together info needed to geenrate an invoice, including addresses,
|
|
job, the dates, the billing terms, the amounts, and the accounts
|
|
to be credited.
|
|
|
|
API: \ref Entry
|
|
|
|
\section bus_design Business Design & Implementation Notes
|
|
|
|
Derek Atkins <warlord@mit.edu>
|
|
Version of October 2003
|
|
|
|
The gncTaxTable and gncBillTerm business objects have parent, child,
|
|
refcount, invisible field in thier structures that deserve some
|
|
explanation:
|
|
|
|
- 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.
|
|
|
|
*/
|
|
|
|
------------------------- end of file ------------------------------
|