]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Добавил обноаление у пользователя поля store_arr_guid
authorvladfo <fvv2011@gmail.com>
Fri, 27 Sep 2024 12:54:20 +0000 (15:54 +0300)
committervladfo <fvv2011@gmail.com>
Fri, 27 Sep 2024 12:54:20 +0000 (15:54 +0300)
erp24/controllers/ClusterLinkEditController.php

index bf65f9c6a56e2f7e5447481ec1a7b69618948f97..27529810b318b0201d9e7565650c76a474c6d66b 100644 (file)
@@ -19,6 +19,7 @@ use yii\web\NotFoundHttpException;
 use yii\filters\VerbFilter;
 use yii_app\records\PlanStore;
 use yii_app\records\StoreDynamic;
+use yii_app\services\ExportImportService;
 
 /**
  * ClusterController implements the CRUD actions for Cluster model.
@@ -468,14 +469,14 @@ class ClusterLinkEditController extends Controller
 
     protected function syncClusterManagers()
     {
-
+        // Retrieve cluster managers
         $clusterManagers = Admin::find()
-            ->select(['id', 'store_arr'])
+            ->select(['id', 'store_arr', 'store_arr_guid'])
             ->where(['group_id' => 7, 'group_name' => 'Кустовой директор'])
             ->indexBy('id')
             ->all();
 
-
+        // Retrieve store data from StoreDynamic
         $storeData = StoreDynamic::find()
             ->select(['value_int AS cluster_id', "string_agg(store_id::text, ',') AS stores"])
             ->where(['active' => 1])
@@ -487,8 +488,14 @@ class ClusterLinkEditController extends Controller
         $storeLists = ArrayHelper::map($storeData, 'cluster_id', 'stores');
 
 
+        $entityCityStore = ExportImportService::getEntityByType('city_store');
+        $exportCityStore = ArrayHelper::map($entityCityStore, 'entity_id', 'export_val');
+
+
         foreach ($storeLists as $clusterId => $stores) {
             $storeIds = explode(',', $stores);
+            $exportGuids = array_intersect_key($exportCityStore, array_flip($storeIds));
+
             foreach ($clusterManagers as $manager) {
                 if (!empty($manager->store_arr)) {
                     $managerStores = explode(',', $manager->store_arr);
@@ -497,8 +504,15 @@ class ClusterLinkEditController extends Controller
 
                     if (count($intersection) >= count($storeIds) / 2) {
 
-                        $manager->store_arr = implode(',', array_unique(array_merge($managerStores, $storeIds)));
-                        $manager->save(false);
+                        $manager->store_arr = implode(',', $storeIds);
+                        $manager->store_arr_guid = implode(',', $exportGuids);
+
+
+                        if ($manager->save(false)) {
+                            Yii::debug("Пользователь {$manager->id} успешно обновлен", __METHOD__);
+                        } else {
+                            Yii::debug("Не получилось обновить пользователя {$manager->id}", __METHOD__);
+                        }
                     }
                 }
             }