From: vladfo Date: Fri, 27 Sep 2024 12:54:20 +0000 (+0300) Subject: Добавил обноаление у пользователя поля store_arr_guid X-Git-Tag: 1.5~1^2~7 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=b3b9942fea78878af111c8d3fbc49a01a4c0c5c9;p=erp24_rep%2Fyii-erp24%2F.git Добавил обноаление у пользователя поля store_arr_guid --- diff --git a/erp24/controllers/ClusterLinkEditController.php b/erp24/controllers/ClusterLinkEditController.php index bf65f9c6..27529810 100644 --- a/erp24/controllers/ClusterLinkEditController.php +++ b/erp24/controllers/ClusterLinkEditController.php @@ -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__); + } } } }