change module path to sr.ht
spunkier error messages
template.html: change terms
Invoicer manages and generates invoices.
I intend it only for my own use, but if you share my preference for command-line tools, you might find it useful too.
I wrote invoicer to help me run my consulting business.
Invoicer keeps everything—including sellers, customers, and invoices—in a SQLite database. This eases filing taxes and planning for the future. It's a serious upgrade over a folder full of PDFs or spreadsheets.
Invoicer handles multiple customers (as you might expect) and also multiple sellers. This allows you to change your business details (which might happen as you grow) or track multiple businesses without getting confused.
Invoicer uses your shell and text editor as a user interface. When you want to create a new invoice or party, just run invoicer invoice
or invoicer party
. (But if you're holding an "invoicer party," whatever that is, count me out.) Invoicer will pipe a partially-completed form into your text editor for you to fill out. When you're done, write the form to standard out; Invoicer will add it to the database!
Invoicer renders the most compelling invoice documents you've ever seen, thanks to me having read Practical Typography from cover to cover a few times. I can only hope, however, that your customers will pay upon sight.
To generate a document, you'll need the invoice's ID (which, for your convenience, invoicer invoice
prints out after it succeeds). Then run invoicer report $ID
. You can convert this to a PDF using tools like wkhtmltopdf or a web browser (Chromium works well). Just make sure to set the page margins to zero and disable fit-to-page automatic scaling.