Skip to content
Sales Operations: Each Document Side by Side

The Sales Documents Side by Side

Every sales document side by side: what each one writes into stock, the ledger, the cashbook and the e-invoice queue when it goes FINAL, which one to raise for the job, and the checks before the close. You are here: the detail behind the Sales Operations Overview, which maps the sales day; each document’s own screens are on its applet page, starting with the Sales Order.

What each sales document writes when it goes FINAL

Nothing happens on Save. FINAL is a separate call that queues one primary job processor, and that processor fans out to the secondaries that write stock lines, the journal, cashbook lines and the e-invoice queue, each in its own job and each a moment after the button. So a document can be FINAL with one of these missing, and nobody is told at the time.

DocumentWhose screenStockGeneral ledgerCashbooke-Invoice
Sales InquiryThe sales desk, before there is a price; a sales agent is required on the formNothingNothingNothing. Convert turns its collection lines into a receipt voucherNo
Sales QuotationSales staff preparing quotesNothing, and not in available eitherNothingNothing on the quotationNo
Sales OrderSales administratorsNothing in the balance. Its un-invoiced balance lowers available, and a line can hold a reservationNothing from its item lines. A Settlement-tab deposit, where the tenant runs the journal job for ordersA deposit on its Settlement tab, where the tenant’s cashbook job runs for orders or the cashbook watchdog clock runsNo
Sales Proforma InvoiceWhoever quotes a job or asks for a deposit; its page names no roleNothingNothing from its item lines. A Payment-tab line is signed as a payment and can post—No
Delivery OrderThe office that raises deliveries for the warehouse and the driverNothing. The goods stay in stock until the invoice; the open lines count as committed stock and against the customer’s available creditNothingNothingNo
Sales InvoiceSales administrators and accounts staffOutThe receivable, against Sales and Output Tax. No cost lineOne line per Payment-tab lineQueued
POS General cash billCashiers; supervisors for sessions and the Z reportOutThe same as an invoiceThe tender, one line per settlement lineQueued. Consolidated by branch or individual; RM 10,000 and above is always individual
Sales Invoice No Stock OutFinance billing services and recharges. Not in the applet store; reached through the APINothing, whatever the caller sendsThe same journal as an invoiceSettlement linesNot an e-invoice type
Sales GIN Stock OutNot in the applet store; reached through the APIOutJournalled like a sale—Not an e-invoice type
Sales GIN, Sales GRNWarehouse and sales operations, as a recordNothingNothingNothing. A settlement row on a GRN is a recordNo
Sales ReturnSales or customer service raise it, the warehouse receives against it, finance settles itInYour Sales Returns account, against the receivableThe refund on its Payment tab, which is what brings its balance to zeroQueued
Sales Refund NoteIts page names no role; in practice the desk that settles returnsInYour Sales account, not Sales ReturnsRefund lines on its Payment tabQueued
Sales Credit NoteAccounts-receivable staffNothingSales and Output Tax reduced, against the receivableA refund paid out on its Settlement tabQueued
Sales Debit NoteIts page names no role; in practice the same desk as the credit noteNothingSales and Output Tax raised, against the receivableSettlement linesQueued
Customer ConsignmentWarehouse or store staffOut of your location into the customer’s consignment location, and backNothingNothingNo. The sale is an ordinary Sales Invoice when the customer reports what sold
Consignment BillingThe buyer’s accounts-payable clerk. A purchase document filed in the Sales Workflow folderNothingPurchases against the supplier, and the consignment liability cleared—Not an e-invoice type

The other applets in the Sales Workflow folder write none of this themselves. Recurring Sales Invoice, SO Consolidation and JS Consolidation produce a draft Sales Invoice, and the posting happens when someone finalises it there. Job Sheet and Car Workshop record the work; the money taken on a job sheet is a record inside it, not a receipt voucher. Sales Commission counts FINAL orders, invoices and cash bills, pays through a payment voucher, and ignores credit and refund notes, so a returned sale keeps its commission. Sales Report, Sales Report Supplier Access and Daily Cashier Report read; Custom Processor queues FINAL documents for a system outside BigLedger.

