From 5990784c8bb345c8bec9acd46cadf5ac4c4fa299 Mon Sep 17 00:00:00 2001 From: ThiagoMForgeFlow Date: Thu, 23 Feb 2023 12:29:32 +0100 Subject: [PATCH] [14.0][FIX] mrp_subcontracting_purchase_link: link to PO line, not PO --- mrp_subcontracting_purchase_link/__manifest__.py | 2 +- .../models/mrp_production.py | 10 +++++++++- .../models/purchase_order.py | 7 ++++--- .../models/stock_picking.py | 2 +- .../readme/DESCRIPTION.rst | 2 +- .../tests/test_mrp_subcontracting_purchase_link.py | 7 ++++--- .../views/mrp_production_views.xml | 1 + 7 files changed, 21 insertions(+), 10 deletions(-) diff --git a/mrp_subcontracting_purchase_link/__manifest__.py b/mrp_subcontracting_purchase_link/__manifest__.py index ec7ee60da..2be2c429c 100644 --- a/mrp_subcontracting_purchase_link/__manifest__.py +++ b/mrp_subcontracting_purchase_link/__manifest__.py @@ -1,7 +1,7 @@ # Copyright 2020 Quartile Limited # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl). { - "name": "Link Purchase Order to Subcontract Productions", + "name": "Link Purchase Order Line to Subcontract Productions", "version": "14.0.1.0.1", "category": "Manufacturing", "license": "LGPL-3", diff --git a/mrp_subcontracting_purchase_link/models/mrp_production.py b/mrp_subcontracting_purchase_link/models/mrp_production.py index 60883d411..7b7be5851 100644 --- a/mrp_subcontracting_purchase_link/models/mrp_production.py +++ b/mrp_subcontracting_purchase_link/models/mrp_production.py @@ -8,5 +8,13 @@ class MrpProduction(models.Model): _inherit = "mrp.production" purchase_order_id = fields.Many2one( - "purchase.order", "Subcontract Purchase Order", readonly=True + "purchase.order", + "Subcontract Purchase Order", + readonly=True, + related="purchase_line_id.order_id", + store=True, + ) + + purchase_line_id = fields.Many2one( + "purchase.order.line", "Subcontract Purchase Order Line", readonly=True ) diff --git a/mrp_subcontracting_purchase_link/models/purchase_order.py b/mrp_subcontracting_purchase_link/models/purchase_order.py index cf7f4f8d8..f3ff3c41f 100644 --- a/mrp_subcontracting_purchase_link/models/purchase_order.py +++ b/mrp_subcontracting_purchase_link/models/purchase_order.py @@ -7,15 +7,16 @@ from odoo import fields, models class PurchaseOrder(models.Model): _inherit = "purchase.order" + subcontract_production_count = fields.Integer( + compute="_compute_subcontract_production_count" + ) + subcontract_production_ids = fields.One2many( "mrp.production", "purchase_order_id", "Subcontract Production Orders", readonly=True, ) - subcontract_production_count = fields.Integer( - compute="_compute_subcontract_production_count" - ) def action_view_mrp(self): productions = self.subcontract_production_ids diff --git a/mrp_subcontracting_purchase_link/models/stock_picking.py b/mrp_subcontracting_purchase_link/models/stock_picking.py index 805b6a49f..46c3738ed 100644 --- a/mrp_subcontracting_purchase_link/models/stock_picking.py +++ b/mrp_subcontracting_purchase_link/models/stock_picking.py @@ -10,5 +10,5 @@ class StockPicking(models.Model): def _prepare_subcontract_mo_vals(self, subcontract_move, bom): vals = super()._prepare_subcontract_mo_vals(subcontract_move, bom) if subcontract_move.purchase_line_id: - vals["purchase_order_id"] = subcontract_move.purchase_line_id.order_id.id + vals["purchase_line_id"] = subcontract_move.purchase_line_id.id return vals diff --git a/mrp_subcontracting_purchase_link/readme/DESCRIPTION.rst b/mrp_subcontracting_purchase_link/readme/DESCRIPTION.rst index 64ce6d2f3..8e40f40d0 100644 --- a/mrp_subcontracting_purchase_link/readme/DESCRIPTION.rst +++ b/mrp_subcontracting_purchase_link/readme/DESCRIPTION.rst @@ -1,4 +1,4 @@ This module does the following: -- Extends _prepare_subcontract_mo_vals() and adds the purchase order reference to the subcontracted manufacturing orders. +- Extends _prepare_subcontract_mo_vals() and adds the purchase order line reference to the subcontracted manufacturing orders. - Adds an action button in the purchase order form view to open related subcontracted manufacturing orders. diff --git a/mrp_subcontracting_purchase_link/tests/test_mrp_subcontracting_purchase_link.py b/mrp_subcontracting_purchase_link/tests/test_mrp_subcontracting_purchase_link.py index 014a9350c..ea2929a4c 100644 --- a/mrp_subcontracting_purchase_link/tests/test_mrp_subcontracting_purchase_link.py +++ b/mrp_subcontracting_purchase_link/tests/test_mrp_subcontracting_purchase_link.py @@ -44,8 +44,8 @@ class TestMrpSubcontractingPurchaseLink(TestMrpSubcontractingCommon): self.assertEqual( picking._prepare_subcontract_mo_vals( move, move._get_subcontract_bom() - )["purchase_order_id"], - purchase_order.id, + )["purchase_line_id"], + purchase_order.order_line.id, ) def test_02_compute_subcontract_production_count(self): @@ -62,7 +62,8 @@ class TestMrpSubcontractingPurchaseLink(TestMrpSubcontractingCommon): action["views"], [(self.env.ref("mrp.mrp_production_form_view").id, "form")] ) self.assertEqual( - action["res_id"], purchase_order1.subcontract_production_ids[0].id + action["res_id"], + purchase_order1.subcontract_production_ids[0].id, ) action = purchase_order2.action_view_mrp() self.assertEqual( diff --git a/mrp_subcontracting_purchase_link/views/mrp_production_views.xml b/mrp_subcontracting_purchase_link/views/mrp_production_views.xml index 4e4761a3a..04467c1b1 100644 --- a/mrp_subcontracting_purchase_link/views/mrp_production_views.xml +++ b/mrp_subcontracting_purchase_link/views/mrp_production_views.xml @@ -7,6 +7,7 @@ +