From: marina Date: Tue, 17 Jun 2025 09:55:40 +0000 (+0300) Subject: ERP-360 Сборка страницы автопм X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=79437cd0ec6cbe1bf4080f55e7d72da378cc209f;p=erp24_rep%2Fyii-erp24%2F.git ERP-360 Сборка страницы автопм --- diff --git a/erp24/controllers/AutoPlannogrammaController.php b/erp24/controllers/AutoPlannogrammaController.php index be0724f0..c05754d4 100644 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@ -212,27 +212,26 @@ class AutoPlannogrammaController extends BaseController $quantity = $value['quantity']; $value['title'] = []; + // Skip if store_id is not in forecast + if (!isset($forecast[$storeId])) { + continue; + } + foreach (['offline', 'marketplace', 'online'] as $channel) { - // Ищем forecast по store и каналу + // Initialize channel data in title + $value['title'][$channel] = []; $channelData = $forecast[$storeId][$channel] ?? []; - // 1. Если есть share — сохраняем отдельно if (isset($channelData['share']) && is_numeric($channelData['share'])) { - $value['title'][$channel . '_share'] = round($quantity * $channelData['share'], 2); + $value['title'][$channel] = round($quantity * $channelData['share'], 2); } - // 2. Если есть подтипы (любые ключи, кроме 'share') - $details = array_filter( - $channelData, - fn($k) => $k !== 'share', - ARRAY_FILTER_USE_KEY - ); - - if (!empty($details)) { + if (isset($productData['product_id']) && isset($forecast[$storeId][$productData['product_id']][$channel])) { + $details = $forecast[$storeId][$productData['product_id']][$channel]; $total = array_sum($details); $value['title'][$channel] = [ - 'total' => round($quantity * $total, 2), - 'details' => $details, + round($quantity * $total, 2), + 'details' => array_map(fn($val) => round($val, 2), $details), ]; } }