Skip to content

Consignor Purchase Billing Applet (Internal)

The period record of what you owe a consignor: for one supplier and one billing period, one line per consigned item with its opening quantity, net purchases, closing quantity and the resulting quantity to bill. It stores this in its own billing tables — no FINAL, no journal, no stock movement, no creditor balance — so the amount owed still has to be raised as a supplier invoice and paid through a payment voucher. Get the lines right on the Create screen: SAVE on the edit screen keeps the lines as they were loaded, and the Payment tab cannot record anything.

Overview

The Consignor Purchase Billing Applet (Internal) records, for one consignor (a supplier who keeps ownership of the stock in your shops) and one billing period, which consigned items became billable and for how much. Each record has a header (period, company, branch, location, purchaser, status), the consignor, and one line per item with an opening quantity, net purchases, closing quantity, the resulting Quantity To Bill and its value and tax. The applet stores this in its own billing tables; it is not a generic document, so it has no FINAL step, posts no journal, moves no stock and creates no creditor balance. The amount you actually owe the consignor still has to be recorded as a supplier invoice and paid through a payment voucher.

The window title is Consignor Purchase Billing Applet; the sidebar entry is Internal Consignor Purchase Billing. It is the purchase-side counterpart of the Consignment Billing Applet (Internal), which bills your customers for stock you consigned to them.

Where it fits

PositionApplet / documentRelationship
ModulePurchasing, InventoryConsignment-purchase family
Upstream (source of the figures)Consignment GRN (Internal), Consignment GIN (Internal), Consignment Return (Internal), Stock BalanceThe GRN and GIN are the documents that move consigned stock; the opening, net-purchase and closing quantities you type on a billing line come from them. The applet does not read them itself (see Lifecycle).
Upstream (commitment)Consignment Purchase Order (Internal)The order that placed the stock with you. Not linked to the billing.
Master dataSupplier, Employee, Organisation, Doc Item Maintenance, Tax ConfigurationConsignor entity, purchaser, company/branch/location, consignment-flagged items, SST/WHT codes
DownstreamPurchase Invoice (Internal), Payment Voucher (Internal)Nothing in the code links a billing to them; they are where the creditor balance and the payment are recorded.
Sales-side mirrorConsignment Billing Applet (Internal), Customer ConsignmentYou are the consignor there; here you are the consignee.

Screens and menus

Sidebar: one entry, Internal Consignor Purchase Billing, which opens the listing. Settings and Personalization are the applet-level menus (below).

Consignor Purchase Billing Listing — server-side grid with columns Company Name, Branch, Consignor, Consignor Name, Start Date, End Date, Status, sorted by last update. Create (+) starts a new billing; clicking a row opens it for editing. The advanced-search box is the one inherited from the Purchase Order template (see Troubleshooting — it does not search billings). There is no FINAL, VOID, DELETE or PRINT button on the listing.

Create Consignor Purchase Billing — tabs Main Details, Account, Line Item, Payment; one button, CREATE. Edit Consignor Purchase Billing adds an Export tab and the buttons RESET and SAVE.

Select Line Item → Search Item — the item picker behind + on the Line Item tab. It lists only items whose consignment flag is set (columns Item Code, Item Name, Net Purchase, Closing Stock, Billed Quantity, Quantity To Bill — the last four are empty placeholders; the picker does not compute them). Choosing an item opens Add Item with two tabs, Item Details (price, quantity, discount, SST, WHT) and Calculations (opening, net purchase, closing, quantity to bill), and an ADD button.

Create Consignor Purchase Billing with the Line Item tab open and the Select Line Item panel listing consignment items
Line Item tab: **+** opens *Select Line Item*, which lists only consignment-flagged items; *Total* and *Tax* above the grid are summed from the lines.

Payment tab — a grid (Payment Voucher No, Payment Method, Date, Paid Amount, Remarks) with Total and Outstanding above it, + to open Add Payment (settlement-method picker and method-specific fields), and click-through to Edit Payment (SAVE / DELETE). Read Lifecycle before using it: nothing entered here is saved.

Edit Consignor Purchase Billing showing the Payment tab with Total and Outstanding and the Edit Payment panel
Payment tab on the edit screen. *Outstanding* is the lines' Txn Amounts added up, less the payments in the grid; the payment grid stays empty because no payment can be added and payment lines are never sent to the server.

