$ 99.65
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Discuss (mail) • Employees (hr) • Employee Contracts (hr_contract) |
| Lines of code | 406 |
| Technical Name |
worked_days_override |
| License | LGPL-3 |
| Website | https://www.yourwebsite.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Discuss (mail) • Employees (hr) • Employee Contracts (hr_contract) |
| Lines of code | 406 |
| Technical Name |
worked_days_override |
| License | LGPL-3 |
| Website | https://www.yourwebsite.com |
Human Resources • Payroll
Payroll Worked Days Override + Import
Override worked days on payslips and import attendance data from Excel/CSV files.
Compatible With
📸 Screenshots
Complete visual guide covering all testing scenarios from module installation to data import
PART 1: Module Installation Verification
New Input Types Configuration
Navigate to Payroll → Configuration → Input Types to verify the three new input types:
- Attendance (Manual Days) - Code: ATT_DAYS
- Overtime (Hours) - Code: ATT_OT
- Late Time (Hours) - Code: ATT_LATE
PART 2: Manual Worked Days Override
Create Payslip Batch & Generate Payslips
Create a new payslip batch with period dates, then click Generate Payslips to create payslips for selected employees.
View Default Worked Days (Before Override)
Open a payslip and click the Compute button to view the Worked Days & Inputs tab. Note the default WORK100 line showing full month values (e.g., 22 days, 176 hours, full contract wage).
PART 3: CSV Import Functionality
Access Import Wizard
Navigate to Payroll → Payslips → Import Attendance to open the wizard with fields for Payslip Batch, Import File, and Template File download.
Export CSV Template
Select a payslip batch and click Export Template to generate a CSV file pre-filled with employee information, departments, and the current month for easy data entry.
� Excel/CSV Import Wizard
- Import attendance data in bulk from Excel or CSV files for entire payslip batches.
- Auto-generate CSV templates pre-filled with employee information and departments.
- Process hundreds of employees in seconds instead of manual entry.
✏️ Manual Worked Days Override
- Easily override worked days on individual payslips with ATT_DAYS input type.
- Automatic recalculation of hours and amounts based on working calendar configuration.
⚡ Automatic Calculations
- Smart calculation engine computes prorated salaries based on actual worked days.
- Calculates worked days from biometric + job card hours minus late time.
- Respects contract wage and working calendar for accurate salary proration.
� Multiple Input Types
- Track attendance days (ATT_DAYS), overtime hours (ATT_OT), and late time (ATT_LATE) separately.
- Dedicated input types integrate seamlessly with payroll rules and salary structures.
Latest Release 17.0.1.0.0
2025-01-15- Import attendance data from Excel/CSV files for entire payslip batches.
- Auto-generate CSV templates pre-filled with employee information and departments.
- Manual override of worked days on payslips using ATT_DAYS input type.
- Automatic calculation of worked days from biometric, job card, and late time hours.
- Prorated salary calculations based on actual worked days and working calendar.
- Support for overtime (ATT_OT) and late time (ATT_LATE) tracking.
📅 Changelog
| Date | Version | Notes |
|---|---|---|
| 2025-12-08 | 18.0.1.0.0 | Initial release – Payroll Worked Days Override + Import module |
📜 Licensing
License Type
LGPL-3License Info
View LicenseSupport & Contact
support@odoo.co.ke
https://odoo.co.ke/helpdesk
+254739444447
1 business day SLA
# Payroll Worked Days Override + Import

