init
This commit is contained in:
@@ -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']
|
||||
Reference in New Issue
Block a user