The figures in that table, and what makes each

  • The direction (in, out, nothing) is written by the server onto every line each time the document is saved, from the document type alone. No applet setting and no API caller changes it.
  • The account a goods line posts to is the first found of: a GL code on the line, one on the header, the item’s company GL link, the company default. Only a Sales Return line takes the SALES_RETURN default; a Sales Refund Note line lands on SALES, so a returns analysis built on the Sales Returns account misses every refund note.
  • The receivable side comes from the customer’s AR/AP type, read from the customer record when the journal is built, not from the snapshot the document keeps. A customer typed AP_TRADE (a supplier you also sell to) has the sale posted against your creditors, netting what you owe them.
  • Cost of sales is on no sales document. The unit cost stored on a finalised line is written back by the costing job after the stock line exists, and a back-dated purchase rewrites it; the cost-of-sales journal is written once a period by the close, from the stock ledger.
  • A cashbook line is one per settlement line on a FINAL document, written by the cashbook job. A settlement method with no cashbook, or a cashbook with no GL code, fails that job, not the save.
  • The LHDN queue takes six sales types: invoice, cash bill, credit note, debit note, refund note and return. At FINAL the document’s Skip E-Invoice flag is resolved from the document, then its branch, then its customer, and the entry gate then needs the company ENABLED and the document not already queued. When any of that fails, nothing is written and no error is shown. The buyer on the e-invoice is the document’s own buyer block when one is filled, otherwise the customer snapshot the document took when it was raised. A sales invoice or cash bill of RM 10,000 or more is always submitted individually, whatever the company’s submission type.

Choosing the sales document to raise

An order first, or straight to the invoice

The order is optional, and most companies skip it. What a FINAL order buys you: its un-invoiced balance is taken off available in Stock Availability so nobody promises the same unit twice, a line can hold a reservation, the invoice is raised by knock-off rather than retyped (part now, part later, with the balance held on the order), and SO Consolidation can bill a month of orders as one invoice per customer. One condition sits under all of it: FINAL opens an order for knock-off and availability only for the source-to-target pairs in the company’s Knock Off Configuration. With no SO → Sales Invoice pair, the order is FINAL, the invoice’s KO For picker is empty, and available is untouched.

Delivery order before the invoice, or after

Stock leaves on the invoice, whichever order you raise them in. A delivery order dated in March and invoiced in April leaves the goods in March’s closing stock and puts the sale and its cost in April — the worked example is on Inventory’s related applets. What the delivery order does carry is credit: its open lines count against the customer’s available credit and as committed stock. Few companies across BigLedger use it at all; the invoice is the delivery document for most.

Invoice or cash bill

The cash bill is an invoice settled on the spot, posting the same journal and the same stock-out plus the tender, raised at the till by a cashier rather than in the office. Retail does not make a walk-in open an account, so the sale goes to a generic cash customer and finalises there, and the applet offers no way to change the customer afterwards. When that customer comes back days later wanting an e-invoice in their company’s name, the cheap answer is to complete the e-invoice buyer block in My E-Invoice Admin while the bill is still waiting to be reported, or to let them key it in the buyer portal. The expensive answer, a return, a new invoice under the right account and a contra, is needed only when the account itself must change, and it is the only answer once the consolidated run has swept the bill in.

Taking goods back: return, refund note or credit note

“How do I take goods back — refund, credit note or exchange?” Three documents, three different things, and across BigLedger credit notes are raised in far more companies and far more often than sales returns, so a share of them are returns recorded on the wrong document.

You needRaiseStockPosts toMoney
Goods back, and the money or a creditSales ReturnInSales ReturnsThe refund on its Payment tab, or a contra. With SALES_RETURN_WITH_PAYMENT on, FINAL waits until the return’s balance is zero
Goods back and cash back, booked against SalesSales Refund NoteInSalesRefund lines on its Payment tab
Money off, goods stay with the customerSales Credit NoteNothingSalesContra against open invoices, or a refund on its Settlement tab
You underchargedSales Debit NoteNothingSalesCollected like an invoice

The sales module’s reversal decision adds VOID for an invoice nothing has moved on yet. At a company enabled for e-invoicing, VOID is refused on a credit note and on a return; the correction is a further note, or a cancellation on the e-invoice side.

Billing without moving stock, and issuing without billing

Two document types do the halves separately: Sales Invoice No Stock Out posts the sale and holds every line at no stock movement, and Sales GIN Stock Out takes stock out and is journalled like a sale. Neither is in the applet store; both are reached through the API, and a GIN Stock Out and a Sales Invoice for the same goods not knocked off against each other take the stock out twice. A plain Sales GIN or Sales GRN is a record only. From a screen, a service fee or a recharge goes on an ordinary Sales Invoice with a service item: the sale posts and nothing moves. (A basic item with no inventory item is not the way to do it — it is given one the first time it posts, and then moves stock.)

When a sales number is wrong

