Начальное наполнение

This commit is contained in:
parent f6a225f397
commit 3e9746016c
54 changed files with 6265 additions and 0 deletions

8
__init__.py Normal file
View File

@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
def _validate_existing_work_entry(env):
env['hr.work.entry'].search([])._check_if_error()

28
__manifest__.py Normal file
View File

@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Time Off in Payslips',
'version': '1.0',
'category': 'Human Resources/Payroll',
'sequence': 95,
'summary': 'Manage Time Off in Payslips',
'description': """
Manage Time Off in Payslips
============================
This application allows you to integrate time off in payslips.
""",
'depends': ['hr_holidays', 'hr_work_entry_contract'],
'data': [
'data/hr_payroll_holidays_data.xml',
'views/hr_leave_views.xml',
'views/hr_leave_type_views.xml',
],
'demo': ['data/hr_payroll_holidays_demo.xml'],
'installable': True,
'auto_install': True,
'post_init_hook': '_validate_existing_work_entry',
'license': 'LGPL-3',
}

View File

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record id="hr_holidays.holiday_status_comp" model="hr.leave.type">
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_compensatory"></field>
</record>
<record id="hr_holidays.holiday_status_unpaid" model="hr.leave.type">
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_unpaid_leave"></field>
</record>
<record id="hr_holidays.holiday_status_sl" model="hr.leave.type">
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_sick_leave"></field>
</record>
<record id="hr_holidays.holiday_status_cl" model="hr.leave.type">
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_legal_leave"></field>
</record>
</data>
</odoo>

View File

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- add work_entry type to leave type -->
<record id="hr_holidays.resource_public_time_off_1" model="resource.calendar.leaves">
<field name="work_entry_type_id" ref="hr_work_entry_contract.work_entry_type_leave"></field>
</record>
</odoo>

138
i18n/ar.po Normal file
View File

@ -0,0 +1,138 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Malaz Abuidris <msea@odoo.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Malaz Abuidris <msea@odoo.com>, 2023\n"
"Language-Team: Arabic (https://app.transifex.com/odoo/teams/41243/ar/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ar\n"
"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"لا يمكن تعيين إجازة في عدة عقود مع جداول عمل مختلفة.\n"
"\n"
"يرجى إنشاء إجازة واحدة لكل عقد.\n"
"\n"
"الإجازة:\n"
"%s\n"
"\n"
"العقود:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "الموظف العادي "
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"يؤدي تغيير العقد على هذا الموظف إلى تغيير جدول عمله في الفترة التي حصل فيها "
"على إجازات بالفعل. يؤدي تغيير جدول العمل هذا إلى تغيير مدة هذه الإجازات بحيث"
" لم يعد الموظف لديه التخصيص المطلوب لها. يرجى مراجعة هذه الإجازات و/أو "
"التخصيصات قبل تغيير العقد. "
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "عقد الموظف"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "قيد عمل الموارد البشرية "
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "نوع قيد عمل الموارد البشرية "
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "كشوف المرتبات "
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "الحالة"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"يتم تعين الحالة إلى 'للإرسال'، عندما يتم إنشاء طلب إجازة.\n"
"تكون الحالة 'للموافقة'، عندما تتم الموافقة على طلب الإجازة من قِبَل المستخدم.\n"
"تكون الحالة 'تم الرفض'، عندما يتم رفض طلب الإجازة من قِبَل المدير.\n"
"تكون الحالة 'تمت الموافقة'، عندما تتم الموافقة على طبي الإجازة من قِبَل المدير."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"لا يوجد موظف معين للإجازة. رجاءً تأكد من أنك قد قمت بتسجيل الدخول إلى الشركة"
" الصحيحة. "
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "الإجازات "
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "نوع الإجازة "
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "نوع قيد العمل "
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "قيد العمل المستخدم في إيصال الدفع. "

122
i18n/bg.po Normal file
View File

@ -0,0 +1,122 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Albena Mincheva <albena_vicheva@abv.bg>, 2023
# aleksandar ivanov, 2023
# Георги Пехливанов <sonaris@gmail.com>, 2023
# Ивайло Малинов <iv.malinov@gmail.com>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Martin Trigaux, 2023\n"
"Language-Team: Bulgarian (https://app.transifex.com/odoo/teams/41243/bg/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: bg\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Основен служител"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Договор на служителя"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Ведомост"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Състояние"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Почивка"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

138
i18n/ca.po Normal file
View File

@ -0,0 +1,138 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# jabiri7, 2023
# Óscar Fonseca <tecnico@pyming.com>, 2023
# Josep Anton Belchi, 2023
# marcescu, 2023
# Martin Trigaux, 2023
# Ivan Espinola, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Ivan Espinola, 2023\n"
"Language-Team: Catalan (https://app.transifex.com/odoo/teams/41243/ca/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ca\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"No es pot establir un permís entre diversos contractes amb diferents horaris de treball.\n"
"\n"
"Si us plau, creeu un descans per a cada contracte.\n"
"\n"
"Temps d'espera:\n"
"%s\n"
"\n"
"Contractes:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Empleat bàsic"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contracte de l'empleat"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Prestació RH"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Tipus d'entrada de treball de RH"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Nòmina"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Estat"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"L'estat s'estableix com a \"Per enviar\", quan es crea una sol·licitud de temps lliure.\n"
"L'estat és \"Aprovar\", quan l'usuari confirma la sol·licitud de temps lliure.\n"
"L'estat es \"Refused\", quan el gestor rebutja la sol·licitud de temps lliure.\n"
"L'estat és \"aprovat\", quan el gestor aprova la sol·licitud de temps lliure."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"No hi ha cap empleat en el temps lliure. Assegureu-vos que heu iniciat la "
"sessió a l'empresa correcta."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Absències"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tipus d'absència"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipus d'entrada de treball"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Entrada de treball utilitzada en la nòmina."

123
i18n/cs.po Normal file
View File

@ -0,0 +1,123 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Jakub Smolka, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Jakub Smolka, 2023\n"
"Language-Team: Czech (https://app.transifex.com/odoo/teams/41243/cs/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: cs\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Základní zaměstnanec"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Zaměstnanecká smlouva"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR pracovní záznam"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR typ pracovního záznamu"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Mzdy"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Stav"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Když je vytvořena žádost o volno, je stav nastaven na „Odeslat“.\n"
"Stav je „Schválit“, když uživatel potvrdí žádost o volno.\n"
"Stav je „Odmítnuto“, když manažer zamítne žádost o volno.\n"
"Stav je „Schváleno“, když manažer schválí žádost o volno."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Volno"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Typ volna"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Typ pracovní položky"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

126
i18n/da.po Normal file
View File

@ -0,0 +1,126 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Mads Søndergaard, 2023
# Ejner Sønniksen <ejner@vkdata.dk>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Martin Trigaux, 2023\n"
"Language-Team: Danish (https://app.transifex.com/odoo/teams/41243/da/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: da\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Standard ansat"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Ansættelseskontrakt"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR arbejdspostering"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR arbejdsposteringstype"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Løn"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Status er sat til 'At indsende', når en anmodning om fri oprettes.\n"
"Status er 'At godkende', når en anmodning om fri godkendes af bruger.\n"
"Status er 'Afvist', når en anmodning om fri afvises af leder.\n"
"Status er 'Godkendt', når en anmodning om fri godkendes af leder."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Der er ingen ansat angivet på fri perioden. Tjek venligst at du er logget "
"ind i den korrekte virksomhed."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Fri"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Fri type"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Arbejdsposterings type"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

140
i18n/de.po Normal file
View File

@ -0,0 +1,140 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Larissa Manderfeld, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Larissa Manderfeld, 2023\n"
"Language-Team: German (https://app.transifex.com/odoo/teams/41243/de/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: de\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Ein Urlaub kann nicht für mehrere Verträge mit unterschiedlichen Arbeitsplänen festgelegt werden.\n"
"\n"
"Bitte erstellen Sie eine Abwesenheit für jeden Vertrag.\n"
"\n"
"Abwesenheit:\n"
"%s\n"
"\n"
"Verträge:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Basismitarbeiter"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Wenn Sie den Vertrag dieses Mitarbeiters ändern, ändert sich sein "
"Arbeitszeitplan in einem Zeitraum, in dem er bereits Urlaub genommen hat. "
"Durch die Änderung des Arbeitszeitplans wird die Dauer dieser Urlaube so "
"geändert, dass der Mitarbeiter nicht mehr über den erforderlichen "
"Urlaubsanspruch für diese Urlaube verfügt. Bitte überprüfen Sie diese "
"Urlaube und/oder Urlaubansprüche, bevor Sie den Vertrag ändern."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Arbeitsvertrag"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR-Arbeitseintrag"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR-Arbeitseintragsart"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Personalabrechnung"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Der Status wird auf „Einzureichen“ gesetzt, wenn ein Abwesenheitsantrag erstellt wird.\n"
"Der Status ist „Zu genehmigen“, wenn der Abwesenheitsantrag vom Benutzer bestätigt wird.\n"
"Der Status lautet „Abgelehnt“, wenn der Abwesenheitsantrag vom Manager abgelehnt wird.\n"
"Der Status lautet „Genehmigt“, wenn der Manager den Abwesenheitsantrag genehmigt hat."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Es ist kein Mitarbeiter für die Abwesenheit festgelegt. Bitte vergewissern "
"Sie sich, dass Sie im korrekten Unternehmen angemeldet sind."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Abwesenheit"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Abwesenheitsart"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Arbeitseintragsart"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Arbeitseintrag in Gehaltabrechnung verwendet."

140
i18n/es.po Normal file
View File

