protected function resolveSavedReportAndReportByPostData(array $postData, &$savedReport, &$report, $type, $id = null, $isBeingCopied = false)
 {
     if ($id == null) {
         $this->resolveCanCurrentUserAccessReports();
         $savedReport = new SavedReport();
         $report = new Report();
         $report->setType($type);
     } elseif ($isBeingCopied) {
         $savedReport = new SavedReport();
         $oldReport = SavedReport::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserReadModel($oldReport);
         SavedReportCopyModelUtil::copy($oldReport, $savedReport);
         $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     } else {
         $savedReport = SavedReport::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedReport);
         $report = SavedReportToReportAdapter::makeReportBySavedReport($savedReport);
     }
     DataToReportUtil::resolveReportByWizardPostData($report, $postData, ReportToWizardFormAdapter::getFormClassNameByType($type));
 }
 public function testSummationResolveReportByWizardPostData()
 {
     $bobby = User::getByUserName('bobby');
     $wizardFormClassName = 'SummationReportWizardForm';
     $report = new Report();
     $report->setType(Report::TYPE_SUMMATION);
     $data = array();
     $data['moduleClassName'] = 'ReportsTestModule';
     $data['description'] = 'a description';
     $data['name'] = 'name';
     $data['filtersStructure'] = '1 AND 2';
     $data['ownerId'] = $bobby->id;
     $data['currencyConversionType'] = Report::CURRENCY_CONVERSION_TYPE_SPOT;
     $data['spotConversionCurrencyCode'] = 'EUR';
     $data[ComponentForReportForm::TYPE_FILTERS][] = array('attributeIndexOrDerivedType' => 'date', 'valueType' => 'Between', 'value' => '2/24/2012', 'secondValue' => '2/28/2012');
     $data[ComponentForReportForm::TYPE_ORDER_BYS][] = array('attributeIndexOrDerivedType' => 'string', 'order' => 'desc');
     $data[ComponentForReportForm::TYPE_DISPLAY_ATTRIBUTES][] = array('attributeIndexOrDerivedType' => 'phone', 'label' => 'custom');
     $data[ComponentForReportForm::TYPE_DRILL_DOWN_DISPLAY_ATTRIBUTES][] = array('attributeIndexOrDerivedType' => 'string', 'label' => 'custom string');
     $data[ComponentForReportForm::TYPE_GROUP_BYS][] = array('attributeIndexOrDerivedType' => 'string', 'axis' => 'y');
     $data['ChartForReportForm'] = array('type' => ChartRules::TYPE_BAR_2D, 'firstSeries' => 'string', 'firstRange' => 'integer__Maximum');
     DataToReportUtil::resolveReportByWizardPostData($report, array('SummationReportWizardForm' => $data), $wizardFormClassName);
     $this->assertEquals('ReportsTestModule', $report->getModuleClassName());
     $this->assertEquals('a description', $report->getDescription());
     $this->assertEquals('name', $report->getName());
     $this->assertEquals('1 AND 2', $report->getFiltersStructure());
     $this->assertEquals($bobby->id, $report->getOwner()->id);
     $this->assertEquals(Report::CURRENCY_CONVERSION_TYPE_SPOT, $report->getCurrencyConversionType());
     $this->assertEquals('EUR', $report->getSpotConversionCurrencyCode());
     $filters = $report->getFilters();
     $this->assertCount(1, $filters);
     $this->assertEquals('date', $filters[0]->getAttributeIndexOrDerivedType());
     $this->assertEquals('Between', $filters[0]->valueType);
     $this->assertEquals('2012-02-24', $filters[0]->value);
     $this->assertEquals('2012-02-28', $filters[0]->secondValue);
     $orderBys = $report->getOrderBys();
     $this->assertCount(1, $orderBys);
     $this->assertEquals('string', $orderBys[0]->getAttributeIndexOrDerivedType());
     $this->assertEquals('desc', $orderBys[0]->order);
     $displayAttributes = $report->getDisplayAttributes();
     $this->assertCount(1, $displayAttributes);
     $this->assertEquals('phone', $displayAttributes[0]->getAttributeIndexOrDerivedType());
     $this->assertEquals('custom', $displayAttributes[0]->label);
     $groupBys = $report->getGroupBys();
     $this->assertCount(1, $groupBys);
     $this->assertEquals('string', $groupBys[0]->getAttributeIndexOrDerivedType());
     $this->assertEquals('y', $groupBys[0]->axis);
     $drillDownDisplayAttributes = $report->getDrillDownDisplayAttributes();
     $this->assertCount(1, $drillDownDisplayAttributes);
     $this->assertEquals('string', $drillDownDisplayAttributes[0]->getAttributeIndexOrDerivedType());
     $this->assertEquals('custom string', $drillDownDisplayAttributes[0]->label);
     $chart = $report->getChart();
     $this->assertEquals(ChartRules::TYPE_BAR_2D, $chart->type);
     $this->assertEquals('string', $chart->firstSeries);
     $this->assertEquals('integer__Maximum', $chart->firstRange);
 }
Esempio n. 3
0
 /**
  * Resolve report by saved calendar post data.
  * @param string $type
  * @param int $id
  * @param array $postData
  * @return Report
  */
 public static function resolveReportBySavedCalendarPostData($type, $id = null, $postData)
 {
     assert('is_string($type)');
     assert('is_array($postData)');
     if ($id == null) {
         $report = new Report();
         $report->setType($type);
     } else {
         $savedCalendar = SavedCalendar::getById(intval($id));
         ControllerSecurityUtil::resolveAccessCanCurrentUserWriteModel($savedCalendar);
         $report = SavedCalendarToReportAdapter::makeReportBySavedCalendar($savedCalendar);
     }
     if (isset($postData['SavedCalendar']) && isset($postData['SavedCalendar']['moduleClassName'])) {
         $report->setModuleClassName($postData['SavedCalendar']['moduleClassName']);
     } else {
         throw new NotSupportedException();
     }
     DataToReportUtil::resolveReportByWizardPostData($report, $postData, ReportToWizardFormAdapter::getFormClassNameByType($type));
     return $report;
 }