49 assert(
'is_array($postData)');
50 assert(
'is_string($wizardFormClassName)');
52 if (isset($data[
'description']))
56 if (isset($data[
'moduleClassName']))
60 if (isset($data[
'name']))
62 $report->
setName($data[
'name']);
64 self::resolveFiltersStructure($data, $report);
74 if (isset($data[
'currencyConversionType']))
78 if (isset($data[
'spotConversionCurrencyCode']))
82 self::resolveFilters ($data, $report);
83 self::resolveOrderBys ($data, $report);
84 self::resolveDisplayAttributes ($data, $report);
85 self::resolveDrillDownDisplayAttributes ($data, $report);
86 self::resolveGroupBys ($data, $report);
87 self::resolveChart ($data, $report);
96 if ($shouldRemoveOnlyRuntimeFilters)
107 $sanitizedFiltersData = self::sanitizeFiltersData($moduleClassName, $report->
getType(), $filtersData);
108 foreach ($sanitizedFiltersData as $key => $filterData)
110 $filter =
new FilterForReportForm($moduleClassName, $moduleClassName::getPrimaryModelName(),
112 $filter->setAttributes($filterData);
131 assert(
'is_string($moduleClassName)');
132 assert(
'is_string($reportType)');
133 $sanitizedFiltersData = array();
134 foreach ($filtersData as $key => $filterData)
136 $sanitizedFiltersData[$key] = static::sanitizeFilterData($moduleClassName,
137 $moduleClassName::getPrimaryModelName(),
141 return $sanitizedFiltersData;
151 protected static function sanitizeFilterData($moduleClassName, $modelClassName, $reportType, $filterData)
153 assert(
'is_string($moduleClassName)');
154 assert(
'is_string($modelClassName)');
155 assert(
'is_string($reportType)');
156 assert(
'is_array($filterData)');
157 $filterForSanitizing =
new FilterForReportForm($moduleClassName, $moduleClassName::getPrimaryModelName(),
160 $filterForSanitizing->setAttributes($filterData);
161 $valueElementType = null;
162 $valueElementType = $filterForSanitizing->getValueElementType();
163 if ($valueElementType ==
'MixedDateTypesForReport')
165 if (isset($filterData[
'value']) && $filterData[
'value'] !== null)
167 $filterData[
'value'] = DateTimeUtil::resolveValueForDateDBFormatted($filterData[
'value']);
169 if (isset($filterData[
'secondValue']) && $filterData[
'secondValue'] !== null)
171 $filterData[
'secondValue'] = DateTimeUtil::resolveValueForDateDBFormatted($filterData[
'secondValue']);
187 foreach ($orderBysData as $key => $orderByData)
191 $orderBy->setAttributes($orderByData);
212 foreach ($displayAttributesData as $key => $displayAttributeData)
215 $moduleClassName::getPrimaryModelName(),
217 $displayAttribute->setAttributes($displayAttributeData);
238 foreach ($drillDownDisplayAttributesData as $key => $drillDownDisplayAttributeData)
241 $moduleClassName::getPrimaryModelName(),
243 $drillDownDisplayAttribute->setAttributes($drillDownDisplayAttributeData);
263 foreach ($groupBysData as $key => $groupByData)
267 $groupBy->setAttributes($groupByData);
288 if ($moduleClassName != null)
290 $modelClassName = $moduleClassName::getPrimaryModelName();
292 make($moduleClassName, $modelClassName, $report->
getType());
294 $adapter->getAttributesForChartSeries($report->
getGroupBys(),
301 $seriesDataAndLabels = array();
302 $rangeDataAndLabels = array();
308 $chart->setAttributes($chartData);
320 if (isset($data[
'filtersStructure']))
static resolveReportByWizardPostData(Report $report, $postData, $wizardFormClassName)
addDrillDownDisplayAttribute(DrillDownDisplayAttributeForReportForm $drillDownDisplayAttribute)
static resolveOrderBys($data, Report $report)
static resolveDrillDownDisplayAttributes($data, Report $report)
addDisplayAttribute(DisplayAttributeForReportForm $displayAttribute)
setCurrencyConversionType($currencyConversionType)
static resolveFiltersStructure($data, Report $report)
setDescription($description)
setChart(ChartForReportForm $chart)
setSpotConversionCurrencyCode($spotConversionCurrencyCode)
static sanitizeFiltersData($moduleClassName, $reportType, array $filtersData)
static getArrayValue($array, $element, $defaultValue=null)
setFiltersStructure($filtersStructure)
removeAllDisplayAttributes()
addFilter(FilterForReportForm $filter)
static resolveGroupBys($data, Report $report)
static getById($id, $modelClassName=null)
static makeDataAndLabelsForSeriesOrRange(Array $attributesData)
static sanitizeFilterData($moduleClassName, $modelClassName, $reportType, $filterData)
addOrderBy(OrderByForReportForm $orderBy)
addGroupBy(GroupByForReportForm $groupBy)
static resolveFilters($data, Report $report, $shouldRemoveOnlyRuntimeFilters=false)
removeAllDrillDownDisplayAttributes()
setModuleClassName($moduleClassName)
static resolveDisplayAttributes($data, Report $report)
static resolveChart($data, Report $report)
static make($moduleClassName, $modelClassName, $reportType)