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 | 5 | use Yii; |
| 6 | 6 | use yii\behaviors\TimestampBehavior; |
| 7 | 7 | use yii\db\ActiveRecord; |
| 8 | - use yii\db\Expression; | |
| 9 | - use yii\web\Session; | |
| 10 | 8 | |
| 11 | 9 | /** |
| 12 | 10 | * Class Order |
| ... | ... | @@ -45,27 +43,38 @@ |
| 45 | 43 | */ |
| 46 | 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 | 73 | public static function tableName() |
| 54 | 74 | { |
| 55 | 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 | 78 | public function behaviors() |
| 70 | 79 | { |
| 71 | 80 | return [ |
| ... | ... | @@ -79,6 +88,10 @@ |
| 79 | 88 | { |
| 80 | 89 | return [ |
| 81 | 90 | [ |
| 91 | + ['pay'], | |
| 92 | + 'boolean', | |
| 93 | + ], | |
| 94 | + [ | |
| 82 | 95 | [ |
| 83 | 96 | 'created_at', |
| 84 | 97 | 'updated_at', |
| ... | ... | @@ -94,22 +107,23 @@ |
| 94 | 107 | ], |
| 95 | 108 | [ |
| 96 | 109 | [ 'comment' ], |
| 97 | - 'safe', | |
| 110 | + 'string', | |
| 98 | 111 | ], |
| 99 | 112 | [ |
| 100 | 113 | [ 'email' ], |
| 101 | 114 | 'email', |
| 102 | 115 | ], |
| 103 | 116 | [ |
| 104 | - [ 'phone' ], | |
| 117 | + [ | |
| 118 | + 'phone', | |
| 119 | + 'phone2', | |
| 120 | + ], | |
| 105 | 121 | 'match', |
| 106 | 122 | 'pattern' => '/^\+38\(\d{3}\)\d{3}-\d{2}-\d{2}$/', |
| 107 | - 'on' => self::SCENARIO_QUICK, | |
| 108 | 123 | ], |
| 109 | 124 | [ |
| 110 | 125 | [ |
| 111 | 126 | 'name', |
| 112 | - 'phone2', | |
| 113 | 127 | 'numbercard', |
| 114 | 128 | 'body', |
| 115 | 129 | 'declaration', |
| ... | ... | @@ -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 | 169 | public function getUser() |
| 299 | 170 | { |
| 300 | 171 | return $this->hasOne(Customer::className(), [ 'id' => 'user_id' ]); | ... | ... |
models/OrderSearch.php
| ... | ... | @@ -38,6 +38,7 @@ |
| 38 | 38 | 'date_from', |
| 39 | 39 | 'date_to', |
| 40 | 40 | 'date_range', |
| 41 | + 'created_at' | |
| 41 | 42 | ], |
| 42 | 43 | 'safe', |
| 43 | 44 | ], |
| ... | ... | @@ -73,7 +74,7 @@ |
| 73 | 74 | ); |
| 74 | 75 | |
| 75 | 76 | $this->load($params); |
| 76 | - | |
| 77 | + | |
| 77 | 78 | if (!$this->validate()) { |
| 78 | 79 | // uncomment the following line if you do not want to return any records when validation fails |
| 79 | 80 | // $query->where('0=1'); |
| ... | ... | @@ -112,9 +113,25 @@ |
| 112 | 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 | 136 | return $dataProvider; |
| 120 | 137 | } | ... | ... |
views/order/_form.php
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | + use artweb\artbox\ecommerce\models\Label; | |
| 3 | 4 | use artweb\artbox\ecommerce\models\Order; |
| 4 | 5 | use artweb\artbox\ecommerce\models\OrderProduct; |
| 5 | - use frontend\models\OrderFrontend; | |
| 6 | 6 | use kartik\grid\GridView; |
| 7 | + use kartik\widgets\DatePicker; | |
| 7 | 8 | use kartik\widgets\Select2; |
| 9 | + use kartik\widgets\SwitchInput; | |
| 8 | 10 | use yii\data\ActiveDataProvider; |
| 9 | 11 | use yii\helpers\Html; |
| 10 | 12 | use yii\bootstrap\ActiveForm; |
| ... | ... | @@ -41,6 +43,15 @@ $(document).on('submit', '#add-product-form', function(e) { |
| 41 | 43 | JS; |
| 42 | 44 | |
| 43 | 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 | 57 | <?php $form = ActiveForm::begin(); ?> |
| ... | ... | @@ -56,6 +67,34 @@ JS; |
| 56 | 67 | <div class="row"> |
| 57 | 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 | 99 | <?= $form->field($model, 'name') ?> |
| 61 | 100 | |
| ... | ... | @@ -67,63 +106,49 @@ JS; |
| 67 | 106 | |
| 68 | 107 | <?= $form->field($model, 'numbercard') ?> |
| 69 | 108 | |
| 70 | - <?= $form->field($model, 'body') | |
| 109 | + <?= $form->field($model, 'comment') | |
| 71 | 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 | 127 | <?= $form->field($model, 'declaration') ?> |
| 85 | 128 | |
| 86 | 129 | <?= $form->field($model, 'stock') ?> |
| 87 | 130 | |
| 88 | - <?= $form->field($model, 'consignment') ?> | |
| 89 | - </div> | |
| 90 | - <div class="col-sm-6"> | |
| 91 | - | |
| 92 | 131 | <?= $form->field($model, 'payment') |
| 93 | 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 | 137 | <?= $form->field($model, 'insurance') ?> |
| 99 | 138 | |
| 100 | 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 | 147 | <?= $form->field($model, 'city') ?> |
| 105 | 148 | |
| 106 | 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 | 152 | ->textarea([ 'rows' => '3' ]) ?> |
| 128 | 153 | </div> |
| 129 | 154 | </div> |
| ... | ... | @@ -137,7 +162,7 @@ JS; |
| 137 | 162 | echo GridView::widget( |
| 138 | 163 | [ |
| 139 | 164 | 'dataProvider' => $dataProvider, |
| 140 | - 'layout' => '{items}{pager}', | |
| 165 | + 'layout' => '{items}{pager}', | |
| 141 | 166 | 'columns' => [ |
| 142 | 167 | 'id', |
| 143 | 168 | 'product_name', |
| ... | ... | @@ -172,7 +197,7 @@ JS; |
| 172 | 197 | 'pjaxSettings' => [ |
| 173 | 198 | 'options' => [ |
| 174 | 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 | 224 | 'options' => [ 'placeholder' => 'Search for a product ...' ], |
| 200 | 225 | 'pluginOptions' => [ |
| 201 | 226 | 'allowClear' => true, |
| 202 | - 'disabled' => $model->isNewRecord ? true : false, | |
| 227 | + 'disabled' => $model->isNewRecord ? true : false, | |
| 203 | 228 | 'minimumInputLength' => 3, |
| 204 | 229 | 'language' => [ |
| 205 | 230 | 'errorLoading' => new JsExpression( |
| ... | ... | @@ -229,7 +254,8 @@ JS; |
| 229 | 254 | ?> |
| 230 | 255 | </div> |
| 231 | 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 | 259 | </div> |
| 234 | 260 | <div class="col-md-2"> |
| 235 | 261 | <?php echo Html::submitButton( | ... | ... |
views/order/index.php
| ... | ... | @@ -5,12 +5,17 @@ |
| 5 | 5 | * @var View $this |
| 6 | 6 | */ |
| 7 | 7 | |
| 8 | + use artweb\artbox\ecommerce\models\Delivery; | |
| 9 | + use artweb\artbox\ecommerce\models\Label; | |
| 8 | 10 | use artweb\artbox\ecommerce\models\OrderSearch; |
| 9 | 11 | use kartik\daterange\DateRangePicker; |
| 12 | + use kartik\select2\Select2; | |
| 10 | 13 | use yii\data\ActiveDataProvider; |
| 11 | 14 | use yii\helpers\Html; |
| 12 | - use kartik\grid\GridView; | |
| 15 | + use yii\grid\GridView; | |
| 16 | + use yii\helpers\Url; | |
| 13 | 17 | use yii\web\View; |
| 18 | + use yii\widgets\ActiveForm; | |
| 14 | 19 | |
| 15 | 20 | $this->title = 'Заказы'; |
| 16 | 21 | $this->params[ 'breadcrumbs' ][] = $this->title; |
| ... | ... | @@ -20,32 +25,109 @@ |
| 20 | 25 | <?= Html::a('Add order', [ 'create' ], [ 'class' => 'btn btn-success' ]) ?> |
| 21 | 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 | +?> | ... | ... |