Skip to content

Related Applets

An employee record, a claim and the payroll journal all lean on records other modules keep. The employee’s account type decides which control account a document to them posts to. The sales documents decide who earns commission. The bank reconciliation decides whether the salary transfer can ever be matched. None of this is visible from Employee Maintenance. This page is for whoever runs people administration and the accounts person who carries payroll into the books. For each applet outside the module it says why you end up there, what the people process reads or moves there, what you see when it is wrong, and who keeps it. The module’s own view is the HR & Payroll hub.

When the people process reads each neighbour

A person’s details are read at four different moments, and the moment decides whether a correction reaches the past.

  • When a document is raised. A sales document copies the salesperson’s name and code, and a claim line copies the claimant’s name and code at Submit. A rename reaches the next document, not this one.
  • When a document posts, a moment after FINAL. The posting job reads the person’s AR/AP type as it stands then: the type on their link row for the document’s company first, otherwise the record’s own. An employee created in Employee Maintenance starts as AP_EMPLOYEE, which posts to the company’s Employee Payable default (EMPLOYEE_OTHER_PAYABLE). Across BigLedger, employee records carrying AR_TRADE are found about as widely as AP_EMPLOYEE ones. Documents to an AR_TRADE employee post to trade debtors. Changing the type changes the next posting, including a repost of an old document.
  • When a claim gets its last approval. That is when a Salary Payment line joins a claim cycle, or misses one.
  • When a report is generated. The claims Bank Report keeps each claimant’s bank details as they were stored at the time you press Generate, read from Payment Config. The Payroll Payment Report is recomputed each time you run it.

From Core

AppletWhy you end up thereWhat the people process reads or moves thereWhen it is wrong, you seeWho keeps it
Employee MaintenanceEvery starter, change and leaverThe person every other row on this page keys on: the Main-tab e-mail Claims matches the login by, Payment Config for any bank file, the record status the Sales Invoice and till pickers test, and the AR/AP type read at postingSee the rows below, each in the applet that reads the fieldHR or the administrator who onboards staff
Entity MaintenanceAn existing customer or supplier joins the staff, or an employee has to be deletedThe same record seen without the employee lens. The type is one field on the record, whichever lens you edit it through. A customer flagged as an employee and left at AR_TRADE still posts to trade debtorsA staff purchase lands in trade debtors, not Employee Payable. Expected for a record that was a customer first; change the record’s AR/AP type to AP_EMPLOYEE if you want it netted against payThe administrator, with finance agreeing the type
OrganizationA new branch or company, or a claim that nobody can approveThe branch on every employee record; the company a claim cycle belongs to; the cost-centre branch on a claim line, which picks its approver. Where FILTER_EMPLOYEE_BY_BRANCH is on, the employee’s branch links decide which salesperson pickers list themA salesperson invisible in one branch’s picker: they have no branch link there. A claim routed to the wrong approvers: the line names the wrong cost-centre branchThe tenant administrator
Tenant AdminGiving a person a loginThe login the employee’s Login tab links, and its rankThe claimant’s own My Claim list is empty although the claim was submitted: the Login tab link is missingThe tenant administrator
Chart of AccountThe first voucher or invoice to an employee that does not net to nil, and the accounts the payroll journal needsThe company default for EMPLOYEE_OTHER_PAYABLE, used whenever a document to an AP_EMPLOYEE person leaves a balance on the person. Few companies have mapped it, and a reimbursement voucher whose expenses equal the payment does not need it. The wages, net-pay and statutory accounts the payroll journal posts to are ordinary GL codes you chooseAn advance or a staff invoice is FINAL with no journal. Trace Document › Resolve shows MISSING_DEFAULT_GL_CODE: EMPLOYEE_OTHER_PAYABLEThe finance administrator
Tax ConfigurationFilling an employee’s Tax tabOnly the list of codes the tab offers. Nothing in the backend reads the rows the tab saves, so they set no PCB, no tax on a claim and no tax on a documentNothing goes wrong, and nothing happens either. Keep each person’s tax position where payroll is computedWhoever computes payroll

One person, one record, one type per company. An employee who buys from you, and is reimbursed by you, is one entity. Which account each document to them posts to is a single setting. Set it once, per company, before the first such document.

