From: marina Date: Tue, 17 Jun 2025 10:06:27 +0000 (+0300) Subject: ERP-360 Сборка страницы автопм X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=26513f71995aae1b384e8ceb5a011bb36a506c0a;p=erp24_rep%2Fyii-erp24%2F.git ERP-360 Сборка страницы автопм --- diff --git a/erp24/controllers/AutoPlannogrammaController.php b/erp24/controllers/AutoPlannogrammaController.php index 1e9668e1..309a9825 100644 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@ -223,7 +223,7 @@ class AutoPlannogrammaController extends BaseController if (isset($channelData['share']) && is_numeric($channelData['share'])) { $titleData = [round($quantity * $channelData['share'], 2)]; } - + if (isset($productData['product_id']) && isset($forecast[$storeId][$productData['product_id']][$channel])) { $details = $forecast[$storeId][$productData['product_id']][$channel]; $total = array_sum($details); diff --git a/erp24/web/js/autoplannogramma/autoplannogramma.js b/erp24/web/js/autoplannogramma/autoplannogramma.js index 37df4449..9cfff0f6 100644 --- a/erp24/web/js/autoplannogramma/autoplannogramma.js +++ b/erp24/web/js/autoplannogramma/autoplannogramma.js @@ -386,21 +386,30 @@ const generateTitleString = (titleObj) => { if (!titleObj || typeof titleObj !== 'object') return ''; const typeTitles = { - offline: 'Оффлайн', - online: 'Онлайн', - marketplace: 'Маркетплейс' + offline: '📦 Оффлайн', + online: '🌐 Онлайн', + marketplace: '🛒 Маркетплейс' }; const parts = Object.entries(titleObj) .map(([typeKey, typeValue]) => { const title = typeTitles[typeKey] || typeKey; + + // Handle case where typeValue is an array [numeric_value, {details: {...}}] + if (Array.isArray(typeValue) && typeValue.length >= 1) { + const numericValue = parseFloat(typeValue[0]); + const details = typeValue[1]?.details || {}; + const lines = Object.entries(details) + .map(([key, val]) => `- ${key.replace(/_/g, ' ')}: ${parseFloat(val).toFixed(2)}`); + return `${title}: ${numericValue.toFixed(2)}${lines.length ? '\n' + lines.join('\n') : ''}`; + } + + // Handle case where typeValue is a number (for share-only, if applicable) if (typeof typeValue === 'number') { return `${title}: ${typeValue.toFixed(2)}`; } - if (!typeValue || typeof typeValue !== 'object' || !typeValue[0]) return ''; - const lines = Object.entries(typeValue[1]?.details || {}) - .map(([key, val]) => `- ${key.replace(/_/g, ' ')}: ${parseFloat(val).toFixed(2)}`); - return `${title}: ${parseFloat(typeValue[0]).toFixed(2)}\n${lines.join('\n')}`; + + return ''; // Skip invalid or empty values }) .filter(Boolean);