@ -0,0 +1,140 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Larissa Manderfeld, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Larissa Manderfeld, 2024\n"
"Language-Team: Spanish (https://app.transifex.com/odoo/teams/41243/es/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"No se puede establecer una ausencia en varios contratos con diferentes horarios de trabajo.\n"
"\n"
"Cree una ausencia para cada contrato.\n"
"\n"
"Ausencia:\n"
"%s\n"
"\n"
"Contratos:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Empleado básico"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Si modifica el contrato de este empleado, su horario laboral cambiará "
"durante un período en el que ya ha disfrutado de vacaciones. Al cambiar el "
"horario laboral, se modificará la duración de estas vacaciones, por lo que "
"el empleado ya no tendrá derecho a las vacaciones requeridas para estas "
"vacaciones. Por favor, compruebe estas vacaciones y/o los derechos a "
"vacaciones antes de modificar el contrato."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato de empleado"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Entrada de trabajo de RRHH"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Tipo de entrada de trabajo de RRHH"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Nómina"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Estado"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"El estado se establece en `Para enviar', cuando se crea una solicitud de ausencia.\n"
"El estado es 'Para Aprobar', cuando el usuario confirma la solicitud de ausencia.\n"
"El estado es 'Rechazado', cuando el gerente rechaza la solicitud de ausencia.\n"
"El estado es 'Aprobado', cuando el gerente aprueba la solicitud de ausencia."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"No hay ningún empleado establecido en el tiempo libre. Asegúrese de haber "
"iniciado sesión en la empresa correcta."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Ausencias"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tipo de ausencia"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipo de entrada de trabajo"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Entrada de trabajo utilizada en la nómina."

140
i18n/es_419.po Normal file
View File

@ -0,0 +1,140 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Iran Villalobos López, 2023
# Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Patricia Gutiérrez Capetillo <pagc@odoo.com>, 2024\n"
"Language-Team: Spanish (Latin America) (https://app.transifex.com/odoo/teams/41243/es_419/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: es_419\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"No se puede establecer un permiso en varios contratos con diferentes horarios de trabajo.\n"
"\n"
"Cree un tiempo personal para cada contrato.\n"
"\n"
"Tiempo personal:\n"
"%s\n"
"\n"
"Contratos:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Empleado básico"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Cambiar el contrato de este empleado cambiará su horario de trabajo en un "
"periodo en el que tomó días personales. Cambiar el horario de trabajo "
"cambiará la duración de esos días personales de manera que el empleado ya no"
" los tendrá asignados. Revise estos días y/o estas asignaciones antes de "
"cambiar el contrato."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato del empleado"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Entrada de trabajo de RR. HH."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Tipo de entrada de trabajo de RR. HH."
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Nómina"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Estado"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"El estado se establece como 'Para enviar' cuando se crea una solicitud de tiempo personal.\n"
"El estado se establece como 'Por aprobar' cuando el usuario confirma la solicitud de tiempo personal.\n"
"El estado se establece como 'Rechazado' cuando el gerente rechaza la solicitud de tiempo personal.\n"
"El estado se establece como 'Aprobado' cuando el gerente aprueba la solicitud de tiempo personal."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"No hay ningún empleado en tiempo personal, asegúrese de haber iniciado "
"sesión en la empresa correcta."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Tiempo personal"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tipo de tiempo personal"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipo de entrada de trabajo"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Entrada de trabajo utilizada en el recibo de nómina."

146
i18n/et.po Normal file
View File

@ -0,0 +1,146 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Leaanika Randmets, 2023
# Martin Aavastik <martin@avalah.ee>, 2023
# Piia Paurson <piia@avalah.ee>, 2023
# Algo Kärp <algokarp@gmail.com>, 2023
# Aveli Kannel <aveli@avalah.ee>, 2023
# Patrick-Jordan Kiudorv, 2023
# Eneli Õigus <enelioigus@gmail.com>, 2023
# JanaAvalah, 2023
# Anna, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Anna, 2023\n"
"Language-Team: Estonian (https://app.transifex.com/odoo/teams/41243/et/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: et\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Puudumisi ei saa määrata mitmele lepingule erineva tööjaga.\n"
"\n"
"Palun looge üks puudumine iga lepingu kohta..\n"
"\n"
"Puudumine:\n"
"%s\n"
"\n"
"Lepingud:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Keskmine töötaja"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Tööleping"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR tööajad"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR tööaja sissekande tüübid"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Palgaarvestus"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Olek"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Kui puhkusetaotlus luuakse, määratakse olekuks „Esita”.\n"
"Olek on \"Kinnitada\", kui kasutaja on puhkusetaoluse kinnitanud.\n"
"Olek on \"Keeldutud\", kui juht lükkab puhkusetaotluse tagasi.\n"
"Olek on „Kinnitatud”, kui juht on puhkusetaotluse heaks kiitnud."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Töötajale ei ole puudumisi määratud. Veenduge, et oleksite sisse logitud "
"õigesse ettevõttesse."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Puudumised"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Puudumise tüüp"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Töö sissekande tüüp"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Palgalehel kasutatud järgmist töö sissekande tüüpi."

127
i18n/fa.po Normal file
View File

@ -0,0 +1,127 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# سید محمد آذربرا <mohammadazarbara98@gmail.com>, 2023
# Martin Trigaux, 2023
# F Hariri <fhari1234@gmail.com>, 2023
# Hanna Kheradroosta, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Hanna Kheradroosta, 2023\n"
"Language-Team: Persian (https://app.transifex.com/odoo/teams/41243/fa/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fa\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "کارمند پایه"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "قرارداد کارمند"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "سند کار منابع انسانی"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "منابع انسانی کار نوع ورودی"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "حقوق و دستمزد"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "وضعیت"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"وضعیت روی 'برای ارسال' تنظیم می‌شود، زمانی که یک درخواست مرخصی ایجاد شود.\n"
"وضعیت 'برای تصویب' است، هنگامی که درخواست مرخصی توسط کاربر تایید شود.\n"
"وضعیت 'رد شده' است، زمانی که درخواست مرخصی توسط مدیر رد شود.\n"
"وضعیت 'تصویب‌شده' است، زمانی که درخواست مرخصی توسط مدیر تایید شود."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"هیچ کارمندی در مرخصی تنظیم نشده است. لطفا مطمئن شوید که در شرکت صحیح وارد "
"شده اید."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "مرخصی"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "نوع مرخصی"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "نوع سند کارکرد"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

137
i18n/fi.po Normal file
View File

@ -0,0 +1,137 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Veikko Väätäjä <veikko.vaataja@gmail.com>, 2023
# Jarmo Kortetjärvi <jarmo.kortetjarvi@gmail.com>, 2023
# Mikko Salmela <salmemik@gmail.com>, 2023
# Martin Trigaux, 2023
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2023\n"
"Language-Team: Finnish (https://app.transifex.com/odoo/teams/41243/fi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fi\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Lomaa ei voi asettaa useisiin sopimuksiin, joissa on eri työaikataulut.\n"
"\n"
"Luo yksi vapaapäivä kutakin sopimusta varten.\n"
"\n"
"Vapaa:\n"
"%s\n"
"\n"
"Sopimukset:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Normaali työntekijä"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Työsopimus"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR-työkirjaus"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR-työn kirjaustyyppi"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Palkkahallinto"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Tila"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Tilaksi asetetaan \"Lähetettävä\", kun vapaata koskeva pyyntö luodaan.\n"
"Tila on 'Hyväksyttäväksi', kun käyttäjä on vahvistanut vapaa-aikapyynnön.\n"
"Tila on \"Hylätty\", kun esimies on hylännyt vapaapyynnön.\n"
"Tila on \"Hyväksytty\", kun esimies on hyväksynyt vapaapyynnön."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Vapaa-aikaa ei ole asetettu työntekijälle. Varmista, että olet kirjautunut "
"oikeaan yritykseen."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Vapaa"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Vapaa-aikatyyppi"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Työkirjaustyyppi"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Palkkalaskelmassa käytetty työkirjaus."

139
i18n/fr.po Normal file
View File

@ -0,0 +1,139 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Jolien De Paepe, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Jolien De Paepe, 2023\n"
"Language-Team: French (https://app.transifex.com/odoo/teams/41243/fr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: fr\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Un congé ne peut être défini sur plusieurs contrats à des régimes horaires différents.\n"
"\n"
"Veuillez créer un congé pour chaque contrat.\n"
"\n"
"Congé :\n"
"%s\n"
"\n"
"Contrats:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Employé de base"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"La modification du contrat de cet employé modifie également son horaire de "
"travail au cours d'une période où il a déjà pris des congés. La modification"
" de cet horaire de travail modifie la durée de ces congés de telle sorte que"
" l'employé ne dispose plus de l'allocation requise pour ces congés. Veuillez"
" revoir ces congés et/ou allocations avant de modifier le contrat."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contrat de l'employé"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Prestation RH"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Type de prestations RH"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Paie"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Statut"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Lorsqu'une demande de congé est créée, son statut est défini sur \"À soumettre\".\n"
"Lorsque la demande est confirmée par l'utilisateur, son statut passe à \"À approuver\".\n"
"Lorsque la demande est refusée par un manager, son statut passe à \"Refusée\".\n"
"Lorsque la demande est approuvée par un manager, son statut passe à \"Approuvée\"."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Aucun employé n'est défini sur le congé. Assurez vous que vous êtes connecté"
" à la bonne entreprise."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Congés"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Type de congés"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Type de prestation"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Prestation utilisée dans la fiche de paie."

119
i18n/he.po Normal file
View File

@ -0,0 +1,119 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Yihya Hugirat <hugirat@gmail.com>, 2023
# ZVI BLONDER <ZVIBLONDER@gmail.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: ZVI BLONDER <ZVIBLONDER@gmail.com>, 2023\n"
"Language-Team: Hebrew (https://app.transifex.com/odoo/teams/41243/he/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: he\n"
"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "עובד רגיל"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "חוזה עובד"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "רשומת עבודה של משאבי אנוש"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "סוג רשומת עבודה של משאבי אנוש"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "שכר"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "סטטוס"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "מאשר חופשות"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "סוג חופשה"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "סוג רשומת עבודה"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

View File

@ -0,0 +1,114 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 21:55+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

124
i18n/hu.po Normal file
View File

@ -0,0 +1,124 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# krnkris, 2023
# Tamás Németh <ntomasz81@gmail.com>, 2023
# gezza <geza.nagy@oregional.hu>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: gezza <geza.nagy@oregional.hu>, 2024\n"
"Language-Team: Hungarian (https://app.transifex.com/odoo/teams/41243/hu/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: hu\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Egyszerű munkavállaló"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Alkalmazotti szerződés"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Bérszámfejtés"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Státusz"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Az állapot „Benyújt”-ra van állítva, amikor szabadság kérelem létrehozva.\n"
"A „Jóváhagyandó” állapot akkor jelentkezik, amikor a felhasználó megerősíti a szabadság kérelmet.\n"
"Az „Elutasított” állapot akkor áll fenn, amikor a menedzser megtagadja az szabadság kérelmet.\n"
"A „Jóváhagyott” állapot akkor áll fenn, amikor a menedzser jóváhagyja a szabadság kérelmet."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Szabadság"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Szabadság típus"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

139
i18n/id.po Normal file
View File

@ -0,0 +1,139 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Abe Manyo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Abe Manyo, 2023\n"
"Language-Team: Indonesian (https://app.transifex.com/odoo/teams/41243/id/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: id\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Cuti tidak dapat ditetapkan di lebih dari satu kontrak dengan jadwal kerja yang berbeda.\n"
"\n"
"Silakan buat satu cuti untuk setiap kontrak.\n"
"\n"
"Cuti:\n"
"%s\n"
"\n"
"Kontrak:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Karyawan Dasar"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Mengubah kontrak pada karyawan ini mengubah jadwal kerja mereka menjadi "
"periode di mana mereka sudah mengambil cuti. Mengubah jadwal kerja ini "
"mengubah durasi cuti tersebut sehingga karyawan tidak lagi memiliki alokasi "
"yang diperlukan untuk cuti tersebut. Mohon tinjau cuti tersebut dan/atau "
"alokasi sebelum mengubah kontrak."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Kontrak Karyawan"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Entri Kerja HR"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Tipe Entri Kerja HR"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Penggajian"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Status adalah 'Untuk Diserahkan', saat permintaan waktu cuti dibuat.\n"
"Status adalah 'Untuk Disetujui', saat permintaan waktu cuti dikonfirmasi user.\n"
"Status adalah 'Ditolak', saat permintaan waktu cuti ditolak oleh manager.\n"
"Status adalah 'Disetujui', saat permintaan waktu cuti disetujui oleh manager."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Tidak ada karyawan yang ditetapkan pada cuti. Mohon pastikan Anda masuk di "
"perusahaan yang benar."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Cuti"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tipe Cuti"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipe Entri Kerja"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Entri kerja digunakan di payslip."

139
i18n/it.po Normal file
View File

@ -0,0 +1,139 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Marianna Ciofani, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Marianna Ciofani, 2023\n"
"Language-Team: Italian (https://app.transifex.com/odoo/teams/41243/it/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: it\n"
"Plural-Forms: nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Un congedo non può essere impostato su più contratti con orari di lavoro diversi.\n"
"\n"
"Crea un congedo per ogni contratto.\n"
"\n"
"Congedo:\n"
"%s\n"
"\n"
"Contratti:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Dipendente base"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"La modifica del contratto di questo dipendente cambia il suo orario di "
"lavoro in un periodo in cui ha già usufruito di permessi. La modifica "
"dell'orario di lavoro cambia la durata di questi permessi in modo tale che "
"il dipendente non abbia più l'assegnazione richiesta. Si prega di rivedere "
"questi permessi e/o assegnazioni prima di modificare il contratto."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contratto dipendente"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Voce lavorativa RU"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Tipo di voce lavorativa RU"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Libro paga"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Stato"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Lo stato è impostato \"Da inviare\" quando viene creata una richiesta di ferie.\n"
"Lo stato è \"Da approvare\" quando la richiesta viene confermata da un utente.\n"
"Lo stato è \"Respinta\" quando la richiesta viene respinta dal supervisore.\n"
"Lo stato è \"Approvata\" quando la richiesta viene approvata dal supervisore."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Nessun dipendente impostato per le ferie. Controllare che l'accesso sia "
"stato effettuato nell'azienda corretta."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Ferie"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tipologia ferie"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipo di voce lavorativa"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Voce lavorativa utilizzata nella busta paga."

130
i18n/ja.po Normal file
View File

@ -0,0 +1,130 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Junko Augias, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Junko Augias, 2023\n"
"Language-Team: Japanese (https://app.transifex.com/odoo/teams/41243/ja/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ja\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"異なる勤務体系を持つ複数の契約にまたがって休暇を設定することはできません。\n"
"\n"
"各契約ごとに1つの休暇を作成して下さい。\n"
"\n"
"休暇:\n"
"%s\n"
"\n"
"契約:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "基本社員"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"この従業員の契約を変更すると、すでに休暇を取得している期間の勤務予定が変更されます。この勤務予定を変更することで、これらの休暇の期間が変更され、従業員が必要な休暇の割当を受けられなくなります。契約を変更する前に、これらの休暇および/または割当を確認して下さい。"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "従業員契約"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR作業エントリ"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR作業エントリタイプ"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "給与計算"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "状態"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"休暇申請が作成されると、ステータスは'送信予定'に設定されます。ユーザが休暇申請を確認すると、ステータスは'承認中'になります。マネージャーが休暇申請を否認した場合、ステータスは'否認'です。休暇申請がマネージャーによって承認されると、ステータスは'承認済み'になります。"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr "休暇に従業員が設定されていません。正しい会社にログインしていることを確認して下さい。"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "休暇"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "休暇タイプ"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "作業エントリタイプ"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "給与明細に使用されている作業エントリ"

134
i18n/ko.po Normal file
View File

@ -0,0 +1,134 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Daye Jeong, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Daye Jeong, 2023\n"
"Language-Team: Korean (https://app.transifex.com/odoo/teams/41243/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ko\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"계약 기간이 서로 다른 근무 일정에 걸쳐 휴가를 설정할 수 없습니다.\n"
"\n"
"각 계약 기간 별로 하나의 휴가를 신청해 주세요.\n"
"\n"
"휴가:\n"
"%s\n"
"\n"
"계약 기간:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "기본 직원"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"이 직원의 계약을 변경하면 이미 휴가를 사용한 기간의 근무 일정이 변경됩니다. 이 근무 일정을 변경하면 해당 직원이 더 이상 필요한 "
"휴가를 할당받지 못하는 방식으로 휴가 기간이 변경됩니다. 계약을 변경하기 전 이러한 휴가 및/또는 할당 내용을 검토하시기 바랍니다."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "근로 계약서"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "인사 근로 항목"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "인사 근로 항목 유형"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "급여"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "상태"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"휴가 신청서를 작성하면 상태는 '기안 작성'으로 설정됩니다.\n"
"작성자가 확인 버튼을 누르면 신청서는 자동으로 제출되어 '결재 대기' 상태로 전환됩니다.\n"
"관리자가 휴가 요청을 거부하면 '반려됨' 상태로 바뀌며,\n"
"휴가 요청이 정상적으로 승인되면 '결재 완료' 표시가 뜹니다."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr "휴가를 설정한 직원이 없습니다. 근무 중인 회사에 올바르게 로그인했는지 확인해 주세요."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "휴가"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "휴가 유형"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "작업 항목 유형"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "급여 명세서에 사용되는 근로 항목."

121
i18n/lt.po Normal file
View File

@ -0,0 +1,121 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# digitouch UAB <digitouchagencyeur@gmail.com>, 2023
# Linas Versada <linaskrisiukenas@gmail.com>, 2023
# Audrius Palenskis <audrius.palenskis@gmail.com>, 2023
# Donatas <donatasvaliulis16@gmail.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Donatas <donatasvaliulis16@gmail.com>, 2023\n"
"Language-Team: Lithuanian (https://app.transifex.com/odoo/teams/41243/lt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lt\n"
"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Darbuotojo sutartis"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR darbo įrašo tipas"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Algalapis"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Būsena"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Neatvykimai"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Neatvykimo rūšis"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Darbo įrašo tipas"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

120
i18n/lv.po Normal file
View File

@ -0,0 +1,120 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Armīns Jeltajevs <armins.jeltajevs@gmail.com>, 2023
# ievaputnina <ievai.putninai@gmail.com>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Martin Trigaux, 2023\n"
"Language-Team: Latvian (https://app.transifex.com/odoo/teams/41243/lv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: lv\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Pamata darbinieks"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Darbinieka Darba Līgums"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Algu uzskaitījums"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Statuss"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Atvaļinājumi"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

139
i18n/nl.po Normal file
View File

@ -0,0 +1,139 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Jolien De Paepe, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Jolien De Paepe, 2023\n"
"Language-Team: Dutch (https://app.transifex.com/odoo/teams/41243/nl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: nl\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Een verlof kan niet worden verdeeld over meerdere contracten met verschillende werkroosters.\n"
"\n"
"Maak één verlof aan voor elk contract.\n"
"\n"
"Verlof:\n"
"%s\n"
"\n"
"Contracten:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Basis werknemer"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Als het contrat van deze werknemer wordt gewijzigd, veranderd zijn "
"werkschema in een periode waarin hij al verlof heeft genomen. Door dit "
"werkschema te wijzigen, verandert de duur van dit verlof zodanig dat de "
"werknemer niet langer de vereiste toewijzing hiervoor heeft. Controleer dit "
"verlof en/of deze toewijzingen voordat je het contract wijzigt."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Arbeidsovereenkomst"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR-werkboeking"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR werkboekingstype"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Loonadministratie"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"De status is ingesteld op 'Indienen', wanneer een verlofaanvraag wordt aangemaakt.\n"
"De status is 'Goed te keuren', wanneer een verlofaanvraag wordt bevestigd door de gebruiker. \n"
"De status wordt 'Afgewezen', wanneer een verlofaanvraag wordt afgewezen door de manager. \n"
"De status wordt 'Goedgekeurd', wanneer een verlofaanvraag wordt goedgekeurd door de manager."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Er is geen werknemer op de verlofaanvraag ingesteld. Zorg ervoor dat je bij "
"het juiste bedrijf bent ingelogd."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Verlof"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Soort verlof"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Werkboekingstype"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Werkboeking gebruikt op de loonstrook"

132
i18n/pl.po Normal file
View File

@ -0,0 +1,132 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Wil Odoo, 2023\n"
"Language-Team: Polish (https://app.transifex.com/odoo/teams/41243/pl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pl\n"
"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Urlop nie może być ustawiony dla wielu umów z różnymi harmonogramami pracy.\n"
"\n"
"Proszę utworzyć jeden czas wolny dla każdej umowy.\n"
"\n"
"Czas wolny:\n"
"%s\n"
"Umowy:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Podstawowy pracownik"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Umowa pracownika"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Wpis pracy HR"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Typ zapisu pracy"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Wynagrodzenie"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Status jest ustawiony na 'Do przesłania', gdy tworzony jest wniosek o wolne.\n"
"Status 'Do zatwierdzenia', gdy wniosek o wolne jest potwierdzany przez użytkownika.\n"
"Status 'Odrzucony', gdy wniosek o wolne jest odrzucony przez kierownika.\n"
"Status 'Zatwierdzony', gdy wniosek o wolne jest zatwierdzony przez kierownika."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Nie ma ustawionego pracownika na czas wolny. Upewnij się, że jesteś "
"zalogowany w odpowiedniej firmie."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Dni wolne"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Typ dni wolnych"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Typ zapisu pracy"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Zapis pracy używany w pasku wypłaty."

118
i18n/pt.po Normal file
View File

@ -0,0 +1,118 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Wil Odoo, 2023\n"
"Language-Team: Portuguese (https://app.transifex.com/odoo/teams/41243/pt/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato do Funcionário"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Folha de Salários"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Estado"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Ausência"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipo de Registo de Horas"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

138
i18n/pt_BR.po Normal file
View File

@ -0,0 +1,138 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Layna Nascimento, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Layna Nascimento, 2023\n"
"Language-Team: Portuguese (Brazil) (https://app.transifex.com/odoo/teams/41243/pt_BR/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: pt_BR\n"
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Não é possível definir uma licença entre vários contratos com diferentes horários de trabalho.\n"
"Crie uma folga para cada contrato.\n"
"\n"
"Folga:\n"
"%s\n"
"\n"
"Contratos:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Funcionário básico"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"A modificação do contrato desse funcionário altera seu plano de horário de "
"trabalho em um período em que ele já tirou férias. A alteração desse "
"cronograma de trabalho altera a duração dessas licenças, de modo que o "
"funcionário não tem mais a alocação necessária para elas. Revise essas "
"licenças e/ou alocações antes de alterar o contrato."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato do funcionário"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "RH Registro de trabalho"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "RH Tipo de registro de trabalho"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Folha de pagamento"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"O status é definido como 'A enviar' quando uma solicitação de folga é criada.\n"
"O status é 'A aprovar', quando a folga é confirmada pelo usuário.\n"
"O status é 'Recusado', quando a solicitação é recusada pelo gerente.\n"
"O status é 'Aprovado', quando a solicitação é aprovada pelo gerente."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Não há funcionário definido na folga. Certifique-se de ter feito login na "
"empresa certa."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Folga"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tipo de folga"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Tipo de registro de trabalho"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Registro de trabalho usado no holerite."

138
i18n/ru.po Normal file
View File

@ -0,0 +1,138 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Martin Trigaux, 2023
# Wil Odoo, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Wil Odoo, 2024\n"
"Language-Team: Russian (https://app.transifex.com/odoo/teams/41243/ru/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: ru\n"
"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Отпуск не может быть установлен по нескольким контрактам с разными графиками работы.\n"
"\n"
"Пожалуйста, создайте один отгул для каждого контракта.\n"
"\n"
"Отгул:\n"
"%s\n"
"\n"
"Контракты:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Основной сотрудник"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Изменение договора с этим сотрудником изменяет его график работы в период, "
"когда он уже брал отпуск. Изменение графика работы изменяет "
"продолжительность этих отпусков таким образом, что сотрудник больше не имеет"
" необходимых ассигнований для них. Пожалуйста, проверьте эти отпуска и/или "
"ассигнования, прежде чем изменять контракт."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Договор с Сотрудником"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR Ввод данных о работе"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR Тип Ввода данных о работе"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Оплаты"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Статус"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Статус установлен на ‘Отправить’, когда создается запрос на отпуск.\n"
"Статус ‘Подтвердить’, когда запрос на отпуск подтверждается пользователем.\n"
"Статус ‘Отказаться’, когда запрос на отпуск отклонен менеджером.\n"
"Статус ‘Утвержден’, когда запрос на отпуск одобрен менеджером."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"В отгулах не указан сотрудник. Убедитесь, что вы вошли в нужную компанию."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Отпуск"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Тип отсутсвия"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Тип записи на работу"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Запись о работе, используемая в платежной ведомости."

122
i18n/sk.po Normal file
View File

@ -0,0 +1,122 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Wil Odoo, 2023\n"
"Language-Team: Slovak (https://app.transifex.com/odoo/teams/41243/sk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Základný zamestnanec"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Zamestnanecká zmluva"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Vstup do HR"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR typ pracovného záznamu"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Výplatná listina"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Stav"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Keď sa vytvorí žiadosť o voľno, stav je nastavený na „Odoslať“.\n"
"Stav je „Schváliť“, keď používateľ potvrdí žiadosť o voľné dni.\n"
"Stav je „Odmietnutý“, keď manažér odmietne žiadosť o voľné dni.\n"
"Stav je Schválené, keď manažér schváli žiadosť o voľné dni."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Voľné dni"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Typ voľných dní"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "typ pracovného záznamu"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

119
i18n/sl.po Normal file
View File

@ -0,0 +1,119 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Jasmina Macur <jasmina@hbs.si>, 2023
# Matjaz Mozetic <m.mozetic@matmoz.si>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Matjaz Mozetic <m.mozetic@matmoz.si>, 2023\n"
"Language-Team: Slovenian (https://app.transifex.com/odoo/teams/41243/sl/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sl\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Kadrovska pogodba"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Plačni seznam"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Odsotnost"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tip dopusta"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

142
i18n/sr.po Normal file
View File

@ -0,0 +1,142 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Martin Trigaux, 2023
# Dragan Vukosavljevic <dragan.vukosavljevic@gmail.com>, 2023
# Milan Bojovic <mbojovic@outlook.com>, 2023
# Nemanja Skadric, 2024
# コフスタジオ, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: コフスタジオ, 2024\n"
"Language-Team: Serbian (https://app.transifex.com/odoo/teams/41243/sr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sr\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Jedno odsustvo ne može biti postavljeno preko više ugovora sa različitim radnim rasporedima.\n"
"\n"
"Molimo vas da kreirate jedno odsustvo za svaki ugovor.\n"
"\n"
"Odsustvo:\n"
"%s\n"
"\n"
"Ugovori:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Osnovni zaposleni"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Menjanje ugovora o ovom zaposlenom menja njihov radni raspored u periodu "
"kada su već uzeli slobodne dane. Menjanje ovog radnog rasporeda menja "
"trajanje ovih slobodnih dana na način da zaposleni više nema potrebnu "
"alokaciju za njih. Molimo vas da pregledate ove slobodne dane i/ili "
"alokacije pre nego što promenite ugovor."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Ugovor Zapošljenog"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR Radni unos"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Vrsta unosa rada HR"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Platni Spisak"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Status je postavljen na 'To Submit', kada je zahtev za slobodne dane kreiran.\n"
"Status je 'To Approve', kada je zahtev za slobodne dane potvrđen od strane korisnika.\n"
"Status je 'Refused', kada je zahtev za slobodne dane odbijen od strane menadžera.\n"
"Status je 'Approved', kada je zahtev za slobodne dane odobren od strane menadžera."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Nema zaposlenog postavljenog na slobodne dane. Molimo vas da se uverite da "
"ste prijavljeni u ispravnu kompaniju."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Odsustvo"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Tip Pauze"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Vrsta unosa posla"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Radni unos koji se koristi u platnom listu."

121
i18n/sv.po Normal file
View File

@ -0,0 +1,121 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Chrille Hedberg <hedberg.chrille@gmail.com>, 2023
# Simon S, 2023
# Mikael Åkerberg <mikael.akerberg@mariaakerberg.com>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Martin Trigaux, 2023\n"
"Language-Team: Swedish (https://app.transifex.com/odoo/teams/41243/sv/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: sv\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Grundläggande anställd"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Anställningskontrakt"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Löner"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Status"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Ledighet"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Frånvarotyp"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

138
i18n/th.po Normal file
View File

@ -0,0 +1,138 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Rasareeyar Lappiam, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Rasareeyar Lappiam, 2023\n"
"Language-Team: Thai (https://app.transifex.com/odoo/teams/41243/th/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: th\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"ไม่สามารถกำหนดวันลาให้กับสัญญาหลายฉบับที่มีตารางการทำงานต่างกันได้\n"
"\n"
"โปรดสร้างวันหยุดหนึ่งครั้งสำหรับแต่ละสัญญา\n"
"\n"
"ระบบการลา:\n"
"%s\n"
"\n"
"ข้อมูลติดต่อ:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "พนักงานทั่วไป"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"การเปลี่ยนสัญญากับพนักงานรายนี้จะเปลี่ยนตารางการทำงานในช่วงเวลาที่พวกเขาได้ทำการลาไปแล้ว"
" "
"การเปลี่ยนตารางการทำงานนี้จะเปลี่ยนระยะเวลาของการลาในลักษณะที่พนักงานไม่ได้รับการจัดสรรที่จำเป็นสำหรับพวกเขาอีกต่อไป"
" โปรดตรวจสอบการลาและ/หรือการจัดสรรเหล่านี้ก่อนที่จะเปลี่ยนแปลงสัญญา"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "สัญญาของพนักงาน"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR การเข้างาน"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR ประเภทการเข้างาน"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "เงินเดือน"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "สถานะ"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"สถานะถูกตั้งค่าเป็น 'เพื่อส่ง' เมื่อมีการสร้างคำขอลาหยุด\n"
"สถานะคือ 'เพื่ออนุมัติ' เมื่อผู้ใช้ยืนยันคำขอลาหยุด\n"
"สถานะคือ 'ปฏิเสธ' เมื่อผู้จัดการปฏิเสธคำขอลาหยุด\n"
"สถานะคือ 'อนุมัติ' เมื่อคำขอลาหยุดได้รับการอนุมัติโดยผู้จัดการ"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"ไม่มีพนักงานตั้งเวลาการลา "
"โปรดตรวจสอบให้แน่ใจว่าคุณได้เข้าสู่ระบบบริษัทที่ถูกต้อง"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "การลา"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "ประเภทการลา"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "ประเภทการเข้างาน"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "รายการงานที่ใช้ในสลิปเงินเดือน"

135
i18n/tr.po Normal file
View File

@ -0,0 +1,135 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Ediz Duman <neps1192@gmail.com>, 2023
# Murat Kaplan <muratk@projetgrup.com>, 2023
# Ertuğrul Güreş <ertugrulg@projetgrup.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Ertuğrul Güreş <ertugrulg@projetgrup.com>, 2023\n"
"Language-Team: Turkish (https://app.transifex.com/odoo/teams/41243/tr/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: tr\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"İzin, farklı çalışma programlarına sahip birden fazla sözleşmede belirlenemez.\n"
"\n"
"Lütfen her sözleşme için bir kez izin oluşturun.\n"
"\n"
"İzin süresi:\n"
"%s\n"
"\n"
"Sözleşme:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Temel Personel"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Personel Sözleşmesi"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "İK Puantaj Kaydı"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "İK Puantaj Kaydı Türü"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Bordro"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Durumu"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"İzin talebi oluşturulduğunda durum 'Gönderilecek' olarak ayarlanır.\n"
"İzin talebi kullanıcı tarafından onaylandığında durum 'Onaylanacak' olur.\n"
"İzin talebi yönetici tarafından reddedildiğinde durum 'Reddedildi' olur.\n"
"İzin talebi yönetici tarafından onaylandığında durum 'Onaylandı' olur."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"İzin için belirlenmiş bir çalışan yoktur. Lütfen doğru şirkette oturum "
"açtığınızdan emin olun."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "İzin"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "İzin Türü"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Puantaj Kaydı Türü"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Maaş bordrosunda kullanılan puantaj kaydı."

139
i18n/uk.po Normal file
View File

@ -0,0 +1,139 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Alina Lisnenko <alina.lisnenko@erp.co.ua>, 2024\n"
"Language-Team: Ukrainian (https://app.transifex.com/odoo/teams/41243/uk/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: uk\n"
"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"Відпустка не може бути встановлена для кількох контрактів із різними графіками роботи.\n"
"\n"
"Будь ласка, створіть одну відпустку для кожного контракту.\n"
"\n"
"Відпустка:\n"
"%s\n"
"\n"
"Контракти:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Звичайний користувач"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"Зміна контракту з цим працівником змінює його робочий графік у період, коли "
"він уже пішов у відпустку. Зміна цього робочого графіка змінює тривалість "
"цих відпусток таким чином, що працівник більше не має необхідного розподілу "
"для них. Будь ласка, перегляньте ці відпустки та/або розподіл перед зміною "
"контракту."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Трудовий контракт"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Робочий запис відділу кадрів"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Тип робочого запису відділу кадрів"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Зарплата"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Статус"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"Статус встановлено на 'Відправити', коли створюється запит на відпустку.\n"
"Статус встановлено на 'Затвердити', коли запит на відпустку підтверджено користувачем.\n"
"Статус встановлено на 'Відмовлено', коли менеджер відхиляє запит на відпустку.\n"
"Статус встановлено на 'Затверджено', коли запит на відпустку підтверджено менеджером."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"На відпустці не вказано співробітника. Будь ласка, переконайтесь, що ви "
"ввійшли у правильну компанію."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Відпустка"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Тип відпустки"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Тип робочого запису"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "Робочий запис використовується у розрахунковому листі."

124
i18n/vi.po Normal file
View File

@ -0,0 +1,124 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Wil Odoo, 2023\n"
"Language-Team: Vietnamese (https://app.transifex.com/odoo/teams/41243/vi/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: vi\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "Người dùng cơ bản"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "Hợp đồng nhân viên"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR Work Entry"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "Loại công việc HR"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "Bảng lương"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "Trạng thái"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr ""
"Không có nhân viên được đặt trong nghỉ phép. Bảo đảm là bạn đã đăng nhập vào"
" đúng công ty."
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "Nghỉ phép"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "Loại Nghỉ phép"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "Work Entry Type"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr ""

132
i18n/zh_CN.po Normal file
View File

@ -0,0 +1,132 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: 山西清水欧度(QQ:54773801) <54773801@qq.com>, 2023\n"
"Language-Team: Chinese (China) (https://app.transifex.com/odoo/teams/41243/zh_CN/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_CN\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"不能在具有不同工作时间表的多个合同中设置休假。\n"
"\n"
"请为每份合同创建一个假期。\n"
"\n"
"休假时间:\n"
"%s\n"
"合同:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "基本雇员"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"更改该员工的合同会改变其已休假期间的工作安排。更改工作时间表会改变这些假期的持续时间,从而使该员工不再拥有所需的假期分配。请在更改合同前审查这些假期和/或分配。"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "员工合同"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "人力资源工作"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "人力资源工作类型"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "工资册"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "状态"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"创建休假请求时,状态设置为“提交”。\n"
"当用户确认休假请求时,状态为“待批准”\n"
"当经理拒绝请假停止请求时,状态为“拒绝”\n"
"当经理批准休假时,状态为“已批准”。"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr "休假时间上没有员工设置。请确保您登录在正确的公司。"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "休假"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "休假类型"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "工作条目类型"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "工资单中使用的工作条目。"

132
i18n/zh_TW.po Normal file
View File

@ -0,0 +1,132 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_holidays
#
# Translators:
# Wil Odoo, 2023
# Tony Ng, 2024
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 21:55+0000\n"
"PO-Revision-Date: 2023-10-26 23:09+0000\n"
"Last-Translator: Tony Ng, 2024\n"
"Language-Team: Chinese (Taiwan) (https://app.transifex.com/odoo/teams/41243/zh_TW/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Language: zh_TW\n"
"Plural-Forms: nplurals=1; plural=0;\n"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"A leave cannot be set across multiple contracts with different working schedules.\n"
"\n"
"Please create one time off for each contract.\n"
"\n"
"Time off:\n"
"%s\n"
"\n"
"Contracts:\n"
"%s"
msgstr ""
"不能在具有不同工作時間表的多個合同中設置休假。\n"
"\n"
"請為每份合同創建一個假期。\n"
"\n"
"休假時間:\n"
"%s\n"
"合約:\n"
"%s"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_employee_base
msgid "Basic Employee"
msgstr "一般員工"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_contract.py:0
#, python-format
msgid ""
"Changing the contract on this employee changes their working schedule in a "
"period they already took leaves. Changing this working schedule changes the "
"duration of these leaves in such a way the employee no longer has the "
"required allocation for them. Please review these leaves and/or allocations "
"before changing the contract."
msgstr ""
"更改該員工的合同會改變其已休假期間的工作安排。更改工作時間表會改變這些假期的持續時間,從而使該員工不再擁有所需的假期分配。請在更改合同前審查這些假期和/或分配。"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_contract
msgid "Employee Contract"
msgstr "員工契約"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR工時紀錄"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_work_entry_type
msgid "HR Work Entry Type"
msgstr "HR工時紀錄類型"
#. module: hr_work_entry_holidays
#: model_terms:ir.ui.view,arch_db:hr_work_entry_holidays.work_entry_type_leave_form_inherit
msgid "Payroll"
msgstr "薪酬管理"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid "Status"
msgstr "狀態"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry__leave_state
msgid ""
"The status is set to 'To Submit', when a time off request is created.\n"
"The status is 'To Approve', when time off request is confirmed by user.\n"
"The status is 'Refused', when time off request is refused by manager.\n"
"The status is 'Approved', when time off request is approved by manager."
msgstr ""
"建立休假請求時,狀態設定為「待提交」。\n"
"當使用者確認休假請求時,狀態為「待批准」\n"
"當經理退回請假停止請求時,狀態為「已退回」\n"
"當經理批准休假時,狀態為「已批准」。"
#. module: hr_work_entry_holidays
#. odoo-python
#: code:addons/hr_work_entry_holidays/models/hr_leave.py:0
#, python-format
msgid ""
"There is no employee set on the time off. Please make sure you're logged in "
"the correct company."
msgstr "沒有員工安排休假。請確保您登入了正確的公司。"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry__leave_id
msgid "Time Off"
msgstr "休假"
#. module: hr_work_entry_holidays
#: model:ir.model,name:hr_work_entry_holidays.model_hr_leave_type
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Time Off Type"
msgstr "休假類型"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,field_description:hr_work_entry_holidays.field_hr_leave_type__work_entry_type_id
msgid "Work Entry Type"
msgstr "工時紀錄類型"
#. module: hr_work_entry_holidays
#: model:ir.model.fields,help:hr_work_entry_holidays.field_hr_work_entry_type__leave_type_ids
msgid "Work entry used in the payslip."
msgstr "工資單中使用的工作條目。"

6
models/__init__.py Normal file
View File

@ -0,0 +1,6 @@
# -*- coding: utf-8 -*-
from . import hr_contract
from . import hr_employee_base
from . import hr_leave
from . import hr_work_entry

157
models/hr_contract.py Normal file
View File

@ -0,0 +1,157 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
import pytz
from datetime import date
from odoo import api, models, _
from odoo.exceptions import ValidationError
from odoo.osv.expression import OR
class HrContract(models.Model):
_inherit = 'hr.contract'
_description = 'Employee Contract'
@api.constrains('date_start', 'date_end', 'state')
def _check_contracts(self):
self._get_leaves()._check_contracts()
def _get_leaves(self):
return self.env['hr.leave'].search([
('state', '!=', 'refuse'),
('employee_id', 'in', self.mapped('employee_id.id')),
('date_from', '<=', max([end or date.max for end in self.mapped('date_end')])),
('date_to', '>=', min(self.mapped('date_start'))),
])
# override to add work_entry_type from leave
def _get_leave_work_entry_type(self, leave):
if leave.holiday_id:
return leave.holiday_id.holiday_status_id.work_entry_type_id
else:
return leave.work_entry_type_id
def _get_more_vals_leave_interval(self, interval, leaves):
result = super()._get_more_vals_leave_interval(interval, leaves)
for leave in leaves:
if interval[0] >= leave[0] and interval[1] <= leave[1]:
result.append(('leave_id', leave[2].holiday_id.id))
return result
def _get_interval_leave_work_entry_type(self, interval, leaves, bypassing_codes):
# returns the work entry time related to the leave that
# includes the whole interval.
# Overriden in hr_work_entry_contract_holiday to select the
# global time off first (eg: Public Holiday > Home Working)
self.ensure_one()
if 'work_entry_type_id' in interval[2] and interval[2].work_entry_type_id.code in bypassing_codes:
return interval[2].work_entry_type_id
interval_start = interval[0].astimezone(pytz.utc).replace(tzinfo=None)
interval_stop = interval[1].astimezone(pytz.utc).replace(tzinfo=None)
including_rcleaves = [l[2] for l in leaves if l[2] and interval_start >= l[2].date_from and interval_stop <= l[2].date_to]
including_global_rcleaves = [l for l in including_rcleaves if not l.holiday_id]
including_holiday_rcleaves = [l for l in including_rcleaves if l.holiday_id]
rc_leave = False
# Example: In CP200: Long term sick > Public Holidays (which is global)
if bypassing_codes:
bypassing_rc_leave = [l for l in including_holiday_rcleaves if l.holiday_id.holiday_status_id.work_entry_type_id.code in bypassing_codes]
else:
bypassing_rc_leave = []
if bypassing_rc_leave:
rc_leave = bypassing_rc_leave[0]
elif including_global_rcleaves:
rc_leave = including_global_rcleaves[0]
elif including_holiday_rcleaves:
rc_leave = including_holiday_rcleaves[0]
if rc_leave:
return self._get_leave_work_entry_type_dates(rc_leave, interval_start, interval_stop, self.employee_id)
return self.env.ref('hr_work_entry_contract.work_entry_type_leave')
def _get_sub_leave_domain(self):
domain = super()._get_sub_leave_domain()
return OR([
domain,
[('holiday_id.employee_id', 'in', self.employee_id.ids)] # see https://github.com/odoo/enterprise/pull/15091
])
def write(self, vals):
# Special case when setting a contract as running:
# If there is already a validated time off over another contract
# with a different schedule, split the time off, before the
# _check_contracts raises an issue.
# If there are existing leaves that are spanned by this new
# contract, update their resource calendar to the current one.
if not (vals.get("state") == 'open' or vals.get('kanban_state') == 'done'):
return super().write(vals)
specific_contracts = self.env['hr.contract']
all_new_leave_origin = []
all_new_leave_vals = []
leaves_state = {}
# In case a validation error is thrown due to holiday creation with the new resource calendar (which can
# increase their duration), we catch this error to display a more meaningful error message.
try:
for contract in self:
if vals.get('state') != 'open' and contract.state != 'draft':
# In case the current contract is not in the draft state, the kanban_state transition does not
# cause any leave changes.
continue
leaves = contract._get_leaves()
for leave in leaves:
# Get all overlapping contracts but exclude draft contracts that are not included in this transaction.
overlapping_contracts = leave._get_overlapping_contracts(contract_states=[
('state', '!=', 'cancel'),
'|', '|', ('id', 'in', self.ids),
('state', '!=', 'draft'),
('kanban_state', '=', 'done'),
])
if len(overlapping_contracts.resource_calendar_id) <= 1:
if leave.resource_calendar_id != overlapping_contracts.resource_calendar_id:
leave.resource_calendar_id = overlapping_contracts.resource_calendar_id
continue
if leave.id not in leaves_state:
leaves_state[leave.id] = leave.state
if leave.state != 'refuse':
leave.action_refuse()
super(HrContract, contract).write(vals)
specific_contracts += contract
for overlapping_contract in overlapping_contracts:
new_request_date_from = max(leave.request_date_from, overlapping_contract.date_start)
new_request_date_to = min(leave.request_date_to, overlapping_contract.date_end or date.max)
new_leave_vals = leave.copy_data({
'request_date_from': new_request_date_from,
'request_date_to': new_request_date_to,
'state': leaves_state[leave.id],
})[0]
new_leave = self.env['hr.leave'].new(new_leave_vals)
new_leave._compute_date_from_to()
new_leave._compute_duration()
# Could happen for part-time contract, that time off is not necessary
# anymore.
if new_leave.date_from < new_leave.date_to:
all_new_leave_origin.append(leave)
all_new_leave_vals.append(new_leave._convert_to_write(new_leave._cache))
if all_new_leave_vals:
new_leaves = self.env['hr.leave'].with_context(
tracking_disable=True,
mail_activity_automation_skip=True,
leave_fast_create=True,
leave_skip_state_check=True
).create(all_new_leave_vals)
new_leaves.filtered(lambda l: l.state in 'validate')._validate_leave_request()
for index, new_leave in enumerate(new_leaves):
new_leave.message_post_with_source(
'mail.message_origin_link',
render_values={'self': new_leave, 'origin': all_new_leave_origin[index]},
subtype_xmlid='mail.mt_note',
)
except ValidationError:
raise ValidationError(_("Changing the contract on this employee changes their working schedule in a period "
"they already took leaves. Changing this working schedule changes the duration of "
"these leaves in such a way the employee no longer has the required allocation for "
"them. Please review these leaves and/or allocations before changing the contract."))
return super(HrContract, self - specific_contracts).write(vals)

View File

@ -0,0 +1,14 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class HrEmployeeBase(models.AbstractModel):
_inherit = "hr.employee.base"
def write(self, vals):
# Prevent the resource calendar of leaves to be updated by a write to
# employee. When this module is enabled the resource calendar of
# leaves are determined by those of the contracts.
return super(HrEmployeeBase, self.with_context(no_leave_resource_calendar_update=True)).write(vals)

228
models/hr_leave.py Normal file
View File

@ -0,0 +1,228 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from collections import defaultdict
from datetime import datetime, time
from dateutil.relativedelta import relativedelta
from odoo import api, fields, models, _
from odoo.exceptions import ValidationError
from odoo.osv.expression import AND
from odoo.tools import format_date
class HrLeaveType(models.Model):
_inherit = 'hr.leave.type'
work_entry_type_id = fields.Many2one('hr.work.entry.type', string='Work Entry Type')
class HrLeave(models.Model):
_inherit = 'hr.leave'
def _prepare_resource_leave_vals(self):
vals = super(HrLeave, self)._prepare_resource_leave_vals()
vals['work_entry_type_id'] = self.holiday_status_id.work_entry_type_id.id
return vals
def _get_overlapping_contracts(self, contract_states=None):
self.ensure_one()
if contract_states is None:
contract_states = [
'|',
('state', 'not in', ['draft', 'cancel']),
'&',
('state', '=', 'draft'),
('kanban_state', '=', 'done')
]
domain = AND([contract_states, [
('employee_id', '=', self.employee_id.id),
('date_start', '<=', self.date_to),
'|',
('date_end', '>=', self.date_from),
'&',
('date_end', '=', False),
('state', '!=', 'close')
]])
return self.env['hr.contract'].sudo().search(domain)
@api.constrains('date_from', 'date_to')
def _check_contracts(self):
"""
A leave cannot be set across multiple contracts.
Note: a leave can be across multiple contracts despite this constraint.
It happens if a leave is correctly created (not across multiple contracts) but
contracts are later modifed/created in the middle of the leave.
"""
for holiday in self.filtered('employee_id'):
contracts = holiday._get_overlapping_contracts()
if len(contracts.resource_calendar_id) > 1:
state_labels = {e[0]: e[1] for e in contracts._fields['state']._description_selection(self.env)}
raise ValidationError(
_("""A leave cannot be set across multiple contracts with different working schedules.
Please create one time off for each contract.
Time off:
%s
Contracts:
%s""",
holiday.display_name,
'\n'.join(_(
"Contract %s from %s to %s, status: %s",
contract.name,
format_date(self.env, contract.date_start),
format_date(self.env, contract.date_start) if contract.date_end else _("undefined"),
state_labels[contract.state]
) for contract in contracts)))
def _cancel_work_entry_conflict(self):
"""
Creates a leave work entry for each hr.leave in self.
Check overlapping work entries with self.
Work entries completely included in a leave are archived.
e.g.:
|----- work entry ----|---- work entry ----|
|------------------- hr.leave ---------------|
||
vv
|----* work entry ****|
|************ work entry leave --------------|
"""
if not self:
return
# 1. Create a work entry for each leave
work_entries_vals_list = []
for leave in self:
contracts = leave.employee_id.sudo()._get_contracts(leave.date_from, leave.date_to, states=['open', 'close'])
for contract in contracts:
# Generate only if it has aleady been generated
if leave.date_to >= contract.date_generated_from and leave.date_from <= contract.date_generated_to:
work_entries_vals_list += contracts._get_work_entries_values(leave.date_from, leave.date_to)
new_leave_work_entries = self.env['hr.work.entry'].create(work_entries_vals_list)
if new_leave_work_entries:
# 2. Fetch overlapping work entries, grouped by employees
start = min(self.mapped('date_from'), default=False)
stop = max(self.mapped('date_to'), default=False)
work_entry_groups = self.env['hr.work.entry']._read_group([
('date_start', '<', stop),
('date_stop', '>', start),
('employee_id', 'in', self.employee_id.ids),
], ['employee_id'], ['id:recordset'])
work_entries_by_employee = {
employee.id: work_entries
for employee, work_entries in work_entry_groups
}
# 3. Archive work entries included in leaves
included = self.env['hr.work.entry']
overlappping = self.env['hr.work.entry']
for work_entries in work_entries_by_employee.values():
# Work entries for this employee
new_employee_work_entries = work_entries & new_leave_work_entries
previous_employee_work_entries = work_entries - new_leave_work_entries
# Build intervals from work entries
leave_intervals = new_employee_work_entries._to_intervals()
conflicts_intervals = previous_employee_work_entries._to_intervals()
# Compute intervals completely outside any leave
# Intervals are outside, but associated records are overlapping.
outside_intervals = conflicts_intervals - leave_intervals
overlappping |= self.env['hr.work.entry']._from_intervals(outside_intervals)
included |= previous_employee_work_entries - overlappping
overlappping.write({'leave_id': False})
included.write({'active': False})
def write(self, vals):
if not self:
return True
skip_check = not bool({'employee_id', 'state', 'request_date_from', 'request_date_to'} & vals.keys())
employee_ids = self.employee_id.ids
if 'employee_id' in vals and vals['employee_id']:
employee_ids += [vals['employee_id']]
# We check a whole day before and after the interval of the earliest
# request_date_from and latest request_date_end because date_{from,to}
# can lie in this range due to time zone reasons.
# (We can't use date_from and date_to as they are not yet computed at
# this point.)
start_dates = self.filtered('request_date_from').mapped('request_date_from') + [fields.Date.to_date(vals.get('request_date_from', False)) or datetime.max.date()]
stop_dates = self.filtered('request_date_to').mapped('request_date_to') + [fields.Date.to_date(vals.get('request_date_to', False)) or datetime.min.date()]
start = datetime.combine(min(start_dates) - relativedelta(days=1), time.min)
stop = datetime.combine(max(stop_dates) + relativedelta(days=1), time.max)
with self.env['hr.work.entry']._error_checking(start=start, stop=stop, skip=skip_check, employee_ids=employee_ids):
return super().write(vals)
@api.model_create_multi
def create(self, vals_list):
if any(vals.get('holiday_type', 'employee') == 'employee' and not vals.get('multi_employee', False) and not vals.get('employee_id', False) for vals in vals_list):
raise ValidationError(_("There is no employee set on the time off. Please make sure you're logged in the correct company."))
employee_ids = {v['employee_id'] for v in vals_list if v.get('employee_id')}
# We check a whole day before and after the interval of the earliest
# request_date_from and latest request_date_end because date_{from,to}
# can lie in this range due to time zone reasons.
# (We can't use date_from and date_to as they are not yet computed at
# this point.)
start_dates = [fields.Date.to_date(v.get('request_date_from')) for v in vals_list if v.get('request_date_from')]
stop_dates = [fields.Date.to_date(v.get('request_date_to')) for v in vals_list if v.get('request_date_to')]
start = datetime.combine(min(start_dates, default=datetime.max.date()) - relativedelta(days=1), time.min)
stop = datetime.combine(max(stop_dates, default=datetime.min.date()) + relativedelta(days=1), time.max)
with self.env['hr.work.entry']._error_checking(start=start, stop=stop, employee_ids=employee_ids):
return super().create(vals_list)
def action_confirm(self):
start = min(self.mapped('date_from'), default=False)
stop = max(self.mapped('date_to'), default=False)
with self.env['hr.work.entry']._error_checking(start=start, stop=stop, employee_ids=self.employee_id.ids):
return super().action_confirm()
def _get_leaves_on_public_holiday(self):
return super()._get_leaves_on_public_holiday().filtered(
lambda l: l.holiday_status_id.work_entry_type_id.code not in ['LEAVE110', 'LEAVE210', 'LEAVE280'])
def _validate_leave_request(self):
super(HrLeave, self)._validate_leave_request()
self.sudo()._cancel_work_entry_conflict() # delete preexisting conflicting work_entries
return True
def action_refuse(self):
"""
Override to archive linked work entries and recreate attendance work entries
where the refused leave was.
"""
res = super(HrLeave, self).action_refuse()
self._regen_work_entries()
return res
def _action_user_cancel(self, reason):
res = super()._action_user_cancel(reason)
self.sudo()._regen_work_entries()
return res
def _regen_work_entries(self):
"""
Called when the leave is refused or cancelled to regenerate the work entries properly for that period.
"""
work_entries = self.env['hr.work.entry'].sudo().search([('leave_id', 'in', self.ids)])
work_entries.write({'active': False})
# Re-create attendance work entries
vals_list = []
for work_entry in work_entries:
vals_list += work_entry.contract_id._get_work_entries_values(work_entry.date_start, work_entry.date_stop)
self.env['hr.work.entry'].create(vals_list)
def _compute_can_cancel(self):
super()._compute_can_cancel()
cancellable_leaves = self.filtered('can_cancel')
work_entries = self.env['hr.work.entry'].sudo().search([('state', '=', 'validated'), ('leave_id', 'in', cancellable_leaves.ids)])
leave_ids = work_entries.mapped('leave_id').ids
for leave in cancellable_leaves:
leave.can_cancel = leave.id not in leave_ids

86
models/hr_work_entry.py Normal file
View File

@ -0,0 +1,86 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import fields, models
class HrWorkEntry(models.Model):
_inherit = 'hr.work.entry'
leave_id = fields.Many2one('hr.leave', string='Time Off')
leave_state = fields.Selection(related='leave_id.state')
def _is_duration_computed_from_calendar(self):
return super()._is_duration_computed_from_calendar() or bool(not self.work_entry_type_id and self.leave_id)
def write(self, vals):
if 'state' in vals and vals['state'] == 'cancelled':
self.mapped('leave_id').filtered(lambda l: l.state != 'refuse').action_refuse()
return super().write(vals)
def _reset_conflicting_state(self):
super()._reset_conflicting_state()
attendances = self.filtered(lambda w: w.work_entry_type_id and not w.work_entry_type_id.is_leave)
attendances.write({'leave_id': False})
def _check_if_error(self):
res = super()._check_if_error()
conflict_with_leaves = self._compute_conflicts_leaves_to_approve()
return res or conflict_with_leaves
def _compute_conflicts_leaves_to_approve(self):
if not self:
return False
self.flush_recordset(['date_start', 'date_stop', 'employee_id', 'active'])
self.env['hr.leave'].flush_model(['date_from', 'date_to', 'state', 'employee_id'])
query = """
SELECT
b.id AS work_entry_id,
l.id AS leave_id
FROM hr_work_entry b
INNER JOIN hr_leave l ON b.employee_id = l.employee_id
WHERE
b.active = TRUE AND
b.id IN %s AND
l.date_from < b.date_stop AND
l.date_to > b.date_start AND
l.state IN ('confirm', 'validate1');
"""
self.env.cr.execute(query, [tuple(self.ids)])
conflicts = self.env.cr.dictfetchall()
for res in conflicts:
self.browse(res.get('work_entry_id')).write({
'state': 'conflict',
'leave_id': res.get('leave_id')
})
return bool(conflicts)
def action_approve_leave(self):
self.ensure_one()
if self.leave_id:
# Already confirmed once
if self.leave_id.state == 'validate1':
self.leave_id.action_validate()
# Still in confirmed state
else:
self.leave_id.action_approve()
# If double validation, still have to validate it again
if self.leave_id.validation_type == 'both':
self.leave_id.action_validate()
def action_refuse_leave(self):
self.ensure_one()
leave_sudo = self.leave_id.sudo()
if leave_sudo:
leave_sudo.action_refuse()
class HrWorkEntryType(models.Model):
_inherit = 'hr.work.entry.type'
_description = 'HR Work Entry Type'
leave_type_ids = fields.One2many(
'hr.leave.type', 'work_entry_type_id', string='Time Off Type',
help="Work entry used in the payslip.")

8
tests/__init__.py Normal file
View File

@ -0,0 +1,8 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import test_leave
from . import test_multi_contract
from . import test_payslip_holidays_computation
from . import test_performance
from . import test_work_entry

91
tests/common.py Normal file
View File

@ -0,0 +1,91 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime
from odoo import Command
from odoo.fields import Datetime
from odoo.addons.hr_work_entry_contract.tests.common import TestWorkEntryBase
class TestWorkEntryHolidaysBase(TestWorkEntryBase):
@classmethod
def setUpClass(cls):
super(TestWorkEntryHolidaysBase, cls).setUpClass()
cls.leave_type = cls.env['hr.leave.type'].create({
'name': 'Legal Leaves',
'time_type': 'leave',
'requires_allocation': 'no',
'responsible_ids': [Command.link(cls.env.ref('base.user_admin').id)],
'work_entry_type_id': cls.work_entry_type_leave.id
})
cls.env.ref('base.user_admin').notification_type = 'inbox'
# I create a new employee "Jules"
cls.jules_emp = cls.env['hr.employee'].create({
'name': 'Jules',
'gender': 'male',
'birthday': '1984-05-01',
'country_id': cls.env.ref('base.be').id,
'department_id': cls.dep_rd.id,
})
cls.calendar_35h = cls.env['resource.calendar'].create({
'name': '35h calendar',
'attendance_ids': [
(0, 0, {'name': 'Monday Morning', 'dayofweek': '0', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Monday Lunch', 'dayofweek': '0', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Monday Evening', 'dayofweek': '0', 'hour_from': 13, 'hour_to': 16, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Tuesday Morning', 'dayofweek': '1', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Tuesday Lunch', 'dayofweek': '1', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Tuesday Evening', 'dayofweek': '1', 'hour_from': 13, 'hour_to': 16, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Wednesday Morning', 'dayofweek': '2', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Wednesday Lunch', 'dayofweek': '2', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Wednesday Evening', 'dayofweek': '2', 'hour_from': 13, 'hour_to': 16, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Thursday Morning', 'dayofweek': '3', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Thursday Lunch', 'dayofweek': '3', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Thursday Evening', 'dayofweek': '3', 'hour_from': 13, 'hour_to': 16, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Friday Morning', 'dayofweek': '4', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Friday Lunch', 'dayofweek': '4', 'hour_from': 12, 'hour_to': 13, 'day_period': 'lunch'}),
(0, 0, {'name': 'Friday Evening', 'dayofweek': '4', 'hour_from': 13, 'hour_to': 16, 'day_period': 'afternoon'})
]
})
cls.calendar_40h = cls.env['resource.calendar'].create({'name': 'Default calendar'})
# This contract ends at the 15th of the month
cls.contract_cdd = cls.env['hr.contract'].create({ # Fixed term contract
'date_end': datetime.strptime('2015-11-15', '%Y-%m-%d'),
'date_start': datetime.strptime('2015-01-01', '%Y-%m-%d'),
'name': 'First CDD Contract for Jules',
'resource_calendar_id': cls.calendar_40h.id,
'wage': 5000.0,
'employee_id': cls.jules_emp.id,
'state': 'open',
'kanban_state': 'blocked',
'date_generated_from': datetime.strptime('2015-11-16', '%Y-%m-%d'),
'date_generated_to': datetime.strptime('2015-11-16', '%Y-%m-%d'),
})
# This contract starts the next day
cls.contract_cdi = cls.env['hr.contract'].create({
'date_start': datetime.strptime('2015-11-16', '%Y-%m-%d'),
'name': 'Contract for Jules',
'resource_calendar_id': cls.calendar_35h.id,
'wage': 5000.0,
'employee_id': cls.jules_emp.id,
'state': 'open',
'kanban_state': 'normal',
'date_generated_from': datetime.strptime('2015-11-15', '%Y-%m-%d'),
'date_generated_to': datetime.strptime('2015-11-15', '%Y-%m-%d'),
})
@classmethod
def create_leave(cls, date_from=None, date_to=None):
return cls.env['hr.leave'].create({
'name': 'Holiday!!!',
'employee_id': cls.richard_emp.id,
'holiday_status_id': cls.leave_type.id,
'request_date_to': date_to or Datetime.today(),
'request_date_from': date_from or Datetime.today(),
})

188
tests/test_leave.py Normal file
View File

@ -0,0 +1,188 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, date
from dateutil.relativedelta import relativedelta
from freezegun import freeze_time
from odoo import SUPERUSER_ID
from odoo.addons.hr_work_entry_holidays.tests.common import TestWorkEntryHolidaysBase
from odoo.tests import tagged
@tagged('test_leave')
class TestWorkEntryLeave(TestWorkEntryHolidaysBase):
def test_resource_leave_has_work_entry_type(self):
leave = self.create_leave()
resource_leave = leave._create_resource_leave()
self.assertEqual(resource_leave.work_entry_type_id, self.leave_type.work_entry_type_id, "it should have the corresponding work_entry type")
def test_resource_leave_in_contract_calendar(self):
other_calendar = self.env['resource.calendar'].create({'name': 'New calendar'})
contract = self.richard_emp.contract_ids[0]
contract.resource_calendar_id = other_calendar
contract.state = 'open' # this set richard's calendar to New calendar
leave = self.create_leave()
resource_leave = leave._create_resource_leave()
self.assertEqual(len(resource_leave), 1, "it should have created only one resource leave")
self.assertEqual(resource_leave.work_entry_type_id, self.leave_type.work_entry_type_id, "it should have the corresponding work_entry type")
def test_create_mark_conflicting_work_entries(self):
work_entry = self.create_work_entry(datetime(2019, 10, 10, 9, 0), datetime(2019, 10, 10, 12, 0))
self.assertNotEqual(work_entry.state, 'conflict', "It should not be conflicting")
leave = self.create_leave(date(2019, 10, 10), date(2019, 10, 10))
self.assertEqual(work_entry.state, 'conflict', "It should be conflicting")
self.assertEqual(work_entry.leave_id, leave, "It should be linked to conflicting leave")
def test_write_mark_conflicting_work_entries(self):
leave = self.create_leave(date(2019, 10, 10), datetime(2019, 10, 10))
work_entry = self.create_work_entry(leave.date_from - relativedelta(days=1), leave.date_from) # the day before
self.assertNotEqual(work_entry.state, 'conflict', "It should not be conflicting")
leave.request_date_from = date(2019, 10, 9) # now it conflicts
self.assertEqual(work_entry.state, 'conflict', "It should be conflicting")
self.assertEqual(work_entry.leave_id, leave, "It should be linked to conflicting leave")
def test_validate_leave_with_overlap(self):
contract = self.richard_emp.contract_ids[:1]
contract.state = 'open'
contract.date_generated_from = datetime(2019, 10, 10, 9, 0)
contract.date_generated_to = datetime(2019, 10, 10, 9, 0)
leave = self.create_leave(datetime(2019, 10, 10, 9, 0), datetime(2019, 10, 12, 18, 0))
work_entry_1 = self.create_work_entry(datetime(2019, 10, 8, 9, 0), datetime(2019, 10, 11, 9, 0)) # overlaps
work_entry_2 = self.create_work_entry(datetime(2019, 10, 11, 9, 0), datetime(2019, 10, 11, 10, 0)) # included
adjacent_work_entry = self.create_work_entry(datetime(2019, 10, 12, 18, 0), datetime(2019, 10, 13, 18, 0)) # after and don't overlap
leave.action_validate()
self.assertNotEqual(adjacent_work_entry.state, 'conflict', "It should not conflict")
self.assertFalse(work_entry_2.active, "It should have been archived")
self.assertEqual(work_entry_1.state, 'conflict', "It should conflict")
self.assertFalse(work_entry_1.leave_id, "It should not be linked to the leave")
leave_work_entry = self.env['hr.work.entry'].search([('leave_id', '=', leave.id)]) - work_entry_1
self.assertTrue(leave_work_entry.work_entry_type_id.is_leave, "It should have created a leave work entry")
self.assertEqual(leave_work_entry[:1].state, 'conflict', "The leave work entry should conflict")
def test_conflict_move_work_entry(self):
leave = self.create_leave(datetime(2019, 10, 10, 9, 0), datetime(2019, 10, 12, 18, 0))
work_entry = self.create_work_entry(datetime(2019, 10, 8, 9, 0), datetime(2019, 10, 11, 9, 0)) # overlaps
self.assertEqual(work_entry.state, 'conflict', "It should be conflicting")
self.assertEqual(work_entry.leave_id, leave, "It should be linked to conflicting leave")
work_entry.date_stop = datetime(2019, 10, 9, 9, 0) # no longer overlaps
self.assertNotEqual(work_entry.state, 'conflict', "It should not be conflicting")
self.assertFalse(work_entry.leave_id, "It should not be linked to any leave")
def test_validate_leave_without_overlap(self):
contract = self.richard_emp.contract_ids[:1]
contract.state = 'open'
contract.date_generated_from = datetime(2019, 10, 10, 9, 0)
contract.date_generated_to = datetime(2019, 10, 10, 9, 0)
leave = self.create_leave(datetime(2019, 10, 10, 9, 0), datetime(2019, 10, 12, 18, 0))
work_entry = self.create_work_entry(datetime(2019, 10, 11, 9, 0), datetime(2019, 10, 11, 10, 0)) # included
leave.action_validate()
self.assertFalse(work_entry[:1].active, "It should have been archived")
leave_work_entry = self.env['hr.work.entry'].search([('leave_id', '=', leave.id)])
self.assertTrue(leave_work_entry.work_entry_type_id.is_leave, "It should have created a leave work entry")
self.assertNotEqual(leave_work_entry[:1].state, 'conflict', "The leave work entry should not conflict")
def test_refuse_leave(self):
leave = self.create_leave(date(2019, 10, 10), date(2019, 10, 10))
work_entries = self.richard_emp.contract_id._generate_work_entries(datetime(2019, 10, 10, 0, 0, 0), datetime(2019, 10, 10, 23, 59, 59))
adjacent_work_entry = self.create_work_entry(leave.date_from - relativedelta(days=3), leave.date_from)
self.assertTrue(all(work_entries.mapped(lambda w: w.state == 'conflict')), "Attendance work entries should all conflict with the leave")
self.assertNotEqual(adjacent_work_entry.state, 'conflict', "Non overlapping work entry should not conflict")
leave.action_refuse()
self.assertTrue(all(work_entries.mapped(lambda w: w.state != 'conflict')), "Attendance work entries should no longer conflict")
self.assertNotEqual(adjacent_work_entry.state, 'conflict', "Non overlapping work entry should not conflict")
def test_refuse_approved_leave(self):
start = datetime(2019, 10, 10, 6, 0)
end = datetime(2019, 10, 10, 18, 0)
# Setup contract generation state
contract = self.richard_emp.contract_ids[:1]
contract.state = 'open'
contract.date_generated_from = start - relativedelta(hours=1)
contract.date_generated_to = start - relativedelta(hours=1)
leave = self.create_leave(start, end)
leave.action_validate()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.richard_emp.id), ('date_start', '<=', end), ('date_stop', '>=', start)])
leave_work_entry = self.richard_emp.contract_ids.generate_work_entries(start.date(), end.date())
self.assertEqual(leave_work_entry[:1].leave_id, leave)
leave.action_refuse()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.richard_emp.id), ('date_start', '>=', start), ('date_stop', '<=', end)])
self.assertFalse(leave_work_entry[:1].filtered('leave_id').active)
self.assertEqual(len(work_entries), 2, "Attendance work entries should have been re-created (morning and afternoon)")
self.assertTrue(all(work_entries.mapped(lambda w: w.state != 'conflict')), "Attendance work entries should not conflict")
def test_archived_work_entry_conflict(self):
self.create_leave(datetime(2019, 10, 10, 9, 0), datetime(2019, 10, 10, 18, 0))
work_entry = self.create_work_entry(datetime(2019, 10, 10, 9, 0), datetime(2019, 10, 10, 18, 0))
self.assertTrue(work_entry.active)
self.assertEqual(work_entry.state, 'conflict', "Attendance work entries should conflict with the leave")
work_entry.toggle_active()
self.assertEqual(work_entry.state, 'cancelled', "Attendance work entries should be cancelled and not conflict")
self.assertFalse(work_entry.active)
def test_work_entry_cancel_leave(self):
user = self.env['res.users'].create({
'name': 'User Employee',
'login': 'jul',
'password': 'julpassword',
})
self.richard_emp.user_id = user
self.richard_emp.contract_ids.state = 'open'
with freeze_time(datetime(2022, 3, 21)):
# Tests that cancelling a leave archives the work entries.
leave = self.env['hr.leave'].with_user(user).create({
'name': 'Sick 1 week during christmas snif',
'employee_id': self.richard_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': date(2022, 3, 22),
'request_date_to': date(2022, 3, 25),
})
leave.with_user(SUPERUSER_ID).action_validate()
# No work entries exist yet
self.assertTrue(leave.can_cancel, "The leave should still be cancellable")
# can not create in the future
self.richard_emp.contract_ids.generate_work_entries(date(2022, 3, 21), date(2022, 3, 25))
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.richard_emp.id)])
leave.invalidate_recordset(['can_cancel'])
# Work entries exist but are not locked yet
self.assertTrue(leave.can_cancel, "The leave should still be cancellable")
work_entries.action_validate()
leave.invalidate_recordset(['can_cancel'])
# Work entries locked
self.assertFalse(leave.can_cancel, "The leave should not be cancellable")
def test_work_entry_generation_company_time_off(self):
existing_leaves = self.env['hr.leave'].search([])
existing_leaves.action_refuse()
existing_leaves.action_draft()
existing_leaves.unlink()
start = date(2022, 8, 1)
end = date(2022, 8, 31)
self.contract_cdi.generate_work_entries(start, end)
work_entries = self.env['hr.work.entry'].search([
('employee_id', '=', self.jules_emp.id),
('date_start', '>=', start),
('date_stop', '<=', end),
])
self.assertEqual(len(work_entries.work_entry_type_id), 1)
leave = self.env['hr.leave'].create({
'name': 'Holiday!!!',
'holiday_type': 'company',
'mode_company_id': self.env.company.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': datetime(2022, 8, 8),
'request_date_to': datetime(2022, 8, 8),
})
leave.action_validate()
work_entries = self.env['hr.work.entry'].search([
('employee_id', '=', self.jules_emp.id),
('date_start', '>=', start),
('date_stop', '<=', end),
])
self.assertEqual(len(work_entries.work_entry_type_id), 2)

View File

@ -0,0 +1,271 @@
# # -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, date, time
from odoo.exceptions import ValidationError
from odoo.tests import tagged
from odoo.addons.hr_work_entry_holidays.tests.common import TestWorkEntryHolidaysBase
@tagged('work_entry_multi_contract')
class TestWorkEntryHolidaysMultiContract(TestWorkEntryHolidaysBase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.leave_type = cls.env['hr.leave.type'].create({
'name': 'Legal Leaves',
'time_type': 'leave',
'requires_allocation': 'no',
'work_entry_type_id': cls.work_entry_type_leave.id
})
def create_leave(self, start, end):
return self.env['hr.leave'].create({
'name': 'Doctor Appointment',
'employee_id': self.jules_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': start,
'request_date_to': end,
})
def test_multi_contract_holiday(self):
# Leave during second contract
leave = self.create_leave(datetime(2015, 11, 17), datetime(2015, 11, 20))
leave.action_approve()
start = datetime(2015, 11, 1, 0, 0, 0)
end_generate = datetime(2015, 11, 30, 23, 59, 59)
work_entries = self.jules_emp.contract_ids._generate_work_entries(start, end_generate)
work_entries.action_validate()
work_entries = work_entries.filtered(lambda we: we.contract_id == self.contract_cdi)
work = work_entries.filtered(lambda line: line.work_entry_type_id == self.env.ref('hr_work_entry.work_entry_type_attendance'))
leave = work_entries.filtered(lambda line: line.work_entry_type_id == self.work_entry_type_leave)
self.assertEqual(sum(work.mapped('duration')), 49, "It should be 49 hours of work this month for this contract")
self.assertEqual(sum(leave.mapped('duration')), 28, "It should be 28 hours of leave this month for this contract")
def test_move_contract_in_leave(self):
# test move contract dates such that a leave is across two contracts
start = datetime.strptime('2015-11-05 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-12-15 18:00:00', '%Y-%m-%d %H:%M:%S')
self.contract_cdi.write({'date_start': datetime.strptime('2015-12-30', '%Y-%m-%d').date()})
# begins during contract, ends after contract
leave = self.create_leave(start, end)
leave.action_approve()
# move contract in the middle of the leave
with self.assertRaises(ValidationError):
self.contract_cdi.date_start = datetime.strptime('2015-11-17', '%Y-%m-%d').date()
def test_create_contract_in_leave(self):
# test create contract such that a leave is across two contracts
start = datetime.strptime('2015-11-05 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-12-15 18:00:00', '%Y-%m-%d %H:%M:%S')
self.contract_cdi.date_start = datetime.strptime('2015-12-30', '%Y-%m-%d').date() # remove this contract to be able to create the leave
# begins during contract, ends after contract
leave = self.create_leave(start, end)
leave.action_approve()
# move contract in the middle of the leave
with self.assertRaises(ValidationError):
self.env['hr.contract'].create({
'date_start': datetime.strptime('2015-11-30', '%Y-%m-%d').date(),
'name': 'Contract for Richard',
'resource_calendar_id': self.calendar_40h.id,
'wage': 5000.0,
'employee_id': self.jules_emp.id,
'state': 'open',
'date_generated_from': datetime.strptime('2015-11-30', '%Y-%m-%d'),
'date_generated_to': datetime.strptime('2015-11-30', '%Y-%m-%d'),
})
def test_leave_outside_contract(self):
# Leave outside contract => should not raise
start = datetime.strptime('2014-10-18 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2014-10-20 09:00:00', '%Y-%m-%d %H:%M:%S')
self.create_leave(start, end)
# begins before contract, ends during contract => should not raise
start = datetime.strptime('2014-10-25 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-01-15 18:00:00', '%Y-%m-%d %H:%M:%S')
self.create_leave(start, end)
# begins during contract, ends after contract => should not raise
self.contract_cdi.date_end = datetime.strptime('2015-11-30', '%Y-%m-%d').date()
start = datetime.strptime('2015-11-25 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-12-5 18:00:00', '%Y-%m-%d %H:%M:%S')
self.create_leave(start, end)
def test_no_leave_overlapping_contracts(self):
with self.assertRaises(ValidationError):
# Overlap two contracts
start = datetime.strptime('2015-11-12 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-11-17 18:00:00', '%Y-%m-%d %H:%M:%S')
self.create_leave(start, end)
# Leave inside fixed term contract => should not raise
start = datetime.strptime('2015-11-04 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-11-07 09:00:00', '%Y-%m-%d %H:%M:%S')
self.create_leave(start, end)
# Leave inside contract (no end) => should not raise
start = datetime.strptime('2015-11-18 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-11-20 09:00:00', '%Y-%m-%d %H:%M:%S')
self.create_leave(start, end)
def test_leave_request_next_contracts(self):
start = datetime.strptime('2015-11-23 07:00:00', '%Y-%m-%d %H:%M:%S')
end = datetime.strptime('2015-11-24 18:00:00', '%Y-%m-%d %H:%M:%S')
leave = self.create_leave(start, end)
self.assertEqual(leave.number_of_hours_display, 14, "It should count hours according to the future contract.")
def test_leave_multi_contracts_same_schedule(self):
# Allow leaves overlapping multiple contracts if same
# resource calendar
leave = self.create_leave(datetime(2022, 6, 1, 7, 0, 0), datetime(2022, 6, 30, 18, 0, 0))
leave.action_approve()
self.contract_cdi.date_end = date(2022, 6, 15)
new_contract_cdi = self.env['hr.contract'].create({
'date_start': date(2022, 6, 16),
'name': 'New Contract for Jules',
'resource_calendar_id': self.calendar_35h.id,
'wage': 5000.0,
'employee_id': self.jules_emp.id,
'state': 'draft',
'kanban_state': 'normal',
})
new_contract_cdi.state = 'open'
def test_leave_multi_contracts_split(self):
# Check that setting a contract as running correctly
# splits the existing time off for this employee that
# are ovelapping with another contract with another
# working schedule
leave = self.create_leave(date(2022, 6, 1), date(2022, 6, 30))
leave.action_approve()
self.assertEqual(leave.number_of_days, 22)
self.assertEqual(leave.state, 'validate')
self.contract_cdi.date_end = date(2022, 6, 15)
new_contract_cdi = self.env['hr.contract'].create({
'date_start': date(2022, 6, 16),
'name': 'New Contract for Jules',
'resource_calendar_id': self.calendar_40h.id,
'wage': 5000.0,
'employee_id': self.jules_emp.id,
'state': 'draft',
'kanban_state': 'normal',
})
new_contract_cdi.state = 'open'
leaves = self.env['hr.leave'].search([('employee_id', '=', self.jules_emp.id)])
self.assertEqual(len(leaves), 3)
self.assertEqual(leave.state, 'refuse')
first_leave = leaves.filtered(lambda l: l.date_from.day == 1 and l.date_to.day == 15)
self.assertEqual(first_leave.state, 'validate')
self.assertEqual(first_leave.number_of_days, 11)
second_leave = leaves.filtered(lambda l: l.date_from.day == 16 and l.date_to.day == 30)
self.assertEqual(second_leave.state, 'validate')
self.assertEqual(second_leave.number_of_days, 11)
def test_contract_traceability_calculate_nbr_leave(self):
"""
The goal is to test the traceability of contracts in the past,
i.e. to check that expired contracts are taken into account
to ensure the consistency of leaves (number of days/hours) in the past.
"""
calendar_full, calendar_partial = self.env['resource.calendar'].create([
{
'name': 'Full time (5/5)',
},
{
'name': 'Partial time (4/5)',
'attendance_ids': [
(0, 0, {'name': 'Monday Morning', 'dayofweek': '0', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Monday Evening', 'dayofweek': '0', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Tuesday Morning', 'dayofweek': '1', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Tuesday Evening', 'dayofweek': '1', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
# Does not work on Wednesdays
(0, 0, {'name': 'Thursday Morning', 'dayofweek': '3', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Thursday Evening', 'dayofweek': '3', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'}),
(0, 0, {'name': 'Friday Morning', 'dayofweek': '4', 'hour_from': 8, 'hour_to': 12, 'day_period': 'morning'}),
(0, 0, {'name': 'Friday Evening', 'dayofweek': '4', 'hour_from': 13, 'hour_to': 17, 'day_period': 'afternoon'})
]
},
])
employee = self.env['hr.employee'].create({
'name': 'Employee',
'resource_calendar_id': calendar_partial.id,
})
self.env['hr.contract'].create([
{
'name': 'Full time (5/5)',
'employee_id': employee.id,
'date_start': datetime.strptime('2023-01-01', '%Y-%m-%d').date(),
'date_end': datetime.strptime('2023-06-30', '%Y-%m-%d').date(),
'resource_calendar_id': calendar_full.id,
'wage': 1000.0,
'state': 'close', # Old contract
'date_generated_from': datetime.strptime('2023-01-01', '%Y-%m-%d'),
'date_generated_to': datetime.strptime('2023-01-01', '%Y-%m-%d'),
},
{
'name': 'Partial time (4/5)',
'employee_id': employee.id,
'date_start': datetime.strptime('2023-07-01', '%Y-%m-%d').date(),
'date_end': datetime.strptime('2023-12-31', '%Y-%m-%d').date(),
'resource_calendar_id': calendar_partial.id,
'wage': 1000.0,
'state': 'open', # Current contract
'date_generated_from': datetime.strptime('2023-07-01', '%Y-%m-%d'),
'date_generated_to': datetime.strptime('2023-07-01', '%Y-%m-%d'),
},
])
leave_type = self.env['hr.leave.type'].create({
'name': 'Leave Type',
'time_type': 'leave',
'requires_allocation': 'yes',
'leave_validation_type': 'hr',
'request_unit': 'day',
})
allocation = self.env['hr.leave.allocation'].create({
'name': 'Allocation',
'employee_id': employee.id,
'holiday_status_id': leave_type.id,
'number_of_days': 10,
'state': 'confirm',
'date_from': datetime.strptime('2023-01-01', '%Y-%m-%d').date(),
'date_to': datetime.strptime('2023-12-31', '%Y-%m-%d').date(),
})
allocation.action_validate()
leave_during_full_time, leave_during_partial_time = self.env['hr.leave'].create([
{
'employee_id': employee.id,
'holiday_status_id': leave_type.id,
'request_date_from': '2023-1-3', # Tuesday
'request_date_to': '2023-1-5', # Thursday
},
{
'employee_id': employee.id,
'holiday_status_id': leave_type.id,
'request_date_from': '2023-12-5', # Tuesday
'request_date_to': '2023-12-7', # Thursday
},
])
self.assertEqual(leave_during_full_time.number_of_days_display, 3)
self.assertEqual(leave_during_partial_time.number_of_days_display, 2)
self.assertEqual(leave_during_full_time.number_of_hours_display, 24)
self.assertEqual(leave_during_partial_time.number_of_hours_display, 16)
# Simulate the unit change days/hours of the time off type
(leave_during_full_time + leave_during_partial_time)._compute_duration()
self.assertEqual(leave_during_full_time.number_of_days_display, 3)
self.assertEqual(leave_during_partial_time.number_of_days_display, 2)
(leave_during_full_time + leave_during_partial_time)._compute_number_of_hours_display()
self.assertEqual(leave_during_full_time.number_of_hours_display, 24)
self.assertEqual(leave_during_partial_time.number_of_hours_display, 16)
# Check after leave approval
(leave_during_full_time + leave_during_partial_time).action_approve()
(leave_during_full_time + leave_during_partial_time)._compute_number_of_hours_display()
self.assertEqual(leave_during_full_time.number_of_hours_display, 24)
self.assertEqual(leave_during_partial_time.number_of_hours_display, 16)

View File

@ -0,0 +1,38 @@
# # -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, date
from odoo.addons.hr_work_entry_holidays.tests.common import TestWorkEntryHolidaysBase
class TestPayslipHolidaysComputation(TestWorkEntryHolidaysBase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.leave_type = cls.env['hr.leave.type'].create({
'name': 'Legal Leaves',
'time_type': 'leave',
'requires_allocation': 'no',
'work_entry_type_id': cls.work_entry_type_leave.id
})
def test_work_data(self):
start = datetime(2015, 11, 8, 8, 0)
end = datetime(2015, 11, 10, 22, 0)
leave = self.env['hr.leave'].create({
'name': 'Doctor Appointment',
'employee_id': self.jules_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': start,
'request_date_to': end,
})
leave.action_approve()
work_entries = self.jules_emp.contract_ids.generate_work_entries(date(2015, 11, 10), date(2015, 11, 21))
work_entries.action_validate()
work_entries = work_entries.filtered(lambda we: we.work_entry_type_id in self.env.ref('hr_work_entry.work_entry_type_attendance'))
sum_hours = sum(work_entries.mapped('duration'))
self.assertEqual(sum_hours, 59, 'It should count 59 attendance hours') # 24h first contract + 35h second contract

116
tests/test_performance.py Normal file
View File

@ -0,0 +1,116 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import date, datetime
from odoo.addons.hr_work_entry_holidays.tests.common import TestWorkEntryHolidaysBase
from odoo.tests.common import users, warmup, tagged
@tagged('work_entry_holidays_perf')
class TestWorkEntryHolidaysPerformance(TestWorkEntryHolidaysBase):
@classmethod
def setUpClass(cls):
super(TestWorkEntryHolidaysPerformance, cls).setUpClass()
cls.jack = cls.env['hr.employee'].create({'name': 'Jack'})
cls.employees = cls.richard_emp | cls.jack
cls.env['hr.contract'].create([{
'date_start': date(2018, 1, 1),
'date_end': date(2018, 2, 1),
'name': 'Contract for %s' % employee.name,
'wage': 5000.0,
'state': 'open',
'employee_id': employee.id,
'date_generated_from': datetime(2018, 1, 1, 0, 0),
'date_generated_to': datetime(2018, 1, 1, 0, 0),
} for employee in cls.employees])
@users('__system__', 'admin')
@warmup
def test_performance_leave_validate(self):
self.richard_emp.generate_work_entries(date(2018, 1, 1), date(2018, 1, 2))
leave = self.create_leave(datetime(2018, 1, 1, 7, 0), datetime(2018, 1, 1, 18, 0))
with self.assertQueryCount(__system__=101, admin=103): # com 96/97
leave.action_validate()
leave.action_refuse()
@users('__system__', 'admin')
@warmup
def test_performance_leave_write(self):
leave = self.create_leave(datetime(2018, 1, 1, 7, 0), datetime(2018, 1, 1, 18, 0))
with self.assertQueryCount(__system__=30, admin=38):
leave.date_to = datetime(2018, 1, 1, 19, 0)
leave.action_refuse()
@users('__system__', 'admin')
@warmup
def test_performance_leave_create(self):
with self.assertQueryCount(__system__=60, admin=60):
leave = self.create_leave(datetime(2018, 1, 1, 7, 0), datetime(2018, 1, 1, 18, 0))
leave.action_refuse()
@users('__system__', 'admin')
@warmup
def test_performance_leave_confirm(self):
leave = self.create_leave(datetime(2018, 1, 1, 7, 0), datetime(2018, 1, 1, 18, 0))
leave.action_draft()
with self.assertQueryCount(__system__=43, admin=42):
leave.action_confirm()
leave.state = 'refuse'
@tagged('work_entry_perf')
class TestWorkEntryHolidaysPerformancesBigData(TestWorkEntryHolidaysBase):
@classmethod
def setUpClass(cls):
super(TestWorkEntryHolidaysPerformancesBigData, cls).setUpClass()
cls.company = cls.env['res.company'].create({'name': 'A company'})
cls.paid_time_off = cls.env['hr.leave.type'].create({
'name': 'Paid Time Off',
'request_unit': 'day',
'leave_validation_type': 'both',
'company_id': cls.company.id,
'requires_allocation': 'no',
})
cls.employees = cls.env['hr.employee'].create([{
'name': 'Employee %s' % i,
'company_id': cls.company.id
} for i in range(100)])
cls.contracts = cls.env['hr.contract'].create([{
'date_start': date(2018, 1, 1),
'date_end': False,
'name': 'Contract for %s' % employee.name,
'wage': 5000.0,
'state': 'open',
'employee_id': employee.id,
'date_generated_from': datetime(2018, 1, 1, 0, 0),
'date_generated_to': datetime(2018, 1, 1, 0, 0),
} for employee in cls.employees])
cls.leaves = cls.env['hr.leave'].create([{
'name': 'Holiday - %s' % employee.name,
'employee_id': employee.id,
'holiday_status_id': cls.paid_time_off.id,
'request_date_from': date(2020, 8, 3),
'request_date_to': date(2020, 8, 7),
} for employee in cls.employees])
cls.leaves._compute_date_from_to()
cls.leaves.action_approve()
cls.leaves.action_validate()
def test_work_entries_generation_perf(self):
# Test Case 7: Try to generate work entries for
# a hundred employees over a month
with self.assertQueryCount(__system__=407, admin=2807): # com: 402 / 2807
work_entries = self.contracts.generate_work_entries(date(2020, 7, 1), date(2020, 8, 31))
# Original work entries to generate when we don't adapt date_generated_from and
# date_generated_to when they are equal for old contracts: 138300
self.assertEqual(len(work_entries), 8800)

230
tests/test_work_entry.py Normal file
View File

@ -0,0 +1,230 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import datetime, date
from dateutil.relativedelta import relativedelta
import pytz
from odoo.exceptions import ValidationError
from odoo.tests.common import tagged
from odoo.fields import Date
from odoo.addons.hr_work_entry_holidays.tests.common import TestWorkEntryHolidaysBase
@tagged('work_entry')
class TestWorkeEntryHolidaysWorkEntry(TestWorkEntryHolidaysBase):
@classmethod
def setUpClass(cls):
super(TestWorkeEntryHolidaysWorkEntry, cls).setUpClass()
cls.tz = pytz.timezone(cls.richard_emp.tz)
cls.start = datetime(2015, 11, 1, 1, 0, 0)
cls.end = datetime(2015, 11, 30, 23, 59, 59)
cls.resource_calendar_id = cls.env['resource.calendar'].create({'name': 'Zboub'})
contract = cls.env['hr.contract'].create({
'date_start': cls.start.date() - relativedelta(days=5),
'name': 'dodo',
'resource_calendar_id': cls.resource_calendar_id.id,
'wage': 1000,
'employee_id': cls.richard_emp.id,
'state': 'open',
'date_generated_from': cls.end.date() + relativedelta(days=5),
})
cls.richard_emp.resource_calendar_id = cls.resource_calendar_id
cls.richard_emp.contract_id = contract
def test_validate_non_approved_leave_work_entry(self):
work_entry1 = self.env['hr.work.entry'].create({
'name': '1',
'employee_id': self.richard_emp.id,
'work_entry_type_id': self.work_entry_type_leave.id,
'contract_id': self.richard_emp.contract_id.id,
'date_start': self.start,
'date_stop': self.end,
})
self.env['hr.leave'].create({
'name': 'Doctor Appointment',
'employee_id': self.richard_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': self.start.date() - relativedelta(days=1),
'request_date_to': self.start.date(),
})
self.assertFalse(work_entry1.action_validate(), "It should not validate work_entries conflicting with non approved leaves")
self.assertEqual(work_entry1.state, 'conflict')
def test_refuse_leave_work_entry(self):
start = datetime(2015, 11, 1, 9, 0, 0)
end = datetime(2015, 11, 3, 13, 0, 0)
leave = self.env['hr.leave'].create({
'name': 'Doctor Appointment',
'employee_id': self.richard_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': start,
'request_date_to': start + relativedelta(days=1),
})
work_entry = self.env['hr.work.entry'].create({
'name': '1',
'employee_id': self.richard_emp.id,
'contract_id': self.richard_emp.contract_id.id,
'work_entry_type_id': self.work_entry_type.id,
'date_start': start,
'date_stop': end,
'leave_id': leave.id
})
work_entry.action_validate()
self.assertEqual(work_entry.state, 'conflict', "It should have an error (conflicting leave to approve")
leave.action_refuse()
self.assertNotEqual(work_entry.state, 'conflict', "It should not have an error")
def test_time_week_leave_work_entry(self):
# /!\ this is a week day => it exists an calendar attendance at this time
leave = self.env['hr.leave'].create({
'name': '1leave',
'employee_id': self.richard_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': date(2015, 11, 2),
'request_date_to': date(2015, 11, 2),
'request_unit_hours': True,
'request_hour_from': '11',
'request_hour_to': '17',
})
leave.action_validate()
work_entries = self.richard_emp.contract_id.generate_work_entries(self.start.date(), self.end.date())
work_entries.action_validate()
leave_work_entry = work_entries.filtered(lambda we: we.work_entry_type_id in self.work_entry_type_leave)
sum_hours = sum(leave_work_entry.mapped('duration'))
self.assertEqual(sum_hours, 5.0, "It should equal the number of hours richard should have worked")
def test_contract_on_another_company(self):
""" Test that the work entry generation still work if
the contract is not on the same company than
the employee (Internal Use Case)
So when generating the work entries in Belgium,
there is an issue when accessing to the time off
in Hong Kong.
"""
company = self.env['res.company'].create({'name': 'Another Company'})
employee = self.env['hr.employee'].create({
'name': 'New Employee',
'company_id': company.id,
})
self.env['hr.contract'].create({
'name': 'Employee Contract',
'employee_id': employee.id,
'date_start': Date.from_string('2015-01-01'),
'state': 'open',
'company_id': self.env.ref('base.main_company').id,
'wage': 4000,
})
leave_type = self.env['hr.leave.type'].create({
'name': 'Sick',
'request_unit': 'hour',
'leave_validation_type': 'both',
'requires_allocation': 'no',
'company_id': company.id,
})
leave1 = self.env['hr.leave'].create({
'name': 'Sick 1 week during christmas snif',
'employee_id': employee.id,
'holiday_status_id': leave_type.id,
'request_date_from': '2019-12-23',
'request_date_to': '2019-12-27',
})
leave1.action_approve()
leave1.action_validate()
# The work entries generation shouldn't raise an error
user = self.env['res.users'].create({
'name': 'Classic User',
'login': 'Classic User',
'company_id': self.env.ref('base.main_company').id,
'company_ids': self.env.ref('base.main_company').ids,
'groups_id': [(6, 0, [self.env.ref('hr_contract.group_hr_contract_manager').id, self.env.ref('base.group_user').id])],
})
self.env['hr.employee'].with_user(user).generate_work_entries('2019-12-01', '2019-12-31')
def test_work_entries_generation_if_parent_leave_zero_hours(self):
# Test case: The employee has a parental leave at 0 hours per week
# The employee has a leave during that period
employee = self.env['hr.employee'].create({'name': 'My employee'})
calendar = self.env['resource.calendar'].create({
'name': 'Parental 0h',
'attendance_ids': False,
})
employee.resource_calendar_id = calendar
contract = self.env['hr.contract'].create({
'date_start': self.start.date() - relativedelta(years=1),
'name': 'Contract - Parental 0h',
'resource_calendar_id': calendar.id,
'wage': 1000,
'employee_id': employee.id,
'state': 'open',
})
leave_type = self.env['hr.leave.type'].create({
'name': 'Sick',
'request_unit': 'hour',
'leave_validation_type': 'both',
'requires_allocation': 'no',
})
leave = self.env['hr.leave'].create({
'name': "Sick 1 that doesn't make sense, but it's the prod so YOLO",
'employee_id': employee.id,
'holiday_status_id': leave_type.id,
'request_date_from': date(2020, 9, 4),
'request_date_to': date(2020, 9, 4),
})
# TODO I don't know what this test is supposed to test, but I feel that
# in any case it should raise a Validation Error, as it's trying to
# validate a leave in a period the employee is not supposed to work.
with self.assertRaises(ValidationError), self.cr.savepoint():
leave.action_approve()
leave.action_validate()
work_entries = contract.generate_work_entries(date(2020, 7, 1), date(2020, 9, 30))
self.assertEqual(len(work_entries), 0)
def test_work_entries_leave_if_leave_conflict_with_public_holiday(self):
date_from = datetime(2023, 2, 1, 0, 0, 0)
date_to = datetime(2023, 2, 28, 23, 59, 59)
work_entry_type_holiday = self.env['hr.work.entry.type'].create({
'name': 'Public Holiday',
'is_leave': True,
'code': 'LEAVETEST500'
})
self.env['resource.calendar.leaves'].create({
'name': 'Public Holiday',
'date_from': datetime(2023, 2, 6, 0, 0, 0),
'date_to': datetime(2023, 2, 7, 23, 59, 59),
'calendar_id': self.richard_emp.resource_calendar_id.id,
'work_entry_type_id': work_entry_type_holiday.id,
})
leave = self.env['hr.leave'].create({
'name': 'AL',
'employee_id': self.richard_emp.id,
'holiday_status_id': self.leave_type.id,
'request_date_from': date(2023, 2, 3),
'request_date_to': date(2023, 2, 9),
})
leave.action_validate()
self.richard_emp.generate_work_entries(date_from, date_to, True)
work_entries = self.env['hr.work.entry'].search([
('employee_id', '=', self.richard_emp.id),
('date_stop', '>=', date_from),
('date_start', '<=', date_to),
('state', '!=', 'validated')])
leave_work_entry = work_entries.filtered(lambda we: we.work_entry_type_id in self.work_entry_type_leave)
self.assertEqual(leave_work_entry.leave_id.id, leave.id, "Leave work entry should have leave_id value")
public_holiday_work_entry = work_entries.filtered(lambda we: we.work_entry_type_id == work_entry_type_holiday)
self.assertEqual(len(public_holiday_work_entry.leave_id), 0, "Public holiday work entry should not have leave_id")

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<odoo>
<record id="view_holiday_status_normal_tree" model="ir.ui.view">
<field name="model">hr.leave.type</field>
<field name="inherit_id" ref="hr_holidays.view_holiday_status_normal_tree"/>
<field name="arch" type="xml">
<field name="allocation_validation_type" position="after">
<field name="work_entry_type_id" optional="show"/>
</field>
</field>
</record>
</odoo>

31
views/hr_leave_views.xml Normal file
View File

@ -0,0 +1,31 @@
<?xml version='1.0' encoding='UTF-8' ?>
<odoo>
<!-- Work entry type on hr leave -->
<record id="work_entry_type_leave_form_inherit" model="ir.ui.view">
<field name="name">work_entry.type.leave.form.inherit</field>
<field name="model">hr.leave.type</field>
<field name="inherit_id" ref="hr_holidays.edit_holiday_status_form"/>
<field name="arch" type="xml">
<xpath expr="//group[@name='visual']" position="before">
<group>
<group name="payroll" string="Payroll">
<field name="work_entry_type_id"/>
</group>
</group>
</xpath>
</field>
</record>
<record id="hr_leave_view_tree_inherit_work_entry" model="ir.ui.view">
<field name="name">hr.holidays.view.tree.inherit.work.entry</field>
<field name="model">hr.leave</field>
<field name="inherit_id" ref="hr_holidays.hr_leave_view_tree"/>
<field name="mode">primary</field>
<field name="arch" type="xml">
<xpath expr="//tree" position="attributes">
<attribute name="default_order">date_from</attribute>
</xpath>
</field>
</record>
</odoo>