]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Рассчет в кроне
authorVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 17 Jun 2025 11:13:25 +0000 (14:13 +0300)
committerVladimir Fomichev <vladimir.fomichev@erp-flowers.ru>
Tue, 17 Jun 2025 11:13:25 +0000 (14:13 +0300)
erp24/commands/CronController.php

index 8392ff4897fff09de814a87b77f9a4278a31dd90..9aa5e1bbf5847343087786785730db297dc2b845 100644 (file)
@@ -1590,12 +1590,22 @@ class CronController extends Controller
                     '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();
@@ -1608,6 +1618,11 @@ class CronController extends Controller
                 $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 = [];