Skip to Content
Odoo Menu
  • Sign in
  • Try it free
  • Apps
    Finance
    • Accounting
    • Invoicing
    • Expenses
    • Spreadsheet (BI)
    • Documents
    • Sign
    Sales
    • CRM
    • Sales
    • POS Shop
    • POS Restaurant
    • Subscriptions
    • Rental
    Websites
    • Website Builder
    • eCommerce
    • Blog
    • Forum
    • Live Chat
    • eLearning
    Supply Chain
    • Inventory
    • Manufacturing
    • PLM
    • Purchase
    • Maintenance
    • Quality
    Human Resources
    • Employees
    • Recruitment
    • Time Off
    • Appraisals
    • Referrals
    • Fleet
    Marketing
    • Social Marketing
    • Email Marketing
    • SMS Marketing
    • Events
    • Marketing Automation
    • Surveys
    Services
    • Project
    • Timesheets
    • Field Service
    • Helpdesk
    • Planning
    • Appointments
    Productivity
    • Discuss
    • Approvals
    • IoT
    • VoIP
    • Knowledge
    • WhatsApp
    Third party apps Odoo Studio Odoo Cloud Platform
  • Industries
    Retail
    • Book Store
    • Clothing Store
    • Furniture Store
    • Grocery Store
    • Hardware Store
    • Toy Store
    Food & Hospitality
    • Bar and Pub
    • Restaurant
    • Fast Food
    • Guest House
    • Beverage Distributor
    • Hotel
    Real Estate
    • Real Estate Agency
    • Architecture Firm
    • Construction
    • Property Management
    • Gardening
    • Property Owner Association
    Consulting
    • Accounting Firm
    • Odoo Partner
    • Marketing Agency
    • Law firm
    • Talent Acquisition
    • Audit & Certification
    Manufacturing
    • Textile
    • Metal
    • Furnitures
    • Food
    • Brewery
    • Corporate Gifts
    Health & Fitness
    • Sports Club
    • Eyewear Store
    • Fitness Center
    • Wellness Practitioners
    • Pharmacy
    • Hair Salon
    Trades
    • Handyman
    • IT Hardware & Support
    • Solar Energy Systems
    • Shoe Maker
    • Cleaning Services
    • HVAC Services
    Others
    • Nonprofit Organization
    • Environmental Agency
    • Billboard Rental
    • Photography
    • Bike Leasing
    • Software Reseller
    Browse all Industries
  • Community
    Learn
    • Tutorials
    • Documentation
    • Certifications
    • Training
    • Blog
    • Podcast
    Empower Education
    • Education Program
    • Scale Up! Business Game
    • Visit Odoo
    Get the Software
    • Download
    • Compare Editions
    • Releases
    Collaborate
    • Github
    • Forum
    • Events
    • Translations
    • Become a Partner
    • Services for Partners
    • Register your Accounting Firm
    Get Services
    • Find a Partner
    • Find an Accountant
      • Get a Tailored Demo
    • Implementation Services
    • Customer References
    • Support
    • Upgrades
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +32 2 290 34 90
    • Get a Tailored Demo
  • Pricing
  • Help
  1. APPS
  2. payroll
  3. Holiday Process v 19.0
  4. Sales Conditions FAQ

Holiday Process

by Ganemo https://www.ganemo.co
Odoo

$ 397.06

v 19.0 Third Party
This module requires Odoo Enterprise Edition.
Apps purchases are linked to your Odoo account, please sign in or sign up first.
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Payroll (hr_payroll)
• Employees (hr)
• Discuss (mail)
• Time Off (hr_holidays)
• Calendar (calendar)
Community Apps Dependencies Show
• Employee Service
• Holidays Accrual Advanced
Lines of code 2169
Technical Name holiday_process
LicenseOPL-1
Websitehttps://www.ganemo.co
You bought this module and need support? Click here!
Availability
Odoo Online
Odoo.sh
On Premise
Odoo Apps Dependencies • Payroll (hr_payroll)
• Employees (hr)
• Discuss (mail)
• Time Off (hr_holidays)
• Calendar (calendar)
Community Apps Dependencies Show
• Employee Service
• Holidays Accrual Advanced
Lines of code 2169
Technical Name holiday_process
LicenseOPL-1
Websitehttps://www.ganemo.co
  • Description
  • License

Technical Specification for AI & LLM

