Archive for September, 2007

Super Administration

Limited privileges are key to a well setup accounting system. Some people will have data entry capabilities, others will have audit and approval capabilities. Currently Pbooks is not setup with divisions of privilege, but it is most definitely designed to provide this type of functionality. One of the tasks I’ve listed in the trac is to setup some basic ids for functions which will likely be isolated to different users or groups.

That task is currently slated for “the future”, and PBooks will need something in the meantime to separate more complex administration tasks from the standard bookkeeping tasks. Right now I’m leaning towards writing a command line administrator script, similar to the trac-admin script which is used to setup user permissions. Just an idea I wanted to jot down….

UPDATE: Actually I have been working on this task a little bit the past few days (mid-October 2007). First I was stumped by the lack of php5-readline in the debian repositories, but I’ve since worked that out. I’m moving this task up in priority because having such a tool will most definitely assist in development, testing, and debugging. Chances are the initial consumers of PBooks will be most likely technically capable, they might even appreciate such a resource. I hope so!

Nice progress on invoices

The past two days I’ve been hard at work adding support for invoices. This was a tough task because I was subsequently implementing a process for handling dynamic metadata. In English? I was automating the input and output of data about invoices, which from a data model standpoint is just an entry with extra data.

This is done using an XML file to describe the metadata object. I was having problems looping through the XML file.

Previously, I had to use the i18n files to build the form, but for many reasons that isn’t appropriate. So this new process can be used for all sorts of metadata!

I’ve got a little more work to do on this and a little testing, then I’m going to branch it, tag it, and then package it up for download. By the way, I’ve done a bunch of writing on the Pbooks Release Process and the Pbooks Versioning Methods. I also made some major updates to the PBooks Trac, including a much better roadmap.

Invoices




Here’s my current, incredibly inefficient, invoicing process:

  1. Tally up work times for each client (we use a client specific time tracker - this is easy)
  2. Create a spreadsheet for each client, sum up the rates, discounts and totals (could easily be done using our time tracking software, except for rates and discounts)
  3. Create invoices in Quickbooks using Parallels - definitely need to take this step out of the loop!
  4. Export Quickbooks invoices to PDF
  5. Mark the work tallied in step one as invoiced, noting the invoice number on each (super easy)
  6. Enter the invoices into PBooks

Each month it takes me about four hours, when it could be done in about 1 hour. With regards to bookkeeping and invoicing, its a good time to dedicate to bookkeeping, paperwork, and bank reconciliation. That stuff isn’t as pressing as invoices (if you don’t send invoices, you don’t get paid), but is a similar process to go through (tally, categorize, data entry, etc.) you might as well do them at the same time. I’ll do it that way next month! :-)

I did make some really nice progress on the invoice form though, here’s a quick screen shot:

PBooks Invoices Form Screenshot

Before you ask, PDF invoices are in the works too!

Donations to PBooks?

Howdy - Albert here. Just wanted to mention really quick that the donation button you see to the right is not meant to be “nagware” or “guiltware”. PBooks is free and open source software, and you don’t have to contribute if you don’t want to.

We do welcome your contributions, and your contributions other that monetary donations would honestly be more helpful at this point in time. If you have a moment, please register and introduce yourself in the forums, download and test out the software, or help spread the word by linking to the blog or to the trac project.

The donate button is there only if you are feeling generous and are compelled to throw us a bone. Fear not, lack of donations will not slow down or halt pbooks development. As Kermit the frog always says, we’re “moving right along, dugga dunk dugga dunk”.

I also want to mention here that if you are interested in a new feature or integration with other systems, commercial support is available.

Thanks again for your interest!

Accounts and Account Groups




I’ve been scratching my head over the best way to organize my accounts and account groups. I was concerned that if I organized them the wrong way, I would have a bunch of corrupt data.

Then I realized that since the groups don’t contain transactions (only the accounts do), that I won’t run into a problem where I put a transaction in an incorrect group. Accounts can always be reorganized, and their transactions will come along.

So my strategy now is to start with the base level accounts, which only contain transactions, and then after I’m happy with how those are, I can use the account groups (which only contain accounts, no transactions) to organize them better for reporting.

Account Numbers

Ask any accountant, account numbering is important. I’m using the following basic numbering outline:

Assets - 10000
Liabilities - 20000
Equity - 30000
Revenues - 40000
Expenses - 50000

Anything below that has been completely random so far. Does it make sense to coordinate account numbering with account groups?

The way pbooks works now is that there is an account_id behind the account number, so you can change an account number without losing the entries associated with it.

Account Hiding

For an information overload perspective, the number of accounts can be overwhelming. I’ve just implemented a feature which allows the hiding of accounts. This way, you can have “active” accounts that don’t add to the clutter and confusion of the user interface.

Hidden accounts can be temporarily “shown” with a simple click of a button. They will remain shown until you either click another button to hide them again, or logout and log back in again.