From 8965b367c189641fdb9e9ea27f7f92fbb939623e Mon Sep 17 00:00:00 2001 From: fomichev Date: Wed, 3 Jun 2026 12:43:40 +0300 Subject: [PATCH] =?utf8?q?ERP-397:=20=D1=84=D0=B8=D0=BA=D1=81=20=D0=BF?= =?utf8?q?=D1=83=D1=81=D1=82=D1=8B=D1=85=20=D0=B4=D1=80=D0=BE=D0=BF=D0=B4?= =?utf8?q?=D0=B0=D1=83=D0=BD=D0=BE=D0=B2=20=D1=80=D1=83=D0=BA=D0=BE=D0=B2?= =?utf8?q?=D0=BE=D0=B4=D1=81=D1=82=D0=B2=D0=B0=20=D0=B8=20=D0=B0=D0=BA?= =?utf8?q?=D1=82=D1=83=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D1=8F=20?= =?utf8?q?=D0=BA=D0=BE=D0=BC=D0=B1=D0=BE=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5?= =?utf8?q?=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - Контроллер: дропдауны КШФ и тер.управляющего всегда включают текущего назначенного сотрудника (orWhere id), даже если его group_id изменился - JS: после сохранения перезагружаем STORES с сервера вместо ручного патча, чтобы комбо-список гарантированно отражал актуальный статус из БД Co-Authored-By: Claude Sonnet 4.6 --- .../CityStoreManagementController.php | 16 ++++++++++++++-- .../city-store-management.js | 17 ++++++++++------- 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/erp24/controllers/CityStoreManagementController.php b/erp24/controllers/CityStoreManagementController.php index e4b0e817..85b0bef2 100644 --- a/erp24/controllers/CityStoreManagementController.php +++ b/erp24/controllers/CityStoreManagementController.php @@ -165,8 +165,20 @@ class CityStoreManagementController extends Controller 'cityArray' => ArrayHelper::map(StoreCityList::findAll(['type' => StoreCityList::TYPE_CITY]), 'id', 'name'), 'districtArray' => ArrayHelper::map(StoreCityList::findAll(['type' => StoreCityList::TYPE_DISTRICT]), 'id', 'name'), 'matrixTypeArray' => ArrayHelper::map(MatrixType::find()->all(), 'id', 'name'), - 'bushChefFloristArray' => ArrayHelper::map(Admin::findAll(['group_id' => AdminGroup::GROUP_BUSH_CHEF_FLORIST]), 'id', 'name'), - 'territorialManagerArray' => ArrayHelper::map(Admin::findAll(['group_id' => AdminGroup::GROUP_BUSH_DIRECTOR]), 'id', 'name_full'), + 'bushChefFloristArray' => (static function () use ($bushChefFloristDyn): array { + $q = Admin::find()->where(['group_id' => AdminGroup::GROUP_BUSH_CHEF_FLORIST]); + if ($bushChefFloristDyn?->value_int) { + $q->orWhere(['id' => $bushChefFloristDyn->value_int]); + } + return ArrayHelper::map($q->orderBy(['name' => SORT_ASC])->all(), 'id', 'name'); + })(), + 'territorialManagerArray' => (static function () use ($terrManagerDyn): array { + $q = Admin::find()->where(['group_id' => AdminGroup::GROUP_BUSH_DIRECTOR]); + if ($terrManagerDyn?->value_int) { + $q->orWhere(['id' => $terrManagerDyn->value_int]); + } + return ArrayHelper::map($q->orderBy(['name_full' => SORT_ASC])->all(), 'id', 'name_full'); + })(), // assortment labels (StoreDynamic category 5) 'labelIds' => $labelIds, diff --git a/erp24/web/js/city-store-management/city-store-management.js b/erp24/web/js/city-store-management/city-store-management.js index 6d4db81b..4b869fdf 100644 --- a/erp24/web/js/city-store-management/city-store-management.js +++ b/erp24/web/js/city-store-management/city-store-management.js @@ -543,13 +543,16 @@ function saveChanges() { if (allOk) { toast('Сохранено', 'ok'); clearDirty(); - var si = STORES.findIndex(function (s) { return s.id === D.id; }); - if (si !== -1) { - STORES[si].isActive = !!csParams.is_active; - STORES[si].name = csStore.name || STORES[si].name; - } - renderComboList(document.getElementById('storeSearchInput').value || ''); - loadStore(D.id); + var savedId = D.id; + fetch(CSM_URLS.getStores) + .then(function (r) { return r.json(); }) + .then(function (resp) { + if (resp.success) { + STORES = resp.data; + renderComboList(document.getElementById('storeSearchInput').value || ''); + } + }); + loadStore(savedId); } else { var errs = results.filter(function (r) { return r && !r.success; }).map(function (r) { return r.message; }).join('; '); toast('Ошибка: ' + errs, 'err'); -- 2.39.5