From 3fcb65ca0f5d697e099c3a1898901bbcfe7220b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Gaillard?= Date: Tue, 20 Aug 2013 17:18:07 +0200 Subject: [PATCH] [-] WS: Fix retrieve of stock_availables when stock is shared on the shop group --- classes/webservice/WebserviceRequest.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/classes/webservice/WebserviceRequest.php b/classes/webservice/WebserviceRequest.php index 378138a32..39ca28043 100644 --- a/classes/webservice/WebserviceRequest.php +++ b/classes/webservice/WebserviceRequest.php @@ -1264,14 +1264,22 @@ class WebserviceRequestCore $assoc = Shop::getAssoTable($this->resourceConfiguration['retrieveData']['table']); if ($assoc !== false) { + $check_shop_group = false; + $sql = 'SELECT 1 FROM `'.bqSQL(_DB_PREFIX_.$this->resourceConfiguration['retrieveData']['table']); if ($assoc['type'] != 'fk_shop') $sql .= '_'.$assoc['type']; + else + { + $def = ObjectModel::getDefinition($this->resourceConfiguration['retrieveData']['className']); + if (isset($def['fields']) && isset($def['fields']['id_shop_group'])) + $check_shop_group = true; + } $sql .= '`'; foreach (self::$shopIDs as $id_shop) - $OR[] = ' id_shop = '.(int)$id_shop.' '; + $OR[] = ' (id_shop = '.(int)$id_shop.($check_shop_group ? ' OR (id_shop = 0 AND id_shop_group='.(int)Shop::getGroupFromShop((int)$id_shop).')' : '').') '; $check = ' WHERE ('.implode('OR', $OR).') AND `'.bqSQL($this->resourceConfiguration['fields']['id']['sqlId']).'` = '.(int)$this->urlSegment[1]; if (!Db::getInstance()->getValue($sql.$check))