diff --git a/mrp_multi_level/README.rst b/mrp_multi_level/README.rst index f45bdc7df..ccedb0035 100644 --- a/mrp_multi_level/README.rst +++ b/mrp_multi_level/README.rst @@ -7,20 +7,20 @@ MRP Multi Level !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png +.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png :target: https://odoo-community.org/page/development-status - :alt: Beta + :alt: Production/Stable .. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html :alt: License: LGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github - :target: https://github.com/OCA/manufacture/tree/12.0/mrp_multi_level + :target: https://github.com/OCA/manufacture/tree/13.0/mrp_multi_level :alt: OCA/manufacture .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/manufacture-12-0/manufacture-12-0-mrp_multi_level + :target: https://translation.odoo-community.org/projects/manufacture-13-0/manufacture-13-0-mrp_multi_level :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/129/12.0 + :target: https://runbot.odoo-community.org/runbot/129/13.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -82,6 +82,11 @@ To launch replenishment orders (moves, purchases, production orders...): Changelog ========= +13.0.1.0.0 (2019-12-18) +~~~~~~~~~~~~~~~~~~~~~~~ + +* [MIG] Migration to v13. + 12.0.1.0.0 (2019-08-05) ~~~~~~~~~~~~~~~~~~~~~~~ @@ -147,7 +152,7 @@ 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 smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -158,14 +163,14 @@ Authors ~~~~~~~ * Ucamco -* Eficent +* ForgeFlow Contributors ~~~~~~~~~~~~ * Wim Audenaert -* Jordi Ballester -* Lois Rilo +* Jordi Ballester +* Lois Rilo Maintainers ~~~~~~~~~~~ @@ -180,17 +185,17 @@ 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-jbeficent| image:: https://github.com/jbeficent.png?size=40px - :target: https://github.com/jbeficent - :alt: jbeficent -.. |maintainer-lreficent| image:: https://github.com/lreficent.png?size=40px - :target: https://github.com/lreficent - :alt: lreficent +.. |maintainer-JordiBForgeFlow| image:: https://github.com/JordiBForgeFlow.png?size=40px + :target: https://github.com/JordiBForgeFlow + :alt: JordiBForgeFlow +.. |maintainer-LoisRForgeFlow| image:: https://github.com/LoisRForgeFlow.png?size=40px + :target: https://github.com/LoisRForgeFlow + :alt: LoisRForgeFlow Current `maintainers `__: -|maintainer-jbeficent| |maintainer-lreficent| +|maintainer-JordiBForgeFlow| |maintainer-LoisRForgeFlow| -This module is part of the `OCA/manufacture `_ project on GitHub. +This module is part of the `OCA/manufacture `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mrp_multi_level/__manifest__.py b/mrp_multi_level/__manifest__.py index ebfb8b027..dd061398b 100644 --- a/mrp_multi_level/__manifest__.py +++ b/mrp_multi_level/__manifest__.py @@ -1,14 +1,14 @@ # Copyright 2016 Ucamco - Wim Audenaert -# Copyright 2016-19 Eficent Business and IT Consulting Services S.L. +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). { "name": "MRP Multi Level", - "version": "12.0.1.0.1", - "development_status": "Beta", + "version": "13.0.1.0.0", + "development_status": "Production/Stable", "license": "LGPL-3", - "author": "Ucamco, " "Eficent, " "Odoo Community Association (OCA)", - "maintainers": ["jbeficent", "lreficent"], + "author": "Ucamco, ForgeFlow, Odoo Community Association (OCA)", + "maintainers": ["JordiBForgeFlow", "LoisRForgeFlow"], "summary": "Adds an MRP Scheduler", "website": "https://github.com/OCA/manufacture", "category": "Manufacturing", diff --git a/mrp_multi_level/data/mrp_multi_level_cron.xml b/mrp_multi_level/data/mrp_multi_level_cron.xml old mode 100755 new mode 100644 diff --git a/mrp_multi_level/demo/initial_on_hand_demo.xml b/mrp_multi_level/demo/initial_on_hand_demo.xml index 000bd9f8e..2ab8d3c6e 100644 --- a/mrp_multi_level/demo/initial_on_hand_demo.xml +++ b/mrp_multi_level/demo/initial_on_hand_demo.xml @@ -2,7 +2,7 @@ - Simulating MRP + Starting On-hand for MRP demo @@ -25,6 +25,10 @@ 15 + + + + diff --git a/mrp_multi_level/demo/res_partner_demo.xml b/mrp_multi_level/demo/res_partner_demo.xml index ecb86d323..d49b54f1e 100644 --- a/mrp_multi_level/demo/res_partner_demo.xml +++ b/mrp_multi_level/demo/res_partner_demo.xml @@ -4,7 +4,5 @@ Lazer Tech 1 - - diff --git a/mrp_multi_level/migrations/11.0.2.0.0/post-migration.py b/mrp_multi_level/migrations/11.0.2.0.0/post-migration.py deleted file mode 100644 index 54434b935..000000000 --- a/mrp_multi_level/migrations/11.0.2.0.0/post-migration.py +++ /dev/null @@ -1,66 +0,0 @@ -# Copyright 2019 Eficent Business and IT Consulting Services, S.L. -# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). -import logging - -from odoo import SUPERUSER_ID, api - -_logger = logging.getLogger(__name__) - -__name__ = "Upgrade to 11.0.2.0.0" - - -def _migrate_product_to_product_mrp_area(env): - _logger.info("Migrating product parameters to Product MRP Areas") - env.cr.execute( - """ - SELECT DISTINCT mrp_area.id, pr.id, pr.mrp_applicable, pr.mrp_exclude, - pr.mrp_inspection_delay, pr.mrp_maximum_order_qty, - pr.mrp_minimum_order_qty, pr.mrp_minimum_stock, pr.mrp_nbr_days, - pr.mrp_qty_multiple, pr.mrp_transit_delay, pr.mrp_verified, pr.active - FROM product_product AS pr - CROSS JOIN mrp_area - LEFT JOIN product_template AS pt - ON pt.id = pr.product_tmpl_id - WHERE pr.mrp_exclude = False - AND pt.type = 'product' - """ - ) - product_mrp_area_model = env["product.mrp.area"] - for ( - mrp_area_id, - product_id, - mrp_applicable, - mrp_exclude, - mrp_inspection_delay, - mrp_maximum_order_qty, - mrp_minimum_order_qty, - mrp_minimum_stock, - mrp_nbr_days, - mrp_qty_multiple, - mrp_transit_delay, - mrp_verified, - active, - ) in env.cr.fetchall(): - product_mrp_area_model.create( - { - "mrp_area_id": mrp_area_id, - "product_id": product_id, - "mrp_applicable": mrp_applicable, - "mrp_exclude": mrp_exclude, - "mrp_inspection_delay": mrp_inspection_delay, - "mrp_maximum_order_qty": mrp_maximum_order_qty, - "mrp_minimum_order_qty": mrp_minimum_order_qty, - "mrp_minimum_stock": mrp_minimum_stock, - "mrp_nbr_days": mrp_nbr_days, - "mrp_qty_multiple": mrp_qty_multiple, - "mrp_transit_delay": mrp_transit_delay, - "mrp_verified": mrp_verified, - "active": active, - } - ) - - -def migrate(cr, version): - with api.Environment.manage(): - env = api.Environment(cr, SUPERUSER_ID, {}) - _migrate_product_to_product_mrp_area(env) diff --git a/mrp_multi_level/models/mrp_area.py b/mrp_multi_level/models/mrp_area.py index 7ac94f23c..ad0368e40 100644 --- a/mrp_multi_level/models/mrp_area.py +++ b/mrp_multi_level/models/mrp_area.py @@ -1,10 +1,10 @@ # © 2016 Ucamco - Wim Audenaert -# © 2016-19 Eficent Business and IT Consulting Services S.L. -# - Jordi Ballester Alomar -# - Lois Rilo Antelo +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) +# - Jordi Ballester Alomar +# - Lois Rilo Antelo # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). -from odoo import api, fields, models +from odoo import fields, models class MrpArea(models.Model): @@ -28,7 +28,6 @@ class MrpArea(models.Model): related="warehouse_id.calendar_id", ) - @api.multi def _get_locations(self): self.ensure_one() return self.env["stock.location"].search( diff --git a/mrp_multi_level/models/mrp_inventory.py b/mrp_multi_level/models/mrp_inventory.py index a312750db..d96a65cd5 100644 --- a/mrp_multi_level/models/mrp_inventory.py +++ b/mrp_multi_level/models/mrp_inventory.py @@ -1,7 +1,7 @@ # © 2016 Ucamco - Wim Audenaert -# Copyright 2016-19 Eficent Business and IT Consulting Services S.L. -# - Jordi Ballester Alomar -# - Lois Rilo Antelo +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) +# - Jordi Ballester Alomar +# - Lois Rilo Antelo # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). from datetime import date, timedelta @@ -63,7 +63,6 @@ class MrpInventory(models.Model): comodel_name="mrp.planned.order", inverse_name="mrp_inventory_id", readonly=True ) - @api.multi def _compute_uom_id(self): for rec in self: rec.uom_id = rec.product_mrp_area_id.product_id.uom_id @@ -75,7 +74,6 @@ class MrpInventory(models.Model): rec.planned_order_ids.mapped("qty_released") ) - @api.multi @api.depends( "product_mrp_area_id", "product_mrp_area_id.main_supplierinfo_id", diff --git a/mrp_multi_level/models/mrp_move.py b/mrp_multi_level/models/mrp_move.py index 199643fbf..d2ea26196 100644 --- a/mrp_multi_level/models/mrp_move.py +++ b/mrp_multi_level/models/mrp_move.py @@ -1,5 +1,5 @@ # © 2016 Ucamco - Wim Audenaert -# © 2016-18 Eficent Business and IT Consulting Services S.L. +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). from odoo import fields, models diff --git a/mrp_multi_level/models/mrp_planned_order.py b/mrp_multi_level/models/mrp_planned_order.py index 2f6734811..de1ee4166 100644 --- a/mrp_multi_level/models/mrp_planned_order.py +++ b/mrp_multi_level/models/mrp_planned_order.py @@ -1,5 +1,5 @@ -# Copyright 2019 Eficent Business and IT Consulting Services S.L. -# - Lois Rilo Antelo +# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com) +# - Lois Rilo Antelo # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). from odoo import fields, models diff --git a/mrp_multi_level/models/product_mrp_area.py b/mrp_multi_level/models/product_mrp_area.py index 7165c3ada..3e114ae86 100644 --- a/mrp_multi_level/models/product_mrp_area.py +++ b/mrp_multi_level/models/product_mrp_area.py @@ -1,7 +1,7 @@ # Copyright 2016 Ucamco - Wim Audenaert -# Copyright 2016-19 Eficent Business and IT Consulting Services S.L. -# - Jordi Ballester Alomar -# - Lois Rilo Antelo +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) +# - Jordi Ballester Alomar +# - Lois Rilo Antelo # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). from math import ceil @@ -104,7 +104,6 @@ class ProductMRPArea(models.Model): ) ] - @api.multi @api.constrains( "mrp_minimum_order_qty", "mrp_maximum_order_qty", @@ -126,14 +125,15 @@ class ProductMRPArea(models.Model): if any(v < 0 for v in rec.values()): raise ValidationError(_("You cannot use a negative number.")) - @api.multi def name_get(self): return [ - (area.id, "[{}] {}".format(area.mrp_area_id.name, area.product_id.display_name)) + ( + area.id, + "[{}] {}".format(area.mrp_area_id.name, area.product_id.display_name), + ) for area in self ] - @api.multi def _compute_mrp_lead_time(self): produced = self.filtered(lambda r: r.supply_method == "manufacture") purchased = self.filtered(lambda r: r.supply_method == "buy") @@ -145,14 +145,12 @@ class ProductMRPArea(models.Model): for rec in self - produced - purchased: rec.mrp_lead_time = 0 - @api.multi def _compute_qty_available(self): for rec in self: rec.qty_available = rec.product_id.with_context( {"location": rec.mrp_area_id.location_id.id} ).qty_available - @api.multi def _compute_supply_method(self): group_obj = self.env["procurement.group"] for rec in self: @@ -165,7 +163,6 @@ class ProductMRPArea(models.Model): rule = group_obj._get_rule(rec.product_id, proc_loc, values) rec.supply_method = rule.action if rule else "none" - @api.multi @api.depends("supply_method", "product_id.route_ids", "product_id.seller_ids") def _compute_main_supplier(self): """Simplified and similar to procurement.rule logic.""" @@ -178,7 +175,6 @@ class ProductMRPArea(models.Model): rec.main_supplierinfo_id = suppliers[0] rec.main_supplier_id = suppliers[0].name - @api.multi def _adjust_qty_to_order(self, qty_to_order): self.ensure_one() if ( diff --git a/mrp_multi_level/models/product_product.py b/mrp_multi_level/models/product_product.py index 6a5e3be5a..035435a7d 100644 --- a/mrp_multi_level/models/product_product.py +++ b/mrp_multi_level/models/product_product.py @@ -1,9 +1,10 @@ # Copyright 2016 Ucamco - Wim Audenaert -# Copyright 2016-18 Eficent Business and IT Consulting Services S.L. +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). + import ast -from odoo import api, fields, models +from odoo import fields, models class Product(models.Model): @@ -32,12 +33,10 @@ class Product(models.Model): compute="_compute_mrp_area_count", ) - @api.multi def _compute_mrp_area_count(self): for rec in self: rec.mrp_area_count = len(rec.mrp_area_ids) - @api.multi def action_view_mrp_area_parameters(self): self.ensure_one() action = self.env.ref("mrp_multi_level.product_mrp_area_action") diff --git a/mrp_multi_level/models/product_template.py b/mrp_multi_level/models/product_template.py index e1b128234..5d5aa2cc5 100644 --- a/mrp_multi_level/models/product_template.py +++ b/mrp_multi_level/models/product_template.py @@ -1,8 +1,9 @@ -# Copyright 2018 Eficent Business and IT Consulting Services S.L. +# Copyright 2018-19 ForgeFlow S.L. (https://www.forgeflow.com) # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). + import ast -from odoo import api, fields, models +from odoo import fields, models class ProductTemplate(models.Model): @@ -19,12 +20,10 @@ class ProductTemplate(models.Model): compute="_compute_mrp_area_count", ) - @api.multi def _compute_mrp_area_count(self): for rec in self: rec.mrp_area_count = len(rec.mrp_area_ids) - @api.multi def action_view_mrp_area_parameters(self): self.ensure_one() action = self.env.ref("mrp_multi_level.product_mrp_area_action") diff --git a/mrp_multi_level/models/stock_location.py b/mrp_multi_level/models/stock_location.py index e07632ac8..c9b13a5c8 100644 --- a/mrp_multi_level/models/stock_location.py +++ b/mrp_multi_level/models/stock_location.py @@ -1,6 +1,6 @@ # © 2016 Ucamco - Wim Audenaert -# © 2016 Eficent Business and IT Consulting Services S.L. -# - Jordi Ballester Alomar +# Copyright 2016-19 ForgeFlow S.L. (https://www.forgeflow.com) +# - Jordi Ballester Alomar # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html). from odoo import fields, models diff --git a/mrp_multi_level/readme/CONTRIBUTORS.rst b/mrp_multi_level/readme/CONTRIBUTORS.rst index 63a6a5199..546d01172 100644 --- a/mrp_multi_level/readme/CONTRIBUTORS.rst +++ b/mrp_multi_level/readme/CONTRIBUTORS.rst @@ -1,3 +1,3 @@ * Wim Audenaert -* Jordi Ballester -* Lois Rilo +* Jordi Ballester +* Lois Rilo diff --git a/mrp_multi_level/readme/HISTORY.rst b/mrp_multi_level/readme/HISTORY.rst index c1596d26c..94ab03c44 100644 --- a/mrp_multi_level/readme/HISTORY.rst +++ b/mrp_multi_level/readme/HISTORY.rst @@ -1,3 +1,8 @@ +13.0.1.0.0 (2019-12-18) +~~~~~~~~~~~~~~~~~~~~~~~ + +* [MIG] Migration to v13. + 12.0.1.0.0 (2019-08-05) ~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/mrp_multi_level/static/description/index.html b/mrp_multi_level/static/description/index.html index 493ebe4f0..14d097163 100644 --- a/mrp_multi_level/static/description/index.html +++ b/mrp_multi_level/static/description/index.html @@ -3,7 +3,7 @@ - + MRP Multi Level