Quantcast
Channel: Finance – The Happy Coder
Viewing all articles
Browse latest Browse all 3

Invoice Approval System – Part II: The Web

$
0
0

invoice_web copyYou were introduced to the Invoice Approval System project in my recent blog post, Invoice Approval System – Part I. This post is about the second generation of that project where I take it from Microsoft Office-based to web-based. I did this for a number of reasons; it was more efficient, it was easier to use and the reporting was more accessible. I was also able to add a couple features that would have been difficult to do before – escalation and approval by proxy. The application worked as it did before except the clerk would use a web form to send the invoice and the user had their own form for viewing and approving. The AP form was connected to Active Directory (AD) and the recipients e-mail address was taken from there. As a developer I like to remove human error as much as possible and by using AD I took away the possibility of having the invoice sent to someone who no longer worked for the company or mistyping and sending the invoice to the wrong person. The other thing connecting to AD allowed me to do was determine the approver’s manager and send mail to the manager if the approver didn’t act on the invoice in a timely manner.

The first thing to be done was data modeling – what was the database, now SQL Server, going to look like? I needed to track the invoice, the approver, the AP clerk responsible and the status. I needed to know when the invoice was initially sent, when reminders were sent and when escalation notices were sent. The escalation notice was sent to an approver’s manager if the approver had ignored the original approval request and two (2) subsequent reminders. The intention was to have the manager speak with the person and get them to act upon the invoice; the secondary desired effect was to encourage people to act promptly to avoid getting their manager involved. The escalation would continue to move up the org chart until the invoice was approved, stopping short of the CEO (that wasn’t the case initially but one angry e-mail was enough to make the change.) If the escalation process was exhausted and the invoice was left without approval an e-mail was sent to the originating AP clerk to notify them; they would then follow-up with a phone call. To accomplish all of this I needed to build an “audit trail” and stored procedures that would run on timers.

Once the database was sorted out I could start building the user interfaces and build the logic. I needed to restrict access to certain pages and restrict the invoice approval to the intended approver. This is another time that AD played a role, as well as Windows. When a user opened a page in the application their Windows UserID was used to identify them and grant permissions accordingly. The only people allowed to open the distribution page were the AP clerks assigned to the task. There were also a couple of “Super Users” or administrators who had access to different parts of the application, such as assigning access rights and reporting. The user was only allowed to view/approve invoices that were sent to them and so when they opened the approval page they only saw their invoices. They could view the PDF by clicking a link and then approve or reject the invoice by pushing a button onscreen. The responsible clerk was then notified.

This system worked well until someone was on vacation and wasn’t available to approve an invoice – oops! we didn’t think about that…. The answer was to allow a user to assign a “proxy” to approve invoices on their behalf. The proxy could be permanent – like a secretary or assistant – or you could assign someone like a co-worker on a temporary basis by inputting a start and end date.

And there you have it – the new and improved Invoice Approval System! There was now a higher level of accountability, an audit trail to allow AP to know the exact status of an invoice at any time, security and reporting. What more could you ask for? It turns out, quite a bit…. I will save that for the third and final installment of this series.

Until then, I bid you farewell.

If you would like to know more about this project or have one you would like to discuss, please write to me at joe@joevalencia.site90.com.


Filed under: ASP.NET, SQL Server, VB.NET, Web design, Web development Tagged: Accounting, Accounting Department, Accounts Payable, approval system, awaiting approval, excel spreadsheet, excel vba code, Finance, invoice, invoice approval

Viewing all articles
Browse latest Browse all 3

Trending Articles