Troubleshooting
Diagnostic procedures for biometric sync errors, progressive tax rounding differences, negative leave balances, and batch posting errors.
1. Overview & Business Value#
This comprehensive operational guide details the architecture, business workflows, configuration parameters, and execution steps for Troubleshooting within SmartERP.
This guide provides troubleshooting solutions for common HR and payroll operational issues.
{screenshot:troubleshooting-overview-dashboard}
2. Prerequisites & Security Access Groups#
- Required Modules:
hr, hr_payroll, hr_holidays, smarterp_ethiopian_payroll - Security Groups:
Officer: Manage all employees(Technical ID:hr.group_hr_user)Payroll Officer(Technical ID:hr_payroll.group_hr_payroll_user)HR Administrator(Technical ID:hr.group_hr_manager)
- Master Data Dependencies: Company departments, job positions, salary structures, 7-tier Ethiopian income tax brackets, POESSA/PSSPA pension rates, and employee contracts.
3. Step-by-Step Configuration & Execution#
Step 1: Navigating to the Module Interface#
- Log into your SmartERP instance at
https://smarterp.et/odoo. - Open the main App Switcher (grid icon in the top-left corner).
- Select the Employees app icon.
- From the top navigation bar, open Human Resources β Employees / Contracts / Attendance / Time Off / Payroll.
{screenshot:troubleshooting-app-switcher-navigation}
Step 2: Creating and Parameterizing Records#
- Click the New button in the top-left control panel.
- Complete the mandatory fields in the record form:
- Employee Name (Mandatory): Legal employee name matching national identity card or passport
- Department & Job Position (Mandatory): Assigned administrative unit and official role title
- Contract / Salary Structure (Mandatory): Active employment contract defining basic salary and statutory allowances
- Taxpayer Identification Number (TIN) (Mandatory): Mandatory 10-digit MOR tax identifier for payroll declaration
- Configure optional operational parameters and localized tags as required:
- Pension Scheme Number (Optional): POESSA private or PSSPA public pension account number
- Bank Account Details (Optional): Commercial bank account number for direct net pay credit transfers
- Work Mobile & Email (Optional): Internal enterprise communication coordinates
- Click the Save icon in the control bar to commit the record.
{screenshot:troubleshooting-record-creation-form}
Step 3: Validating and Processing Transactions#
- State Transitions: Execute operational state progression (Draft β Pending Review β Verified β Approved / Running β Closed).
- Ledger & System Impact: Payroll batch confirmation automatically generates composite salary expense, pension payable, and tax withholding journal entries in the General Ledger.
- Audit Verification: Automated recording of author ID, timestamp, and immutable revision history.
{screenshot:troubleshooting-transaction-processing-state}
Problem: Biometric punches not syncing to attendance#
- Symptom: Employee punches on the physical terminal do not appear in SmartERP attendance.
- Cause: Terminal IP changed, network firewall blocking port 4370, or biometric user ID not mapped to employee profile.
- Fix: Open Attendance β Configuration β Biometric Devices, verify the IP address, and press Test Connection. Check that the employee's Biometric Device ID matches the badge ID on the physical machine.
Problem: Employment income tax shows slight variance from MOR manual table#
- Symptom: Monthly PAYE tax differs by a few cents from manual tax tables.
- Cause: Non-taxable allowances calculated on gross rather than basic salary, or decimal rounding precision in salary rule expressions.
- Fix: Ensure the
PAYE_TAXrule uses standard deduction constants:(taxable * rate) - constant. Verify currency rounding is set to0.01 ETB.
Problem: Cannot confirm leave request - insufficient balance#
- Symptom: System blocks leave request with
Insufficient leave balance available. - Cause: Annual leave regular allocation was not executed for the employee, or employee is still within probationary period.
- Fix: Open Time Off β Allocations, check active balance, or run the annual regular allocation wizard for the employee.
4. Advanced Configuration Points#
- Automated Actions & Scheduled Tasks (Crons):
HR: Compute scheduled leave accruals(hr_holidays.ir_cron_leave_accruals): Runs bi-weekly to accrue annual leave balances per Ethiopian labor lawPayroll: Auto-generate monthly payslip batches(hr_payroll.ir_cron_generate_payslips): Runs on the 25th of each calendar monthAttendance: Validate biometric clock-in logs(hr_attendance.ir_cron_sync_attendance): Runs hourly to sync biometric terminal events
- Custom Print Templates & Reports:
- Official Ethiopian Monthly Payslip
- POESSA / PSSPA Statutory Pension Contribution Schedule
- MOR Employment Income Tax (PAYE) Monthly Summary
- Employee Service & Severance Certificate
- Multi-Company Rules: Record-level security isolation under Company 1 (
Ashewa Technology Solutions S.C.), preventing cross-company ledger leakage across parent and subsidiary legal entities.
5. Comprehensive Troubleshooting Matrix#
| Error Symptom / Exception | Probable Root Cause | Corrective Action / Resolution |
|---|---|---|
Access Rights Error: Employee private data hidden | User lacks HR Officer security clearance. | Assign the user to hr.group_hr_user under Settings β Users & Companies. |
Computation Error: Missing contract or salary structure | Employee has no active contract in 'running' state. | Confirm contract terms under Employees β Contracts and ensure contract status is 'Running'. |
Validation Error: Leave allocation exhausted | Requested time off exceeds accrued balance under Ethiopian Labor Proclamation 1156/2019. | Review historical attendance and submit a formal allocation adjustment request. |
Payroll Blocked: Unlinked TIN or Pension number | Statutory rule requires mandatory tax and pension coordinates for payslip calculation. | Update the statutory tab on the employee profile with valid MOR and POESSA registration details. |
Next#
- Technical architecture: HR technical architecture.
- Data model: Data model.
Last updated: 2026-10-30