From 20120f7ffc2ae6dfe24898831c9d48a19a1ec127 Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Wed, 11 Jun 2025 11:03:52 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=BE=D1=81=20?= =?utf8?q?=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D0=B8=D0=BC=D0=B5=D0=BD=D0=BE?= =?utf8?q?=D0=B2=D0=B0=D0=BD=D0=B8=D0=B5=20=D0=B3=D1=83=D0=B8=D0=B4=D0=B0?= =?utf8?q?=20=D0=B3=D0=B5=D0=BB=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/services/AutoPlannogrammaService.php | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/erp24/services/AutoPlannogrammaService.php b/erp24/services/AutoPlannogrammaService.php index ce8d7f7a..80425e0f 100644 --- a/erp24/services/AutoPlannogrammaService.php +++ b/erp24/services/AutoPlannogrammaService.php @@ -29,7 +29,7 @@ class AutoPlannogrammaService public const TYPE_WRITE_OFFS = 'writeOffs'; // Тип операции: списания private const CATEGORY_LOOKBACK_MONTHS = 3; // Период для анализа категорий (месяцы) private const LOOKBACK_MONTHS = 2; // Отступаемый шаг от плановой даты перед расчетами - const SPECIAL_PRODUCT = '2b72702a-792f-11e8-9edd-1c6f659fb563'; + /** * Получение списка видимых магазинов @@ -1510,7 +1510,7 @@ class AutoPlannogrammaService : BouquetComposition::REGION_NN; } - $pricesMap = self::buildPricesMap($productsIds, self::SPECIAL_PRODUCT, $region); + $pricesMap = self::buildPricesMap($productsIds, $region); foreach ($pricesMap as $id => $price) { if ($goal == 0 || (float)$price == 0) { @@ -1746,7 +1746,7 @@ class AutoPlannogrammaService : BouquetComposition::REGION_NN; } - $pricesMap = self::buildPricesMap(array_keys($productSalesShare), self::SPECIAL_PRODUCT, $region); + $pricesMap = self::buildPricesMap(array_keys($productSalesShare), $region); foreach ($productSalesShare as $productId => $data) { $share = $data['share'] ?? 0.0; @@ -1919,7 +1919,7 @@ class AutoPlannogrammaService ->all(); $products = ArrayHelper::getColumn($productShares, 'product_id'); - $pricesMap = self::buildPricesMap($products, self::SPECIAL_PRODUCT); + $pricesMap = self::buildPricesMap($products); foreach ($productShares as $shareItem) { $storeId = $shareItem['store_id']; @@ -2711,15 +2711,14 @@ class AutoPlannogrammaService * Строит карту цен за последние 20 дней. * * @param array $productIds Список product_id для выборки - * @param string $specialProductId GUID товара, для которого нужен min * @param int|null $regionId Если указан — один регион, иначе — несколько * @return array */ public static function buildPricesMap( - array $productIds, - string $specialProductId, - ?int $regionId = null + array $productIds, + ?int $regionId = null ): array { + $heliumGuid = '2b72702a-792f-11e8-9edd-1c6f659fb563'; $periodEnd = (new \DateTime())->format('Y-m-d H:i:s'); $periodStart = (new \DateTime())->modify('-20 days')->format('Y-m-d H:i:s'); @@ -2747,7 +2746,7 @@ class AutoPlannogrammaService ? $priceRecord['region_id'] : null; - if ($productId === $specialProductId) { + if (isset($heliumGuid) && $productId === $heliumGuid) { if ($multiRegion) { if (!isset($pricesMap[$productId][$regionId])) { $pricesMap[$productId][$regionId] = [$price]; -- 2.39.5