diff --git a/controllers/StatisticsController.php b/controllers/StatisticsController.php index 0c4cb96..cd991ab 100755 --- a/controllers/StatisticsController.php +++ b/controllers/StatisticsController.php @@ -19,18 +19,18 @@ if (!empty($date_range)) { $arr = []; preg_match('@(.*)\s:\s(.*)@', $date_range, $arr); - $dateFilter = [ - 'between', - 'created_at', - strtotime($arr[1]), - strtotime($arr[2]), - ]; + $dateFilter = [ + 'between', + 'created_at', + strtotime($arr[ 1 ]), + strtotime($arr[ 2 ]), + ]; } else { $dateFilter = []; } if (!empty($label)) { - $labelFilter = ['label' => $label]; + $labelFilter = [ 'label' => $label ]; } else { $labelFilter = []; } @@ -57,20 +57,45 @@ /** * @var Label $model */ - return $model->getStatistics($dateFilter);} + return $model->getStatistics($dateFilter); + } ); - $dataProvider = new ActiveDataProvider([ - 'query' => Order::find()->filterWhere($dateFilter)->andFilterWhere($labelFilter), - ]); + $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, + 'labels' => $labels, + 'labelStatistics' => $labelStatistics, 'rejectionStatistics' => Order::getRejectionStatistics($dateFilter), - 'dataProvider' => $dataProvider, + 'dataProvider' => $dataProvider, + 'labelChartData' => $labelChartData, + 'dateValue' => empty($date_range) ? '' : $date_range, + 'dataLabel' => empty($label) ? false : $label, ] ); } diff --git a/views/statistics/index.php b/views/statistics/index.php index 27dbc71..6b25c1a 100644 --- a/views/statistics/index.php +++ b/views/statistics/index.php @@ -1,19 +1,25 @@ @@ -35,6 +41,7 @@ = DateRangePicker::widget( [ 'name' => 'date_range', + 'value' => $dateValue, 'pluginOptions' => [ 'locale' => [ 'format' => 'DD-MM-Y', @@ -48,6 +55,7 @@ = Select2::widget( [ 'name' => 'label', + 'value' => $dataLabel, 'data' => ArrayHelper::map( $labels, function($model) { @@ -60,6 +68,9 @@ 'options' => [ 'placeholder' => 'Все', ], + 'pluginOptions' => [ + 'allowClear' => true, + ], ] ) ?> @@ -94,16 +105,40 @@ $statistic) { - ?> -