/**
  * @param ReportWizardForm $formModel
  */
 protected function setCommonAttributes(ReportWizardForm $formModel)
 {
     $formModel->id = $this->report->getId();
     $formModel->description = $this->report->getDescription();
     $formModel->moduleClassName = $this->report->getModuleClassName();
     if ($this->report->getOwner()->id > 0) {
         $formModel->ownerId = (int) $this->report->getOwner()->id;
         $formModel->ownerName = strval($this->report->getOwner());
     }
     $formModel->name = $this->report->getName();
     $formModel->type = $this->report->getType();
     $formModel->filtersStructure = $this->report->getFiltersStructure();
     $formModel->currencyConversionType = $this->report->getCurrencyConversionType();
     $formModel->spotConversionCurrencyCode = $this->report->getSpotConversionCurrencyCode();
     if ($this->report->isNew()) {
         $formModel->setIsNew();
     }
     $formModel->setExplicitReadWriteModelPermissions($this->report->getExplicitReadWriteModelPermissions());
     $formModel->filters = $this->report->getFilters();
     $formModel->orderBys = $this->report->getOrderBys();
     $formModel->groupBys = $this->report->getGroupBys();
     $formModel->displayAttributes = $this->report->getDisplayAttributes();
     $formModel->drillDownDisplayAttributes = $this->report->getDrillDownDisplayAttributes();
     $formModel->chart = $this->report->getChart();
 }
 /**
  * @param RedBeanModelJoinTablesQueryAdapter $joinTablesAdapter
  * @return null|string
  */
 protected function makeFiltersContent(RedBeanModelJoinTablesQueryAdapter $joinTablesAdapter)
 {
     $filters = $this->report->getFilters();
     $filtersStructure = $this->report->getFiltersStructure();
     $resolvedFilters = $this->resolveFiltersForVariableStates($filters, $filtersStructure);
     $resolvedFilters = $this->resolveFiltersForReadPermissions($resolvedFilters, $filtersStructure);
     $builder = new FiltersReportQueryBuilder($joinTablesAdapter, $filtersStructure);
     return $builder->makeQueryContent($resolvedFilters);
 }
Exemplo n.º 3
0
 /**
  * @param Report $report
  * @param array $stickyData
  */
 public static function resolveStickyDataToReport(Report $report, array $stickyData)
 {
     if (!isset($stickyData[ComponentForReportForm::TYPE_FILTERS])) {
         return;
     }
     $filters = $report->getFilters();
     foreach ($stickyData[ComponentForReportForm::TYPE_FILTERS] as $filterKey => $filterData) {
         if (isset($filters[$filterKey])) {
             if (isset($filterData['operator']) && ($filterData['operator'] == OperatorRules::TYPE_IS_NULL || $filterData['operator'] == OperatorRules::TYPE_IS_NOT_NULL)) {
                 $filterData['value'] = null;
                 $filterData['secondValue'] = null;
             }
             $filters[$filterKey]->setAttributes($filterData);
         }
     }
 }
Exemplo n.º 4
0
 public function testRemoveRuntimeFilters()
 {
     $report = new Report();
     $report->setModuleClassName('ContactsModule');
     $report->setType(Report::TYPE_ROWS_AND_COLUMNS);
     //A filter available at runtime
     $filter = new FilterForReportForm('AccountsModule', 'Account', $report->getType());
     $filter->availableAtRunTime = true;
     $filter->attributeIndexOrDerivedType = 'officePhone';
     $filter->value = 'aValue';
     $filter->operator = 'equals';
     $report->addFilter($filter);
     //A filter not available at runtime
     $filter2 = new FilterForReportForm('AccountsModule', 'Account', $report->getType());
     $filter2->availableAtRunTime = false;
     $filter2->attributeIndexOrDerivedType = 'contacts___lastName';
     $filter2->value = 'aValue';
     $filter2->operator = 'equals';
     $report->addFilter($filter2);
     $report->removeRuntimeFilters();
     $filters = $report->getFilters();
     $this->assertCount(1, $filters);
     $this->assertEquals($filter2, $filters[0]);
 }
 /**
  * @param Report $report
  * @param SavedReport$savedReport
  */
 public static function resolveReportToSavedReport(Report $report, SavedReport $savedReport)
 {
     $savedReport->description = $report->getDescription();
     $savedReport->moduleClassName = $report->getModuleClassName();
     $savedReport->name = $report->getName();
     $savedReport->owner = $report->getOwner();
     $savedReport->type = $report->getType();
     $data = array();
     $data['filtersStructure'] = $report->getFiltersStructure();
     $data['currencyConversionType'] = $report->getCurrencyConversionType();
     $data['spotConversionCurrencyCode'] = $report->getSpotConversionCurrencyCode();
     $data[ComponentForReportForm::TYPE_FILTERS] = self::makeArrayFromComponentFormsAttributesData($report->getFilters());
     $data[ComponentForReportForm::TYPE_ORDER_BYS] = self::makeArrayFromComponentFormsAttributesData($report->getOrderBys());
     $data[ComponentForReportForm::TYPE_GROUP_BYS] = self::makeArrayFromComponentFormsAttributesData($report->getGroupBys());
     $data[ComponentForReportForm::TYPE_DISPLAY_ATTRIBUTES] = self::makeArrayFromComponentFormsAttributesData($report->getDisplayAttributes());
     $data[ComponentForReportForm::TYPE_DRILL_DOWN_DISPLAY_ATTRIBUTES] = self::makeArrayFromComponentFormsAttributesData($report->getDrillDownDisplayAttributes());
     if ($report->getChart()->type != null) {
         $data['chart'] = self::makeArrayFromChartForReportFormAttributesData($report->getChart());
     }
     $savedReport->serializedData = serialize($data);
 }