diff --git a/hr_employee_ppe/README.rst b/hr_employee_ppe/README.rst new file mode 100644 index 00000000000..f98975099e7 --- /dev/null +++ b/hr_employee_ppe/README.rst @@ -0,0 +1,115 @@ +============================================== +Personal Protective Equipment (PPE) Management +============================================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:f93350fdf3af6b48bd086a31abb6cd33bcf2b9b3ad1c793ea8fd8a8ac6a65251 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhr-lightgray.png?logo=github + :target: https://github.com/OCA/hr/tree/17.0/hr_employee_ppe + :alt: OCA/hr +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/hr-17-0/hr-17-0-hr_employee_ppe + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/hr&target_branch=17.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows you to manage allocation of PPE to your employees. A +product can be marked as ppe and additional information as duration and +indications can also be added. If ppe products are selected in a +equipment request, a button to print a receipt of PPE will appear. In +addition, a chron will check every day if an allocation has been +expired. + +**Table of contents** + +.. contents:: + :local: + +Installation +============ + +To install this module, you need to have HR module installed or it will +be requested during installation. + +Usage +===== + + + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +------- + +* Escodoo + +Contributors +------------ + +- Eduardo Aparicio +- Marcel Savegnago +- Joao Carassato +- Fernando Colus +- Alba Riera + +Other credits +------------- + +The development of this module has been financially supported by: + +- Escodoo - https://www.escodoo.com.br +- Creu Blanca - https://www.creublanca.es + +Maintainers +----------- + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +.. |maintainer-marcelsavegnago| image:: https://github.com/marcelsavegnago.png?size=40px + :target: https://github.com/marcelsavegnago + :alt: marcelsavegnago +.. |maintainer-eduaparicio| image:: https://github.com/eduaparicio.png?size=40px + :target: https://github.com/eduaparicio + :alt: eduaparicio + +Current `maintainers `__: + +|maintainer-marcelsavegnago| |maintainer-eduaparicio| + +This module is part of the `OCA/hr `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/hr_employee_ppe/__init__.py b/hr_employee_ppe/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/hr_employee_ppe/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/hr_employee_ppe/__manifest__.py b/hr_employee_ppe/__manifest__.py new file mode 100644 index 00000000000..f61ca263f1e --- /dev/null +++ b/hr_employee_ppe/__manifest__.py @@ -0,0 +1,23 @@ +# Copyright 2020 Escodoo +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + "name": "Personal Protective Equipment (PPE) Management", + "version": "17.0.1.0.0", + "author": "Escodoo, Odoo Community Association (OCA)", + "maintainers": ["marcelsavegnago", "eduaparicio"], + "images": ["static/description/banner.png"], + "website": "https://github.com/OCA/hr", + "license": "AGPL-3", + "category": "Human Resources", + "depends": ["hr_personal_equipment_request"], + "data": [ + "views/product_template.xml", + "views/hr_personal_equipment.xml", + "views/hr_personal_equipment_request.xml", + "data/hr_employee_ppe_cron.xml", + "reports/hr_employee_ppe_report_template.xml", + "reports/hr_employee_ppe_report.xml", + ], + "installable": True, +} diff --git a/hr_employee_ppe/data/hr_employee_ppe_cron.xml b/hr_employee_ppe/data/hr_employee_ppe_cron.xml new file mode 100644 index 00000000000..fbd418470f0 --- /dev/null +++ b/hr_employee_ppe/data/hr_employee_ppe_cron.xml @@ -0,0 +1,14 @@ + + + + PPE's expiry date verification + + code + model.cron_ppe_expiry_verification() + + 1 + days + -1 + + + diff --git a/hr_employee_ppe/i18n/de.po b/hr_employee_ppe/i18n/de.po new file mode 100644 index 00000000000..9fde619dd05 --- /dev/null +++ b/hr_employee_ppe/i18n/de.po @@ -0,0 +1,274 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_ppe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: de\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Date:" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Signature:" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment +msgid "Adds personal equipment information and allocation" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +msgid "Certification Information" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__certification +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__certification +msgid "Certification Number" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Contains PPE" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__contains_ppe +msgid "Contains Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__days +msgid "Days" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Employee PPE" +msgstr "" + +#. module: hr_employee_ppe +#: code:addons/hr_employee_ppe/models/hr_personal_equipment.py:0 +#, python-format +msgid "End date cannot occur earlier than start date." +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_tree_view +msgid "Expirable" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Expirable Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "Expire Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__hours +msgid "Hours" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I agree to wear the equipment when facing the exposure it is designed to " +"protect against.\n" +" I acknowledge that my failure to do so may " +"subject me to disciplinary action." +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I, the undersigned accept the PPE that my employer is providing to me. I " +"further acknowledge that I have been instructed\n" +" in how to wear and maintain it. If it is lost or " +"damaged, I will report the same to my employer promptly for replacement." +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__id +msgid "ID" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__indications +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Indications" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_interval_type +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_interval_type +msgid "Interval Unit" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Is PPE" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__is_ppe +msgid "Is Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__issued_by +msgid "Issued By" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__minutes +msgid "Minutes" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__months +msgid "Months" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Duration" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Indications" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Interval Type" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_duration +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_duration +msgid "PPE duration" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.actions.server,name:hr_employee_ppe.hr_employee_ppe_cron_ir_actions_server +#: model:ir.cron,cron_name:hr_employee_ppe.hr_employee_ppe_cron +#: model:ir.cron,name:hr_employee_ppe.hr_employee_ppe_cron +msgid "PPE's expiry date verification" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Print Receipt of PPE" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Product" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_product_template +msgid "Product Template" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Quantity" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Receipt of Personal Protection Equipment" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.actions.report,name:hr_employee_ppe.hr_employee_ppe_report +msgid "Receipt of Personal protection Equipment" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Select this option if the PPE has expiry date." +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__indications +msgid "Situations in which the employee should use this equipment." +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__indications +msgid "" +"Situations in which the employee should use this equipment. Only for ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment_request +msgid "This model allows to create a personal equipment request" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "True if the PPE expires" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__weeks +msgid "Weeks" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "is providing" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "with the following Personal Protection Equipment (PPE):" +msgstr "" diff --git a/hr_employee_ppe/i18n/es.po b/hr_employee_ppe/i18n/es.po new file mode 100644 index 00000000000..3960cf84b56 --- /dev/null +++ b/hr_employee_ppe/i18n/es.po @@ -0,0 +1,286 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_ppe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2024-02-18 21:33+0000\n" +"Last-Translator: Ivorra78 \n" +"Language-Team: none\n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Date:" +msgstr "Fecha:" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Signature:" +msgstr "Firma:" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment +msgid "Adds personal equipment information and allocation" +msgstr "Agrega información y asignación del equipo individual" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +msgid "Certification Information" +msgstr "Información de certificación" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__certification +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__certification +msgid "Certification Number" +msgstr "Número de certificación" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Contains PPE" +msgstr "Contiene EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__contains_ppe +msgid "Contains Ppe" +msgstr "Contiene EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__days +msgid "Days" +msgstr "Días" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__display_name +msgid "Display Name" +msgstr "Nombre mostrado" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Employee PPE" +msgstr "Empleado EPI" + +#. module: hr_employee_ppe +#: code:addons/hr_employee_ppe/models/hr_personal_equipment.py:0 +#, python-format +msgid "End date cannot occur earlier than start date." +msgstr "La fecha de finalización no puede ser anterior a la fecha de inicio." + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_tree_view +msgid "Expirable" +msgstr "Vencido" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Expirable Ppe" +msgstr "EPI vencido" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "Expire Ppe" +msgstr "EPI vencido" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__hours +msgid "Hours" +msgstr "Horas" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I agree to wear the equipment when facing the exposure it is designed to " +"protect against.\n" +" I acknowledge that my failure to do so may " +"subject me to disciplinary action." +msgstr "" +"Acepto llevar el equipo cuando me enfrente a la exposición contra la que " +"está diseñado para protegerme.\n" +" Reconozco que mi incumplimiento puede ser objeto " +"de medidas disciplinarias." + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I, the undersigned accept the PPE that my employer is providing to me. I " +"further acknowledge that I have been instructed\n" +" in how to wear and maintain it. If it is lost or " +"damaged, I will report the same to my employer promptly for replacement." +msgstr "" +"Yo, el abajo firmante, acepto el EPI que mi empleador me proporciona. " +"Reconozco además que he sido instruido\n" +" sobre cómo llevarlo y mantenerlo. En caso de " +"pérdida o deterioro, informaré inmediatamente a mi empleador para su " +"sustitución." + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__id +msgid "ID" +msgstr "ID" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__indications +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Indications" +msgstr "Indicaciones" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_interval_type +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_interval_type +msgid "Interval Unit" +msgstr "Unidad de intervalo" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Is PPE" +msgstr "Es EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__is_ppe +msgid "Is Ppe" +msgstr "Es EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__issued_by +msgid "Issued By" +msgstr "Usado por" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template____last_update +msgid "Last Modified on" +msgstr "Última modificación el" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__minutes +msgid "Minutes" +msgstr "Minutos" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__months +msgid "Months" +msgstr "Meses" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Duration" +msgstr "Duración del EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Indications" +msgstr "Indicaciones del EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Interval Type" +msgstr "Tipo de intervalo de EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_duration +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_duration +msgid "PPE duration" +msgstr "Duración del EPI" + +#. module: hr_employee_ppe +#: model:ir.actions.server,name:hr_employee_ppe.hr_employee_ppe_cron_ir_actions_server +#: model:ir.cron,cron_name:hr_employee_ppe.hr_employee_ppe_cron +#: model:ir.cron,name:hr_employee_ppe.hr_employee_ppe_cron +msgid "PPE's expiry date verification" +msgstr "Verificación de la fecha de caducidad del EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Print Receipt of PPE" +msgstr "Imprimir nota del EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Product" +msgstr "Producto" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_product_template +msgid "Product Template" +msgstr "Plantilla de producto" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Quantity" +msgstr "Cantidad" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Receipt of Personal Protection Equipment" +msgstr "Recibo del Equipo de protección personal" + +#. module: hr_employee_ppe +#: model:ir.actions.report,name:hr_employee_ppe.hr_employee_ppe_report +msgid "Receipt of Personal protection Equipment" +msgstr "Recibo del Equipo de protección personal" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Select this option if the PPE has expiry date." +msgstr "Seleccione esta opción si el EPI tiene fecha de caducidad." + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__indications +msgid "Situations in which the employee should use this equipment." +msgstr "Situaciones en las que el empleado debe utilizar este equipo." + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__indications +msgid "" +"Situations in which the employee should use this equipment. Only for ppe" +msgstr "" +"Situaciones en las que el empleado debe utilizar este equipo. Solo para EPI" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment_request +msgid "This model allows to create a personal equipment request" +msgstr "Este modelo permite crear una solicitud de equipo personal" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "True if the PPE expires" +msgstr "Verdadero si el EPI caduca" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__weeks +msgid "Weeks" +msgstr "Semanas" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "is providing" +msgstr "está proporcionando" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "with the following Personal Protection Equipment (PPE):" +msgstr "con los siguientes Equipos de Protección Individual (EPI):" diff --git a/hr_employee_ppe/i18n/hr_employee_ppe.pot b/hr_employee_ppe/i18n/hr_employee_ppe.pot new file mode 100644 index 00000000000..40a526c6c30 --- /dev/null +++ b/hr_employee_ppe/i18n/hr_employee_ppe.pot @@ -0,0 +1,269 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_ppe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \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_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Date:" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Signature:" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment +msgid "Adds personal equipment information and allocation" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +msgid "Certification Information" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__certification +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__certification +msgid "Certification Number" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Contains PPE" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__contains_ppe +msgid "Contains Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__days +msgid "Days" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__display_name +msgid "Display Name" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Employee PPE" +msgstr "" + +#. module: hr_employee_ppe +#: code:addons/hr_employee_ppe/models/hr_personal_equipment.py:0 +#, python-format +msgid "End date cannot occur earlier than start date." +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_tree_view +msgid "Expirable" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Expirable Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "Expire Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__hours +msgid "Hours" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I agree to wear the equipment when facing the exposure it is designed to protect against.\n" +" I acknowledge that my failure to do so may subject me to disciplinary action." +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I, the undersigned accept the PPE that my employer is providing to me. I further acknowledge that I have been instructed\n" +" in how to wear and maintain it. If it is lost or damaged, I will report the same to my employer promptly for replacement." +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__id +msgid "ID" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__indications +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Indications" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_interval_type +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_interval_type +msgid "Interval Unit" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Is PPE" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__is_ppe +msgid "Is Ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__issued_by +msgid "Issued By" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template____last_update +msgid "Last Modified on" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__minutes +msgid "Minutes" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__months +msgid "Months" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Duration" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Indications" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Interval Type" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_duration +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_duration +msgid "PPE duration" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.actions.server,name:hr_employee_ppe.hr_employee_ppe_cron_ir_actions_server +#: model:ir.cron,cron_name:hr_employee_ppe.hr_employee_ppe_cron +#: model:ir.cron,name:hr_employee_ppe.hr_employee_ppe_cron +msgid "PPE's expiry date verification" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Print Receipt of PPE" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Product" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_product_template +msgid "Product Template" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Quantity" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Receipt of Personal Protection Equipment" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.actions.report,name:hr_employee_ppe.hr_employee_ppe_report +msgid "Receipt of Personal protection Equipment" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Select this option if the PPE has expiry date." +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__indications +msgid "Situations in which the employee should use this equipment." +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__indications +msgid "" +"Situations in which the employee should use this equipment. Only for ppe" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment_request +msgid "This model allows to create a personal equipment request" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "True if the PPE expires" +msgstr "" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__weeks +msgid "Weeks" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "is providing" +msgstr "" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "with the following Personal Protection Equipment (PPE):" +msgstr "" diff --git a/hr_employee_ppe/i18n/it.po b/hr_employee_ppe/i18n/it.po new file mode 100644 index 00000000000..734eac16c92 --- /dev/null +++ b/hr_employee_ppe/i18n/it.po @@ -0,0 +1,287 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_ppe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"PO-Revision-Date: 2023-05-31 16:09+0000\n" +"Last-Translator: mymage \n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Date:" +msgstr "Data:" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Signature:" +msgstr "Firma:" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment +msgid "Adds personal equipment information and allocation" +msgstr "Aggiunge informazioni e assegnazione su attrezzatura individuale" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +msgid "Certification Information" +msgstr "Informazione certificazione" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__certification +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__certification +msgid "Certification Number" +msgstr "Numero certificazione" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Contains PPE" +msgstr "Contiene DPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__contains_ppe +msgid "Contains Ppe" +msgstr "Contiene DPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__days +msgid "Days" +msgstr "Giorni" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__display_name +msgid "Display Name" +msgstr "Nome visualizzato" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Employee PPE" +msgstr "DPI dipendente" + +#. module: hr_employee_ppe +#: code:addons/hr_employee_ppe/models/hr_personal_equipment.py:0 +#, python-format +msgid "End date cannot occur earlier than start date." +msgstr "La data di fine non può precedere quella di inizio." + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_tree_view +msgid "Expirable" +msgstr "Con scadenza" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Expirable Ppe" +msgstr "DPI con scadenza" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "Expire Ppe" +msgstr "Scadenza DPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__hours +msgid "Hours" +msgstr "Ore" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I agree to wear the equipment when facing the exposure it is designed to " +"protect against.\n" +" I acknowledge that my failure to do so may " +"subject me to disciplinary action." +msgstr "" +"Concordo di indossare il dispositivo quando sono esposto ad un rischio " +"contro il quale è progettato.\n" +" Riconosco che non utilizzarlo mi farà incorrere " +"in un'azione disciplinare." + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I, the undersigned accept the PPE that my employer is providing to me. I " +"further acknowledge that I have been instructed\n" +" in how to wear and maintain it. If it is lost or " +"damaged, I will report the same to my employer promptly for replacement." +msgstr "" +"Io sottoscritto accetto il DPI che il mio datore di lavoro mi sta fornendo. " +"Riconosco che sono stato istruito\n" +" su come indossarlo e manutenerlo. Se verrà perso " +"o danneggiato, informerò prontamente il mio datore di lavoro per la " +"sostituzione." + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__id +msgid "ID" +msgstr "ID" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__indications +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Indications" +msgstr "Indicazioni" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_interval_type +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_interval_type +msgid "Interval Unit" +msgstr "Unità intervallo" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Is PPE" +msgstr "È un DPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__is_ppe +msgid "Is Ppe" +msgstr "È un DPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__issued_by +msgid "Issued By" +msgstr "Distribuito da" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template____last_update +msgid "Last Modified on" +msgstr "Ultima modifica il" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__minutes +msgid "Minutes" +msgstr "Minuti" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__months +msgid "Months" +msgstr "Mesi" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Duration" +msgstr "Durata DPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Indications" +msgstr "Indicazioni DPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Interval Type" +msgstr "Tipo intervallo DPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_duration +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_duration +msgid "PPE duration" +msgstr "Durata DPI" + +#. module: hr_employee_ppe +#: model:ir.actions.server,name:hr_employee_ppe.hr_employee_ppe_cron_ir_actions_server +#: model:ir.cron,cron_name:hr_employee_ppe.hr_employee_ppe_cron +#: model:ir.cron,name:hr_employee_ppe.hr_employee_ppe_cron +msgid "PPE's expiry date verification" +msgstr "Verifica data scadenza DPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Print Receipt of PPE" +msgstr "Stampa ricevuta DPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Product" +msgstr "Prodotto" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_product_template +msgid "Product Template" +msgstr "Modello prodotto" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Quantity" +msgstr "Quantità" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Receipt of Personal Protection Equipment" +msgstr "Ricevuta dispositivo di protezione individuale" + +#. module: hr_employee_ppe +#: model:ir.actions.report,name:hr_employee_ppe.hr_employee_ppe_report +msgid "Receipt of Personal protection Equipment" +msgstr "Ricevuta dispositivo di protezione individuale" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Select this option if the PPE has expiry date." +msgstr "Selezionare questa opzione se il DPI ha una data di scadenza." + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__indications +msgid "Situations in which the employee should use this equipment." +msgstr "Casi in cui il dipendente deve utilizzare questo dispositivo." + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__indications +msgid "" +"Situations in which the employee should use this equipment. Only for ppe" +msgstr "" +"Casi in cui il dipendente deve utilizzare questo dispositivo. solo per DPI" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment_request +msgid "This model allows to create a personal equipment request" +msgstr "" +"Questo modello permette di creare una richiesta attrezzatura individuale" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "True if the PPE expires" +msgstr "Vero se il DPI scade" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__weeks +msgid "Weeks" +msgstr "Settimane" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "is providing" +msgstr "sta fornendo" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "with the following Personal Protection Equipment (PPE):" +msgstr "con il seguente dispositivo di protezione individuale (DPI):" diff --git a/hr_employee_ppe/i18n/pt_BR.po b/hr_employee_ppe/i18n/pt_BR.po new file mode 100644 index 00000000000..83cf287ee69 --- /dev/null +++ b/hr_employee_ppe/i18n/pt_BR.po @@ -0,0 +1,487 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * hr_employee_ppe +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 12.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2021-02-20 17:47+0000\n" +"PO-Revision-Date: 2023-09-03 13:41+0000\n" +"Last-Translator: Douglas Custódio \n" +"Language-Team: \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 4.17\n" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Date:" +msgstr "Data:" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Signature:" +msgstr "Assinatura:" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment +msgid "Adds personal equipment information and allocation" +msgstr "Adiciona informações e alocação de equipamentos pessoais" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +msgid "Certification Information" +msgstr "Informações de certificação" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__certification +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__certification +msgid "Certification Number" +msgstr "Número de Certificação" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Contains PPE" +msgstr "Contém EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__contains_ppe +msgid "Contains Ppe" +msgstr "Contém Epi" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__days +msgid "Days" +msgstr "Dias" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__display_name +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__display_name +msgid "Display Name" +msgstr "Nome exibido" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Employee PPE" +msgstr "EPI de Funcionário" + +#. module: hr_employee_ppe +#: code:addons/hr_employee_ppe/models/hr_personal_equipment.py:0 +#, python-format +msgid "End date cannot occur earlier than start date." +msgstr "Data final não pode ocorrer antes da data de início." + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_tree_view +msgid "Expirable" +msgstr "Expirado" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Expirable Ppe" +msgstr "EPI Expirável" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "Expire Ppe" +msgstr "Expirar EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__hours +msgid "Hours" +msgstr "Horas" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I agree to wear the equipment when facing the exposure it is designed to " +"protect against.\n" +" I acknowledge that my failure to do so may " +"subject me to disciplinary action." +msgstr "" +"Concordo em usar o equipamento quando enfrentar a exposição contra a qual " +"foi projetado para proteger.\n" +" Reconheço que minha falha em fazê-lo pode me " +"sujeitar a ações disciplinares." + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "" +"I, the undersigned accept the PPE that my employer is providing to me. I " +"further acknowledge that I have been instructed\n" +" in how to wear and maintain it. If it is lost or " +"damaged, I will report the same to my employer promptly for replacement." +msgstr "" +"Eu, abaixo assinado, aceito o EPI que meu empregador me fornece. Reconheço " +"ainda que fui instruído\n" +" em como usá-lo e mantê-lo. Se for perdido ou " +"danificado, informarei o mesmo ao meu empregador imediatamente para " +"substituição." + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request__id +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__id +msgid "ID" +msgstr "ID" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__indications +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Indications" +msgstr "Indicações" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_interval_type +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_interval_type +msgid "Interval Unit" +msgstr "Unidade de Intervalo" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "Is PPE" +msgstr "É EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__is_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__is_ppe +msgid "Is Ppe" +msgstr "É Epi" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment__issued_by +msgid "Issued By" +msgstr "Publicado Por" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_hr_personal_equipment_request____last_update +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template____last_update +msgid "Last Modified on" +msgstr "Última modificação em" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__minutes +msgid "Minutes" +msgstr "Minutos" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__months +msgid "Months" +msgstr "Meses" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Duration" +msgstr "Duração do EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_form_view +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Indications" +msgstr "Indicações do EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.product_template_form_view +msgid "PPE Interval Type" +msgstr "Tipo de Intervalo do EPI" + +#. module: hr_employee_ppe +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_product__ppe_duration +#: model:ir.model.fields,field_description:hr_employee_ppe.field_product_template__ppe_duration +msgid "PPE duration" +msgstr "Duração do EPI" + +#. module: hr_employee_ppe +#: model:ir.actions.server,name:hr_employee_ppe.hr_employee_ppe_cron_ir_actions_server +#: model:ir.cron,cron_name:hr_employee_ppe.hr_employee_ppe_cron +#: model:ir.cron,name:hr_employee_ppe.hr_employee_ppe_cron +msgid "PPE's expiry date verification" +msgstr "Verificação da data de validade do EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_personal_equipment_request_form_view +msgid "Print Receipt of PPE" +msgstr "Imprimir Recibo de EPI" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Product" +msgstr "Produto" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_product_template +msgid "Product Template" +msgstr "Modelo Produto" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Quantity" +msgstr "Quantidade" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "Receipt of Personal Protection Equipment" +msgstr "Recebimento de Equipamentos de Proteção Individual" + +#. module: hr_employee_ppe +#: model:ir.actions.report,name:hr_employee_ppe.hr_employee_ppe_report +msgid "Receipt of Personal protection Equipment" +msgstr "Recebimento de Equipamento de Proteção Individual" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__expirable_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__expirable_ppe +msgid "Select this option if the PPE has expiry date." +msgstr "Selecione esta opção se o EPI tiver data de validade." + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__indications +msgid "Situations in which the employee should use this equipment." +msgstr "Situações em que o funcionário deve usar este equipamento." + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_product_product__indications +#: model:ir.model.fields,help:hr_employee_ppe.field_product_template__indications +msgid "" +"Situations in which the employee should use this equipment. Only for ppe" +msgstr "" +"Situações em que o funcionário deverá utilizar este equipamento. Somente " +"para EPI" + +#. module: hr_employee_ppe +#: model:ir.model,name:hr_employee_ppe.model_hr_personal_equipment_request +msgid "This model allows to create a personal equipment request" +msgstr "Este modelo permite criar uma requisição de equipamento pessoal" + +#. module: hr_employee_ppe +#: model:ir.model.fields,help:hr_employee_ppe.field_hr_personal_equipment__expire_ppe +msgid "True if the PPE expires" +msgstr "Verdadeiro se o EPI expira" + +#. module: hr_employee_ppe +#: model:ir.model.fields.selection,name:hr_employee_ppe.selection__product_template__ppe_interval_type__weeks +msgid "Weeks" +msgstr "Semanas" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "is providing" +msgstr "está fornecendo" + +#. module: hr_employee_ppe +#: model_terms:ir.ui.view,arch_db:hr_employee_ppe.hr_employee_ppe_report_template +msgid "with the following Personal Protection Equipment (PPE):" +msgstr "com o seguinte Equipamento de Proteção Individual (EPI):" + +#~ msgid " to " +#~ msgstr " para " + +#~ msgid "# Certificate" +#~ msgstr "# Certificado" + +#~ msgid "Action Needed" +#~ msgstr "Ação Necessária" + +#~ msgid "Activities" +#~ msgstr "Atividades" + +#~ msgid "Activity State" +#~ msgstr "Estado de Atividade" + +#~ msgid "Attachment Count" +#~ msgstr "Contagem de Anexos" + +#~ msgid "Certification Authority" +#~ msgstr "Autoridade de Certificação" + +#~ msgid "Created by" +#~ msgstr "Criado por" + +#~ msgid "Created on" +#~ msgstr "Criado em" + +#~ msgid "Description" +#~ msgstr "Descrição" + +#~ msgid "Employee" +#~ msgstr "Funcionário" + +#~ msgid "End Date" +#~ msgstr "Data Final" + +#~ msgid "End date cannot occur earlier than the start date." +#~ msgstr "A data de término não pode ocorrer antes da data de início." + +#~ msgid "Equipment" +#~ msgstr "Equipamento" + +#~ msgid "Equipments" +#~ msgstr "Equipamentos" + +#~ msgid "Expire" +#~ msgstr "Expirar" + +#~ msgid "Expired" +#~ msgstr "Expirado" + +#~ msgid "Followers" +#~ msgstr "Seguidores" + +#~ msgid "Followers (Channels)" +#~ msgstr "Seguidores (Canais)" + +#~ msgid "Followers (Partners)" +#~ msgstr "Seguidores (Parceiros)" + +#~ msgid "Group By" +#~ msgstr "Agrupar por" + +#~ msgid "If checked new messages require your attention." +#~ msgstr "Se marcado, novas mensagens solicitarão sua atenção." + +#~ msgid "If checked, new messages require your attention." +#~ msgstr "Se marcado novas mensagens solicitarão sua atenção." + +#~ msgid "If checked, some messages have a delivery error." +#~ msgstr "Se marcado, algumas mensagens tem erro de entrega." + +#~ msgid "Is Follower" +#~ msgstr "É um seguidor" + +#~ msgid "Last Updated by" +#~ msgstr "Última atualização por" + +#~ msgid "Last Updated on" +#~ msgstr "Atualizado pela última vez em" + +#~ msgid "Main Attachment" +#~ msgstr "Anexo Principal" + +#~ msgid "Message Delivery error" +#~ msgstr "Erro de entrega de Mensagem" + +#~ msgid "Messages" +#~ msgstr "Mensagens" + +#~ msgid "Name" +#~ msgstr "Nome" + +#~ msgid "Next Activity Deadline" +#~ msgstr "Prazo final para Próxima Atividade" + +#~ msgid "Next Activity Summary" +#~ msgstr "Próximo Sumário de Atividade" + +#~ msgid "Next Activity Type" +#~ msgstr "Tipo da Próxima Atividade" + +#~ msgid "Number of Actions" +#~ msgstr "Número de ações" + +#~ msgid "Number of error" +#~ msgstr "Número do erro" + +#~ msgid "Number of messages which requires an action" +#~ msgstr "Número de mensagens que requer uma ação" + +#~ msgid "Number of messages with delivery error" +#~ msgstr "Número de mensagens com erro de entrega" + +#~ msgid "Number of unread messages" +#~ msgstr "Quantidade de mensagens não lidas" + +#~ msgid "Overdue" +#~ msgstr "Vencido(a)" + +#~ msgid "PPE" +#~ msgstr "EPI" + +#~ msgid "PPE - Equipment" +#~ msgstr "EPI - Equipamento" + +#~ msgid "PPE Allocation" +#~ msgstr "Alocação de EPI" + +#~ msgid "PPE Status" +#~ msgstr "Situação do EPI" + +#~ msgid "PPEs" +#~ msgstr "EPIs" + +#~ msgid "Personal Protective Equipment (PPE)" +#~ msgstr "Equipamento de proteção individual (EPI)" + +#~ msgid "Personal Protective Equipments" +#~ msgstr "Equipamentos de Proteção Individual" + +#~ msgid "Personal Protective Equipments (PPEs)" +#~ msgstr "Equipamentos de Proteção Individual (EPIs)" + +#~ msgid "Personal Protective Equipments - Equipment List" +#~ msgstr "Equipamentos de Proteção Individual - Lista de Equipamentos" + +#~ msgid "Planned" +#~ msgstr "Planejado" + +#~ msgid "Responsible User" +#~ msgstr "Usuário Responsável" + +#~ msgid "Search PPEs" +#~ msgstr "Pesquisar EPIs" + +#~ msgid "" +#~ "Select the PPE from the product list.\n" +#~ " Please note that the PPE must be a consumable product." +#~ msgstr "" +#~ "Selecione o EPI na lista de produtos.\n" +#~ " Por favor, note que o EPI deve ser um produto consumível." + +#~ msgid "Start Date" +#~ msgstr "Data de Início" + +#~ msgid "Status" +#~ msgstr "Situação" + +#~ msgid "" +#~ "Status based on activities\n" +#~ "Overdue: Due date is already passed\n" +#~ "Today: Activity date is today\n" +#~ "Planned: Future activities." +#~ msgstr "" +#~ "Status baseado em atividades\n" +#~ "Atrasado: Data definida já passou\n" +#~ "Hoje: Data de atividade é hoje\n" +#~ "Planejado: Atividades futuras." + +#~ msgid "Today" +#~ msgstr "Hoje" + +#~ msgid "Unread Messages" +#~ msgstr "Mensagens não lidas" + +#~ msgid "Unread Messages Counter" +#~ msgstr "Contador de Mensagens Não Lidas" + +#~ msgid "Valid" +#~ msgstr "Válido" + +#~ msgid "" +#~ "You must inform start date and\n" +#~ " end date for expirable PPEs." +#~ msgstr "" +#~ "Você deve informar a data de início e\n" +#~ " data final para EPIs expirados." diff --git a/hr_employee_ppe/models/__init__.py b/hr_employee_ppe/models/__init__.py new file mode 100644 index 00000000000..d7a256c3ffe --- /dev/null +++ b/hr_employee_ppe/models/__init__.py @@ -0,0 +1,3 @@ +from . import hr_personal_equipment +from . import product_template +from . import hr_personal_equipment_request diff --git a/hr_employee_ppe/models/hr_personal_equipment.py b/hr_employee_ppe/models/hr_personal_equipment.py new file mode 100644 index 00000000000..fae2b0fc72f --- /dev/null +++ b/hr_employee_ppe/models/hr_personal_equipment.py @@ -0,0 +1,75 @@ +# Copyright 2020 Escodoo +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from datetime import date + +from odoo import _, api, fields, models +from odoo.exceptions import ValidationError + +from odoo.addons.base.models.ir_cron import _intervalTypes + + +class HrPersonalEquipment(models.Model): + _name = "hr.personal.equipment" + _inherit = ["hr.personal.equipment"] + + is_ppe = fields.Boolean() + indications = fields.Text( + help="Situations in which the employee should use this equipment.", + ) + expire_ppe = fields.Boolean(help="True if the PPE expires") + certification = fields.Char( + string="Certification Number", help="Certification Number" + ) + issued_by = fields.Many2one(comodel_name="res.users") + + def _accept_request_vals(self): + res = super()._accept_request_vals() + res["issued_by"] = self.env.user.id + return res + + @api.onchange("product_id") + def _compute_fields(self): + for rec in self: + if rec.product_id.is_ppe: + rec.is_ppe = rec.product_id.is_ppe + if rec.product_id.expirable_ppe: + rec.expire_ppe = rec.product_id.expirable_ppe + if rec.product_id.indications: + rec.indications = rec.product_id.indications + + def _validate_allocation_vals(self): + res = super()._validate_allocation_vals() + if self.start_date: + start_date = self.start_date + else: + start_date = date.today() + if not self.expiry_date and self.product_id.expirable_ppe: + res["expiry_date"] = start_date + _intervalTypes[ + self.product_id.ppe_interval_type + ](self.product_id.ppe_duration) + return res + + def validate_allocation(self): + res = super().validate_allocation() + self._check_dates() + return res + + @api.model + def cron_ppe_expiry_verification(self, date_ref=None): + if not date_ref: + date_ref = fields.Date.context_today(self) + domain = [] + domain.extend([("expiry_date", "<", date_ref)]) + ppes_to_check_expiry = self.search(domain) + for record in ppes_to_check_expiry: + record.state = "expired" + + def _check_dates(self): + for record in self: + if record.expire_ppe: + start_date = record.start_date if record.start_date else date.today() + if record.expiry_date < start_date: + raise ValidationError( + _("End date cannot occur earlier than start date.") + ) diff --git a/hr_employee_ppe/models/hr_personal_equipment_request.py b/hr_employee_ppe/models/hr_personal_equipment_request.py new file mode 100644 index 00000000000..445be2da59d --- /dev/null +++ b/hr_employee_ppe/models/hr_personal_equipment_request.py @@ -0,0 +1,25 @@ +# Copyright 2021 Creu Blanca +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class HrPersonalEquipmentRequest(models.Model): + _inherit = "hr.personal.equipment.request" + + contains_ppe = fields.Boolean(compute="_compute_contains_ppe") + + def _compute_contains_ppe(self): + for rec in self: + contains_ppe = False + for line in rec.line_ids: + if line.is_ppe: + contains_ppe = True + break + rec.contains_ppe = contains_ppe + + def action_view_ppe_report(self): + report = self.env["ir.actions.report"]._get_report_from_name( + "hr_employee_ppe.hr_employee_ppe_report_template" + ) + return report.report_action(self) diff --git a/hr_employee_ppe/models/product_template.py b/hr_employee_ppe/models/product_template.py new file mode 100644 index 00000000000..5df032bb8aa --- /dev/null +++ b/hr_employee_ppe/models/product_template.py @@ -0,0 +1,28 @@ +# Copyright 2020 Escodoo +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class ProductTemplate(models.Model): + _name = "product.template" + _inherit = ["product.template"] + + is_ppe = fields.Boolean(default=False) + indications = fields.Text( + help="Situations in which the employee should use this equipment. Only for ppe", + ) + expirable_ppe = fields.Boolean( + help="Select this option if the PPE has expiry date.", default=False + ) + ppe_duration = fields.Integer(string="PPE duration") + ppe_interval_type = fields.Selection( + [ + ("minutes", "Minutes"), + ("hours", "Hours"), + ("days", "Days"), + ("weeks", "Weeks"), + ("months", "Months"), + ], + string="Interval Unit", + ) diff --git a/hr_employee_ppe/pyproject.toml b/hr_employee_ppe/pyproject.toml new file mode 100644 index 00000000000..4231d0cccb3 --- /dev/null +++ b/hr_employee_ppe/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/hr_employee_ppe/readme/CONTRIBUTORS.md b/hr_employee_ppe/readme/CONTRIBUTORS.md new file mode 100644 index 00000000000..22c1eca1cf5 --- /dev/null +++ b/hr_employee_ppe/readme/CONTRIBUTORS.md @@ -0,0 +1,5 @@ +- Eduardo Aparicio \<\> +- Marcel Savegnago \<\> +- Joao Carassato \<\> +- Fernando Colus \<\> +- Alba Riera \<\> diff --git a/hr_employee_ppe/readme/CREDITS.md b/hr_employee_ppe/readme/CREDITS.md new file mode 100644 index 00000000000..e4726c09de0 --- /dev/null +++ b/hr_employee_ppe/readme/CREDITS.md @@ -0,0 +1,4 @@ +The development of this module has been financially supported by: + +- Escodoo - +- Creu Blanca - diff --git a/hr_employee_ppe/readme/DESCRIPTION.md b/hr_employee_ppe/readme/DESCRIPTION.md new file mode 100644 index 00000000000..ebb39280817 --- /dev/null +++ b/hr_employee_ppe/readme/DESCRIPTION.md @@ -0,0 +1,6 @@ +This module allows you to manage allocation of PPE to your employees. A +product can be marked as ppe and additional information as duration and +indications can also be added. If ppe products are selected in a +equipment request, a button to print a receipt of PPE will appear. In +addition, a chron will check every day if an allocation has been +expired. diff --git a/hr_employee_ppe/readme/INSTALL.md b/hr_employee_ppe/readme/INSTALL.md new file mode 100644 index 00000000000..a50855b9f8f --- /dev/null +++ b/hr_employee_ppe/readme/INSTALL.md @@ -0,0 +1,2 @@ +To install this module, you need to have HR module installed or it will +be requested during installation. diff --git a/hr_employee_ppe/readme/USAGE.md b/hr_employee_ppe/readme/USAGE.md new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/hr_employee_ppe/readme/USAGE.md @@ -0,0 +1 @@ + diff --git a/hr_employee_ppe/reports/hr_employee_ppe_report.xml b/hr_employee_ppe/reports/hr_employee_ppe_report.xml new file mode 100644 index 00000000000..6a151608b76 --- /dev/null +++ b/hr_employee_ppe/reports/hr_employee_ppe_report.xml @@ -0,0 +1,16 @@ + + + + Receipt of Personal protection Equipment + hr.personal.equipment.request + qweb-pdf + hr_employee_ppe.hr_employee_ppe_report_template + hr_employee_ppe.hr_employee_ppe_report_template + + report + + diff --git a/hr_employee_ppe/reports/hr_employee_ppe_report_template.xml b/hr_employee_ppe/reports/hr_employee_ppe_report_template.xml new file mode 100644 index 00000000000..bc977a55f25 --- /dev/null +++ b/hr_employee_ppe/reports/hr_employee_ppe_report_template.xml @@ -0,0 +1,75 @@ + + + + diff --git a/hr_employee_ppe/static/description/banner.png b/hr_employee_ppe/static/description/banner.png new file mode 100644 index 00000000000..da4f6de2a24 Binary files /dev/null and b/hr_employee_ppe/static/description/banner.png differ diff --git a/hr_employee_ppe/static/description/icon.png b/hr_employee_ppe/static/description/icon.png new file mode 100644 index 00000000000..3a0328b516c Binary files /dev/null and b/hr_employee_ppe/static/description/icon.png differ diff --git a/hr_employee_ppe/static/description/index.html b/hr_employee_ppe/static/description/index.html new file mode 100644 index 00000000000..28c47700773 --- /dev/null +++ b/hr_employee_ppe/static/description/index.html @@ -0,0 +1,453 @@ + + + + + +Personal Protective Equipment (PPE) Management + + + +
+

