Checking a purchase order
How FlowOS reads a client's purchase order, compares it with the quotation it accepts, and how an Office Head decides it.
What this process achieves
A client’s purchase order arrives as an email. FlowOS reads it, compares it with the quotation it accepts, and shows every difference on the email in the inbox. Nothing is decided for the client: a difference is shown, a person settles it, and an Office Head records whether the order is accepted. Raising the sales order stays in the ERP for now.
When FlowOS reads a purchase order
FlowOS reads an email typed as a purchase order once it is linked to an enquiry. It reads the attached documents, scans and pictures, and the email’s own text. For the position of each column it also reads the first 40 pages of up to five PDFs, each at most 10 MB. A file we issued ourselves, and a repeat of a file already read, is passed over.
A line’s amount the reading left out is taken from its row. An order discount printed on a line of its own is kept when the amount it prints, or else the taxable total, bears it out, and not when it hangs on payment. A discount read from a row that names no discount, such as a packing row or a sub-total, is dropped. Packing or freight counts as included only when the PO’s words say so. A term that says its answer “will be advised” and gives no figure is open.
Mail delivered to a mailbox outside the allow-list is not read until Flowtech records its zero-retention agreement.
The PO check sits in the action column of the email. Until it has something to show, it says one of these:
| The panel says | It means |
|---|---|
| FlowOS hasn’t read this email for a purchase order yet. | The email is waiting. Check again fetches the answer again |
| FlowOS found no purchase order in this email. | Nothing in it looks like one. The email waits in Needs Review as no_purchase_order_found |
| FlowOS couldn’t read a purchase order from this email. | A file that may be a purchase order could not be read. The email waits in Needs Review as purchase_order_unreadable, and the files are listed under “Files FlowOS couldn’t read” with the reason |
| Viewing the PO check needs permission to view sales orders. | The signed-in person lacks sales-order:view |
An older PO that arrives after its amendment is saved in the chain behind it, and the amendment stays the one that counts. A PO that has been amended, cancelled or short-closed takes no decision.
Which quotation it is compared with
A PO is compared with one issued version of the quotation it accepts (R113). FlowOS picks it in this order:
- The version a person chose.
- Otherwise the best match among the versions the email is linked to or the PO cites, or, when there are none, among every version issued before the PO arrived. The best match pairs the most lines, then has the fewest differences in the model number, then the most quantities agreeing. Of revisions of one quotation that match equally, the newest wins.
The header shows the version and how it was found under Compared with and Matched by. A later issued revision is named, such as “R2 issued later”, and is not compared. When two quotations fit equally the panel says “Two quotations fit equally” and a person picks one. With no issued quotation the panel says “No FlowOS quotation”. With a PO that has no lines it says “Not compared”.
Reading the check
The check opens on PO vs Quote. A summary line counts the rows by what they mean for the order, for example “2 to resolve · 1 open · 14 matched”, beside the note “Proposed rules, pending Flowtech”. Rows are grouped as Lines, Parties and tax, Terms and Order, differences first. Matched rows are folded behind one button.
Each row carries a verdict:
| Verdict | Meaning |
|---|---|
| Mismatch | The PO states something different from the quotation |
| Open | FlowOS cannot tell, and a person must answer |
| Not stated | The PO is silent. This is not a difference (R114) |
| Not in quote | The PO states something the quotation does not hold, such as a line never quoted |
| Not ordered | A quoted line the PO leaves out |
| Fewer units | A quoted line the PO orders in a smaller quantity |
| Matched | Same on both |
A row holds up the order when it is open, a mismatch, or a line the quotation never held. Some exceptions apply: a mismatch on the order total, or on a line whose only difference is the tail of the HSN code, does not hold it up, nor does a party value or a term the quotation lacks, such as credit days, deemed acceptance, the subject line or other terms. Not ordered, Fewer units, Not stated and a match never hold it up (R114). The header says “N to resolve”, “N to answer”, or “Nothing holds up the order”. Which rows hold it up is a proposal, pending Flowtech’s confirmation.
An order code that cannot be compared with the quoted one, such as another maker’s, is an Open row reading Order Code is not ours, with both codes. Our own code, with or without the maker’s head, is never one, and pairing the line by hand answers it.
PO arithmetic checks each line and the taxable total. The total may carry on top the charges the PO states, or those the quotation bills, such as packing at 3%. A charge the PO says is included does not count.
Source opens the quotation and the PO document side by side, from the header or from one row.
Re-matching
A person with sales-order:edit can correct how the PO pairs with the
quotation, from a row’s ⋯ menu or from the header:
- Pair with another quoted line pairs a PO line with a quoted line.
- Mark not quoted says the PO line is not on the quotation.
- Let FlowOS pair it hands a line back to FlowOS.
- Change beside Compared with chooses the version to compare with. With nothing compared, Pick the quotation sits beside Quotation instead.
These are saved, and the check is worked out again at once. Choosing a new version clears the pairs made by hand against the old one. Any re-match or change of version reloads the check and drops the corrections made on the page that were not yet saved.
A PO that was amended, cancelled or short-closed shows no re-match, and says so under the header facts.
Settling and correcting
The same ⋯ menu settles a row: Request updated PO, Correct quote, Accept as is (Office Head or Admin) or Not a real difference; an open row is Answered. Edit PO value corrects what FlowOS read, and Undo my changes takes a correction or settlement back.
These are not saved. The page says “Not saved — kept until you reload”, and they are gone after a reload. They help the person reading the check, and settling every row that holds up the order is what opens SO Generation; the decision below is what is recorded.
Deciding
An Office Head or Admin, with sales-order:approve, records one decision for
the whole PO, with Record decision (R116). It sits under SO Generation;
a PO with no check has no tabs, and is decided from the bar under its facts:
- Accept
- Accept with deviations
- Ask for amendment
A note is needed for every decision except Accept on a PO that has a check. A later decision replaces the earlier one. The decision is kept with the check it was taken on. If the check has since moved, for example after a re-match or because the PO was read again, the decision line shows Check changed since.
SO Generation is locked while any row holds up an undecided order. It opens once every row that holds up the order is settled, or once a decision is recorded, and the decision shows at the top on every reload.
Several POs in one email
An email with several purchase orders shows one check for each, each decided on its own. A relink moves the email’s POs to the enquiry it is moved to. A PO already decided keeps its decision and reads “Check changed since”.
Deemed acceptance
Some POs state that the order is deemed accepted if Flowtech does not answer within a number of days. FlowOS shows the date as Deemed accepted on beside the header’s counts, red once the date has passed (R115). No alert is sent.
Source
Rules R113, R114, R115 and R116. Part of step 12 of Enquiry to quotation. Where a mail is linked first: Linking mail after a quotation.