Purchase Orders Built
A Purchase Order (PO) is AIR's commitment to buy stock from a Vendor — a paper trail raised now for goods that will physically arrive later, on a Goods Receipt. It is the second piece of the new Purchasing area of the console.
What a PO is
A PO records what AIR intends to buy, from whom, at what price, and where it should land — but it does not move any stock or money by itself. It commits a vendor and a set of line items (product, quantity, rate) against a destination warehouse. Once the goods actually turn up, a Goods Receipt references the PO to bring the stock in.
Where to find it & who can see it
Open Purchasing › Purchase Orders in the left navigation, next to Vendors. The list's Product filter (search by code or name) keeps POs with a line for that product; a product's Inventory tab links here with it already set.
Creating a PO
Select New purchase order from the list. The create form is just the header — the lines are added afterwards, from the PO's own page.
| Field | Type | Required | Notes |
|---|---|---|---|
vendor_id | Select | Yes | Searchable dropdown over Vendors. |
company | Select | Yes | Which AIR group company the PO is raised under — AIR, AIS, Ainfo or ALA. Defaults to AIR. |
warehouse_id | Select | Yes | Searchable dropdown over Warehouses — where the goods will eventually be received. |
order_date | Date | Yes | Defaults to today. |
expected_date | Date | No | When the vendor is expected to deliver. |
notes | Textarea | No | Free text, full width. |
On save, the console assigns a po_number automatically in the form PO-YYYY-##### (e.g. PO-2026-00001) and the PO starts life in the Draft state.
Lines
Open the PO and switch to its Lines tab to add what is being bought.
| Field | Type | Required | Notes |
|---|---|---|---|
product_id | Select | Yes | Searchable dropdown over Products. Choosing a product auto-fills the rate below from that product's current cost price. |
quantity | Number | Yes | Minimum 0.01. |
rate | Number | Yes | Pre-filled from the product's cost price when the product is chosen; editable if the vendor is quoting a different price. |
Each line shows a computed Amount (quantity × rate), and the PO's total_amount is recalculated automatically as the sum of all line amounts whenever a line is added, edited or removed. A Received column on each line tracks quantity received so far — it stays at zero until Goods Receipts ship.
Line rates and the PO total are pre-tax — GST is calculated later, on the vendor bill, not on the PO. Lines can only be added, edited or removed while the PO is a Draft; once it is approved, the Lines tab becomes read-only.
Lifecycle
A PO moves through a small state machine, shown as a coloured badge on the list and on the PO's own page:
| State | Badge colour | Meaning |
|---|---|---|
| Draft | Gray | Being built — header and lines are both still editable. |
| Approved | Info (blue) | Committed. The header and lines both lock; the PO is now ready for goods to be received against it. |
| Partially received | Warning | Some, but not all, of the ordered quantity has arrived. Set automatically once Goods Receipts ship. |
| Received | Success | All ordered quantity has arrived. Set automatically once Goods Receipts ship. |
| Cancelled | Danger | Abandoned, with a reason recorded. |
Row actions on the list drive the transitions:
- Approve — only shown on a Draft PO, and only to a user with purchase_order.approve. Approval is a gate: it is blocked unless the PO has at least one line. Approving stamps
approved_byandapproved_at, and locks the whole header — vendor, company, warehouse and dates can no longer be changed. - Cancel — shown on a Draft or Approved PO, to a user with purchase_order.cancel. Asks for a reason (required, up to 500 characters) before cancelling. A PO that is already Partially received, Received or Cancelled can no longer be cancelled.
Every transition — Draft → Approved, and either state → Cancelled — is written to the PO's state log with who performed it and, for cancellation, why.
Approving a PO commits the order on paper — it does not move stock by itself. The stock arrives when you raise a Goods Receipt against the PO, which adds the goods into the destination warehouse and walks the PO from Approved through Partially received to Received as the deliveries land. After that, a Vendor Bill applies GST to what actually arrived and a Vendor Payment settles it.
Related pages
See Vendors for the supplier master a PO is raised against, Warehouses for the destination a PO's stock is bound for, Goods Receipts for receiving against the PO, Vendor Bills and Vendor Payments for billing and settlement, and Stock on Hand for how the received inventory is tracked.