This Odoo module 'holiday_process' manages the complete employee vacation lifecycle. It adds a 'Vacation & Allowances' tab to the hr.employee form view displaying a summary of earned (computed_holiday), taken (used_holiday), and pending (pending_holiday) vacation days, computed from hr.leave.allocation records. It provides wizard-based tools to generate vacation assignments (hr.leave.allocation) for workers and to proportionally calculate and process vacation entitlements including sale and purchase of vacation days. Integrates with hr_payroll, hr_work_entry_holidays, holidays_accrual_advanced, and employee_service modules. Adds show_in_time_off_request (Boolean) to hr.leave.type, now configurable from the Time Off Type form view. Adds hr_leave_id (Many2one to hr.leave.allocation), show_in_time_off_request (related), from_date and from_to (Date) to hr.leave. Overrides _compute_display_name() on hr.leave.allocation with context key 'show_holiday_summary' to display 'Type | Date | Pending days' in the Allocation dropdown on the Time Off request form. The Allocation field (hr_leave_id) is editable in all states including validate and validate1. Adds vacation_start_date (Date) to hr.employee: the Odoo-management start date for vacation periods (independent from service_start_date). The Holiday Generator Wizard uses vacation_start_date to determine the first period to generate. A post-migrate script (v19.0.1.1.0) copies service_start_date into vacation_start_date for existing employees with has_holidays=True. A 'Generar' button on the employee Vacation tab opens the Holiday Generator pre-loaded with the current employee. After generation, clicking 'Cerrar' in the summary reloads the employee form (target: current). The Holiday Generator Wizard creates periods with inclusive end dates (e.g. 01/01/2025 to 31/12/2025). Past periods use allocation_type=regular with exact days; current/future periods use accrual. The Validity Period (date_from/date_to) is stored at 12:00:00 UTC to avoid timezone display shift. Compatible with Odoo 19 (Enterprise, Odoo.SH, Ganemo Online). NOT supported on Odoo Online due to custom code restrictions. Multi-language support for English and Spanish included.

Enterprise (Odoo.SH, Ganemo Online or Ganemo.SH)
English & Spanish Included

Holiday Process

Complete Vacation Management & Assignment Engine

Automate employee vacation workflows in Odoo: track earned, taken, and pending days, generate mass assignments, and process vacation sale & purchase — all proportionally calculated.

What We're Solving

----------------

Vacation Summary at a Glance

HR managers lose time hunting for vacation data across multiple screens. This module adds a dedicated Vacation & Allowances tab directly on the employee form, showing earned, taken, and pending vacation days in real time.

Mass Assignment Generation

Manually creating vacation allocations for each employee is error-prone and slow. Our Holiday Generator Wizard creates assignments for all employees at once, applying proportional calculation rules automatically.

Vacation Sale & Purchase

Labor regulations allow employees to sell or purchase vacation days. This module provides a structured Holiday Petition Wizard to handle these requests, connected to payroll for accurate settlement.

Proportional Calculation

Vacation days must be calculated proportionally based on the employee's actual work period. The resource calendar integration uses the employee's work schedule to compute precise entitlements — no more manual spreadsheets.

Setup & User Manual

Step-by-Step implementation

1. Configuration Guide

Prepare the system for vacation management in 4 simple steps:

  • Install the module from Apps > Holiday Process.
  • Go to Employees and open any employee record.
  • Navigate to the Vacation & Allowances tab.
  • Set Start Vacation date on each employee (the date from which Odoo will manage vacation periods).
  • Use the Generar button on the employee tab for a single employee, or go to Payroll > Holidays > Holiday Generator for mass generation.
Smart Explainer: The vacation tab on the employee form is only visible after the module is installed and at least one leave allocation has been generated or assigned to the employee.

2. Operating Manual (Workflow)

How the system works for HR managers and employees:

Vacation Tab on Employee

The dedicated Vacation & Allowances tab shows a complete summary per employee: the list of all vacation allocations, with computed days, days taken (enjoyed or paid), and pending balance — updated in real time.

Holiday Generator Wizard

Mass-generate leave allocations for all (or selected) employees. The wizard uses each employee's work calendar to calculate proportional vacation days. Can be launched from Payroll > Holidays > Holiday Generator or directly from the Generar button on the employee's Vacation & Allowances tab (pre-loads the current employee). After generation, clicking Cerrar reloads the employee form automatically.

Holiday Petition (Sale/Purchase)

Employees can formally request to sell or purchase vacation days. The wizard creates a structured petition linked to the allocation record, which can then be processed through payroll for settlement.

Holiday Update Wizard