Export tab (edit only) — Printable Format drop-down and EXPORT AS PDF.

Settings menu (what an administrator sees, in order): System Configuration → Field Settings, Default Selection; Server Side Permissions → Permission Wizard, Permission Set, User Permission, Role Permission; Developer Tools → Release Notes. Opening Settings lands on Feature Visibility, which is not in the menu; Printable Format Settings and Webhook are likewise not in the menu and are reached by appending settings/printable-format-settings or settings/webhook to the applet’s address. Permission Wizard and Release Notes show the 404 page in this applet. Personalization lists Field Settings (404), Default Selection and Sidebar.

Configuration

Before you can use it

PrerequisiteWhereWhy
Company, branch and locationOrganisationBranch and location are the only header fields the form requires; the company is overwritten on save with the branch’s company. The server rejects a header whose company is missing or unknown (…_HDR_OBJECT_GUID_COMP_IS_NULL / …_COMP_DOES_NOT_EXIST) and a branch, location or consignor that does not exist.
The consignor as a supplier entitySupplierPicked on the Account tab. Neither the form nor the server insists on one — see Troubleshooting for why you should always pick one.
Employee recordsEmployeeThe Purchaser Agent picker lists employees.
Items with the consignment flag setDoc Item MaintenanceSearch Item lists only items with the consignment flag on; an ordinary item never appears. The line’s default price is the item’s base-UOM price.
SST / WHT tax codesTax ConfigurationThe Item Details tab has SST and WHT pickers.
Settlement-method items (items with a SETTLEMENT_TYPE)Doc Item MaintenancePopulate the Payment tab’s Settlement Method list. Only needed if you want the tab to render; it cannot save.
Server-side permissions API_TNT_DM_ERP_CONSIGNOR_PURCHASE_BILLING_*Settings → Permission Set / User Permission / Role PermissionSee Feature visibility / permissions.

Not needed: default GL codes, document numbering, cashbooks, e-Invoice settings. The billing posts nothing and has no document number (the listing has no number column).

Applet settings

The applet has its own Default Selection and Field Settings screens and no inline settings gear. Only one setting actually does anything. Any user who can open Settings can change it.

SettingWhat it controlsDefaultEffect when changed
PRINTABLE (Printable Format Settings → set as default)The printable format pre-selected in the Export tab’s drop-down.none — the drop-down is empty until a default is chosenRead into the Export tab. It has no effect on the PDF itself, because the export effect ignores the selected format (see Lifecycle).

Screens that look like settings but change nothing:

  • Default Selection (DEFAULT_BRANCH, DEFAULT_LOCATION): two drop-downs and a SAVE button. The screen always opens blank and SAVE stores nothing; Main Details never reads these values. The same applies to Personalization → Default Selection.
  • Field Settings: eight slide-toggles (Unit Discount, SST/VAT/GST, WHT, Blanket Order; Segment, G/L Dimension, Profit Center, Project) that save nothing; the document form shows every field regardless.

Document behaviour settings

No exposed control. There is no FINAL / VOID, no numbering, no approval workflow, no e-Invoice flag and no posting to configure.

Settings in other applets that control this applet

SettingWhere it is setEffect here
Consignment Item tick on the itemDoc Item MaintenanceSearch Item lists every ticked item and nothing else. The tick belongs to the item, not to a supplier, and the list is not narrowed to the consignor chosen on the Account tab, so a line for another consignor’s goods is accepted without a word. Before CREATE, whoever prepares the billing matches each line to this consignor’s goods received notes for the period (or to the consignor’s own statement); a line with no receipt from this consignor does not belong on this billing.
Base-UOM price on the itemDoc Item Maintenance, PricebookDefault Unit Price on Item Details; the applet also loads the pricing-scheme links it finds.
Supplier GL code, ID number and currencySupplierCopied into the read-only Account card for display only.
SETTLEMENT_TYPE on settlement-method itemsDoc Item MaintenanceDecides which fields Add Payment shows (CASH, CASH_BACK, CREDIT_CARD, VOUCHER, BANK_TRANSFER, MEMBERSHIP_POINT_CURRENCY, CHEQUE).

Feature visibility / permissions

Client-side: no client-side permission is registered for this applet and the applet checks none, so the Feature Visibility screen is empty and nothing in the UI — prices included — is hidden per role.

Server-side:

