Sales, purchasing and inventory system


Large Bundaberg Custom Door Manufacturer

Over $10,000
  • The project commenced in December 2007 with a planned delivery date of May 5th and a warranty period to follow.
  • The project was delivered on time and budget.
  • Additional enhancements outside the original specification were completed prior to the end of the warranty period.

About the client

The client was a Bundaberg based retailer and manufacturer of high-quality doors, frames and fittings. They have showrooms in Bundaberg and Hervey Bay. Their product mix includes doors manufactured on-site using state-of-the-art equipment, imported doors, door frames, side-panels and door hardware.

About the project

The client was seeking an integrated sales, purchasing, inventory and manufacturing system that was specifically tailored to meet their unique needs. They had considered various proprietary systems including MYOB and Quicken and had deemed them unsuitable for their particular needs.

About the chosen platform

The development was delivered using an Ext JS based Rich Internet Application (RIA) with a WAMP (Windows-Apache-MySql-PHP) backend.

Feature list


Functionality required in the sales module was as follows

  • The ability to record a sale against a customer and/or builder specifying line items, quantities, discount and GST applicable.
  • The ability to receipt the sale as either an account or cash sale.
  • The sales module must cater for quotes (provisional sales), credits and orders (pending assembly/delivery).
  • The ability to merge detailed lines in an invoice to limit the granularity visible to the customer but still retain the detail for inventory and reporting/enquiry purposes.
  • The ability to automatically generate a purchase order or purchase order reminder when stock levels are insufficient to satisfy the order.
  • The ability to generate job cards to enable the manufacturing team to produce the door to suit the customer’s order.


Functionality required in the purchasing module was as follows

  • The ability to raise a purchase order from a supplier specifying product quantities, discount and applicable GST
  • The ability to record a goods receipt against a purchase order
  • The ability to record an invoice against a goods receipt including terms and any discount periods
  • The ability to see an ageing analysis of accounts payable by supplier
  • The ability to record a credit note against an invoice
  • The ability to auto-generate purchase orders or reminders to generate purchase orders when accepting a sale for a product that would result in a negative stock balance
  • The ability to receive a weekly email of purchase orders due and discount terms expiring in the coming week
  • The ability to enquire and report against purchase orders, goods receipts and invoices
  • The ability to generate remittance advices


Functionality required in the inventory module was as follows

  • The ability to create, modify and enquire on stock items
  • The ability to set item prices
  • The ability to make stock adjustments.
  • The ability to determine value of stock-on-hand for accounting purposes. This will be calculated using the first-in-first-out method FIFO.
  • The ability to generate count-sheets for stocktaking purposes.
  • The ability to enter results from stocktaking.


Functionality required in the accounts (receivable/payable) module was as follows

  • The ability to produce account summaries including ageing reports
  • The ability to record payments against accounts
  • The ability to make account adjustments
  • The ability to create, modify and enquire on new accounts


Functionality required in the manufacturing module was as follows

  • The ability to generate ‘recipes’ which specify the components which go in to the production of various stock items
  • The ability to record the building of recipe items, adjusting the relevant stock levels accordingly


Functionality required in the banking module was as follows

  • The ability to create, modify and enquire on a bank account.
  • The ability to prepare a bank deposit slip (cheques/cash).
  • The ability to prepare an EFT reconciliation report (to compare against nightly EFT reconciliation)
  • The ability to generate a bank statement reconciliation report

General Ledger

Functionality required in the General Ledger module was reporting/maintenance of the following:

  • Accounts payable totals
  • Accounts receivable totals
  • Sales totals
  • Cash, EFT, cheque and credit card receipts and payment totals
  • Value of stock on hand, stock adjustments

Contacts File

Functionality required in the Contacts File module was as follows:

  • The ability to create, modify and enquire on customers, suppliers, builders and other business contacts.
  • The ability to make file notes to record interactions with customers, suppliers and builders
  • The ability to set reminders on file notes to ensure appropriate follow ups