diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py index 1e48c8079a9..34c54ece04b 100644 --- a/addons/delivery/models/delivery_carrier.py +++ b/addons/delivery/models/delivery_carrier.py @@ -61,10 +61,8 @@ class DeliveryCarrier(models.Model): amount = fields.Float(string='Amount', help="Amount of the order to benefit from a free shipping, expressed in the company currency") can_generate_return = fields.Boolean(compute="_compute_can_generate_return") - return_label_on_delivery = fields.Boolean(string="Generate Return Label", required=True, default=False, - help="The return label is automatically generated at the delivery.") - get_return_label_from_portal = fields.Boolean(string="Return Label Accessible from Customer Portal", required=True, default=False, - help="The return label can be downloaded by the customer from the customer portal.") + return_label_on_delivery = fields.Boolean(string="Generate Return Label", help="The return label is automatically generated at the delivery.") + get_return_label_from_portal = fields.Boolean(string="Return Label Accessible from Customer Portal", help="The return label can be downloaded by the customer from the customer portal.") _sql_constraints = [ ('margin_not_under_100_percent', 'CHECK (margin >= -100)', 'Margin cannot be lower than -100%'), @@ -169,10 +167,13 @@ class DeliveryCarrier(models.Model): if hasattr(self, '%s_send_shipping' % self.delivery_type): return getattr(self, '%s_send_shipping' % self.delivery_type)(pickings) - def get_return_label(self,pickings): + def get_return_label(self,pickings, tracking_number=None, origin_date=None): self.ensure_one() if self.can_generate_return: - return getattr(self, '%s_get_return_label' % self.delivery_type)(pickings) + return getattr(self, '%s_get_return_label' % self.delivery_type)(pickings, tracking_number, origin_date) + + def get_return_label_prefix(self): + return 'ReturnLabel-%s' % self.delivery_type def get_tracking_link(self, picking): ''' Ask the tracking link to the service provider diff --git a/addons/delivery/models/stock_picking.py b/addons/delivery/models/stock_picking.py index 5b90a23c480..042ec95e7c9 100644 --- a/addons/delivery/models/stock_picking.py +++ b/addons/delivery/models/stock_picking.py @@ -101,7 +101,8 @@ class StockPicking(models.Model): def _compute_return_label(self): for picking in self: - picking.return_label_ids = self.env['ir.attachment'].search([('res_model', '=', 'stock.picking'), ('res_id', '=', picking.id), ('name', 'ilike', 'ReturnLabel')]) + if picking.carrier_id: + picking.return_label_ids = self.env['ir.attachment'].search([('res_model', '=', 'stock.picking'), ('res_id', '=', picking.id), ('name', 'like', '%s%%' % picking.carrier_id.get_return_label_prefix())]) @api.depends('move_lines') def _cal_weight(self):