Commit ce75bc1d5faf2be681e54cf9885b9f1919f0a8e0

Authored by Alexey Boroda
1 parent ccfc5763

-Grid view half way done

Showing 2 changed files with 121 additions and 47 deletions   Show diff stats
@@ -15,6 +15,7 @@ @@ -15,6 +15,7 @@
15 * @property integer $updated_at 15 * @property integer $updated_at
16 * @property integer $deleted_at 16 * @property integer $deleted_at
17 * @property integer $deadline 17 * @property integer $deadline
  18 + * @property boolean $wasted
18 * @property integer $reason 19 * @property integer $reason
19 * @property string $check 20 * @property string $check
20 * @property string $sms 21 * @property string $sms
@@ -209,7 +210,7 @@ @@ -209,7 +210,7 @@
209 */ 210 */
210 public function getOrderLabel() 211 public function getOrderLabel()
211 { 212 {
212 - return $this->hasOne(Label::className(), [ 'id' => 'status' ]); 213 + return $this->hasOne(Label::className(), [ 'id' => 'label' ]);
213 } 214 }
214 215
215 /** 216 /**
@@ -235,5 +236,18 @@ @@ -235,5 +236,18 @@
235 return ''; 236 return '';
236 } 237 }
237 } 238 }
238 - 239 +
  240 + /**
  241 + * If deadline is fucked up returns true,
  242 + * if deadline is not setted return false, like everything is ok
  243 + * @return bool
  244 + */
  245 + public function getWasted()
  246 + {
  247 + if (empty($this->deadline)) {
  248 + return false;
  249 + } else {
  250 + return time() > $this->deadline;
  251 + }
  252 + }
239 } 253 }
240 \ No newline at end of file 254 \ No newline at end of file
views/order/index.php
@@ -7,12 +7,14 @@ @@ -7,12 +7,14 @@
7 7
8 use artweb\artbox\ecommerce\models\Delivery; 8 use artweb\artbox\ecommerce\models\Delivery;
9 use artweb\artbox\ecommerce\models\Label; 9 use artweb\artbox\ecommerce\models\Label;
  10 + use artweb\artbox\ecommerce\models\Order;
10 use artweb\artbox\ecommerce\models\OrderSearch; 11 use artweb\artbox\ecommerce\models\OrderSearch;
11 use kartik\daterange\DateRangePicker; 12 use kartik\daterange\DateRangePicker;
12 use kartik\select2\Select2; 13 use kartik\select2\Select2;
13 use yii\data\ActiveDataProvider; 14 use yii\data\ActiveDataProvider;
14 use yii\helpers\Html; 15 use yii\helpers\Html;
15 - use yii\grid\GridView; 16 + use kartik\grid\GridView;
  17 + use yii\helpers\StringHelper;
16 use yii\helpers\Url; 18 use yii\helpers\Url;
17 use yii\web\View; 19 use yii\web\View;
18 use yii\widgets\ActiveForm; 20 use yii\widgets\ActiveForm;
@@ -60,11 +62,16 @@ JS; @@ -60,11 +62,16 @@ JS;
60 'model' => $searchModel, 62 'model' => $searchModel,
61 'attribute' => 'label', 63 'attribute' => 'label',
62 'data' => Label::find() 64 'data' => Label::find()
63 - ->joinWith('lang')  
64 - ->select(['CONCAT(order_label.label,order_label_lang.title) AS name', 'id'])  
65 - ->indexBy('id')  
66 - ->asArray()  
67 - ->column(), 65 + ->joinWith('lang')
  66 + ->select(
  67 + [
  68 + 'CONCAT(order_label.label,order_label_lang.title) AS name',
  69 + 'id',
  70 + ]
  71 + )
  72 + ->indexBy('id')
  73 + ->asArray()
  74 + ->column(),
