This commit is contained in:
Songb
2024-04-28 11:43:49 +08:00
commit 953c76ce8a
4108 changed files with 2312605 additions and 0 deletions
@@ -0,0 +1,5 @@
#-*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
from . import wizard
@@ -0,0 +1,22 @@
#-*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Work Entries - Planning',
'category': 'Human Resources/Employees',
'sequence': 95,
'summary': 'Create work entries from the employee\'s planning',
'installable': True,
'auto_install': True,
'depends': [
'hr_work_entry_contract_enterprise',
'planning',
],
'data': [
'views/hr_contract_views.xml',
],
'demo': [
'data/hr_work_entry_contract_planning_demo.xml',
],
'license': 'OEEL-1',
}
@@ -0,0 +1,82 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="hr_contract_ngh" model="hr.contract">
<field name="name">Jeffrey Kelly Contract</field>
<field name="date_start" eval="(DateTime.today() + relativedelta(months=-1, day=1))"/>
<field name="date_end" eval="(DateTime.today() + relativedelta(months=2))"/>
<field name="employee_id" ref="hr.employee_ngh"/>
<field name="job_id" model="hr.job"
eval="obj().env.ref('hr.employee_ngh').job_id.id"/>
<field name="department_id" model="hr.department"
eval="obj().env.ref('hr.employee_ngh').department_id.id"/>
<field name="wage" eval="6000"/>
<field name="state">open</field>
<field name="work_entry_source">planning</field>
<field name="structure_type_id" ref="hr_contract.structure_type_worker"/>
</record>
<!-- Monday evening shifts -->
<record id="planning_slot_211" model="planning.slot">
<field name="start_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=0)).strftime('%Y-%m-%d 12:00:00')"/>
<field name="end_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=0)).strftime('%Y-%m-%d 18:00:00')"/>
<field name="employee_id" ref="hr.employee_ngh"/>
<field name="role_id" ref="planning.planning_role_cm"/>
<field name="publication_warning" eval="False"/>
<field name="state">published</field>
<field name="repeat" eval="True"/>
<field name="repeat_interval" eval="1"/>
<field name="repeat_type">forever</field>
</record>
<!-- Tuesday morning shifts -->
<record id="planning_slot_212" model="planning.slot">
<field name="start_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=1)).strftime('%Y-%m-%d 04:00:00')"/>
<field name="end_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=1)).strftime('%Y-%m-%d 12:00:00')"/>
<field name="employee_id" ref="hr.employee_ngh"/>
<field name="role_id" ref="planning.planning_role_cm"/>
<field name="publication_warning" eval="False"/>
<field name="state">published</field>
<field name="repeat" eval="True"/>
<field name="repeat_interval" eval="1"/>
<field name="repeat_type">forever</field>
</record>
<!-- Wednesday evening shifts -->
<record id="planning_slot_213" model="planning.slot">
<field name="start_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=2)).strftime('%Y-%m-%d 12:00:00')"/>
<field name="end_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=2)).strftime('%Y-%m-%d 18:00:00')"/>
<field name="employee_id" ref="hr.employee_ngh"/>
<field name="role_id" ref="planning.planning_role_cm"/>
<field name="publication_warning" eval="False"/>
<field name="state">published</field>
<field name="repeat" eval="True"/>
<field name="repeat_interval" eval="1"/>
<field name="repeat_type">forever</field>
</record>
<!-- Thursday morning shifts -->
<record id="planning_slot_214" model="planning.slot">
<field name="start_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=3)).strftime('%Y-%m-%d 04:00:00')"/>
<field name="end_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=3)).strftime('%Y-%m-%d 12:00:00')"/>
<field name="employee_id" ref="hr.employee_ngh"/>
<field name="role_id" ref="planning.planning_role_cm"/>
<field name="publication_warning" eval="False"/>
<field name="state">published</field>
<field name="repeat" eval="True"/>
<field name="repeat_interval" eval="1"/>
<field name="repeat_type">forever</field>
</record>
<!-- Friday evening shifts -->
<record id="planning_slot_215" model="planning.slot">
<field name="start_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=4)).strftime('%Y-%m-%d 12:00:00')"/>
<field name="end_datetime" eval="(datetime.today() - relativedelta(months=1, day=1, weekday=4)).strftime('%Y-%m-%d 18:00:00')"/>
<field name="employee_id" ref="hr.employee_ngh"/>
<field name="role_id" ref="planning.planning_role_cm"/>
<field name="publication_warning" eval="False"/>
<field name="state">published</field>
<field name="repeat" eval="True"/>
<field name="repeat_interval" eval="1"/>
<field name="repeat_type">forever</field>
</record>
</odoo>
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" يحدد المصدر لإنشاء قيود العمل\n"
"\n"
" جدول العمل: سيتم إنشاء قيود العمل من ساعات العمل أدناه.\n"
" الحضور: سيتم إنشاء قيود العمل من سجل حضور الموظف. (يتطلب تطبيق الحضور)\n"
" التخطيط: سيتم إنشاء قيود العمل من تخطيط الموظف. (يتطلب تطبيق التخطيط)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "عقد الموظف"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "قيد عمل الموارد البشرية "
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "التخطيط"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "التخطيط لنوبة العمل "
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "خانة التخطيط "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "إعادة إنشاء قيود عمل الموظفين "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "الموارد"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "مصدر قيد العمل "
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "وقت العمل "
@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Jakub Smolka, 2023
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Definuje zdroj pro generování pracovních záznamů\n"
"\n"
" Pracovní plán: Pracovní záznamy budou generovány z pracovní doby níže.\n"
" Docházka: Pracovní záznamy budou generovány z docházky zaměstnance. (vyžaduje aplikaci Docházka)\n"
" Plánování: Pracovní záznamy budou generovány z plánování zaměstnance. (vyžaduje aplikaci Plánování)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Zaměstnanecká smlouva"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR pracovní záznam"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Plánování"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Plánovací směna"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Regenerace pracovních záznamů zaměstnanců"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Zdroje"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Zdroj pracovní položky"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Pracovní čas"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Definiert den Ursprung für die Erzeugung von Arbeitseinträgen\n"
"\n"
" Arbeitsplan: Die Arbeitseinträge werden aus den unten stehenden Arbeitszeiten generiert.\n"
" Anwesenheiten: Die Arbeitseinträge werden aus den Anwesenheiten des Mitarbeiters generiert. (erfordert die Anwesenheiten-App)\n"
" Planung: Die Arbeitseinträge werden aus der Planung des Mitarbeiters generiert. (erfordert die Planungs-App)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Arbeitsvertrag"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR-Arbeitseintrag"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planung"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Schicht der Planung"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Planungszeitfenster"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Arbeitseinträge für Mitarbeiter neu generieren"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Ressourcen"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Quelle des Arbeitseintrags"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Arbeitszeit"
@@ -0,0 +1,77 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 2023\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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato de empleado"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Entrada de trabajo de RRHH"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planificación"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Planificar turnos"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "lanear espacio"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Regenerar entradas de trabajo del empleado"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Recursos"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "recurso de entrada de trabajo"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Horario de trabajo"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 2023\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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Define el origen de la generación de entradas de trabajo\n"
"\n"
" Horario de trabajo: las entradas de trabajo se generarán en las horas laborables.\n"
" Asistencias: las entradas de trabajo se generarán de la asistencia de los empleados. (Es necesario contar con la aplicación Asistencias)\n"
" Planeación: las entradas de trabajo se generarán a partir de la planeación del empleado. (Es necesario contar con la aplicación Planeación)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato del empleado"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Entrada de trabajo de RR. HH."
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planeación"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Planear turnos"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Espacio de planeación"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Volver a generar las entradas de trabajo del empleado"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Recursos"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Origen de la entrada de trabajo"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Horas laborables"
@@ -0,0 +1,89 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Eneli Õigus <enelioigus@gmail.com>, 2023
# Patrick-Jordan Kiudorv, 2023
# Algo Kärp <algokarp@gmail.com>, 2023
# Leaanika Randmets, 2023
# JanaAvalah, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Martin Trigaux, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Määrab töökannete genereerimise allika\n"
"\n"
" Tööaeg: Töökanded genereeritakse tööaja põhjal - Standard 40h/nädalas jne\n"
" Kohalolekud: Töökanded genereeritakse kohaloleku põhjal(tuleb kasutada Kohalolekud moodulit)\n"
" Töögraafik: Töökanded genereeritakse töögraafikust(tuleb kasutada Töögraafik moodulit)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Tööleping"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR tööajad"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planeerimine"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Vahetuse planeerimine"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Ajavahede planeerimine"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Genereeri töötajate töö sissekanded uuesti"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Ressursid"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Tööaegade allikas"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Tööaeg"
@@ -0,0 +1,80 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# سید محمد آذربرا <mohammadazarbara98@gmail.com>, 2023
# Hanna Kheradroosta, 2023
# F Hariri <fhari1234@gmail.com>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Martin Trigaux, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "قرارداد کارمند"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "سند کار منابع انسانی"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "برنامه ریزی"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "بازسازی سندهای کارکرد کارمند"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "منابع"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "ساعت کاری"
@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Ossi Mantylahti <ossi.mantylahti@obs-solutions.fi>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Martin Trigaux, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Määrittää lähteen työaikakirjausten tuottamista varten\n"
"\n"
" Työaikataulu: Työkirjaukset luodaan alla olevista työajoista.\n"
" Läsnäolot: Työkirjaukset luodaan työntekijän läsnäoloista. (edellyttää Läsnäolo-sovellusta)\n"
" Suunnittelu: Työkirjaukset luodaan työntekijän suunnittelusta. (vaatii Suunnittelu-sovelluksen)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Työsopimus"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR-työkirjaus"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Suunnittelu"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Suunnitteluvuoro"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Suunniteltu aikavaraus"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Luo uudelleen työntekijän työkirjaukset"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Resurssit"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Työkirjausten lähde"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Työaika"
@@ -0,0 +1,83 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
"Définit la source de génération des prestations\n"
"\n"
"Horaire de travail : les prestations seront générées à partir des heures de travail ci-dessous.\n"
"Présences : les prestations seront générées à partir des présences de l'employé. (nécessite l'application Présences)\n"
"Planning : les prestations seront générées à partir du planning de l'employé. (nécessite l'application Planning)"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Contrat de l'employé"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Prestation RH"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planning"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Poste du planning"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Créneau du planning"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Regénérer les prestations de l'employé"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Ressources"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Source de la prestation"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Temps de travail"
@@ -0,0 +1,80 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Martin Trigaux, 2023
# ZVI BLONDER <ZVIBLONDER@gmail.com>, 2023
# Lilach Gilliam <lilach.gilliam@gmail.com>, 2023
# Leandro Noijovich <eliel.sorcerer@gmail.com>, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Leandro Noijovich <eliel.sorcerer@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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "חוזה עובד"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "רשומת עבודה של משאבי אנוש"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "תכנון"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "תכנון משמרת"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "עובדים"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "זמן עבודה"
@@ -0,0 +1,73 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 22:20+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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr ""
@@ -0,0 +1,78 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Tamás Németh <ntomasz81@gmail.com>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Martin Trigaux, 2023\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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Alkalmazotti szerződés"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Tervezés"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Műszaktervezés"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Erőforrások"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Munkaidő"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Definisikan sumber untuk pembuatan entri-entri kerja\n"
"\n"
" Jadwal Kerja: Entri-entri kerja akan dibuat dari jam kerja di bawah.\n"
" Absensi: Entri-entri kerja akan dibuat dari absensi karyawan. (membutuhkan app Absensi)\n"
" Perencanaan: Entri-entri kerja akan dibuat dari perencanaan karyawan. (membutuhkan app Planning)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Kontrak Karyawan"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Entri Kerja HR"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Perencanaan"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Merencanakan Shift"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Merencanakan Slot"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Buat Ulang Entr-Entri Kerja Karyawan"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Sumber Daya"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Sumber Entri Kerja"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Waktu Kerja"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Definisce la fonte per la generazione di voci di lavoro\n"
"\n"
" Pianificazione lavoro: le voci di lavoro verranno create a partire dalle seguenti ore lavorative.\n"
" Presenze: le voci di lavoro saranno generate a partire dalle presenze dei dipendenti. (App Presenze richiesta)\n"
" Pianificazione: le voci di lavoro saranno generate a partire dalla pianificazione dei dipendenti. (App Pianificazione richiesta)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Contratto dipendente"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Voce lavorativa RU"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Pianificazione"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Turno pianificato"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Slot di pianificazione"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Rigenera voci lavorative dipendente"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Risorse"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Origine voce lavorativa"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Orario lavorativo"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" ワークエントリ生成元を定義します\n"
"\n"
" 勤務スケジュール: ワークエントリは以下の作業時間から生成されます\n"
" 勤怠管理: ワークエントリは従業員の勤怠管理から生成されます(勤怠管理アプリが必要)\n"
" 計画: ワークエントリは従業員の計画から生成されます(計画アプリが必要)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "従業員契約"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR作業エントリ"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "計画"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "計画シフト"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "計画スロット"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "従業員ワークエントリを再生成"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "リソース"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "作業エントリ元"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "作業時間"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" 근무 항목 생성에 대한 기준 정의\n"
"\n"
" 근무 일정: 아래의 근무 시간에서 근무 항목을 생성합니다.\n"
" 근태: 직원 근태에서 근무 항목을 생서합니다. (근태관리 앱 필요)\n"
" 일정 수립: 직원의 일정에서 근무 항목을 생성합니다. (일정 수립 앱 필요)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "근로 계약서"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "인사 근로 항목"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "일정 관리"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "교대 근무 계획"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "슬롯 계획"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "직원 작업 항목 재생성"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "자원"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "작업 항목 원본"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "근무 시간"
@@ -0,0 +1,80 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# digitouch UAB <digitouchagencyeur@gmail.com>, 2023
# Ramunė ViaLaurea <ramune.vialaurea@gmail.com>, 2023
# Linas Versada <linaskrisiukenas@gmail.com>, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Martin Trigaux, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Darbuotojo sutartis"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planavimas"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Pamainų planavimas"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Ištekliai"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Darbo laikas"
@@ -0,0 +1,77 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Darbinieka Darba Līgums"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Plānošana"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Resursi"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Darba laiks"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Bepaalt de bron voor de werkboekinggeneratie\n"
"\n"
" Werkschema: Werkboekingen worden gegenereerd voor onderstaande werkuren.\n"
" Aanwezigheden: Werkboekingen worden gegenereerd op basis van de werknemer's aanwezigheden (Aanwezigheden app vereist)\n"
" Planning: Werkboekingen worden gegenereerd op basis van de werknemer's planning (Planning app vereist)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Arbeidsovereenkomst"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR-werkboeking"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planning"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Planning dienst"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Planningsslot"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Hergenereren werknemers werkboekingen"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Resources"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Bron werkboekingen"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Werktijd"
@@ -0,0 +1,83 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
"Określa źródło dla generowania wpisów pracy\n"
"\n"
"Harmonogram pracy: Wpisy pracy będą generowane na podstawie poniższych godzin pracy.\n"
"Frekwencja: Wpisy pracy będą generowane z obecności pracownika. (wymaga aplikacji Attendance)\n"
"Planowanie: Wpisy pracy zostaną wygenerowane z planowania pracownika. (wymaga aplikacji Planowanie)"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Umowa pracownika"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Wpis pracy HR"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planowanie"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Planowanie zmian"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Miejsce do planowania"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Wygeneruj ponownie wpisy pracy pracownika"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Zasoby"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Źródło wpisu pracy"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Czas pracy"
@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
# Layna Nascimento, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
"Define a origem para a geração de registros de trabalho\n"
"\n"
"Horário de trabalho: os registros de trabalho serão gerados a partir das horas de trabalho abaixo.\n"
"\n"
"Presença: os registros de trabalho serão gerados a partir das presenças do funcionário (requer o aplicativo Controle de Presença).\n"
"Planejamento: os registros de trabalho serão gerados a partir do planejamento do funcionário (requer o aplicativo Planejamento)."
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Contrato do funcionário"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "RH - Registro de trabalho"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Planejamento"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Planejamento de escala"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Faixa de horário de planejamento"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Gerar novamente registros de trabalho do funcionário"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Recursos"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Origem do registro de trabalho"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Tempo de trabalho"
@@ -0,0 +1,78 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Milan Bojovic, 2023
# Martin Trigaux, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Martin Trigaux, 2023\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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Ugovor Zapošljenog"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Planiranje smene"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Resursi"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Vreme rada"
@@ -0,0 +1,77 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "สัญญาของพนักงาน"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR การเข้างาน"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "การวางแผน"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "กะการวางแผน"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "สล็อตวางแผน"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "สร้างการเข้างานของพนักงานใหม่"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "แหล่งข้อมูล"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "เวลาทำงาน"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 2023\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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" Визначає джерело для створення робочих записів\n"
"\n"
"Робочий графік: робочі записи будуть створені на основі робочих годин, наведених нижче.\n"
"Відвідуваність: записи про роботу створюватимуться на основі відвідуваності працівника. (потрібен додаток Відвідування)\n"
"Планування: записи про роботу будуть створені на основі планування працівника. (потрібен додаток Планування)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Трудовий контракт"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "Робочий запис відділу кадрів"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Планування"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Планування зміни"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Слот планування"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Створити заново робочі записи співробітника"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Кадри"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Джерело робочого запису"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Робочий час"
@@ -0,0 +1,77 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "Hợp đồng nhân viên"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR Work Entry"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "Lập kế hoạch"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "Lập kế hoạch ca làm"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "Lập kế hoạch khung giờ"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "Tạo lại mục công việc nhân viên"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "Nguồn lực"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "Nguồn nhập công việc"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "Thời gian làm việc"
@@ -0,0 +1,84 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Wil Odoo, 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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" 定义了工作记录生成的来源\n"
"\n"
" 工作安排:工作记录将从以下的工作时间生成。\n"
" 出勤:工作记录将从员工的出勤生成。(需要出勤应用程序)\n"
" 计划:工作记录将从员工的计划生成。(需要计划应用程序)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "员工合同"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "人力资源工作"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "计划"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "计划转变"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "计划时段"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "重新生成员工工作条目"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "资源"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "工作记录来源"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "工时"
@@ -0,0 +1,85 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * hr_work_entry_contract_planning
#
# Translators:
# Wil Odoo, 2023
# Tony Ng, 2023
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 17.0+e\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2023-10-26 22:20+0000\n"
"PO-Revision-Date: 2023-10-26 23:10+0000\n"
"Last-Translator: Tony Ng, 2023\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_contract_planning
#: model:ir.model.fields,help:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid ""
"\n"
" Defines the source for work entries generation\n"
"\n"
" Working Schedule: Work entries will be generated from the working hours below.\n"
" Attendances: Work entries will be generated from the employee's attendances. (requires Attendance app)\n"
" Planning: Work entries will be generated from the employee's planning. (requires Planning app)\n"
" "
msgstr ""
"\n"
" 定義了工作記錄生成的來源\n"
"\n"
" 工作安排:工作記錄將從以下的工作時間生成。\n"
" 出勤:工作記錄將從員工的出勤生成。(需要出勤應用程序)\n"
" 計劃:工作記錄將從員工的計劃生成。(需要計劃應用程序)\n"
" "
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_contract
msgid "Employee Contract"
msgstr "員工契約"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry
msgid "HR Work Entry"
msgstr "HR工時紀錄"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields.selection,name:hr_work_entry_contract_planning.selection__hr_contract__work_entry_source__planning
msgid "Planning"
msgstr "計劃"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_planning_slot
msgid "Planning Shift"
msgstr "計劃排班"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_work_entry__planning_slot_id
msgid "Planning Slot"
msgstr "計劃時段"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_hr_work_entry_regeneration_wizard
msgid "Regenerate Employee Work Entries"
msgstr "重新生成員工工時紀錄"
#. module: hr_work_entry_contract_planning
#: model:ir.model,name:hr_work_entry_contract_planning.model_resource_resource
msgid "Resources"
msgstr "資源"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_hr_contract__work_entry_source
msgid "Work Entry Source"
msgstr "工作記錄來源"
#. module: hr_work_entry_contract_planning
#: model:ir.model.fields,field_description:hr_work_entry_contract_planning.field_resource_resource__calendar_id
msgid "Working Time"
msgstr "工作時間"
@@ -0,0 +1,7 @@
#-*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import hr_contract
from . import hr_work_entry
from . import planning_slot
from . import resource_resource
@@ -0,0 +1,55 @@
#-*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from collections import defaultdict
import pytz
from odoo import fields, models
from odoo.addons.hr_work_entry_contract.models.hr_work_intervals import WorkIntervals
class HrContract(models.Model):
_inherit = 'hr.contract'
work_entry_source = fields.Selection(
selection_add=[('planning', 'Planning')],
ondelete={'planning': 'set default'},
)
def _get_more_vals_attendance_interval(self, interval):
result = super()._get_more_vals_attendance_interval(interval)
if interval[2]._name == 'planning.slot':
# Due to how WorkIntervals work we might lose the right start and end time for our work entry
# i.e. [(1, 5, slot_1), (3, 10, slot_2)] will result in (1, 10, {slot_1, slot_2})
# `_get_contract_work_entries_values` already takes care of unsplitting our invervals into two for that case
# But the date needs to be correct after the fact, which we do here.
# We still take the interval's date in case it was pushed by start_dt/end_dt.
slot = interval[2]
# Avoid timezone conversions
subresult = [('planning_slot_id', slot.id)]
if interval[0] < pytz.utc.localize(slot.start_datetime):
subresult.append(('date_start', slot.start_datetime))
if interval[1] > pytz.utc.localize(slot.end_datetime):
subresult.append(('date_stop', slot.end_datetime))
result.extend(subresult)
return result
def _get_attendance_intervals(self, start_dt, end_dt):
planning_based_contracts = self.filtered(lambda c: c.work_entry_source == 'planning')
search_domain = [
('employee_id', 'in', planning_based_contracts.employee_id.ids),
('state', '=', 'published'),
('start_datetime', '<', end_dt),
('end_datetime', '>', start_dt),
]
resource_ids = planning_based_contracts.employee_id.resource_id.ids
planning_slots = self.env['planning.slot'].sudo().search(search_domain) if planning_based_contracts\
else self.env['planning.slot']
intervals = defaultdict(list)
for planning_slot in planning_slots:
intervals[planning_slot.resource_id.id].append((
max(start_dt, pytz.utc.localize(planning_slot.start_datetime)),
min(end_dt, pytz.utc.localize(planning_slot.end_datetime)),
planning_slot))
mapped_intervals = {r: WorkIntervals(intervals[r]) for r in resource_ids}
mapped_intervals.update(super()._get_attendance_intervals(start_dt, end_dt))
return mapped_intervals
@@ -0,0 +1,56 @@
# -*- 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'
planning_slot_id = fields.Many2one('planning.slot', groups='hr.group_hr_user')
def _get_planning_duration(self, date_start, date_stop):
'''
If the interval(date_start, date_stop) is equal to the planning_slot's interval, return the slot's allocated hours.
If the interval(date_start, date_stop) is a subset of the planning_slot's interval,
a new (non saved) planning_slot will be created to compute the duration according to planning rules.
If the interval(date_start, date_stop) is not fully inside of the planning_slot's interval the behaviour is undefined
:return: The real duration according to the planning app
:rtype: number
'''
self.ensure_one()
date_start = date_start or self.date_start
date_stop = date_stop or self.date_stop
if (self.planning_slot_id.start_datetime == date_start and\
self.planning_slot_id.end_datetime == date_stop):
return self.planning_slot_id.allocated_hours
else:
new_slot = self.env['planning.slot'].new({
**self.planning_slot_id.read(['employee_id', 'company_id', 'allocated_percentage'])[0],
**{
'start_datetime': date_start,
'end_datetime': date_stop,
},
})
return new_slot.allocated_hours
def _get_duration_batch(self):
res = dict()
super_we = self.env['hr.work.entry']
for we in self:
if we.planning_slot_id:
res[we.id] = we._get_planning_duration(False, False)
else:
super_we |= we
res.update(super(HrWorkEntry, super_we)._get_duration_batch())
return res
def _get_work_duration(self, date_start, date_stop):
"""
When using the duration of the planning slot, we also need to simulate the duration
using the slot's percentage if set instead of simply using the work entry's dates.
"""
if self.planning_slot_id:
return self._get_planning_duration(date_start, date_stop)
return super()._get_work_duration(date_start, date_stop)
@@ -0,0 +1,94 @@
#-*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from collections import defaultdict
from odoo import api, models
def batch(iterable, batch_size):
l = len(iterable)
for n in range(0, l, batch_size):
yield iterable[n:min(n + batch_size, l)]
class PlanningSlot(models.Model):
_inherit = 'planning.slot'
def _create_work_entries(self):
# Similar to `_create_work_entries` for attendances but this function assumes big batches
# (due to the publish button that published all slots)
# Also note that slots are assumed to stay as is after being published, any other change will need a
# full work entry regeneration.
self = self.filtered(lambda s: s.employee_id)
if not self:
return
# The procedure for creating a work entry within an already generated period
# is more complicated for planning slots than for leaves because leaves override
# attendance periods, here we are not able to just archive work entries we do not want
# etc...
# We will instead archive all work entries that are touched by the current planning slot's period
# (slots don't have an overlap constraint), and regenerate all work entries that were covered by them.
# Since all we need is already in the database we can use that query to have better performance.
self.flush_model(['start_datetime', 'end_datetime', 'employee_id'])
self.env['hr.contract'].flush_model([
'employee_id', 'state', 'work_entry_source',
'date_start', 'date_end', 'date_generated_from', 'date_generated_to'
])
self.env['hr.work.entry'].flush_model(['employee_id', 'date_start', 'date_stop'])
self.env.cr.execute("""
SELECT slot.id as id,
ARRAY_AGG(DISTINCT contract.id) as contract_ids,
ARRAY_AGG(DISTINCT hwe.id) as work_entry_ids,
COALESCE(MIN(hwe.date_start), slot.start_datetime) as start,
COALESCE(MAX(hwe.date_stop), slot.end_datetime) as stop
FROM planning_slot slot
JOIN hr_contract contract
ON contract.employee_id = slot.employee_id AND
contract.state in ('open', 'close') AND
contract.work_entry_source = 'planning' AND
contract.date_generated_from < slot.end_datetime AND
contract.date_generated_to > slot.start_datetime AND
contract.date_start <= slot.end_datetime AND
(contract.date_end IS NULL OR
contract.date_end >= slot.start_datetime)
LEFT JOIN hr_work_entry hwe
ON hwe.employee_id = slot.employee_id AND
hwe.date_start <= slot.end_datetime AND
hwe.date_stop >= slot.start_datetime
WHERE slot.id in %s
GROUP BY slot.id
""", [tuple(self.ids)])
query_result = self.env.cr.dictfetchall()
# Group by period to generate to profit from batching
# Contains [(start, stop)] = [contract_ids]
periods_to_generate = defaultdict(list)
work_entries_to_archive = []
for row in query_result:
periods_to_generate[(row['start'], row['stop'])].extend(row['contract_ids'])
if any(row['work_entry_ids']):
work_entries_to_archive.extend(row['work_entry_ids'])
self.env['hr.work.entry'].sudo().browse(work_entries_to_archive).write({'active': False})
work_entries_vals_list = []
for period, contract_ids in periods_to_generate.items():
if not contract_ids:
continue
contracts = self.env['hr.contract'].sudo().browse(contract_ids)
work_entries_vals_list.extend(contracts._get_work_entries_values(period[0], period[1]))
self.env['hr.work.entry'].sudo().create(work_entries_vals_list)
@api.model_create_multi
def create(self, vals_list):
res = super().create(vals_list)
res.filtered(lambda s: s.state == 'published')._create_work_entries()
return res
def write(self, vals):
state = vals.get('state')
concerned_slots = self.filtered(lambda s: s.state != state) if state\
else self.env['planning.slot']
res = super().write(vals)
concerned_slots._create_work_entries()
return res
def unlink(self):
# Archive linked work entries upon deleting slots
self.env['hr.work.entry'].sudo().search([('planning_slot_id', 'in', self.ids)]).write({'active': False})
return super().unlink()
@@ -0,0 +1,28 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, fields, models
class ResourceResource(models.Model):
_inherit = 'resource.resource'
# FIXME: [XBO] perhaps this compute will no longer be useful if we have a logic saying
# if the work_entry_source is different to calendar then the calendar of the
# contract and the resource will be False? :thinking:
calendar_id = fields.Many2one(compute='_compute_calendar_id', compute_sudo=True, readonly=False, store=True)
@api.depends('employee_id.contract_id.work_entry_source')
def _compute_calendar_id(self):
contract_read_group = self.env['hr.contract']._read_group(
[
('employee_id', 'in', self.employee_id.ids),
('work_entry_source', 'in', ['attendance', 'planning']),
('state', '=', 'open'),
],
['employee_id'],
)
employee_ids_having_running_contract = {employee.id for [employee] in contract_read_group}
for resource in self:
if resource.employee_id.id in employee_ids_having_running_contract:
resource.calendar_id = False
@@ -0,0 +1,4 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import test_work_entry_planning
@@ -0,0 +1,224 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from datetime import date, datetime
from odoo.tests import tagged, TransactionCase
@tagged('-at_install', 'post_install', 'work_entry_planning')
class TestWorkEntryPlanning(TransactionCase):
@classmethod
def setUpClass(cls):
super().setUpClass()
cls.employee = cls.env['hr.employee'].create({
'name': 'Tom Clauz',
})
# While work entry generation via planning is handled in this module
# hourly wages are defined in the payroll module
cls.contract = cls.env['hr.contract'].create({
'name': 'Tom Clauz\'s contract',
'employee_id': cls.employee.id,
'wage': 3500,
'work_entry_source': 'planning',
'date_start': '2020-01-01',
'state': 'open',
})
def test_basic_generation(self):
# Generates a slot for the afternoon every day of september 2021
planning_slot_vals = []
for i in range(1, 31):
new_date = datetime(2021, 9, i, 13, 0, 0)
if new_date.weekday() >= 5:
continue
planning_slot_vals.append({
'resource_id': self.employee.resource_id.id,
'start_datetime': new_date,
'end_datetime': new_date.replace(hour=17),
})
slots = self.env['planning.slot'].create(planning_slot_vals)
# Publishing the slots should not create any work entries for our employee since
# we do not have an already generated period yet
slots.action_planning_publish_and_send()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertFalse(work_entries)
# This should generate one work entry per slot
self.contract.generate_work_entries(date(2021, 9, 1), date(2021, 9, 30))
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertEqual(len(slots), len(work_entries))
self.assertTrue(all(hwe.planning_slot_id for hwe in work_entries))
def test_duplicate_slot(self):
# Tests that two slots that are the same/overlap still generate multiple work entries
slots = self.env['planning.slot'].create([
# Same slots
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 14, 13, 0, 0),
'end_datetime': datetime(2021, 9, 14, 17, 0, 0),
},
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 14, 13, 0, 0),
'end_datetime': datetime(2021, 9, 14, 17, 0, 0),
},
# Slots overlapping
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 15, 13, 0, 0),
'end_datetime': datetime(2021, 9, 15, 17, 0, 0),
},
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 15, 16, 0, 0),
'end_datetime': datetime(2021, 9, 15, 19, 0, 0),
},
# Slots on boundaries
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 16, 13, 0, 0),
'end_datetime': datetime(2021, 9, 16, 17, 0, 0),
},
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 16, 17, 0, 0),
'end_datetime': datetime(2021, 9, 16, 19, 0, 0),
},
])
slots.action_planning_publish_and_send()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertFalse(work_entries)
self.contract.generate_work_entries(date(2021, 9, 1), date(2021, 9, 30))
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
# One work entry per slot
self.assertEqual(len(work_entries), len(slots))
# Each slot should have been assigned to one work entry
self.assertEqual(len(work_entries.mapped('planning_slot_id')), len(slots.ids))
def test_slot_within_period(self):
# Tests that a slot created/published within the already generated period
# is still created in the work entries
boundaries_slots = self.env['planning.slot'].create([
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 1, 14, 0, 0),
'end_datetime': datetime(2021, 9, 1, 17, 0, 0),
},
{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 30, 14, 0, 0),
'end_datetime': datetime(2021, 9, 30, 17, 0, 0),
}
])
boundaries_slots.action_planning_publish_and_send()
self.contract.generate_work_entries(date(2021, 9, 1), date(2021, 9, 30))
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertEqual(len(work_entries), len(boundaries_slots))
inner_slot = self.env['planning.slot'].create({
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 14, 14, 0, 0),
'end_datetime': datetime(2021, 9, 14, 17, 0, 0),
})
inner_slot.action_send()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertEqual(len(boundaries_slots) + len(inner_slot), len(work_entries))
def test_publish_unpublish(self):
# Tests that a slot being unpublished archives the slot
slot = self.env['planning.slot'].create({
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 14, 14, 0, 0),
'end_datetime': datetime(2021, 9, 14, 17, 0, 0),
})
# Cheat a bit by manually setting a generated period
self.contract.write({
'date_generated_from': datetime(2021, 9, 1, 0, 0, 0),
'date_generated_to': datetime(2021, 9, 30, 23, 59, 59),
})
# Should create a work entry
slot.action_send()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertTrue(work_entries)
# Should archive the above created work entry
slot.action_unpublish()
self.assertFalse(work_entries.active)
# Should recreate a new work entry
slot.action_send()
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertTrue(work_entries)
# Should archive the new work entry
slot.unlink()
self.assertFalse(work_entries.active)
def test_work_entry_uses_slot_duration(self):
# Tests that a work entry uses the slot duration instead of computing it itself.
slot = self.env['planning.slot'].create({
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 6, 0, 0, 0),
'end_datetime': datetime(2021, 9, 10, 23, 59, 59),
'allocated_hours': 38,
})
slot.action_send()
self.contract.generate_work_entries(date(2021, 9, 1), date(2021, 9, 30))
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertTrue(work_entries)
self.assertEqual(work_entries.duration, slot.allocated_hours)
def test_invalid_contract(self):
# Tests that slots don't generate work entries if the contract isn't in planning mode
self.contract.write({
'work_entry_source': 'calendar',
})
self.env['planning.slot'].create({
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 14, 14, 0, 0),
'end_datetime': datetime(2021, 9, 14, 17, 0, 0),
'state': 'published',
})
self.contract.generate_work_entries(date(2021, 9, 1), date(2021, 9, 30))
work_entries = self.env['hr.work.entry'].search([('employee_id', '=', self.employee.id)])
self.assertFalse(any(hwe.planning_slot_id for hwe in work_entries))
def test_create_work_entries(self):
""" No assertion in this test, the purpose is just to check that
plannings_slots._create_work_entries() happens without raising error
when one of the slots is related to work_entries and the other not.
"""
self.contract.write({
'date_generated_from': datetime(2021, 9, 1, 0, 0, 0),
'date_generated_to': datetime(2021, 9, 30, 23, 59, 59),
})
employee2 = self.env['hr.employee'].create({
'name': 'Santa Cruise',
})
self.env['hr.contract'].create({
'name': 'Santa Cruise\'s contract',
'employee_id': employee2.id,
'wage': 5300,
'work_entry_source': 'planning',
'date_start': '2020-01-01',
'state': 'open',
'date_generated_from': datetime(2021, 9, 1, 0, 0, 0),
'date_generated_to': datetime(2021, 9, 30, 23, 59, 59),
})
planning_slots = self.env['planning.slot'].create([{
'resource_id': self.employee.resource_id.id,
'start_datetime': datetime(2021, 9, 14, 14, 0, 0),
'end_datetime': datetime(2021, 9, 14, 17, 0, 0),
}, {
'resource_id': employee2.resource_id.id,
'start_datetime': datetime(2021, 9, 15, 14, 0, 0),
'end_datetime': datetime(2021, 9, 15, 17, 0, 0),
}])
self.env['hr.work.entry'].create({
'name': 'Mission Impossible: Distribute Gifts',
'employee_id': employee2.id,
'contract_id': employee2.contract_id.id,
'date_start': datetime(2021, 9, 15, 14, 0, 0),
'date_stop': datetime(2021, 9, 15, 17, 0, 0),
})
planning_slots._create_work_entries()
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="hr_contract_view_form_inherit_work_entry_planning" model="ir.ui.view">
<field name="name">hr.contract.view.form.inherit.work.entry.planning</field>
<field name="model">hr.contract</field>
<field name="inherit_id" ref="hr_contract.hr_contract_view_form"/>
<field name="arch" type="xml">
<!-- Make it visible now since we have more than one choice -->
<xpath expr="//field[@name='work_entry_source']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
</field>
</record>
</odoo>
@@ -0,0 +1,4 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import hr_work_entry_regeneration_wizard
@@ -0,0 +1,10 @@
# -*- coding:utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class HrWorkEntryRegenerationWizard(models.TransientModel):
_inherit = 'hr.work.entry.regeneration.wizard'
def _work_entry_fields_to_nullify(self):
return super()._work_entry_fields_to_nullify() + ['planning_slot_id']