From: kirostumm Date: Tue, 26 Dec 2023 12:13:03 +0000 (+0300) Subject: Страница с заказами X-Git-Tag: 1.1~196^2~2 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=ae0ae8817981fea3fadc9305079f72428c5fc0a7;p=erp24_rep%2Fyii-erp24%2F.git Страница с заказами --- diff --git a/erp24/controllers/OrdersController.php b/erp24/controllers/OrdersController.php new file mode 100644 index 00000000..cc45be40 --- /dev/null +++ b/erp24/controllers/OrdersController.php @@ -0,0 +1,22 @@ +searchDelivery(Yii::$app->request->queryParams); + + return $this->render('delivery',[ + 'searchModel' => $searchModel, + 'dataProvider' => $dataProvider + ]); + } +} \ No newline at end of file diff --git a/erp24/records/OrdersAmo.php b/erp24/records/OrdersAmo.php index e570d3cc..7a717532 100644 --- a/erp24/records/OrdersAmo.php +++ b/erp24/records/OrdersAmo.php @@ -134,6 +134,11 @@ use Yii; * @property int $1c_send Отправлено в 1c * @property string $check_id_arr * @property string $data_md5 + * + * @property Sales $sales + * @property CityStore $storeObj + * @property Admin $courierObj + * @property Admin $floristObj */ class OrdersAmo extends \yii\db\ActiveRecord { @@ -309,4 +314,27 @@ class OrdersAmo extends \yii\db\ActiveRecord 'data_md5' => 'Data Md5', ]; } + + public function getSales() + { + return $this->hasMany(Sales::class, ['order_id' => 'id']) + ->orderBy([ + 'date' => SORT_ASC + ]); + } + + public function getStoreObj() + { + return $this->hasOne(CityStore::class, ['id' => 'store_id']); + } + + public function getFloristObj() + { + return $this->hasOne(Admin::class, ['id' => 'florist_id']); + } + + public function getCourierObj() + { + return $this->hasOne(Admin::class, ['id' => 'courier_id']); + } } diff --git a/erp24/records/OrdersAmoSearch.php b/erp24/records/OrdersAmoSearch.php new file mode 100644 index 00000000..b0cb6c1a --- /dev/null +++ b/erp24/records/OrdersAmoSearch.php @@ -0,0 +1,74 @@ +with('sales'); + + // add conditions that should always apply here + + $dataProvider = new ActiveDataProvider([ + 'query' => $query, + 'sort' => [ + 'defaultOrder' => [ + 'delivery_date' => SORT_DESC, + 'update_at' => SORT_DESC + ] + ] + ]); + + $this->load($params); + + if (!$this->validate()) { + // uncomment the following line if you do not want to return any records when validation fails + // $query->where('0=1'); + return $dataProvider; + } + + $query->where([ + '<=', + 'delivery_date', + date('Y-m-d H:i:s') + ]); + + return $dataProvider; + } +} diff --git a/erp24/views/orders/delivery.php b/erp24/views/orders/delivery.php new file mode 100644 index 00000000..4de7a9a0 --- /dev/null +++ b/erp24/views/orders/delivery.php @@ -0,0 +1,122 @@ + + +
+ $searchModel, + 'dataProvider' => $dataProvider, + 'options' => [ + 'style' => [ + 'overflow-x' => 'scroll' + ] + ], + 'columns' => [ + [ + 'label' => 'Информация о доставке', + 'format' => 'raw', + 'contentOptions' => function (OrdersAmo $model) { + return [ + 'class' => ($model->sales ? 'table-success' : 'table-danger'), + ]; + }, + 'value' => function (OrdersAmo $model) { + + $div = '
'; + + $div .= Html::a( + $model->delivery_date, + 'https://bazacvetov24.amocrm.ru/leads/detail/' . $model->amo_id, + [ + 'target' => 'new' . $model->amo_id + ] + ); + + $div .= '
'; + + $div .= '
Магазин: ' . ($model->storeObj->name ?? '-') . '
'; + + $div .= '
Доставка: ' . $model->delivery . '
'; + + $div .= '
Адрес доставки: ' . $model->delivery_adress . '
'; + + return $div; + } + ], + [ + 'label' => 'Статусы', + 'format' => 'raw', + 'value' => function (OrdersAmo $model) { + if ($model->status_id === 142) { + $div = 'Успешно'; + } else if ($model->status_id === 143) { + $div = 'Отказ'; + } else { + $div = '' . $model->status_id .''; + } + + return $div; + } + ], + [ + 'label' => '', + 'format' => 'raw', + 'value' => function (OrdersAmo $model) { + if ($model->floristObj) { + $div = '
Флорист: ' . ($model->floristObj->name ?? '-') . '
'; + } else { + $div = '
Флорист: ' . 'Укажите верного ID флориста в АМО! И обновите данные по заказам - иначе чек не пробьется! +У каждого чека должен быть актуальный продавец' . '
'; + } + + $div .= '
Курьер: ' . ($model->courierObj->name ?? '-') . '
'; + return $div; + } + ], + [ + 'label' => 'Информация по чекам', + 'format' => 'raw', + 'value' => function (OrdersAmo $model) { + $table = ''; + + if (!$model->sales) { + $tr = ''; + $table .= $tr; + } + + foreach ($model->sales as $sale) { + if ($sale->operation === 'Продажа') { + $tr = ''; + + } else if ($sale->operation === 'Возврат') { + $tr = ''; + + } else { + $tr = ''; + + } + + $table .= $tr; + } + + $table .= '
GUIDОперация
--
' . $sale->id . '' . $sale->operation . '
' . $sale->id . '' . $sale->operation . '
' . $sale->id . '' . $sale->operation . '
'; + + return $table; + } + ], + ] + ]) ?> +