]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
Merge branch 'develop' into feature_smirnov_erp-140_fact_motivation
authorAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Sep 2024 14:08:06 +0000 (17:08 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Mon, 2 Sep 2024 14:08:06 +0000 (17:08 +0300)
# Conflicts:
# erp24/services/MotivationService.php
# erp24/views/motivation/index.php

1  2 
erp24/actions/motivation/IndexAction.php
erp24/records/MotivationCostsItem.php
erp24/services/MotivationService.php
erp24/views/motivation/index.php

Simple merge
index 06e3263fa663d69592c7b088995f07bf576dbad7,b9d467afa4dd2517a29144b09d341b5c09f431ef..f9795b7de40ed8704c72ca488580aa505a683a3d
@@@ -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
  {
                  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] +    // "Услуги по сборке"
                  $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; // "Минимальный порог Чистой прибыли, руб."
              }
index 609caf8bad26fc1e9b22db705d265f357e780f28,1917a202bcfe2185e2bd43b3246309e5f22ec5c3..8a37b1f8a4e0b5c450eb91fa90c7ba76818b31d4
@@@ -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' => 'Корректировка',
                          ],
  
                              '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"]) : " ";
 -                              
++
                              },
  
                          ]