From: fomichev Date: Thu, 24 Oct 2024 20:54:44 +0000 (+0300) Subject: Активность и список кустовых X-Git-Tag: 1.7~228^2~23 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=5e9cd4b0eeae290c19fc18d4a15b6d10bea33d05;p=erp24_rep%2Fyii-erp24%2F.git Активность и список кустовых --- diff --git a/erp24/controllers/crud/ClusterAdminController.php b/erp24/controllers/crud/ClusterAdminController.php index fd6b62d0..46c48f75 100644 --- a/erp24/controllers/crud/ClusterAdminController.php +++ b/erp24/controllers/crud/ClusterAdminController.php @@ -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, ]); } diff --git a/erp24/views/crud/cluster-admin/_form.php b/erp24/views/crud/cluster-admin/_form.php index a2135ed2..234d02c1 100644 --- a/erp24/views/crud/cluster-admin/_form.php +++ b/erp24/views/crud/cluster-admin/_form.php @@ -1,6 +1,7 @@
@@ -33,10 +38,13 @@ use yii_app\records\ClusterAdmin;
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; title = 'Создание привязки Куста к Кустовому для ' . $cluster->name; @@ -20,7 +21,8 @@ $this->params['breadcrumbs'][] = $this->title; render('_form', [ 'model' => $model, 'cluster' => $cluster, - 'admins' => $admins, + 'inactiveAdmins' => $inactiveAdmins, + 'allAdmins' => $allAdmins, 'user' => $user, ]) ?> diff --git a/erp24/views/crud/cluster-admin/update.php b/erp24/views/crud/cluster-admin/update.php index 73bccad9..e3b4085d 100644 --- a/erp24/views/crud/cluster-admin/update.php +++ b/erp24/views/crud/cluster-admin/update.php @@ -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'; render('_form', [ 'model' => $model, 'cluster' => $cluster, - 'admins' => $admins, + 'inactiveAdmins' => $inactiveAdmins, + 'allAdmins' => $allAdmins, 'user' => $user, ]) ?>