]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-242] ограничение магазинов по пользователю и пользователей по магазину
authorAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Dec 2024 11:59:36 +0000 (14:59 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Dec 2024 11:59:36 +0000 (14:59 +0300)
erp24/controllers/ShiftTransferController.php

index 95f062b56b9034f0ae4ba03a99adc3e9adca0bfc..c3b22b2cc5e7281c1009ddc12c9b4de2c2b7a6b7 100644 (file)
@@ -8,6 +8,7 @@ use yii\helpers\Json;
 use yii\web\Controller;
 use yii\web\Response;
 use yii_app\records\Admin;
+use yii_app\records\AdminStores;
 use yii_app\records\Balances;
 use yii_app\records\CityStore;
 use yii_app\records\EqualizationRemains;
@@ -36,12 +37,13 @@ class ShiftTransferController extends Controller
         return $this->render('index', compact('shiftTransfers', 'storeNameById', 'admins'));
     }
 
-    public static function getAdminsWithDrugieLast()
+    public static function getAdminsWithDrugieLast($storeGuids)
     {
+        $adminIdsForStore = AdminStores::find()->select(['admin_id'])->where(['store_guid' => $storeGuids])->column();
         $adminArr = [];
         $adminArrOther = [];
         foreach (\yii_app\records\Admin::find()->with('adminGroup')->all() as $admin) {
-            if ($admin->group_id > 0) {
+            if ($admin->group_id > 0 && in_array($admin->id, $adminIdsForStore)) {
                 $tmp = ['id' => $admin->id, 'name' => $admin->name, 'groupName' => $admin->adminGroup->name ?? "Другие"];
                 if ($tmp['groupName'] == 'Другие') {
                     $adminArrOther[] = $tmp;
@@ -64,8 +66,14 @@ class ShiftTransferController extends Controller
         $isCreate = true;
 
         $storeNameById = TaskService::getEntitiesByAlias('store');
+        $storeGuids = AdminStores::find()->select(['store_guid'])->where(['admin_id' => Yii::$app->user->id])->column();
+        foreach ($storeNameById as $id => $name) {
+            if (!in_array($id, $storeGuids)) {
+                unset($storeNameById[$id]);
+            }
+        }
 
-        $admins = self::getAdminsWithDrugieLast();
+        $admins = self::getAdminsWithDrugieLast($storeGuids);
 
         return $this->render('update', compact('shiftTransfer', 'isCreate', 'storeNameById',
             'admins'));
@@ -115,8 +123,14 @@ class ShiftTransferController extends Controller
         $isCreate = false;
 
         $storeNameById = TaskService::getEntitiesByAlias('store');
+        $storeGuids = AdminStores::find()->select(['store_guid'])->where(['admin_id' => Yii::$app->user->id])->column();
+        foreach ($storeNameById as $id => $name) {
+            if (!in_array($id, $storeGuids)) {
+                unset($storeNameById[$id]);
+            }
+        }
 
-        $admins = self::getAdminsWithDrugieLast();
+        $admins = self::getAdminsWithDrugieLast($storeGuids);
 
         $shiftTransfer->shiftRemainsCopy = $loadDataShiftRemains ?? $shiftTransfer->shiftRemains;