68 'options' => [ 'placeholder' => 'Select a state ...' ], 75 'options' => [ 'placeholder' => 'Select a state ...' ],
69 'pluginOptions' => [ 76 'pluginOptions' => [
70 'allowClear' => true, 77 'allowClear' => true,
@@ -94,47 +101,100 @@ JS; @@ -94,47 +101,100 @@ JS;
94 ); 101 );
95 ?> 102 ?>
96 <p> 103 <p>
97 -<?php  
98 - echo GridView::widget(  
99 - [  
100 - 'dataProvider' => $dataProvider,  
101 - 'filterModel' => $searchModel,  
102 - 'columns' => [  
103 - [  
104 - 'attribute' => 'id',  
105 - 'filter' => $searchForm->field($searchModel, 'id')  
106 - ->textInput(),  
107 - ],  
108 - [  
109 - 'attribute' => 'created_at',  
110 - 'format' => 'date',  
111 - 'filter' => $searchForm->field($searchModel, 'date_range')  
112 - ->widget(  
113 - DateRangePicker::className(),  
114 - [  
115 - 'convertFormat' => false,  
116 - 'pluginOptions' => [  
117 - 'locale' => [  
118 - 'format' => 'D-M-Y',  
119 - 'separator' => ' to ', 104 + <?php
  105 + echo GridView::widget(
  106 + [
  107 + 'dataProvider' => $dataProvider,
  108 + 'filterModel' => $searchModel,
  109 + 'rowOptions' => function($model) {
  110 + if ($model->wasted) {
  111 + return [ 'class' => 'danger' ];
  112 + } else {
  113 + return [];
  114 + }
  115 + },
  116 + 'columns' => [
  117 + [
  118 + 'attribute' => 'id',
  119 + 'filter' => $searchForm->field($searchModel, 'id')
  120 + ->textInput(),
  121 + ],
  122 + [
  123 + 'attribute' => 'created_at',
  124 + 'format' => 'date',
  125 + 'filter' => $searchForm->field($searchModel, 'date_range')
  126 + ->widget(
  127 + DateRangePicker::className(),
  128 + [
  129 + 'convertFormat' => false,
  130 + 'pluginOptions' => [
  131 + 'locale' => [
  132 + 'format' => 'D-M-Y',
  133 + 'separator' => ' to ',
  134 + ],
  135 + 'opens' => 'left',
120 ], 136 ],
121 - 'opens' => 'left',  
122 - ],  
123 - ]  
124 - )  
125 - ->label(false)  
126 - ->render(),  
127 - ],  
128 - 'name',  
129 - 'phone',  
130 - 'status',  
131 - [  
132 - 'class' => 'yii\grid\ActionColumn', 137 + ]
  138 + )
  139 + ->label(false)
  140 + ->render(),
  141 + ],
  142 + [
  143 + 'attribute' => 'deadline',
  144 + 'content' => function($model) {
  145 + if ($model->deadline == ''){
  146 + return '';
  147 + } else {
  148 + return \Yii::$app->formatter->asDate($model->deadline);
  149 + }
  150 + }
  151 + ],
  152 + 'name',
  153 + 'total',
  154 + [
  155 + 'attribute' => 'pay',
  156 + 'content' => function($model) {
  157 + if ($model->pay == false) {
  158 + return '<span class="glyphicon glyphicon-remove"></span>';
  159 + } else {
  160 + return '<span class="glyphicon glyphicon-ok"></span>';
  161 + }
  162 + },
  163 + ],
  164 + 'phone',
  165 + 'adress',
  166 + [
  167 + 'attribute' => 'label',
  168 + 'value' => function($model) {
  169 + /**
  170 + * @var Order $modl
  171 + */
  172 + if (empty( $model->orderLabel )) {
  173 + return '--';
  174 + } else {
  175 + return $model->orderLabel->label;
  176 + }
  177 + },
  178 + ],
  179 +
  180 + [
  181 + 'attribute' => 'body',
  182 + 'content' => function($model) {
  183 + if (!empty( $model->body )) {
  184 + return StringHelper::truncate($model->body, 8, '...');
  185 + } else {
  186 + return '';
  187 + }
  188 + },
  189 + ],
  190 + 'sms',
  191 + [
  192 + 'class' => 'yii\grid\ActionColumn',
  193 + ],
133 ], 194 ],
134 - ],  
135 - ]  
136 - );  
137 -?> 195 + ]
  196 + );
  197 + ?>
138 </p> 198 </p>
139 <?php 199 <?php
140 ActiveForm::end(); 200 ActiveForm::end();