Hi Calvin,
Firstly, I don't like hearing the words "one-button" click. Mainly because I've already used a button to create the invoice, so which button and when do you need to press it?
Building on what Biplap has said we need to think a bit more about the "review" and "approve" portions.
Review
What are you reviewing? The person creating the invoice is simply taking the data from the invoice and matching it to lines on the PO or they are matching the receipts. Maybe they add an extra line to capture things like freight or customs charges. Then submit for approval. If there is no 3-way match, then it doesn't get approved. At its core, there must be enough receipts (not yet invoiced) equal to the value of the invoiced line.
So, what's to review? It should be nothing as everything was perfect on the PO. Well, what if the total quantity exceeded the ordered quantity? What about the invoice cost exceeds the cost of the PO? Is the unit cost the same as on the PO? Is the GL set correctly? I'm sure there is more, but it will depend on your business rules.
Approval
There are several simple rules:
- Is it within your delegated authority?
- Does the line referencing a PO have sufficient receipts?
- Do have the authority to approve?
- Is tolerance exceeded?
If you use the scenario of only referencing the PO lines rather than receipts, the person doing the data entry won't know if there is sufficient quantity and frankly shouldn't care as all their doing is submitting for approval. What does that mean? Well, it won't approve until there is sufficient receipts.
If you use the scenario of only referencing receipts, then the person has to put aside the invoice if there is no matching receipt. They then have to come back, say the next day then the next, until there is a matching receipt. Massive delays, paper hanging around, frustration, having to call the PO requestor, etc...
So, in this case, I do support the one-button click and that click is the submitting of an invoice for approval via Workflow and putting the validation into WF. For this to work, you need to use the scenario of matching the PO lines. If no match or it does not pass validation, then it's thrown back WF either for someone to fix the error or until such time as there are sufficient receipts. I would ensure that the PO status is changed to WAPPR until it is approved.
I would also build a separate escalation to monitor how long the invoice has been in the wash cycle and to notify both the PO requestor and the invoice creator.
The solution does indeed require some code, a Workflow, and an escalation.
------------------------------
Craig Kokay
Principal Consultant
COSOL
email:
craig.kokay@cosol.global#IBMChampion
------------------------------