Exploring BambooInvoice

Usually bamboo refers to grass ( same category ) sort of plant.. bt in bangladesh; sometime we refer bamboo as having hard time.
Like:  I am getting a bamboo in my a** dealing the last project. Means: i am having a hard time with my last project.

But in case of BambooInvoice .. quoting from the main site..

BambooInvoice is free open-source invoicing software intended for small businesses and independent contractors. Our number one priorities are ease of use, user-interface, and beautiful code. BambooInvoice was built by designer and programmer Derek Allard.”

And i am really surprised and impressed by seeing the simplicity of this system. My objectives for 1 of my projects were:

  1. Integrating BambooInvoice 0.8.4 with one of my project developed using CodeIgniter 1.6.1 .
  2. Pass additional Data to Clients.
  3. Pass additional Data during New Invoice Creation.
  4. Creating New Items in Invoice, on Fly.

To solve objective 1:  BambooInvoice uses ‘Site Sentry security library’ By James Nicol www.glossopteris.com. So, all i did is removed ‘if (!$this->site_sentry->is_logged_in()…. ‘ from each controller and in 1(not sure may be 2 ) view files.

To solve objective 2:  I passed my Agency(in my project agency is client) data into clients table and altered the table as necesary.

To solve objective 3: In my project after selecting the client the user had to choose a contract id. So, i had to use an onchage event. That did not worked because ‘newinvoice.js’ defines the event for that client_id select box. Moreover from a view file (common_assets/invoice_new.php) the display of newinvoice is made hidden. For this i tweaked these 2 files and other necessary changes. To hold the other important datas in table i added ‘contract_id’ field in ‘invoices’ table.

To solve Objective 4: My Items in Invoice were categorized like VAT on total Amount, AIT on total amount.. etc. I have added a reference key from table ‘tbl_invoice_item_type’ which holds the percentage of VAT and other info, into ‘invoice_items’.

The logic structure and data manipulation in BambooInvoice is so organized that all i have to ask myself is what i want to do?? and then i have to check the flow of the application.

Though ‘BambooInvoice is still pre 1.0. There are a few bugs and uncompleted features. It is stable for everyday use, and is growing all the time.’ bt it saved a good amount of my work. 3 cheers to Derek Allard. Keep up the good work.