What you seeThe usual causeCheck firstFix
Every invoice finalises and none of them postThe company has no default GL code for the customer’s receivable account, usually the second or third company in a groupFinancial Report Trace Document › Missing Journal › Resolve, which shows the reasonMap DEBTOR (or DEBTOR_NON_TRADE) in Chart of Account, then Resolve each invoice
A customer’s sales are missing from the debtor reports and sitting in creditorsThe customer carries an AP type, on its record or on its Company Linking row for that companyThe customer’s AR/AP type and the company rowCorrect the type, then rebuild each posted document’s journal with Repost in Trace Document, agreed with whoever closed the month
Goods came back and the system still counts them as soldThe return went on a credit noteThe credit notes for that itemRaise a Sales Return for the goods. Keep the credit note only if it was for money off
The returns figure on the Sales Returns account is shortRefund notes post to SalesThe period’s refund notesNone in the ledger. Read Sales Returns plus the refund notes, or code the refund note’s line GL to the returns account
The order still shows a quantity outstanding after it was invoiced in fullThe outstanding figure is a stored row per downstream document type, and three ordinary things leave it highThe order still shows a quantity outstandingAs the guide says
The invoice’s KO For picker is empty, and the order is FINALNo SO → Sales Invoice row in the company’s Knock Off ConfigurationOrganization › the company › Knock Off ConfigAdd the row. Orders finalised before it existed are re-queued from Data Fix › Generic Documents › Missing Open Queue (or by BigLedger support if you do not hold that applet)
Finalised, and nothing was submitted to LHDNUsually queued and waiting for the scheduled run. Otherwise the entry gate dropped it: company not ENABLED at the time, Skip set on the document, branch or customer, or a type the gate does not takePools and routing; then the discrepancy reportA dropped document needs support to push it into the Posting Queue; enable the company before finalising
The salesperson field is greyed out on a FINAL invoice, and it used to be editableThe field is locked after FINAL unless ALLOW_EDIT_SALES_AGENT_FINAL is on for the tenantThe invoice applet’s settingsAsk the tenant administrator to turn it on. The posting does not read the field
The margin report and the profit and loss disagreeNo sales document posts cost of sales, and a back-dated purchase rewrites the cost on earlier linesThe margin report and the P&LRead the margin after the period close

What the sales documents will not do

Each holds whichever applet raised the document and through the API. After each one, who does the job.

  • No sales document writes a cost-of-sales line. The accountant runs the period close in Financial Report and reads the margin after it.
  • A credit note brings nothing back into stock, and a delivery order takes nothing out. The counter raises a Sales Return for goods that came back; the accountant lists delivery orders dated in the period with no invoice and invoices or accrues them before the close.
  • Nothing approves a sales document. The approval engine covers purchase orders, requisitions and stock requisitions only, and the FINAL validator asks no approval question. Control over an invoice is who holds the finalise permission, and the manager decides who that is.
  • The credit limit is a check in the Sales Order and Sales Invoice screens, one company at a time. A cash bill, a delivery order and a document that arrives by API are not measured, and no figure adds up what a customer owes the group. The one server-side stop is the blacklist, on cash bills, invoices, orders and outbound delivery orders. Deciding credit is the credit controller’s job, with Deciding on Credit.
  • A failed posting leaves the document FINAL. Stock, journal, cashbook and e-invoice are separate jobs, and a missing account or cashbook fails the job silently. The accountant runs the check below before each close.
  • The invoice applet does not change the customer or the date after FINAL. The server keeps back-office routes a support engineer or an integration can call, and the invoice page says what each refuses. From the screen, the e-invoice buyer is completed on the e-invoice side, and the account changes by return, re-issue and contra.
  • A reservation on an order outlives the order’s VOID. The void chain has no reservation step; whoever voids the order releases its reservations in Stock Reservation.

Checking that the sales documents are right before the close

About ten minutes per company, before each close.

  1. Nothing is FINAL without a journal. In Ledger And Journal Error Checking › Missing Journal, run the period for INTERNAL_SALES_INVOICE, INTERNAL_SALES_CASHBILL, INTERNAL_SALES_CREDIT_NOTE, INTERNAL_SALES_DEBIT_NOTE, INTERNAL_SALES_RETURN and INTERNAL_SALES_REFUND_NOTE. You are done when each list is empty.
  2. Every refund reached the cashbook. For each sales return and credit note with a refund line, run Trace Document’s Missing Cashbook. You are done when none reports a missing line.
  3. Returns are on return documents. List the period’s credit notes; for each one where goods came back there is a Sales Return or Refund Note for the same goods. You are done when every returned item has one.
  4. Every e-invoiceable sale is in the pipeline. Run the discrepancy report for the period and read Exists in ERP, Missing in E-invoice. A document you skipped on purpose appears here too, so you are done when every row is one you can name as skipped. Foreign-currency documents are not examined by this report, so list them separately.
Last updated on