mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-29 20:24:25 -06:00
16b4976381
Found via `codespell -q 3 -L ans,ba,parm,parms,numer`
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 generate 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 their 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 ------------------------------
|