Consignment GRN Applet (Internal)
Bring consignment stock — stock a supplier places at your location while still owning it — into that location. Finalising adds the quantity and, where your company posts a journal for it, records the value as consignment stock against a consignment liability rather than as an amount owed to a supplier; ownership changes only later, when the stock is sold and billed through the consignment billing documents. The cost pool moves by the document’s own amount, so a note keyed at zero while the price is still unagreed pulls the item’s moving-average cost down for everything in stock.
Your job, and the screen for it
| The job | Screen or tab | Read |
|---|---|---|
| Receive consignment stock into a location — key the agreed price; a note at RM 0 pulls the item’s moving-average cost down for everything in stock | Consignment GRN › create, Lines › Search Item, then FINAL | Lifecycle and effects |
| Receive against a consignment purchase order | The header KO For tab; the line-level KO For tabs appear only when a LINE document flow into CSGGRN is enabled | Lines |
| Hold a note until the consignor’s price is agreed — a custom status does not stop anyone finalising | Settings › Custom Status, the Status tab and its listing column, checked before the day’s bulk FINAL | Document behaviour settings |
| Reverse a finalised note — refused while a later document has knocked it off; void that one first | Bulk VOID on the Consignment GRN listing (the edit form has none) | Lifecycle and effects |
| Post a journal that is missing or short after FINAL — the note stays FINAL with no error on screen; a Repost that fails has already deleted the old journal | Map the GL code in the Chart of Accounts applet; missing: Error Checking › Stock Flow Report in the Financial Report applet, Purchase Consignment row, CREATE; short: Repost on Trace Document | Troubleshooting |
| Set up consignment items, GL codes and printables | Consignment Item flag in the Doc Item Maintenance applet; CONSIGNMENT_STOCK and CONSIGNMENT_LIABILITY in the Chart of Accounts applet; Settings › Printable Format Settings | Before you can use it |
Overview
Server document type INTERNAL_PURCHASE_CONSIGNMENT_GRN, short code CSGGRN; quantity signum +1, amount signum −1. It is the inbound half of the pair whose outbound half is the Consignment GIN (quantity −1 / amount +1). Unlike the GIN, a consignment GRN can be knocked off from a Consignment Purchase Order and can be voided.
The applet is a single-document applet: one listing with bulk FINAL / VOID / print, a create/edit form, a cross-document line-item listing, and the standard settings pages plus a custom-status designer.
Where it fits
| Direction | Applet / document | Why |
|---|---|---|
| Upstream | Consignment Purchase Order | Optional. The KO For tab and the line-level KO For Purchase Order tab pull open consignment-PO lines into the GRN and link the two documents |
| Upstream | Internal Purchase Requisition, Internal Purchase Invoice | Line-level knock-off tabs that appear only when the company’s document-flow configuration enables a LINE flow from that type into CSGGRN |
| Upstream | Doc Item Maintenance | Only items with the Consignment Item flag appear in the GRN’s item search |
| Upstream | Supplier, Employee Maintenance | The consignor is a supplier entity; the Purchaser is an employee entity |
| Upstream | Organisation | Company, branch, location and delivery branch/location on the header; document-flow configuration for the knock-off tabs; the company’s posting configuration decides whether FINAL creates a journal |
| Downstream | Consignment GIN, Consignment Return | Take the received consignment stock back out |
| Downstream | Consignment Billing, Consignor Purchase Billing | Consignment Billing turns sold consignment stock into a purchase from the consignor; Consignor Purchase Billing is the period record of what you owe and posts no journal. A GRN that has been knocked off by a later document can no longer be voided |
| Downstream | Stock Balance, Stock Report | Show the quantity arriving at the location and its effect on moving-average cost |
| Downstream | Creditor Report | Lists the GRN among supplier-side documents (ARAP columns on the listing) |
Modules: Purchasing, Inventory.
Screens and menus
| Menu | Purpose |
|---|---|
| Consignment GRN | Listing with create, edit, bulk FINAL, bulk VOID and SINGLE/MULTIPLE PRINT |
| Line Items | One row per active line across all consignment GRNs (Doc Short Code, Purchase GRN No, Item Code, Item Name, Qty, Unit Price incl. tax, SST/VAT/GST, Txn Amount); opening a row opens the line editor |
Gear (Settings) menu, group System Configuration: Application Settings, Default Selection, Printable Format Settings, Custom Status. The shared settings shell adds the platform pages (Webhook, Feature Visibility, Client-Side Permission, Role Pricing Scheme Link, Permission Wizard / Set / User / Team / Role, Release Notes, Audit Trail). Personalisation: Default Selection and Sidebar.
Listing
Columns: Doc Short Code, Doc No (Tenant), Doc No (Company), Doc No (Branch), Posting Status, Status, Tracking ID, Branch Code, Currency, Supplier Name, Description, Doc Description, Purchaser, Doc Reference, Amount Txn, ARAP PNS, ARAP Settlement, ARAP Doc Open, ARAP Contra, ARAP Bal, Updated Date, Created Date, Transaction Date, Created by, Client Doc Type, Client Doc 1–5, and one column per enabled custom header status. By default the listing shows the last month of transactions for the branches you have permission targets on, sorted by updated date, newest first (or by the SORT_ORDER column). FINAL posts every selected row that is DRAFT and ACTIVE; VOID voids every selected row that is FINAL and ACTIVE; the print button is disabled until a default printable format is chosen.
Create / edit form

