BambooInvoice Change Log

See Also:

Change Log

From 1.0.7 to 1.0.8 (Released October 4, 2023)

  • Update to dompdf 2.0.3
  • corrections for upwards compatibility of PHP 8.2

From 1.0.6 to 1.0.7 (Released June 7, 2022)

  • Changes in controller/Reports.php for PHP 7.4+ optimizing date and performance
  • Update to dompdf 1.2.2
  • Error Fix with Exchange Rate during validation
  • diverese minor corrections for upwards compatibility of PHP 8

From 1.0.5 to 1.0.6 (Released May 15, 2020)

  • Fix quick create invoice with client name
  • Added more fixes to accomodate sql_mode=ONLY_FULL_GROUP_BY
  • Updated to Codeigniter 3.1.11
  • Updated to dompdf 0.8.5
  • Added CSRF please copy the CSRF lines in config.sample.php to your config.php when upgrading
  • Consolidated pdf printing into one function. Download and emailing invoices will use same pdf function
  • fixed sending emails with invoice
  • cleaned up pdf printing code using only one function

From 1.0.4 to 1.0.5 (Released Jan 8, 2019)

  • Make zero sum invoices which are not paid editable.
  • New item in invoice show the right currency_symbol
  • Added some indexes to the tables for performance reasons
  • Adapted code to accomodate sql_mode=ONLY_FULL_GROUP_BY
    • Select distinct introduced to be compatible with mysql

From 1.0.3 to 1.0.4 (Released July 14, 2018)

  • Add Settings configuration Display Zero Tax Line on invoices

From 1.0.2 to 1.0.3 (Released July 13, 2018)

  • Upgrade to CodeIgniter Version 3.1.9
  • Additions to Estonian language

From 1.0.0 to 1.0.2 (Released February 20, 2018)

  • Upgrade to CodeIgniter Version 3.1.7
  • Upgrade to dompdf pdflib Version dompdf-0.8.2
  • Eliminated the dependency to mcrypt(deprecated) and use OpenSSL instead
  • Compatible with PHP 7.2
  • few code fixes

From 0.8.9 to 1.0.0 (Released November 11, 2016)

  • Upgrade to CodeIgniter Version 3.1.2
  • Upgrade to dompdf pdflib Version dompdf-0.7.0
  • Introduced Accounting currency in global settings
  • Introduced Currency conversion through (get a free api key from 1000 Requests per Month
  • Introduced currency_symbol and currency_type in client table as default value
  • Introduced currency_symbol and currency_type in invoices table
        Accounting Currency Code ISO 4217 ie: USD CHF CAD
  • Introduced accounting_invoice_exchange_rate on invoices db-table to convert to globally defined accounting currency as per invoice date
  • Added accounting total to view, pdf and email
  • Introduce api_key in settings table to access
  • Optimized rendering to 3 code currency symbols such as USD, CHF and so on
  • days_payment_due value is taken form invoice not from global settings anymore
  • Work description visualization changed in invoice edit, view and summary
  • Ajax script adjusted to return work description as well
  • Reduced calls to settings_model
  • Code clean up. Still not perfect but getting there.

From 0.8.8 to 0.8.9 (Released April 15, 2009)

  • Updated to CodeIgniter 1.7.1.
  • Added an option (on by default) to display the first 50 characters (approximately) of the first item of any invoice on the invoices summary page.
  • The invoice filename is now saved with the i18n version of "invoice".
  • Reports can now do any year, and not only the current year.
  • Fixed a bug where password potentially got double encoded during reset.
  • Fixed a bug where tax exempt clients had the tax checkbox checked when creating a new item.
  • Fixed a bug where quotes were converted to ? in the PDF.
  • Fixed a possible rounding error when retrieving all invoices.
  • Fixed a bug when resetting the password of an admin who isn't the primary.
  • Added in a few more language keys for untranslated text.
  • Optimized the login process, should be quicker now (but I doubt any human would notice... robots on the other hand, those guys are crafty).
  • Added a hidden config variable to customize the filename of the database backup file.
  • Moved "blind copy me on this email", and "donate" into a language variable.
  • Added Estonian language pack.
  • Modified DOMPDF to make it run a bit faster by fixing a uniqid() call.
  • Removed ".00" from quantity listings, so now a quantity of "5.00" will simply say "5".
  • Removed the "work description" heading before the table on invoice views. I feel it was superfluous.
  • Removed an inadvertent "database backup" heading from utilities.
  • Informational messages such as "invoice successfully edited" will no longer print.
  • Changed the maximum length of invoices to 50 characters.
  • Date formatting is now configurable via a hidden config option.
  • Increased spacing in invoice item lines for added readability.
  • Increased the invoice note field to 2000 characters.
  • Dutch language pack is now improved. Thanks to Ilco Everraert.
  • French language pack is now improved. Thanks to Jeremy Bunlon.
  • Behaviour change: prior to 0.8.9, changing the email under settings would only change the address used when sending emails, and not the login email. Changing it now also changes the login.

From 0.8.7 to 0.8.8 (Released December 22, 2008)

  • Updated to CodeIgniter 1.7.0.
  • Added the ability to duplicate invoices.
  • Added the ability to have multiple admin accounts.
  • Enabled email functionality to work after an invoice is closed.
  • Invoices now detail amount paid and owing if an invoice has partial payments applied to it.
  • The date an invoice is due is now visible on the invoice itself beside "payment terms".
  • Expanded the email field for client contacts to 127 characters.
  • Added "tax code" to the information about a client, particularly useful for countries that require printing a client's taxcode by law.
  • Added the hidden config variable "$config['currency_decimal'] = '.';" to allow the separator between dollars and cents to be a non '.' if wanted. For example: $24.67 vs $24,67 vs $24_67... or whatever.
  • Added a hidden config variable to allow output of a profiler on each page... if you're hacking Bamboo, enable $config['show_profiler'] = TRUE;
  • Moved invoice payment into model.
  • Added a Danish language pack (thanks René Gylling!), but it still uses English system messages.
  • Added a 'logo_base_url' hidden configuration option to force the image path on some servers for PDF generation.
  • Updated Swedish language pack (thanks Mikael Johansson!)
  • Restructured the logic of settings to catch some additional errors.
  • Added a unique invoice number check in.
  • Added the ability to have negative taxes.
  • Added some formatting changes to address if fields such as city are left blank
  • Added a new language key for "Amount" for items, vs for the whole invoice: $lang['invoice_amount_item']
  • The whole system is now subclassed under a new controller for login and other tasks.
  • Fixed a bug where incorrect maxlengths were added to client contact information.
  • Fixed a bug where accented characters would display garbled in some fields.
  • Fixed a link generated over Ajax that may be broken on some server setups.
  • Fixed a bug where total wasn't updated after an item was removed.
  • Fixed a bug where some international characters were getting double encoded in payment notes and private history.
  • Fixed a bug where settings would report an error if no update was made.
  • The ongoing task of cleaning up code still continues... and I absolutely must get Bamboo into jQuery and out of scriptaculous (its a personal preference, there's nothing technically wrong with scripto).

From 0.8.6 to 0.8.7 (Released August 25, 2008)

  • Naming changes on "private" invoice notes.
  • Further adjustments to how logos get included. I think this time all the issues are resolved.
  • Uploading a logo now changes both the web and PDF views.
  • Fixed a javascript error when attempting to add items in invoice edit mode.
  • Fixed a bug where the euro wasn't decoded correctly.
  • Fixed a bug where tax_status wasn't honoured when editing an invoice.
  • Fixed an error where the remove item image wasn't loading in some situations.
  • Moved settings_validation, clients_validation, client_contact_validation, invoice_edit_validation, and invoice_validation into private functions respective controllers.
  • Disabled auto-completing in invoice creation.
  • Globally changed $invoiceNumber to $invoice_number (including javascript and database columns), $invoiceData to $invoice_data, $invoiceItems to $invoice_items
  • Globally changed getSetting() to get_setting(), getAllClientInfo() to get_client_info().
  • Moved "download backup" to a language variable.
  • Moved logo insertion code into a centralized location.
  • Added "Edit" option to Ajax client contact creation, move text into language variables.
  • Specified that logo inserts must be jpg or gif for PDF creation.
  • Fixed a stray call that was generating csv data twice
  • Flushed out new version check tool in utilities. Its functional now.
  • Removed the unused views simple_header and simple_footer
  • Removed "help" link from upper right. It never materialized as I imagined it would.
  • The ongoing task of cleaning up code continues...

From 0.8.5 to 0.8.6 (Released July 15, 2008)

  • CodeIgniter 1.6.3 upgrade.
  • Added custom logo upload feature.
  • Added password change functionality.
  • Added tax code to invoice view and PDF.
  • Added a new version check tool into utilities.
  • Added a hidden config variable to allow invoice numbers to be controlled by client, and not globally.
  • Fixed a bug when generating reports with no invoices.
  • Fixed a bug where a single invoice view wasn't accounting for configured days overdue when reporting how overdue it was.
  • Moved most of the pagination configuration into config/pagination.php.
  • Removed hardcoded english text from invoice_table_inc, retrieve_invoices() function, and settings page.
  • Fixed up the CSS to work on very wide resolutions (Man I love my iMac...).
  • Fixed a bug where tax status was not honoured for invoice items.
  • Fixed some rounding error that may cause closed and paid invoices.
  • Reduced a lot of duplicated code in the invoice retrieval functions.
  • Fixed a bug where status was hardcoded to 30 days when viewing individual invoices.
  • Fixed a layout issue, where low resolution monitors had invoice items overflowing.
  • Moved some items out of "common_assets" view group and removed "inc" from filename
    • loginform moved to login.
    • invoice_new moved to invoices.
    • invoice_table moved to invoices.
  • Moved export options out of invoices and into utilities.
  • Removed views for all, open, overdue, closed and replaced with a single status_view.php.
  • Added a password confirm field to the installer.
  • Removed invoice_status_menu, sub_menu, invoice_action_menu.
  • Fixed a bug where client notes could not be left blank.
  • Fixed a bug where clients with no invoices generated an error when deleted.
  • Fixed a bug where password reset was referencing a non existing function getContactId().
  • Cleaned up forgotten password view a bit.
  • Italian language pack added.

From 0.8.4 to 0.8.5 (Released May 20, 2008)

IMPORTANT NOTE: The update to 0.8.5 requires that you are already on 0.8.3 or 0.8.4 - unlike previous versions, Bamboo will not walk you through incremental updates (ie: from 0.8.1 to 0.8.2 and then to 0.8.3).

  • Added per invoice Notes functionality.
  • Added Client Notes functionality.
  • Added a proper installer, much sexier and easier. Bamboo now uses DB Forge and fully supports table prefixes (hardcoded SQL previously didn't allow for this).
  • Added full and true database prefix abstracting. There were several places where SQL was hardcoded... messing things up tremendously.
  • Turned off logging by default. Non-writable folders where causing a lot of grief for people.
  • Fixed a bug where reports used 30 days as the overdue date, instead of the user defined limit.
  • Fixed a bug where invoices spanning over more then 1 page generated an error.
  • Fixed a bug where the "forgot your password" link pointed to the wrong location.
  • A few CSS tweaks.
  • Some code cleanup.
  • Swedish language pack added.

From 0.8.3 to 0.8.4 (April 10, 2008)

  • Made most fields in settings optional.
  • Bamboo now tries to increase the available PHP memory for PDF generation.
  • Added support for partial quantity units.
  • Fixed a bug in reports where it was miscalculating the total.
  • Fixed a bug when creating new items in IE.
  • Changed a few language keys.

From 0.8.2 to 0.8.3

  • Added itemized invoice capability. This involved a major re-architecting of the underlying code.
  • Added per item tax information (you can mark individual items as taxable or not) .
  • Some models autoloaded now.
  • Removed the deprecated "scripts" used.
  • Added a monthly title when looking at invoices in summary format to quickly tell invoices from different months.
  • Added some additional checks to prevent accidental editing of administrator data.
  • Added a settings option to toggle on and off "Invoice generated by BambooInvoice" from the footer of invoices.
  • Added the ability to save PDF invoices on the server .
  • Added a utilities panel to the root system.
  • Added a database backup tool to utilities.
  • Added a PHP info tool to utilities.
  • Added Portuguese as a language option.
  • Added Bulgarian as a language option.
  • Bamboo now uses your setting for "days due" to determine if an invoice is overdue or not.
  • Intelligent handling of "days due" when displaying invoice status.
  • Modified the layout and behaviour of the settings menu.
  • Modified a few error messages to give clearer meanings.
  • Fixed a bug that caused the logo to not load into the PDF on some setups .
  • Fixed a bug that caused "€" to render as glitch in the PDF .
  • Fixed a bug that prevented some cc'ing when sending.
  • Fixed a bug that prevented special characters from rendering in a client name when searching dynamically .
  • Fixed a bug that caused an error when invoice number was left blank.
  • Fixed a bug that caused overpaid invoices not to register as closed, in fact - rebuilt most of the "status" code to eliminate bugs .


  • In order to accommodate itemized invoices, amount, work_description, and some tax information was migrated to a new table "invoice_items".
  • Previously, due to an oversight, an invoice was considered "closed" if the amount paid was >= the amount owing not considering tax. This has been changed. For example, a $100 invoice with $7 tax will not be considered "closed" until $107 (or more) is entered in the payment. Previously, $100 would have marked it closed. .
  • Some lines lack appropriate translation, or are machine translated. I'd be grateful for any improvements non-English speakers could suggest.

From 0.8.1 to 0.8.2 (released Sept 13, 2007)

  • Change to flashdata instead of standard userdata for sessions, reducing the code volume and complexity.
  • Many settings such as address are no longer required fields .
  • Code cleanup, and moved many more queries into models (that's getting old now, I know).
  • Added a few more missing language variables, around user messages in client creation.
  • Changed meta tags to noindex for the non-demo version of Bamboo to prevent accidental search engine inclusion .
  • Romanian language file.
  • Fixed a bug in the dutch language file causing headers not to be sent.
  • Fixed a bug that caused an error when invoices were only mailed to yourself.
  • Fixed a bug that sometimes incorrectly reported closed and overdue invoices .
  • Fixed a bug where change the date paid wasn't sticking.
  • Fixed a bug where some closed invoices weren't registering as such in the non-ajax calls .
  • Fixed a bug where the logo didn't go on the PDF invoice (Déjà vu all over again...) .

From 0.8.0a to 0.8.1

  • Code cleanup, and moved many more queries into models .
  • Adjusted the maximum length of the username and password fields to allow for 50 and 100 respectively.
  • Change in the PDF plugin helper for greater compatibility.
  • Removed the default user/pass from the login page for non-demo uses.
  • Added Spanish as a language .
  • Fixed a bug where some currency symbols weren't recognized .

From 0.8.0 to 0.8.0a

  • Fixed a bug where textarea newlines were converted into '\n'.
  • Added a few missing language variables.
  • Fixed a bug where the calendar wasn't changing dates.
  • Added Dutch as a language .

From 0.76 to 0.8.0

  • Quarterly reports added.
  • Year to Date graph added.
  • Significant overhaul to the way languages are handled to allow for internationalization .
  • Added language files for French and German .
  • Added ability to customize the currency symbol (ie: $ vs £ vs ¥).
  • Fixed up the password reset option, and enabled it.
  • Added bambooinvoice_version flag for easier upgrade path.
  • Added a demo_flag for easier developer maintenance. When set to "y" Bamboo runs in demo mode.
  • Added configurable date-based reports.
  • Added an actual changelog page.
  • Removed the "payment terms" option for individual invoices, and implemented a global preference.
  • Cleaned up some grammer grammar, spelling, and wording .
  • Updated the userguide to reflect recent changes.
  • Removed short tag references for greater compatibility.
  • Added a routine to install to check for required PHP versions, libraries, and writable folders.
  • Fixed a bug where the wrong invoice number was reported when deleting.
  • Fixed a bug where closed was reporting non-closed invoices.
  • Fixed a bug where export to XML defaulted to wrong data.
  • Fixed a bug where the logo didn't go on the PDF invoice.
  • Fixed a bug where page_title didn't show in settings.
  • Removed many unused legacy files, scripts and functions, and better organized some files.
  • Moved Bamboo to CodeIgniter 1.5.4, resulting in numerous security and stability enhancements.

From 0.75 to 0.76

  • Upgraded to CodeIgniter 1.5.3.
  • Fixed and enhanced reporting functionality.
  • Squashed a few bugs.
  • Squashed more bugs.
  • Boy, many bugs got squashed .
  • Added a few new model functions to allow for more potent reports down the road .

From 0.73 to 0.75

  • Upgraded to CodeIgniter 1.5.2 .
  • Fixed a bug preventing email from being sent.
  • Changed the userauth system to simplify it.
  • Fixed a bug in PDF generation .

From 0.72 to 0.73

  • Further code cleanup.
  • Remove all known outstanding bugs .

From 0.71 to 0.72

  • Bug fixes, changes related to installing in non-root environment .

From 0.7 to 0.71

  • Some minor code cleanup.
  • Invoice homepage AJAX bug fixed.
  • Included missing .htaccess file in download .

From 0.6 to 0.7

  • Upgraded from CodeIgniter 1.32 to 1.33.
  • Fixed a few bugs and streamlined a bit of code.
  • Modified code so that BambooInvoice can install in any sub directory or alias.
  • Wrote installation script.
  • Graphical installation guide .