Personal Protective Equipment (PPE) Management

+ + +

Beta License: AGPL-3 OCA/hr Translate me on Weblate Try me on Runboat

+

This module allows you to manage allocation of PPE to your employees. A +product can be marked as ppe and additional information as duration and +indications can also be added. If ppe products are selected in a +equipment request, a button to print a receipt of PPE will appear. In +addition, a chron will check every day if an allocation has been +expired.

+

Table of contents

+ +
+

Installation

+

To install this module, you need to have HR module installed or it will +be requested during installation.

+
+
+

Usage

+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Escodoo
  • +
+
+ +
+

Other credits

+

The development of this module has been financially supported by:

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

Current maintainers:

+

marcelsavegnago eduaparicio

+

This module is part of the OCA/hr project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/hr_employee_ppe/tests/__init__.py b/hr_employee_ppe/tests/__init__.py new file mode 100644 index 00000000000..a4ead52e41f --- /dev/null +++ b/hr_employee_ppe/tests/__init__.py @@ -0,0 +1 @@ +from . import test_hr_employee_ppe diff --git a/hr_employee_ppe/tests/test_hr_employee_ppe.py b/hr_employee_ppe/tests/test_hr_employee_ppe.py new file mode 100644 index 00000000000..adb506861fe --- /dev/null +++ b/hr_employee_ppe/tests/test_hr_employee_ppe.py @@ -0,0 +1,201 @@ +# Copyright 2020 - TODAY, Marcel Savegnago - Escodoo +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl + +from datetime import date, datetime, timedelta + +from odoo.exceptions import ValidationError +from odoo.tests import TransactionCase + +from odoo.addons.base.models.ir_cron import _intervalTypes + + +class TestHREmployeePPE(TransactionCase): + def setUp(self): + super().setUp() + self.product_employee_ppe_expirable = self.env["product.template"].create( + { + "name": "Product Test Employee PPE", + "is_personal_equipment": True, + "is_ppe": True, + "indications": "Test indications", + "expirable_ppe": True, + "ppe_interval_type": "days", + "ppe_duration": 3, + } + ) + self.product_employee_ppe_no_expirable = self.env["product.template"].create( + { + "name": "Product Test Employee No PPE", + "is_personal_equipment": True, + "is_ppe": True, + "indications": "Test indications", + "expirable_ppe": False, + } + ) + self.user = ( + self.env["res.users"] + .sudo() + .create( + { + "name": "Test User", + "login": "user@test.com", + "email": "user@test.com", + "groups_id": [ + (4, self.env.ref("base.group_user").id), + (4, self.env.ref("hr.group_hr_user").id), + ], + } + ) + ) + self.employee = self.env["hr.employee"].create( + {"name": "Employee Test", "user_id": self.user.id} + ) + product_exp = self.product_employee_ppe_expirable.product_variant_id + product_no_exp = self.product_employee_ppe_no_expirable.product_variant_id + lines = [ + { + "name": "Personal Equipment PPE Expirable", + "product_id": product_exp.id, + "quantity": 3, + }, + { + "name": "Personal Equipment No Expirable", + "product_id": product_no_exp.id, + "quantity": 2, + }, + ] + + self.personal_equipment_request = ( + self.env["hr.personal.equipment.request"] + .with_user(self.user.id) + .create( + { + "name": "Personal Equipment Request Test", + "line_ids": [(0, 0, line) for line in lines], + } + ) + ) + + self.hr_employee_ppe_expirable = self.personal_equipment_request.line_ids[0] + self.hr_employee_ppe_no_expirable = self.personal_equipment_request.line_ids[1] + + def test_compute_fields(self): + self.hr_employee_ppe_expirable._compute_fields() + self.assertTrue(self.hr_employee_ppe_expirable.is_ppe) + self.assertTrue(self.hr_employee_ppe_expirable.expire_ppe) + self.assertEqual( + self.hr_employee_ppe_expirable.indications, + self.product_employee_ppe_expirable.indications, + ) + + def test_accept_allocation(self): + self.assertFalse(self.hr_employee_ppe_expirable.issued_by) + self.personal_equipment_request.with_user(self.user).accept_request() + self.assertTrue(self.hr_employee_ppe_expirable.issued_by) + self.assertEqual(self.hr_employee_ppe_expirable.issued_by, self.user) + + def test_validate_allocation_with_start_date(self): + self.assertFalse(self.hr_employee_ppe_expirable.expiry_date) + self.hr_employee_ppe_expirable.start_date = "2020-01-01" + self.hr_employee_ppe_expirable.validate_allocation() + self.assertTrue(self.hr_employee_ppe_expirable.expiry_date) + self.assertEqual(str(self.hr_employee_ppe_expirable.expiry_date), "2020-01-04") + + def test_validate_allocation_without_start_date(self): + self.assertFalse(self.hr_employee_ppe_expirable.expiry_date) + self.assertFalse(self.hr_employee_ppe_expirable.start_date) + self.hr_employee_ppe_expirable.validate_allocation() + self.assertEqual( + self.hr_employee_ppe_expirable.expiry_date, + date.today() + + _intervalTypes[self.product_employee_ppe_expirable.ppe_interval_type]( + self.product_employee_ppe_expirable.ppe_duration + ), + ) + + def test_cron_ppe_expiry_verification_expired_product(self): + self.hr_employee_ppe_expirable.start_date = "2020-01-01" + self.hr_employee_ppe_expirable.expiry_date = "2020-12-31" + self.hr_employee_ppe_expirable.validate_allocation() + self.assertEqual(self.hr_employee_ppe_expirable.state, "valid") + self.hr_employee_ppe_expirable.cron_ppe_expiry_verification() + self.assertEqual(self.hr_employee_ppe_expirable.state, "expired") + + def test_cron_ppe_expiry_verification_no_expired_product(self): + self.hr_employee_ppe_expirable.expiry_date = ( + datetime.now() + timedelta(days=1) + ).strftime("%Y-%m-%d") + self.hr_employee_ppe_expirable.validate_allocation() + self.assertEqual(self.hr_employee_ppe_expirable.state, "valid") + self.hr_employee_ppe_expirable.cron_ppe_expiry_verification() + self.assertNotEqual(self.hr_employee_ppe_expirable.state, "expired") + + def test_cron_ppe_expiry_verification_no_expirable_product(self): + self.hr_employee_ppe_no_expirable.validate_allocation() + self.assertEqual(self.hr_employee_ppe_no_expirable.state, "valid") + self.hr_employee_ppe_no_expirable.cron_ppe_expiry_verification() + self.assertNotEqual(self.hr_employee_ppe_no_expirable.state, "expired") + + def test_check_dates(self): + with self.assertRaises(ValidationError): + self.hr_employee_ppe_expirable.start_date = "2020-01-01" + self.hr_employee_ppe_expirable.expiry_date = "2019-12-31" + self.hr_employee_ppe_expirable._compute_fields() + self.hr_employee_ppe_expirable.validate_allocation() + + def test_compute_contains_ppe(self): + # Without ppes + product_employee_no_ppe = self.env["product.template"].create( + { + "name": "Product Test Employee No PPE", + "is_personal_equipment": True, + "is_ppe": False, + } + ) + product = product_employee_no_ppe.product_variant_id + lines = [ + { + "name": "Personal Equipment PPE Expirable", + "product_id": product.id, + "quantity": 3, + } + ] + + personal_equipment_request = ( + self.env["hr.personal.equipment.request"] + .with_user(self.user.id) + .create( + { + "name": "Personal Equipment Request Test", + "line_ids": [(0, 0, line) for line in lines], + } + ) + ) + personal_equipment_request._compute_contains_ppe() + self.assertFalse(personal_equipment_request.contains_ppe) + + # With ppes + product = self.product_employee_ppe_expirable.product_variant_id + lines.append( + { + "name": "Personal Equipment PPE Expirable", + "is_ppe": True, + "product_id": product.id, + "quantity": 3, + } + ) + personal_equipment_request["line_ids"] = [(0, 0, line) for line in lines] + personal_equipment_request._compute_contains_ppe() + self.assertTrue(personal_equipment_request.contains_ppe) + + def test_action_view_ppe_report(self): + self.env.company.external_report_layout_id = self.env.ref( + "web.external_layout_standard" + ).id + action = self.personal_equipment_request.action_view_ppe_report() + self.assertEqual(action["name"], "Receipt of Personal protection Equipment") + self.assertEqual(len(action["context"]["active_ids"]), 1) + self.assertEqual( + action["context"]["active_ids"][0], self.personal_equipment_request.id + ) + self.assertEqual(action["report_type"], "qweb-pdf") diff --git a/hr_employee_ppe/views/hr_personal_equipment.xml b/hr_employee_ppe/views/hr_personal_equipment.xml new file mode 100644 index 00000000000..66f8021b7d2 --- /dev/null +++ b/hr_employee_ppe/views/hr_personal_equipment.xml @@ -0,0 +1,98 @@ + + + + + hr.personal.equipment.tree + hr.personal.equipment + + + + + + + + + + + hr.personal.equipment.form (in hr_employee_ppe) + hr.personal.equipment + + + + + + + + + + state != 'expired' and (not expire_ppe) + state not in ['draft','accepted'] + + + + + + + + + + + + + + hr.personal.equipment.form (in hr_employee_ppe) + hr.personal.equipment + + + + True + base.group_user + + + True + base.group_user + + + True + base.group_user + + + True + base.group_user + + + True + base.group_user + + + + diff --git a/hr_employee_ppe/views/hr_personal_equipment_request.xml b/hr_employee_ppe/views/hr_personal_equipment_request.xml new file mode 100644 index 00000000000..569f6141f8e --- /dev/null +++ b/hr_employee_ppe/views/hr_personal_equipment_request.xml @@ -0,0 +1,41 @@ + + + + + hr.personal.equipment.request.form (in hr_employee_ppe) + hr.personal.equipment.request + + + +