PermissionWhat it gates
API_TNT_DM_ERP_CONSIGNOR_PURCHASE_BILLING_CREATEThe CREATE button
…_UPDATEThe SAVE button; target-scoped to the billing row
…_DELETEDeleting a billing — header and lines, permanently; no button does this
…_READListing and opening billings. A row the user may not read comes back with only its guid and status PERMISSION_DENIED.
…_OWNER, …_ADMINSatisfy every check above; tenant owner / admin also bypass
…_MEMBERDefined but not checked

Fields

Main Details

FieldMeaningRequiredNotes / validation
CompanyOwning companyNo (form)Overwritten on CREATE and SAVE with the selected branch’s company; the server requires a valid company.
BranchOwning branchYesDecides the company: CREATE and SAVE replace the Company with this branch’s company, whatever the Company box shows. It also narrows the Location list. The server checks only that the branch and the location exist, not that the location belongs to the branch. A billing holds one branch and one location, so a consignor whose stock sits in three shops gets three billings for the period. Nothing refuses a second billing for the same consignor, location and period — see the dates below.
LocationStore the consigned stock sits inYesFiltered by branch; must exist.
Purchaser AgentEmployee responsibleNoLabel carries an asterisk but there is no validator. Opens Main Select Purchaser Listing (employees). Read-only on edit — it cannot be changed after save.
StatusACTIVE / INACTIVEYesPlain status column; INACTIVE rows still list and still open.

The form also takes Start Date, End Date, Reference and Remarks, and all four are saved. Neither date is required by the form or by the server, so a billing can be saved with no period at all, and nothing compares its dates with another billing’s. The duplicate check is yours: before CREATE, filter the listing on Consignor and Start Date, and if this consignor already has a billing for this location and period, open that one instead. Two billings for one period double what you appear to owe. The header Remarks is also the only place on a billing where a note survives (line remarks do not, see below).

Account

A read-only card (Entity ID, Entity Name, Status, Email, Phone, GL Code, ID Number, Entity Type, Identity Type, Description, Currency) filled from the supplier picked in Select Consignor Listing. The picker embeds supplier create/edit sub-screens (addresses, contacts, tax, branches, categories, item pricing, companies, logins, payment configuration). No field is validated, so CREATE / SAVE do not wait for a consignor.

Line Item — Item Details

What a line keeps. CREATE saves, for each line, the item, the four quantities on the Calculations tab and six amounts: STD Amount, Discount Amount, Amount Net, Tax Amount, WHT Amount and Txn Amount. Everything else on these two tabs — unit prices, UOM, Quantity Base, the SST and WHT codes and rates, an edited item name and the line Remarks — is used to work those amounts out and then dropped, because the billing line has nowhere to keep it. If a line needs an explanation (a damaged unit written off, a price the consignor agreed by phone), write it in the header Remarks on Main Details.

FieldMeaningRequiredNotes / validation
Item Code / Item NameFrom Search Item—Code read-only; the name can be edited but is not saved (above). As read from the code and not yet tried, the Line Item grid’s Item Code column looks for a value the billing line never carries, so it stays blank even on the Create screen. Add one line and look at the grid: if the code is blank, tell your lines apart by their quantities and amounts, and add items in an order you can check against your list.
Unit Price STD (Excl. / Incl. of tax), by UOM variants, Unit Price Net, Unit Price TransactionPricesNoDefaults from the item’s base-UOM price; ≥ 0.
Unit Discount, Unit Discount by UOMDiscount per base unit, and the same per selected UOMNo≥ 0. Only the resulting Discount Amount is saved. The discount comes off before tax (Amount Net = STD Amount − Discount Amount), so it lowers the Txn Amount. Neither box refuses a discount larger than the price; the Amount Net then drops below 0 and ADD stays greyed out with no message.
Quantity BaseQuantity pricedYesWhole number ≥ 1; starts at 1. This is a separate figure from Quantity To Bill — the two are not tied together, and Quantity Base itself is not saved (see Txn Amount).
Quantity by UOM, UOM to Base RatioUOM conversionNoRatio read-only
STD Amount, Discount Amount, Amount NetComputedNet requiredSTD = price × quantity; Net = STD − discount
SST/GST/VAT code, rate, Tax AmountTaxNoCode from the SST picker; rate and amount read-only, and the rate shows as a fraction (0.06 for 6%). There is no Net Amount incl. tax box. The line treats the item’s default price as tax-inclusive, so picking a code does not add tax on top: the Txn Amount stays where it was and is split into Amount Net and Tax Amount. That is read from the code, not tried; check it on one line before you rely on it: note the Txn Amount, pick the code, and see whether the Txn Amount moves. Only the Tax Amount is saved.
WHT code, rate, WHT AmountWithholding taxNoCode from the WHT picker. WHT comes off the Txn Amount (Txn = Net + tax − WHT), and for the same tax-inclusive reason picking a code keeps the Txn Amount and raises the Amount Net to make room for it. Only the WHT Amount is saved, and nothing is withheld: the billing posts no tax payable and nothing reminds anyone to pay it over. Whether a payment to this consignor is subject to withholding is for your tax adviser to decide. If it is, record the deduction on the purchase invoice and the payment voucher, and track the remittance outside this applet.
Txn AmountNet + tax − WHTYes≥ 0. The only figure a line adds to the tab’s Total, to the header total and to the Payment tab’s Outstanding. It is priced on Quantity Base, not on Quantity To Bill, so a line whose Calculations say 12 to bill carries the value of 1 unit unless you set Quantity Base to 12 yourself. You can type a Txn Amount and the line works back to Amount Net, tax and discount, but a figure above the standard price makes Discount Amount negative, and ADD greys out with no message. If the consignor’s agreed price has risen, correct the item’s purchase price before you start. Before CREATE, check the Total against the consignor’s statement for the period: that comparison is the only check on the amount.

