public function indexAction()
 {
     $dumpOrg = new OrgCustomerModel();
     $this->_helper->allowed('list', $dumpOrg);
     $params = $this->_getPaginatorParams();
     $filters = $this->_getFilterParams();
     if (isset($filters['customerID'])) {
         $filters['customerId'] = $filters['customerID'];
         unset($filters['customerID']);
     }
     if (isset($filters['billingAccountID'])) {
         $filters['billingAccountId'] = $filters['billingAccountID'];
         unset($filters['billingAccountID']);
     }
     if (isset($filters['startDate'])) {
         $filters['creationPeriod'] = $filters['startDate'] . '<>';
         unset($filters['startDate']);
     }
     if (isset($filters['endDate'])) {
         if (!isset($filters['creationPeriod'])) {
             $filters['creationPeriod'] = '<>';
         }
         $filters['creationPeriod'] .= $filters['endDate'];
         unset($filters['endDate']);
     }
     $this->_checkFilterParams($filters, array_merge(CustomerFilterFields::getWhiteList(), array('id')));
     $filters['type'] = OrgCustomerModel::ORG_TYPE;
     $filterList = $this->_orgSrv->buildFilterList($filters);
     $this->_helper->filterNotAllowedFilters('filter_by', $filterList);
     if ($filterList !== null) {
         $params['filterList'] = $filterList;
     }
     $customerList = $this->_orgSrv->listAll(Application\Model\Organization\OrgCustomerModel::ORG_TYPE, $params);
     $orgs = array();
     if (!$customerList instanceof Application\Model\ListResultModel) {
         throw new AppEx\UnexpectedException('No list returned');
     }
     $items = $customerList->getItems();
     // Pagination
     $items = array_slice($items, $params['startIndex'], $params['maxBatchSize']);
     foreach ($items as $item) {
         try {
             $org = $this->_orgSrv->load($item->id);
             $this->_helper->filterNotAllowedFields('read_field', $org);
             if ($org) {
                 $orgs[] = $this->_mapToSdp($org->exportData());
             }
         } catch (Exception $e) {
         }
     }
     // Make data available on the view
     $this->view->customerData = $orgs;
 }
Ejemplo n.º 2
0
 /**
  * Builds a filter list based on params.
  * @param  array          $params
  * @return App_ListFilter | null
  */
 public function buildFilterList(array $params)
 {
     if (!isset($params['type']) || !in_array($params['type'], array(OrgMasterModel::ORG_TYPE, OrgServiceProviderModel::ORG_TYPE, OrgCustomerModel::ORG_TYPE, OrgAggregatorModel::ORG_TYPE))) {
         return;
     }
     $orgType = $params['type'];
     unset($params['type']);
     if ($orgType === OrgServiceProviderModel::ORG_TYPE && \App::getOrgUserLogged()->getType() === OrgServiceProviderModel::ORG_TYPE) {
         if (!isset($params[ServiceProviderFilterFields::SERVICE_PROVIDER_ID_FOR_COMMERCIALS])) {
             $params[ServiceProviderFilterFields::SERVICE_PROVIDER_ID_FOR_COMMERCIALS] = \App::getOrgUserLogged()->id;
         }
     }
     $factory = new \App_ListFilter_FilterFactory();
     $filterFieldsMap = array(OrgMasterModel::ORG_TYPE => '\\Application\\Model\\Filter\\Organization\\MasterFilterFields', OrgServiceProviderModel::ORG_TYPE => '\\Application\\Model\\Filter\\Organization\\ServiceProviderFilterFields', OrgCustomerModel::ORG_TYPE => '\\Application\\Model\\Filter\\Organization\\CustomerFilterFields', OrgAggregatorModel::ORG_TYPE => '\\Application\\Model\\Filter\\Organization\\AggregatorFilterFields');
     $filterFieldsValidatorsMap = array(OrgMasterModel::ORG_TYPE => MasterFilterFields::getValidatorSpec(), OrgServiceProviderModel::ORG_TYPE => ServiceProviderFilterFields::getValidatorSpec(), OrgCustomerModel::ORG_TYPE => CustomerFilterFields::getValidatorSpec(), OrgAggregatorModel::ORG_TYPE => AggregatorFilterFields::getValidatorSpec());
     if (isset($filterFieldsMap[$orgType])) {
         $class = $filterFieldsMap[$orgType];
         $factory->setWhiteList($class::getWhiteList());
     }
     $filterList = $factory->constructFilter($params);
     if (isset($class)) {
         $filterList->setResourceId($class::getResourceId());
     }
     \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']');
     $filterList->setValidators($filterFieldsValidatorsMap[$orgType]);
     return $filterList->isValid() ? $filterList : null;
 }