diff --git a/mrp_bom_ref_calculate/README.rst b/mrp_bom_ref_calculate/README.rst new file mode 100644 index 00000000..b6b8d355 --- /dev/null +++ b/mrp_bom_ref_calculate/README.rst @@ -0,0 +1,32 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +===================== +Mrp bom ref calculate +===================== + +* In BoM new field "Ref. Note". The BoM reference is now calculated as follows: + +BoM reference = concatenate( +product_id.default_code or product_tmplate_id.default_code, version, "Ref. Note" +) + +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 smash it by providing detailed and welcomed feedback. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Contributors +------------ + +* Ana Juaristi +* Alfredo de la Fuente diff --git a/mrp_bom_ref_calculate/__init__.py b/mrp_bom_ref_calculate/__init__.py new file mode 100644 index 00000000..0650744f --- /dev/null +++ b/mrp_bom_ref_calculate/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mrp_bom_ref_calculate/__manifest__.py b/mrp_bom_ref_calculate/__manifest__.py new file mode 100644 index 00000000..b3d944fe --- /dev/null +++ b/mrp_bom_ref_calculate/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "Mrp BoM Ref Calculate", + "version": "16.0.1.0.0", + "category": "Manufacturing", + "website": "https://github.com/avanzosc/mrp-addons", + "author": "AvanzOSC", + "license": "AGPL-3", + "depends": ["mrp", "mrp_bom_version"], + "data": [ + "views/mrp_bom_views.xml", + "views/mrp_production_views.xml", + ], + "installable": True, +} diff --git a/mrp_bom_ref_calculate/i18n/ca_ES.po b/mrp_bom_ref_calculate/i18n/ca_ES.po new file mode 100644 index 00000000..b7c67ffa --- /dev/null +++ b/mrp_bom_ref_calculate/i18n/ca_ES.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_bom_ref_calculate +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-28 08:09+0000\n" +"PO-Revision-Date: 2024-11-28 08:09+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: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_bom +msgid "Bill of Material" +msgstr "Llista de material" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_production__bom_ref +#: model_terms:ir.ui.view,arch_db:mrp_bom_ref_calculate.view_mrp_production_filter +msgid "BoM Reference" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_production +msgid "Production Order" +msgstr "Ordre de producció" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__ref_note +msgid "Ref. Note" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__code +msgid "Reference" +msgstr "Referència" diff --git a/mrp_bom_ref_calculate/i18n/en_GB.po b/mrp_bom_ref_calculate/i18n/en_GB.po new file mode 100644 index 00000000..71f0ecc1 --- /dev/null +++ b/mrp_bom_ref_calculate/i18n/en_GB.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_bom_ref_calculate +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-28 08:09+0000\n" +"PO-Revision-Date: 2024-11-28 08:09+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: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_bom +msgid "Bill of Material" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_production__bom_ref +#: model_terms:ir.ui.view,arch_db:mrp_bom_ref_calculate.view_mrp_production_filter +msgid "BoM Reference" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__ref_note +msgid "Ref. Note" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__code +msgid "Reference" +msgstr "" diff --git a/mrp_bom_ref_calculate/i18n/es.po b/mrp_bom_ref_calculate/i18n/es.po new file mode 100644 index 00000000..f4d34307 --- /dev/null +++ b/mrp_bom_ref_calculate/i18n/es.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_bom_ref_calculate +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-28 08:10+0000\n" +"PO-Revision-Date: 2024-11-28 08:10+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: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_bom +msgid "Bill of Material" +msgstr "Lista de materiales" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_production__bom_ref +#: model_terms:ir.ui.view,arch_db:mrp_bom_ref_calculate.view_mrp_production_filter +msgid "BoM Reference" +msgstr "Referencia LdM" + +#. module: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_production +msgid "Production Order" +msgstr "Orden de producción" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__ref_note +msgid "Ref. Note" +msgstr "Ref. Nota" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__code +msgid "Reference" +msgstr "Referencia" diff --git a/mrp_bom_ref_calculate/i18n/fr.po b/mrp_bom_ref_calculate/i18n/fr.po new file mode 100644 index 00000000..ce3a8ec2 --- /dev/null +++ b/mrp_bom_ref_calculate/i18n/fr.po @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_bom_ref_calculate +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-28 08:10+0000\n" +"PO-Revision-Date: 2024-11-28 08:10+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: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_bom +msgid "Bill of Material" +msgstr "Nomenclature" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_production__bom_ref +#: model_terms:ir.ui.view,arch_db:mrp_bom_ref_calculate.view_mrp_production_filter +msgid "BoM Reference" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_production +msgid "Production Order" +msgstr "Ordre de production" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__ref_note +msgid "Ref. Note" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__code +msgid "Reference" +msgstr "Référence" diff --git a/mrp_bom_ref_calculate/i18n/mrp_bom_ref_calculate.pot b/mrp_bom_ref_calculate/i18n/mrp_bom_ref_calculate.pot new file mode 100644 index 00000000..71f0ecc1 --- /dev/null +++ b/mrp_bom_ref_calculate/i18n/mrp_bom_ref_calculate.pot @@ -0,0 +1,42 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_bom_ref_calculate +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-28 08:09+0000\n" +"PO-Revision-Date: 2024-11-28 08:09+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: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_bom +msgid "Bill of Material" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_production__bom_ref +#: model_terms:ir.ui.view,arch_db:mrp_bom_ref_calculate.view_mrp_production_filter +msgid "BoM Reference" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model,name:mrp_bom_ref_calculate.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__ref_note +msgid "Ref. Note" +msgstr "" + +#. module: mrp_bom_ref_calculate +#: model:ir.model.fields,field_description:mrp_bom_ref_calculate.field_mrp_bom__code +msgid "Reference" +msgstr "" diff --git a/mrp_bom_ref_calculate/models/__init__.py b/mrp_bom_ref_calculate/models/__init__.py new file mode 100644 index 00000000..9a394f76 --- /dev/null +++ b/mrp_bom_ref_calculate/models/__init__.py @@ -0,0 +1,2 @@ +from . import mrp_bom +from . import mrp_production diff --git a/mrp_bom_ref_calculate/models/mrp_bom.py b/mrp_bom_ref_calculate/models/mrp_bom.py new file mode 100644 index 00000000..dc02f6e2 --- /dev/null +++ b/mrp_bom_ref_calculate/models/mrp_bom.py @@ -0,0 +1,38 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from odoo import api, fields, models + + +class MrpBom(models.Model): + _inherit = "mrp.bom" + + ref_note = fields.Char(string="Ref. Note") + code = fields.Char(compute="_compute_code", store=True, copy=False) + + @api.depends( + "product_tmpl_id", + "product_tmpl_id.default_code", + "product_id", + "product_id.default_code", + "version", + "ref_note", + ) + def _compute_code(self): + for bom in self: + default_code = ( + bom.product_id.default_code + if bom.product_id and bom.product_id.default_code + else "" + ) + if ( + not default_code + and bom.product_tmpl_id + and bom.product_tmpl_id.default_code + ): + default_code = bom.product_tmpl_id.default_code + code = default_code + if bom.version: + code += str(bom.version) + if bom.ref_note: + code += str(bom.ref_note) + bom.code = code diff --git a/mrp_bom_ref_calculate/models/mrp_production.py b/mrp_bom_ref_calculate/models/mrp_production.py new file mode 100644 index 00000000..570d96fb --- /dev/null +++ b/mrp_bom_ref_calculate/models/mrp_production.py @@ -0,0 +1,9 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from odoo import fields, models + + +class MrpProduction(models.Model): + _inherit = "mrp.production" + + bom_ref = fields.Char(string="BoM Reference", related="bom_id.code", store=True) diff --git a/mrp_bom_ref_calculate/views/mrp_bom_views.xml b/mrp_bom_ref_calculate/views/mrp_bom_views.xml new file mode 100644 index 00000000..43e3f1f4 --- /dev/null +++ b/mrp_bom_ref_calculate/views/mrp_bom_views.xml @@ -0,0 +1,15 @@ + + + + mrp.bom + + + + 1 + + + + + + + diff --git a/mrp_bom_ref_calculate/views/mrp_production_views.xml b/mrp_bom_ref_calculate/views/mrp_production_views.xml new file mode 100644 index 00000000..74e0bc4a --- /dev/null +++ b/mrp_bom_ref_calculate/views/mrp_production_views.xml @@ -0,0 +1,43 @@ + + + + mrp.production + + +
+
+
+
+ + + mrp.production + + + + + + + + + + mrp.production + + + + + + + + + + +
diff --git a/setup/mrp_bom_ref_calculate/odoo/addons/mrp_bom_ref_calculate b/setup/mrp_bom_ref_calculate/odoo/addons/mrp_bom_ref_calculate new file mode 120000 index 00000000..42a51855 --- /dev/null +++ b/setup/mrp_bom_ref_calculate/odoo/addons/mrp_bom_ref_calculate @@ -0,0 +1 @@ +../../../../mrp_bom_ref_calculate \ No newline at end of file diff --git a/setup/mrp_bom_ref_calculate/setup.py b/setup/mrp_bom_ref_calculate/setup.py new file mode 100644 index 00000000..28c57bb6 --- /dev/null +++ b/setup/mrp_bom_ref_calculate/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)