From 028a22af246064ad4a0512a6eadb61038a988e2d Mon Sep 17 00:00:00 2001 From: Vladimir Fomichev Date: Fri, 1 Aug 2025 12:19:58 +0300 Subject: [PATCH] =?utf8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D0=B2?= =?utf8?q?=D1=8B=D1=87=D0=B8=D1=81=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=82?= =?utf8?q?=D0=BE=D0=B2=D0=B0=D1=80=D0=BE=D0=B2=20=D0=B1=D0=B5=D0=B7=20?= =?utf8?q?=D0=B8=D1=81=D1=82=D0=BE=D1=80=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- erp24/services/StorePlanService.php | 37 ++++++++++------------------- 1 file changed, 13 insertions(+), 24 deletions(-) diff --git a/erp24/services/StorePlanService.php b/erp24/services/StorePlanService.php index b672979f..7d988619 100755 --- a/erp24/services/StorePlanService.php +++ b/erp24/services/StorePlanService.php @@ -724,25 +724,14 @@ class StorePlanService int $selectedYear, array $medianProductsWithoutHistory ): array { - $accumulator = []; - $prices = []; - $guidToGroup = []; - + $accumulator = []; foreach ($medianProductsWithoutHistory as $guid => $data) { - $q = (float)$data['weightedValue']; - if ($q <= 0) continue; - - $price = self::getPriceForProductAtOffsetMonthWeekly( - $guid, $selectedYear, $selectedMonth, $storeId, 2 - ); - $prices[$guid] = $price; - - $cat = $data['category']; - $sub = $data['subcategory']; - $sp = $data['species']; - $groupKey = implode('|', [$cat,$sub,$sp]); - $guidToGroup[$guid] = $groupKey; + $cat = $data['category']; + $sub = $data['subcategory']; + $sp = $data['species']; + $groupKey = implode('|', [$cat, $sub, $sp]); + $q = (float)$data['weightedValue']; if (!isset($accumulator[$groupKey])) { $accumulator[$groupKey] = [ @@ -756,15 +745,15 @@ class StorePlanService 'forecasts' => [], ]; } - $accumulator[$groupKey]['goal'] += $q * $price; - } - foreach ($medianProductsWithoutHistory as $guid => $qty) { - $groupKey = $guidToGroup[$guid]; - $goal = $accumulator[$groupKey]['goal']; - $price = $prices[$guid] ?? 0.0; - $accumulator[$groupKey]['forecasts'][$guid] = $qty['weightedValue']; + $accumulator[$groupKey]['forecasts'][$guid] = $q; + if ($q > 0) { + $price = self::getPriceForProductAtOffsetMonthWeekly( + $guid, $selectedYear, $selectedMonth, $storeId, 2 + ); + $accumulator[$groupKey]['goal'] += $q * $price; + } } return array_values($accumulator); -- 2.39.5