]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
ERP-360 Сборка страницы автопм
authormarina <m.zozirova@gmail.com>
Tue, 17 Jun 2025 09:19:25 +0000 (12:19 +0300)
committermarina <m.zozirova@gmail.com>
Tue, 17 Jun 2025 09:19:25 +0000 (12:19 +0300)
erp24/controllers/AutoPlannogrammaController.php

index 505369a630f376cac75aff41003c5c12cd728a39..b5dbd86f93d36944114947a6ff44fb49634237de 100644 (file)
@@ -152,25 +152,81 @@ class AutoPlannogrammaController extends BaseController
 
         $forecast = (new AutoPlannogrammaService())->getWeeklyBouquetProductsForecast($filters['month'], $filters['year'], null, $filters['week']);
 
+        $forecast = [
+            2 => [
+                'offline' => [
+                    'share' => 0.6,
+                ],
+                'c5743ee5-9832-11ef-84ea-ac1f6b1b7573' => [
+                    'offline' => [
+                        'дополнительная_букеты' => 1.93,
+                        'доп_Хризантема' => 2.17,
+                    ],
+                    'marketplace' => [
+                        'дополнительная_букеты' => 0.97,
+                        'доп_Хризантема' => 0.72,
+                    ],
+                    'online' => [
+                        'дополнительная_букеты' => 1.93,
+                        'доп_Хризантема' => 2.17,
+                    ],
+                ],
+                '0fb4e768-8191-11ef-84ea-ac1f6b1b7573' => [
+                    'offline' => [
+                        'дополнительная_букеты' => 0.83,
+                        'дополнительная_композиция' => 0.63,
+                        'основная_розовая' => 3.34,
+                        'основная_красно-белая' => 1.46,
+                        'основная_красная' => 8.76,
+                        'основная_бело-зеленая' => 0.83,
+                    ],
+                    'marketplace' => [
+                        'дополнительная_букеты' => 0.42,
+                        'дополнительная_композиция' => 0.21,
+                        'основная_розовая' => 1.67,
+                        'основная_красно-белая' => 0.83,
+                        'основная_красная' => 4.59,
+                        'основная_бело-зеленая' => 0.42,
+                    ],
+                    'online' => [
+                        'дополнительная_букеты' => 0.83,
+                        'дополнительная_композиция' => 0.63,
+                        'основная_розовая' => 3.34,
+                        'основная_красно-белая' => 1.46,
+                        'основная_красная' => 8.76,
+                        'основная_бело-зеленая' => 0.83,
+                    ],
+                ],
+                'marketplace' => [
+                    'share' => 0.2,
+                ],
+                'online' => [
+                    'share' => 0.2,
+                ],
+            ],
+        ];
+
+
         foreach ($result as $productId => &$productData) {
             foreach ($productData['values'] as &$value) {
                 $storeId = $value['store_id'];
+                $group = $value['group'];
+                $quantity = $value['quantity'];
                 $value['title'] = [];
 
-                if (isset($forecast[$storeId][$productId])) {
-                    $forecastData = $forecast[$storeId][$productId];
-                    $quantity = $value['quantity'];
-
-                    foreach ($forecastData as $type => $groups) {
-                        if (isset($groups['share'])) {
-                            $calculated = round($quantity * $groups['share'], 2);
-                            $value['title'][$type] = $calculated;
-                        }
+                foreach (['offline', 'marketplace', 'online'] as $channel) {
+                    if (
+                        isset($forecast[$storeId][$channel][$group]) &&
+                        is_numeric($forecast[$storeId][$channel][$group])
+                    ) {
+                        $coef = $forecast[$storeId][$channel][$group];
+                        $value['title'][$channel] = round($quantity * $coef, 2);
                     }
                 }
             }
         }
 
+
         return array_values($result);
     }