From bafcab213c886ce6ceac77ae23e81009252b3656 Mon Sep 17 00:00:00 2001 From: Alexander Smirnov Date: Sun, 30 Mar 2025 15:33:34 +0300 Subject: [PATCH] [ERP-393] start testing --- erp24/actions/orders/DeliveryAction.php | 77 +++++++++- erp24/views/orders/delivery.php | 195 ++++++++++++++++++++++++ erp24/web/js/orders/delivery.js | 91 +++++++++++ 3 files changed, 359 insertions(+), 4 deletions(-) create mode 100644 erp24/web/js/orders/delivery.js diff --git a/erp24/actions/orders/DeliveryAction.php b/erp24/actions/orders/DeliveryAction.php index fc5ab8e3..4a8e4ea7 100644 --- a/erp24/actions/orders/DeliveryAction.php +++ b/erp24/actions/orders/DeliveryAction.php @@ -10,6 +10,7 @@ use yii_app\records\Balances; use yii_app\records\CityStore; use yii_app\records\CreateChecks; use yii_app\records\ExportImportTable; +use yii_app\records\OrdersAmo; use yii_app\records\OrdersStatus; use yii_app\records\Products1c; use yii_app\records\Sales; @@ -35,8 +36,6 @@ class DeliveryAction extends Action } } -// $products=array(); $payment_types=array(); - $usersArr = ArrayHelper::map(Products1c::find()->where(['tip' => 'admin'])->all(), 'id', 'name'); $orderStatuses = OrdersStatus::find()->select(['status_id', 'color', 'name'])->where(['pipeline_id' => 4021495])->all(); $status_ar = []; @@ -44,7 +43,8 @@ class DeliveryAction extends Action /* @var $orderStatus OrdersStatus */ if ($orderStatus->status_id == 142) { $orderStatus->name = "Успешно"; } if ($orderStatus->status_id == 143) { $orderStatus->name = "Отказ"; } - //$status_ar[$row["status_id"]]="".$row["name"].""; + + $status_ar[$orderStatus["status_id"]] = "" . $orderStatus["name"] . ""; } $lid_id = (int)(Yii::$app->request->post("lid_id") ?? 0); @@ -108,8 +108,77 @@ class DeliveryAction extends Action if (!in_array($checkr["order_id"], $sale)) { $sale[$checkr["order_id"]] = ''; } + + if ($checkr["operation"] == "Возврат") { + $check_vozvrat_cnt[$checkr["order_id"]] = ($check_vozvrat_cnt[$checkr["order_id"]] ?? 0) + 1; + } + if ($checkr["operation"] == "Продажа") { + $check_sale_cnt[$checkr["order_id"]] = ($check_sale_cnt[$checkr["order_id"]] ?? 0) + 1; + } + + $cheks_txt = 'ABCDEF'; + + $sale[$checkr["order_id"]] = ($sale[$checkr["order_id"]] ?? '') . $cheks_txt; + } + + $createChecks2 = CreateChecks::find()->where([">=", 'date', date('Y-m-d H:i:s', strtotime('-30 days', time()))])->all(); + $create_check_arr = []; + foreach($createChecks2 as $createCheck2) { + $create_check_arr[$createCheck2->order_id][] = $createCheck2; + } + + $ordersAmoQuery = OrdersAmo::find()->where(['<=', 'delivery_date', date('Y-m-d H:i:s', time())]); + if (!empty($lid_id)) { + $ordersAmoQuery->andWhere(['id' => $lid_id]); + } elseif (!empty($amo_id)) { + $ordersAmoQuery->andWhere(['amo_id' => $amo_id]); + } else { + $statuses = ['142']; + foreach($_REQUEST["statuses"] ?? [] as $is => $idf) { + if ($idf == 'on') { + $statuses [] = $is; + } + } + $ordersAmoQuery->andWhere(['status_id' => $statuses]); + if (!empty($delivery_date)) { + $ordersAmoQuery->andWhere(['delivery_date' => $delivery_date]); + } + } + + $ordersAmo = $ordersAmoQuery->orderBy(['delivery_date' => SORT_DESC, 'updated_at' => SORT_DESC])->limit(1750)->asArray()->all(); + + $in_orders = []; + $yeses = []; + $itog = 0; + $seller_id = []; + $ords = []; + foreach ($ordersAmo as $orderAmo) { + $yes=0; + if (!empty($sale[$orderAmo["id"]])) { + $yes=1; + } + if (!empty($sale[$orderAmo["amo_id"]])) { + $yes=1; + } + $yeses [] = $yes; + + $itog += $orderAmo["price"]; + + $in_orders[] = $orderAmo["amo_id"]; + + $seller_idRec = ExportImportTable::find()->select(['export_val'])->where(['entity' => 'admin', 'export_id' => 1, 'entity_id' => $orderAmo["florist_id"]])->one(); + $seller_id []= $seller_idRec ? $seller_idRec->export_val : null; + + $ordRec = Sales::find()->select('order_id')->where(['order_id' => $orderAmo["amo_id"]]) + ->andWhere(['>', 'order_id', 0])->orderBy(['date' => SORT_DESC])->one(); + $ords []= $ordRec ? $ordRec->order_id : null; + +// $summ_all = $orderAmo["price"] + $orderAmo["price_dostavka"] + $orderAmo["price_dostavka_povtor"]; } - return $this->controller->render('delivery', compact('yesses', 'lid_id', 'delivery_date', 'status_ar2')); + return $this->controller->render('delivery', compact('yesses', 'lid_id', + 'delivery_date', 'status_ar', 'status_ar2', 'checkarr', 'ordersAmo', 'yeses', 'in_orders', + 'users_arr_group_3_plus', 'check_sale_cnt', 'check_vozvrat_cnt', 'exportStore', 'storesNameArr', + 'balancesAll', 'services', 'seller_id', 'create_check_arr', 'usersArr', 'ords', 'itog')); } } diff --git a/erp24/views/orders/delivery.php b/erp24/views/orders/delivery.php index 7efe1cf6..f5ad5203 100644 --- a/erp24/views/orders/delivery.php +++ b/erp24/views/orders/delivery.php @@ -6,7 +6,34 @@ use yii\widgets\ActiveForm; /* @var $yesses array */ /* @var $lid_id int */ /* @var $delivery_date string */ +/* @var $status_ar array */ /* @var $status_ar2 array */ +/* @var $checkarr array */ +/* @var $ordersAmo array */ +/* @var $yeses array */ +/* @var $in_orders array */ +/* @var $users_arr_group_3_plus array */ +/* @var $check_sale_cnt array */ +/* @var $check_vozvrat_cnt array */ +/* @var $exportStore array */ +/* @var $storesNameArr array */ +/* @var $balancesAll array */ +/* @var $services array */ +/* @var $seller_id array */ +/* @var $create_check_arr array */ +/* @var $usersArr array */ +/* @var $ords array */ +/* @var $itog double */ + +$this->registerJsFile('/js/orders/delivery.js', ['position' => \yii\web\View::POS_END]); + +$this->registerCss(' + .table td table.table-products tbody tr td { + padding:0; + margin:0; + font-size:11px; + } +') ?> @@ -63,4 +90,172 @@ use yii\widgets\ActiveForm; +
SQLSELECT *, TO_CHAR(delivery_date, 'DD.MM.YYYY') as dated FROM orders_amo + WHERE $WHERE AND delivery_date <= NOW() order by delivery_date DESC, updated_at DESC LIMIT 1750
+ +
всего + + + + $orderAmo): ?> + + + + + + + + +
"> + " target=new> +
+ + + + --- + + +
> + + + флорист в амо не указан + + yes= + + = $check_sale_cnt[$orderAmo["id"]]): ?> + возвратов чеков + + + + + + + + + + + + + + + + + + $arp): ?> + + + + + + class="bg-danger" > + + + + + + + + +
кол-вонаименованиецветценаостаток
+ + + Сумма в чеке больше суммы заказ это норм! + +
+ + Укажите верного ID флориста в АМО! И обновите данные + по заказам - иначе чек не пробьется! У каждого чека должен быть актуальный продавец + +
+
+ + + + +
+
+ + Флорист + + + Курьер + +
+
+
+ + + + + +
').show();" + onclick="$('#check__').show();" + class="col text-center p-1 m-1 bg-" + + > + + Пробит + + Создан - находится в очереди на пробитие в 1с + + + + + + продавец + + + + + + + + + + +
+ + + + + + + + 0 && $ords[$ind] && $seller_id[$ind]): ?> + + + + + Нужно провести заказ в amo по новой системе - добавить состав + +
+
+ Итого руб. всего + diff --git a/erp24/web/js/orders/delivery.js b/erp24/web/js/orders/delivery.js new file mode 100644 index 00000000..09b7f6f8 --- /dev/null +++ b/erp24/web/js/orders/delivery.js @@ -0,0 +1,91 @@ +/* jshint esversion: 6 */ + +function ajax_return_check(sales_check) { + const $mainModal = $('#mainModal'); + const $modalBody = $mainModal.find('.modal-body'); + const $modalFooter = $mainModal.find('.modal-footer'); + $mainModal.find('.close').on('click', () => { $mainModal.modal('hide'); }); + $mainModal.find('.modal-title').html(''); + $modalFooter.html(''); + $mainModal.modal('show'); + + const param3 = $('meta[name=csrf-param]').attr('content'); + const token3 = $('meta[name=csrf-token]').attr('content'); + $.ajax({ + url: '/orders/ajax-return-check/', + method: 'post', + dataType: 'html', + data: { sales_check: sales_check, [param3]: token3}, + success: function(data){ + $modalBody.html(data); + $('#check__' + sales_check).remove(); + }}); +} + +function ajax_create_check(order_id) { + const $mainModal = $('#mainModal'); + const $modalBody = $mainModal.find('.modal-body'); + const $modalFooter = $mainModal.find('.modal-footer'); + $mainModal.find('.close').on('click', () => { $mainModal.modal('hide'); }); + $mainModal.find('.modal-title').html(''); + $modalFooter.html(''); + $mainModal.modal('show'); + + const param3 = $('meta[name=csrf-param]').attr('content'); + const token3 = $('meta[name=csrf-token]').attr('content'); + $.ajax({ + url: '/orders/ajax-create-check/', + method: 'post', + dataType: 'html', + data: { order_id: order_id, create_check: '2', [param3]: token3 }, + success: function(data) { + $modalBody.html(data); + $('.btn__' + order_id).hide(); + }}); +} + + + + +function ajax_create_check_json(order_id) { + const $mainModal = $('#mainModal'); + const $modalBody = $mainModal.find('.modal-body'); + const $modalFooter = $mainModal.find('.modal-footer'); + $mainModal.find('.close').on('click', () => { $mainModal.modal('hide'); }); + $mainModal.find('.modal-title').html(''); + $modalFooter.html(''); + $mainModal.modal('show'); + + const param3 = $('meta[name=csrf-param]').attr('content'); + const token3 = $('meta[name=csrf-token]').attr('content'); + $.ajax({ + url: '/orders/ajax-create-check-json/', + method: 'post', + dataType: 'html', + data: { order_id: order_id, create_check: '2', [param3]: token3 }, + success: function(data){ + $modalBody.html(data); + $('.btn__' +order_id).hide(); + }}); +} + +function ajax_check_remove(order_id) { + const $mainModal = $('#mainModal'); + const $modalBody = $mainModal.find('.modal-body'); + const $modalFooter = $mainModal.find('.modal-footer'); + $mainModal.find('.close').on('click', () => { $mainModal.modal('hide'); }); + $mainModal.find('.modal-title').html(''); + $modalFooter.html(''); + $mainModal.modal('show'); + + const param3 = $('meta[name=csrf-param]').attr('content'); + const token3 = $('meta[name=csrf-token]').attr('content'); + $.ajax({ + url: '/orders/ajax-check-remove/', + method: 'post', + dataType: 'html', + data: { order_id: order_id, [param3]: token3}, + success: function(data) { + $modalBody.html(data); + }}); +} -- 2.39.5