Tabs on create: Main Details, Account, Lines, Delivery Details, Payment, KO For, Department Hdr (the last four each hideable by the matching HIDE_*_TAB setting), plus a Search tab (“Search By Intercompany Sales Invoices”) for users holding the SHOW_INTERCOMPANY_PGRN_SCREEN client-side permission. Edit shows Main Details, Account, Lines, Delivery Details, Payment, Department Hdr, Trace Document, Contra, Doc Link, Attachments, Export and Status — in the order set under Settings > Default Selection — with RESET, FINAL (only while the document is ACTIVE and DRAFT), SAVE (needs the update permission) and, for non-final documents when SHOW_DOCUMENT_DELETE_BUTTON is on, DELETE (two clicks). The edit form has no VOID button; VOID is done from the listing.
Lines
Add a line with Search Item (consignment items only; the picker also offers a Search Serial Number box) or with KO For Purchase Order / Purchase Requisition / Purchase Invoice, each of which is present only when the company’s document-flow configuration enables a LINE flow from that document type into INTERNAL_PURCHASE_CONSIGNMENT_GRN. The header-level KO For tab lists consignment purchase orders with open lines for CSGGRN and refuses a second document from a different entity or branch unless ENABLE_MULTIPLE_KO is on.
A line’s tabs: Item Details (Main Details, Delivery Instruction, Department, Doc Link, Delivery Details), Serial Number (for serial-number items, or any item flagged as optional serial number), Batch Number, Bin Number, Costing Details, Pricing Details, Issue Link.
Configuration
Before you can use it
| Prerequisite | Where | Why |
|---|---|---|
| Items flagged Consignment Item | Doc Item Maintenance | The Search Item tab lists only ACTIVE items carrying the flag. The KO For tabs, shown when a line-level document flow from a purchase order, requisition or invoice is switched on, copy the source line’s item without checking the flag |
| The consignor as a supplier entity | Supplier | The Account tab’s Entity Id is required; the supplier’s AR/AP type is not used by the consignment journal (see Lifecycle and effects) |
| Employee entities | Employee Maintenance | The Purchaser picker lists employees |
| Company, branch, location (and delivery branch/location) | Organisation | All three are required on the header; a branch’s main location pre-fills Default Location in Default Selection |
Document numbering for CSGGRN | Organisation > document numbering | The running number shown as Doc No (Tenant) |
Document-flow configuration (flow type LINE, target CSGGRN) | Organisation | Switches on the KO For Purchase Order / Requisition / Invoice tabs |
| Tax codes (optional) | Tax Configuration | The line’s SST/GST/VAT and WHT selectors |
Default GL codes CONSIGNMENT_STOCK, CONSIGNMENT_LIABILITY (and INPUT_TAX if lines carry tax) — only if the company posts journals for this document | Chart of Accounts | Neither is checked at FINAL: the note goes FINAL and the journal job runs afterwards. With no consignment-liability account the job fails and the note stays FINAL with no journal. A line that finds no consignment-stock account is left out of the journal, and the liability line is built from the lines that remain, so the journal posts short with no error (see Troubleshooting) |
| A default printable format | Settings > Printable Format Settings | Enables the listing’s print button, the Export tab’s default and the auto-print pop-up |
SHOW_TRANSACTION_DATE client-side permission for users who back-date | Settings > Client-Side Permission | The Transaction Date input is disabled unless the user holds it |
| API permissions | Settings > Permission Set / User / Team / Role | TNT_API_DOC_INTERNAL_PURCHASE_CONSIGNMENT_GRN_CREATE / READ / UPDATE / DELETE |
Applet settings
Settings live in four places. Application Settings is the shared field-configuration screen; for this applet it shows the Payment, KO For, Department Hdr, Contra, Doc Link, Attachments, Export, Status, Delivery Details and Trace Document sections, so every tab-hide toggle below is actually on screen. It saves the whole form as the applet’s settings. Default Selection (applet-local) saves DEFAULT_BRANCH, DEFAULT_LOCATION, DEFAULT_COMPANY and the drag-and-drop tab order CONSIGNMENT_GRN_DETAILS_TAB_ORDER; Personalisation > Default Selection saves the same three defaults per user, and a personal default wins over the tenant default. Custom Status (applet-local) saves ENABLE_CUSTOM_STATUS_1..5, ENABLE_CUSTOM_STATUS_HDR_n, ENABLE_CUSTOM_STATUS_LINE_n, NAME_CUSTOM_STATUS_HDR_n and LIST_CUSTOM_STATUS_HDR_n. Printable Format Settings saves PRINTABLE.
All are tenant-wide except the personal defaults; only a user who can open the applet’s Settings can change them. Every toggle defaults to off, so a fresh tenant sees every tab and field until the first Save of Application Settings. Each key below is read by the applet. Four of them, marked no control, have no toggle for this applet on any settings screen — the shared screen offers them to other applets only — so on a tenant where nobody has set them some other way they are off.
| Setting | What it controls | Effect when changed |
|---|---|---|
HIDE_GENDOC_FINAL_BUTTON | FINAL on the listing and on the edit form | Removes the only posting paths |
HIDE_GENDOC_VOID_BUTTON | VOID on the listing | Hidden unless the user holds SHOW_VOID_BUTTON |
DISABLE_GEN_DOC_LISTING | Whether the listing loads on open | Listing stays empty until a search is run |
ENABLE_FILTER_BY_TODAYS_TXN | Default date filter: today only instead of the last month | No control: the listing opens on the last month |
SORT_ORDER | Column the listing is ordered by (default updated date, always descending) | — |
ENABLE_SERIAL_NUMBER_VALIDATION_FINAL | Before FINAL, every serial-number line is validated against the inventory serial records, and the FINAL request also asks the server to validate serial numbers on zero-quantity-sign lines (a GRN has none, so that part changes nothing) | No control: the applet’s own pre-check does not run, and the server’s serial checks on FINAL are what protect you |
HIDE_SERVER_DOC_1, HIDE_SERVER_DOC_2, HIDE_SERVER_DOC_3 | Doc No (Tenant / Company / Branch) on the listing and header | Reopened per user by SHOW_DOC_NO_TENANT / COMPANY / BRANCH |
HIDE_CLIENT_DOC_TYPE, HIDE_CLIENT_DOC_1 … HIDE_CLIENT_DOC_5 | Client Doc Type and Client Doc 1–5 on the listing and header (edit mode) | Reopened by SHOW_CLIENT_DOC_TYPE, SHOW_CLIENT_DOC_n |
HIDE_DESCRIPTION, HIDE_ARAP_PNS, HIDE_ARAP_SETTLEMENT, HIDE_ARAP_DOC_OPEN, HIDE_ARAP_CONTRA, HIDE_ARAP_BAL | Listing columns | Reopened by the matching SHOW_* permission |
ENABLE_AUTO_POPUP | When you press FINAL on the edit form, opens the PDF of the default printable in a new window. The PDF is requested before FINAL is sent, so it shows the note as it stood before posting, and it opens even when FINAL is then refused | Needs PRINTABLE; otherwise toast No Default Printable Selected. Do not take the pop-up as proof of posting — read the posting status on the listing |
PRINTABLE | Default printable format for the listing print button, the Export tab and the auto pop-up | Set under Printable Format Settings |
HIDE_TRACKING_ID, HIDE_PERMIT_NO, HIDE_LOCATION, HIDE_DELIVERY_BRANCH, HIDE_DELIVERY_LOCATION | Header fields on Main Details | HIDE_LOCATION hides a required field — the form can then never become valid; HIDE_DELIVERY_LOCATION also stops the delivery location being copied from the header |
HIDE_BASE_CURRENCY, HIDE_CURRENCY | Base Currency and Currency on Main Details | No control: both fields always show |
CANNOT_EDIT_CURRENCY_RATE | Currency Rate box read-only | — |
HIDE_DELIVERY_DETAILS_TAB, HIDE_MAIN_PAYMENT_TAB, HIDE_KO_FOR_TAB, HIDE_DEPARTMENT_HDR_TAB | Tabs on create and edit | Tab disappears |
HIDE_TRACE_DOCUMENT_TAB, HIDE_MAIN_CONTRA_TAB, HIDE_DOC_LINK_TAB, HIDE_ATTACHMENT_TAB, HIDE_EXPORT_TAB, HIDE_STATUS_TAB | Tabs on edit | HIDE_EXPORT_TAB leaves only the listing print button |
ENABLE_MULTIPLE_KO | Allow knocking off lines from more than one source document | Off: a second document from another entity or branch is refused |
DISABLE_ADD_WHEN_KO | Once the document holds knocked-off lines, the Lines tab’s add button is disabled | — |
HIDE_SERIAL_NUMBER, HIDE_BATCH_NUMBER, HIDE_BIN_NUMBER | The tracking sub-tab of a line | Hiding the tab does not remove the server’s serial / batch / bin checks on FINAL |
HIDE_COSTING_DETAILS, HIDE_PRICING_DETAILS, HIDE_ISSUE_LINK | Line tabs | HIDE_COSTING_DETAILS is overridden per user by SHOW_COSTING_DETAILS |
HIDE_UNIT_PRICE_STD_PRICING_SCHEME, HIDE_UNIT_PRICE_STD_EXCL_TAX, HIDE_UNIT_PRICE_STD_INCL_TAX, HIDE_UNIT_DISCOUNT, HIDE_QTY_BASE, HIDE_QTY_UOM, HIDE_UOM_TO_BASE_RATIO, HIDE_UNIT_PRICE_STD_UOM_EXCL_TAX, HIDE_UNIT_PRICE_STD_UOM_INCL_TAX, HIDE_UNIT_DISCOUNT_UOM_EXCL_TAX, HIDE_UNIT_PRICE_NET_UOM_EXCL_TAX, HIDE_UNIT_PRICE_TXN_UOM_INCL_TAX, HIDE_UNIT_PRICE_NET_EXCL_TAX, HIDE_AMOUNT_STD_EXCL_TAX, HIDE_DISCOUNT_AMOUNT_EXCL_TAX, HIDE_AMOUNT_NET_EXCL_TAX, HIDE_UNIT_PRICE_TXN, HIDE_AMOUNT_TXN, HIDE_LAST_PURCHASE_PRICE | One price, quantity or amount field each on the line’s Main Details (create form and the Line Items editor) | Each is reopened per user by the matching SHOW_* client-side permission |
HIDE_TAX_CONFIG_SELECTION, HIDE_WHT_CONFIG_SELECTION | The tax-code selector with its rate and amount; the WHT selector with its rate and amount | Reopened by SHOW_TAX_CONFIG_SELECTION / SHOW_WHT_CONFIG_SELECTION |
DEFAULT_BRANCH, DEFAULT_LOCATION, DEFAULT_COMPANY | Pre-selected Branch, Location and Company on a new document | Personal default overrides tenant default; RESET on the screen clears all three |
CONSIGNMENT_GRN_DETAILS_TAB_ORDER | Order of the edit form’s tabs (drag list under Default Selection) | Tabs added by a later release are appended after the saved order |
ENABLE_CUSTOM_STATUS_HDR_n, NAME_CUSTOM_STATUS_HDR_n, LIST_CUSTOM_STATUS_HDR_n (n = 1–5) | Up to five named header statuses with their value lists, shown as drop-downs on the edit form’s Status tab and as listing columns | On the Custom Status screen, Client Doc Status n (ENABLE_CUSTOM_STATUS_n) is the master switch that unlocks the header and line toggles beneath it; switching it off clears them. The edit form itself reads only the …_HDR_n keys. ENABLE_CUSTOM_STATUS_LINE_n is saved but nothing in this applet reads it |
Two more keys are on the shared screen for this applet and read by it: ENABLE_DRAFT_LOCK_SERIAL_NUMBER_CHECKING (its toggle is offered to every applet, this one included; when set, the serial checks the applet runs as you add a line, on the Serial Number tab and before FINAL also refuse a serial number already locked by another draft — a guard against the same serial being received on two open drafts) and SHOW_DOCUMENT_DELETE_BUTTON (read by the edit form).
Declared but not usable: the main AR/AP tab hide, ENABLE_CUSTOM_STATUS_LINE_n, NAME/LIST_CUSTOM_STATUS_LINE_n and the INCLUDE_* / ENABLE_* segment, dimension, profit-centre, project, SST and WHT keys are in the model but no component reads them; SHOW_VOID_BUTTON is listed among the settings but is a client-side permission code, not a setting.
Document behaviour settings
| Setting | Effect |
|---|---|
ENABLE_SERIAL_NUMBER_VALIDATION_FINAL, ENABLE_DRAFT_LOCK_SERIAL_NUMBER_CHECKING | Client-side serial pre-check before FINAL; the FINAL request then also asks the server to validate serial numbers on zero-signum lines |
SHOW_DOCUMENT_DELETE_BUTTON | DELETE on the edit form. The button is hidden only at FINAL, so it is also offered on a VOID note. DELETE is not a status: it removes the header, lines, document links and attachments from the database and writes an audit-trail entry. The stock and journal rows a FINAL note produced, and their reversals, are not among the things it removes. Use DELETE for a draft keyed in error; keep a voided note so the receipt and its reversal still have a document behind them |
ENABLE_AUTO_POPUP, PRINTABLE, HIDE_EXPORT_TAB | Printing: auto pop-up when FINAL is pressed (opened before FINAL is sent), default format, whether the Export tab exists |
| Custom Status keys | Up to five labelled drop-downs, saved on the header as plain text. The server only searches, filters and prints them. No posting, stock or FINAL step reads them, so a status such as Consignor price agreed: No does not stop anyone finalising the note. If you use one as a gate, the person who agrees prices with the consignor checks that column on the listing before the day’s bulk FINAL. That check matters because a note finalised at RM 0 moves the item’s moving-average cost (see Lifecycle and effects) |
There is no auto-final, no approval workflow, no stock-validation toggle and no e-Invoice submission for this document.
Settings in other applets that control this applet
| Setting | Where it is set | Effect here |
|---|---|---|
| Consignment Item flag | Doc Item Maintenance, item header | Only flagged, ACTIVE items are listed by Search Item |
Document-flow configuration (source type, flow type LINE, target INTERNAL_PURCHASE_CONSIGNMENT_GRN, enabled) | Organisation | Shows the KO For Purchase Order / Purchase Requisition / Purchase Invoice tabs |
| Branch main location | Organisation, branch | Pre-fills Default Location when a Default Branch is picked |
| Company posting configuration (include / exclude list) and job-template subscriptions | Organisation / platform | Decide which postings (stock, journal, webhook…) run on FINAL and which reversals run on VOID |
Fiscal period status LOCK_TXN / LOCK_ALL | Organisation > fiscal years | FINAL is rejected when the transaction date falls in a locked period |
Company default GL codes CONSIGNMENT_STOCK, CONSIGNMENT_LIABILITY, INPUT_TAX | Chart of Accounts | The accounts the consignment journal posts to (see below) |
Who can change what
Only two client-side permissions are defined for this applet: SHOW_TRANSACTION_DATE — without it the Transaction Date input on Main Details is disabled, so back-dating a receipt is a per-role grant — and HIDE_RETIRE_APPLET (shell). The applet also honours, but the Permission Set screen does not yet offer, these codes: SHOW_VOID_BUTTON (shows VOID even when HIDE_GENDOC_VOID_BUTTON is on), SHOW_INTERCOMPANY_PGRN_SCREEN (the Search tab), SHOW_DOC_NO_TENANT / COMPANY / BRANCH, SHOW_CLIENT_DOC_TYPE, SHOW_CLIENT_DOC_1..5, SHOW_DESCRIPTION, SHOW_ARAP_PNS / SETTLEMENT / DOC_OPEN / CONTRA / BAL, SHOW_COSTING_DETAILS, SHOW_LAST_PURCHASE_PRICE, the twenty SHOW_* line-price codes matching the HIDE_* keys above, SHOW_TAX_CONFIG_SELECTION, SHOW_WHT_CONFIG_SELECTION, and HIDE_PRICE (hides prices in the Line Items editor). They take effect only once defined for this applet.
Server-side, create / read / update / delete of the document are governed by TNT_API_DOC_INTERNAL_PURCHASE_CONSIGNMENT_GRN_CREATE_TGT_GUID, _UPDATE_TGT_GUID, _READ_TGT_GUID and _DELETE_TGT_GUID, assigned through the Permission Set / User / Team / Role pages; the listing is filtered to the branches in the user’s permission targets.
Fields
Main Details
| Field | Meaning | Required | Notes / validation |
|---|---|---|---|
| Company, Branch, Location | Receiving company, branch and location | Yes (all three) | Pre-filled from Default Selection; HIDE_LOCATION hides a required field |
| Delivery Branch, Delivery Location | Where the goods are delivered | No | Copied from Branch / Location unless HIDE_DELIVERY_LOCATION; the serial-number check uses the delivery location when set |
| Purchaser | Employee responsible | No | Lists employees, narrowed to the employee-category labels saved in the applet’s Sales Man setting, if any. It is stored on the header and is used for search, filters, reports and prints; no posting or stock step reads it. Trap: Credit Terms, Credit Limit and Permit No are saved only while a Purchaser is chosen, so a note saved without one loses what you typed in those three. The purchaser’s name is copied when the note is created and is not refreshed if you change the Purchaser on a saved draft, so the listing keeps showing the first name |
| Tracking ID, Permit No | Free text | No | HIDE_TRACKING_ID, HIDE_PERMIT_NO |
| Credit Terms, Credit Limit | From the supplier | No | Read from the entity; no hide setting exists for either |
| Transaction Date | Business date | Defaults to today | Input disabled unless the user holds SHOW_TRANSACTION_DATE; checked against the fiscal-period lock on FINAL |
| Due Date | Not on this form | — | The input is switched off in the applet, so the note is saved with no due date, and the server does not derive one from Credit Terms. A consignment GRN is not a payable. Payment timing belongs to the documents that bill the consignor for sold stock (Consignor Purchase Billing) |
| Reference, Description, Remarks, External Remarks | Free text | No | Remarks become the journal description of the entity line, if one is posted |
| Base Currency, Currency, Currency Rate | Document currency and rate | Currency: yes | HIDE_BASE_CURRENCY, HIDE_CURRENCY, CANNOT_EDIT_CURRENCY_RATE; locked once FINAL |
| Document Type, Doc Short Code, Doc No (Tenant / Company / Branch), Client Document Type, Client Doc 1–5 No | Identifiers | — | Read-only; shown in edit mode only, subject to the HIDE_SERVER_DOC_* / HIDE_CLIENT_DOC_* settings |
Account
| Field | Meaning | Required | Notes / validation |
|---|---|---|---|
| Entity Id | The consignor (supplier entity) | Yes | Picker lists supplier entities and can create one; the rest of the tab (Status, Identity Type, Currency, Description, Entity Name, Entity Type, ID Number, Email, Phone Number) is read-only from the entity |
| Bill To, Ship To | Billing and shipping addresses of the supplier | No | Chosen from the entity’s address list |
Lines
| Field (Item Details > Main Details) | Meaning | Required | Notes / validation |
|---|---|---|---|
| Item Name, UOM | Copied from the item | — | Item Code is read-only, but Item Name is editable. The line keeps its own copy of the name, so an edit here does not touch the item master. The note’s line form leaves Item Name and Remarks open even on a FINAL note. The UOM picker is shown only while HIDE_UNIT_PRICE_STD_PRICING_SCHEME is off. On the note’s own line form, a user holding SHOW_UNIT_PRICE_STD_PRICING_SCHEME still sees it; the Line Items editor has no such exception. Hide the pricing scheme and most users can no longer change the UOM |
| Pricing Scheme | Scheme used for the standard prices | No | HIDE_UNIT_PRICE_STD_PRICING_SCHEME |
| Unit Discount, Unit Discount by UOM | Discount per base unit and per selected UOM | No | Only Discount Amount (quantity × Unit Discount) and Unit Discount by UOM (Unit Discount × UOM ratio) are stored. Unit Discount is recomputed as Discount Amount ÷ quantity, to 2 decimals, whenever the line is reopened. Typing a by-UOM discount back-solves Unit Discount through two roundings, so it can come back a sen off. Neither box refuses a negative value, and a negative discount raises the Txn Amount that enters the cost pool |
| Quantity (base) | Quantity received | Yes | Minimum 1; must match the serial / batch / bin quantities entered |
| Quantity by UOM, UOM to Base Ratio | Quantity in the selected UOM | No | Ratio read-only |
| STD Amount, Discount Amount, Amount Net, Amount Net incl. tax, Txn Amount | Computed amounts | Net, net incl. tax and Txn Amount: yes | ≥ 0; the Txn Amount is what enters the company’s cost pool (see Lifecycle and effects) |
| SST/GST/VAT code, rate, Tax Amount; WHT code, rate, WHT Amount | Taxes on the line | No | HIDE_TAX_CONFIG_SELECTION, HIDE_WHT_CONFIG_SELECTION |
| Last Purchase Price | Reference price | — | Read-only; HIDE_LAST_PURCHASE_PRICE |
| Remarks | Line remarks | No | Becomes the journal line description, if posted |
Other line tabs: Serial Number (list, import, scan; shown for serial-number items and for items flagged as optional serial number), Batch Number, Bin Number, Costing Details, Pricing Details, Issue Link; Item Details sub-tabs Delivery Instruction, Department, Doc Link, Delivery Details, each switched off by its own Application Settings key (HIDE_DELIVERY_INSTRUCTION, HIDE_DEPARTMENT, HIDE_DOC_LINK, HIDE_DELIVERY_DETAILS).
Delivery Details, Payment, Contra, Department Hdr
Delivery Details holds Tracking ID, Delivery Branch, Delivery Type and Delivery Location for the document. Payment records settlement lines (date and amount ≥ 0.01 required; card, voucher, transfer and cheque methods ask for their reference fields). Contra (edit only) offsets the document against another open document of the same entity. Department Hdr tags the header with a department. Status (edit only) shows the custom statuses; Trace Document and Doc Link show the documents linked by knock-off.
Lifecycle and effects
| Posting Status | Meaning | Allowed next |
|---|---|---|
DRAFT | Saved; editable; deletable when SHOW_DOCUMENT_DELETE_BUTTON is on | FINAL |
FINAL | Posted; header and lines locked | VOID (listing only) |
VOID | Reversed; stock, journal, knock-off and contra effects undone by the void run | — |
FINAL is sent from the edit form or from the listing’s bulk FINAL (rows that are DRAFT and ACTIVE). With ENABLE_SERIAL_NUMBER_VALIDATION_FINAL on, the applet first validates every serial-number line against the inventory serial records (as a purchase receipt, optionally checking draft locks) and refuses to send FINAL with the toast Unable to post the document to FINAL: Serial numbers are invalid. — a client-side check, not a server rejection. The setting has no control for this applet (see Applet settings), so unless it was set some other way this pre-check does not run. With ENABLE_AUTO_POPUP on, the edit form’s FINAL opens the PDF first and sends FINAL second. The edit form’s FINAL handler also stays attached after it has run, so when the note reloads as FINAL it can run again and show This document has been posted — after a FINAL that worked (read, not run). The server also validates stock on FINAL, but for a stock-in document that check can never fail (it only errors when a remaining balance would go negative).
VOID is sent from the listing’s bulk VOID (rows that are FINAL and ACTIVE). The server first rejects the request — shown as Cannot VOID the Document. The document(s) have been knocked off with another document(s). — when any ACTIVE document link has this GRN as its source; a GRN that has been billed or issued against therefore cannot be voided until that later document is voided first.
Posting proof:
| Item | Value |
|---|---|
| Server document type | INTERNAL_PURCHASE_CONSIGNMENT_GRN (short code CSGGRN) |
| Amount signum | −1 |
| Quantity signum | +1 (stock in) |
| Create / update validation | Server doc type must match and header amount signum must be −1, or the save is refused; line signums are filled in server-side |
| FINAL validation | Serial count must equal Quantity; for an inbound line every serial number must not already exist in the company; batch / bin quantities; fiscal-period lock (no exemption for this type) |
| Stock processor | Quantity × +1 posted against the header location; the document counts as a costed receipt, so the line’s Txn Amount is added to the company’s moving-average cost pool and counts in the weighted-average calculation. It does not update the item’s last purchase cost — only a Purchase Invoice does |
| Journal | Only if the company’s job-template subscriptions and posting configuration run the journal posting for this document. The type is treated as a consignment stock-in and uses the consignment-purchase posting rule: entity line → CONSIGNMENT_LIABILITY, item lines → CONSIGNMENT_STOCK, tax → INPUT_TAX. A line discount does not post on its own: the consignment-stock debit is the line’s net amount, after the discount, and nothing posts to the purchase-discount default |
| Dr/Cr equation (when posted) | Line amount × amount signum (−1) → debit CONSIGNMENT_STOCK (tax lines → INPUT_TAX); the balancing entity line is a credit to CONSIGNMENT_LIABILITY. The supplier’s AR/AP type is ignored: a consignment stock-in always balances to the consignment liability account, so nothing is posted to CREDITOR |
| GL precedence | For consignment stock-in the line’s own GL code is skipped; then header GL → item-company link for txn code CONSIGNMENT_STOCK → company default CONSIGNMENT_STOCK. This applet has no field that sets a header GL code (neither the build customers are served nor the current source), so on a note keyed here the item-company link and the company default decide; a note created through the API with a header GL code posts every goods line to that one account. An unresolved item line is silently omitted and the liability line is built from what remains, so the journal posts short with no error; the job fails only when no line resolved (NO_JOURNAL_CREATED) or the consignor has no AR/AP type, so no liability line is built (TOTAL_DEBITS_AND_TOTAL_CREDITS_NOT_BALANCES). An unmapped CONSIGNMENT_LIABILITY fails the job with MISSING_DEFAULT_GL_CODE: CONSIGNMENT_LIABILITY. All three leave the note FINAL |
| What VOID reverses | VOID queues the void run, which triggers the reversals the company subscribes to: the stock lines are marked VOID and the balances recomputed, a reverse journal is created (the reversal fails as not yet posted if no journal exists), the knocked-off consignment-PO lines are reopened, and any contra is reversed |
Two consequences worth knowing. First, the cost pool moves by the document’s Txn Amount: a consignment GRN keyed at RM 0 (common when the consignor’s price is not yet agreed) pulls the item’s moving-average cost down for everything in stock, and nothing later in the consignment chain pushes it back up. A Consignment GIN takes its own amount out of the pool, so a GIN at the agreed price removes value that never went in and the average falls further; the Consignment Billing writes no stock line at all. Key the agreed price on the GRN, or correct the average afterwards with a Reset MA. Second, the GRN and the Consignment Return post to the consignment accounts, but the Consignment GIN does not — it falls back to the ordinary purchase / creditor accounts.
Related applets
- Consignment GIN Applet (Internal) — the outbound half; issues the consignment stock this GRN received.
- Consignment Purchase Order — the source document for the KO For tab; its open lines are closed by the GRN and reopened on VOID.
- Consignment Return (Internal) — returns consignment stock to the consignor; posts to the same consignment accounts.
- Consignment Billing and Consignor Purchase Billing — Consignment Billing turns sold consignment stock into a purchase; Consignor Purchase Billing is the period record of what you owe and posts no journal; a GRN they have knocked off cannot be voided.
- Internal Purchase Requisition and Internal Purchase Invoice — optional line-level knock-off sources when the document flow is enabled.
- Doc Item Maintenance — the Consignment Item flag that gates the item search.
- Supplier and Employee Maintenance — the consignor and the purchaser.
- Organisation — branches, locations, document numbering, document flows, fiscal periods and the posting configuration.
- Tax Configuration and Chart of Accounts — line tax codes and the
CONSIGNMENT_STOCK/CONSIGNMENT_LIABILITYdefault GL codes. - Stock Balance and Stock Report — where the received quantity and its cost effect show up.
- Creditor Report — lists the GRN among supplier-side documents.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| Cannot VOID the Document. The document(s) have been knocked off with another document(s). | A billing, GIN or other document has knocked off this GRN’s lines | Void the later document first, then the GRN |
| FINAL fails with a serial-number message | The serial is already in stock somewhere in the company, or the serial count does not match the quantity | Check the serial in Stock Balance; issue or correct it first; enter exactly as many serials as the quantity |
| Unable to post the document to FINAL: Serial numbers are invalid. | The client-side pre-check under ENABLE_SERIAL_NUMBER_VALIDATION_FINAL found an INVALID serial; nothing was sent to the server. The setting has no toggle for this applet, so it was set outside the settings screen | Open the line’s Serial Number tab and fix the flagged entries |
| This document has been posted right after you pressed FINAL | The edit form’s FINAL handler ran again when the note reloaded as FINAL (read, not run) | The note is posted; check the listing’s posting status and do not press FINAL again |
| The auto pop-up PDF shows the note before posting, or opened although FINAL failed | ENABLE_AUTO_POPUP requests the PDF before FINAL is sent | Read the posting status on the listing; print again from the listing once the note is FINAL |
| CREATE fails with One of the serial numbers is already locked | …DRAFT_LOCK_SERIAL_NUMBER…ALREADY_EXISTS: another draft holds the same serial for this item and document type | Find the other draft (Line Items listing) and remove the serial there |
| FINAL fails with The selected date falls within a locked fiscal period | The date is in a locked period; consignment GRNs are not exempt from LOCK_TXN / LOCK_ALL | Move the Transaction Date into an open period or reopen the period in Organisation |
Document is FINAL and Trace Document → Journal Txn is empty; the reason BigLedger support reads is MISSING_DEFAULT_GL_CODE: CONSIGNMENT_LIABILITY. No screen shows it until CREATE in the Stock Flow Report re-runs the posting (next column) | The company runs the journal processor for this document and has no default GL code for CONSIGNMENT_LIABILITY. FINAL itself succeeded — the journal job runs after the status change and fails on its own. Trace Document’s checks and the Missing Journal screens do not take this document type, but the Stock Flow Report does. Once the code is mapped, open the Financial Report applet’s Error Checking › Stock Flow Report, pick the company and a date range that covers the GRN’s date, and click the Difference figure on the Purchase Consignment row. In the Difference Listing, tick the GRN (Status MISSING_ACCOUNTING) and press CREATE. Status turns POSTED when the journal is made; anything else there is the reason it was not | Map it in Chart of Accounts, or exclude the journal processor for INTERNAL_PURCHASE_CONSIGNMENT_GRN in the company’s posting configuration |
Document is FINAL, no journal, and the reason BigLedger support reads is TOTAL_DEBITS_AND_TOTAL_CREDITS_NOT_BALANCES or NO_JOURNAL_CREATED | No CONSIGNMENT_STOCK GL code could be resolved for an item line (header GL, item-company link, company default all empty), so the line was dropped from the journal — and either the principal has no AR/AP type, so no liability line absorbed it (TOTAL_DEBITS_AND_TOTAL_CREDITS_NOT_BALANCES), or no line resolved at all (NO_JOURNAL_CREATED). A GL code set on the line itself is ignored for consignment stock-in | Map CONSIGNMENT_STOCK as a company default GL code or on the item-company link, then post the GRN’s journal from the Stock Flow Report’s Difference Listing with CREATE, as in the row above |
| No error, but consignment stock and the consignment liability in the GL are both short of what the GRNs received | Only some lines resolved no CONSIGNMENT_STOCK code; they were left out and the CONSIGNMENT_LIABILITY line was built from the lines that remained, so the journal balanced and posted short. Trace Document finds nothing because a journal exists | Map CONSIGNMENT_STOCK as a company default GL code or on the item-company link first. Then open the GRN in Error Checking › Trace Document and press Repost beside Posting Journal: it deletes the short journal and builds it again from the GRN, now with every line, and does not touch the stock movement. The checks on that screen read Unsupported document type for consignment documents; the Repost button does not depend on them. Repost successful means it worked. A failed Repost shows nothing, and it has already deleted the old journal. If the Journal Txn grid is empty afterwards, the Stock Flow Report’s Difference Listing lists the GRN as MISSING_ACCOUNTING, and CREATE there posts it or shows why it cannot. Or post a correcting journal yourself for the left-out lines’ value |
| The journal posted to the creditor / purchase accounts instead of the consignment accounts | The document was keyed as a normal Purchase GRN, or the journal came from a Consignment GIN (which uses the purchase handler, a known defect BigLedger is tracking) | Void and re-key as a consignment GRN; for GINs see that applet’s page |
| The item you want is not in Search Item | The item search lists only ACTIVE items carrying the Consignment Item flag | Tick Consignment Item on the item in Doc Item Maintenance |
| No KO For Purchase Order / Requisition / Invoice tab on a line | The company has no enabled LINE document flow from that type into CSGGRN | Enable the flow in Organisation, or use the header-level KO For tab for consignment POs |
| The selected document contains a different entity/branch compared to the previous document | ENABLE_MULTIPLE_KO is off and a second source document was picked | Knock off one document at a time, or switch the setting on |
| Transaction Date is greyed out | The user lacks the SHOW_TRANSACTION_DATE client-side permission | Grant it under Settings > Client-Side Permission |
| SINGLE/MULTIPLE PRINT is disabled; No Default Printable Selected when FINAL is pressed | No default printable format (PRINTABLE) | Choose one under Settings > Printable Format Settings |
| Received stock recorded on the wrong document type (a consignment GRN keyed for stock you bought outright, or the reverse) | Both documents look alike; only the journal differs | Void the document (if not yet knocked off) and re-key it on the right applet; a support case of exactly this kind is on record |
| No DELETE button on a draft | SHOW_DOCUMENT_DELETE_BUTTON is off, or the document is already FINAL | Switch the setting on under Application Settings |
| No VOID button on the edit form | The edit form has no VOID button | Use the listing: tick the row and click VOID |
Note that the auto pop-up on FINAL prints through the Purchase Order print service, so the printable format must be one that service can render.
Related documentation
- Consignment Purchasing guide — the end-to-end process the GRN belongs to.
- Purchasing module and Inventory module.