]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-397: синхронизация is_active → visible и обновление UI без перезагрузки
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 3 Jun 2026 09:34:10 +0000 (12:34 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 3 Jun 2026 09:34:10 +0000 (12:34 +0300)
- CityStoreManagementController: при сохранении is_active обновляет city_store.visible
  через CityStore::updateAll в той же транзакции
- JS: после сохранения патчит STORES[si].isActive и сразу перерисовывает комбо-список,
  чтобы фильтр «Неактивен» отражал изменение без перезагрузки страницы

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
erp24/controllers/CityStoreManagementController.php
erp24/web/js/city-store-management/city-store-management.js

index c8db7fa1854ff86a94cdd880acd15963e7a76557..e4b0e81731919d112d92c46572c747f193ff535f 100644 (file)
@@ -285,6 +285,10 @@ class CityStoreManagementController extends Controller
             $isActiveNow = (bool)$params->is_active;
             if ($isNew || $isActiveBefore !== $isActiveNow) {
                 $this->recordStoreDynamic($storeId, StoreDynamic::CATEGORY_IS_ACTIVE, (int)$isActiveNow);
+                CityStore::updateAll(
+                    ['visible' => $isActiveNow ? CityStore::IS_VISIBLE : 0],
+                    ['id' => $storeId]
+                );
             }
 
             if (!empty($post['bush_chef_florist'])) {
index bb8bc87e80e23922053d0926c45c82c5098015f1..6d4db81b5943da3d7c06c4667a50f4e32832a786 100644 (file)
@@ -543,6 +543,12 @@ 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);
         } else {
             var errs = results.filter(function (r) { return r && !r.success; }).map(function (r) { return r.message; }).join('; ');