BambooInvoice web-based invoicing application

Smooth Solution


If you want your business to run smoothly, deploying a dependable invoicing solution should be among your top priorities. BambooInvoice offers a user-friendly, web-based invoicing solution.

By Dmitri Popov

As a freelancer or a small business owner, you might be tempted to use a Calc spreadsheet or a Writer template to generate and manage invoices, but a dedicated invoicing application can save you a lot of time and frustration in the long run. If installing, configuring, and learning to use an invoicing application sounds like a daunting proposition to you, then BambooInvoice [1] is what you need (Figure 1).

Figure 1: The user-friendly BambooInvoice features a clear and functional interface.

BambooInvoice is a PHP/MySQL-based application, so you need a machine running the LAMP (Linux, Apache, MySQL, PHP) stack. If you don't have the time or necessary skills to set up the stack yourself, your best option is to use the XAMPP package [2], which comes with all the required components preconfigured and ready to run.

Getting Started

Installing BambooInvoice with XAMPP running on your machine is not difficult. To start, create the bambooinvoice database. To do this, you can use the phpMyAdmin tool bundled with XAMPP. Then download the latest version of BambooInvoice, unpack the downloaded archive, and move the resulting bambooinvoice folder to the htdocs directory in the XAMPP installation.

Next, make the invoices_temp and /img/logo directories writable by changing their permissions to 777. Then navigate to the /bambooinvoice/bamboo_system_files/application/config/ directory, open the database.php file in a text editor, and modify the default MySQL connection settings as follows:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";

