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.
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])
$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);
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__);
+ }
}
}
}