PurchaseOrder
Updated
A purchase order becomes stock and a supplier payable when it is Received. Place order alone leaves both at zero unless Auto-receive on order is on.
| Kind | Document |
| Module | Purchasing |
| Menu | Purchasing → Documents → Purchase orders |
| Lines | Table part PurchaseOrderLines |
Fields#
| Field | Caption | Points at |
|---|---|---|
ID |
Number | number sequence |
Supplier |
Supplier | Supplier |
Location |
Receiving location | StoreCell |
LegalEntity |
Legal entity | LegalEntity |
PaymentTerm |
Payment term | PaymentTerm |
DueDate |
Due date | date |
ExpectedReceipt |
Expected receipt | date |
Contract |
Supplier contract | SupplierContract |
ApprovedAmount |
Approved amount | decimal |
ExchangeRate |
Exchange rate | decimal |
Notes |
Notes | string |
VendorDocumentNumber |
Supplier document No. | string |
VendorDocumentDate |
Supplier document date | date |
NonRecoverableVat |
Non-recoverable VAT | decimal |
AbcProfile |
ABC profile | AbcProfile |
NonRecoverableVat is hidden. It is stamped on receipt with the non-recoverable part of input tax. ExchangeRate is stamped on receipt. LegalEntity is taken from the receiving cell on receipt when the field still holds the module default. AbcProfile is a field of the Sales extension, used when a draft is built from an ABC profile.
Table parts#
Lines#
PurchaseOrderLines, caption Lines.
| Field | Caption | Points at |
|---|---|---|
Item |
Item | Item |
Quantity |
Quantity | decimal |
UnitPrice |
Unit price | money |
Unit |
Unit | UnitOfMeasure |
BaseQuantity |
Qty in base unit | decimal |
ReceiveQty |
Receive now | decimal |
Amount |
Amount | money |
PackQty |
Packages | decimal |
PackUnit |
Package unit | UnitOfMeasure |
Location |
Warehouse cell | StoreCell |
TaxCode |
VAT rate | TaxCode |
TaxAmount |
VAT amount | money |
SupplierPrice |
Supplier price | money |
BaseQuantity is hidden. It is filled on save from Quantity and Unit. Stock is posted from it when it is not zero.
SupplierPrice is for comparison and posts nothing: the supplier's own price of the item on the document date, from a supplier price setting or an earlier receipt. It follows Item and Unit while the order is not Received, then keeps the value it was received against.
Commands and states#
| State | Command | What happens |
|---|---|---|
| Draft | Fill prices | Empty Unit price values are filled from purchase pricing: the supplier's own price first, then the supplier's purchase type, then the default purchase type. A price already entered is left as it is. |
| Draft | Approve order | Stores the current total in Approved amount when Approval threshold is above zero and the total is above it. The order stays Draft. |
| Draft | Place order | Ordered. Stock, tax, and the payable stay zero. With Auto-receive on order on, the receipt is checked first; failure leaves Draft, success saves Ordered and then posts Received. |
| Ordered | Receive order | Received. Stock, purchases turnover, payable, input tax, stock value, and the ledger leg are posted. A positive Receive now receives that quantity and links a new Ordered order for the rest. |
The stored captions match the names: Draft, Ordered, Received. The only declared transition is Draft to Ordered.
Registers#
On Received: Stock (GoodsReceiptStockTx), Purchases (GoodsReceiptPurchasesTx — quantity and amount by supplier and item), Payable and PayableByBasis (GoodsReceiptPayableTx), InventoryValue (ReceiptCostTx), ItemCostFifo (ReceiptFifoTx). PurchaseReceiptGLTx writes the inventory / payables journal when a ledger profile exists. Recoverable input tax is added to Payable by the tax calculation, which also writes the recoverable-VAT journal leg.
A received line whose Unit price differs from the supplier's own price becomes that supplier's price from the document date in PriceTypeHistory (a row with Supplier set). A re-post at the same price adds nothing; a line whose unit the item does not know is left out and the order still posts.