Consignment Purchase Order Applet (Internal)
Your request to a consignor to place stock with you: which items, how many, at what reference price, delivered where and when. Finalising it posts nothing — no journal, no stock, no supplier balance; it locks the document and, only if the company’s Knock Off Configuration says so, opens its lines for the Consignment GRN to receive against. Without that configuration row the GRN cannot find a FINAL order, and the Payment tab settles nothing because there is nothing to settle.
Your job, and the screen for it
| The job | Screen or tab | Read |
|---|---|---|
| Raise an order from a purchase quotation, requisition or blanket purchase order — each import replaces Reference and Remarks (read from the code, not tried) and the Department Hdr tags, so type your own after the last import | Create screen › KO For tab › KNOCK OFF, then CREATE | Create screen; Main Details |
| Raise an order by hand or from a CSV — before sending it, check each line’s Quantity by UOM times the ratio equals Quantity Base | Create screen (Main Details, Account, Lines), then CREATE; or File Import › + | Lines; File Import |
| Finalise the order so the Consignment GRN can receive against it — check the branch first, it locks; nothing opens without the company’s consignment order → GRN knock-off row | FINAL on the listing (selected rows) or the edit pane | Lifecycle and effects |
| Cancel an order — discard a draft, void a FINAL one; a VOID does not touch a GRN that already knocked the line off | DISCARD (listing or edit pane); VOID on the listing only | Lifecycle and effects |
| Settle with the consignor — not on this order’s Payment tab, whose totals stay 0.00 | Consignor Purchase Billing applet | Delivery Details, Payment, Department Hdr, Contra |
| Set up the knock-off row, suppliers, items, forex rates and a default printable format | Organisation › Company › Knock Off Configuration; Supplier, Doc Item Maintenance and Forex applets; Printable Format Settings | Before you can use it |
Overview
The Consignment Purchase Order Applet (Internal) records your request to a consignor (a supplier who keeps ownership of the goods) to place stock with you: which items, how many, at what reference price, delivered where and when. Buyers create it by hand, by knocking off a blanket purchase order, purchase quotation or purchase requisition, or from a CSV; the warehouse later receives against it with a Consignment GRN, and the consignor is settled through Consignor Purchase Billing.
Its engine document type is INTERNAL_PURCHASE_CONSIGNMENT_ORDER with amount signum 0 and quantity signum 0: finalising it posts nothing to the General Ledger, to stock or to the supplier’s account. What FINAL does is lock the document and — if the company’s knock-off configuration says so — put its lines into the open queue where the Consignment GRN finds them.
The window title is Internal Consignment Purchase Order Applet; the listing is Consignment Purchase Order Listing.
Where it fits
| Position | Document / applet | Why |
|---|---|---|
| Module | Purchasing, Inventory | Procurement document for consigned stock; it never moves stock itself. |
| Upstream | Blanket Purchase Order, Purchase Quotation (Internal), Purchase Requisition (Internal) | The KO For tab on the create screen pulls open lines from these three types (INTERNAL_BLANKET_PURCHASE_ORDER, INTERNAL_PURCHASE_QUOTATION, INTERNAL_PURCHASE_REQUISITION). The first sub-tab is labelled Blanket Consignment Purchase Order but searches the ordinary blanket purchase order type — there is no separate blanket consignment document. |
| Downstream | Consignment GRN Applet (Internal) | Its KO For → Consignment Purchase Order tab reads open-queue rows typed INTERNAL_PURCHASE_CONSIGNMENT_ORDER → INTERNAL_PURCHASE_CONSIGNMENT_GRN and copies qty_open onto the GRN line. This is the only applet in the repository set that knocks this document off. |
| Downstream (later) | Consignment GIN, Consignment Return, Consignor Purchase Billing, Consignment Billing | Consumption, return and settlement of the consigned stock start from the GRN, not from this order. |
| Sibling | Purchase Order (Internal) | The ordinary commitment-to-buy order. Same screens, different document type, different downstream (Purchase GRN / Purchase Invoice). |
| Configuration | Organisation → Company → Knock Off Configuration | Decides whether FINAL opens the order for the Consignment GRN — see Lifecycle. |
Screens and menus
| Menu | Route | What it is | Hidden by |
|---|---|---|---|
| Consignment Purchase Order | consignment-purchase-order | Listing (left) with create / edit pane (right). | — |
| Line Items | line-items | Cross-document line grid: Consignment Purchase Order No, Item Code / Name, Qty, Unit Price (Inclusive of Tax), SST/VAT/GST, Txn Amount, Delivery, Transaction Date. Requires the server-side READ permission. | — |
| File Import | file-import | CSV upload (create, edit, listing). | — |
| Settings | settings/… | Application Settings, Default Selection, Printable Format Settings, Workflow Settings, Email Template, Webhook, Feature Visibility, Client Side Permission, Role Pricing Scheme Link, Permission Wizard / Set / User / Team / Role Permission. | — |
| Personalization | personalization/personal-default-selection | Per-user Default Selection. | — |
There are no HIDE_…_MENU settings in this applet: the menu has three fixed entries. Feature Visibility (shared) is the only way to hide a menu per team.
Listing

