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 carryingAR_TRADEare found about as widely asAP_EMPLOYEEones. Documents to anAR_TRADEemployee 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
| Applet | Why you end up there | What the people process reads or moves there | When it is wrong, you see | Who keeps it |
|---|---|---|---|---|
| Employee Maintenance | Every starter, change and leaver | The 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 posting | See the rows below, each in the applet that reads the field | HR or the administrator who onboards staff |
| Entity Maintenance | An existing customer or supplier joins the staff, or an employee has to be deleted | The 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 debtors | A 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 pay | The administrator, with finance agreeing the type |
| Organization | A new branch or company, or a claim that nobody can approve | The 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 them | A 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 branch | The tenant administrator |
| Tenant Admin | Giving a person a login | The login the employee’s Login tab links, and its rank | The claimant’s own My Claim list is empty although the claim was submitted: the Login tab link is missing | The tenant administrator |
| Chart of Account | The first voucher or invoice to an employee that does not net to nil, and the accounts the payroll journal needs | The 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 choose | An advance or a staff invoice is FINAL with no journal. Trace Document › Resolve shows MISSING_DEFAULT_GL_CODE: EMPLOYEE_OTHER_PAYABLE | The finance administrator |
| Tax Configuration | Filling an employee’s Tax tab | Only 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 document | Nothing goes wrong, and nothing happens either. Keep each person’s tax position where payroll is computed | Whoever 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
| Applet | Why you end up there | What the people process reads or moves there | When it is wrong, you see | Who keeps it |
|---|---|---|---|---|
| Claim Applet | Deciding which claim items are paid with salary | Each 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’s | Cannot find your email … from Employee Applet when someone opens Claims | The claims administrator, with whoever owns payroll agreeing which items go with pay |
| Claim Cycle Applet | Collecting the month’s salary-paid claims, and removing a leaver as reviewer | The 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 on | A 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 lines | Whoever 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
| Applet | Why you end up there | What the people process reads or moves there | When it is wrong, you see | Who keeps it |
|---|---|---|---|---|
| Ledger And Journal | Posting the month’s payroll, keyed or imported | The 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 journals | Wages nil in a per-branch report: the lines carry no branch. Wages doubled: a FAILED file was uploaded again | The accountant |
| Payment Voucher (Internal) | Paying claims, an advance, or commission, and paying the salary batch if you want it reconcilable | A 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 it | An advance FINAL with no journal: EMPLOYEE_OTHER_PAYABLE unmapped. A staff reimbursement on the debtor statement: the payee is AR_TRADE | Accounts payable |
| Bank Reconciliation | Matching the salary transfer on the bank statement | Cashbook transaction lines, which vouchers, cash transfers and POS settlements create. A journal line against the bank’s GL code creates none | The salary debit on the statement has nothing to match, every month, while the ledger’s bank balance is right | The accountant who reconciles the bank |
| Debtor Report | Chasing what staff owe for purchases | The 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_EMPLOYEE | A staff invoice to an AP_EMPLOYEE person is on none of those three reports. Read the Employee Payable account in Ledger And Journal instead | Accounts 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
| Applet | Why you end up there | What the people process reads or moves there | When it is wrong, you see | Who keeps it |
|---|---|---|---|---|
| Sales Invoice and POS General | A salesperson missing from the picker, or a staff purchase | The 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 bill | A 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 screen | The branch manager |
| Sales Order, quotation and delivery order | A leaver still offered as salesperson, or a new hire missing | A picker that lists employees holding an Employee Category, whatever their status | A leaver still offered on new orders. A new hire with no category missing from the order picker while present on the invoice | The sales administrator |
| Sales Commission with Commission Scheme | Commission that goes into pay | The 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 voucher | An 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 field | Whoever 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-01sales 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 isAP_EMPLOYEE. A moment after FINAL the job reads that type and debits Employee Payable, not trade debtors.GShad never mappedEMPLOYEE_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.
GSpays 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.
GSuses the second shape: the March journal credits the net-pay payable, and a Payment Voucher (Internal) fromCASH-PRI-KV01dated 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
INACTIVEafter 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
| Symptom | Where the cause is | Fix |
|---|---|---|
A voucher, invoice or receipt to an employee is FINAL with an empty journal, and Resolve says MISSING_DEFAULT_GL_CODE: EMPLOYEE_OTHER_PAYABLE | Chart of Account: the Employee Payable default is unmapped in that company | Map it, then repost from Financial Report › Error Checking › Trace Document |
| A staff reimbursement or purchase shows on a customer statement | Entity Maintenance: the person’s type is AR_TRADE | Set 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 ageing | Debtor Report: it reads receivable types only, and the employee is AP_EMPLOYEE | Read the Employee Payable account in Ledger And Journal |
| The salary debit on the bank statement never matches | Bank Reconciliation: the payroll journal credited the bank, and a journal creates no cashbook line | Explain it in each month’s reconciliation, or pay the batch through a voucher |
| Wages in one branch read nil | Ledger And Journal: the journal lines carry no branch | Name the branch on every line, or fill LINE_BRANCH_CODE on every imported row |
| A salary-paid claim was never paid | Claim Cycle: it was approved after the cut-off, with Auto-add off | Run the Payroll Payment Report with Claim Cycle empty before each cut-off |
| A deactivated adviser is still offered on new sales orders | Sales Order picker: it lists by Employee Category and ignores status | Remove their category, or accept it and check the salesperson at order entry |
| An agent’s commission is nil | Sales documents: no salesperson on them. Or a scheme rule on employee category, which does not read the Category tab | Put the salesperson on the document. Read the category caution before relying on a category rule |
| Commission paid twice | Both routes used for one cycle | Choose 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:
- 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_PAYABLEis the gap. Then void the test voucher. - Open the employee’s record in Entity Maintenance for anyone who was a customer first, and read its AR/AP type.
- 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.
- 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.
- 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
INACTIVEafter 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.