]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-209] при нажатии кнопка Обновить записываются номера телефонов из сделок
authorAlexander Smirnov <fredeom@mail.ru>
Mon, 7 Oct 2024 14:29:59 +0000 (17:29 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Mon, 7 Oct 2024 14:29:59 +0000 (17:29 +0300)
erp24/actions/orders/FillPhoneAction.php
erp24/views/orders/fill-phone.php

index ba135bfd85920ac4e2cd31f16d21646c70a5face..0cbe882275f4e1a55ba218de674642bdda1c9e8f 100644 (file)
@@ -27,17 +27,31 @@ class FillPhoneAction extends Action
 
         $sales = [];
         $phoneByAmoIdMap = [];
-        if ($action == 'show') {
-            $sales = Sales::find()->select(['id', 'order_id'])->where(['between', 'date', $model->date_from, $model->date_to])
+        if ($action == 'show' || $action == 'update') {
+            $sales = Sales::find()->select(['id', 'order_id', 'date'])->where(['between', 'date', $model->date_from, $model->date_to])
                 ->andWhere(['not in', 'order_id', ['', null]])
                 ->andWhere(['phone' => 0])
                 ->all();
             $orderIds = ArrayHelper::getColumn($sales, 'order_id');
+            $orderIdsClean = [];
+            foreach ($orderIds as $orderId) {
+                if (is_int($orderId)) {
+                    $orderIdsClean[] = $orderId;
+                }
+            }
             $ordersAmo = OrdersAmo::find()->select(['amo_id', 'phone'])
-                ->where(['amo_id' => $orderIds])
+                ->where(['amo_id' => $orderIdsClean])
                 ->andWhere(['not in', 'phone', ['', null]])
                 ->all();
             $phoneByAmoIdMap = ArrayHelper::map($ordersAmo, 'amo_id', 'phone');
+            if ($action == 'update') {
+                foreach ($sales as $sale) {
+                    /** @var $sale Sales */
+                    if (!empty($phoneByAmoIdMap[$sale->order_id]) && is_int($phoneByAmoIdMap[$sale->order_id])) {
+                        Sales::updateAll(['phone' => $phoneByAmoIdMap[$sale->order_id]], ['order_id' => $sale->order_id]);
+                    }
+                }
+            }
         }
 
         return $this->controller->render('fill-phone',
index 46a0ec25430a4b096d646ab8c4417918cb8d2352..875d11d387a92fc64a582167b18d6a7888be90d9 100644 (file)
@@ -66,8 +66,9 @@ use yii_app\records\Sales;
                 <?php if (!empty($phoneByAmoIdMap[$sale->order_id])): ?>
                     <tr>
                         <td><?= $sale->id ?></td>
-                        <td><?= $sale->order_id ?></td>
                         <td><?= $phoneByAmoIdMap[$sale->order_id] ?></td>
+                        <td><?= $sale->order_id ?></td>
+                        <td><?= $sale->date ?></td>
                     </tr>
                 <?php endif; ?>
             <?php endforeach; ?>
@@ -80,16 +81,18 @@ use yii_app\records\Sales;
                 <thead>
                     <tr>
                         <th>guid</th>
-                        <th>order_id</th>
                         <th>phone</th>
+                        <th>order_id</th>
+                        <th>date</th>
                     </tr>
                 </thead>
                 <tbody>
                     <?php foreach($sales as $sale): /** @var $sale Sales */ ?>
                         <tr>
                             <td><?= $sale->id ?></td>
-                            <td><?= $sale->order_id ?></td>
                             <td><?= $phoneByAmoIdMap[$sale->order_id] ?? 'missing' ?></td>
+                            <td><?= $sale->order_id ?></td>
+                            <td><?= $sale->date ?></td>
                         </tr>
                     <?php endforeach; ?>
                 </tbody>