diff --git a/controllers/StatisticsController.php b/controllers/StatisticsController.php index 880f1fc..36486e4 100755 --- a/controllers/StatisticsController.php +++ b/controllers/StatisticsController.php @@ -68,8 +68,21 @@ ->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, + ], + ], + ]; - $labelChartData = [ + $labelChartData2 = [ 'labels' => array_keys($labelStatistics), 'datasets' => [ [ @@ -81,14 +94,67 @@ ], ], ]; + + $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' => Order::getRejectionStatistics($dateFilter), + 'rejectionStatistics' => $rejectStatistics, 'dataProvider' => $dataProvider, - 'labelChartData' => $labelChartData, + 'labelChartData1' => $labelChartData1, + 'labelChartData2' => $labelChartData2, + 'labelChartData3' => $labelChartData3, + 'rejectChartData1' => $rejectChartData1, + 'rejectChartData2' => $rejectChartData2, 'dateValue' => empty($date_range) ? '' : $date_range, 'dataLabel' => empty($label) ? false : $label, ] diff --git a/views/statistics/index.php b/views/statistics/index.php index 37f394c..afbf6bc 100644 --- a/views/statistics/index.php +++ b/views/statistics/index.php @@ -17,7 +17,11 @@ * @var array $labelStatistics * @var array $rejectionStatistics * @var ActiveDataProvider $dataProvider - * @var array $labelChartData + * @var array $labelChartData1 + * @var array $labelChartData2 + * @var array $labelChartData3 + * @var array $rejectChartData1 + * @var array $rejectChartData2 * @var string $dateValue * @var int | boolean $dataLabel */ @@ -26,7 +30,7 @@
-

Collapsable

+

Поиск заказов

@@ -54,9 +58,9 @@
'label', - 'value' => $dataLabel, - 'data' => ArrayHelper::map( + 'name' => 'label', + 'value' => $dataLabel, + 'data' => ArrayHelper::map( $labels, function($model) { return $model->id; @@ -65,18 +69,18 @@ return $model->lang->title; } ), - 'options' => [ + 'options' => [ 'placeholder' => 'Все', ], 'pluginOptions' => [ - 'allowClear' => true, + 'allowClear' => true, ], ] ) ?>
'btn btn-success', ] @@ -89,7 +93,7 @@
-

Метки, статистика за

+

Метки, статистика за

@@ -114,37 +118,104 @@ ); } ?> - - 'bar', - 'options' => [ - 'height' => 200, - 'width' => 600, - ], - 'data' => $labelChartData, - 'clientOptions' => [ - 'title' => [ - 'display' => true, - 'text' => 'Статистика меток', - ], - 'scales' => [ - 'xAxes' => [ - [ - 'display' => false, - ], - ], - ], - ], - ] - ); ?> -
+ +
-

Метки, статистика за

+

Причины отказа, статистика за

@@ -169,77 +240,156 @@ ?>
-
+ + + +
+ + +
+
+

Заказы

+
+ +
+
+
+ $dataProvider, + 'columns' => [ + 'id', + 'created_at:datetime', + 'name', + 'city', + [ + 'attribute' => 'orderLabel.label', + 'label' => 'Метка', + ], + 'total', + [ + 'attribute' => 'reason', + 'content' => function($model) { + /** + * @var Order $model + */ + if (empty($model->reason)) { + return ''; + } else { + return Order::REASONS[ $model->reason ]; + } + }, + ], + [ + 'attribute' => 'manager.username', + 'label' => 'Менеджер', + ], + [ + 'attribute' => 'body', + 'content' => function($model) { + /** + * @var Order $model + */ + if (empty($model->body)) { + return ''; + } else { + return Html::a( + StringHelper::truncate($model->body, 10, '...'), + '#', + [ + 'data-toggle' => 'tooltip', + 'title' => $model->body, + 'onclick' => 'event.preventDefault();', + ] + ); + } + }, + ], + [ + 'content' => function($model) { + /** + * @var Order $model + */ + return Html::a( + Html::tag('i', '', [ 'class' => 'glyphicon glyphicon-eye-open' ]), + [ + '/ecommerce/order/view', + 'id' => $model->id, + ], + [ + 'target' => '_blank', + 'data-pjax' => '0', + ] + ); + }, + ], + ], + ] + ) ?> + +
+
-- libgit2 0.21.4