From 80814079687cd0cd2d725fc6a4ffa835499231cc Mon Sep 17 00:00:00 2001 From: bMancone Date: Wed, 2 Nov 2011 17:25:06 +0000 Subject: [PATCH] // Added ajax search for products and products attribute --- .../ajax_supplier_order_products_list.php | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 admin-dev/ajax_supplier_order_products_list.php diff --git a/admin-dev/ajax_supplier_order_products_list.php b/admin-dev/ajax_supplier_order_products_list.php new file mode 100644 index 000000000..00e8d77a6 --- /dev/null +++ b/admin-dev/ajax_supplier_order_products_list.php @@ -0,0 +1,66 @@ + +* @copyright 2007-2011 PrestaShop SA +* @version Release: $Revision$ +* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) +* International Registered Trademark & Property of PrestaShop SA +*/ +/** + * Used in AdminSupplierOrdersController in order to retrieves products, given a pattern + * @since 1.5.0 + */ +define('_PS_ADMIN_DIR_', getcwd()); +include(_PS_ADMIN_DIR_.'/../config/config.inc.php'); +/* Gets cookie or logout */ +require_once(dirname(__FILE__).'/init.php'); + +/* @var string Given this pattern, it will return a list of products */ +$pattern = pSQL(Tools::getValue('pattern', false)); +if (!$pattern || $pattern == '' || strlen($pattern) < 1) + die(); + +/* @var int Lang used */ +$id_lang = (int)Context::getContext()->language->id; + +/* @var DbQuery query used */ +$query = new DbQuery(); +$query->select(' + CONCAT(p.id_product, \'_\', IFNULL(pa.id_product_attribute, \'0\')) as id, + p.reference, + p.ean13, + IFNULL(CONCAT(pl.name, \' : \', GROUP_CONCAT(agl.name, \' - \', al.name SEPARATOR \', \')), pl.name) as name +'); +$query->from('product p'); +$query->innerJoin('product_lang pl ON (pl.id_product = p.id_product AND pl.id_lang = '.$id_lang.')'); +$query->leftJoin('product_attribute pa ON (pa.id_product = p.id_product)'); +$query->leftJoin('product_attribute_combination pac ON (pac.id_product_attribute = pa.id_product_attribute)'); +$query->leftJoin('attribute atr ON (atr.id_attribute = pac.id_attribute)'); +$query->leftJoin('attribute_lang al ON (al.id_attribute = atr.id_attribute AND al.id_lang = '.$id_lang.')'); +$query->leftJoin('attribute_group_lang agl ON (agl.id_attribute_group = atr.id_attribute_group AND agl.id_lang = '.$id_lang.')'); +$query->where('pl.name LIKE \'%'.$pattern.'%\' OR p.reference LIKE \'%'.$pattern.'%\''); +$query->where('p.id_product NOT IN (SELECT pd.id_product FROM `'._DB_PREFIX_.'product_download` pd WHERE (pd.id_product = p.id_product))'); +$query->groupBy('pa.id_product_attribute'); + +$items = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); +if ($items) + die(Tools::jsonEncode($items)); +die(); \ No newline at end of file