Skip to content

Related Applets

“The document is Final but it is not in the general ledger.” At a counter that means the receipt printed, the customer left, and the bill has no journal behind it. The cause is almost never in the till. It is a cashbook nobody linked to a new payment method, or a default GL code in Chart of Account, read by a background job a moment after the drawer closed. Most of what goes wrong at a counter starts like this: in a record another module keeps, which the till reads without showing it to you. This page is for the people who answer for the counters across the group: the branch supervisor, and the finance person who owns the cashbooks and the ledger. For each applet outside the module it says why you end up there, what the till reads or changes there, what you see when it is wrong, and who keeps it. The module’s own applets are on the module page.

When a till bill reads each neighbour

A till bill takes from other applets at three moments, and the moment decides whether fixing the record fixes the bill.

  • When you scan the item or pick the customer. The bill keeps its own copy of what it took: the customer’s name, address and identity, and each line’s price, scheme and tax rate. The price is worked out in the till, from the branch’s pricing settings, and stored on the line: a snapshot taken at the time of the sale, not a live figure. A later correction in Customer Maintenance or Pricebook reaches the next bill, not this one.
  • When you press FINAL. A few things are checked with the customer standing there, among them: the payments must equal the lines, the bill’s location must be the branch’s default location where the branch has one, the customer must not be blacklisted, a points discount must be covered by the member’s stored balance, and the date must not fall in a locked fiscal period. Then the bill is numbered, the receipt prints, and one background job is queued. FINAL does not wait for anything else.
  • When the jobs run, a moment after FINAL. They read, as they stand then: the cashbook named on each payment method, the company’s default GL codes, each item’s own GL code, the company’s member-point rule and the company’s e-invoice status. Changing any of these changes the next posting, including a re-post of an old bill.

That third moment is where most gaps show, and it shows them in Trace Document and on the Missing Journal list, not at the counter.

From Core

AppletWhy you end up thereWhat the till reads or changes thereWhen it is wrong, you seeWho keeps it
Customer MaintenanceSetting the walk-in customer, opening an account at the counter, or a blacklist refusalThe walk-in record pre-selected on every bill. A customer’s own pricing scheme, pre-selected when you pick them, and changing the customer re-prices every line. The blacklist, checked at FINAL. The AR/AP type, read at posting, and only needed when a bill does not balance by itselfCustomer is blacklisted due to credit limit / credit term at FINAL. A walk-in record with no AR/AP type goes unnoticed while every bill is paid in full and the codes are mapped; the first bill that needs a receivable line fails its journal with TOTAL_DEBITS_AND_TOTAL_CREDITS_NOT_BALANCESSales administration onboards customers; whoever sets up the till chooses the walk-in. The list is one list for the whole group
Doc Item MaintenanceAn item that will not ring up, a rounding line that never appearsEvery line’s item. The three adjustment items the till adds lines with: rounding, group discount and points discount. The item’s own GL code, used before the company default, for its sales line, a rounding line or a trade-in lineNo rounding, group-discount or points-discount line when the adjustment item is not chosen. An item missing from the till’s search: no stock at the session’s location, or an item-category filter, which looks exactly like out of stockWhoever keeps the catalogue, usually a merchandising clerk
OrganizationOpening a branch, or a FINAL refused at the counterCompany, branch and the branch’s default location. The branch’s rounding item and group-discount item, read before the company’s. The branch’s Default Pricing, which a scanned item takes. The company’s e-invoice statusThe location does not match the branch’s default location at FINAL. Rounding Five Cent ticked with no rounding item on the branch or the company: nothing is rounded. Unticking it on a branch also clears that branch’s rounding itemThe tenant administrator
PricebookTwo prices for the same item, or a promotion that did not apply at the counterPricing schemes and price sets. A scanned item takes the branch’s Default Pricing, or the applet’s default scheme when that is empty; an item picked in Add Item takes the highest-priority scheme in the branch’s list that prices it. A cashier can switch a line only to the schemes linked to their role. The till’s rules test the member’s class, not their labelsThe same item at two prices, depending on whether it was scanned or picked. A rule that names a member label applies at the till whatever labels the member holds. A later price change re-prices nothing already rung upThe pricing administrator
Tax ConfigurationA new rate, or SST payable that looks shortThe rate, stamped on the line. The tax code carries no GL account: the tax line always goes to the company’s OUTPUT_TAX defaultOUTPUT_TAX unmapped: no error. The tax line is left out, and the walk-in’s receivable takes the differenceThe finance administrator
CashbookA new payment method, or money that did not landEach payment method is an item that names one cashbook. The job posts the payment to that cashbook’s GL code, less the method’s charges, dated the bill’s transaction date. A method is shared by every branch linked to itMISSING_CASHBOOK when the method names no cashbook: the bill gets neither a journal nor a cashbook line. MISSING_GL_CODE when the cashbook has no GL code: no journal. Both arrive after FINAL, when the receipt has already printedThe finance administrator, who owns the cashbooks and their reconciliation
Chart of AccountThe first bills of a new company, or trade debtors carrying walk-in balancesThe company defaults the journal falls back to: SALES, SALES_RETURN, OUTPUT_TAX, ROUNDING, NSTI (trade-ins), SETTLEMENT_CHARGES, and DEBTOR for the receivable. The fiscal periods: only a date inside a locked period is refused at FINALAn unmapped sales, tax, rounding or charge code raises nothing: that line is left out and the walk-in’s receivable absorbs it. MISSING_DEFAULT_GL_CODE: DEBTOR on a bill paid in full therefore means another line found no account (see below)The finance administrator; the accountant at month-end