From Claims

AppletWhy you end up thereWhat the people process reads or moves thereWhen it is wrong, you seeWho keeps it
Claim AppletDeciding which claim items are paid with salaryEach claim item’s payment option. A Salary Payment line skips finance review and goes straight to Approved at its last approval. The claimant is found by the Main-tab e-mail, compared exactly with the login’sCannot find your email … from Employee Applet when someone opens ClaimsThe claims administrator, with whoever owns payroll agreeing which items go with pay
Claim Cycle AppletCollecting the month’s salary-paid claims, and removing a leaver as reviewerThe Payroll Payment tab, its CSV (one row per claim line: employee code, claim item code, amount including tax) and the Payroll Payment Report. A line joins its company’s cycle for the month of its last approval, and only if that falls on or before the cycle’s approval cut-off, unless Auto-add approved claims to active cycle is onA mileage claim approved after the cut-off is on no cycle’s tab, and nobody pays it. The report run with Claim Cycle empty lists it, and returns at most 1,000 linesWhoever runs payroll reads it before each cut-off. Finance keeps the reviewers

Nothing in either applet marks a Salary Payment line as paid. The line stays Approved after the money goes out, so the record of what payroll paid is the payroll output, kept beside the cycle’s CSV. The detail is on Reports.

From Financial Accounting

AppletWhy you end up thereWhat the people process reads or moves thereWhen it is wrong, you seeWho keeps it
Ledger And JournalPosting the month’s payroll, keyed or importedThe general journal you post from the payroll result. It is the only route by which wages reach the trial balance. A line’s branch is optional and is not copied from the header. An imported file that ends FAILED may still have posted some of its journalsWages nil in a per-branch report: the lines carry no branch. Wages doubled: a FAILED file was uploaded againThe accountant
Payment Voucher (Internal)Paying claims, an advance, or commission, and paying the salary batch if you want it reconcilableA voucher whose expense lines equal its payment has no payee line, so the payee’s type does not matter. Any other voucher to an employee puts the balance on the payee’s account: Employee Payable for AP_EMPLOYEE, trade debtors for AR_TRADE. An expense line coded to a GL code posts to that code, so a line coded to your net-pay payable account clears itAn advance FINAL with no journal: EMPLOYEE_OTHER_PAYABLE unmapped. A staff reimbursement on the debtor statement: the payee is AR_TRADEAccounts payable
Bank ReconciliationMatching the salary transfer on the bank statementCashbook transaction lines, which vouchers, cash transfers and POS settlements create. A journal line against the bank’s GL code creates noneThe salary debit on the statement has nothing to match, every month, while the ledger’s bank balance is rightThe accountant who reconciles the bank
Debtor ReportChasing what staff owe for purchasesThe Aging Report asks for the three receivable types only. The AR Transaction and Transaction History reports ask for AR_EMPLOYEE, a type the product does not define: the employee type is AP_EMPLOYEEA staff invoice to an AP_EMPLOYEE person is on none of those three reports. Read the Employee Payable account in Ledger And Journal insteadAccounts receivable

Paying the salary batch: two shapes, and what each costs

Both are correct accounting. Which one you use is your accountant’s decision, and it is worth making once. BigLedger has not named a house answer.

  • The journal credits the bank directly. One journal: debit wages and the employer’s contributions, credit the bank with net pay and each statutory liability. It is the shortest route. The cost is that the salary debit on the bank statement never has a cashbook line to match, so whoever reconciles the bank explains the same unmatched line every month.
  • The journal credits a net-pay payable, and a voucher pays it. The journal debits wages and credits the payable. On pay day, one Payment Voucher (Internal) from the paying cashbook carries one expense line coded to the payable account and a payment line on the paying bank’s method. Expenses equal the payment, so there is no payee line. That voucher writes the cashbook line Bank Reconciliation matches, and the payable returns to nil. The cost is a second document each month. It also has a benefit: a payable that is not nil after pay day shows that the transfer was never recorded.

From Sales, Point of Sale and Membership