Recalculate and update existing vacation allocations when contract conditions change (e.g., salary updates, period adjustments). Keeps vacation records synchronized with payroll data at all times.

Payroll Integration

Vacation data is directly linked to payroll. When a vacation petition (sale) is processed, the system automatically includes the corresponding payment amounts in the next payslip computation.

3. Fields Reference

All fields created by this module

Employee Fields — hr.employee

Path: Employees > [Employee] > Vacation & Allowances tab

Field Name Technical Name Type Purpose
Has Vacations has_holidays Boolean Indicates whether this employee is entitled to receive vacation allocations. When enabled, the employee will be included in mass vacation generation processes via the Holiday Generator Wizard.
Vacation Days per Year holidays_per_year Char Number of vacation days the employee is entitled to per year based on their contract or internal policy. Used by the Holiday Generator and Holiday Update wizards to calculate proportional entitlements, and referenced by the PRO_VAC salary rule in basic_rule.
Path: Employees > [Employee] > Vacation & Allowances tab
Additional Days additional_days Char Extra vacation days granted beyond the standard annual entitlement. Assigned due to seniority, special agreements, or labor law provisions. Added on top of holidays_per_year by the Holiday Generator Wizard.
Vacation Lines hr_allocation_ids One2many List of all leave allocation records (hr.leave.allocation) linked to this employee. Each line shows earned, taken, and pending vacation days per period. Displayed in the Vacation & Allowances tab and generated automatically via the Holiday Generator Wizard.
Start Vacation vacation_start_date Date The date from which vacation periods will be managed in Odoo for this employee. This is NOT the employment start date (service_start_date) but the date the Holiday Generator Wizard will use as the starting point for creating allocations. Useful when migrating from another system and only managing periods from a specific date forward. Required for the wizard to process the employee.
Migration note: On upgrade to v19.0.1.1.0, existing employees with has_holidays=True have this field auto-populated from service_start_date.

Time Off Type Fields — hr.leave.type

Path: Time Off > Configuration > Activity Types > [Type] > form

Field Name Technical Name Type Purpose
Show Allocation in Time Off Request show_in_time_off_request Boolean When enabled, an Allocation selector appears on the Time Off request form (hr.leave), allowing the user to link the absence to a specific vacation allocation. Required for leave types used in vacation sale/purchase workflows (e.g., Descanso Vacacional). Default: False.

Time Off Request Fields — hr.leave

Path: Time Off > [Request] > form

Field Name Technical Name Type Purpose
Allocation hr_leave_id Many2one Links the time off request to a specific hr.leave.allocation. Visible only when the selected Time Off Type has show_in_time_off_request = True. Editable in all states including validate and validate1. The dropdown shows a descriptive label: Type | From Date | Pending days (via contextual _compute_display_name() override, activated by the show_holiday_summary context key).
Show Allocation in Time Off Request show_in_time_off_request Boolean Related field mirroring holiday_status_id.show_in_time_off_request. Used internally to control the invisible attribute of the Allocation field in the view. Ensures reactive visibility when the Time Off Type changes.
From Date from_date Date Start date of the absence period linked to the vacation sale/purchase petition. Used to define the date range for this specific leave request.
To Date from_to Date End date of the absence period. Together with From Date, defines the full duration of the leave request in vacation sale/purchase workflows.

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.

English Spanish

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.

QR WhatsApp

Official WhatsApp

Fastest response time.

COPY
LINK
https://wa.me/18286726150

+1 (828) 672-6150

QR Sales Email

Sales Email

For commercial inquiries.

COPY
ADDR
leads@ganemo.com

leads@ganemo.com

QR Book Demo

Book a Demo

Let's explore your needs.

COPY
LINK
ganemo.co/appointment/5

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: Vacation Tab Visibility

  1. Go to Employees and open any employee record.
  2. Check that the Vacation & Allowances tab is visible.
  3. Verify the tab shows columns: Allocation, Computed Days, Days Taken, Pending Days.
  4. Test: An employee with no allocations should show an empty list.
  5. Test: After generating an allocation via wizard, it should appear immediately in the tab.

