]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Активность и список кустовых
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 24 Oct 2024 20:54:44 +0000 (23:54 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Thu, 24 Oct 2024 20:54:44 +0000 (23:54 +0300)
erp24/controllers/crud/ClusterAdminController.php
erp24/views/crud/cluster-admin/_form.php
erp24/views/crud/cluster-admin/create.php
erp24/views/crud/cluster-admin/update.php

index fd6b62d0586bfe86d153053bb5123a0e5d85dc90..46c48f751f3532845378fc2ab85def7c9706d692 100644 (file)
@@ -188,17 +188,24 @@ class ClusterAdminController extends Controller
         $model = new ClusterAdmin();
 
 
+
+        $allAdmins = Admin::find()
+            ->select(['id', 'name'])
+            ->where(['IN', 'group_id', [7]])
+            ->asArray()
+            ->all();
+
+
         $activeAdminIds = ClusterAdmin::find()
             ->select('admin_id')
             ->where(['active' => 1])
             ->column();
 
 
-        $admins = ArrayHelper::map(Admin::find()
-            ->select(['id', 'name'])
-            ->where(['NOT IN', 'id', $activeAdminIds])
-            ->andWhere(['IN', 'group_id', [7]])
-            ->all(), 'id', 'name');
+
+        $inactiveAdmins = array_filter($allAdmins, function($admin) use ($activeAdminIds) {
+            return !in_array($admin['id'], $activeAdminIds);
+        });
 
 
         $cluster = Cluster::findOne($cluster_id);
@@ -301,7 +308,8 @@ class ClusterAdminController extends Controller
         return $this->render('create', [
             'model' => $model,
             'cluster' => $cluster,
-            'admins' => $admins,
+            'inactiveAdmins' => $inactiveAdmins,
+            'allAdmins' => $allAdmins,
             'user' => $user,
         ]);
     }
@@ -317,10 +325,22 @@ class ClusterAdminController extends Controller
     {
         $model = $this->findModel($id);
 
-        $admins = ArrayHelper::map(Admin::find()
+        $allAdmins = Admin::find()
             ->select(['id', 'name'])
             ->where(['IN', 'group_id', [7]])
-            ->all(), 'id', 'name');
+            ->asArray()
+            ->all();
+
+
+        $activeAdminIds = ClusterAdmin::find()
+            ->select('admin_id')
+            ->where(['active' => 1])
+            ->column();
+
+        $inactiveAdmins = array_filter($allAdmins, function($admin) use ($activeAdminIds) {
+            return !in_array($admin['id'], $activeAdminIds);
+        });
+
 
         $cluster = Cluster::findOne($model->cluster_id);
         if (!$cluster) {
@@ -404,7 +424,8 @@ class ClusterAdminController extends Controller
         return $this->render('update', [
             'model' => $model,
             'cluster' => $cluster,
-            'admins' => $admins,
+            'inactiveAdmins' => $inactiveAdmins,
+            'allAdmins' => $allAdmins,
             'user' => $user,
         ]);
     }
index a2135ed2c007afc3b396f320ec74f8b3badbda9e..234d02c1c9b27aa6e850e595004653dc5eed6780 100644 (file)
@@ -1,6 +1,7 @@
 <?php
 
 use kartik\select2\Select2;
+use yii\helpers\ArrayHelper;
 use yii\helpers\Html;
 use yii\widgets\ActiveForm;
 
@@ -10,9 +11,13 @@ use yii_app\records\ClusterAdmin;
 /** @var ClusterAdmin $model */
 /** @var yii\widgets\ActiveForm $form */
 /** @var yii_app\records\Cluster $cluster */
-/** @var array $admins */
+/** @var array $inactiveAdmins */
+/** @var array $allAdmins */
 /** @var yii_app\records\Admin $user */
 
+
+$inactiveAdmins = ArrayHelper::map($inactiveAdmins, 'id', 'name');
+$allAdmins = ArrayHelper::map($allAdmins, 'id', 'name');
 ?>
 
     <div class="cluster-admin-form">
@@ -33,10 +38,13 @@ use yii_app\records\ClusterAdmin;
             </div>
 
             <?= $form->field($model, 'admin_id')->widget(Select2::class, [
-                'data' => $admins,
-                'options' => ['placeholder' => 'Выберите кустового...'],
+                'data' => $inactiveAdmins,  // По умолчанию показываем неактивных админов
+                'options' => [
+                    'id' => 'admin-select',  // Присваиваем id для управления из JS
+                    'placeholder' => 'Выберите кустового...',
+                ],
                 'pluginOptions' => [
-                    'allowClear' => true
+                    'allowClear' => true,
                 ],
             ]); ?>
 
@@ -71,11 +79,24 @@ use yii_app\records\ClusterAdmin;
 
 <?php
 
+
+$inactiveAdminsJson = json_encode($inactiveAdmins, JSON_UNESCAPED_UNICODE);
+
+$allAdminsJson = json_encode($allAdmins, JSON_UNESCAPED_UNICODE);
 $js = <<<JS
     function toggleDateEndField() {
         var isChecked = $('#active-checkbox').is(':checked');
         var currentDate = new Date().toISOString().split('T')[0]; 
-
+        var data = isChecked ? $inactiveAdminsJson : $allAdminsJson;
+
+        // Обновляем данные в Select2
+        $('#admin-select').empty().select2({
+             data: Object.entries(data).map(function([id, text]) {
+                return { id: parseInt(id), text: text };  // Преобразуем ключи (id) в числа
+            }),
+            placeholder: 'Выберите кустового...',
+             allowClear: true
+        });
         if (isChecked) {
             $('#date-end-field').val('2100-01-01'); 
             $('#date-end-field').hide(); 
index 2611e80462e90e41f05f2cbdf61be71f4d2e39b7..b0e93d0b930b441d74cf1b9045784dc91906ae08 100644 (file)
@@ -6,7 +6,8 @@ use yii\helpers\Html;
 /** @var yii\web\View $this */
 /** @var yii_app\records\ClusterAdmin $model */
 /** @var yii_app\records\Cluster $cluster */
-/** @var array $admins  */
+/** @var array $inactiveAdmins */
+/** @var array $allAdmins */
 /** @var yii_app\records\Admin $user */
 
 $this->title = 'Создание привязки Куста к Кустовому для ' . $cluster->name;
@@ -20,7 +21,8 @@ $this->params['breadcrumbs'][] = $this->title;
     <?= $this->render('_form', [
         'model' => $model,
         'cluster' => $cluster,
-        'admins' => $admins,
+        'inactiveAdmins' => $inactiveAdmins,
+        'allAdmins' => $allAdmins,
         'user' => $user,
     ]) ?>
 
index 73bccad93d8d5b05754d15625453cedae346b333..e3b4085d75cd3280aea06372bd63fd8d40591e82 100644 (file)
@@ -6,7 +6,8 @@ use yii\helpers\Html;
 /** @var yii\web\View $this */
 /** @var yii_app\records\ClusterAdmin $model */
 /** @var yii_app\records\Cluster $cluster */
-/** @var array $admins  */
+/** @var array $inactiveAdmins */
+/** @var array $allAdmins */
 /** @var yii_app\records\Admin $user */
 
 $this->title = 'Редактирование привязки куста к кустовому: ' . $cluster->name;
@@ -21,7 +22,8 @@ $this->params['breadcrumbs'][] = 'Update';
     <?= $this->render('_form', [
         'model' => $model,
         'cluster' => $cluster,
-        'admins' => $admins,
+        'inactiveAdmins' => $inactiveAdmins,
+        'allAdmins' => $allAdmins,
         'user' => $user,
     ]) ?>