## Overview
The Payroll Worked Days Override + Import module is a powerful Odoo 19 extension that streamlines payroll processing by enabling bulk attendance imports and manual worked days overrides. Developed by Metro ICT, this module eliminates tedious manual data entry and ensures accurate salary calculations based on actual attendance.
## Key Features
### ✅ Excel/CSV Import Wizard - Bulk Import: Import attendance data for entire payslip batches from Excel or CSV files - Auto-Generated Templates: Export CSV templates pre-filled with employee information and departments - Time Savings: Process hundreds of employees in seconds instead of manual entry - Flexible Format: Support for biometric hours, job card hours, overtime, and late time
### ✅ Manual Worked Days Override - Simple Override: Easily override worked days on individual payslips using the ATT_DAYS input type - Automatic Recalculation: Hours and amounts automatically recalculated based on working calendar configuration - Direct Input: Simple input interface directly on the payslip form - No Recompute Needed: Changes apply instantly without manual recomputation
### ✅ Automatic Calculations - Smart Proration: Prorated salaries calculated based on actual worked days - Formula-Based: Calculates worked days from biometric + job card hours minus late time - Calendar-Aware: Respects contract wage and working calendar for accurate calculations - Transparent: Clear calculation logic that's easy to audit and verify
### ✅ Multiple Input Types - ATT_DAYS: Track attendance days (manual override) - ATT_OT: Record overtime hours separately - ATT_LATE: Track late time deductions - Seamless Integration: All input types integrate with payroll rules and salary structures
## How It Works
### Workflow Overview
` 1. Install Module → 2. Create Payslip Batch → 3. Import Attendance → 4. Auto Processing → 5. Salary Calculation `
### Detailed Steps
#### 1. Module Installation - Install the module from Odoo Apps - Verify three new input types are created:
- Attendance (Manual Days) - Code: ATT_DAYS
- Attendance Overtime - Code: ATT_OT
- Attendance Late Time - Code: ATT_LATE
- Input types automatically integrate with payroll processing
#### 2. Create Payslip Batch - Navigate to Payroll → Payslips → Batches - Create a new batch with period dates - Click Generate Payslips for selected employees - Payslips created with default worked days (full month)
#### 3. Import Attendance Data - Access Payroll → Import Attendance wizard - Export CSV template pre-filled with employee data - Fill in attendance hours:
- Biometric hours
- Job card hours
- Overtime hours
- Late time hours
- Upload completed CSV and click Import
#### 4. Automatic Processing - System calculates worked days from attendance hours - Creates payslip input lines (ATT_DAYS, ATT_OT, ATT_LATE) - Updates worked days lines with prorated salary amounts - No manual intervention required!
#### 5. Salary Calculation - Prorated salaries calculated automatically - Formula: Salary = (Worked Days / Total Days) × Monthly Wage - Accurate deductions for partial month attendance - All calculations documented on payslip
### Example Calculation
Scenario: - Employee Monthly Wage: $3,000 - Total Working Days: 22 days - Actual Worked Days: 15 days
Calculation: ` Prorated Salary = (15 / 22) × $3,000 = $2,045.45 `
All automatically calculated and applied to the payslip!
## Installation
### Prerequisites
- Odoo Version: 19.0
- Dependencies: - hr (Human Resources) - hr_payroll (Payroll) - hr_contract (Contracts)
### Installation Steps
Download the Module `bash # Clone or download the module to your Odoo addons directory cd /path/to/odoo/addons git clone <repository-url> worked_days_override `
Update Apps List - Go to Apps → Update Apps List - Remove the "Apps" filter - Search for "Payroll Worked Days Override"
Install the Module - Click Install button - Wait for installation to complete
Verify Installation - Go to Payroll → Configuration → Input Types - Confirm three new input types exist:
- Attendance (Manual Days) - ATT_DAYS
- Attendance Overtime - ATT_OT
- Attendance Late Time - ATT_LATE
## Usage Guide
### Method 1: Bulk Import via Wizard
Open Import Wizard - Navigate to Payroll → Import Attendance - Select the payslip batch - Click Export Template
Fill Template - Open the downloaded CSV file - Fill in attendance data for each employee:
- biometric_hours: Hours from biometric system
- job_card_hours: Hours from job cards
- overtime_hours: Overtime hours worked
- late_time_hours: Late time to deduct
Import Data - Upload the completed CSV file - Click Import - System processes all employees automatically
### Method 2: Manual Override
- Open Payslip - Navigate to Payroll → Payslips - Open the desired payslip
- Add Input Line - Go to Other Inputs tab - Click Add a line - Select Attendance (Manual Days) input type - Enter the number of worked days
- Compute Payslip - Click Compute Sheet - Worked days and salary automatically updated
## CSV Template Format
`csv employee_id,employee_name,department,biometric_hours,job_card_hours,overtime_hours,late_time_hours EMP001,John Doe,Sales,176,176,8,2 EMP002,Jane Smith,IT,168,168,12,0 EMP003,Bob Johnson,HR,160,160,0,4 `
Column Descriptions: - employee_id: Employee reference (auto-filled) - employee_name: Employee name (auto-filled) - department: Department name (auto-filled) - biometric_hours: Hours from biometric attendance system - job_card_hours: Hours from job cards or timesheets - overtime_hours: Additional overtime hours - late_time_hours: Late time hours to deduct
## Configuration
### Working Calendar Setup
For accurate calculations, ensure your working calendar is properly configured:
- Navigate to Settings - Go to Settings → Technical → Resource → Working Times
- Configure Calendar - Set Hours per Day (e.g., 8.0) - Set Hours per Week (e.g., 40.0) - Define working days and hours
- Assign to Contracts - Ensure employee contracts reference the correct working calendar
### Salary Rules Integration
The module works with standard Odoo salary rules. To use the prorated amount in your rules:
`python # In your salary rule Python code result = payslip._get_prorated_basic_amount() `
This helper method returns the prorated salary based on ATT_DAYS if set, otherwise returns the full contract wage.
## Technical Details
### Module Structure
``` worked_days_override/ ├── __init__.py ├── __manifest__.py ├── README.md ├── models/ │ ├── __init__.py │ └── hr_payslip.py ├── wizard/ │ ├── __init__.py │ ├── attendance_import_wizard.py │ └── attendance_import_wizard_views.xml ├── data/ │ └── hr_payslip_input_type.xml ├── security/ │ └── ir.model.access.csv └── static/
- └── description/
- ├── banner.png ├── icon.png └── index.html
### Key Methods
#### _get_worked_day_lines(domain=None) Overrides the standard method to inject manual attendance days when ATT_DAYS input is present.
#### _apply_manual_attendance_override() Applies the manual attendance override to worked days lines after payslip computation.
#### _get_prorated_basic_amount() Helper method for salary rules to get the prorated basic amount based on worked days.
#### _attendance_amount_from_hours(manual_days, hours_per_day) Calculates the prorated salary amount based on worked days and working calendar.
## Troubleshooting
### Issue: Import fails with "Employee not found" Solution: Ensure employee IDs in CSV match exactly with Odoo employee records.
### Issue: Salary not prorating correctly Solution: Verify working calendar is configured with correct hours per day/week.
### Issue: Input types not appearing Solution: Upgrade the module after installation: Apps → Payroll Worked Days Override → Upgrade
### Issue: Changes not reflecting on payslip Solution: Click Compute Sheet button to recalculate the payslip.
## Support & Contact
Developed by: Metro ICT Website: [https://www.metroict.com](https://www.metroict.com) Version: 19.0.1.0.0 License: LGPL-3
For support, bug reports, or feature requests, please contact Metro ICT support team.
## Changelog
### Version 18.0.1.0.0 - Initial release for Odoo 18 - Excel/CSV bulk import wizard - Manual worked days override - Automatic salary proration - Three new input types (ATT_DAYS, ATT_OT, ATT_LATE) - Integration with standard Odoo payroll
## License
This module is licensed under LGPL-3. See LICENSE file for details.
---
© 2025 Metro ICT - Smart Payroll Solutions
Please log in to comment on this module