Example #1
0
 public function get()
 {
     //init controller data
     $this->extensions->hk_InitData($this, __FUNCTION__);
     $this->loadLanguage('sale/customer');
     $this->loadModel('sale/customer');
     $approved = array(1 => $this->language->get('text_yes'), 0 => $this->language->get('text_no'));
     $filter_params = array('loginname', 'firstname', 'lastname', 'email', 'telephone', 'fax', 'customer_group_id', 'approved');
     //no keyword search here
     $grid_filter_params = array();
     $filter_data = array('method' => 'get', 'filter_params' => $filter_params, 'grid_filter_params' => $grid_filter_params);
     $filter = new AFilter($filter_data);
     if (!$filter->getFilterParam('loginname') && !$filter->getFilterParam('lastname')) {
         $this->rest->setResponseData(array('Error' => 'Login name or last name is required for customers search'));
         $this->rest->sendResponse(200);
         return null;
     }
     if (!$filter->getFilterParam('loginname') && strlen($filter->getFilterParam('lastname')) < 3) {
         $this->rest->setResponseData(array('Error' => 'Minimum last name length for search is 3 characters'));
         $this->rest->sendResponse(200);
         return null;
     }
     $total = $this->model_sale_customer->getTotalCustomers($filter->getFilterData());
     if ($total > 0) {
         $total_pages = ceil($total / $filter->getParam('rows'));
     } else {
         $total_pages = 0;
     }
     //Preserved jqGrid JSON interface
     $response = new stdClass();
     $response->page = $filter->getParam('page');
     $response->total = $total_pages;
     $response->records = $total;
     $results = $this->model_sale_customer->getCustomers($filter->getFilterData());
     $i = 0;
     if ($results) {
         foreach ($results as $result) {
             $response->rows[$i]['id'] = $result['customer_id'];
             $response->rows[$i]['cell']['loginname'] = $result['loginname'];
             $response->rows[$i]['cell']['name'] = $result['name'];
             $response->rows[$i]['cell']['email'] = $result['email'];
             $response->rows[$i]['cell']['customer_group'] = $result['customer_group'];
             $response->rows[$i]['cell']['status'] = $result['status'];
             $response->rows[$i]['cell']['approved'] = $result['approved'];
             $i++;
         }
     }
     $this->extensions->hk_UpdateData($this, __FUNCTION__);
     $this->rest->setResponseData($response);
     $this->rest->sendResponse(200);
 }
 public function get()
 {
     //init controller data
     $this->extensions->hk_InitData($this, __FUNCTION__);
     $this->loadModel('catalog/product');
     $filter_params = array('category_id', 'manufacturer_id', 'keyword', 'match', 'pfrom', 'pto');
     $grid_filter_params = array('name', 'description', 'model', 'sku');
     $filter_data = array('method' => 'get', 'filter_params' => $filter_params, 'grid_filter_params' => $grid_filter_params);
     $filter = new AFilter($filter_data);
     $filters = $filter->getFilterData();
     $category_id = $filter->getFilterParam('category_id');
     $manufacturer_id = $filter->getFilterParam('manufacturer_id');
     $keyword = $filter->getFilterParam('keyword');
     if (!$category_id && !$manufacturer_id && !$keyword) {
         $this->rest->setResponseData(array('Error' => 'Missing one of required product filter parameters'));
         $this->rest->sendResponse(200);
         return null;
     }
     //get total
     if ($keyword) {
         $total = $this->model_catalog_product->getTotalProducts($filters);
     } elseif ($category_id) {
         $total = $this->model_catalog_product->getTotalProductsByCategoryId($category_id);
     } elseif ($manufacturer_id) {
         $total = $this->model_catalog_product->getTotalProductsByManufacturerId($manufacturer_id);
     }
     if ($total > 0) {
         $total_pages = ceil($total / $filter->getParam('rows'));
     } else {
         $total_pages = 0;
     }
     //Preserved jqGrid JSON interface
     $response = new stdClass();
     $response->page = $filter->getParam('page');
     $response->total = $total_pages;
     $response->records = $total;
     $response->limit = $filters['limit'];
     $response->sidx = $filters['sort'];
     $response->sord = $filters['order'];
     $response->params = $filters;
     $resource = new AResource('image');
     if ($keyword) {
         $results = $this->model_catalog_product->getProducts($filters);
     } elseif ($category_id) {
         $results = $this->model_catalog_product->getProductsByCategoryId($category_id, $filters['sort'], $filters['order'], $filters['start'], $filters['limit']);
     } elseif ($manufacturer_id) {
         $results = $this->model_catalog_product->getProductsByManufacturerId($manufacturer_id, $filters['sort'], $filters['order'], $filters['start'], $filters['limit']);
     }
     $i = 0;
     if ($results) {
         foreach ($results as $result) {
             $thumbnail = $resource->getMainThumb('products', $result['product_id'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'), true);
             $response->rows[$i]['id'] = $result['product_id'];
             $response->rows[$i]['cell']['thumb'] = $thumbnail['thumb_url'];
             $response->rows[$i]['cell']['name'] = $result['name'];
             $response->rows[$i]['cell']['description'] = $result['description'];
             $response->rows[$i]['cell']['model'] = $result['model'];
             $response->rows[$i]['cell']['price'] = $this->currency->convert($result['final_price'], $this->config->get('config_currency'), $this->currency->getCode());
             $response->rows[$i]['cell']['currency_code'] = $this->currency->getCode();
             $response->rows[$i]['cell']['rating'] = $result['rating'];
             $i++;
         }
     }
     //init controller data
     $this->extensions->hk_UpdateData($this, __FUNCTION__);
     $this->rest->setResponseData($response);
     $this->rest->sendResponse(200);
 }