From b9dbf36e34fca0755eec2ebb405def81dfe9e2e7 Mon Sep 17 00:00:00 2001 From: vAugagneur Date: Wed, 5 Sep 2012 14:43:43 +0000 Subject: [PATCH] [-] FO : fixed bug #PSCFV-3818 git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@17193 b9a71923-0436-4b27-9f14-aed3839534dd --- classes/Carrier.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/classes/Carrier.php b/classes/Carrier.php index 69f03be6a..7d5fd8be9 100644 --- a/classes/Carrier.php +++ b/classes/Carrier.php @@ -594,7 +594,7 @@ class CarrierCore extends ObjectModel public static function checkCarrierZone($id_carrier, $id_zone) { - return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS(' + return Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue(' SELECT c.`id_carrier` FROM `'._DB_PREFIX_.'carrier` c LEFT JOIN `'._DB_PREFIX_.'carrier_zone` cz ON (cz.`id_carrier` = c.`id_carrier`) @@ -1156,18 +1156,22 @@ class CarrierCore extends ObjectModel $query->select('id_carrier'); $query->from('product_carrier', 'pc'); $query->innerJoin('carrier', 'c', 'c.id_reference = pc.id_carrier_reference AND c.deleted = 0'); - $query->where('id_product = '.(int)$product->id); - $query->where('id_shop = '.(int)$id_shop); + $query->where('pc.id_product = '.(int)$product->id); + $query->where('pc.id_shop = '.(int)$id_shop); + $carriers = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); - + if (!empty($carriers)) { + //the product is linked with carriers $carrier_list = array(); - foreach ($carriers as $carrier) + foreach ($carriers as $carrier) //check if the linked carriers are available in current zone if (Carrier::checkCarrierZone($carrier['id_carrier'], $id_zone)) $carrier_list[] = $carrier['id_carrier']; if (!empty($carrier_list)) return $carrier_list; + else + return array();//no linked carrier are available for this zone } $carrier_list = array();