[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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user