From da563bcf5cc34608f380449c3919233074c8bd58 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Thu, 10 Dec 2015 18:23:53 +0100 Subject: [PATCH] [FIX] delivery: Ensure carrier availability iteration after a fail With a UPS delivery type carrier, `ups_get_shipping_price_from_so` can return a `ValidationError`, making the carrier unavailable for this order. Nevertheless, the iteration checking the availability of the remaining carriers must be ensured. opw-657161 --- addons/delivery/models/delivery_carrier.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py index 1a59f182fcb..68fded1bb32 100644 --- a/addons/delivery/models/delivery_carrier.py +++ b/addons/delivery/models/delivery_carrier.py @@ -21,7 +21,7 @@ import logging from openerp import models, fields, api -from openerp.exceptions import UserError +from openerp.exceptions import UserError, ValidationError _logger = logging.getLogger(__name__) @@ -72,6 +72,9 @@ class DeliveryCarrier(models.Model): # no suitable delivery method found, probably configuration error _logger.info("Carrier %s: %s, not found", self.name, e.name) self.price = 0.0 + except ValidationError as e: + _logger.info("Carrier %s: %s, not available: %s", self.name, e.name, e.message) + self.price = 0.0 else: res = super(DeliveryCarrier, self).get_price('price', []) self.available = res[self.id]['available']