From: Vladimir Fomichev Date: Tue, 22 Jul 2025 12:34:26 +0000 (+0300) Subject: Правки расчета X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=255d691a400df316097b86d4dda69f7cd4ed9c7c;p=erp24_rep%2Fyii-erp24%2F.git Правки расчета --- diff --git a/erp24/commands/CronController.php b/erp24/commands/CronController.php index fe68d7f7..0b836543 100644 --- a/erp24/commands/CronController.php +++ b/erp24/commands/CronController.php @@ -1648,6 +1648,8 @@ class CronController extends Controller $writeOffs = $writeOffsForecast[$productId][$week]['writeOffs']; $details['writeOffs']['quantity'] = $writeOffs; $total += is_array($writeOffs) ? array_sum($writeOffs) : (float)$writeOffs; + } else { + $details['writeOffs']['quantity'] = 0; } foreach (['offline', 'online', 'marketplace'] as $type) { diff --git a/erp24/services/AutoPlannogrammaService.php b/erp24/services/AutoPlannogrammaService.php index 6d60b524..052b814b 100644 --- a/erp24/services/AutoPlannogrammaService.php +++ b/erp24/services/AutoPlannogrammaService.php @@ -1467,8 +1467,8 @@ class AutoPlannogrammaService 'category' => $cat, 'subcategory' => $sub, 'species' => $spec, - 'percent' => $percent, - 'monthly_goal' => $monthlyGoal, + 'percent' => $percent ?? 0, + 'monthly_goal' => $monthlyGoal ?? 0, 'weekly_goal' => $weeklyGoal, ]; } @@ -2143,7 +2143,7 @@ class AutoPlannogrammaService $guid = $componentDataRecord['component_guid']; $nomenclatureData = $nomenclatures[$guid] ?? null; $productId = $nomenclatureData?->id; - $price = 0; + $price = null; $dailyPrices = []; foreach ($pricesByProduct[$productId] ?? [] as $priceRecordForProduct) { if (defined($heliumConstant) && $productId == constant($heliumConstant)) { @@ -2162,7 +2162,8 @@ class AutoPlannogrammaService } if (!empty($dailyPrices)) { $price = min($dailyPrices); - } else { + } + if ($price === null) { $price = 0.0; } $cost = $componentDataRecord['quantity'] * $price * $componentDataRecord['quantity_product']; @@ -3017,16 +3018,19 @@ class AutoPlannogrammaService $salesShares[$storeId]['marketplace'] = round($market / $total, 4); } } + foreach ($weeklyForecasts as $item) { + $groupsArr = explode('_', (string)$item['matrix_group']); + $baseGroup = $groupsArr[0]; $storeItem = (int)$item['store_id']; $guid = (string)$item['product_guid']; - $group = (string)$item['matrix_group']; + $group = $baseGroup; $type = (string)$item['type']; $forecastValue = (float)$item['week_forecast']; if (isset($salesShares[$storeItem]) && isset($salesShares[$storeItem][$type])) { $grouped[$storeItem][$type]['share'] = $salesShares[$storeItem][$type]; } - $grouped[$storeItem][$guid][$type][$group] = $forecastValue; + $grouped[$storeItem][$guid][$type][$group] = ($grouped[$storeItem][$guid][$type][$group] ?? 0) + $forecastValue; } return $grouped;