Chapter 4. Creating GnuCash Invoices using a Palm PDA

4.1. Beginnings

This is where this entire saga began. I needed to collate data from my Palm PDA (using Palm OS 5) and create an invoice in GnuCash with the minimum of extra typing. The PDA databases contain details of the hours to be billed (Calendar), incidental expenses incurred during the invoiced work (Expenses) and contact details for the client and workplace (Contacts). By adding a user-configurable set of defaults, the other essential elements of an invoice are ready, item type (hours, material etc.), accounts to use for each type and the account to use for posting the invoice, if the user chooses to let the program do the post. (Not advisable until the user is fully familiar with the program!) This area is now under development.

The mechanism was not considered at that stage. I didn't really care how the data would be passed from PDA to GnuCash and considered XML/XSLT, CSV and QIF before agreeing to do the hard bit of writing the generic merge routine. The benefits are huge but the work has been long and a steep learning curve. The main reason for writing this documentation is to see if it can help others join the GnuCash team. Since starting qof_book_merge, the Doxygen source code documentation has been rendered directly from the CVS code on a nightly basis. These pages are therefore designed to cover the other questions; where did I start, how can new developers get under the skin of GnuCash quickly and without hassling other developers as I did!