docs: convert README from Markdown to reStructuredText format
This commit is contained in:
parent
f667025d92
commit
35934e75ab
56
README.md
56
README.md
@ -1,56 +0,0 @@
|
||||
# HR Expense Account Split & Kiosk (Odoo 19)
|
||||
|
||||
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 (Odoo 19 Refined)
|
||||
- **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.
|
||||
- **Architectural Note**: In Odoo 19, the legacy `hr.expense.sheet` logic has been merged directly into the core `hr.expense` model for better performance and consistency.
|
||||
|
||||
### 3. Account Splitting & Kasbon Logic
|
||||
- **Dynamic Selection**: Automatically routes expenses to different GL accounts based on the `Paid By` field.
|
||||
- **Configuration**: Set distinct `Expense Account (Employee)` and `Expense Account (Company)` directly on the Expense Category form.
|
||||
- **Advance Account**: Company-paid advances (Kasbon) use account **115101** for the debit side of the initial payment journal entry.
|
||||
|
||||
### 4. Journal Entry Safeguards
|
||||
- **Reversal Protection**: The **Reverse Entry** button is automatically hidden on journal entries linked to expenses. This prevents accidental reversals that would cause the accounting ledger to fall out of sync with the expense status.
|
||||
|
||||
### 5. 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%.
|
||||
|
||||
### 6. 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).
|
||||
- **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.
|
||||
|
||||
## 🛠 Configuration
|
||||
|
||||
1. **GL Accounts**:
|
||||
- **Expenses > Configuration > Expense Categories**.
|
||||
- Define the two accounts under the **Accounting** tab.
|
||||
2. **Kiosk Activation**:
|
||||
- Go to **Expenses > Configuration > Settings**.
|
||||
- The **Kiosk URL** is displayed in the "Expense Kiosk" block. You can regenerate the token here if needed.
|
||||
3. **Employee PINs**:
|
||||
- Set 4-digit PINs on employee records for Kiosk access.
|
||||
|
||||
## 📋 Technical Notes
|
||||
- **Odoo Version**: 19.0
|
||||
- **Controller**: `/hr_expense/kiosk/<token>`
|
||||
- **Models**: `hr.expense`, `hr.expense.realization`, `account.move`, `account.payment`
|
||||
- **JS Framework**: Odoo 19 OWL
|
||||
68
README.rst
Normal file
68
README.rst
Normal file
@ -0,0 +1,68 @@
|
||||
=========================================
|
||||
HR Expense Account Split & Kiosk (Odoo 19)
|
||||
=========================================
|
||||
|
||||
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 (Odoo 19 Refined)
|
||||
---------------------------------------------
|
||||
* **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.
|
||||
* **Architectural Note**: In Odoo 19, the legacy `hr.expense.sheet` logic has been merged directly into the core `hr.expense` model for better performance and consistency.
|
||||
|
||||
3. Account Splitting & Kasbon Logic
|
||||
-----------------------------------
|
||||
* **Dynamic Selection**: Automatically routes expenses to different GL accounts based on the `Paid By` field.
|
||||
* **Configuration**: Set distinct `Expense Account (Employee)` and `Expense Account (Company)` directly on the Expense Category form.
|
||||
* **Advance Account**: Company-paid advances (Kasbon) use account **115101** for the debit side of the initial payment journal entry.
|
||||
|
||||
4. Journal Entry Safeguards
|
||||
---------------------------
|
||||
* **Reversal Protection**: The **Reverse Entry** button is automatically hidden on journal entries linked to expenses. This prevents accidental reversals that would cause the accounting ledger to fall out of sync with the expense status.
|
||||
|
||||
5. 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%.
|
||||
|
||||
6. 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).
|
||||
* **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.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
1. **GL Accounts**:
|
||||
* **Expenses > Configuration > Expense Categories**.
|
||||
* Define the two accounts under the **Accounting** tab.
|
||||
2. **Kiosk Activation**:
|
||||
* Go to **Expenses > Configuration > Settings**.
|
||||
* The **Kiosk URL** is displayed in the "Expense Kiosk" block. You can regenerate the token here if needed.
|
||||
3. **Employee PINs**:
|
||||
* Set 4-digit PINs on employee records for Kiosk access.
|
||||
|
||||
Technical Notes
|
||||
===============
|
||||
* **Odoo Version**: 19.0
|
||||
* **Controller**: `/hr_expense/kiosk/<token>`
|
||||
* **Models**: `hr.expense`, `hr.expense.realization`, `account.move`, `account.payment`
|
||||
* **JS Framework**: Odoo 19 OWL
|
||||
Loading…
Reference in New Issue
Block a user