| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Discuss (mail) • Employees (hr) |
| Lines of code | 987 |
| Technical Name |
payroll_field |
| License | OPL-1 |
| Website | https://www.ganemo.co |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Discuss (mail) • Employees (hr) |
| Lines of code | 987 |
| Technical Name |
payroll_field |
| License | OPL-1 |
| Website | https://www.ganemo.co |
Payroll Fields
Month Control & Payroll Analysis
Automatically identify the payroll month for each payslip and unlock powerful analysis views for inputs, worked days, and payslip lines. Better control for importing and analyzing payroll data.
What We're Solving
----------------
Payroll Month Detection
When a payslip spans two months, it's hard to know which month it belongs to. This module automatically calculates the Payroll Month based on the date range, assigning it to the month with the most days.
Analysis & Quick Actions
Lacks dedicated analysis views? Get independent menu items and pre-configured Pivot views for Inputs, Worked Days, and Payslip Lines. Includes Quick-Action buttons injected directly into Pay Run headers.
Custom Report Categories
Don't be limited by standard salary rule categories. Create custom Report Categories and assign multiple salary rules to them to build dynamic, boardroom-ready Pivot reports specifically grouped by your custom financial classifications.
Setup & User Manual
Step-by-Step implementation
1. Installation
Install the module and start using enhanced payroll fields:
- Install the Payroll Fields module from the Apps menu.
- Existing payslips will automatically compute the Payroll Month field.
- New menu items appear under Payroll > Reporting for analysis.
- Fields Month/Year, Payroll Month, Month, and Year are added to payslips.
2. Features Overview
What you get with this module:
Payroll Month Field
A computed date_start_dt field on each payslip that identifies which month the payslip corresponds to, even when the date range crosses month boundaries.
Input Analysis
Dedicated list, pivot, and graph views for Payslip Inputs with employee tags, department, payroll month, and amount fields for comprehensive data analysis.
Worked Days Analysis
Independent analysis views for Worked Days records, including number of days, hours, and payroll period filters for workforce tracking.
Payslip Line Analysis
Full analysis views for Payslip Lines with salary rule details, amounts, category, and payroll period grouping for comprehensive payroll reporting.
Custom Report Categories
Create flexible Report Categories under Configuration. Assign multiple Salary Rules to these categories to generate tailored, boardroom-ready reports independent of traditional accounting structures.
Pay Run Quick Actions
Action buttons (Edit Inputs, Edit Worked Days, Report by Rules, Report by Categories) are injected directly into the Pay Run Kanban Card header, dramatically speeding up mass-editing and batch analysis.
Employee Enhancements
Adds an Advance Percent field for maximum payroll advance configuration and a Disability flag for special deductions directly on the employee profile.
3. Fields & Menus Reference
All fields and menus created by this module
Employee
Fields — hr.employee
Path: Employees > [Employee] > Work Information / Private Information / HR Settings tabs
| Field Name | Technical Name | Type | Related Model | Purpose |
|---|---|---|---|---|
| Disability | disability |
Boolean | hr.employee |
Indicates whether the employee has a registered disability. Propagated
from hr.version. Can be used in payroll rules for special
deductions or benefits. |
| Porcentaje de Anticipo | advance_percent |
Float | hr.employee |
Maximum percentage of base salary that can be paid as an advance
payroll. Propagated from hr.version. |
| Age | age |
Float (Computed) | hr.employee |
Employee age in years, computed from birthday. Safe:
returns 0.0 if birthday is not set. Used by dependent
modules to apply age-related payroll rules (e.g., AFP premium exemption
at 65). |
Contract Version Fields — hr.version
Path: Employees > [Employee] > Work Information tab > Contract Version
| Field Name | Technical Name | Type | Related Model | Purpose |
|---|---|---|---|---|
| Disability | disability |
Boolean | hr.version |
Source field for the disability flag. Tracked for auditing. Propagated
automatically to hr.employee.disability. |
| Porcentaje de Anticipo | advance_percent |
Float | hr.version |
Source field for payroll advance percentage. Configured per contract
version and propagated to hr.employee.advance_percent. |
Salary Rule Fields — hr.salary.rule
Path: Payroll > Configuration > Salary Rules > [Rule] > General tab
| Field Name | Technical Name | Type | Related Model | Purpose |
|---|---|---|---|---|
| Report Category | report_category_id |
Many2one | hr.salary.rule.report.category |
Custom reporting group for the rule. Allows building pivot reports that group multiple salary rules under a single financial category, independent of standard accounting categories. |
| Applies Advance Payroll? | apply_advance_payroll |
Boolean | hr.salary.rule |
When checked, indicates this rule must also be executed during advance payroll runs (e.g., quincenal or partial payslips). Consumed by basic_rule to filter applicable rules in advance calculations. |
Payslip Fields — hr.payslip
Path: Payroll > Payslips > [Payslip] (computed fields, visible in list/pivot views)
| Field Name | Technical Name | Type | Related Model | Purpose |
|---|---|---|---|---|
| Month/Year | date_start |
Char (Computed) | hr.payslip |
Text representation of the payroll month in MM/YYYY format. Propagated to payslip lines, inputs, and worked days for analysis. |
| Payroll Month | date_start_dt |
Date (Computed, Stored) | hr.payslip |
Date field identifying the payroll period. When the payslip spans two months, the month with the most days is selected. Core field for period grouping in all analysis pivot views. |
| Payroll Month Number | month |
Char (Computed) | hr.payslip |
Two-digit month number (01–12) of the payroll period. Useful for sorting and filtering by month in analysis views. |
| Payroll Year | year |
Char (Computed) | hr.payslip |
Four-digit year of the payroll period. Useful for year-based filtering and grouping. |
| Employee Tags | employee_category_ids |
Many2many (Related) | hr.employee.category |
Tags assigned to the employee. Related to
employee_id.category_ids. Useful for filtering and grouping
payslips by employee classification.
|
Pay Run Fields — hr.payslip.run
Path: Payroll > Payslips > Batches > [Pay Run] (via Kanban card actions)
| Field Name | Technical Name | Type | Related Model | Purpose |
|---|---|---|---|---|
| Payroll Month | date_st_dt |
Date (Computed) | hr.payslip.run |
Computed payroll month for the batch, using the same month-detection logic as individual payslips. Used by report actions for pre-filtering by period. |
date_start, date_start_dt,
employee_id,
department_id, company_id, state,
struct_id, disability, payslip_run_id,
report_category_id, and parent_report_category_id
are also propagated as related/stored fields onto
hr.payslip.line, hr.payslip.input, and
hr.payslip.worked_days to enable cross-model analysis filtering without
joins.
Menus & Actions
| Menu Name | Path | Model | Purpose |
|---|---|---|---|
| Payslip Analysis | Payroll > Reporting > Payslip Analysis |
hr.payslip.line |
List, pivot, and graph analysis of payslip lines by rule, category, employee, and period. |
| Input Analysis | Payroll > Reporting > Input Analysis |
hr.payslip.input |
Full analysis of payslip inputs with filtering by employee, department, input type, and payroll period. |
| Worked Days Analysis | Payroll > Reporting > Worked Days Analysis |
hr.payslip.worked_days |
Analysis of worked days records with days, hours, and payroll period filters for workforce tracking. |
| Report Categories | Payroll > Configuration > Report Categories |
hr.salary.rule.report.category |
Master list for creating and managing custom report categories assignable to salary rules. |
Buttons & Quick Actions
Location: Payroll > Payslips > Batches > [Pay Run Kanban Card] > 3-dots context menu
| Button Label | Method Name | Target Model | View Opened | Purpose |
|---|---|---|---|---|
| Edit Inputs | action_edit_inputs |
hr.payslip.input |
List + Form | Opens all payslip inputs of the Pay Run in a list view pre-grouped by input type. Allows mass-editing input amounts without opening each payslip individually. |
| Edit Worked Days | action_edit_worked_days |
hr.payslip.worked_days |
List + Form | Opens all worked days records of the Pay Run in a list view. Enables bulk correction of attendance days or hours directly from the batch level. |
| Report by Rules | action_view_payslip_lines_report |
hr.payslip.line |
Pivot + List | Opens the Payslip Lines pivot view filtered to this Pay Run, pre-grouped by Employee (rows) and Salary Rule (columns). Ideal for per-rule payroll analysis. |
| Report by Categories | action_view_payslip_lines_report_by_category |
hr.payslip.line |
Pivot + List | Opens the Payslip Lines pivot view filtered to this Pay Run, pre-grouped by Employee (rows) and Report Category (columns). Ideal for boardroom-ready financial summaries. |
xpath extending
hr_payroll.hr_payslip_run_view_kanban,
positioned after the standard action_draft button. The Pivot views are
pre-configured with context-aware pivot_measures,
pivot_column_groupby, and pivot_row_groupby for
zero-click analysis.
Global Ready | Multi-Language Support
This module is fully translated into English and Spanish (en_US, es_ES, es_PE, es_MX), ensuring a professional experience for international organizations.
Why Choose Ganemo?
----------------
Ganemo is the world's leading Odoo App developer and a multi-award-winning Gold Partner. For over 5 years, we have been recognized as the #1 seller of high-quality apps on the Odoo App Store. Trusted as the "Best Partner" in USA, Mexico, Chile, Spain, Colombia, Ecuador, and Peru, we deliver robust, secure, and localization-compliant solutions for global businesses.
Get a Quote & Resolve Commercial Doubts
Join thousands of satisfied clients on Odoo. Contact our sales team directly.
Official WhatsApp
Fastest response time.
LINK
+1 (828) 672-6150
Book a Demo
Let's explore your needs.
LINK
Schedule Meeting
Need More? We Do It All
Professional Odoo Services
ERP Implementation
Transform your business with a full Odoo implementation. We analyze, configure, and train your team to maximize productivity. From Accounting to Inventory, we handle the complexity so you can focus on growth.
Module Dev & Migration
Need a custom feature? Or stuck on an older version? We develop high-performance custom modules and migrate your existing code to Odoo 19 with zero data loss. Expert developers at your service.
QA / User Testing Scenarios
Enterprise Validation Plan
Scenario 1: Payroll Month Computation
- Go to Payroll > Payslips > All Payslips.
- Create a payslip with Date From = Jan 25 and Date To = Feb 24.
- Test: The "Payroll Month" field should show February, since more days fall in February.
- Create another payslip: Jan 01 to Jan 31.
- Test: The "Payroll Month" should show January.
Scenario 2: Analysis Views
- Generate a few payslips with data.
- Go to Payroll > Reporting > Entry Analysis.
- Test: You should see all payslip inputs with employee, department, company, and payroll month columns.
- Go to Payroll > Reporting > Worked Days Analysis.
- Test: You should see worked day records with days, hours, and payroll period data.
Scenario 3: Pay Run Quick Actions & Category Pivot
- Navigate to Payroll > Configuration > Report Categories and create a test category. Assign it to a Salary Rule.
- Go to Payroll > Payslips > Batches. Click on an existing Pay Run.
- Test: In the top header (PayRunCard component), click the 3-dots menu. Verify that "Edit Inputs", "Edit Worked Days", "Report by Rules", and "Report by Categories" options appear.
- Click Report by Categories.
- Test: Verify Odoo loads a Pivot view automatically grouped by Employees (Rows) and your custom Report Categories (Columns), filtering only data from that specific Pay Run.
FAQ & Troubleshooting
Common Resolutions
Payroll Month is empty?
Reason: The payslip has no Date From / Date To set.
Fix: Ensure both Date From and Date To are filled on the payslip. The payroll month is computed from these dates.
Analysis menus not visible?
Reason: The user may not have the required payroll access group.
Fix: Ensure the user has at least Payroll Officer access rights in Settings > Users.
Wrong month assigned to payslip?
Reason: The system assigns the month with the most days in the payslip period.
Info: This is by design. If the payslip spans Jan 16 - Feb 15, it will be assigned to January (16 days vs 15 days). Check date_from and date_to if results seem unexpected.
Is this compatible with Payroll Batches?
Answer: Yes!
Detail: The payroll month field is computed per individual payslip. Batch processing works normally and each payslip within a batch will have its own computed month.
Commercial & Sales
For inquiries about licenses, demos, or partnerships.
Official WhatsApp
Fastest response time.
LINK
+1 (828) 672-6150
Book a Demo
Let's explore your needs.
LINK
Technical Support
Existing customers regarding module functionality.
© 2026 Ganemo. All rights reserved. visit ganemo.com
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module