Toolbar: Printable Format picker + PRINT (disabled until a format is chosen), FINAL, DISCARD, VOID, Email Template + Recipient Email + SEND EMAIL. Bulk FINAL keeps only rows whose posting_status is not FINAL and whose status is ACTIVE; bulk VOID keeps only FINAL + ACTIVE rows; other selected rows are silently skipped. The default date window is the last month, or today only when ENABLE_FILTER_BY_TODAYS_TXN is stored. Column state is saved per user.
Create screen
Buttons RESET and CREATE (enabled only when Main Details is valid, the supplier is valid and at least one line exists). Tabs, in fixed order: Main Details, Account (Entity Details / Bill To / Ship To), Lines, Delivery Details (HIDE_DELIVERY_DETAILS_TAB), Payment (HIDE_MAIN_PAYMENT_TAB), KO For (HIDE_KO_FOR_TAB), Department Hdr (HIDE_DEPARTMENT_HDR_TAB). Leaving with unsaved changes opens Do You Wish To Save Your Changes?.


Edit screen
Header buttons: RESET, FINAL (draft + ACTIVE only; hidden by HIDE_GENDOC_FINAL_BUTTON unless the user holds SHOW_GENDOC_FINAL_BUTTON; disabled while any line has an invalid serial number), DISCARD (same conditions with the DISCARD pair), UPDATE (needs the server-side UPDATE permission, or tenant admin / owner). The VOID button on the edit pane is commented out in the template — VOID is a listing action only. A red DELETE button (two clicks to confirm, draft only) appears when SHOW_DOCUMENT_DELETE_BUTTON is stored in the applet settings; it hard-deletes the document through the API.
Tabs, in the order saved under Default Selection → Details Tab Ordering (CONSIGNMENT_PURCHASE_ORDER_DETAILS_TAB_ORDER): Main Details, Account, Lines, KO For, ARAP, Delivery Details, Payment, Department Hdr, TraceDocument, Contra, Doc Link, Attachments, Export. With VERTICAL_ORIENTATION the tabs become expansion panels and the EXPAND_* keys choose which open by default.


