[FIX] delivery: delivery line is not set to zero cost

If the chosen delivery method has free_over active, and if the cost
of the sale over exceeds the free_over amount, the delivery line
should have price_unit of zero.
This commit is contained in:
Joseph Caburnay
2019-09-12 05:28:49 +00:00
parent c0a897d528
commit bdb1ce15f2
2 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -106,7 +106,7 @@ class SaleOrder(models.Model):
values['name'] += _(' (Estimated Cost: %s )') % self._format_currency_amount(price_unit)
else:
values['price_unit'] = price_unit
if carrier.free_over and self._compute_amount_total_without_delivery() >= price_unit:
if carrier.free_over and self.currency_id.is_zero(price_unit) :
values['name'] += '\n' + 'Free Shipping'
if self.order_line:
values['sequence'] = self.order_line[-1].sequence + 1
@@ -19,7 +19,7 @@ class ChooseDeliveryCarrier(models.TransientModel):
)
delivery_type = fields.Selection(related='carrier_id.delivery_type')
delivery_price = fields.Float()
display_price = fields.Float(string='Cost')
display_price = fields.Float(string='Cost', readonly=True)
currency_id = fields.Many2one('res.currency', related='order_id.currency_id')
company_id = fields.Many2one('res.company', related='order_id.company_id')
available_carrier_ids = fields.Many2many("delivery.carrier", compute='_compute_available_carrier', string="Available Carriers")
@@ -88,7 +88,7 @@ class ChooseDeliveryCarrier(models.TransientModel):
}
def button_confirm(self):
self.order_id.set_delivery_line(self.carrier_id, self.display_price)
self.order_id.set_delivery_line(self.carrier_id, self.delivery_price)
self.order_id.write({
'recompute_delivery_price': False,
'delivery_message': self.delivery_message,