]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
fix mapping
authorfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 22 Apr 2026 07:29:26 +0000 (10:29 +0300)
committerfomichev <vladimir.fomichev@erp-flowers.ru>
Wed, 22 Apr 2026 07:29:26 +0000 (10:29 +0300)
erp24/services/ProductMappingService.php

index 3ab0a7fb9219feb4a9456c3012ee94348be38bd7..950b99757be7c2fe90ac91374bde463833f4ddab 100644 (file)
@@ -27,6 +27,9 @@ class ProductMappingService
 {
     public const CACHE_DURATION = 300; // 5 минут для справочников фильтров
 
+    /** Категории, которые не участвуют в маппинге и скрыты везде */
+    private const EXCLUDED_CATEGORIES = ['Букет', 'Сборка', 'Сервис'];
+
     /**
      * Получить список товаров с маппингами и фильтрами.
      *
@@ -139,6 +142,7 @@ class ProductMappingService
                 ->from('products_1c_nomenclature')
                 ->where(['IS NOT', 'category', null])
                 ->andWhere(['!=', 'category', ''])
+                ->andWhere(['not in', 'category', self::EXCLUDED_CATEGORIES])
                 ->distinct()
                 ->orderBy('category')
                 ->column();
@@ -373,7 +377,8 @@ class ProductMappingService
 
         $query = Products1cNomenclature::find()
             ->alias('n')
-            ->leftJoin(['pm_agg' => $mappingsSub], 'pm_agg.product_guid = n.id');
+            ->leftJoin(['pm_agg' => $mappingsSub], 'pm_agg.product_guid = n.id')
+            ->andWhere(['not in', 'n.category', self::EXCLUDED_CATEGORIES]);
 
         // Whitelist: явные привязки, никаких пользовательских имён колонок
         if ($filters->category !== null) {