From: Vladimir Fomichev Date: Mon, 16 Jun 2025 10:19:36 +0000 (+0300) Subject: Метод недельных прогнозов по букетам и группам матриц X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=06d830f74102237e2286c54a7793783b10bc3bc1;p=erp24_rep%2Fyii-erp24%2F.git Метод недельных прогнозов по букетам и группам матриц --- diff --git a/erp24/controllers/AutoPlannogrammaController.php b/erp24/controllers/AutoPlannogrammaController.php index 16f3ee09..4a0421fd 100644 --- a/erp24/controllers/AutoPlannogrammaController.php +++ b/erp24/controllers/AutoPlannogrammaController.php @@ -1750,30 +1750,46 @@ class AutoPlannogrammaController extends BaseController Yii::$app->response->format = \yii\web\Response::FORMAT_JSON; $request = Yii::$app->request; - $storeId = $request->get('storeId'); - $month = $request->get('month'); - $year = $request->get('year'); - $week = $request->get('week'); + $storeIdRequest = $request->get('storeId'); + $monthRequest = $request->get('month'); + $yearRequest = $request->get('year'); + $weekRequest = $request->get('week'); - if (!$month || !$year || $week === null) { + if (!$monthRequest || !$yearRequest || $weekRequest === null) { return ['success' => false, 'message' => 'Нет параметров']; } $service = new AutoPlannogrammaService(); - $result = $service->getWeeklyBouquetProductsForecast($month, $year, $storeId); + $result = $service->getWeeklyBouquetProductsForecast($monthRequest, $yearRequest, $storeIdRequest); if (!is_array($result)) { return ['success' => false, 'message' => 'Ошибка структуры данных']; } - $filtered = array_filter($result, function ($item) use ($week) { - return (int)$item['week'] === (int)$week; - }); + $grouped = []; + + foreach ($result as $item) { + $weekItem = (int) $item['week']; + $storeItem = (int) $item['store_id']; + $guid = (string) $item['product_guid']; + $group = (string) $item['matrix_group']; + $forecastValue = (float) $item['week_forecast']; + + $grouped[$weekItem][$storeItem][$guid][$group] = $forecastValue; + } + + + if ($weekRequest !== null) { + $week = (int) $weekRequest; + $grouped = isset($grouped[$week]) ? [$week => $grouped[$week]] : []; + } return [ 'success' => true, - 'data' => array_values($filtered), + 'data' => $grouped, ]; + + }