From 4af6b45cd4c1261b8857699615b1667e082a901d Mon Sep 17 00:00:00 2001 From: SergiCForgeFlow Date: Fri, 26 May 2023 10:07:00 +0200 Subject: [PATCH] [MIG] stock_quant_reservation_info_mrp: Migration to 13.0 --- .../addons/stock_quant_reservation_info_mrp | 1 + .../stock_quant_reservation_info_mrp/setup.py | 6 ++ .../__manifest__.py | 4 +- .../i18n/stock_quant_reservation_info_mrp.pot | 2 +- .../models/stock_move_line.py | 6 +- .../tests/__init__.py | 1 + .../test_stock_quant_reservation_info_mrp.py | 85 +++++++++++++++++++ .../views/stock_move_line.xml | 1 + 8 files changed, 100 insertions(+), 6 deletions(-) create mode 120000 setup/stock_quant_reservation_info_mrp/odoo/addons/stock_quant_reservation_info_mrp create mode 100644 setup/stock_quant_reservation_info_mrp/setup.py create mode 100644 stock_quant_reservation_info_mrp/tests/__init__.py create mode 100644 stock_quant_reservation_info_mrp/tests/test_stock_quant_reservation_info_mrp.py diff --git a/setup/stock_quant_reservation_info_mrp/odoo/addons/stock_quant_reservation_info_mrp b/setup/stock_quant_reservation_info_mrp/odoo/addons/stock_quant_reservation_info_mrp new file mode 120000 index 000000000..7ec26e863 --- /dev/null +++ b/setup/stock_quant_reservation_info_mrp/odoo/addons/stock_quant_reservation_info_mrp @@ -0,0 +1 @@ +../../../../stock_quant_reservation_info_mrp \ No newline at end of file diff --git a/setup/stock_quant_reservation_info_mrp/setup.py b/setup/stock_quant_reservation_info_mrp/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/stock_quant_reservation_info_mrp/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/stock_quant_reservation_info_mrp/__manifest__.py b/stock_quant_reservation_info_mrp/__manifest__.py index f496fb2d9..b57d87a43 100644 --- a/stock_quant_reservation_info_mrp/__manifest__.py +++ b/stock_quant_reservation_info_mrp/__manifest__.py @@ -1,11 +1,11 @@ -# Copyright 2022 ForgeFlow S.L. +# Copyright 2023 ForgeFlow S.L. # (https://www.forgeflow.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Stock Move Reservation Info MRP", "summary": "Allows to see the manufacturing order related to the reserved info of Products", - "version": "14.0.1.1.1", + "version": "13.0.1.0.0", "author": "ForgeFlow, Odoo Community Association (OCA)", "website": "https://github.com/OCA/stock-logistics-warehouse", "category": "Generic", diff --git a/stock_quant_reservation_info_mrp/i18n/stock_quant_reservation_info_mrp.pot b/stock_quant_reservation_info_mrp/i18n/stock_quant_reservation_info_mrp.pot index 6f6a1375d..e5c4f6496 100644 --- a/stock_quant_reservation_info_mrp/i18n/stock_quant_reservation_info_mrp.pot +++ b/stock_quant_reservation_info_mrp/i18n/stock_quant_reservation_info_mrp.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 13.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/stock_quant_reservation_info_mrp/models/stock_move_line.py b/stock_quant_reservation_info_mrp/models/stock_move_line.py index edbd9301f..453e897e1 100644 --- a/stock_quant_reservation_info_mrp/models/stock_move_line.py +++ b/stock_quant_reservation_info_mrp/models/stock_move_line.py @@ -1,4 +1,4 @@ -# Copyright 2022 ForgeFlow +# Copyright 2023 ForgeFlow from odoo import models @@ -7,8 +7,8 @@ class StockQuant(models.Model): _inherit = "stock.move.line" def action_view_mrp_from_reserved(self): - action = self.env["ir.actions.act_window"]._for_xml_id( - "mrp.mrp_production_action" + action = self.env["ir.actions.act_window"].for_xml_id( + "mrp", "mrp_production_action" ) action["views"] = [(self.env.ref("mrp.mrp_production_form_view").id, "form")] action["res_id"] = self.production_id.id diff --git a/stock_quant_reservation_info_mrp/tests/__init__.py b/stock_quant_reservation_info_mrp/tests/__init__.py new file mode 100644 index 000000000..181c6cf5c --- /dev/null +++ b/stock_quant_reservation_info_mrp/tests/__init__.py @@ -0,0 +1 @@ +from . import test_stock_quant_reservation_info_mrp diff --git a/stock_quant_reservation_info_mrp/tests/test_stock_quant_reservation_info_mrp.py b/stock_quant_reservation_info_mrp/tests/test_stock_quant_reservation_info_mrp.py new file mode 100644 index 000000000..a16bc08eb --- /dev/null +++ b/stock_quant_reservation_info_mrp/tests/test_stock_quant_reservation_info_mrp.py @@ -0,0 +1,85 @@ +# Copyright 2023 ForgeFlow S.L (https://www.forgeflow.com) + +from odoo.tests.common import Form, TransactionCase + + +class TestStockQuantReservationInfoMrp(TransactionCase): + def setUp(self): + super().setUp() + + self.partner = self.env["res.partner"].create({"name": "Jean"}) + self.stock_location = self.env.ref("stock.stock_location_stock") + self.supplier_location = self.env.ref("stock.stock_location_suppliers") + uom_unit = self.env.ref("uom.product_uom_unit") + + self.product_1 = self.env["product.product"].create( + {"name": "Product 1", "type": "product", "uom_id": uom_unit.id} + ) + self.prod_tp1 = self.env["product.product"].create( + { + "name": "Test Product Built", + "type": "product", + "list_price": 150.0, + "uom_id": uom_unit.id, + } + ) + self.receipt = self.env["stock.picking"].create( + { + "location_id": self.supplier_location.id, + "location_dest_id": self.stock_location.id, + "partner_id": self.partner.id, + "picking_type_id": self.env.ref("stock.picking_type_in").id, + } + ) + move_receipt_1 = self.env["stock.move"].create( + { + "name": "Test 1", + "product_id": self.product_1.id, + "quantity_done": 20, + "product_uom": self.product_1.uom_id.id, + "picking_id": self.receipt.id, + "picking_type_id": self.env.ref("stock.picking_type_in").id, + "location_id": self.supplier_location.id, + "location_dest_id": self.stock_location.id, + } + ) + move_receipt_1._action_confirm() + self.receipt.button_validate() + + self.test_bom_1 = self.env["mrp.bom"].create( + { + "product_id": self.prod_tp1.id, + "product_tmpl_id": self.prod_tp1.product_tmpl_id.id, + "product_uom_id": self.prod_tp1.uom_id.id, + "product_qty": 1.0, + "type": "normal", + } + ) + self.env["mrp.bom.line"].create( + { + "bom_id": self.test_bom_1.id, + "product_id": self.product_1.id, + "product_qty": 5.0, + } + ) + + def test_01_StockQuantReservationInfoMrp(self): + mo_form = Form(self.env["mrp.production"]) + mo_form.product_id = self.prod_tp1 + mo_form.bom_id = self.test_bom_1 + mo_form.product_qty = 1.0 + mo_form.product_uom_id = self.prod_tp1.uom_id + main_mo = mo_form.save() + main_mo.action_confirm() + + self.assertEqual(self.product_1.stock_quant_ids[1].reserved_quantity, 0.0) + + main_mo.action_assign() + + self.assertEqual(self.product_1.stock_quant_ids[1].reserved_quantity, 5.0) + + action = self.product_1.stock_quant_ids[1].action_reserved_moves() + move_line_post_a = self.env["stock.move.line"].search(action["domain"]) + + action2 = move_line_post_a.action_view_mrp_from_reserved() + self.assertEqual(action2["res_id"], main_mo.id) diff --git a/stock_quant_reservation_info_mrp/views/stock_move_line.xml b/stock_quant_reservation_info_mrp/views/stock_move_line.xml index 98b4e963c..6c25b0f8f 100644 --- a/stock_quant_reservation_info_mrp/views/stock_move_line.xml +++ b/stock_quant_reservation_info_mrp/views/stock_move_line.xml @@ -11,6 +11,7 @@