WorkFerret is a web application I use for tracking billable hours, generating invoices, and recording payments against outstanding balances. It is written as a plug-in module running under Ferreteria, my web application framework currently under development.
The screenshot at right shows the main menu on the left (which includes other applications besides WorkFerret), with the project information taking up the rest of the page (from top to bottom):
- project ID, name, settings
- current un-invoiced work sessions
- existing charges (invoices) and payments, and the final balance due
- past invoices
Each work-session can track date, starting/finishing time, hourly rate, and/or flat dollar amount. The user enters starting and stopping times and the rate being charged, and WorkFerret will automatically convert to dollars. (There is also a provision for flat dollar amounts, e.g. for fixed bids or billable purchases made for the client.)
Invoices are available in both HTML and .odt format, using complex templates. The .odt format was especially tricky, as it actually consists of a collection of files that have been gzipped together -- but in a certain particular order, so you have to use the right options with the