The receivable default is read only when a bill does not balance by itself. A bill paid in full, whose every line found an account, posts payment against sales and tax and never asks for DEBTOR. The receivable line is written only for what is left over: an unpaid remainder, a contra against the customer’s documents, or a line whose code resolved to nothing. So a till can run for weeks with DEBTOR unmapped and nothing wrong, and the first bill that stops with MISSING_DEFAULT_GL_CODE: DEBTOR is telling you about a different code. Map the one that is missing, not only DEBTOR: with DEBTOR mapped and SALES not, the bill posts without complaint and the error simply lands in trade debtors.

From Sales

AppletWhy you end up thereWhat the till reads or changes thereWhen it is wrong, you seeWho keeps it
Sales Return and Sales Refund NoteGoods that come back after the dayA return at the counter is a return line on a cash bill; these two applets are for goods that come back later. Which Z Report counts them depends on where you press it: the Daily Cashier Reports Z Report counts both, the Z Report inside POS General reads FINAL cash bills only, so neither appears thereThe two Z Reports disagree for the same day by the returns and refund notes, which only the Daily Cashier Reports one countsThe branch supervisor, at cash-up
Sales ReportWhat sold and who sold itIts item sales read cash bills beside invoices and returns. Its Daily Summary totals receipt and payment vouchers by payment type and reads no cash bill, so it is not the check of a till’s takings against the cashbooksA Daily Summary that is empty for a branch that only sells over the counterThe branch manager
Sales CommissionPaying counter staffFINAL cash bills are counted beside sales orders and invoices; the agent the sale is credited to is chosen at the tillA commission run that writes nothing: no active scheme, or the bills fall outside the cycle’s datesWhoever approves the payout
Custom ProcessorSending finalised bills to an outside system, or shelf labels that show the wrong priceA filter hands each matching FINAL document to your integration. The server accepts a filter for the cash bill and the till’s FINAL fills it, although the filter screen’s list offers only five sales document types. The shelf-label sync pushes prices from the scheme coded PRICE_001 onlyShelf labels that disagree with the till: the branch rings up from a scheme other than PRICE_001Whoever runs the integration

From Inventory

