Skip to content

Sales Module

This module is the chain of documents a business raises when it sells on terms: an inquiry, a priced quotation, a confirmed order, a delivery, the invoice, and the documents that correct an invoice afterwards. It shares its document engine, its item and customer master data, and the single moment — FINAL — at which a piece of paper becomes an accounting fact with the retail till, but the till is a different job done by different people, and it has its own module: Point of Sale.

This page is a map, not a manual. Each applet’s own reference page carries its fields, its settings, its posting proof and its failure modes. This page says which applets are in the module, what each one is for, and which of them actually reach the ledger.

Applets in this module

Membership is an editorial judgement — the product has no module↔applet relationship in its data — and it is written down in planning/specs/module-applet-membership.md rather than left to the folder each page happens to sit in.

The sales document chain

AppletWhat it is for
Sales InquiryA customer’s request, before there is a price.
Sales QuotationA priced offer. Posts nothing and reserves nothing.
Sales OrderA confirmed commitment. Posts nothing, but reduces available stock and can hold reservations.
Sales Proforma InvoiceA pre-billing document.
Sales InvoiceThe bill. On FINAL: Dr Debtor / Cr Sales and Output Tax, stock out, cost of sales posted, e-Invoice queued.
Delivery OrderThe fulfilment document a sales order or invoice is knocked off against.
Sales ReturnGoods coming back. Stock in, and the sales journal reversed through Sales Return.
Sales Credit NoteMoney off an invoice with no goods movement.
Sales Debit NoteAn extra charge, with no goods movement.
Sales Refund NoteMoney back to the customer, with the goods returning.
Recurring Sales InvoiceGenerates sales invoices on a schedule.
Sales ContractThe agreement a recurring or staged sale runs from.
SO ConsolidationCombines sales orders for fulfilment.
Sales GINA goods-issued record. It does not move stock — see the warning below.
Sales GRNThe inbound counterpart, with the same caveat.

Reporting, service jobs and hand-off

AppletWhat it is for
Sales ReportEleven reports over FINAL sales documents. Amounts are multiplied by each line’s amount signum, so returns and credit notes reduce sales.
Sales Report Supplier AccessThe same reporting surface exposed to a supplier.
Sales CommissionCalculates commission from FINAL sales orders, invoices and cash bills. Paying it is a separate payment voucher.
Customer ConsignmentStock parked at a customer’s site and billed when it sells.
Job SheetService work billed to a customer.
Car WorkshopThe workshop variant of the job sheet.
Custom ProcessorQueues finalised sales documents for an external system to pick up. It changes no posting status of its own. Also carries the electronic-shelf-label sync history the retail branches use.

What actually reaches the ledger

This is the single most useful thing to know about the module, because most of its documents are record-keeping and only five of them post.

    flowchart LR
  INQ["Sales Inquiry"] --> QUO["Sales Quotation<br/>signum 0/0"]
  QUO --> SO["Sales Order<br/>signum 0/0"]
  SO --> INV["Sales Invoice<br/>amount +1, qty −1"]
  SO --> DO["Delivery Order"]
  DO --> INV
  INV --> LEDGER[["General ledger<br/>+ stock ledger"]]
  INV --> RET["Sales Return<br/>amount −1, qty +1"] --> LEDGER
  INV --> CN["Sales Credit Note<br/>amount −1, qty 0"] --> LEDGER
  INV --> DN["Sales Debit Note<br/>amount +1, qty 0"] --> LEDGER
  INV --> RN["Sales Refund Note<br/>amount −1, qty +1"] --> LEDGER
  GIN["Sales GIN<br/>signum 0/0 — inert"] -.-> NOTHING(["no ledger effect"])
  QUO -.-> NOTHING
  SO -.-> NOTHING
  
DocumentAmount signumQuantity signumWhat FINAL posts
Sales Invoice+1−1Dr Debtor / Cr Sales, Output Tax; Dr COGS / Cr stock; stock out
Sales Return−1+1Dr Sales Return, Output Tax / Cr Debtor; Dr stock / Cr COGS; stock in
Sales Credit Note−10Dr Sales, Output Tax / Cr Debtor. No stock movement, no COGS.
Sales Debit Note+10Dr Debtor / Cr Sales, Output Tax. No stock movement.
Sales Refund Note−1+1The invoice entries reversed; stock returns to the line’s location
Sales Quotation00Nothing
Sales Order00Nothing in the ledger. Reduces available stock.
Sales GIN00Nothing

The general ledger is reached through exactly seven journal handlers in the whole product, and the one this module uses is SALES — the same handler the till’s cash bill uses.

Sales GIN and Sales GRN do not move stock. Their server document types carry amount signum 0 and quantity signum 0 and have no journal handler, so FINAL changes the posting status and nothing else. The sales-side document type that does issue stock, INTERNAL_SALES_GIN_STOCK_OUT, is a different document and has no applet registry row of its own. If you installed “Sales GIN (Internal)” expecting a warehouse issue, this is why the stock never moved.

Three things this module is often believed to do, and does not

It does not approve anything. There is no document approval step on a quotation, an order or an invoice. BigLedger’s approval engine covers three document types only — Purchase Order, Purchase Requisition and Stock Requisition — it is off until a tenant configures it, and the posting path contains no approval check at all. A discount on a sales line is released by a permission, not by a routed request.

It does not block a customer for exceeding a credit limit. Turning on the credit-limit filter shows the available credit — the limit, less the accounts-receivable balance, less open amounts — next to the customer. Nothing stops FINAL. The one hard stop on the customer is the blacklist, which rejects an invoice, an order or an outbound delivery order (and, at the till, a cash bill) with ENTITY_BLACKLISTED; it is not checked on quotations, returns, credit notes or debit notes.

A sales order does not “allocate” stock in two tiers. There is no hard and soft allocation. A FINAL sales order reduces the available quantity — it is counted alongside invoices by the stock availability service — and that is automatic. Separately, a line may hold a reservation over specific quantities, serials or bins, which is opt-in, is visible on the Reserved Stock tab, and is released when the order is voided. The reservation statuses and their known defects live on the Stock Reservation applet page.

What this module needs from others

ModuleWhat it supplies
CoreCustomer Maintenance, Doc Item Maintenance, Organization (company, branch, location), Pricebook, Tax Configuration
Financial AccountingThe Chart of Account company defaults every posting resolves against — DEBTOR, SALES, SALES_DISCOUNT, SALES_RETURN, OUTPUT_TAX, COGS, FOREX_GAIN, FOREX_LOSS — plus Receipt Voucher for deposits and payments and Statement of Account
InventoryStock Availability, Stock Balance, Stock Reservation
Point of SaleThe cash bill — the retail counterpart of the sales invoice, posting through the same SALES handler and counted by the same reports and commission runs
MembershipCommission Scheme
E-InvoiceThe submission pipeline every FINAL sales document is queued into

Where to go next