[FIX] website_sale_delivery: display delivery price

- Set up as a shipper with the highest priority one which will cause an
  error (e.g. service not available for customer address)
- Order a product on eCommerce, go to Payment page
- No delivery amount is set
- Change shipper to one which doesn't cause an issue
- The delivery amount is set
- Switch back to the shipper with error

The delivery amount stays set, while it should change back to zero.

Every time we update the carrier, we automatically remove the delivery
line. One will be added back if the rating succeeds. Moreover, we update
the prices even if the rating doesn't succeed. Since the delivery line
was removed, the price will be updated without delivery.

opw-1838765
This commit is contained in:
Nicolas Martinelli
2018-05-18 11:58:08 +02:00
committed by Nicolas Martinelli
parent 3bf8e75379
commit 8243549bf6
2 changed files with 5 additions and 2 deletions
@@ -65,12 +65,11 @@ class SaleOrder(models.Model):
carrier = delivery
break
self.write({'carrier_id': carrier.id})
self._remove_delivery_line()
if carrier:
self.get_delivery_price()
if self.delivery_rating_success:
self.set_delivery_line()
else:
self._remove_delivery_line()
return bool(carrier)
@@ -27,6 +27,10 @@ odoo.define('website_sale_delivery.checkout', function (require) {
else {
console.error(result.error_message);
$compute_badge.text(result.error_message);
$amount_delivery.text(result.new_amount_delivery);
$amount_untaxed.text(result.new_amount_untaxed);
$amount_tax.text(result.new_amount_tax);
$amount_total.text(result.new_amount_total);
}
};