]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix(api): салоны в чат-боте — только visible=1 (BR-512) origin/fix/BR-512-stores-visible-filter
authorAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Tue, 7 Jul 2026 15:52:30 +0000 (18:52 +0300)
committerAleksey Filippov <Aleksey.Filippov@erp-flowers.ru>
Tue, 7 Jul 2026 15:52:30 +0000 (18:52 +0300)
Эндпоинт client/get-stores (actionGetStores) фильтровал только по
products_1c.view=1, но не по видимости карточки city_store. Из-за этого
в список «Наши салоны» чат-бота протекали закрытые/скрытые точки
(visible=0) — показывалось 33 магазина вместо 26 (Нижний Новгород).

Добавлен фильтр city_store.visible=1 (в PHP, т.к. связь store идёт через
via и join был бы хрупким) — по образцу CityStore::getAllActiveIdName/
getNames, где корректный список всегда берётся с visible='1'.

erp24/api2/controllers/ClientController.php

index 55174ca44a277dea0dbb987548c13aee5c13fd21..e27aac07f74bfde67e035f92e676c36add69edad 100644 (file)
@@ -1146,8 +1146,11 @@ class ClientController extends BaseController
         $stores = Products1c::find()->with('store')->where(['tip' => 'city_store'])->andWhere(['view' => '1'])->all();
         $result = [];
         foreach ($stores as $store) {
-            if (!empty($store->store->name ?? null)) {
-                $result[] = ['id' => $store->id, 'name' => $store->store->name];
+            $card = $store->store ?? null;
+            // BR-512: показываем только видимые (не закрытые/скрытые) салоны — как везде по CityStore
+            // (visible='1'). Иначе в список чат-бота протекают закрытые точки (было 33 вместо 26).
+            if (!empty($card->name) && (int)$card->visible === 1) {
+                $result[] = ['id' => $store->id, 'name' => $card->name];
             }
         }
         return $this->asJson(['response' => $result]);