[FIX] sale_loyalty_delivery: fix reward for multiple delivery lines
The method `_get_reward_values_free_shipping` assumes there is only one delivery line per sale order. But it is not always the case. This commit therefore makes sure the method does not raise an error in case of multiple lines by taking into account only the first delivery line. Fixes #136395 closes odoo/odoo#159584 Signed-off-by: Vallaeys Valentin (vava) <vava@odoo.com>
This commit is contained in:
@@ -36,7 +36,7 @@ class SaleOrder(models.Model):
|
||||
return order_line.filtered(lambda line: not line.is_delivery)
|
||||
|
||||
def _get_reward_values_free_shipping(self, reward, coupon, **kwargs):
|
||||
delivery_line = self.order_line.filtered(lambda l: l.is_delivery)
|
||||
delivery_line = self.order_line.filtered(lambda l: l.is_delivery)[:1]
|
||||
taxes = delivery_line.product_id.taxes_id.filtered(lambda t: t.company_id.id == self.company_id.id)
|
||||
taxes = self.fiscal_position_id.map_tax(taxes)
|
||||
max_discount = reward.discount_max_amount or float('inf')
|
||||
|
||||
Reference in New Issue
Block a user