Line Item — Calculations

Field (label as shown)MeaningRequiredNotes / validation
Openning QuantityConsigned stock on hand at the start of the periodOn the form (≥ 1) — but ADD checks only the Item Details form, so it is not enforcedDefault 1; a cleared field is reset to 1
Net PurchaserNet consigned stock received during the periodNoDefault 0.00; cleared → 1
Closing StockConsigned stock on hand at the endNoDefault 0.00; cleared → 1
Quantity To BillOpening + Net Purchase − Closing, recalculated on every changeNoComputed with integer parsing — decimals are dropped before the sum. Editable; the last computed value wins if you change an input again.

Payment — Add Payment

The settlement type on the settlement-method item you pick decides which boxes appear. Every method asks for Amount and Remarks, and every method except VOUCHER asks for a Date. On top of that, CASH_BACK adds Cash Back and a read-only Cash Back for Settlement; CREDIT_CARD adds Card No, Name on Card, Card Issuer, Type, Card Expiry (year and month) and CVV; VOUCHER adds Voucher #; BANK_TRANSFER adds Transaction No; MEMBERSHIP_POINT_CURRENCY adds Point CCY and Point Currency for Settlement; CHEQUE adds Cheque No. ADD enables once Amount is at least 0.01 and every box except Remarks, Type and Cash Back for Settlement is filled.

Behind the boxes, the seven methods are the same. The code that would have handled each method differently is switched off for all seven. For five of the seven it was written to record money coming in, as a sales receipt does, so switching it back on would not record a payment to a consignor either. ADD copies only Amount onto a draft line and is then refused (next section). The method, date, reference numbers and card details are discarded and never stored, and Outstanding never goes down.

Record the payment where it can be recorded: raise the purchase invoice for the billing’s Total, pay it with a Payment Voucher, and look at that invoice’s open balance, not this tab, to see what is still owed for the period.

Export

Printable Format — formats whose transaction type is INTERNAL_CONSIGNOR_CONSIGNMENT, pre-selected from PRINTABLE; EXPORT AS PDF.

Lifecycle and effects

Statuses. ACTIVE and INACTIVE, chosen on the form; the server fills ACTIVE when the value is missing. There are no transitions, no FINAL and no VOID — a billing can be edited at any time in either status. Rows with status DELETED are excluded from every query, but nothing in the applet sets that status; the only removal path is a delete by support, which removes the header and its lines permanently.

Posting proof block

ItemValue
Server document typeNone. The applet writes its own billing records, not generic documents. (INTERNAL_CONSIGNOR_CONSIGNMENT, short code CSRCON, does exist as a generic type with amount and quantity signum 0, but the applet only uses that name as the printable-format transaction type and never creates such a document.)
Amount signum / quantity signumNot applicable — no generic lines are sent.
Dr / Cr equationNone. Nothing posts a journal for a billing.
GL precedenceNot applicable.
Stock processorNone. No inventory transaction is written.
Open-queue rows (Knock Off Configuration)None created; no downstream document can pick a billing up.
What VOID reversesThere is no VOID.

