diff --git a/rma/models/stock_warehouse.py b/rma/models/stock_warehouse.py index 6273c7714..9f34f5b10 100644 --- a/rma/models/stock_warehouse.py +++ b/rma/models/stock_warehouse.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017-20 ForgeFlow S.L. +# Copyright (C) 2017-23 ForgeFlow S.L. # License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html) from odoo import _, fields, models @@ -7,10 +7,7 @@ class StockWarehouse(models.Model): _inherit = "stock.warehouse" - lot_rma_id = fields.Many2one( - comodel_name="stock.location", string="RMA Location" - ) # not readonly to have the possibility to edit location and - # propagate to rma rules (add a auto-update when writing this field?) + lot_rma_id = fields.Many2one(comodel_name="stock.location", string="RMA Location") rma_cust_out_type_id = fields.Many2one( comodel_name="stock.picking.type", string="RMA Customer out Type", readonly=True ) @@ -28,18 +25,6 @@ class StockWarehouse(models.Model): help="If set, it will create RMA location, picking types and routes " "for this warehouse.", ) - rma_customer_in_pull_id = fields.Many2one( - comodel_name="stock.rule", string="RMA Customer In Rule" - ) - rma_customer_out_pull_id = fields.Many2one( - comodel_name="stock.rule", string="RMA Customer Out Rule" - ) - rma_supplier_in_pull_id = fields.Many2one( - comodel_name="stock.rule", string="RMA Supplier In Rule" - ) - rma_supplier_out_pull_id = fields.Many2one( - comodel_name="stock.rule", string="RMA Supplier Out Rule" - ) def _get_rma_types(self): return [ @@ -78,18 +63,11 @@ def write(self, vals): for r_type in wh._get_rma_types(): if r_type: r_type.active = True - # RMA rules: - wh._create_or_update_rma_pull() else: for wh in self: for r_type in wh._get_rma_types(): if r_type: r_type.active = False - # Unlink rules: - self.mapped("rma_customer_in_pull_id").unlink() - self.mapped("rma_customer_out_pull_id").unlink() - self.mapped("rma_supplier_in_pull_id").unlink() - self.mapped("rma_supplier_out_pull_id").unlink() return super(StockWarehouse, self).write(vals) def _create_rma_picking_types(self): @@ -175,93 +153,6 @@ def _create_rma_picking_types(self): ) return True - def get_rma_rules_dict(self): - self.ensure_one() - rma_rules = dict() - customer_loc, supplier_loc = self._get_partner_locations() - rma_rules["rma_customer_in"] = { - "name": self._format_rulename(self, customer_loc, self.lot_rma_id.name), - "action": "pull", - "warehouse_id": self.id, - "company_id": self.company_id.id, - "location_src_id": customer_loc.id, - "location_id": self.lot_rma_id.id, - "procure_method": "make_to_stock", - "route_id": self.env.ref("rma.route_rma_customer").id, - "picking_type_id": self.rma_cust_in_type_id.id, - "active": True, - } - rma_rules["rma_customer_out"] = { - "name": self._format_rulename(self, self.lot_rma_id, customer_loc.name), - "action": "pull", - "warehouse_id": self.id, - "company_id": self.company_id.id, - "location_src_id": self.lot_rma_id.id, - "location_id": customer_loc.id, - "procure_method": "make_to_stock", - "route_id": self.env.ref("rma.route_rma_customer").id, - "picking_type_id": self.rma_cust_out_type_id.id, - "active": True, - } - rma_rules["rma_supplier_in"] = { - "name": self._format_rulename(self, supplier_loc, self.lot_rma_id.name), - "action": "pull", - "warehouse_id": self.id, - "company_id": self.company_id.id, - "location_src_id": supplier_loc.id, - "location_id": self.lot_rma_id.id, - "procure_method": "make_to_stock", - "route_id": self.env.ref("rma.route_rma_supplier").id, - "picking_type_id": self.rma_sup_in_type_id.id, - "active": True, - } - rma_rules["rma_supplier_out"] = { - "name": self._format_rulename(self, self.lot_rma_id, supplier_loc.name), - "action": "pull", - "warehouse_id": self.id, - "company_id": self.company_id.id, - "location_src_id": self.lot_rma_id.id, - "location_id": supplier_loc.id, - "procure_method": "make_to_stock", - "route_id": self.env.ref("rma.route_rma_supplier").id, - "picking_type_id": self.rma_sup_out_type_id.id, - "active": True, - } - return rma_rules - - def _create_or_update_rma_pull(self): - rule_obj = self.env["stock.rule"] - for wh in self: - rules_dict = wh.get_rma_rules_dict() - if wh.rma_customer_in_pull_id: - wh.rma_customer_in_pull_id.write(rules_dict["rma_customer_in"]) - else: - wh.rma_customer_in_pull_id = rule_obj.create( - rules_dict["rma_customer_in"] - ) - - if wh.rma_customer_out_pull_id: - wh.rma_customer_out_pull_id.write(rules_dict["rma_customer_out"]) - else: - wh.rma_customer_out_pull_id = rule_obj.create( - rules_dict["rma_customer_out"] - ) - - if wh.rma_supplier_in_pull_id: - wh.rma_supplier_in_pull_id.write(rules_dict["rma_supplier_in"]) - else: - wh.rma_supplier_in_pull_id = rule_obj.create( - rules_dict["rma_supplier_in"] - ) - - if wh.rma_supplier_out_pull_id: - wh.rma_supplier_out_pull_id.write(rules_dict["rma_supplier_out"]) - else: - wh.rma_supplier_out_pull_id = rule_obj.create( - rules_dict["rma_supplier_out"] - ) - return True - class StockLocationRoute(models.Model): _inherit = "stock.location.route"