AppletWhy you end up thereWhat the people process reads or moves thereWhen it is wrong, you seeWho keeps it
Sales Invoice and POS GeneralA salesperson missing from the picker, or a staff purchaseThe salesperson pickers on the invoice header and at the till list ACTIVE employees only. A staff purchase billed to the employee posts to whatever their AR/AP type says. At the till, the employee’s spending limit applies when they are the customer on a cash billA person set INACTIVE for a week’s leave disappears from both pickers. A staff purchase over the limit is refused at the till, but the same limit counts and never refuses on any other screenThe branch manager
Sales Order, quotation and delivery orderA leaver still offered as salesperson, or a new hire missingA picker that lists employees holding an Employee Category, whatever their statusA leaver still offered on new orders. A new hire with no category missing from the order picker while present on the invoiceThe sales administrator
Sales Commission with Commission SchemeCommission that goes into payThe salesperson on each FINAL sales order, invoice or cash bill. The per-agent Sales Commission Report is the figure. Payout Processing pays it on a payment voucherAn agent with no commission: the documents carry no salesperson. A rule on employee category does not see a category set on the employee’s Category tab, because it reads a different fieldWhoever sets sales pay. Payroll or accounts payable pays it, never both

Commission reaches people by one of two routes: on a payout voucher, or as a figure handed to payroll. Both are valid, and pick one per agent. A commission run that is handed to payroll and also paid on a voucher is paid twice, and nothing on either screen notices.

Owned by this module, and not in the Applet Store

Neither has a row in the applet registry, so neither can be installed from the Applet Store. Both pages describe source code under development, so read them as a description of what is being built. Two dependencies are already fixed in that code, and both lead back to applets on this page. The payroll bank file takes each person’s bank code and account number from a Payment Config row on their employee record, the one the payroll roster names, and refuses the whole file while anyone due pay has no account number. Payroll’s Post GL writes only into the payroll module’s own tables, dated the pay run’s payment date, so the general journal in Ledger And Journal stays the route to the trial balance. A leave-application applet exists as a source repository with no commits on its main branch and has no page here.

A month of people administration at GadgetSphere

GadgetSphere Sdn Bhd (GS) runs payroll through a bureau and brings the result in as a journal. Take, for example, a March in which staff buy from the shop, earn commission and claim mileage. The figures are illustrative.

  • A staff purchase deducted from pay. A GS-KV-01 sales adviser buys an ultraportable laptop for RM 3,180, SST included, to be deducted at RM 530 a month for six months. The branch raises a sales invoice to their employee record, which is AP_EMPLOYEE. A moment after FINAL the job reads that type and debits Employee Payable, not trade debtors. GS had never mapped EMPLOYEE_OTHER_PAYABLE, so the first attempt is FINAL with no journal. Finance maps it and reposts from Trace Document. The invoice is not on the Debtor Report’s ageing, and that is correct: the RM 3,180 is now a debit on the account you owe staff from. Each month’s payroll journal credits Employee Payable RM 530, naming the employee on the line, and credits net pay RM 530 less.
  • Commission. The March commission cycle gives one adviser RM 1,240. GS pays commission with salary, so the Sales Commission Report goes to the bureau, and nobody opens Payout Processing.
  • A mileage claim. RM 280 of mileage, approved inside the cut-off, is on the March cycle’s Payroll Payment tab and reaches the bureau in the CSV.
  • The salary batch. Net pay of RM 433,450 leaves the primary bank on 1 April. GS uses the second shape: the March journal credits the net-pay payable, and a Payment Voucher (Internal) from CASH-PRI-KV01 dated 1 April debits it. The April statement’s salary line matches that voucher’s cashbook line, and the payable reads nil.
  • A leaver who sold on orders. A Penang adviser leaves on 20 March and is set INACTIVE after their last claim is paid. They vanish from the invoice and till pickers, and are still offered on sales orders until their Employee Category is removed.

When the cause is in another applet

