From: Alexander Smirnov Date: Mon, 2 Sep 2024 14:08:06 +0000 (+0300) Subject: Merge branch 'develop' into feature_smirnov_erp-140_fact_motivation X-Git-Tag: 1.4~5^2~14 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=c97d635227fc1521a4c9d9f83171e6bee1189f74;p=erp24_rep%2Fyii-erp24%2F.git Merge branch 'develop' into feature_smirnov_erp-140_fact_motivation # Conflicts: # erp24/services/MotivationService.php # erp24/views/motivation/index.php --- c97d635227fc1521a4c9d9f83171e6bee1189f74 diff --cc erp24/services/MotivationService.php index 06e3263f,b9d467af..f9795b7d --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@@ -21,7 -20,11 +21,8 @@@ use yii_app\records\Sales use yii_app\records\SalesProducts; use yii_app\records\TimetableFactModel; use yii_app\records\Timetable; -use yii_app\records\SelfCostProduct; - - -use yii_app\records\EmployeePayment; ++use yii_app\records\SelfCostProduct; class MotivationService { @@@ -1536,12 -1135,27 +1550,25 @@@ case 0: { $column = 'plan'; break; } case 6: { $column = 'fact'; break; } case 7: { $column = 'forecast'; break; } - default: { $column = 'week' . $ind; break; } + default: { $column = 'week' . $indexItem; break; } + } + -// Проверяем и инициализируем каждую запись, если она отсутствует ++ // Проверяем и инициализируем каждую запись, если она отсутствует + foreach ($numericConstants as $constantName => $code) { + if (!isset($indMap[$code])) { + continue; + } + + if (!isset($motivationDataTableSort[$indMap[$code]][$column])) { + // Присваиваем null или 0 в зависимости от необходимости + $motivationDataTableSort[$indMap[$code]][$column] = null; + } } - $motivationDataTableSort[$indMap[self::CODE_SALE_OF_GOODS]][$column] = // "Продажа товара" - $motivationDataTableSort[$indMap[self::CODE_OFFLINE_SALES]][$column] + // "Оффлайн продажи" - $motivationDataTableSort[$indMap[self::CODE_ONLINE_SALES]][$column] + 0; // "Онлайн продажи" - // Выполняем вычисление только если все нужные ключи существуют - $motivationDataTableSort[$indMap[self::CODE_SALE_OF_GOODS]][$column] = - $motivationDataTableSort[$indMap[self::CODE_OFFLINE_SALES]][$column] + - $motivationDataTableSort[$indMap[self::CODE_ONLINE_SALES]][$column] + 0; - - ++ // Выполняем вычисление только если все нужные ключи существуют ++ $motivationDataTableSort[$indMap[self::CODE_SALE_OF_GOODS]][$column] = ++ $motivationDataTableSort[$indMap[self::CODE_OFFLINE_SALES]][$column] + ++ $motivationDataTableSort[$indMap[self::CODE_ONLINE_SALES]][$column] + 0; $motivationDataTableSort[$indMap[self::CODE_OTHER_SERVICES]][$column] = // "Прочие услуги" $motivationDataTableSort[$indMap[self::CODE_ASSEMBLY_SERVICES]][$column] + // "Услуги по сборке" @@@ -1665,10 -1280,10 +1693,10 @@@ $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]][$column] = // "Минимальный порог Чистой прибыли, руб." $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]]["plan"] / $lastDayOfMonth * ($lastDayOfMonth - 4 * 7); // "Минимальный порог Чистой прибыли, руб." } - if ($ind == 7) { + if ($indexItem == 7) { $sum = 0; - foreach (range(1, 5) as $indexItem) { - $sum += $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]]['week' . $indexItem]; // "Минимальный порог Чистой прибыли, руб." + foreach (range(1, 5) as $index) { + $sum += $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]]['week' . $index]; // "Минимальный порог Чистой прибыли, руб." } $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]][$column] = $sum; // "Минимальный порог Чистой прибыли, руб." } diff --cc erp24/views/motivation/index.php index 609caf8b,1917a202..8a37b1f8 --- a/erp24/views/motivation/index.php +++ b/erp24/views/motivation/index.php @@@ -144,13 -151,15 +151,15 @@@ $this->registerJsFile('/js/motivation/i 'header' => 'План', ], [ - 'attribute' => 'correction', + 'attribute' => 'adjustment', 'value' => function ($model) { - if ($model["adjustment"] !== null && $model["adjustment"] !== '') { - return Yii::$app->formatter->asDecimal($model["adjustment"], 2); - } else { - return " "; - } + + - return $model["adjustment"] !== null ? FormatHelper::asDecimalMotivation($model["correction"]) : " "; ++ return $model["adjustment"] !== null ? FormatHelper::asDecimalMotivation($model["adjustment"]) : " "; + + + + }, 'header' => 'Корректировка', ], @@@ -256,11 -244,11 +244,11 @@@ 'header' => 'Отклонение, %', 'value' => function ($model) { - if ($model["deviation"] !== null) { - return Yii::$app->formatter->asDecimal($model["deviation"] * 100, 2) . "%"; - } else { - return " "; - } + + return $model["deviation"] !== null ? FormatHelper::asDecimalMotivation($model["deviation"]) : " "; + + - ++ }, ]