From fb5015d5fceacb4da7f3a0527a61f28867656e0c Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Thu, 25 Apr 2019 07:32:09 +0000 Subject: [PATCH] [FIX] website_sale_delivery: show correct fixed price MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit There was 2 issues regarding delivery price when the delivery was set to fixed price and free over a certain amount. 1. On /shop/payment step, such deliveries would have the fixed price shown on the badge, even if the sale order amount exceed the free over threshold. 2. When clicking on a delivery carrier, it is supposed to compute all the SO costs (delivery, taxes..) and display them. The delivery price selector would try to get the 'badge.hidden' element which never exists for fixed prices. Thus, it would not update the delivery badge price. Now: 1. If the free over threshold is met, we display 0$ instead of the fixed price by calling `rate_shipment`. Note that `rate_shipment` can't fail in case of a fixed rate (see method). The only failing case is if the customer country does not match the delivery allowed country, but such a flow is not possible as delivery shown during cart payment are already filtered by allowed countries. 2. The delivery value returned after clicking on the carrier is correctly updated on the badge. Fixes #31502 closes odoo/odoo#32938 Signed-off-by: Jérémy Kersten (jke) --- .../static/src/js/website_sale_delivery.js | 2 +- .../views/website_sale_delivery_templates.xml | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/website_sale_delivery/static/src/js/website_sale_delivery.js b/addons/website_sale_delivery/static/src/js/website_sale_delivery.js index 6d7aa37fc78..001fedf6104 100644 --- a/addons/website_sale_delivery/static/src/js/website_sale_delivery.js +++ b/addons/website_sale_delivery/static/src/js/website_sale_delivery.js @@ -16,7 +16,7 @@ odoo.define('website_sale_delivery.checkout', function (require) { var $amount_untaxed = $('#order_total_untaxed span.oe_currency_value'); var $amount_tax = $('#order_total_taxes span.oe_currency_value'); var $amount_total = $('#order_total span.oe_currency_value'); - var $carrier_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .badge.hidden'); + var $carrier_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .badge:not(.o_delivery_compute)'); var $compute_badge = $('#delivery_carrier input[name="delivery_type"][value=' + result.carrier_id + '] ~ .o_delivery_compute'); var $discount = $('#order_discounted'); diff --git a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml index d979fc722a4..08e0c83ad3c 100644 --- a/addons/website_sale_delivery/views/website_sale_delivery_templates.xml +++ b/addons/website_sale_delivery/views/website_sale_delivery_templates.xml @@ -34,9 +34,12 @@