$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), ] ); $labelChartData1 = [ 'labels' => array_keys($labelStatistics), 'datasets' => [ [ 'label' => 'Заказов, шт.', 'data' => ArrayHelper::getColumn($labelStatistics, 'count', false), 'backgroundColor' => 'rgba(54, 162, 235, 0.2)', 'borderColor' => 'rgba(54, 162, 235, 1)', 'borderWidth' => 1, ], ], ]; $labelChartData2 = [ 'labels' => array_keys($labelStatistics), 'datasets' => [ [ 'label' => 'На сумму, грн.', 'data' => ArrayHelper::getColumn($labelStatistics, 'sum', false), 'backgroundColor' => 'rgba(255, 99, 132, 0.2)', 'borderColor' => 'rgba(255,99,132,1)', 'borderWidth' => 1, ], ], ]; $labelChartData3 = [ 'labels' => array_keys($labelStatistics), 'datasets' => [ [ 'label' => 'Заказано товаров, шт.', 'data' => ArrayHelper::getColumn($labelStatistics, 'products', false), 'backgroundColor' => 'rgba(255, 206, 86, 0.2)', 'borderColor' => 'rgba(255, 206, 86, 1)', 'borderWidth' => 1, ], [ 'label' => 'Уникальных товаров, шт.', 'data' => ArrayHelper::getColumn($labelStatistics, 'unique', false), 'backgroundColor' => 'rgba(75, 192, 192, 0.2)', 'borderColor' => 'rgba(75, 192, 192, 1)', 'borderWidth' => 1, ], ], ]; $rejectStatistics = Order::getRejectionStatistics($dateFilter); $rejectChartData1 = [ 'labels' => array_keys($rejectStatistics), 'datasets' => [ [ 'label' => 'Заказов, шт.', 'data' => ArrayHelper::getColumn($rejectStatistics, 'count', false), 'backgroundColor' => 'rgba(153, 102, 255, 0.2)', 'borderColor' => 'rgba(153, 102, 255, 1)', 'borderWidth' => 1, ], ], ]; $rejectChartData2 = [ 'labels' => array_keys($rejectStatistics), 'datasets' => [ [ 'label' => 'На сумму, грн.', 'data' => ArrayHelper::getColumn($rejectStatistics, 'sum', false), 'backgroundColor' => 'rgba(255, 159, 64, 0.2)', 'borderColor' => 'rgba(255, 159, 64, 1)', 'borderWidth' => 1, ], ], ]; return $this->render( 'index', [ 'labels' => $labels, 'labelStatistics' => $labelStatistics, 'rejectionStatistics' => $rejectStatistics, 'dataProvider' => $dataProvider, 'labelChartData1' => $labelChartData1, 'labelChartData2' => $labelChartData2, 'labelChartData3' => $labelChartData3, 'rejectChartData1' => $rejectChartData1, 'rejectChartData2' => $rejectChartData2, 'dateValue' => empty($date_range) ? '' : $date_range, 'dataLabel' => empty($label) ? false : $label, ] ); } }