File Import
File Import → + uploads a .csv (File type not supported otherwise). Sample Format for Consignment Purchase Order downloads MasterData_Upload_ConsignmentPurchaseOrder.csv; the only column the applet names in code is REQUESTED_DELIVERY_DATE, the rest come from the sample. Import rows show File Name, File Size, Import Format, File Type, Status, Process Status and Error Message.
Configuration
Before you can use it
| Prerequisite | Where | Why |
|---|---|---|
| Company, branch, location | Organisation | Branch and location are required header controls; DEFAULT_BRANCH / DEFAULT_LOCATION pre-fill them and derive DEFAULT_COMPANY. |
| Knock Off Configuration for the company | Organisation → Company → Knock Off Configuration | An enabled row under Knock Off By (stored with config type KO) with source INTERNAL_PURCHASE_CONSIGNMENT_ORDER, target INTERNAL_PURCHASE_CONSIGNMENT_GRN and Flow Type LINE. Without it FINAL opens nothing and the Consignment GRN cannot find the order. The backend opens the lines for any enabled row in that list, whatever its Flow Type; the GRN’s per-line KO tab for consignment orders appears only when the Flow Type is LINE, which is the same LINE row sibling pages name. |
| Supplier entities | Supplier | Account tab. The inline Create Supplier form reads DEFAULT_CUST_TYPE, DEFAULT_COUNTRY and DEFAULT_CURRENCY from the applet settings; ENABLE_BRANCH_FILTER limits the picker to suppliers linked to the branch. |
| Items | Doc Item Maintenance | Lines. |
| Tax codes | Tax Configuration | Line tax / WHT selectors. |
| Forex rates | Forex | A document whose currency differs from the base currency needs a non-zero rate; the applet refuses to save with The currency rate cannot be ZERO. and the backend refuses FINAL with FOREX_DOC_REQUIRES_NON_ZERO_XRATE. |
| Printable format and e-mail template | This applet → Printable Format Settings, Email Template | Needed for PRINT, SEND EMAIL and the auto pop-up after FINAL. |
| Permissions | Permission Wizard / Set | Server-side TNT_API_DOC_INTERNAL_PURCHASE_CONSIGNMENT_ORDER_{CREATE,UPDATE,READ,DELETE}_TGT_GUID with targets. |
Applet settings
Where settings live: Application Settings is the shared settings screen, so the toggles you see are the shared screen’s, not this applet’s. Default Selection and Personalization → Default Selection are this applet’s own. There is no per-screen settings gear and no Branch Settings menu.
Anyone with the applet’s Settings menu can change them; there is no per-row authority difference. Every toggle defaults to off (nothing is stored until the first Save; the shared screen has no per-applet pre-selection for this applet code, so a fresh tenant sees every field and tab). One more consequence of sharing the screen: its tab-hide and KO For sections render only for certain applets, and this is not one of them, so the tab-hide toggles this applet reads have no control on a live tenant (listed below).
Settings → Default Selection (applet-local; Save writes all keys, Reset nulls them)
| Setting | What it controls | Default | Effect when changed |
|---|---|---|---|
DEFAULT_BRANCH, DEFAULT_LOCATION (derives DEFAULT_COMPANY) | Branch and location pre-selected on a new order. | none | New orders open with them; a personal default overrides the tenant default. |
DEFAULT_VALIDITY_DAYS | Validity in Day(s) — how far after the transaction date the End Date defaults. | none | Main Details pre-fills End Date. |
CONSIGNMENT_PURCHASE_ORDER_DETAILS_TAB_ORDER | Drag-and-drop order of the 13 edit tabs. | code order | Re-orders the edit tabs for everyone; new tabs are appended. |
| Default Pricing Scheme | The Pricing Scheme picker on this screen. | — | Not functional: the picker is rendered but has no form control, is not saved and is read nowhere. |
Personalization → Default Selection (per user): DEFAULT_BRANCH, DEFAULT_LOCATION (auto-filled from the branch’s MAIN_LOCATION), DEFAULT_TOGGLE_COLUMN (single / double column) and DEFAULT_ORIENTATION (tabs vs panels).
Settings → Application Settings (shared screen). Keys that are rendered there and read by this applet:
| Group | Keys | What they control |
|---|---|---|
| Listing | DISABLE_GEN_DOC_LISTING, SORT_ORDER, HIDE_AMOUNT_TXN_MAIN_LISTING, HIDE_DESCRIPTION, HIDE_SEND_EMAIL_BUTTON, HIDE_GENDOC_FINAL_BUTTON, HIDE_GENDOC_DISCARD_BUTTON, HIDE_GENDOC_VOID_BUTTON | Listing load, sort direction, listing columns, and the FINAL / DISCARD / VOID / SEND EMAIL buttons on listing and edit (each HIDE_GENDOC_* is overridden per user by the matching SHOW_GENDOC_* client-side permission). |
| FINAL and print | ENABLE_AUTO_POPUP, SHOW_DOCUMENT_DELETE_BUTTON | Opens the PDF (INTERNAL_PURCHASE_CONSIGNMENT_ORDER_PRINT_SERVICE) after FINAL from the edit pane — with no default printable it toasts No Default Printable Selected; shows the hard-delete button. |
| Header | HIDE_SERVER_DOC_1..3, HIDE_CLIENT_DOC_TYPE, HIDE_CLIENT_DOC_1..5, HIDE_TRACKING_ID, HIDE_PERMIT_NO, HIDE_VALIDITY_DATE, REQUIRE_VALIDITY_DATE, HIDE_LOCATION, HIDE_DELIVERY_BRANCH, HIDE_DELIVERY_LOCATION | Main Details and Delivery Details visibility; REQUIRE_VALIDITY_DATE adds a required validator to the validity dates. HIDE_SERVER_DOC_1..3 also hide the three Doc No columns on the listing; on both screens a role holding the matching SHOW_DOC_NO_* still sees them. |
| Account | ENABLE_BRANCH_FILTER | Supplier picker limited to suppliers linked to the branch (Supplier not linked to branch otherwise). |
| Lines | HIDE_UNIT_PRICE_STD_PRICING_SCHEME, HIDE_UNIT_PRICE_STD_INCL_TAX, HIDE_UNIT_PRICE_STD_EXCL_TAX, HIDE_UNIT_PRICE_STD_UOM_INCL_TAX, HIDE_UNIT_PRICE_STD_UOM_EXCL_TAX, HIDE_UNIT_PRICE_NET_UOM_EXCL_TAX, HIDE_UNIT_PRICE_NET_EXCL_TAX, HIDE_UNIT_PRICE_TXN, HIDE_UNIT_PRICE_TXN_UOM_INCL_TAX, HIDE_UNIT_DISCOUNT, HIDE_UNIT_DISCOUNT_UOM_EXCL_TAX, HIDE_QTY_BASE, HIDE_QTY_UOM, HIDE_UOM_TO_BASE_RATIO, HIDE_AMOUNT_STD_EXCL_TAX, HIDE_DISCOUNT_AMOUNT_EXCL_TAX, HIDE_AMOUNT_NET_EXCL_TAX, HIDE_AMOUNT_TXN, HIDE_TAX_CONFIG_SELECTION, HIDE_WHT_CONFIG_SELECTION, HIDE_LAST_PURCHASE_PRICE, HIDE_TOTAL_TXN_AMOUNT, HIDE_TOTAL_SST_VAT_GST_AMOUNT, HIDE_COSTING_DETAILS, HIDE_DELIVERY_INSTRUCTION, ENABLE_DRAFT_LOCK_SERIAL_NUMBER_CHECKING | Line form fields and grid totals (create screen and the Line Items editor); the last key makes draft serial numbers lock-checked. |
| Tabs and ARAP | HIDE_ATTACHMENT_TAB, HIDE_ARAP_PNS, HIDE_ARAP_SETTLEMENT, HIDE_ARAP_DOC_OPEN, HIDE_ARAP_CONTRA, HIDE_ARAP_BAL | The Attachments tab and the ARAP sub-grids. (The other tab-hide keys have no control for this applet code — see below.) |
| Layout | VERTICAL_ORIENTATION, EXPAND_MAIN_DETAILS, EXPAND_ACCOUNT, EXPAND_LINE_ITEMS, EXPAND_KO_FOR, EXPAND_DELIVERY_DETAILS, EXPAND_MAIN_ARAP, EXPAND_DEPARTMENT_HDR, EXPAND_TRACE_DOCUMENT, EXPAND_DOC_LINK, EXPAND_ATTACHMENT, EXPAND_EXPORT, EXPAND_MAIN_CONTRA | Panel layout instead of tabs and which panels start open. |
PRINTABLE (the default printable format) is not a toggle: it is written by Printable Format Settings → set as default and read by the listing, the Export tab and the auto pop-up.
Rendered on the shared screen but read nowhere in this applet (switching them does nothing): HIDE_ACCOUNT_BILLING_CONTACT, HIDE_ACCOUNT_SHIPPING_CONTACT, HIDE_LINE_ITEMS_GL_CODE, and the settlement, posting and delivery-trips expand toggles.
Read at runtime without a control on any settings screen for this applet code (they take effect only if the key is already stored in the applet’s settings JSON, e.g. by support): the tab-hide keys HIDE_KO_FOR_TAB, HIDE_DELIVERY_DETAILS_TAB, HIDE_MAIN_PAYMENT_TAB, HIDE_PAYMENT_TAB, HIDE_DEPARTMENT_HDR_TAB, HIDE_MAIN_ARAP_TAB, HIDE_ARAP_TAB, HIDE_TRACE_DOCUMENT_TAB, HIDE_MAIN_CONTRA_TAB, HIDE_CONTRA_TAB, HIDE_DOC_LINK_TAB, HIDE_EXPORT_TAB (each hides the named tab on create / edit; the HIDE_MAIN_* / plain pairs are equivalent on the edit pane) and ENABLE_MULTIPLE_KO (one line may knock off several source lines) — their controls sit in shared-screen sections shown only for other applets; ENABLE_SERIAL_NUMBER_VALIDATION_FINAL (sends validate_serial_signum_zero = true with FINAL so the backend checks serial and batch quantities despite the 0 quantity signum) — rendered only for the delivery-order codes; ENABLE_FILTER_BY_TODAYS_TXN (listing date window = today); DEFAULT_CUST_TYPE, DEFAULT_COUNTRY, DEFAULT_CURRENCY (inline supplier creation).
Present in the applet but with no control and no effect: INCLUDE_* / ENABLE_* for SST, WHT, Segment, Dimension, Profit Center, Project; ENABLE_CUSTOM_STATUS_* (15 keys); the model’s validity-date-required flag — dead under its own name, while the behaviour it describes is REQUIRE_VALIDITY_DATE in the table above, which the shared screen does offer; the default pricing scheme (whose picker on Default Settings has no form control, above). Custom statuses and department-tag enforcement are therefore not configurable here.
Document behaviour settings
| Behaviour | Where it is set | Notes |
|---|---|---|
| Opening the order for the GRN on FINAL | Organisation → Company → Knock Off Configuration | The only lever over what FINAL does. See Lifecycle. |
| Serial / batch check on FINAL | ENABLE_SERIAL_NUMBER_VALIDATION_FINAL — stored value only; no control for this applet code. | Without it the backend skips serial and batch quantity checks for this signum-0 type. |
| Backdating | Client-side permission PO_ALLOW_BACKDATE_TRANSACTION. | Without it the transaction date picker’s minimum is today. |
| Printables | Printable Format Settings (Format Code / Name, template) and PRINTABLE. | PRINT on the listing, Export tab, auto pop-up. |
Email Template (templates with txn_type = INTERNAL_PURCHASE_CONSIGNMENT_ORDER_EMAIL_TEMPLATE). | SEND EMAIL on the listing needs a template and a recipient. | |
| Workflow | Workflow Settings — per company, attach a workflow process (Company Code, Description, Doc Short Code). | Main Details shows the resulting Workflow Status / Workflow Resolution read-only; no approval screens exist in this applet. |
| Webhooks | Settings → Webhook. | Shared component. |
| Approval, closing, intercompany, e-Invoice | — | None: there is no Approval Settings, Approval Monitor, CLOSE button or intercompany menu, and a consignment order is not an e-Invoice document. |
Settings in other applets that control this applet
| Setting | Where it is set | Effect here |
|---|---|---|
Knock Off Configuration row INTERNAL_PURCHASE_CONSIGNMENT_ORDER → INTERNAL_PURCHASE_CONSIGNMENT_GRN, is_enabled | Organisation → Company | FINAL creates one open-queue row per PNS line; the Consignment GRN’s KO tab lists the order. Disabled or missing → nothing to knock off. |
Fiscal period lock (LOCK_ALL / LOCK_TXN) | Organisation fiscal years | FINAL is rejected with The selected date falls within a locked fiscal period. |
| Supplier ↔ branch links | Supplier | With ENABLE_BRANCH_FILTER, only linked suppliers can be picked. |
| Forex rate for the document currency | Forex | Required non-zero on save and on FINAL for foreign-currency orders. |
Who can change what
Server-side (TntErpPermissions): TNT_API_DOC_INTERNAL_PURCHASE_CONSIGNMENT_ORDER_CREATE_TGT_GUID, …_UPDATE_TGT_GUID, …_READ_TGT_GUID, …_DELETE_TGT_GUID. The edit pane enables UPDATE for the UPDATE permission or for TNT_TENANT_ADMIN / TNT_TENANT_OWNER; the Line Items menu checks READ.
Client-side: no client-side permissions are defined for this applet, so none of the codes below can be granted through Client Side Permission until they are defined. Codes the screens check:
| Group | Codes (checked in code, not seeded) |
|---|---|
| Buttons | SHOW_GENDOC_FINAL_BUTTON, SHOW_GENDOC_DISCARD_BUTTON, SHOW_GENDOC_VOID_BUTTON (re-show a HIDE_GENDOC_* button per user) |
| Header | SHOW_DOC_NO_TENANT, SHOW_DOC_NO_COMPANY, SHOW_DOC_NO_BRANCH, SHOW_CLIENT_DOC_TYPE, SHOW_CLIENT_DOC_1..5, SHOW_TRANSACTION_DATE, SHOW_DESCRIPTION, PO_ALLOW_BACKDATE_TRANSACTION |
| Lines and pricing | PURCHASE_ORDER_DISPLAY_PRICING, HIDE_PRICE, SHOW_UNIT_PRICE_* (nine keys mirroring the HIDE_UNIT_PRICE_* settings), SHOW_UNIT_DISCOUNT, SHOW_UNIT_DISCOUNT_UOM_EXCL_TAX, SHOW_QTY_BASE, SHOW_QTY_UOM, SHOW_UOM_TO_BASE_RATIO, SHOW_AMOUNT_STD_EXCL_TAX, SHOW_DISCOUNT_AMOUNT_EXCL_TAX, SHOW_AMOUNT_NET_EXCL_TAX, SHOW_AMOUNT_TXN, SHOW_TOTAL_TXN_AMOUNT, SHOW_TOTAL_SST_VAT_GST_AMOUNT, SHOW_TAX_CONFIG_SELECTION, SHOW_WHT_CONFIG_SELECTION, SHOW_LAST_PURCHASE_PRICE, SHOW_COSTING_DETAILS |
| Listing / ARAP | SHOW_AMOUNT_TXN_MAIN_LISTING, SHOW_ARAP_PNS, SHOW_ARAP_SETTLEMENT, SHOW_ARAP_DOC_OPEN, SHOW_ARAP_CONTRA, SHOW_ARAP_BAL |
PURCHASE_ORDER_DISPLAY_PRICING matters most: the line grid hides price and amount columns for every user who is not tenant OWNER or ADMIN and does not hold it (ClientSidePermissionChecker.checkPermission). With no seeded definition, ordinary buyers cannot see prices.
Fields
Main Details
| Field | Meaning | Required | Notes / validation |
|---|---|---|---|
| Branch, Location | Ordering branch and receiving location. | Yes (Validators.required) | Pre-filled from Default Selection / personal defaults; HIDE_LOCATION hides the location control, so keep a default location configured. |
| Company | Owning company. | System | There is no Company box: the order belongs to the company of the branch you pick, and picking a branch of another company moves the order to that company. That company’s Knock Off Configuration is the one FINAL reads, and the open rows it creates carry that company and branch. Check the branch before FINAL, because it is locked afterwards; after it, VOID and raise the order again under the right branch. |
| Doc Short Code, Doc No (Tenant / Company / Branch) | Type and running numbers. | System | HIDE_SERVER_DOC_1..3; running numbers are assigned on FINAL. |
| Client Document type, Client Doc 1–5 No | References for a system that feeds orders in. | No | Shown only on a saved order, and read-only there: nothing on this screen fills them. Client Document type is stamped with this document’s own type when the order is created; Client Doc 1–5 keep whatever an integration wrote through the API. To record the consignor’s own reference, use Reference instead. The listing’s Client Doc 1 column shows the value only when it begins with digits, and as a number (read from the code, not tried: a reference INV-0042 would show blank and 00042 as 42). Hidden by HIDE_CLIENT_DOC_*. |
| Transaction Date | Order date. | Yes | Earlier than today only with PO_ALLOW_BACKDATE_TRANSACTION; must be in an unlocked fiscal period to FINAL. |
| Validity in Day(s), End Date | Validity of the request. | With REQUIRE_VALIDITY_DATE | End Date = transaction date + DEFAULT_VALIDITY_DAYS. |
| Purchaser | Employee raising the order. | Marked * in the label | No validator in code — the asterisk is cosmetic. |
| Credit Terms, Credit Limit | Consignor terms, informational. | No | No settlement is posted from this document. |
| Base Currency, Currency Rate | Document vs company currency. | Rate non-zero when currencies differ | The currency rate cannot be ZERO. on save; FOREX_DOC_REQUIRES_NON_ZERO_XRATE on FINAL. |
| Reference, Remarks, External Remarks | Free text. | No | They can be changed but not emptied: clearing a box and saving keeps the old text, so overwrite it with something (a dash) instead. KO For replaces all three with the source document’s own, blanks included, every time you import, and so does a second import, so type your own text after the last import rather than before. Both read from the code, not tried; on a test draft type a Reference, import a quotation, and look. |
| Tracking ID, Permit No | References. | No | Permit No is saved only when a Purchaser is chosen: with the Purchaser box empty, a Permit No typed here is dropped at save without a message (read from the code, not tried; save one draft without a Purchaser, reopen it and look). Tracking ID is saved either way. HIDE_TRACKING_ID, HIDE_PERMIT_NO. |
| Workflow Status, Workflow Resolution | Set by the company workflow. | System | Read-only. |
Account
| Field | Meaning | Required | Notes |
|---|---|---|---|
| Entity Id (supplier) | The consignor. | Yes (Validators.required) | Picker, with inline supplier create / edit (name, type, code, currency, ARAP type required there). |
| Entity Name, Description, Entity Type, Phone, ID Number, Identity Type, Email, Currency, Status | Read-only echo of the supplier. | — | |
| Intercompany Branch | Drop-down on Entity Details. | No | Stored on the header; no intercompany processing exists in this applet. |
| Bill To, Ship To | Address sub-tabs. | No | Pre-filled from the supplier. |
Lines
| Field | Meaning | Required | Notes / validation |
|---|---|---|---|
| Item (Item Code / Name) | From Search Item. | Yes | CREATE needs at least one line; there is no per-line quantity or price validator. |
| Quantity, Quantity by UOM, UOM, UOM to Base Ratio, Quantity Base | Requested quantity. | No validator | Quantity Base is the number that counts: it is what FINAL opens for the Consignment GRN, less anything already knocked off that line (nothing, on a first FINAL). Typing Quantity by UOM sets Quantity Base to it times the ratio. Three traps, all read from the code and not tried. Typing a Txn Amount or Amount Net rewrites Quantity by UOM as Quantity Base times the ratio instead of divided by it (24 units in boxes of 12 becomes 288 boxes), while Quantity Base stays right. The amounts are worked on the whole-number part of Quantity Base, so 2.5 kg is priced as 2. And a line brought in by KO For takes Quantity Base from what is still open on the source line but copies its Quantity by UOM and every amount whole, so from a half-used quotation line the two quantities disagree. Before sending the order to the consignor, open each line and check that Quantity by UOM times the ratio equals Quantity Base; retype Quantity by UOM where it does not. |
| Unit Price STD / Net / Transaction (incl. / excl. tax, by UOM), Unit Discount, STD Amount, Discount Amount, Amount Net, Txn Amount, Tax Amount | Reference pricing. | No | Hidden per HIDE_UNIT_PRICE_* / PURCHASE_ORDER_DISPLAY_PRICING. Nothing is posted from these amounts. |
| SST/GST/VAT, WHT, WHT Amount | Tax selectors. | No | HIDE_TAX_CONFIG_SELECTION, HIDE_WHT_CONFIG_SELECTION. |
| Purchase Quotation No., Purchase Requistion No., Blanket Consignment Purchase Order | Which document a line was knocked off from. | No | Shown, read-only, only while you add a line through a per-line KO For tab; the saved line’s screen has no such box. Afterwards the source is on the line’s Doc Link → Copied From tab, which is where to look when a consignor asks which quotation a line came from. Lines brought in by the header KO For import never show the box at all and are linked the same way. |
| Segment, G/L Dimension, Profit Centre, Project | Department tags on the line. | No | A new line opens with Copy from Hdr ticked and takes the four tags from Department Hdr as they are at that moment; unticking it clears all four. The line keeps its own copy, so changing Department Hdr later does not reach lines already added: set the header tags first. KO For lines take the source line’s tags instead. Not enforceable here (the ENABLE_* keys are model-only). |
| Batch Number / Expiry Date, Bin Code, Serial Number | Stock references. | No | Serial validation at FINAL only with ENABLE_SERIAL_NUMBER_VALIDATION_FINAL. |
| Delivery Details, Delivery Instruction, Delivery Remarks | Per-line delivery. | No | HIDE_DELIVERY_INSTRUCTION. |
| Remarks | Line text. | No | There is no line Description box. Remarks and Item Name are the only line boxes left open after FINAL. Whether the server keeps a change made there to a finalised order was not tested: change one line’s Remarks on a finalised test order, reopen it and look before relying on it. KO For copies the source line’s Remarks. |
Delivery Details, Payment, Department Hdr, Contra
| Tab | Fields | Notes |
|---|---|---|
| Delivery Details | Tracking ID, Delivery Type, Delivery Branch, Delivery Location, each with Apply to Lines. | Header values copied to the ticked lines. |
| Payment | Settlement Method, Date, Paid Amount; totals Total Payment, Doc Open Amount, Doc ARAP Balance. | The tab is inherited from the sales-side template: every settlement line it writes is typed INTERNAL_RECEIPT_VOUCHER (INTERNAL_PAYMENT_VOUCHER only for CASH_BACK). Because the document has amount signum 0 there is nothing to settle and the totals stay 0.00 — do not record consignor payments here; use Consignor Purchase Billing. |
| Department Hdr | Segment, G/L Dimension, Profit Centre, Project. | Nothing is posted from this order, so these tags count only as the defaults new lines copy (see Lines). A KO For import replaces all four with the source document’s, blanks included; re-pick them after the import if the order belongs to a different profit centre from the quotation. |
| Contra | Contras where this order is the first document. | Select Document lists the consignor’s documents only when the order has a balance, and with nothing on the Payment tab it has none, so the list opens empty (read from the code, not tried). Settle with the consignor on the billing documents instead, as for payments; see Consignor Purchase Billing. |
Lifecycle and effects
| Status | Meaning | Allowed next |
|---|---|---|
DRAFT (status ACTIVE) | Editable. | FINAL (listing or edit), DISCARD (listing or edit), DELETE (edit, when enabled) |
| FINAL | Locked; running numbers assigned; open-queue rows created when configured. | VOID (listing only) |
| VOID | Cancelled after FINAL. | none |
| DISCARDED | Abandoned draft; its open-queue rows are marked DISCARDED. | none |
On FINAL the server checks: a non-zero exchange rate; serial, bin and batch quantities (serial and batch only when the serial setting asks); no stock-balance check, because an order moves no stock; and the fiscal-period lock. It then saves, gives out running numbers, starts the main posting job and the message-template job, and for a foreign-currency document creates a base-currency shadow first.
The knock-off job reads the company’s Knock Off Configuration for consignment orders and, for each enabled target, opens every goods line for its Quantity Base less whatever is already knocked off that line — on a first FINAL nothing is, so the whole Quantity Base. If an order is FINAL and the Consignment GRN still cannot find it, the opening step did not complete — BigLedger support has a repair for exactly that, which opens the ACTIVE goods lines the same way and then marks the order’s knock-off as posted.
What posting does: document type INTERNAL_PURCHASE_CONSIGNMENT_ORDER · no money and no stock — no journal, payable or tax · VOID reverses nothing in the ledgers; it closes the order’s open lines so the Consignment GRN can no longer knock it off (a VOID after a GRN has already knocked the line off does not touch the GRN).
Knock-off by the Consignment GRN: its KO tab lists the order’s lines still open for a consignment GRN, copies the open quantity into the GRN line, and links the two; the order’s open quantity then goes down by that much. Deleting the GRN link restores it.
| Ledger | Effect of FINAL |
|---|---|
| General Ledger | none |
| Stock | none |
| Supplier account (ARAP) | none |
| Open queue | one row per line, only for target types in the company’s Knock Off Configuration |
Related applets
- Consignment GRN Applet (Internal) — receives consigned stock against this order (the only knock-off consumer).
- Consignment GIN Applet (Internal), Consignment Return Applet (Internal) — consumption and return of the consigned stock, from the GRN onward.
- Consignor Purchase Billing Applet (Internal), Consignment Billing Applet (Internal) — settlement with the consignor; where payments belong.
- Consignee Stock Transfer — moving consigned stock between locations.
- Purchase Order (Internal) — the ordinary purchase order; same screens, different downstream.
- Blanket Purchase Order, Purchase Quotation (Internal), Purchase Requisition (Internal) — KO For sources.
- Supplier, Organisation, Doc Item Maintenance, Tax Configuration, Forex — master data.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| The Consignment GRN’s KO tab does not list a FINAL order | The company has no enabled Knock Off Configuration row INTERNAL_PURCHASE_CONSIGNMENT_ORDER → INTERNAL_PURCHASE_CONSIGNMENT_GRN, so FINAL created no open-queue rows; or the order was VOIDed / DISCARDED; or its lines are fully knocked off. | Add and enable the row in Organisation → Company → Knock Off Configuration (intranet #4638 asks for duplicate source/target rows to be blocked there). For orders finalised before the row existed, run data-fix-missing-queue for the type, or wait for the knock-off watchdog. |
| Buyers see no prices on the Lines grid | The user is not tenant OWNER / ADMIN and does not hold PURCHASE_ORDER_DISPLAY_PRICING; the code is not seeded for this applet. | Use an admin-rank user, or ask BigLedger to add the code to this applet’s permission list, then grant it. |
| FINAL rejected with The selected date falls within a locked fiscal period | Transaction date in a LOCK_ALL / LOCK_TXN period. | Change the date or reopen the period. |
Cannot save: The currency rate cannot be ZERO. / FINAL rejected with FOREX_DOC_REQUIRES_NON_ZERO_XRATE | Document currency differs from the base currency and the rate is empty or 0. | Enter the rate or maintain it in Forex. |
| FINAL button missing on the edit pane or listing | HIDE_GENDOC_FINAL_BUTTON is on and the user lacks SHOW_GENDOC_FINAL_BUTTON (which cannot be granted until seeded); or the document is not DRAFT + ACTIVE. | Turn the setting off. |
| FINAL disabled on the edit pane | A line’s serial numbers failed the draft validation (hasInvalidSerial). | Fix the serial numbers on the line. |
| Bulk FINAL / VOID did nothing for some rows | Bulk FINAL skips rows already FINAL or not ACTIVE; bulk VOID skips rows that are not FINAL + ACTIVE; nothing is reported for skipped rows. | Filter the listing by posting status before selecting. |
| Supplier not linked to branch when picking a supplier | ENABLE_BRANCH_FILTER is on and the supplier has no link to the order’s branch. | Link the supplier to the branch or turn the setting off. |
| Cannot backdate the transaction date | No PO_ALLOW_BACKDATE_TRANSACTION (not seeded for this applet). | Ask BigLedger to add the code to this applet’s permission list, then grant it; or date the order today. |
| PDF does not open after FINAL; No Default Printable Selected | ENABLE_AUTO_POPUP is on but no printable format is set as default (PRINTABLE empty). | Set a default in Printable Format Settings. |
| Payment tab totals stay 0.00 and payments have no effect | The document has amount signum 0 and the tab writes sales-side receipt-voucher lines. | Record consignor settlement in Consignor Purchase Billing. |
| Edit tabs appear in an unexpected order or a tab is missing | Default Selection → Details Tab Ordering was saved with a different order; or a HIDE_*_TAB key is stored in the applet settings (no UI control for this applet code — it can only have been written by support or copied from another applet’s settings). | Re-order in Default Selection; have the stored key cleared. |
| CSV upload refused: File type not supported | Non-CSV file. | Upload .csv from the sample format. |
| Import fails on a column | Column not in MasterData_Upload_ConsignmentPurchaseOrder.csv. | Download the current sample and match its headers. |
| Screen flickers or throws ExpressionChangedAfterItHasBeenChecked on open | Fixed in the 2026 refactor. | Update the applet. |
| Mobile layout unusable | Responsive UI and translations are open work items. | Use a desktop browser. |
Related documentation
- Purchasing module and its use cases
- Consignment purchasing guide
- Sibling reference: Purchase Order (Internal)