AppletWhy you end up thereWhat the till reads or changes thereWhen it is wrong, you seeWho keeps it
Stock BalanceChecking that a sale took the goods off the shelfChanged by the job after FINAL, at the bill’s location: sales lines out, return lines and trade-in lines in. The till checks stock at FINAL only when the stock-balance setting is onFINAL and the balance did not change: the item is not a stock item, or the job did not runWhoever runs the branch’s stock
Non Stock and Trade InA customer trades in an old phoneTrade-in lines bring the unit into this register, by item, serial and location, and reduce the amount due. The trade-in line posts under the NSTI code. The till’s trade-in list is served by this applet’s own read permissionAn empty trade-in list for one cashier role and not another: that role lacks the register’s read permission, and the till shows no error. Voiding the bill leaves the traded-in unit standing in the registerThe branch supervisor, with whoever values trade-ins
Stock ReportReconciling what was sold with what leftStock Summary Report By Location counts cash bills as SoldA branch’s Sold figure below its till takings in units: lines on items that are not stock itemsInventory, with the branch

From Financial Accounting

AppletWhy you end up thereWhat the till reads or changes thereWhen it is wrong, you seeWho keeps it
Financial ReportProving one bill postedError Checking › Trace Document, with the cash bill as the document type and the bill’s number, runs its checks, among them Missing Journal and Missing Cashbook. Resolve on a failed check posts the missing halfA failed check that does not say why. The backend’s reason, such as MISSING_CASHBOOK: STL_MTHD [code], appears only when you press Resolve and it fails again. Fix the record it names, then ResolveFinance
Ledger And JournalFinding every bill that did not postError Checking › Missing Journal lists every FINAL bill in a date range with no journal behind it, with branch and amount, and CREATE posts the ticked rows. It rebuilds journals only: a bill that failed for a method with no cashbook also needs its cashbook line, from Missing Cashbook in the Data Fix appletA row that comes back with only MISSING_DEFAULT_GL_CODE in Remarks, without the name of the missing default: run Trace Document on that bill and Resolve to read the full messageFinance, daily while a branch is new

From Membership

AppletWhy you end up thereWhat the till reads or changes thereWhen it is wrong, you seeWho keeps it
Membership AdminA member’s points, class or cardThe card, which must be linked to a customer. The member’s class, which the till prices by. The points balance, loaded when the member is picked, which caps a payment in points. The points job after FINAL writes earned and spent points only where the company’s member-point rule names the cash bill; left unset, the rule names the sales orderThe member card is not linked to any customer! and the member is not put on the bill. Member bills earn no points: the company’s rule names another document. Where the rule still names the sales order, points spent at the till are accepted and never taken off the balance. This is a known issue, reported to engineeringThe membership programme owner
Voucher ManagementA gift voucher taken at the counterThe till takes only settlement vouchers, through a payment method of the voucher or coupon type. A job after FINAL marks the ticket redeemed with the bill on it, only when it is assigned to the bill’s customer (or allows anonymous use) and inside its redeemable datesInvalid Voucher Number! at the counter. Or a ticket accepted and still unredeemed afterwards, with no message anywhereWhoever runs the voucher programme
Commission SchemeSetting what counter staff earnThe rules the commission run applies. Its Sales Invoice box matches cash bills as well as invoices; there is no separate box for the tillCounter sales with no commission: the scheme has a document-type rule with Sales Invoice untickedWhoever sets sales pay

From E-Invoice

AppletWhy you end up thereWhat the till reads or changes thereWhen it is wrong, you seeWho keeps it
My E-Invoice AdminA big counter sale, a walk-in who wants their own e-invoice, a bill you need to undoA job after FINAL enters the bill when its company is ENABLED. Marked Consolidated, a bill under RM 10,000 goes to the Batch Pool and is sent in a consolidated e-invoice after the month ends; RM 10,000 or more goes to the Individual Pool. The buyer on the e-invoice is kept apart from the customer on the bill, on purposeA sale of RM 10,000 or more “missing” from the consolidated e-invoice: it is waiting in the Individual Pool for the buyer’s details. A void that never reached LHDN: voiding a cash bill succeeds whatever its e-invoice status (what to do instead)Whoever runs e-invoicing for the group

