From 257190d489d9f730ca8b68428d7db67dc74ab9b7 Mon Sep 17 00:00:00 2001 From: Jordi Ballester Alomar Date: Tue, 14 Mar 2023 20:16:01 +0100 Subject: [PATCH] [IMP] mrp_subcontracting_purchase_link: add post init hook to populate the PO line on previous manufacturing orders --- mrp_subcontracting_purchase_link/__init__.py | 1 + .../__manifest__.py | 3 +- mrp_subcontracting_purchase_link/hooks.py | 39 +++++++++++++++++++ .../migrations/14.0.2.0.0/post-migration.py | 2 + .../readme/CONTRIBUTORS.rst | 5 +++ 5 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 mrp_subcontracting_purchase_link/hooks.py diff --git a/mrp_subcontracting_purchase_link/__init__.py b/mrp_subcontracting_purchase_link/__init__.py index 0650744f6..cc6b6354a 100644 --- a/mrp_subcontracting_purchase_link/__init__.py +++ b/mrp_subcontracting_purchase_link/__init__.py @@ -1 +1,2 @@ from . import models +from .hooks import post_init_hook diff --git a/mrp_subcontracting_purchase_link/__manifest__.py b/mrp_subcontracting_purchase_link/__manifest__.py index 6ba26351f..33aa0f1f1 100644 --- a/mrp_subcontracting_purchase_link/__manifest__.py +++ b/mrp_subcontracting_purchase_link/__manifest__.py @@ -5,9 +5,10 @@ "version": "14.0.2.0.0", "category": "Manufacturing", "license": "LGPL-3", - "author": "Quartile Limited, Odoo Community Association (OCA)", + "author": "Quartile Limited, ForgeFlow, Odoo Community Association (OCA)", "website": "https://github.com/OCA/manufacture", "depends": ["purchase", "mrp_subcontracting"], "data": ["views/purchase_order_views.xml", "views/mrp_production_views.xml"], + "post_init_hook": "post_init_hook", "installable": True, } diff --git a/mrp_subcontracting_purchase_link/hooks.py b/mrp_subcontracting_purchase_link/hooks.py new file mode 100644 index 000000000..e1a1394f4 --- /dev/null +++ b/mrp_subcontracting_purchase_link/hooks.py @@ -0,0 +1,39 @@ +# Copyright 2023 ForgeFlow, S.L. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). + +import logging + +_logger = logging.getLogger(__name__) + + +def update_po_line_in_mrp_production(cr): + """ """ + _logger.info("Updating PO line in MRP production") + cr.execute( + """ + UPDATE mrp_production + SET + purchase_line_id = Q.purchase_line_id, + purchase_order_id = Q.purchase_id + FROM ( + SELECT po_sm.purchase_line_id, mo_sm.production_id, po.id as purchase_id + FROM stock_move as po_sm + INNER JOIN stock_move_move_rel as rel + ON rel.move_dest_id = po_sm.id + INNER JOIN stock_move as mo_sm + ON mo_sm.id = rel.move_orig_id + INNER JOIN purchase_order_line as pol + ON pol.id = po_sm.purchase_line_id + INNER JOIN purchase_order as po + ON po.id = pol.order_id + where po_sm.is_subcontract = true + AND po_sm.purchase_line_id is not null + AND mo_sm.production_id is not null + ) AS Q + WHERE mrp_production.id = Q.production_id + """ + ) + + +def post_init_hook(cr, registry): + update_po_line_in_mrp_production(cr) diff --git a/mrp_subcontracting_purchase_link/migrations/14.0.2.0.0/post-migration.py b/mrp_subcontracting_purchase_link/migrations/14.0.2.0.0/post-migration.py index 12c705777..777997591 100644 --- a/mrp_subcontracting_purchase_link/migrations/14.0.2.0.0/post-migration.py +++ b/mrp_subcontracting_purchase_link/migrations/14.0.2.0.0/post-migration.py @@ -1,3 +1,5 @@ +# Copyright 2023 ForgeFlow, S.L. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). import logging _logger = logging.getLogger(__name__) diff --git a/mrp_subcontracting_purchase_link/readme/CONTRIBUTORS.rst b/mrp_subcontracting_purchase_link/readme/CONTRIBUTORS.rst index 8fdf2f2c3..5de285c74 100644 --- a/mrp_subcontracting_purchase_link/readme/CONTRIBUTORS.rst +++ b/mrp_subcontracting_purchase_link/readme/CONTRIBUTORS.rst @@ -2,3 +2,8 @@ * Yoshi Tashiro * Tim Lai + +* `ForgeFlow `__: + + * Thiago Mulero + * Jordi Ballester