Skip to content

Point of Sale Module

This module is the checkout counter: one cash bill, settled on the spot by cash, card, e-wallet, voucher, points or contra, rung up by a cashier all day at speed, and balanced at the end of the shift. It is a different job from raising an invoice on terms, done by different people, with different failure modes — which is why the business-to-business document chain lives in its own Sales module. The two share a document engine, the same master data, and the single moment — FINAL — at which a bill becomes an accounting fact.

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 what reaches 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.

AppletWhat it is for
POS GeneralThe checkout counter. Creates a cash bill, settles it by cash, card, e-wallet, voucher, points or contra, and on FINAL takes the goods out of stock, posts the journal and the cashbook line, and queues the bill for e-Invoice. Also holds session open/close, float counts, the Z Report and settlement adjustment.
POS Customer DisplayThe second screen the shopper sees. It writes no document at all; it reads the till’s browser database and shows the basket.
Daily Cashier ReportsRead-only. The Z Report and Cashier Collection, for balancing a shift.

One registry applet belongs to this module and has no page yet: Exchange Return Refund Policy.

Across 22 branches, the price a till rings up is decided by three settings: the applet default, the branch’s own pricing-scheme priority in Branch Settings, and the Role ↔ Pricing Scheme Link, which decides which scheme a role sells at — so two cashiers on the same till can sell at different prices, deliberately. The same Branch Settings screen holds the item category filter, what that outlet may sell at all. When a branch asks “why did it ring up at that price”, check those three before anything else.

The hand-off queue that pushes finalised documents to external systems — and carries the electronic-shelf-label sync history a branch uses — is Custom Processor, listed under Sales because it works on any FINAL sales document.

What reaches the ledger

One document. The cash bill’s server document type carries amount signum +1 and quantity signum −1 on every line, so FINAL does all of this in one call: Dr the settlement methods’ cashbook GL codes / Cr Sales and Output Tax; stock out at the line’s location (no cost-of-sales line — that is a month-end journal); a cashbook line per settlement; the e-Invoice queue entry; and, if the bill carries a member, the point transaction. It posts through the SALES journal handler — the same one the Sales module’s invoice uses.

DocumentAmount signumQuantity signumWhat FINAL posts
Cash bill (POS General)+1−1Dr settlement cashbooks / Cr Sales, Output Tax; stock out. No COGS line — cost of goods sold is posted by month-end processing

A cash bill that was wrong is voided the same day, which reverses everything FINAL did. Goods that come back later go through a Sales Return or a Sales Refund Note — documents of the Sales module, and the Z Report counts them.

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

It does not approve anything. There is no sign-off step on a cash bill. The only “approve” at the till is the line-level sell-below-price grant: a cashier who tries to go under a floor price raises a request, and a supervisor holding ALLOW_APPROVE_SELL_BELOW_PRICE releases that one line. It routes nothing and signs off nothing else. Everything else that separates a cashier from a supervisor is a client-side permission — see Best practices.

It does not check a credit limit — a cash bill has no credit. The one hard stop on a customer at the till is the blacklist, which rejects the cash bill with ENTITY_BLACKLISTED.

What this module needs from others

ModuleWhat it supplies
CoreCustomer Maintenance (the walk-in customer and any member’s record), Doc Item Maintenance (items and the adjustment items for rounding, group discount and member-point discount), Organization (company, branch and the branch’s default location), Pricebook, Tax Configuration, Cashbook and its settlement methods
Financial AccountingThe Chart of Account company defaults every posting resolves against — SALES, SALES_DISCOUNT, OUTPUT_TAX (and COGS for month-end cost-of-sales processing)
InventoryStock Balance, Stock Report, Non Stock and Trade In for counter trade-ins
SalesSales Return and Sales Refund Note for goods that come back after the day; Sales Report and Sales Commission, which count cash bills alongside invoices
MembershipMembership Admin — the member, the point currency and the rate
E-InvoiceThe submission pipeline every FINAL cash bill is queued into

Where to go next