Scenario 2: Holiday Generator Wizard

  1. Go to Payroll > Holidays > Holiday Generator.
  2. Select the target period (From / To dates).
  3. Choose the employees or leave empty to include all.
  4. Test: Run the wizard. Allocations should be created for each employee.
  5. Test: Computed days must match the proportional calculation based on work calendar.
  6. Test (Date Fix): Verify that each allocation period ends the day before the next period starts. Example: a period starting 01/01/2025 must end on 31/12/2025, not 01/01/2026.
  7. Test (vacation_start_date): Employees without Start Vacation set must be skipped by the wizard. Employees with it set must be processed normally.
  8. Test (Generar button): From an employee form, click Generar. The wizard must open pre-loaded with that employee. After generation, click Cerrar and verify the tab reloads with the new allocations.

Scenario 3: Vacation Sale/Purchase Petition

Open a validated vacation allocation. Click Create Holiday Absence.

  • A new hr.leave record should be created referencing the allocation.
  • The Pending Days field must decrease accordingly after the absence is validated.
  • Attempting to delete an allocation with linked absences should raise a ValidationError.

Scenario 4: Proportional Days Calculation

  1. Create an employee with an entry date mid-year.
  2. Run the Holiday Generator for the full year.
  3. Result: The allocation must reflect only the proportional days corresponding to the employee's actual work period — not the full annual entitlement.

Scenario 5: Payroll Integration

  1. Process a vacation petition (sale) for an employee.
  2. Generate the payslip for that employee for the same period.
  3. Result: The payslip MUST include the vacation settlement amount. No errors should be raised during computation.

Scenario 6: Vacation Sale — Linking Absence to Allocation

Verifies that the Allocation field works correctly on Time Off requests for leave types configured for vacation sale workflows.

  1. Go to Time Off > Configuration > Activity Types and open the vacation sale leave type.
  2. Enable Show Allocation in Time Off Request and save.
  3. Create a new Time Off request and select that leave type.
  4. Test: The Allocation field must appear. The dropdown must show options in the format: Type | From Date | Pending days.
  5. Test: Select an allocation and validate the request. The field must remain editable even in Validated state.
  6. Test: Switch to a leave type with Show Allocation in Time Off Request = False. The Allocation field must disappear immediately.
  7. Test: The allocation's Pending Days must decrease after the absence is validated.

FAQ & Troubleshooting

Common Resolutions

The "Vacation & Allowances" tab is not visible?

Reason: The tab requires the HR Officer role to be visible.

Fix: Ensure the user has the HR / Officer or HR / Administrator access rights in Settings > Users.

Computed days don't match expected entitlement?

Reason: The calculation depends on the employee's work calendar.

Fix: Verify that the employee has a valid Work Schedule (resource.calendar) assigned. Employees without a calendar will produce zero or incorrect results.

Can't delete a vacation allocation?

Reason: The allocation has linked absence records.

Fix: Delete or cancel all related absences (hr.leave) linked to this allocation first, then delete the allocation.

Is this compatible with Multi-company?

Answer: Yes!

Detail: Vacation allocations are tied to the individual employee record. Each company's employees maintain separate allocation records, ensuring clean data separation in multi-company environments.

The Holiday Generator skips some employees?

Reason: Employees without Start Vacation (vacation_start_date) configured are intentionally excluded.

Fix: Open the employee record > Vacation & Allowances tab > set the Start Vacation date. This is the date from which Odoo will begin generating vacation periods — it does not need to match the employment start date.

Commercial & Sales

For inquiries about licenses, demos, or partnerships.

QR WhatsApp
Official WhatsApp

Fastest response time.

COPY
LINK
https://wa.me/18286726150

+1 (828) 672-6150

QR Sales Email
Sales Email

For commercial inquiries.

COPY
ADDR
leads@ganemo.com
QR Book Demo
Book a Demo

Let's explore your needs.

COPY
LINK
ganemo.co/appointment/5

Technical Support

Existing customers regarding module functionality.

QR Technical Support
Help Desk

Exclusive channel for technical assistance and bug reports.

COPY
ADDR
help@ganemo.com

help@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

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.
Community
  • Tutorials
  • Documentation
  • Forum
Open Source
  • Download
  • Github
  • Runbot
  • Translations
Services
  • Odoo.sh Hosting
  • Support
  • Upgrade
  • Custom Developments
  • Education
  • Find an Accountant
  • Find a Partner
  • Become a Partner
About us
  • Our company
  • Brand Assets
  • Contact us
  • Jobs
  • Events
  • Podcast
  • Blog
  • Customers
  • Legal • Privacy
  • Security

Odoo is a suite of open source business apps that cover all your company needs: CRM, eCommerce, accounting, inventory, point of sale, project management, etc.

Odoo's unique value proposition is to be at the same time very easy to use and fully integrated.

Website made with