A Saturday at GadgetSphere’s GS-KV-01

GadgetSphere Sdn Bhd (GS) runs the till at its first Klang Valley branch. Here is what the neighbours do with one day’s bills.

  • 10:05, a walk-in buys wireless earbuds by card. RM 300 plus RM 18 SST, RM 318 in all. FINAL checks that RM 318 was paid and that the bill sits at the branch’s default location, then prints. A moment later the journal job debits the card-acquirer cashbook RM 313.23 and settlement charges RM 4.77 (the method’s 1.5%), and credits SALES-ACCESSORY RM 300 and LIAB-SST-OUTPUT RM 18. It balances, so DEBTOR is never read. One unit leaves Stock Balance at the default location, and the bill joins the Batch Pool for next month’s consolidated e-invoice.
  • 11:40, the new e-wallet button. Head office added an e-wallet payment method on Friday and linked it to every Klang Valley branch, but named no cashbook on it. Each e-wallet bill prints a receipt and then fails its posting with MISSING_CASHBOOK. Nothing at the counter shows it. The supervisor’s Missing Journal check that night lists eleven bills from three branches. Finance names the cashbook on the method, posts the eleven journals from Missing Journal, and then the eleven cashbook lines from Data Fix’s Missing Cashbook. Rebuilding the journals alone would leave the e-wallet cashbook short.
  • 14:20, two ultraportable laptops for a walk-in. RM 12,000 plus RM 720 SST, RM 12,720. Because it is RM 10,000 or more, the bill goes to the Individual Pool, not the Batch Pool. Somebody has to complete the buyer’s details there and resubmit it before the 7th of next month; until then the row waits, and nothing reminds anyone.
  • 16:00, a member pays partly in points. GS names the cash bill at FINAL in its member-point rule, so the points job writes what was spent and what was earned. In a company whose rule was never set, the same bill would earn nothing and spend nothing, and the member’s balance would stay where it was.
  • The 3rd of next month, the earbuds buyer comes back wanting an e-invoice in their company’s name. The bill stays as it is, and so does the walk-in customer. While the Batch Pool row is still UNPROCESSED, the buyer is completed on that row in My E-Invoice Admin and resubmitted on its own. Once the month’s consolidation has taken the row, that cheap route is gone.

When the cause is in another applet

SymptomWhere the cause isFix
A bill is FINAL with no journal and no cashbook line; Resolve fails with MISSING_CASHBOOKCashbook: the payment method names no cashbookName it, then Resolve on Missing Journal and on Missing Cashbook for each bill
Resolve fails with MISSING_GL_CODECashbook: the cashbook has no GL codeGive it one, then Resolve
A bill paid in full fails with MISSING_DEFAULT_GL_CODE: DEBTORChart of Account: a sales, tax, rounding, trade-in or charge code is unmapped as wellMap the missing code, not only DEBTOR, then Resolve
Trade debtors carries small walk-in balances that no customer owesChart of Account: a sales, tax or charge code is unmapped, and the receivable absorbed itMap the default and re-post the affected bills
The location does not match the branch’s default location at FINALOrganization: the bill’s location differs from the branch’s default locationPut the bill at the default location; if the branch’s stock really lives elsewhere, change the default in Organization
The bill has no rounding line, or the group discount does nothingOrganization and the till’s settings: no rounding item or group-discount item on the branch or the companyChoose the adjustment items
No button for a payment method at one branchPOS General’s Settlement Method Settings: the method is not linked to that branch, or the link is not activeLink it for the branch (payment buttons)
The same item rings up at two pricesPricebook and the branch: a scanned item and a picked item follow different settingsAlign the branch’s Default Pricing with the top scheme in its list
A cashier’s trade-in list is emptyNon Stock and Trade In: the role lacks the register’s read permissionGrant it to the cashier role
The member card is not linked to any customer!Membership Admin: the card has no customerChoose a customer on the member
Member bills earn no pointsMember points: the company’s rule names another document typeDecide, per company, which document earns (points setup)
Counter sales show no commissionCommission Scheme: a document-type rule leaves Sales Invoice untickedTick it; it covers cash bills too
A counter sale never reached LHDN, with no errorOrganization: the company’s e-invoice status is not ENABLEDEnable it. Bills finalised before that are not picked up afterwards

