],
],
];
-
-
- foreach ($result as $productId => &$productData) {
+
+ foreach ($result as &$productData) {
foreach ($productData['values'] as &$value) {
$storeId = $value['store_id'];
$quantity = $value['quantity'];
$value['title'] = [];
- if (!isset($forecast[$storeId]) || !isset($forecast[$storeId][$productId])) {
- continue;
- }
-
foreach (['offline', 'marketplace', 'online'] as $channel) {
- if (isset($forecast[$storeId][$productId][$channel]) && is_array($forecast[$storeId][$productId][$channel])) {
- // Суммируем все коэффициенты по группам для данного канала
- $coefSum = 0;
- foreach ($forecast[$storeId][$productId][$channel] as $coef) {
- if (is_numeric($coef)) {
- $coefSum += $coef;
- }
- }
- if ($coefSum > 0) {
- $value['title'][$channel] = round($quantity * $coefSum, 2);
- }
+ // Если по этому магазину и каналу есть просто share — умножаем
+ if (isset($forecast[$storeId][$channel]['share'])) {
+ $share = $forecast[$storeId][$channel]['share'];
+ $value['title'][$channel] = round($quantity * $share, 2);
+ }
+
+ // Если по этому магазину и каналу есть список с продуктами — просто копируем
+ if (
+ isset($forecast[$storeId][$channel]) &&
+ is_array($forecast[$storeId][$channel]) &&
+ !isset($forecast[$storeId][$channel]['share']) // чтобы не дублировать
+ ) {
+ $value['title'][$channel] = $forecast[$storeId][$channel];
}
}
}
}
+
+
return array_values($result);
}