Commit bb962a6d5b8b24bcd84fa62d427864dde92da62e
1 parent
2b29877e
-Order in process
Showing
4 changed files
with
235 additions
and
239 deletions
Show diff stats
models/Order.php
@@ -5,8 +5,6 @@ | @@ -5,8 +5,6 @@ | ||
5 | use Yii; | 5 | use Yii; |
6 | use yii\behaviors\TimestampBehavior; | 6 | use yii\behaviors\TimestampBehavior; |
7 | use yii\db\ActiveRecord; | 7 | use yii\db\ActiveRecord; |
8 | - use yii\db\Expression; | ||
9 | - use yii\web\Session; | ||
10 | 8 | ||
11 | /** | 9 | /** |
12 | * Class Order | 10 | * Class Order |
@@ -45,27 +43,38 @@ | @@ -45,27 +43,38 @@ | ||
45 | */ | 43 | */ |
46 | class Order extends ActiveRecord | 44 | class Order extends ActiveRecord |
47 | { | 45 | { |
48 | - | ||
49 | - const SCENARIO_QUICK = 'quick'; | ||
50 | - | ||
51 | - private $data; | 46 | + const PAYMENT_LIST = [ |
47 | + 1 => [ | ||
48 | + 'label' => 'Оплатить наличными', | ||
49 | + ], | ||
50 | + 2 => [ | ||
51 | + 'label' => 'Оплатить на карту Приват Банка', | ||
52 | + 'hint' => 'оплата поступает 30 минут до суток!', | ||
53 | + ], | ||
54 | + 3 => [ | ||
55 | + 'label' => 'Оплатить "Правекс-телеграф"', | ||
56 | + 'hint' => 'оплата денежным переводом поступает от 30 мин. до 4 часов', | ||
57 | + ], | ||
58 | + 4 => [ | ||
59 | + 'label' => 'Оплатить по безналичному расчету', | ||
60 | + 'hint' => 'оплата поступает на счет от 1 до 3 рабочих дней! Счет на оплату отправим сразу после обработки заказана на ваш e-mail', | ||
61 | + ], | ||
62 | + ]; | ||
63 | + | ||
64 | + const SHIPPING_BY = [ | ||
65 | + 1 => [ | ||
66 | + 'label' => 'Отправитель', | ||
67 | + ], | ||
68 | + 2 => [ | ||
69 | + 'label' => 'Получатель', | ||
70 | + ], | ||
71 | + ]; | ||
52 | 72 | ||
53 | public static function tableName() | 73 | public static function tableName() |
54 | { | 74 | { |
55 | return 'order'; | 75 | return 'order'; |
56 | } | 76 | } |
57 | 77 | ||
58 | - public function scenarios() | ||
59 | - { | ||
60 | - $scenarios = array_merge( | ||
61 | - parent::scenarios(), | ||
62 | - [ | ||
63 | - self::SCENARIO_QUICK => [ 'phone' ], | ||
64 | - ] | ||
65 | - ); | ||
66 | - return $scenarios; | ||
67 | - } | ||
68 | - | ||
69 | public function behaviors() | 78 | public function behaviors() |
70 | { | 79 | { |
71 | return [ | 80 | return [ |
@@ -79,6 +88,10 @@ | @@ -79,6 +88,10 @@ | ||
79 | { | 88 | { |
80 | return [ | 89 | return [ |
81 | [ | 90 | [ |
91 | + ['pay'], | ||
92 | + 'boolean', | ||
93 | + ], | ||
94 | + [ | ||
82 | [ | 95 | [ |
83 | 'created_at', | 96 | 'created_at', |
84 | 'updated_at', | 97 | 'updated_at', |
@@ -94,22 +107,23 @@ | @@ -94,22 +107,23 @@ | ||
94 | ], | 107 | ], |
95 | [ | 108 | [ |
96 | [ 'comment' ], | 109 | [ 'comment' ], |
97 | - 'safe', | 110 | + 'string', |
98 | ], | 111 | ], |
99 | [ | 112 | [ |
100 | [ 'email' ], | 113 | [ 'email' ], |
101 | 'email', | 114 | 'email', |
102 | ], | 115 | ], |
103 | [ | 116 | [ |
104 | - [ 'phone' ], | 117 | + [ |
118 | + 'phone', | ||
119 | + 'phone2', | ||
120 | + ], | ||
105 | 'match', | 121 | 'match', |
106 | 'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/', | 122 | 'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/', |
107 | - 'on' => self::SCENARIO_QUICK, | ||
108 | ], | 123 | ], |
109 | [ | 124 | [ |
110 | [ | 125 | [ |
111 | 'name', | 126 | 'name', |
112 | - 'phone2', | ||
113 | 'numbercard', | 127 | 'numbercard', |
114 | 'body', | 128 | 'body', |
115 | 'declaration', | 129 | 'declaration', |
@@ -152,149 +166,6 @@ | @@ -152,149 +166,6 @@ | ||
152 | ]; | 166 | ]; |
153 | } | 167 | } |
154 | 168 | ||
155 | - // public function beforeSave($insert) | ||
156 | - // { | ||
157 | - // $this->user_id = Yii::$app->user->id; | ||
158 | - // $this->date_time = new Expression('NOW()'); | ||
159 | - // return parent::beforeSave($insert); | ||
160 | - // } | ||
161 | - // | ||
162 | - // public function beforeDelete() | ||
163 | - // { | ||
164 | - // return parent::beforeDelete(); | ||
165 | - // } | ||
166 | - | ||
167 | - public function addBasket($product_variant_id, $count) | ||
168 | - { | ||
169 | - $session = new Session; | ||
170 | - $session->open(); | ||
171 | - $data = $session[ 'basket' ]; | ||
172 | - $i = 0; | ||
173 | - if (isset( $session[ 'basket' ] )) { | ||
174 | - foreach ($session[ 'basket' ] as $key => $basket) { | ||
175 | - if ($product_variant_id == $basket[ 'id' ]) { | ||
176 | - $data[ $key ][ 'count' ] += $count; | ||
177 | - $session[ 'basket' ] = $data; | ||
178 | - $i++; | ||
179 | - } | ||
180 | - } | ||
181 | - } | ||
182 | - if ($i == 0) { | ||
183 | - $data[] = [ | ||
184 | - 'id' => $product_variant_id, | ||
185 | - 'count' => $count, | ||
186 | - ]; | ||
187 | - $session[ 'basket' ] = $data; | ||
188 | - } | ||
189 | - } | ||
190 | - | ||
191 | - public function rowBasket() | ||
192 | - { | ||
193 | - $session = new Session; | ||
194 | - $session->open(); | ||
195 | - $cost = 0; | ||
196 | - $count = 0; | ||
197 | - if (isset( $session[ 'basket' ] ) && count($session[ 'basket' ])) { | ||
198 | - foreach ($session[ 'basket' ] as $product) { | ||
199 | - $count += $product[ 'count' ]; | ||
200 | - } | ||
201 | - } | ||
202 | - | ||
203 | - return (object) [ | ||
204 | - 'cost' => $cost, | ||
205 | - 'count' => $count, | ||
206 | - ]; | ||
207 | - } | ||
208 | - | ||
209 | - public function deleteBasketMod($id) | ||
210 | - { | ||
211 | - $session = new Session; | ||
212 | - $session->open(); | ||
213 | - $basket = $session[ 'basket' ]; | ||
214 | - foreach ($basket as $key => $product) { | ||
215 | - if ($id == $product[ 'id' ]) { | ||
216 | - unset( $basket[ $key ] ); | ||
217 | - } | ||
218 | - } | ||
219 | - $session[ 'basket' ] = $basket; | ||
220 | - } | ||
221 | - | ||
222 | - public function updateBasket($row) | ||
223 | - { | ||
224 | - $session = new Session; | ||
225 | - $session->open(); | ||
226 | - //$data = array(); | ||
227 | - if ($row[ 'count' ] > 0) { | ||
228 | - $this->data[] = [ | ||
229 | - 'id' => $row[ 'id' ], | ||
230 | - 'count' => $row[ 'count' ], | ||
231 | - ]; | ||
232 | - } | ||
233 | - $session[ 'basket' ] = $this->data; | ||
234 | - } | ||
235 | - | ||
236 | - public function getBasketMods() | ||
237 | - { | ||
238 | - $session = new Session; | ||
239 | - $session->open(); | ||
240 | - $products = []; | ||
241 | - if (empty( $session[ 'basket' ] )) { | ||
242 | - return []; | ||
243 | - } | ||
244 | - foreach ($session[ 'basket' ] as $product) { | ||
245 | - $row = ProductVariant::find() | ||
246 | - ->select( | ||
247 | - [ | ||
248 | - 'product_variant.*', | ||
249 | - 'product.name as productName', | ||
250 | - 'product.alias', | ||
251 | - ] | ||
252 | - ) | ||
253 | - ->where([ 'product_variant.id' => $product[ 'id' ] ]) | ||
254 | - ->leftJoin('product', 'product.id = product_variant.product_id') | ||
255 | - ->one(); | ||
256 | - $row->count = $product[ 'count' ]; | ||
257 | - $row->sum_cost = $product[ 'count' ] * $row->price; | ||
258 | - $products[] = $row; | ||
259 | - } | ||
260 | - | ||
261 | - return $products; | ||
262 | - } | ||
263 | - | ||
264 | - public function getSumCost() | ||
265 | - { | ||
266 | - $session = new Session; | ||
267 | - $session->open(); | ||
268 | - $cost = 0; | ||
269 | - if (empty( $session[ 'basket' ] )) { | ||
270 | - return false; | ||
271 | - } | ||
272 | - foreach ($session[ 'basket' ] as $product) { | ||
273 | - $cost += ( $this->getModCost($product[ 'id' ]) * $product[ 'count' ] ); | ||
274 | - } | ||
275 | - | ||
276 | - return $cost; | ||
277 | - } | ||
278 | - | ||
279 | - private function getModCost($product_variant_id) | ||
280 | - { | ||
281 | - /** | ||
282 | - * @var ProductVariant $mod | ||
283 | - */ | ||
284 | - $mod = ProductVariant::find() | ||
285 | - ->where([ 'id' => $product_variant_id ]) | ||
286 | - ->one(); | ||
287 | - | ||
288 | - return $mod->price; | ||
289 | - } | ||
290 | - | ||
291 | - public function clearBasket() | ||
292 | - { | ||
293 | - $session = new Session; | ||
294 | - $session->open(); | ||
295 | - $session[ 'basket' ] = NULL; | ||
296 | - } | ||
297 | - | ||
298 | public function getUser() | 169 | public function getUser() |
299 | { | 170 | { |
300 | return $this->hasOne(Customer::className(), [ 'id' => 'user_id' ]); | 171 | return $this->hasOne(Customer::className(), [ 'id' => 'user_id' ]); |
models/OrderSearch.php
@@ -38,6 +38,7 @@ | @@ -38,6 +38,7 @@ | ||
38 | 'date_from', | 38 | 'date_from', |
39 | 'date_to', | 39 | 'date_to', |
40 | 'date_range', | 40 | 'date_range', |
41 | + 'created_at' | ||
41 | ], | 42 | ], |
42 | 'safe', | 43 | 'safe', |
43 | ], | 44 | ], |
@@ -73,7 +74,7 @@ | @@ -73,7 +74,7 @@ | ||
73 | ); | 74 | ); |
74 | 75 | ||
75 | $this->load($params); | 76 | $this->load($params); |
76 | - | 77 | + |
77 | if (!$this->validate()) { | 78 | if (!$this->validate()) { |
78 | // uncomment the following line if you do not want to return any records when validation fails | 79 | // uncomment the following line if you do not want to return any records when validation fails |
79 | // $query->where('0=1'); | 80 | // $query->where('0=1'); |
@@ -112,9 +113,25 @@ | @@ -112,9 +113,25 @@ | ||
112 | $this->phone, | 113 | $this->phone, |
113 | ] | 114 | ] |
114 | ); | 115 | ); |
115 | - | ||
116 | - $query->andFilterWhere(['>=', 'date_time', $this->date_from]); | ||
117 | - $query->andFilterWhere(['<=', 'date_time', $this->date_to]); | 116 | + if (!empty($this->date_range)) { |
117 | + $this->date_from = strtotime(explode('to', $this->date_range)[ 0 ]); | ||
118 | + $this->date_to = strtotime(explode('to', $this->date_range)[ 1 ]); | ||
119 | + | ||
120 | + $query->andFilterWhere( | ||
121 | + [ | ||
122 | + '>=', | ||
123 | + 'created_at', | ||
124 | + $this->date_from, | ||
125 | + ] | ||
126 | + ); | ||
127 | + $query->andFilterWhere( | ||
128 | + [ | ||
129 | + '<=', | ||
130 | + 'created_at', | ||
131 | + $this->date_to, | ||
132 | + ] | ||
133 | + ); | ||
134 | + } | ||
118 | 135 | ||
119 | return $dataProvider; | 136 | return $dataProvider; |
120 | } | 137 | } |
views/order/_form.php
1 | <?php | 1 | <?php |
2 | 2 | ||
3 | + use artweb\artbox\ecommerce\models\Label; | ||
3 | use artweb\artbox\ecommerce\models\Order; | 4 | use artweb\artbox\ecommerce\models\Order; |
4 | use artweb\artbox\ecommerce\models\OrderProduct; | 5 | use artweb\artbox\ecommerce\models\OrderProduct; |
5 | - use frontend\models\OrderFrontend; | ||
6 | use kartik\grid\GridView; | 6 | use kartik\grid\GridView; |
7 | + use kartik\widgets\DatePicker; | ||
7 | use kartik\widgets\Select2; | 8 | use kartik\widgets\Select2; |
9 | + use kartik\widgets\SwitchInput; | ||
8 | use yii\data\ActiveDataProvider; | 10 | use yii\data\ActiveDataProvider; |
9 | use yii\helpers\Html; | 11 | use yii\helpers\Html; |
10 | use yii\bootstrap\ActiveForm; | 12 | use yii\bootstrap\ActiveForm; |
@@ -41,6 +43,15 @@ $(document).on('submit', '#add-product-form', function(e) { | @@ -41,6 +43,15 @@ $(document).on('submit', '#add-product-form', function(e) { | ||
41 | JS; | 43 | JS; |
42 | 44 | ||
43 | $this->registerJs($js, View::POS_READY); | 45 | $this->registerJs($js, View::POS_READY); |
46 | + | ||
47 | + $js = <<< JS | ||
48 | +$('#order-phone, #order-phone2').mask('+38(000)000-00-00', { | ||
49 | + placeholder: '+38(___)___-__-__' | ||
50 | +}); | ||
51 | +JS; | ||
52 | + | ||
53 | + $this->registerJs($js, View::POS_READY); | ||
54 | + | ||
44 | ?> | 55 | ?> |
45 | 56 | ||
46 | <?php $form = ActiveForm::begin(); ?> | 57 | <?php $form = ActiveForm::begin(); ?> |
@@ -56,6 +67,34 @@ JS; | @@ -56,6 +67,34 @@ JS; | ||
56 | <div class="row"> | 67 | <div class="row"> |
57 | <div class="col-sm-6"> | 68 | <div class="col-sm-6"> |
58 | 69 | ||
70 | + <?= $form->field($model, 'deadline')->widget(DatePicker::className(), [ | ||
71 | + | ||
72 | + ])?> | ||
73 | + | ||
74 | + <?php | ||
75 | + echo $form->field($model, 'pay') | ||
76 | + ->widget( | ||
77 | + SwitchInput::className(), | ||
78 | + [ | ||
79 | + 'name' => 'pay', | ||
80 | + 'pluginOptions' => [ | ||
81 | + 'onText' => \Yii::t('app', 'Оплачено'), | ||
82 | + 'offText' => \Yii::t('app', 'Не оплачено'), | ||
83 | + ], | ||
84 | + ] | ||
85 | + ); ?> | ||
86 | + | ||
87 | + <?= $form->field($model, 'label') | ||
88 | + ->dropDownList( | ||
89 | + ArrayHelper::map( | ||
90 | + Label::find() | ||
91 | + ->asArray() | ||
92 | + ->all(), | ||
93 | + 'id', | ||
94 | + 'label' | ||
95 | + ), | ||
96 | + [ 'prompt' => 'Метка' ] | ||
97 | + ); ?> | ||
59 | 98 | ||
60 | <?= $form->field($model, 'name') ?> | 99 | <?= $form->field($model, 'name') ?> |
61 | 100 | ||
@@ -67,63 +106,49 @@ JS; | @@ -67,63 +106,49 @@ JS; | ||
67 | 106 | ||
68 | <?= $form->field($model, 'numbercard') ?> | 107 | <?= $form->field($model, 'numbercard') ?> |
69 | 108 | ||
70 | - <?= $form->field($model, 'body') | 109 | + <?= $form->field($model, 'comment') |
71 | ->textarea([ 'rows' => '3' ]) ?> | 110 | ->textarea([ 'rows' => '3' ]) ?> |
72 | - | ||
73 | - <?php $form->field($model, 'delivery') | ||
74 | - ->dropDownList( | ||
75 | - ArrayHelper::map( | ||
76 | - Delivery::find() | ||
77 | - ->asArray() | ||
78 | - ->all(), | ||
79 | - 'id', | ||
80 | - 'title' | ||
81 | - ) | ||
82 | - ) ?> | 111 | + <?= $form->field($model, 'delivery') |
112 | + ->dropDownList( | ||
113 | + ArrayHelper::map( | ||
114 | + Delivery::find() | ||
115 | + ->joinWith('lang') | ||
116 | + ->asArray() | ||
117 | + ->all(), | ||
118 | + 'id', | ||
119 | + 'lang.title' | ||
120 | + ), | ||
121 | + [ 'prompt' => \Yii::t('app', 'Выберите доставку ...') ] | ||
122 | + ) ?> | ||
123 | + | ||
124 | + </div> | ||
125 | + <div class="col-sm-6"> | ||
83 | 126 | ||
84 | <?= $form->field($model, 'declaration') ?> | 127 | <?= $form->field($model, 'declaration') ?> |
85 | 128 | ||
86 | <?= $form->field($model, 'stock') ?> | 129 | <?= $form->field($model, 'stock') ?> |
87 | 130 | ||
88 | - <?= $form->field($model, 'consignment') ?> | ||
89 | - </div> | ||
90 | - <div class="col-sm-6"> | ||
91 | - | ||
92 | <?= $form->field($model, 'payment') | 131 | <?= $form->field($model, 'payment') |
93 | ->dropDownList( | 132 | ->dropDownList( |
94 | - ArrayHelper::getColumn(OrderFrontend::PAYMENT_LIST, 'label'), | ||
95 | - [ 'prompt' => '...' ] | 133 | + ArrayHelper::getColumn(Order::PAYMENT_LIST, 'label'), |
134 | + [ 'prompt' => 'Способ оплаты ...' ] | ||
96 | ); ?> | 135 | ); ?> |
97 | 136 | ||
98 | <?= $form->field($model, 'insurance') ?> | 137 | <?= $form->field($model, 'insurance') ?> |
99 | 138 | ||
100 | <?= $form->field($model, 'amount_imposed') ?> | 139 | <?= $form->field($model, 'amount_imposed') ?> |
101 | 140 | ||
102 | - <?= $form->field($model, 'shipping_by') ?> | 141 | + <?= $form->field($model, 'shipping_by') |
142 | + ->dropDownList( | ||
143 | + ArrayHelper::getColumn(Order::SHIPPING_BY, 'label'), | ||
144 | + [ 'prompt' => 'Оплата доставки ...' ] | ||
145 | + ); ?> | ||
103 | 146 | ||
104 | <?= $form->field($model, 'city') ?> | 147 | <?= $form->field($model, 'city') ?> |
105 | 148 | ||
106 | <?= $form->field($model, 'adress') ?> | 149 | <?= $form->field($model, 'adress') ?> |
107 | 150 | ||
108 | - | ||
109 | - <?= $form->field($model, 'total') ?> | ||
110 | - | ||
111 | - <?= $form->field($model, 'status') | ||
112 | - ->dropDownList( | ||
113 | - [ | ||
114 | - 'Нет' => 'Нет', | ||
115 | - 'Обработан' => 'Обработан', | ||
116 | - 'На комплектации' => 'На комплектации', | ||
117 | - 'Укомплектован' => 'Укомплектован', | ||
118 | - 'Доставка' => 'Доставка', | ||
119 | - 'Выполнен' => 'Выполнен', | ||
120 | - 'Резерв оплачен' => 'Резерв оплачен', | ||
121 | - 'Резерв неоплачен' => 'Резерв неоплачен', | ||
122 | - ], | ||
123 | - [ 'prompt' => '...' ] | ||
124 | - ); ?> | ||
125 | - | ||
126 | - <?= $form->field($model, 'comment') | 151 | + <?= $form->field($model, 'body') |
127 | ->textarea([ 'rows' => '3' ]) ?> | 152 | ->textarea([ 'rows' => '3' ]) ?> |
128 | </div> | 153 | </div> |
129 | </div> | 154 | </div> |
@@ -137,7 +162,7 @@ JS; | @@ -137,7 +162,7 @@ JS; | ||
137 | echo GridView::widget( | 162 | echo GridView::widget( |
138 | [ | 163 | [ |
139 | 'dataProvider' => $dataProvider, | 164 | 'dataProvider' => $dataProvider, |
140 | - 'layout' => '{items}{pager}', | 165 | + 'layout' => '{items}{pager}', |
141 | 'columns' => [ | 166 | 'columns' => [ |
142 | 'id', | 167 | 'id', |
143 | 'product_name', | 168 | 'product_name', |
@@ -172,7 +197,7 @@ JS; | @@ -172,7 +197,7 @@ JS; | ||
172 | 'pjaxSettings' => [ | 197 | 'pjaxSettings' => [ |
173 | 'options' => [ | 198 | 'options' => [ |
174 | 'scrollTo' => 'false', | 199 | 'scrollTo' => 'false', |
175 | - 'id' => 'order-products-grid', | 200 | + 'id' => 'order-products-grid', |
176 | ], | 201 | ], |
177 | ], | 202 | ], |
178 | ] | 203 | ] |
@@ -199,7 +224,7 @@ JS; | @@ -199,7 +224,7 @@ JS; | ||
199 | 'options' => [ 'placeholder' => 'Search for a product ...' ], | 224 | 'options' => [ 'placeholder' => 'Search for a product ...' ], |
200 | 'pluginOptions' => [ | 225 | 'pluginOptions' => [ |
201 | 'allowClear' => true, | 226 | 'allowClear' => true, |
202 | - 'disabled' => $model->isNewRecord ? true : false, | 227 | + 'disabled' => $model->isNewRecord ? true : false, |
203 | 'minimumInputLength' => 3, | 228 | 'minimumInputLength' => 3, |
204 | 'language' => [ | 229 | 'language' => [ |
205 | 'errorLoading' => new JsExpression( | 230 | 'errorLoading' => new JsExpression( |
@@ -229,7 +254,8 @@ JS; | @@ -229,7 +254,8 @@ JS; | ||
229 | ?> | 254 | ?> |
230 | </div> | 255 | </div> |
231 | <div class="col-md-2"> | 256 | <div class="col-md-2"> |
232 | - <?php echo $newProductForm->field($newOrderProduct, 'count')->input('number'); ?> | 257 | + <?php echo $newProductForm->field($newOrderProduct, 'count') |
258 | + ->input('number'); ?> | ||
233 | </div> | 259 | </div> |
234 | <div class="col-md-2"> | 260 | <div class="col-md-2"> |
235 | <?php echo Html::submitButton( | 261 | <?php echo Html::submitButton( |
views/order/index.php
@@ -5,12 +5,17 @@ | @@ -5,12 +5,17 @@ | ||
5 | * @var View $this | 5 | * @var View $this |
6 | */ | 6 | */ |
7 | 7 | ||
8 | + use artweb\artbox\ecommerce\models\Delivery; | ||
9 | + use artweb\artbox\ecommerce\models\Label; | ||
8 | use artweb\artbox\ecommerce\models\OrderSearch; | 10 | use artweb\artbox\ecommerce\models\OrderSearch; |
9 | use kartik\daterange\DateRangePicker; | 11 | use kartik\daterange\DateRangePicker; |
12 | + use kartik\select2\Select2; | ||
10 | use yii\data\ActiveDataProvider; | 13 | use yii\data\ActiveDataProvider; |
11 | use yii\helpers\Html; | 14 | use yii\helpers\Html; |
12 | - use kartik\grid\GridView; | 15 | + use yii\grid\GridView; |
16 | + use yii\helpers\Url; | ||
13 | use yii\web\View; | 17 | use yii\web\View; |
18 | + use yii\widgets\ActiveForm; | ||
14 | 19 | ||
15 | $this->title = 'Заказы'; | 20 | $this->title = 'Заказы'; |
16 | $this->params[ 'breadcrumbs' ][] = $this->title; | 21 | $this->params[ 'breadcrumbs' ][] = $this->title; |
@@ -20,32 +25,109 @@ | @@ -20,32 +25,109 @@ | ||
20 | <?= Html::a('Add order', [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> | 25 | <?= Html::a('Add order', [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> |
21 | </p> | 26 | </p> |
22 | 27 | ||
23 | -<?= GridView::widget( | ||
24 | - [ | ||
25 | - 'dataProvider' => $dataProvider, | ||
26 | - 'filterModel' => $searchModel, | ||
27 | - 'columns' => [ | ||
28 | - 'id', | ||
29 | - [ | ||
30 | - 'attribute' => 'date_time', | ||
31 | - 'filter' => DateRangePicker::widget( | ||
32 | - [ | ||
33 | - 'name' => 'OrderSearch[date_range]', | ||
34 | - 'model' => $searchModel, | ||
35 | - 'convertFormat' => false, | ||
36 | - 'pluginOptions' => [ | ||
37 | - 'format' => 'YYYY-MM-DD', | ||
38 | - 'opens' => 'left', | ||
39 | - ], | ||
40 | - ] | ||
41 | - ), | 28 | +<?php |
29 | + $searchForm = ActiveForm::begin( | ||
30 | + [ | ||
31 | + 'method' => 'GET', | ||
32 | + 'action' => Url::to([ 'order/index' ]), | ||
33 | + 'id' => 'search-form', | ||
34 | + ] | ||
35 | + ); | ||
36 | +?> | ||
37 | + | ||
38 | +<p> | ||
39 | + | ||
40 | + <?php echo Html::submitButton( | ||
41 | + 'Search', | ||
42 | + [ | ||
43 | + 'class' => 'btn btn-primary', | ||
44 | + ] | ||
45 | + ) ?> | ||
46 | + | ||
47 | +</p> | ||
48 | + | ||
49 | +<?php | ||
50 | + echo Select2::widget( | ||
51 | + [ | ||
52 | + 'model' => $searchModel, | ||
53 | + 'attribute' => 'label', | ||
54 | + 'data' => Label::find() | ||
55 | + ->joinWith('lang') | ||
56 | + ->select(['CONCAT(order_label.label,order_label_lang.title) AS name', 'id']) | ||
57 | + ->indexBy('id') | ||
58 | + ->asArray() | ||
59 | + ->column(), | ||
60 | + 'options' => [ 'placeholder' => 'Select a state ...' ], | ||
61 | + 'pluginOptions' => [ | ||
62 | + 'allowClear' => true, | ||
63 | + 'multiple' => true, | ||
42 | ], | 64 | ], |
43 | - 'name', | ||
44 | - 'phone', | ||
45 | - 'status', | ||
46 | - [ | ||
47 | - 'class' => 'yii\grid\ActionColumn', | 65 | + ] |
66 | + ); | ||
67 | +?> | ||
68 | +<br> | ||
69 | +<?php | ||
70 | + echo Select2::widget( | ||
71 | + [ | ||
72 | + 'model' => $searchModel, | ||
73 | + 'attribute' => 'delivery', | ||
74 | + 'data' => Delivery::find() | ||
75 | + ->joinWith('lang') | ||
76 | + ->select('order_delivery_lang.title, id') | ||
77 | + ->indexBy('id') | ||
78 | + ->asArray() | ||
79 | + ->column(), | ||
80 | + 'options' => [ 'placeholder' => 'Select a state ...' ], | ||
81 | + 'pluginOptions' => [ | ||
82 | + 'allowClear' => true, | ||
83 | + 'multiple' => true, | ||
84 | + ], | ||
85 | + ] | ||
86 | + ); | ||
87 | +?> | ||
88 | +<p> | ||
89 | +<?php | ||
90 | + echo GridView::widget( | ||
91 | + [ | ||
92 | + 'dataProvider' => $dataProvider, | ||
93 | + 'filterModel' => $searchModel, | ||
94 | + 'columns' => [ | ||
95 | + [ | ||
96 | + 'attribute' => 'id', | ||
97 | + 'filter' => $searchForm->field($searchModel, 'id') | ||
98 | + ->textInput(), | ||
99 | + ], | ||
100 | + [ | ||
101 | + 'attribute' => 'created_at', | ||
102 | + 'format' => 'date', | ||
103 | + 'filter' => $searchForm->field($searchModel, 'date_range') | ||
104 | + ->widget( | ||
105 | + DateRangePicker::className(), | ||
106 | + [ | ||
107 | + 'convertFormat' => false, | ||
108 | + 'pluginOptions' => [ | ||
109 | + 'locale' => [ | ||
110 | + 'format' => 'D-M-Y', | ||
111 | + 'separator' => ' to ', | ||
112 | + ], | ||
113 | + 'opens' => 'left', | ||
114 | + ], | ||
115 | + ] | ||
116 | + ) | ||
117 | + ->label(false) | ||
118 | + ->render(), | ||
119 | + ], | ||
120 | + 'name', | ||
121 | + 'phone', | ||
122 | + 'status', | ||
123 | + [ | ||
124 | + 'class' => 'yii\grid\ActionColumn', | ||
125 | + ], | ||
48 | ], | 126 | ], |
49 | - ], | ||
50 | - ] | ||
51 | -) ?> | 127 | + ] |
128 | + ); | ||
129 | +?> | ||
130 | +</p> | ||
131 | +<?php | ||
132 | + ActiveForm::end(); | ||
133 | +?> |