While you are at it, turn database debugging off by changing the TRUE value in the $db[`default'][`db_debug'] = TRUE; line to FALSE.

The installation notes that come with BambooInvoice also recommend changing the default encryption key to make your system more secure. To do this, go to the /bamboo_system_files/application/config directory and open the config.php file in a text editor. Locate the $config[`encryption_key'] line and change its default value to a random string. Here, you can also change BambooInvoice's default language by replacing the default "english" value in the $config[`language'] = "english"; line with another supported language (e.g., "french", "german", "dutch", "romanian", "spanish", "portuguese", "bulgarian", "swedish", or "italian").

If you want to be able to send invoices via email directly from within BambooInvoice, you must specify the SMTP server settings. To do so, navigate to the /bambooinvoice/bamboo_system_files/application/config directory and open the email.php file in a text editor. Uncomment the following block and specify the SMTP server, user name, and password:

$config['protocol'] = 'smtp';
$config['smtp_host'] = 'smtp1.mailserver.ca';
$config['smtp_user'] = 'username';
$config['smtp_pass'] = 'password';
$config['smtp_port'] = '25';

To finish the installation, delete the /bambooinvoice/bamboo_system_files/application/controllers/install.php file. Point your browser to http://localhost/bambooinvoice and log in to BambooInvoice using the email address and password specified during installation. This brings you to BambooInvoice's main window (referred to as Root System) consisting of five sections: Invoices, Clients, Reports, Settings, and Utilities.

Settings

First you'll need to specify your account and invoice settings, which is done in the Settings section (see Figure 2). All the fields in the Account Settings subsection are self-explanatory, so you shouldn't have any trouble completing them. The Invoice Settings subsection allows you to specify different invoicing options, such as the default invoice note, currency, payment period, and tax information. Finally, the Advanced Settings subsection lets you add a custom logo that will appear on invoices, disable the default branding, and enable saving of invoices.

Figure 2: Before you start using BambooInvoice, you have to configure its settings.

The latter option saves PDF copies on the server, but unless you use a .htaccess file to protect your server, you should leave this option disabled.

Next you'll need to populate BambooInvoice with clients, which is done in the Clients section (Figure 3). After selecting the Create New Client button, fill out the available fields and press Save client. Be sure to pay particular attention to the Tax Status section; here, you can mark the client as taxable or non-taxable. Also, you should add at least one contact to the created client. In the Clients section, click on the client to expand the view, click on the Add Contact link, then add a contact. In the client view, you can also add notes to a particular client by pressing the Notes button. This can come in handy if you need to enter some information about the client, like "Always pays invoices on time."

Figure 3: The Clients section helps you add and manage your customers.

Creating Invoices

To create a new invoice, press the New Invoice button in the toolbar on the left-hand side, select an existing client from the Select client drop-down list, or create a new client on-the-fly by entering a name in the appropriate field (Figure 4). To create the invoice and open it for editing, press the Create Invoice button.

Figure 4: Creating an invoice.

If you want to change the default invoice number or invoicing date, you can do so by modifying the appropriate options. Then fill out the first invoice item and, if necessary, create additional items by pressing the New Item button. To save the invoice, press the Save Invoice button. This displays the created invoice and, using the available buttons in the toolbar to the left, you can perform several actions (Figure 5). Using the Email Invoice button, you can send the invoice via email to a specified contact, whereas the Generate PDF button generates a PDF version of the invoice that you can then either print, send via email as an attachment, or archive for future reference.

Figure 5: Using the buttons in the main toolbar, you can perform different actions with the invoice.

To send the invoice directly to your printer, use the Print Invoice button. If you want to modify the currently viewed invoice, you can use the Edit Invoice button or delete the invoice by pressing the Delete Invoice button. The Private Note button allows you to attach a note to the invoice, which then appears in the Invoice History & Private Notes section below the invoice itself.

After the client has paid the invoice, you must close it with the use of the Enter Payment button. If you enter the full amount, BambooInvoice automatically marks the invoice as closed. From that point, you can neither edit nor send the invoice.

BambooInvoice also allows you to enter partial payments, which can come in handy when the client pays the invoices in several installments. Every time you add a payment, it appears in the Invoice History & Private Notes section, so you can keep track of how much of the invoiced amount has been paid.

The Invoice Summary button opens a window that provides an overview of the invoices in the system. By default, BambooInvoice displays a list of open invoices (i.e., sent but unpaid invoices that are not overdue). To view the overdue invoices, select the Overdue option. In a similar manner, you can view the closed invoices or all invoices by selecting the appropriate option. To display a list of invoices for a particular client, choose it from the Select client drop-down list.

Of course, BambooInvoice comes with reporting features, which you can access through the Reports section (Figure 6). Although BambooInvoice's reporting capabilities are not particularly sophisticated, they provide enough information to help you track your invoices and income. The available buttons let you generate quarterly reports quickly, and the Yearly Income graph provides a visual overview of your earnings. The main window of the Reports section also contains a list of open and overdue invoices, as well as the total number of invoices issued to the current date.

Figure 6: BambooInvoice lets you generate simple reports that can help you track your invoices and income.

Useful Tools

In the Utilities section, you'll find a couple of useful tools. Clicking on the Database backup link lets you download a database backup file in the SQL format that you can use to restore BambooInvoice's database if it gets damaged. With the Export feature, you can save invoices from BambooInvoice in XML or Excel format for further processing in other applications, such as OpenOffice.org Calc.Although BambooInvoice generates clean and stylish invoices, you can also tweak the underlying template.

To modify, for example, the template that is used to generate invoices in the PDF format, you have to edit the pdf.php file in the /bambooinvoice/bamboo_system_files/application/views/invoices directory. Even if you are not an expert in PHP and CSS, you can modify the basic settings easily. The first part of the template contains style sheet information, such as font types, text formatting, and colors, which you can adjust. Also, you can remove certain elements from the template. For example, if you don't want your company's website address to appear on the invoice, you can remove it by deleting the following line in the template: <?php echo auto_link(prep_url($companyInfo->website));?>.

Final Word

As a freelancer or a small business owner, you have to take care of many things, including invoicing your customers and keeping track of payments. Often, this is considered to be the least glamorous part of being a freelancer. Yet, the lack of a proper system in place can seriously disrupt your daily work and make the process of running your own business rather frustrating. BambooInvoice helps you avoid that by giving you simple yet effective tools for generating invoices and keeping tabs on them.

INFO
[1] BambooInvoice: www.bambooinvoice.org
[2] XAMPP: www.apachefriends.org/en/index.html
THE AUTHOR

Dmitri Popov holds a degree in Russian language and computer linguistics. He has been writing exclusively about Linux and open source software for several years, and his articles have appeared in Danish, British, North American, German, and Russian magazines and websites.