Mason Media Lab Invoicing System
Posted by Kurt on Wednesday, May 20, 2009 in category:
- XHTML
- CSS
- PHP
- MySQL
- jQuery/AJAX
- PDF Creation
One major project I’ve been working on has been replacing the person who’s job it was to aggregate all our invoices, send them off to accounting, and report our numbers each month. Her system comprised a number of excel spreadsheets between which she would copy all relevant data. Naturally a database is a much better solution and so I set about creating one. The project is not yet complete, I still have to create the administration section. Most of the framework is in place, though, and the front end is what I consider to be beta status.
This project was a vehicle for me to learn JavaScript. Since our previous system of creating invoices was entirely based in Excel, the new system had to have at least as much functionality. This meant creating a rich web application which would carry out the calculations for costs automatically.
Using jQuery has allowed me to do a number of things with the site that are both aesthetically pleasing and highly functional. The page that allows users to search for and filter invoices, for instance, uses hidden form inputs combined with a table to simulate rich checkboxes. Clicking a table cell highlights or normalizes it, indicating that it is active or not. The actual form element is a hidden input for each table cell that toggles between ‘off’ and ‘on’ through the use of jQuery.
One very important feature of the new system relates to the way we are paid as a university organization. Each organization has one or more fund numbers which they can supply as a form of payment, and funds are automatically deducted when we submit the completed invoices to accounting. Unfortunately, these are simply numbers and are rather non-descriptive. This invoicing system uses PHP/cURL and AJAX to look up the unit name tied to a given org number so we can double check with clients. We have since caught three instances of clients giving us entirely the wrong department’s number.
The system is incomplete, as I have said. I am actively developing it and hope to have it deployed in beta or gold status by the next fiscal year. At this point we intend to start shopping it all over the university to other organizations that provide services within the university. This is highly tentative and should not be taken as official word.
