Skip to content

limepepper/general_ledger

Repository files navigation

general_ledger

django double entry general ledger library

Warning

this is a work in progress.

This library provides at the basic level a set of double entry accounting primitives.

Basic features

  • Book - roughly corresponds to a company or organization. A book contains primitive objects such as accounts, transactions, and entries, and also higher level objects such as invoices and payments.

Primitives

  • Account - a ledger account
  • Ledger - a collection of transactions
  • Chart of Accounts - a collection of accounts. One and only one per ledger. But a book can have multiple CoA instances.
  • Transaction - a transaction between two or more ledger accounts, which must balance. Transactions must be associated to accounts in the same CoA.
  • TransactionEntry - a single entry in a transaction, which is a credit or debit to an account.

Higher level features

  • Contact - a contact or entity that can be associated with an invoice. Contacts can be customers, suppliers, or employees.
  • Invoice - a document that represents a request for payment from a customer. Invoices generate ledger transactions when they are posted.
  • Payment - a payment made against an invoice. This generates the corresponding ledger transactions when posted. These can be automatically generated by matching bank payments to invoices.

Usage

To use the double entry features directly, you can create