'plan_date' => $planDate
]);
+ $writeOffsForecast = $service->getWeeklyProductsWriteoffsForecast($month, $year, $store->id);
+
$this->stdout("Рассчитана автопланограмма для магазина {$store->name}\n", BaseConsole::FG_GREEN);
} catch (\Throwable $e) {
$this->stderr("Ошибка при расчёте прогноза: {$e->getMessage()}\n", BaseConsole::FG_RED);
Yii::error("Ошибка при расчёте прогноза: " . $e->getMessage(), __METHOD__);
continue;
}
+ $writeOffsForecastMap = [];
+ foreach ($writeOffsForecast as $itemForecast) {
+ $itemWeek = $itemForecast['week'];
+ $itemGuid = $itemForecast['product_id'];
+ $writeoffsForecast = $itemForecast['forecast'];
+ $writeOffsForecastMap[$itemWeek][$itemGuid] = $writeoffsForecast;
+
+ }
foreach ($forecast as $item) {
$model = new Autoplannogramma();
$model->quantity_forecast = $item['forecast_week_pieces'];
$model->is_archive = false;
$model->capacity_type = 1;
+ if (isset($writeOffsForecastMap[$item['week']]) && isset($writeOffsForecastMap[$item['week']][$item['product_id']])) {
+ $model->writeoffs_forecast = $writeOffsForecastMap[$item['week']][$item['product_id']];
+ } else {
+ $model->writeoffs_forecast = 0;
+ }
if (!$model->save()) {
$errors = [];