What CREATE sends. The header from the form (company replaced by the branch’s company; the amounts and the open balance summed from the lines) plus the lines. Payment lines are not included. The server checks that the company, branch, location, consignor and items exist; it does not validate any amount or quantity. The success toast reads “The purchase order has been created successfully” (inherited text).

What SAVE sends. The header from the form, and the lines exactly as they were loaded from the server. Lines you add, change or delete on the edit screen therefore disappear after SAVE. Header changes (dates, branch, location, status, reference, remarks, consignor) are saved.

Payments. Add Payment → ADD runs a check against the outstanding balance that can never pass, so every attempt ends with the snack-bar “Payment Exceeds Outstanding” and nothing is added to the draft. Even a line that got past the guard would not be sent (see CREATE / SAVE above) and would not appear in the Payment grid when the billing is reopened. No payment voucher, cashbook entry or creditor knock-off is involved at any point.

Quantity To Bill. Computed in the browser as opening + net purchase − closing. The server can work these figures out itself (opening stock from inventory movements, net purchase from GRN and GIN lines) but the applet never asks it to; the three quantities are whatever you type.

Export. EXPORT AS PDF uses the Purchase Order print with a fixed template; the format chosen in the drop-down is ignored. Expect the error toast unless that template accepts a billing guid; the success toast, if any, reads “Purchase Order Exported Successfully”.

Related applets

Troubleshooting

SymptomCauseFix
ADD on Add Payment always shows Payment Exceeds Outstanding, whatever the amountThe outstanding-balance check can never pass.Payments cannot be recorded in this applet as shipped. Pay the consignor through a Payment Voucher against a purchase invoice.
Lines added, changed or deleted on the edit screen are gone after SAVESAVE sends the lines as loaded from the server, not as edited.Get the lines right on the Create screen. To change a saved billing’s lines, create a new billing for the period.
CREATE / SAVE stays disabledBranch or Location empty, Status not chosen, or no line on the Line Item tab. Consignor and Purchaser are not checked.Fill Branch, Location and Status; add at least one line.
Success toast says “purchase order”Inherited toast text.The billing was created; confirm in the listing.
Listing fails to load, or a row shows CLIENT_VALIDATION_GUID_DOES_NOT_EXIST in the Consignor columnsThe listing looks up each row’s branch, company and consignor. A deleted consignor yields the error code in its columns; a billing saved with no consignor (allowed by the form and the backend) makes the lookup dereference a null guid and the grid load fails.Always pick a consignor before CREATE. If a bad row exists, ask support to delete it (no button exists).
Advanced search never finds anythingThe search box is the Purchase Order one: it searches generic documents, which never match a billing.Use the column filters in the grid instead.
Item is not in Search ItemIts consignment flag is off.Set the flag in Doc Item Maintenance.
Quantity To Bill ignores decimals, or a cleared quantity turns into 1Inputs are parsed as integers; an empty opening / net / closing field is reset to 1.Enter whole units; do not leave a quantity blank — type 0 explicitly for net purchase or closing stock.
Default Selection does not remember the branch / locationThe screen saves nothing and never loads a stored value.Choose branch and location on each billing.
Export produces an error, or a purchase-order layoutThe Export tab uses the Purchase Order print with a fixed template; the chosen format is ignored.No working export in this applet; use the Purchase Report.
Settings opens on an empty Feature Visibility page; Permission Wizard, Release Notes or Personalization → Field Settings show 404No client-side permissions exist for this applet; those three menu entries do not work here.Use Permission Set / User Permission / Role Permission for access control; ignore the empty screens.
Save refused because the company is missing or not foundThe branch’s company could not be resolved.Check the branch’s company in Organisation.
…_HDR_OBJECT_GUID_BRANCH_DOES_NOT_EXIST / …_STORE_DOES_NOT_EXIST / …_ENTITY_HDR_DOES_NOT_EXIST / …_LINE_OBJECT_FI_ITEM_GUID_DOES_NOT_EXISTA referenced master record was deleted between selection and save.Re-select the record.
Applet opens on the 404 pageThe applet’s root address points at a page that does not exist.Click Internal Consignor Purchase Billing in the sidebar; the normal launch URL goes straight to the listing.

Related documentation

Last updated on