| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 1284 |
| Technical Name |
filter_payroll |
| Website | https://www.ganemo.co |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Payroll (hr_payroll)
• Discuss (mail) • Employees (hr) |
| Community Apps Dependencies | Show |
| Lines of code | 1284 |
| Technical Name |
filter_payroll |
| Website | https://www.ganemo.co |
Filter Payroll
CTS & Gratification Days Analysis
Streamline your payroll period analysis by adding targeted filters for CTS and Gratifications directly into Attendances, Time Off, and Payslips.
What We're Solving
----------------
Targeted Payroll Filters
Easily filter leaves, attendances, and worked days by CTS or Gratification labels to speed up mandatory benefit calculations without manual spreadsheet reviews.
Seamless Integration
Works perfectly with Odoo's native Payroll, Attendances, and Time Off apps. The custom fields are naturally injected into the standard views.
Setup & User Manual
Comprehensive Step-by-Step Implementation
1. Configuration Guide
Prepare the system for accurate filtering by configuring your Leave and Work Entry Types. This step ensures that the system correctly identifies which days affect social benefits.
Configure Work Entry Types (Payslips & Attendances)
- Navigation: Go to Payroll > Configuration > Work Entries > Work Entry Types.
- Selection: Open the specific Work Entry Type you want to categorize (e.g., "Regular Attendance", "Overtime", or an Unpaid Absence).
- CTS & Gratification Identification: Locate the "Is License for Social Benefits?" and "Is Absence for Social Benefits?" checkboxes. These are the two boolean fields this module adds to classify work entry types. Note: Enabling either flag will cause records of this type to appear in the CTS and/or Gratification search filters across Payslips, Time Off, and Attendances.
- Save: Save the record. Any Time Off Type linked to this Work Entry Type will automatically inherit these flags — no additional configuration is needed there.
Time Off Types (Leaves) — Automatic Inheritance
There is nothing to configure directly on
Time Off Types. This module adds the social benefit flags to
hr.leave.type as hidden, read-only related fields
that automatically mirror the values of the linked Work Entry Type.
- How it works: Every Time Off Type is linked to a Work Entry Type (visible in its form). The fields “Is License for Social Benefits?” and “Is Absence for Social Benefits?” on the Time Off Type are automatically inherited from that linked Work Entry Type — they are intentionally hidden in the UI to avoid confusion.
- Where to configure: Always set the flags at Payroll > Configuration > Work Entries > Work Entry Types. Once saved there, every Time Off Type that references that Work Entry Type — and every leave record derived from it — becomes instantly filterable by CTS or Gratification, with no further action needed.
2. Operating Manual & Workflow
How human resources and payroll analysts utilize these filters in their daily operations:
1. Analyzing Payslip Worked Days
When a semester ends (e.g., May for CTS), go to Payroll > Payslips, switch to the List view, and open the Search Bar. Under "Filters", you will see "CTS" and "Gratification". Selecting "CTS" instantly filters all worked days records inside the payslips that are tagged as valid for CTS accumulation. This replaces hours of manual excel filtering.
2. Analyzing Time Off (Leaves)
To verify discounted days for Gratifications (e.g., in July), go to Time Off > Management > Time Off. Apply the "Gratification" filter. You will immediately see all approved leaves that legally discount the employee's gratification calculation, ensuring absolute legal compliance and fair payment.
3. Analyzing Attendances
If your company manages direct attendance shifts, you can go to Attendances > Attendances, click the Search Bar, and use the CTS / Gratification filters. This applies the identical logic inherited from the Work Entry or Holiday Status, unifying the data source.
4. Fast Exporting
Because the filter is applied directly on the List View, the payroll analyst can simply select all the filtered records and click Action > Export. The exported spreadsheet will contain exactly the verified subset of days needed for the financial department.
Filter Reference Summary
| Filter Name | Exact Menu Location | Target Model | Filtering Conditions (Logic) |
|---|---|---|---|
| CTS | Attendances > Attendances | hr.attendance |
No Holiday Status (False) OR Holiday Code = '20' OR Is Tagged as "License for Social Benefits" OR Is Tagged as "Absence for Social Benefits" |
| Gratification | Attendances > Attendances | hr.attendance |
No Holiday Status (False) OR Is Tagged as "License for Social Benefits" OR Is Tagged as "Absence for Social Benefits" |
| CTS | Time Off > Management > Time Off | hr.leave |
Holiday Code = '20' OR Is Tagged as "License for Social Benefits" OR Is Tagged as "Absence for Social Benefits" |
| Gratification | Time Off > Management > Time Off | hr.leave |
Is Tagged as "License for Social Benefits" OR Is Tagged as "Absence for Social Benefits" |
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
QA / User Testing Scenarios
Enterprise Validation Plan
Scenario 1: Filtering Worked Days for CTS
- Navigate to Payroll > Configuration > Work Entry Types.
- Edit the "Generic Time Off" type and check "Is License for Social Benefits?". Save.
- Go to Payroll > Payslips and generate a Payslip for an employee that includes "Generic Time Off".
- Within the Payslip, go to the Worked Days & Inputs tab. Check that the boolean field indicating the License is True.
- Go to the global Worked Days list view (if exposed) or use the Payslip custom filter CTS.
- Result: The payslip or the specific worked day record should be fully visible when the filter is active, proving the rule inheritance.
Scenario 2: Identifying Gratification Discounts in Time Off
- Navigate to Time Off > Configuration > Time Off Types.
- Edit "Unpaid Leave". Check "Is Absence for Social Benefits?". Save.
- Navigate to Time Off > Dashboard and create a Time Off request for 3 days using the "Unpaid Leave" type. Approve it.
- Go to Time Off > Management > Time Off (List View).
- Click the search bar and select the "Gratification" filter.
- Result: Only the Unpaid Leave you just created (and any other similarly tagged leaves) MUST appear in the list. Regular paid time off should be hidden.
Scenario 3: Attendance Cross-Filtering
- Ensure you have a Time Off Type configured with "Is License for Social Benefits?".
- Ensure the Odoo Attendance module has records linked to this type (if your system creates attendances based on time off).
- Navigate to Attendances > Attendances.
- Apply the CTS filter in the search bar.
- Result: The subset of attendances returned MUST strictly match the condition. Verify by opening a record and checking the hidden technical fields.
Scenario 4: Negative Case - Excluded Types
- Identify a Time Off Type that has all the Social Benefit flags set to False (e.g., "Regular Working Day" or a non-computable absence).
- Process a Payslip containing this type.
- Go to the list views for Time Off and Payslips, and apply the CTS / Gratification filters.
- Result: These records MUST NEVER appear in the filtered results. This guarantees false positives do not inflate benefit calculations.
FAQ & Troubleshooting
Common Resolutions
Why is my custom Leave Type not showing up when I apply the CTS filter?
Reason: The Leave Type has not been properly tagged in its configuration.
Fix: Go to Time Off > Configuration > Time Off Types. Open the missing type and ensure that "Is License for Social Benefits?" or the respective fields are checked. Once saved, previous records will automatically become visible in the filter.
Does this module automatically calculate the monetary value of CTS/Gratification?
Reason: This module is categorized as an analytical and filtering tool, not a calculator.
Answer: No. This module exposes the necessary filters for the HR Analyst to extract the valid accumulating and discounting days. The actual monetary calculation is typically handled by Odoo's native Salary Rules using the standard inputs gathered from these filters.
If I change a Work Entry Type flag, do I need to recompute existing Payslips?
Reason: Data inheritance architecture.
Answer: No. Because the boolean fields on `hr.payslip.worked_days` and `hr.leave` are established as `related` fields pointing directly to the master configuration, updating the Time Off Type or Work Entry Type dynamically updates the filtering behavior of all historical records instantly.
I get a "Field not found" error when installing the module.
Reason: Missing dependencies.
Answer: Ensure you have installed the `absence_day` and `payroll_field` modules first, as this module injects views securely relying on the XML structure of those base models.
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.
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.
Please log in to comment on this module