From b3b9942fea78878af111c8d3fbc49a01a4c0c5c9 Mon Sep 17 00:00:00 2001 From: vladfo Date: Fri, 27 Sep 2024 15:54:20 +0300 Subject: [PATCH] =?utf8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?utf8?q?=D0=BE=D0=B1=D0=BD=D0=BE=D0=B0=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=20?= =?utf8?q?=D1=83=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?utf8?q?=D0=B5=D0=BB=D1=8F=20=D0=BF=D0=BE=D0=BB=D1=8F=20store=5Farr=5Fgu?= =?utf8?q?id?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../controllers/ClusterLinkEditController.php | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) 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__); + } } } } -- 2.39.5