Create holidays module, v16.0.0.0.1

This commit is contained in:
Florian du Garage Num 2024-03-01 23:08:45 +01:00
parent 085819695f
commit 854bbeb0e4
6 changed files with 264 additions and 10 deletions

View File

@ -8,7 +8,8 @@ Addons for Odoo 16.
| Name | Version | Description |
|-------------------------|--------------|----------------------------------------------------------|
| gn_l10n_fr_pcg_asso | 16.0.0.0.3 | French chart of account and fiscal position for NGO's |
| gn_cc | 16.0.0.0.2 | Configuration for French convention collective, with data for IDCC3442 |
| gn_cc | 16.0.0.0.2 | Configuration for French convention collective, with data for IDCC3442 |
| gn_holidays | 16.0.0.0.1 | French configuration for Publics Holidays and Leave Management |
## ToDo

19
gn_holidays/README.md Normal file
View File

@ -0,0 +1,19 @@
# GN Holidays
Module de gestion des congés et absences des employés
## How to install
1. Clone this repository in your odoo's extra-modules folder (i.e. /mnt/extra-addons)
2. Refresh list of Applications in UI
3. Search for 'gn_holidays' and click on **Install**
## Changelog
- v16.0.0.0.1 (2024/03/01):
- Création du module
- Ajouts des jours feriés pour 2024
- Ajout des types d'absence
## Issues
- [] Need prevention mechanism when CP or Compensatory Day is asked on a Public Holiday (cf issue #8)

View File

@ -0,0 +1,22 @@
{
"name": "France - Congés",
"version": "16.0.0.0.1",
"category": "HR",
"summary": "Configuration des congés et absences",
"author": "Le Garage Numérique",
"maintainers": ["makayabou"],
"website": "https://odoo.legaragenumerique.fr",
"depends": [
"hr",
"hr_contract",
"l10n_fr_oca",
"hr_work_entry",
"hr_work_entry_holidays",
"hr_holidays_public",
],
"data": [
"data/gn_holidays_public.xml",
"data/gn_holidays.xml",
],
"license": "LGPL-3",
}

View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="0">
<!-- Work Entry Type -->
<record id="hr_work_entry_contract.work_entry_type_compensatory" model="hr.work.entry.type">
<field name="display_name">Congé compensatoire (récup')</field>
<field name="code">RTT</field>
<field name="color">15</field>
<field name="is_leave" eval="True"/>
</record>
<record id="hr_work_entry_contract.work_entry_type_home_working" model="hr.work.entry.type">
<field name="name">Télé-travail</field>
<field name="code">TT</field>
<field name="color">1</field>
<field name="is_leave" eval="True"/>
</record>
<record id="hr_work_entry_contract.work_entry_type_unpaid_leave" model="hr.work.entry.type">
<field name="name">Absence non-rémunérée</field>
<field name="color">2</field>
<field name="code">ABS</field>
<field name="is_leave" eval="True"/>
</record>
<record id="hr_work_entry_contract.work_entry_type_sick_leave" model="hr.work.entry.type">
<field name="name">Congé Maladie</field>
<field name="code">AM</field>
<field name="is_leave" eval="True"/>
<field name="color">9</field>
</record>
<record id="hr_work_entry_contract.work_entry_type_legal_leave" model="hr.work.entry.type">
<field name="name">Congé payé</field>
<field name="code">CP</field>
<field name="is_leave" eval="True"/>
<field name="color">6</field>
</record>
<!--Congés payés-->
<record id="hr_holidays.holiday_status_cl" model="hr.leave.type">
<field name="name">Paid Time Off</field>
<field name="requires_allocation">yes</field>
<field name="employee_requests">no</field>
<field name="leave_validation_type">hr</field>
<field name="allocation_validation_type">officer</field>
<field name="leave_notif_subtype_id" ref="hr_holidays.mt_leave"/>
<field name="allocation_notif_subtype_id" ref="hr_holidays.mt_leave_allocation"/>
<field name="responsible_id" ref="base.user_admin"/>
<field name="request_unit">day</field>
<field name="support_document" eval="False"/>
<field name="time_type">leave</field>
<field name="exclude_public_holidays" eval="True"/>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_legal_leave"/>
<field name="icon_id" ref="hr_holidays.icon_14"/>
<field name="color">2</field>
<field name="company_id" eval="False"/> <!-- Explicitely set to False for it to be available to all companies -->
<field name="sequence">1</field>
</record>
<!-- Arrêt maladie -->
<record id="hr_holidays.holiday_status_sl" model="hr.leave.type">
<field name="name">Sick Time Off</field>
<field name="requires_allocation">no</field>
<field name="color_name">red</field>
<field name="leave_validation_type">no_validation</field>
<field name="leave_notif_subtype_id" ref="hr_holidays.mt_leave_sick"/>
<field name="responsible_id" ref="base.user_admin"/>
<field name="request_unit">day</field>
<field name="support_document" eval="True"/>
<field name="time_type">leave</field>
<field name="exclude_public_holidays" eval="False"/>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_sick_leave"/>
<field name="icon_id" ref="hr_holidays.icon_22"/>
<field name="color">3</field>
<field name="company_id" eval="False"/> <!-- Explicitely set to False for it to be available to all companies -->
<field name="sequence">2</field>
</record>
<!-- Compensatory Days -->
<record id="hr_holidays.holiday_status_comp" model="hr.leave.type">
<field name="name">Compensatory Days</field>
<field name="requires_allocation">yes</field>
<field name="employee_requests">yes</field>
<field name="leave_validation_type">hr</field>
<field name="allocation_validation_type">officer</field>
<field name="request_unit">hour</field>
<field name="support_document" eval="True"/>
<field name="time_type">leave</field>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_compensatory"/>
<field name="exclude_public_holidays" eval="True"/>
<field name="leave_notif_subtype_id" ref="hr_holidays.mt_leave"/>
<field name="responsible_id" ref="base.user_admin"/>
<field name="icon_id" ref="hr_holidays.icon_4"/>
<field name="color">4</field>
<field name="company_id" eval="False"/> <!-- Explicitely set to False for it to be available to all companies -->
<field name="sequence">4</field>
</record>
<!--Absence non-rémunérée -->
<record id="hr_holidays.holiday_status_unpaid" model="hr.leave.type">
<field name="name">Unpaid</field>
<field name="requires_allocation">no</field>
<field name="leave_validation_type">hr</field>
<field name="allocation_validation_type">officer</field>
<field name="request_unit">hour</field>
<field name="unpaid" eval="True"/>
<field name="time_type">leave</field>
<field name="support_document" eval="True"/>
<field name="exclude_public_holidays" eval="True"/>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_unpaid_leave"/>
<field name="leave_notif_subtype_id" ref="hr_holidays.mt_leave_unpaid"/>
<field name="responsible_id" ref="base.user_admin"/>
<field name="icon_id" ref="hr_holidays.icon_28"/>
<field name="color">5</field>
<field name="company_id" eval="False"/> <!-- Explicitely set to False for it to be available to all companies -->
<field name="sequence">3</field>
</record>
<!-- Plan de cumul des congés payés-->
<record id="cumul_cp" model="hr.leave.accrual.plan">
<field name="name">Cumul des congés payés</field>
<field name="time_off_type_id" ref="hr_holidays.holiday_status_cl"/>
</record>
<!-- Régle de cumul des Congés payés-->
<record id="cumul_standard" model="hr.leave.accrual.level">
<field name="start_count">0</field>
<field name="start_type">month</field>
<field name="is_based_on_worked_time" eval="True"/>
<field name="added_value">2.5</field>
<field name="added_value_type">days</field>
<field name="frequency">monthly</field>
<field name="maximum_leave">90</field>
<field name="action_with_unused_accruals">postponed</field>
<field name="postpone_max_days">60</field>
<field name="accrual_plan_id" ref="gn_holidays.cumul_cp"/>
</record>
</data>
<delete model="hr.work.entry.type" id="hr_work_entry_contract.work_entry_type_leave"/>
</odoo>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<data noupdate="0">
<!-- Jour fériés 2024 -->
<record id="jours_feries_2024" model="hr.holidays.public">
<field name="year">2024</field>
<field name="country_id" ref="base.fr"/>
</record>
<record id="jour_ferie_jour_de_l_an" model="hr.holidays.public.line">
<field name="name">Jour de l'an</field>
<field name="date" eval="'2024-01-01'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_lundi_de_paques" model="hr.holidays.public.line">
<field name="name">Lundi de Pâques</field>
<field name="date" eval="'2024-04-01'"/>
<field name="variable_date" eval="True"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_fete_du_travail" model="hr.holidays.public.line">
<field name="name">Fête du Travail</field>
<field name="date" eval="'2024-05-01'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_victoire_1945" model="hr.holidays.public.line">
<field name="name">Victoire 1945</field>
<field name="date" eval="'2024-05-08'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_ascension" model="hr.holidays.public.line">
<field name="name">Ascension</field>
<field name="date" eval="'2024-05-09'"/>
<field name="variable_date" eval="True"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_pentecote" model="hr.holidays.public.line">
<field name="name">Pentecôte</field>
<field name="date" eval="'2024-05-20'"/>
<field name="variable_date" eval="True"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_fete_nationale" model="hr.holidays.public.line">
<field name="name">Fête Nationale</field>
<field name="date" eval="'2024-07-14'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_assomption" model="hr.holidays.public.line">
<field name="name">Assomption</field>
<field name="date" eval="'2024-08-15'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_toussaint" model="hr.holidays.public.line">
<field name="name">Toussaint</field>
<field name="date" eval="'2024-11-01'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_armistrice_1918" model="hr.holidays.public.line">
<field name="name">Armistrice 1918</field>
<field name="date" eval="'2024-11-11'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
<record id="jour_ferie_noel" model="hr.holidays.public.line">
<field name="name">Jour de Noël</field>
<field name="date" eval="'2024-12-25'"/>
<field name="variable_date" eval="False"/>
<field name="year_id" ref="jours_feries_2024"/>
</record>
</data>
</odoo>

View File

@ -4,14 +4,14 @@
<!-- Work Entry Type -->
<record id="hr_work_entry_contract.work_entry_type_compensatory" model="hr.work.entry.type">
<field name="display_name">Congé compensatoire (récup')</field>
<field name="code">LEAVE105</field>
<field name="code">RTT</field>
<field name="color">15</field>
<field name="is_leave" eval="True"/>
</record>
<record id="hr_work_entry_contract.work_entry_type_home_working" model="hr.work.entry.type">
<field name="name">Télé-travail</field>
<field name="code">WORK110</field>
<field name="code">TT</field>
<field name="color">1</field>
<field name="is_leave" eval="True"/>
</record>
@ -19,20 +19,20 @@
<record id="hr_work_entry_contract.work_entry_type_unpaid_leave" model="hr.work.entry.type">
<field name="name">Absence non-rémunérée</field>
<field name="color">2</field>
<field name="code">LEAVE90</field>
<field name="code">ABS</field>
<field name="is_leave" eval="True"/>
</record>
<record id="hr_work_entry_contract.work_entry_type_sick_leave" model="hr.work.entry.type">
<field name="name">Congé Maladie</field>
<field name="code">LEAVE110</field>
<field name="code">AM</field>
<field name="is_leave" eval="True"/>
<field name="color">9</field>
</record>
<record id="hr_work_entry_contract.work_entry_type_legal_leave" model="hr.work.entry.type">
<field name="name">Congé payé</field>
<field name="code">LEAVE120</field>
<field name="code">CP</field>
<field name="is_leave" eval="True"/>
<field name="color">6</field>
</record>
@ -51,7 +51,6 @@
<field name="time_type">leave</field>
<field name="exclude_public_holidays" eval="True"/>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_legal_leave"/>
<field name="code">CP</field>
<field name="icon_id" ref="hr_holidays.icon_14"/>
<field name="color">2</field>
<field name="company_id" eval="False"/> <!-- Explicitely set to False for it to be available to all companies -->
@ -71,7 +70,6 @@
<field name="time_type">leave</field>
<field name="exclude_public_holidays" eval="False"/>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_sick_leave"/>
<field name="code">AM</field>
<field name="icon_id" ref="hr_holidays.icon_22"/>
<field name="color">3</field>
<field name="company_id" eval="False"/> <!-- Explicitely set to False for it to be available to all companies -->
@ -88,7 +86,6 @@
<field name="request_unit">hour</field>
<field name="support_document" eval="True"/>
<field name="time_type">leave</field>
<field name="code">RTT</field>
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_compensatory"/>
<field name="exclude_public_holidays" eval="True"/>
<field name="leave_notif_subtype_id" ref="hr_holidays.mt_leave"/>
@ -107,7 +104,6 @@
<field name="allocation_validation_type">officer</field>
<field name="request_unit">hour</field>
<field name="unpaid" eval="True"/>
<field name="code">ABS</field>
<field name="time_type">leave</field>
<field name="support_document" eval="True"/>
<field name="exclude_public_holidays" eval="True"/>