public function buildFilterList(array $params) { $factory = new \App_ListFilter_FilterFactory(); $factory->setWhiteList(ReportFilterFields::getWhiteList()); $factory->setGroupingWhiteList(ReportGroups::getWhiteList()); if (!isset($params[ReportFilterFields::REPORT_TYPE])) { $e = new MissingParameterException("You must filter report by type"); $e->setParamName(ReportFilterFields::REPORT_TYPE); throw $e; } $map = array(ReportModel::PRESENCE_DAILY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::PRESENCE_MONTHLY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::LOCATION_DAILY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::LOCATION_MONTHLY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::OPENED_SUP_ALARMS_DAILY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::OPENED_SUP_ALARMS_MONTHLY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::CLOSED_SUP_ALARMS_DAILY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::CLOSED_SUP_ALARMS_MONTHLY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::ACCUMULATED_SUMMARY_DAILY => ReportModel::REPORT_GROUPS_SUPERVISION, ReportModel::EXPENSE_DETAIL_MONTHLY => ReportModel::REPORT_GROUPS_CHARGES_DETAIL, ReportModel::EXPENSE_DETAIL_DAILY => ReportModel::REPORT_GROUPS_CHARGES_DETAIL, ReportModel::CONSUMPTION_DETAIL_DAILY => ReportModel::REPORT_GROUPS_CHARGES_DETAIL, ReportModel::SUBSCRIPTION_BASE_MONTHLY => ReportModel::REPORT_GROUPS_SUBSCRIPTION_BASE, ReportModel::SUBSCRIPTION_SNAPSHOT_DAILY => ReportModel::REPORT_GROUPS_SUBSCRIPTION_SNAPSHOT, ReportModel::KPI_MONTHLY => ReportModel::REPORT_GROUPS_KPI, ReportModel::CONSUMPTION_DAILY => ReportModel::REPORT_GROUPS_CONSUMPTION, ReportModel::SMIP_CONSUMPTION_MONTHLY => ReportModel::REPORT_GROUPS_SMIP_CONSUMPTION, ReportModel::SMIP_CONSUMPTION_DAILY => ReportModel::REPORT_GROUPS_SMIP_CONSUMPTION); if (!isset($map[$params[ReportFilterFields::REPORT_TYPE]])) { throw new InvalidArgumentException("Invalid report type"); } $params[ReportFilterFields::REPORT_GROUP] = $map[$params[ReportFilterFields::REPORT_TYPE]]; $filterList = $factory->constructFilter($params); $filterList->setResourceId(ReportFilterFields::getResourceId()); $filterList->addExtraData('filterType', 'report'); \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']'); return $filterList; }
/** * Builds a filter list based on params. * @param array $params * @return App_ListFilter | null */ public function buildFilterList(array $params) { $factory = new \App_ListFilter_FilterFactory(); $fields = SimFilterFields::getWhiteList(); $factory->setWhiteList($fields); $sortingFields = SimSortingFields::getWhiteList(); $factory->setSortingWhiteList($sortingFields); $factory->setGroupingWhiteList(SimGroups::getWhiteList()); $factory->setAllowEmpty(true); //Black list for no monetary users $user = \App::getUserLogged(); if (!$user->monetaryDataAccess) { $factory->setBlackList(SimFilterFields::getNoMonetaryUserBlackList()); $factory->setSortingBlackList(SimSortingFields::getNoMonetaryUserBlackList()); $factory->setGroupingBlackList(SimGroups::getNoMonetaryUserBlackList()); } $filterList = $factory->constructFilter($params); $filterList->setValidators(SimFilterFields::getValidatorSpec()); if (!$filterList->isValid()) { $filterList = $factory->constructFilter(array()); } $filterList->setResourceId(SimFilterFields::getResourceId()); $filterList->addExtraData('filterType', 'sims'); \App::log()->debug('Unused filters [' . implode(',', $factory->getUnusedList()) . ']'); return $filterList; }