From 50b0b453aade821844958b9a29535ba71327e9c1 Mon Sep 17 00:00:00 2001 From: Alfredo Date: Tue, 15 Oct 2024 12:59:09 +0200 Subject: [PATCH] [16.0][ADD] mrp_product_loss: In product new field "Loss in products to be consumed". --- mrp_product_loss/README.rst | 32 +++++++++ mrp_product_loss/__init__.py | 1 + mrp_product_loss/__manifest__.py | 20 ++++++ mrp_product_loss/i18n/ca_ES.po | 65 +++++++++++++++++++ mrp_product_loss/i18n/en_GB.po | 65 +++++++++++++++++++ mrp_product_loss/i18n/es.po | 65 +++++++++++++++++++ mrp_product_loss/i18n/fr.po | 65 +++++++++++++++++++ mrp_product_loss/i18n/mrp_product_loss.pot | 65 +++++++++++++++++++ mrp_product_loss/models/__init__.py | 4 ++ mrp_product_loss/models/mrp_bom_line.py | 13 ++++ mrp_product_loss/models/mrp_production.py | 22 +++++++ mrp_product_loss/models/product_template.py | 13 ++++ mrp_product_loss/models/stock_move.py | 37 +++++++++++ mrp_product_loss/views/mrp_bom_views.xml | 15 +++++ .../views/mrp_production_views.xml | 16 +++++ .../views/product_template_views.xml | 24 +++++++ mrp_product_loss/views/stock_move_views.xml | 13 ++++ .../odoo/addons/mrp_product_loss | 1 + setup/mrp_product_loss/setup.py | 6 ++ 19 files changed, 542 insertions(+) create mode 100644 mrp_product_loss/README.rst create mode 100644 mrp_product_loss/__init__.py create mode 100644 mrp_product_loss/__manifest__.py create mode 100644 mrp_product_loss/i18n/ca_ES.po create mode 100644 mrp_product_loss/i18n/en_GB.po create mode 100644 mrp_product_loss/i18n/es.po create mode 100644 mrp_product_loss/i18n/fr.po create mode 100644 mrp_product_loss/i18n/mrp_product_loss.pot create mode 100644 mrp_product_loss/models/__init__.py create mode 100644 mrp_product_loss/models/mrp_bom_line.py create mode 100644 mrp_product_loss/models/mrp_production.py create mode 100644 mrp_product_loss/models/product_template.py create mode 100644 mrp_product_loss/models/stock_move.py create mode 100644 mrp_product_loss/views/mrp_bom_views.xml create mode 100644 mrp_product_loss/views/mrp_production_views.xml create mode 100644 mrp_product_loss/views/product_template_views.xml create mode 100644 mrp_product_loss/views/stock_move_views.xml create mode 120000 setup/mrp_product_loss/odoo/addons/mrp_product_loss create mode 100644 setup/mrp_product_loss/setup.py diff --git a/mrp_product_loss/README.rst b/mrp_product_loss/README.rst new file mode 100644 index 000000000..792a968be --- /dev/null +++ b/mrp_product_loss/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 product loss +================ + +* In product new field "Loss in products to be consumed". +* In the components of the BOMs, show the product loss. +* When a manufacturing order is confirmed, the quantity to be consumed will be + the quantity to be consumed given to us by the system, plus the loss defined + in the product. + +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 +------------ + +* Alfredo de la Fuente +* Ana Juaristi diff --git a/mrp_product_loss/__init__.py b/mrp_product_loss/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/mrp_product_loss/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mrp_product_loss/__manifest__.py b/mrp_product_loss/__manifest__.py new file mode 100644 index 000000000..ce6719ece --- /dev/null +++ b/mrp_product_loss/__manifest__.py @@ -0,0 +1,20 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +{ + "name": "MRP Product loss", + "version": "16.0.1.0.0", + "category": "Manufacturing/Manufacturing", + "license": "AGPL-3", + "author": "AvanzOSC", + "website": "https://github.com/avanzosc/mrp-addons", + "depends": [ + "mrp", + ], + "data": [ + "views/product_template_views.xml", + "views/mrp_bom_views.xml", + "views/mrp_production_views.xml", + "views/stock_move_views.xml", + ], + "installable": True, +} diff --git a/mrp_product_loss/i18n/ca_ES.po b/mrp_product_loss/i18n/ca_ES.po new file mode 100644 index 000000000..3f51e2b7e --- /dev/null +++ b/mrp_product_loss/i18n/ca_ES.po @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_product_loss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-23 07:30+0000\n" +"PO-Revision-Date: 2024-10-23 07:30+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_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_bom_line +msgid "Bill of Material Line" +msgstr "Línia de Llista de Materials" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__product_loss_qty +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.mrp_bom_form_view +msgid "Loss Quantity" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_product__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_template__product_loss_qty +msgid "Loss in products to be consumed" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_mrp_bom_line__product_loss_qty +msgid "Loss quantity" +msgstr "" + +#. module: mrp_product_loss +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.view_template_property_form +msgid "Manufacturing" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_product_template +msgid "Product" +msgstr "Producte" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_production +msgid "Production Order" +msgstr "Ordre de producció" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_stock_move +msgid "Stock Move" +msgstr "Moviment d'estoc" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__to_consume_before_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__to_consume_before_loss_qty +msgid "To Consume Before Loss Quantity" +msgstr "" diff --git a/mrp_product_loss/i18n/en_GB.po b/mrp_product_loss/i18n/en_GB.po new file mode 100644 index 000000000..904c07f2c --- /dev/null +++ b/mrp_product_loss/i18n/en_GB.po @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_product_loss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-23 07:30+0000\n" +"PO-Revision-Date: 2024-10-23 07:30+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_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_bom_line +msgid "Bill of Material Line" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__product_loss_qty +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.mrp_bom_form_view +msgid "Loss Quantity" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_product__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_template__product_loss_qty +msgid "Loss in products to be consumed" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_mrp_bom_line__product_loss_qty +msgid "Loss quantity" +msgstr "" + +#. module: mrp_product_loss +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.view_template_property_form +msgid "Manufacturing" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_product_template +msgid "Product" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__to_consume_before_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__to_consume_before_loss_qty +msgid "To Consume Before Loss Quantity" +msgstr "" diff --git a/mrp_product_loss/i18n/es.po b/mrp_product_loss/i18n/es.po new file mode 100644 index 000000000..088301493 --- /dev/null +++ b/mrp_product_loss/i18n/es.po @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_product_loss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-23 07:31+0000\n" +"PO-Revision-Date: 2024-10-23 07:31+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_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_bom_line +msgid "Bill of Material Line" +msgstr "Línea de Lista de Materiales" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__product_loss_qty +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.mrp_bom_form_view +msgid "Loss Quantity" +msgstr "Merma" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_product__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_template__product_loss_qty +msgid "Loss in products to be consumed" +msgstr "Merma en productos a consumir" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_mrp_bom_line__product_loss_qty +msgid "Loss quantity" +msgstr "Merma" + +#. module: mrp_product_loss +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.view_template_property_form +msgid "Manufacturing" +msgstr "Fabricación" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_product_template +msgid "Product" +msgstr "Producto" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_production +msgid "Production Order" +msgstr "Orden de producción" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_stock_move +msgid "Stock Move" +msgstr "Movimiento de existencias" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__to_consume_before_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__to_consume_before_loss_qty +msgid "To Consume Before Loss Quantity" +msgstr "A consumir antes merma" diff --git a/mrp_product_loss/i18n/fr.po b/mrp_product_loss/i18n/fr.po new file mode 100644 index 000000000..571d9d8d4 --- /dev/null +++ b/mrp_product_loss/i18n/fr.po @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_product_loss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-23 07:30+0000\n" +"PO-Revision-Date: 2024-10-23 07:30+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_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_bom_line +msgid "Bill of Material Line" +msgstr "Ligne de nomenclature" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__product_loss_qty +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.mrp_bom_form_view +msgid "Loss Quantity" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_product__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_template__product_loss_qty +msgid "Loss in products to be consumed" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_mrp_bom_line__product_loss_qty +msgid "Loss quantity" +msgstr "" + +#. module: mrp_product_loss +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.view_template_property_form +msgid "Manufacturing" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_product_template +msgid "Product" +msgstr "Produit" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_production +msgid "Production Order" +msgstr "Ordre de production" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_stock_move +msgid "Stock Move" +msgstr "Mouvement de stock" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__to_consume_before_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__to_consume_before_loss_qty +msgid "To Consume Before Loss Quantity" +msgstr "" diff --git a/mrp_product_loss/i18n/mrp_product_loss.pot b/mrp_product_loss/i18n/mrp_product_loss.pot new file mode 100644 index 000000000..7321b9780 --- /dev/null +++ b/mrp_product_loss/i18n/mrp_product_loss.pot @@ -0,0 +1,65 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mrp_product_loss +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-23 07:29+0000\n" +"PO-Revision-Date: 2024-10-23 07:29+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_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_bom_line +msgid "Bill of Material Line" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__product_loss_qty +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.mrp_bom_form_view +msgid "Loss Quantity" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_product__product_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_product_template__product_loss_qty +msgid "Loss in products to be consumed" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_mrp_bom_line__product_loss_qty +msgid "Loss quantity" +msgstr "" + +#. module: mrp_product_loss +#: model_terms:ir.ui.view,arch_db:mrp_product_loss.view_template_property_form +msgid "Manufacturing" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_product_template +msgid "Product" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model,name:mrp_product_loss.model_stock_move +msgid "Stock Move" +msgstr "" + +#. module: mrp_product_loss +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_move__to_consume_before_loss_qty +#: model:ir.model.fields,field_description:mrp_product_loss.field_stock_reservation__to_consume_before_loss_qty +msgid "To Consume Before Loss Quantity" +msgstr "" diff --git a/mrp_product_loss/models/__init__.py b/mrp_product_loss/models/__init__.py new file mode 100644 index 000000000..1551c9e8d --- /dev/null +++ b/mrp_product_loss/models/__init__.py @@ -0,0 +1,4 @@ +from . import product_template +from . import mrp_bom_line +from . import stock_move +from . import mrp_production diff --git a/mrp_product_loss/models/mrp_bom_line.py b/mrp_product_loss/models/mrp_bom_line.py new file mode 100644 index 000000000..6a6dfdd93 --- /dev/null +++ b/mrp_product_loss/models/mrp_bom_line.py @@ -0,0 +1,13 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from odoo import fields, models + + +class MrpBomLine(models.Model): + _inherit = "mrp.bom.line" + + product_loss_qty = fields.Float( + string="Loss quantity", + related="product_id.product_loss_qty", + digits="Product Unit of Measure", + ) diff --git a/mrp_product_loss/models/mrp_production.py b/mrp_product_loss/models/mrp_production.py new file mode 100644 index 000000000..e5db5dfe3 --- /dev/null +++ b/mrp_product_loss/models/mrp_production.py @@ -0,0 +1,22 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from odoo import models + + +class MrpProduction(models.Model): + _inherit = "mrp.production" + + def action_confirm(self): + result = super().action_confirm() + for production in self: + lines = production.move_raw_ids.filtered( + lambda x: x.product_tmpl_id.product_loss_qty > 0 + ) + for line in lines: + loss_qty = line.product_tmpl_id.product_loss_qty + line.write( + { + "product_loss_qty": loss_qty, + } + ) + return result diff --git a/mrp_product_loss/models/product_template.py b/mrp_product_loss/models/product_template.py new file mode 100644 index 000000000..3fa14e165 --- /dev/null +++ b/mrp_product_loss/models/product_template.py @@ -0,0 +1,13 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from odoo import fields, models + + +class ProductTemplate(models.Model): + _inherit = "product.template" + + product_loss_qty = fields.Float( + string="Loss in products to be consumed", + digits="Product Unit of Measure", + default="0.0", + ) diff --git a/mrp_product_loss/models/stock_move.py b/mrp_product_loss/models/stock_move.py new file mode 100644 index 000000000..860d65b85 --- /dev/null +++ b/mrp_product_loss/models/stock_move.py @@ -0,0 +1,37 @@ +# Copyright 2024 Alfredo de la Fuente - AvanzOSC +# License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html +from odoo import api, fields, models + + +class StockMove(models.Model): + _inherit = "stock.move" + + to_consume_before_loss_qty = fields.Float( + string="To Consume Before Loss Quantity", + digits="Product Unit of Measure", + default="0.0", + ) + product_loss_qty = fields.Float( + string="Loss Quantity", digits="Product Unit of Measure", default="0.0" + ) + + @api.model_create_multi + def create(self, vals_list): + for values in vals_list: + if ( + "raw_material_production_id" in values + and "product_id" in values + and "product_uom_qty" in values + ): + product = self.env["product.product"].browse(values.get("product_id")) + if product.product_loss_qty > 0: + new_qty = values.get("product_uom_qty") + product.product_loss_qty + values.update( + { + "product_uom_qty": new_qty, + "to_consume_before_loss_qty": values.get("product_uom_qty"), + "product_loss_qty": product.product_loss_qty, + } + ) + moves = super().create(vals_list) + return moves diff --git a/mrp_product_loss/views/mrp_bom_views.xml b/mrp_product_loss/views/mrp_bom_views.xml new file mode 100644 index 000000000..951264b58 --- /dev/null +++ b/mrp_product_loss/views/mrp_bom_views.xml @@ -0,0 +1,15 @@ + + + + mrp.bom + + + + + + + + diff --git a/mrp_product_loss/views/mrp_production_views.xml b/mrp_product_loss/views/mrp_production_views.xml new file mode 100644 index 000000000..d734d7e1e --- /dev/null +++ b/mrp_product_loss/views/mrp_production_views.xml @@ -0,0 +1,16 @@ + + + + mrp.production + + + + + + + + + diff --git a/mrp_product_loss/views/product_template_views.xml b/mrp_product_loss/views/product_template_views.xml new file mode 100644 index 000000000..b8c6e6194 --- /dev/null +++ b/mrp_product_loss/views/product_template_views.xml @@ -0,0 +1,24 @@ + + + + product.template + + + + + + + + + + + + product.template + + + + + + + + diff --git a/mrp_product_loss/views/stock_move_views.xml b/mrp_product_loss/views/stock_move_views.xml new file mode 100644 index 000000000..f040b5a45 --- /dev/null +++ b/mrp_product_loss/views/stock_move_views.xml @@ -0,0 +1,13 @@ + + + + stock.move + + + + + + + + + diff --git a/setup/mrp_product_loss/odoo/addons/mrp_product_loss b/setup/mrp_product_loss/odoo/addons/mrp_product_loss new file mode 120000 index 000000000..4beff468e --- /dev/null +++ b/setup/mrp_product_loss/odoo/addons/mrp_product_loss @@ -0,0 +1 @@ +../../../../mrp_product_loss \ No newline at end of file diff --git a/setup/mrp_product_loss/setup.py b/setup/mrp_product_loss/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/mrp_product_loss/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)