$label ]; } else { $labelFilter = []; } /** * Get labels */ $labels = Label::find() ->with('lang') ->all(); /** * Generate statistics */ $labelStatistics = ArrayHelper::map( $labels, function($model) { /** * @var Label $model */ return $model->lang->title; }, function($model) use ($dateFilter) { /** * @var Label $model */ return $model->getStatistics($dateFilter); } ); $dataProvider = new ActiveDataProvider( [ 'query' => Order::find() ->filterWhere($dateFilter) ->andFilterWhere($labelFilter), ] ); $chartData = []; foreach ($labelStatistics as $statistic) { $chartData[] = $statistic[ 'sum' ]; } $chartLabels = []; foreach ($labelStatistics as $name => $statistic) { $chartLabels[] = $name; } $labelChartData = [ 'labels' => $chartLabels, 'datasets' => [ [ 'label' => 'На сумму, грн.', 'data' => $chartData, ], ], ]; return $this->render( 'index', [ 'labels' => $labels, 'labelStatistics' => $labelStatistics, 'rejectionStatistics' => Order::getRejectionStatistics($dateFilter), 'dataProvider' => $dataProvider, 'labelChartData' => $labelChartData, 'dateValue' => empty($date_range) ? '' : $date_range, 'dataLabel' => empty($label) ? false : $label, ] ); } }