public function indexAction()
 {
     // Check permissions
     $dumbSim = new SimModel();
     $this->_helper->allowed('preinventory_list', $dumbSim);
     $filters = $this->_mapToModel($this->_getFilterParams(), false);
     $filters = $this->_mapToFilter($filters);
     if (isset($filters['subscriptionID'])) {
         $filters['id'] = $filters['subscriptionID'];
     }
     $this->_checkFilterParams($filters, StockFilterFields::getWhiteList());
     $filterList = $this->_stockSrv->buildFilterList($filters);
     $this->_helper->filterNotAllowedFilters('filter_by', $filterList);
     $filterHelper = $this->_helper->getHelper('filterNotAllowedFilters');
     $filterHelper->setThrowExOnNotAllowed(true);
     $filterHelper->direct('filter_by', $filterList);
     $params = $this->_getPaginatorParams();
     $simList = $this->_stockSrv->listAll($filterList, $params);
     if ($simList instanceof \Application\Model\ListResultModel) {
         $this->view->subscriptionData = array();
         foreach ($simList as $value) {
             $subscriptionData = $value->exportData();
             $subscriptionData = $this->_mapToSdp($subscriptionData);
             // Make the data available on the view
             $this->view->subscriptionData[] = $subscriptionData;
         }
     }
 }
 /**
  * Builds a filter list based on params.
  * @param  array          $params
  * @return App_ListFilter | null
  */
 public function buildFilterList(array $params)
 {
     /**
      * Check if ICC parameter exists and if it's valid
      */
     /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
        if (!empty($params['icc'])) {
            if (!$this->luhn($params['icc'])) {
                throw new AppEx\InvalidArgumentException('Invalid search query');
            }
        }
        */
     /**
      * Check if IMSI parameter exists and if it's valid
      */
     if (!empty($params['imsi'])) {
         $imsis = explode('<>', $params['imsi']);
         if (count($imsis) == 2) {
             /**
              * Is it a range of IMSIs?
              */
             /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
                if (preg_match('/^[0-9]{15}$/', trim($imsis[0])) &&
                    preg_match('/^[0-9]{15}$/', trim($imsis[1]))) {
                */
             $params['imsi'] = $imsis[0] . '<>' . $imsis[1];
             /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
                } else {
                    throw new AppEx\InvalidArgumentException('Invalid search query');
                }
                */
         } else {
             /* REMOVED according to GLOBALPORTAL-12528 (https://jira.tid.es/browse/GLOBALPORTAL-12528)
                if (!preg_match('/^[0-9]{15}$/', trim($params['imsi']))) {
                    throw new AppEx\InvalidArgumentException('Invalid search query');
                }
                */
         }
     }
     $factory = new \App_ListFilter_FilterFactory();
     $factory->setWhiteList(StockFilterFields::getWhiteList());
     $factory->getSortingWhiteList(StockSortingFields::getWhiteList());
     $filterList = $factory->constructFilter($params);
     if (!$filterList->isValid()) {
         $filterList = new \App_ListFilter();
     }
     $filterList->setResourceId(StockFilterFields::getResourceId());
     $filterList->addExtraData('filterType', 'stock');
     \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']');
     return $filterList;
 }