From d448849ba3e340b6ec740eec36c67eb9ffa7b4f3 Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Thu, 30 Aug 2018 15:05:55 +0200 Subject: [PATCH] [FIX] delivery: Error message for unavailable delivery methods With a fixed price delivery method, the error message was not displayed when the address doesn't match. Inspired from function base_on_rule_rate_shipment The error message was not clear enough. opw:1879204 --- addons/delivery/i18n/delivery.pot | 7 +++++++ addons/delivery/models/delivery_carrier.py | 6 ++++++ addons/delivery/models/delivery_grid.py | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/addons/delivery/i18n/delivery.pot b/addons/delivery/i18n/delivery.pot index 1831a1ce58f..552ecca7bab 100644 --- a/addons/delivery/i18n/delivery.pot +++ b/addons/delivery/i18n/delivery.pot @@ -355,6 +355,13 @@ msgstr "" msgid "Error: no matching grid." msgstr "" +#. module: delivery +#: code:addons/delivery/models/delivery_carrier.py:206 +#: code:addons/delivery/models/delivery_grid.py:50 +#, python-format +msgid "Error: this delivery method is not available for this address." +msgstr "" + #. module: delivery #: model:ir.model.fields,field_description:delivery.field_sale_order_delivery_price msgid "Estimated Delivery Price" diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py index c279b762db9..50bb9202ddc 100644 --- a/addons/delivery/models/delivery_carrier.py +++ b/addons/delivery/models/delivery_carrier.py @@ -199,6 +199,12 @@ class DeliveryCarrier(models.Model): carrier.product_id.list_price = carrier.fixed_price def fixed_rate_shipment(self, order): + carrier = self._match_address(order.partner_shipping_id) + if not carrier: + return {'success': False, + 'price': 0.0, + 'error_message': _('Error: this delivery method is not available for this address.'), + 'warning_message': False} price = self.fixed_price if self.company_id.currency_id.id != order.currency_id.id: price = self.env['res.currency']._compute(self.company_id.currency_id, order.currency_id, price) diff --git a/addons/delivery/models/delivery_grid.py b/addons/delivery/models/delivery_grid.py index dddc300dfe2..5779684c8c0 100644 --- a/addons/delivery/models/delivery_grid.py +++ b/addons/delivery/models/delivery_grid.py @@ -47,7 +47,7 @@ class ProviderGrid(models.Model): if not carrier: return {'success': False, 'price': 0.0, - 'error_message': _('Error: no matching grid.'), + 'error_message': _('Error: this delivery method is not available for this address.'), 'warning_message': False} try: