11# Copyright 2022 Tecnativa - David Vidal
2+ # Copyright 2026 Tecnativa - Víctor Martínez
23# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
3- from odoo import models
4+ from odoo import fields , models
45
56
67class Rma (models .Model ):
78 _inherit = "rma"
89
10+ carrier_id = fields .Many2one (
11+ comodel_name = "delivery.carrier" ,
12+ string = "Carrier" ,
13+ )
14+ rma_delivery_strategy = fields .Selection (related = "company_id.rma_delivery_strategy" )
15+
916 def _get_default_carrier_id (self , company , partner ):
1017 """Gather the company option for default carrier on RMA returns. We could
1118 either:
@@ -25,27 +32,11 @@ def _get_default_carrier_id(self, company, partner):
2532 delivery_method = partner_method
2633 return delivery_method
2734
28- def _prepare_returning_picking (self , picking_form , origin = None ):
29- res = super ()._prepare_returning_picking (picking_form , origin )
30- picking_form .carrier_id = self ._get_default_carrier_id (
31- picking_form .company_id , picking_form .partner_id
32- )
33- return res
34-
35- def _set_carrier (self , pickings ):
36- for picking in pickings :
37- picking .carrier_id = self ._get_default_carrier_id (
38- picking .company_id , picking .partner_id
35+ def _get_carrier (self ):
36+ self .ensure_one ()
37+ if self .rma_delivery_strategy == "rma" :
38+ return self .carrier_id
39+ else :
40+ return self ._get_default_carrier_id (
41+ self .company_id , self .partner_shipping_id
3942 )
40-
41- def create_replace (self , scheduled_date , warehouse , product , qty , uom ):
42- existing_pickings = self .delivery_move_ids .picking_id
43- res = super ().create_replace (scheduled_date , warehouse , product , qty , uom )
44- self ._set_carrier (self .delivery_move_ids .picking_id - existing_pickings )
45- return res
46-
47- def create_return (self , scheduled_date , qty = None , uom = None ):
48- existing_pickings = self .delivery_move_ids .picking_id
49- res = super ().create_return (scheduled_date , qty = qty , uom = uom )
50- self ._set_carrier (self .delivery_move_ids .picking_id - existing_pickings )
51- return res
0 commit comments