Invoice issuance ledger

Role
Design & build
Stack
  • Django
  • Python
  • JavaScript (auto-calc)
Outcome
Auto tax/total calc with unified approval and numbering

Overview

An in-house invoice ledger for entering, approving, and managing invoices one at a time. Tax and totals are computed automatically from per-line pre-tax amounts and tax rates.

Problem

An Excel ledger was prone to calculation errors, numbering mistakes, and opaque approval status — and mixed currencies were tedious.

Approach

The original Excel formulas (per-line tax-inclusive/exclusive totals and tax) were implemented as Django models. Serial numbering is serialized via a per-calendar-year lock row so numbers never collide under concurrency. An unapproved → admin-approved flow and second-currency FX conversion are supported.

Key features

  • Automatic tax/total calculation from per-line amount + rate
  • Auto serial numbering (yearly reset, collision-free under concurrency)
  • Unapproved → approved workflow (records approver and timestamp)
  • Multi-currency FX conversion
  • Counterparty master and filtered search
  • Soft delete with author / update-time audit