]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Правки вычисления товаров без истории
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 1 Aug 2025 09:19:58 +0000 (12:19 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Fri, 1 Aug 2025 09:19:58 +0000 (12:19 +0300)
erp24/services/StorePlanService.php

index b672979fcad7456b7767147e4f0727dc7291e60c..7d988619865cce6945da68081e2177e125913c3a 100755 (executable)
@@ -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);