Skip to main content

A double-entry bookkeeping module for django

Project description

A double-entry bookkeeping system originally developed for SwingTix.

Hello, World

You’ll need a django project. If you don’t have one handy, you can make an empty one following the first steps of the django tutorial. Afterwards, edit <yourproject>/settings.py to add “swingtix.bookkeeper” to INSTALLED_APPS and run:

$ python manage.py syncdb

Then you’re ready to start exploring using the shell:

$ python manage.py shell

First, let’s create a couple of accounts:

>>> from swingtix.bookkeeper.models import BookSet, Account

>>> book = BookSet(description="my book")
>>> book.save()

>>> revenue  = Account(bookset=book, name="revenue", positive_credit=True)
>>> revenue.save()
>>> bank     = Account(bookset=book, name="bank",    positive_credit=False)
>>> bank.save()
>>> expense  = Account(bookset=book, name="expense", positive_credit=False)
>>> expense.save()

Then you can use them:

>>> book = BookSet.objects.get(description="my book")
>>> revenue = book.get_account("revenue")
>>> bank    = book.get_account("bank")
>>> expense = book.get_account("expense")

#Someone pays you can advance.  Yay!
>>> bank.debit(120.00, revenue, "our first sale")
(<AccountEntry: 120 >, <AccountEntry: -120 >)

#but now you have to do some work.  The local coffee shop has free wifi..
>>> bank.credit(2.20, expense, "coffee")
(<AccountEntry: -2 >, <AccountEntry: 2 >)

>>> bank.balance()
Decimal('117.80')
>>> expense.balance()
Decimal('2.20')
>>> revenue.balance()
Decimal('120.00')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

swingtix-bookkeeper-0.0.1.1.tar.gz (26.8 kB view details)

Uploaded Source

File details

Details for the file swingtix-bookkeeper-0.0.1.1.tar.gz.

File metadata

File hashes

Hashes for swingtix-bookkeeper-0.0.1.1.tar.gz
Algorithm Hash digest
SHA256 4968faee0711ceffcddc7be6ae6f71c60b29454b720aef656035078e1e70d68d
MD5 6d042ec0cc5717c93d3d85ac6e816810
BLAKE2b-256 0a6b580d87a3857930c024b2bde847eaadc65fb1c6013a4133512e794a2c6640

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page