SymptomWhere the cause isFix
A voucher, invoice or receipt to an employee is FINAL with an empty journal, and Resolve says MISSING_DEFAULT_GL_CODE: EMPLOYEE_OTHER_PAYABLEChart of Account: the Employee Payable default is unmapped in that companyMap it, then repost from Financial Report › Error Checking › Trace Document
A staff reimbursement or purchase shows on a customer statementEntity Maintenance: the person’s type is AR_TRADESet it to AP_EMPLOYEE if you want staff items on Employee Payable. A type on their link row for that company wins over the record’s own, so check both. Earlier postings keep their account until they are reposted
A staff invoice is missing from the Debtor Report’s ageingDebtor Report: it reads receivable types only, and the employee is AP_EMPLOYEERead the Employee Payable account in Ledger And Journal
The salary debit on the bank statement never matchesBank Reconciliation: the payroll journal credited the bank, and a journal creates no cashbook lineExplain it in each month’s reconciliation, or pay the batch through a voucher
Wages in one branch read nilLedger And Journal: the journal lines carry no branchName the branch on every line, or fill LINE_BRANCH_CODE on every imported row
A salary-paid claim was never paidClaim Cycle: it was approved after the cut-off, with Auto-add offRun the Payroll Payment Report with Claim Cycle empty before each cut-off
A deactivated adviser is still offered on new sales ordersSales Order picker: it lists by Employee Category and ignores statusRemove their category, or accept it and check the salesperson at order entry
An agent’s commission is nilSales documents: no salesperson on them. Or a scheme rule on employee category, which does not read the Category tabPut the salesperson on the document. Read the category caution before relying on a category rule
Commission paid twiceBoth routes used for one cycleChoose one route per agent and write it down

Verify the links in ten minutes

Run these in each company, because GL defaults and claim cut-offs are set per company:

  1. Post a RM 1 test advance to a test employee on a Payment Voucher (Internal), with a payment line and no expense line. Its Trace Document › Journal Txn shows a debit to Employee Payable. If the journal is empty, EMPLOYEE_OTHER_PAYABLE is the gap. Then void the test voucher.
  2. Open the employee’s record in Entity Maintenance for anyone who was a customer first, and read its AR/AP type.
  3. Check last month’s salary debit in Bank Reconciliation. If it is matched to a cashbook line, the voucher shape is in place. If it is unmatched, you are on the journal-only shape. Make sure that is a choice somebody made.
  4. Raise a draft sales order and a draft sales invoice at a branch, and compare the two salesperson pickers against your list of current advisers.
  5. Run the Payroll Payment Report with Claim Cycle empty for each company, and compare it with what payroll paid last month.

Each check catches a gap that nothing else reports.

What is left to people, and who does it

  • Decide each person’s account type. Finance, once per company, when a customer joins the staff or before the first staff purchase. The product applies whatever type it finds at posting time.
  • Recover a staff purchase or an advance through pay. Whoever posts the payroll journal, every month until the Employee Payable balance for that person is nil. Nothing schedules the deduction.
  • Choose how the salary batch is recorded. The accountant, once. Then reconcile the bank every month.
  • Choose one route for commission. Whoever owns sales pay, per agent. Record which agents are paid through payroll and which by payout voucher.
  • Read the Payroll Payment Report before each cut-off. Whoever owns payroll. Nothing after the supervisor’s approval checks a Salary Payment line.
  • Keep the pickers clean when someone leaves. HR sets the record INACTIVE after the last claim is paid, and the sales administrator removes their Employee Category.

Where these applets sit

  • What must exist first: a company and branch for every employee; a login linked from the Login tab for anyone who claims; Payment Config for anyone paid by bank file; an Employee Payable default in every company that invoices, advances or pays staff on a voucher with a balance; the wages, net-pay and statutory accounts the payroll journal uses.
  • What a complete employee record makes possible: commission on the documents that name them, claims, a bank file, staff purchases netted against pay, and a spending limit at the till.
  • Siblings, and when to use which: Employee Maintenance for staff, Entity Maintenance when a customer joins the staff; a payout voucher or payroll for commission; a journal or a journal and a voucher for the salary batch.
  • What breaks elsewhere when one is wrong: an employee’s AR/AP type moves every later posting and repost of their documents; an unmapped Employee Payable stops every advance and staff invoice in that company; a missing Employee Category hides a person from most sales document pickers.
  • Used together in practice: Employee Maintenance with Claim Cycle at each cut-off; Ledger And Journal with Bank Reconciliation each month; Sales Commission with the payroll hand-off at month-end.

Where to go next

If payroll runs outside BigLedger, read Use cases next. It sets out the payroll journal these neighbours feed.