Rules per process
The rules are data: rules.csv in the data folder. Change a value, restart, and the same data gets a different verdict. A check is on (1) or off (0).
Invoices against order and receipt
| Rule | Value | Meaning |
|---|---|---|
| invoices.price_pct | 2 | unit price may be this many percent away from the order |
| invoices.qty_over | 0 | units invoiced above what was received that still count as agreeing |
| invoices.check.IBAN | 1 | bank account against the supplier register |
| invoices.check.DUPLICATE | 1 | the same supplier invoice number came in before |
| invoices.check.QUANTITY | 1 | more invoiced than received |
| invoices.check.PRICE | 1 | unit price against the order |
Always on: an order on the invoice, and something received on that order. Sources: suppliers, orders, receipts, invoices. Key fields: supplier, order, supplier invoice number.
Bank against open invoices
| Rule | Value | Meaning |
|---|---|---|
| bank.amount_cents | 5 | difference in cents between payment and invoice that still counts as agreeing |
| bank.check.PAYER | 1 | the paying account is the customer's account |
| bank.check.DUPLICATE | 1 | an earlier payment already named the invoice |
| bank.check.PARTIAL | 1 | less than the invoice |
| bank.check.OVERPAID | 1 | more than the invoice |
Always on: an invoice named in the description, and only one. Sources: bank lines, open invoices. Key field: the invoice number in the description.
Invented data, every IBAN has the bank code DEMO. MatchClerk prepares and flags; it never pays, books or pays back anything. A person decides.