From 05fd7d5ba249d18ed87fccce3a051e460f033fa3 Mon Sep 17 00:00:00 2001 From: rGaillard Date: Mon, 12 Nov 2012 10:03:37 +0000 Subject: [PATCH] [*] WS : add accessories association to product webservices --- classes/Product.php | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/classes/Product.php b/classes/Product.php index e00ef862d..d51b6af2c 100644 --- a/classes/Product.php +++ b/classes/Product.php @@ -397,9 +397,17 @@ class ProductCore extends ObjectModel 'fields' => array( 'id' => array('required' => true), 'id_product_attribute' => array('required' => true), - ), + ), 'setter' => false ), + 'accessories' => array( + 'resource' => 'product', + 'fields' => array( + 'id' => array( + 'required' => true, + 'xlink_resource' => 'product'), + ) + ), ), ); @@ -4340,6 +4348,39 @@ class ProductCore extends ObjectModel return true; } + /** + * Webservice getter : get product accessories ids of current product for association + * + * @return array + */ + public function getWsAccessories() + { + $result = Db::getInstance()->executeS( + 'SELECT p.`id_product` AS id + FROM `'._DB_PREFIX_.'accessory` a + LEFT JOIN `'._DB_PREFIX_.'product` p ON (p.id_product = a.id_product_2) + '.Shop::addSqlAssociation('product', 'p').' + WHERE a.`id_product_1` = '.(int)$this->id + ); + + return $result; + } + + /** + * Webservice setter : set product accessories ids of current product for association + * + * @param $accessories product ids + */ + public function setWsAccessories($accessories) + { + foreach ($accessories as $accessory) + Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'accessory` (`id_product_1`, `id_product_2`) VALUES ('.(int)$this->id.', '.(int)$accessory['id'].')'); + + return true; + } + + /** + /** * Webservice getter : get combination ids of current product for association *