BambooInvoice 0.8.3 Preview
November 28th, 2007
I’m happy to announce that I’ve almost finished work on the next version of BambooInvoice. I have to say, I’m very happy with the new functionality and features. Aside from the usual bug fixes and code modifications, there are some very substantial architectural changes - namely, the addition of itemized invoicing.
In order to make sure its running smoothly, I’d like to solicit some people willing to take part in beta tests. In order to participate, you’ll need to be comfortable backing up and restoring your database. I’d also love to get some non-English speakers into the mix. If you’ve been wondering how you can help out with Bamboo, this is it. Please contact me.
Itemized Invoices
This was far and away the most requested feature, and I’m happy to add it in. If you don’t have a use for itemized bills (I’ll probably never need them), then I’m hopeful that the feature will get out of your way totally, but if you do need them it should be a seamless transition. A bit of history here - if you’ve used a previous version of Bamboo, you may have noticed me slipping in a field into the invoices table called “itemized”. This is because in the old system, all invoice information was in a single table ("invoices") that included: id, invoice_number, work description, amount, and now “itemized”. This works great for an invoicing system were every invoice corresponds to a single piece of work. But with “itemized” invoices, it sucks. So my intention was that I would serialize itemized things and store them here. I spent about a week on and off getting this running.
It was awful. I wasn’t happy with the way it worked… I found it too slow, very limiting. So I decided to change gears, and worry about the front end for a while. I started and stopped no fewer then 3 separate approaches before I finally got one I was happy with. I spent a lot of time with javascript working through DOM node cloning and other things I wouldn’t wish on any of you. When I finally got to a solution I was happy with I flipped back into backend work… oh yeah… that damn serialized array again. So I started getting depressed. I was trying to use arrays and bend my system to do something it was not built to do. If I were building it again from scratch, the invoice items would be in a separate table, but I was concerned about all the legacy data and people using Bamboo who would need to migrate. But since I wasn’t happy, I just bit the bullet and moved all that stuff into another table ("invoice_items") and spent an afternoon writing a migration utility that runs automatically when you update Bamboo.
After it was done, I was “OMG Ponies!”, this is perfect! Sure it required a major re-architecting of the invoice functions, but now that it works I’m pretty happy. Itemized invoices are a breeze, and you can even control taxes on individual items. I’m much happier with the flexibility. All in all… its a big improvement.
Utilities and Advanced Settings
Let’s take a look at a few of the things to expect. There’s a new menu item in the “root panel”. Under it, there are 2 new options; PHP Info, and Database backup. The PHP Info is to help me with giving support (if you have read the BambooInvoice Forums, you’ve probably noticed the first thing I always ask people to do when troubleshooting it to upload a phpino() file. This just makes it easier for all involved. I shamelessly stole the code from ExpressionEngine on that one. Hope I’m not violating any copyrights there (don’t sue me Rick!). There is also a database backup utility for… um… database backups. The backup utility is currently MySQL only - and in fact, with some of the new query-acrobatics I needed to do, I suspect the whole application is nearing the point of me not being able to say it supports multiple databases any longer. I’ll need to look more into that.
Next up is the settings panel. The settings panel has undergone a major User Interface (UI) change.
The result is (I hope) a more streamlined, and easy to follow panel. It actually offers more choice then before, including an option to save your invoices to the server as you generate them, as PDF files. The image is actually a link to a quicktime movie. If you’re interested in seeing what it looks like, take a quick watch - the whole thing is only about 15 seconds or so. If you watch it, you’ll see an advanced settings tab.
Bamboo now offers the ability to save copies of your invoices online in PDF format. Personally, I’m not sure I’ll ever use this feature, but it was specially requested, and so I include it here.
There are a few other notable UI enhancements. Here you can see that invoices are now separated by month in an effort to make a quick visual scan of your accounts easier. This turns out to really help when you’re trying to scan through the list. I’ve had it in my local copy for weeks now, and when I flip back into the “old style” I wonder how I ever did without.
Community Input
Another thing that this release will mark is the first significant input from the community into the project. BambooInvoice 0.8.2 is probably feature-rich enough for me, but the enthusiasm of the users has really kept me wanting to keep building. Itemized invoices, saving local PDFs, and many of the usability enhancements where user suggestions (thanks!). Also, another language (Portuguese) has been added, proudly bringing it up to 7 languages. Thanks Matt Finazzo and ELRafael! Some of the language translations may be inaccurate, so if you use Bamboo in a non-english language, please don’t hesitate to send me corrections or enhancements. Or heck, other languages!
Private Beta
Yeah, same paragraph from above ;) In order to make sure its running smoothly, I’d like to solicit some people willing to take part in beta tests. In order to participate, you’ll need to be comfortable backing up and restoring your database. I’d also love to get some non-English speakers into the mix. If you’ve been wondering how you can help out with Bamboo, this is it. Please contact me.
This entry was made on November 28th, 2007 @ 19:43 and filed into BambooInvoice.

Dansig Elmore wrote on November 28th, 2007 @ 22:17
OMG Ponies!
Seriously, this looks sweet. I’ve only been using BI for a few months, but I’ve been deeply impressed. I read about a few of the things you said you did on forum.bambooinvoice.org and thought they sounded like really good ideas at the time. Its cool to see that you’re really listening.
I wish I could help out more, and I could do some testing if you want. email me of you want.