How you know the links hold

In each branch, before its first trading day and again after any change to a payment method, ring up one small bill for each payment method, finalise it, and give the jobs a moment. Then:

  1. Trace Document for each bill passes Missing Journal and Missing Cashbook. A failed check means a neighbour is wrong; press Resolve and the message that comes back names which.
  2. Query Cashbook Transaction in each method’s cashbook shows the bill, at the amount paid less the method’s charges, on today’s date. Cash should match to the sen.
  3. Missing Journal for today, for that branch, is empty.
  4. Stock Balance for each item at the branch’s default location is lower by one.
  5. My E-Invoice Admin shows each bill in the Batch Pool, where e-invoicing is meant to be on.
  6. For a member bill, the member’s Point Transaction tab shows the points earned, where the company’s rule names the cash bill.

Each check catches a gap the counter does not report. Run them per company as well as per branch, since GL defaults, the member-point rule and the e-invoice status are set per company, while a payment method is shared by every branch linked to it and the customer list by the whole group.

What is left to people, and who does it

  • Read the Missing Journal list every trading day. The branch supervisor or finance. Nothing raises an alert when a posting job fails, so this list is the alarm.
  • Name a cashbook on every new payment method before it is linked to a branch. The finance administrator, at the moment the method is created. The till accepts payment on a method with no cashbook and the failure arrives later.
  • Compare trade debtors with the customers who really owe you. The accountant, monthly. An unmapped default raises nothing; only that comparison finds the walk-in balances it leaves behind.
  • Complete the buyer on every sale of RM 10,000 or more. Whoever runs e-invoicing, before the 7th of the following month.
  • Cancel the e-invoice before voiding a counter sale it covers. The branch manager tells the e-invoice owner, who cancels within 72 hours of validation; after that the correction is a credit note.
  • Decide which document earns member points, per company. The membership programme owner, before the first member bill.

Where these applets sit

  • What must exist before the first bill posts: a company, a branch with its default location, the walk-in customer, items, the three adjustment items, payment methods each naming a cashbook with a GL code, and the company’s default GL codes for sales, tax, rounding, charges and the receivable.
  • What a FINAL bill makes possible: the journal and the cashbook line, the stock movement, the e-invoice, points earned and spent, commission, and a hand-off to your own integration.
  • Siblings, and when to use which: a return line on the bill at the counter rather than a Sales Return, unless the goods come back after the day; the Daily Cashier Reports Z Report rather than the till’s own when refunds and invoices paid at the counter must be in the figure; a change to the e-invoice buyer rather than a new customer on the bill, for a walk-in who wants an e-invoice.
  • What breaks elsewhere when one is wrong: a payment method’s cashbook is the cashbook of every branch linked to it, so one wrong cashbook breaks reconciliation for all of them; an unmapped default leaves every bill in that company short; a member-point rule left at its default leaves every member bill in that company without points.
  • Used together in practice: Cashbook alongside the till every day, through Query Cashbook Transaction at cash-up; Missing Journal together with the Z Report every night; My E-Invoice Admin with the Batch Pool before each month’s consolidation.

Where to go next

If you are opening a branch, read Configuration next: it puts these neighbours in order and says what each gap looks like at the counter.