Data Model¶
Bookkeeping¶
The Account model represents main accounting account objects. Accounts form a tree structure, with the top tree layers being standard accounts (with coding and name), and an optional forth layer representing accounts for each transacting party. The structure is dynamic and user may choose to use a different structure, but that 3-4 level structure is the usual standard and can be considered when optimizing performance or usability. Ledger is a grouping of accounts that are allowed to have transactions with each other, with the main use being handling of different currencies. JournalEntry model is used for registering accounting operations, including all user provided details and descriptions, and supports complex transactions on accounts. The JournalEntry is the user perspective of the accounting system. Account balances are managed using a double entry bookkeeping system, using Transfer objects as the basic building block, which moves funds between its debit_account and credit_account. For each JournalEntry, one or more Transfer objects are created, and the system uses Transfer objects for account balance management, and the end-user usually does not see Transfer objects themselves, only the resulting account balances.