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,
];
+
+
}