3.1 KiB
3.1 KiB
HR Expense Account Split & Kiosk
This module enhances Odoo's standard Expense workflow by providing account-splitting logic, an Anonymous Expense Kiosk for employees, and automated realization accounting.
🚀 Features
1. Dynamic Sequences
- Employee Reimbursement (RMBS): Expenses paid by the employee follow the prefix
RMBS/YYYY/MM/XXXXX.
- Company Advance (KSBN): Expenses paid by the company (Kasbon) follow the prefix
KSBN/YYYY/MM/XXXXX. - This ensures clear separation between standard reimbursements and company-issued advances at a glance.
2. Enhanced Status Workflow
- Wait Post Status (Yellow): A new intermediate status for company-paid expense reports.
- Workflow:
Approved->Posted->Wait Post->Done. - Logic: The report moves to Wait Post after the advance is paid. It stays here until the employee submits all receipts and the accountant posts the final realization journal.
- Done (Green): Only reached when all realization accounting is completed, ensuring the physical and financial cycles are fully synchronized.
3. Account Splitting
- Dynamic Selection: Automatically routes expenses to different GL accounts based on the
Paid Byfield. - Configuration: Set distinct
Expense Account (Employee)andExpense Account (Company)directly on the Expense Category form.
4. Anonymous Expense Kiosk
- PIN-Protected Access: Secure employee login via a 4-digit PIN on a tablet interface.
- Real-Time Totaling: Automatically summarizes multiple physical receipts into a single realization.
- Image Optimization: Client-side JPEG compression (1024px, 70% quality) reduces server storage usage by ~90%.
5. Automated Realization Accounting
- Balanced Journal Entries: Automatically calculates discrepancies between the advance paid and actual spending.
- Discrepancy Accounts:
- Over-spent (Spent > Paid): Balance is moved to
216109 Biaya Lain yang masih harus dibayar(Liability/Payable). - Under-spent (Spent < Paid): Balance is moved to
114101 Piutang Karyawan(Receivable).
- Over-spent (Spent > Paid): Balance is moved to
- Discrepancy Settlement:
- Create Vendor Payment: One-click button on the realization form to pay the employee the difference.
- Create Customer Payment: One-click button on the realization form to record the employee returning the excess funds.
6. Validation & Security
- Mandatory Receipts: Prevents submission of employee-paid expenses without attachments.
- Overdue Tracking: Highlights missing realization receipts in red/alerts for company-paid expenses.
🛠 Configuration
- GL Accounts:
- Expenses > Configuration > Expense Categories.
- Define the two accounts under the Accounting tab.
- Kiosk Token:
- URL structure:
/hr_expense/kiosk/d56db48c463444c88b86f14980d7a185.
- URL structure:
- Employee PINs:
- Set 4-digit PINs on employee records for Kiosk access.
📋 Technical Notes
- Controller:
/hr_expense/kiosk/<token> - Models:
hr.expense,hr.expense.sheet,hr.expense.realization,account.payment - JS Framework: Odoo 19 OWL