]> gitweb.erp-flowers.ru Git - erp24_rep/yii-erp24/.git/commitdiff
[ERP-105] использование кодов вместо названий
authorAlexander Smirnov <fredeom@mail.ru>
Wed, 28 Aug 2024 12:08:23 +0000 (15:08 +0300)
committerAlexander Smirnov <fredeom@mail.ru>
Wed, 28 Aug 2024 12:08:23 +0000 (15:08 +0300)
erp24/actions/motivation/IndexAction.php
erp24/services/MotivationService.php

index a74a1e67acfbda89866fd209042d9620fd86247f..44045ba248dafc6dd579f8b60233144a14441b9d 100644 (file)
@@ -161,7 +161,7 @@ class IndexAction extends Action
                 }
             }
 
-            MotivationService::calculateFactFormula($motivationDataTableSort, $model->year, $model->month);
+            $motivationDataTableSort = MotivationService::calculateFactFormula($motivationDataTableSort, $model->year, $model->month);
 
             // Формируем заголовок для 5-й недели
             if ($model->month == 2) { // Февраль
index 178865491a5fd9fc2b73779d4734c18d843ea64b..4ad0b00a06e58f7357f889c9d69179f9d13412f2 100644 (file)
@@ -28,34 +28,99 @@ use yii_app\records\EmployeePayment;
 
 class MotivationService
 {
+    const  CODE_OFFLINE_SALES = 1;
+    const CODE_ONLINE_SALES = 2;
+    const CODE_ASSEMBLY_SERVICES = 3;
+    const CODE_DELIVERY_SERVICES = 4;
+    const CODE_DELIVERY_DEFECTS = 6;
+    const CODE_WRITE_OFF_ILLIQUID_GOODS_SPOOLAGE_EXPIRATION_OF_SHELF_LIFE = 7;
+    const CODE_EQUIPMENT_FAILURE_DEFECT = 8;
+    const CODE_REGRADING = 9;
+    const CODE_CONSUMABLES_SALES_SUPPORT = 10;
+    const CODE_RENT = 12;
+    const CODE_PUBLIC_SERVICES = 13;
+    const CODE_SECURITY = 14;
+    const CODE_CLEANING_SERVICES_FOR_PREMISES_AND_TERRITORY = 15;
+    const CODE_DELIVERY_TO_CLIENT_CURRIER = 16;
+    const CODE_DELIVERY_TO_CLIENT_TAXI = 17;
+    const CODE_MARKETPLACE_SERVICES = 18;
+    const CODE_REFRIGERATION_EQUIPMENT_REPAIR_MAINTANANCE = 19;
+    const CODE_COSTS_FOR_MAINTENANCE_AND_REPAIR_OF_OFFICE_EQUIPMENT_INCLUDING_CONSUMABLES = 20;
+    const CODE_EXPENSES_FOR_MAINENANCE_AND_REPAIR_OF_OTHER_FIXED_ASSETS = 21;
+    const CODE_MAINTENANCE_OF_CASH_REGISTERS = 22;
+    const CODE_INTERNET = 23;
+    const CODE_HOUSEHOLD_GOODS = 24;
+    const CODE_STATIONARY = 25;
+    const CODE_ACCOUNTING_SERVICES_SETTING_UP_AND_MAINTAINING_ACCOUNTING_AND_TAX_RECORDS = 27;
+    const CODE_LEGAL_SERVICES = 28;
+    const CODE_PERSONAL_ADMINISTRATION_LABOR_PROTECTION = 29;
+    const CODE_RECRUITMENT_SERVICES = 30;
+    const CODE_ADMINISTRATION_OF_IT_INFRASTRUCTURE_CONNECTIONS_TO_DATABASES_SOFTWARE_MAIL_INTERNET = 31;
+    const CODE_SOFTWARE_LICENSE_ERP_SYSTEM = 32;
+    const CODE_PROMOTION_AND_SALE_OF_GOODS_THROUGH_THE_WEBSITE = 33;
+    const CODE_PERSONAL_ADMINISTRATION_LABOR_PROTECTION_TARIFF = 36;
+    const CODE_BASE_BONUS = 37;
+    const CODE_BONUS_SIZE = 38;
+    const CODE_AGENT_SERVICES_TARIFF = 35;
+    const CODE_NUMBER_OF_EMPLOYEES = 34;
+    const CODE_PAYROLL_FUND = 11;
+    const CODE_THRESHOLD_COEFFICIENT = 39;
+    const CODE_DRINKING_WATER = 26;
+    const CODE_COSTS_OF_GOODS = 5;
+
+    const CODE_REVENUE_FROM_SALES = 1001;
+    const CODE_SALE_OF_GOODS = 1002;
+    const CODE_OTHER_SERVICES = 1003;
+    const CODE_DIRECT_SELLING_COSTS = 1004;
+    const CODE_COST_PRICE_OF_GOODS = 1005;
+    const CODE_AGENT_SERVICES_EXPENSES_FOR_PURCHASING_STORING_DELIVERING_GOODS = 1006;
+    const CODE_DEFECT_RESORTING = 1007;
+    const CODE_MARGINAL_INCOME = 1008;
+    const CODE_OPERATIONAL_EXPANSES_COST = 1009;
+    const CODE_PAYMENT = 1010;
+    const CODE_MAINTENANCE_OF_PRIMISES = 1011;
+    const CODE_DELIVERY_COST = 1012;
+    const CODE_MAINTENANCE_AND_SERVICE_OF_FIXED_ASSETS_AND_INTANGIBLE_ASSETS = 1013;
+    const CODE_COMMUNICATION_SERVICES = 1014;
+    const CODE_OTHER_OPERATING_EXPENSES = 1015;
+    const CODE_GROSS_PROFIT = 1016;
+    const CODE_GENERAL_BUSINESS_EXPENSES = 1017;
+    const CODE_ACCOUNTING_AND_FINANCE = 1018;
+    const CODE_LEGAL_SUPPORT = 1019;
+    const CODE_HR_SERVICES = 1020;
+    const CODE_IT_SERVICES = 1021;
+    const CODE_NET_PROFIT = 1022;
+    const CODE_NET_PROFIT_MARGIN_PERCENT = 1023;
+    const CODE_NET_PROFIT_THRESHOLD_RUB = 1024;
+    const CODE_CALCULATION_OF_PREMIUM = 1025;
 
     // 6. Создание массива дополнительных элементов
     static $additionalItems = [
-            80 => ['name' => 'Выручка от реализации'],
-            90 => ['name' => 'Продажа товара'],
-            115 => ['name' => 'Прочие услуги'],
-            135 => ['name' => 'Прямые расходы на продажу'],
-            139 => ['name' => 'Себестоимость товара'],
-            143 => ['name' => 'Услуги агентов (Расходы на закупку, хранение, доставку товара)'],
-            146 => ['name' => 'Брак, пересорт'],
-            192 => ['name' => 'Маржинальный доход'],
-            194 => ['name' => 'Операционные расходы (Себестоимость)'],
-            196 => ['name' => 'Оплата труда'],
-            205 => ['name' => 'Содержание помещения'],
-            245 => ['name' => 'Расходы по доставке'],
-            275 => ['name' => 'Содержание и обслуживание ОС и НМА'],
-            315 => ['name' => 'Услуги связи'],
-            325 => ['name' => 'Прочие операционные расходы'],
-            353 => ['name' => 'Валовая прибыль'],
-            355 => ['name' => 'Общехозяйственные расходы'],
-            357 => ['name' => 'Бухгалтерия и финансы'],
-            365 => ['name' => 'Юридическое сопровождение'],
-            375 => ['name' => 'HR- услуги'],
-            395 => ['name' => 'IT услуги'],
-            425 => ['name' => 'Чистая прибыль'],
-            427 => ['name' => 'Рентабельность по чистой прибыли, %'],
-            428 => ['name' => 'Минимальный порог Чистой прибыли, руб.'],
-            435 => ['name' => 'Расчет премии']
+            80 => ['name' => 'Выручка от реализации',                 'code' => self::CODE_REVENUE_FROM_SALES],
+            90 => ['name' => 'Продажа товара',                        'code' => self::CODE_SALE_OF_GOODS],
+            115 => ['name' => 'Прочие услуги',                        'code' => self::CODE_OTHER_SERVICES],
+            135 => ['name' => 'Прямые расходы на продажу',            'code' => self::CODE_DIRECT_SELLING_COSTS],
+            139 => ['name' => 'Себестоимость товара',                 'code' => self::CODE_COST_PRICE_OF_GOODS],
+            143 => ['name' => 'Услуги агентов (Расходы на закупку, хранение, доставку товара)', 'code' => self::CODE_AGENT_SERVICES_EXPENSES_FOR_PURCHASING_STORING_DELIVERING_GOODS],
+            146 => ['name' => 'Брак, пересорт',                       'code' => self::CODE_DEFECT_RESORTING],
+            192 => ['name' => 'Маржинальный доход',                   'code' => self::CODE_MARGINAL_INCOME],
+            194 => ['name' => 'Операционные расходы (Себестоимость)', 'code' => self::CODE_OPERATIONAL_EXPANSES_COST],
+            196 => ['name' => 'Оплата труда',                         'code' => self::CODE_PAYMENT],
+            205 => ['name' => 'Содержание помещения',                 'code' => self::CODE_MAINTENANCE_OF_PRIMISES],
+            245 => ['name' => 'Расходы по доставке',                  'code' => self::CODE_DELIVERY_COST],
+            275 => ['name' => 'Содержание и обслуживание ОС и НМА',   'code' => self::CODE_MAINTENANCE_AND_SERVICE_OF_FIXED_ASSETS_AND_INTANGIBLE_ASSETS],
+            315 => ['name' => 'Услуги связи',                         'code' => self::CODE_COMMUNICATION_SERVICES],
+            325 => ['name' => 'Прочие операционные расходы',          'code' => self::CODE_OTHER_OPERATING_EXPENSES],
+            353 => ['name' => 'Валовая прибыль',                      'code' => self::CODE_GROSS_PROFIT],
+            355 => ['name' => 'Общехозяйственные расходы',            'code' => self::CODE_GENERAL_BUSINESS_EXPENSES],
+            357 => ['name' => 'Бухгалтерия и финансы',                'code' => self::CODE_ACCOUNTING_AND_FINANCE],
+            365 => ['name' => 'Юридическое сопровождение',            'code' => self::CODE_LEGAL_SUPPORT],
+            375 => ['name' => 'HR- услуги',                           'code' => self::CODE_HR_SERVICES],
+            395 => ['name' => 'IT услуги',                            'code' => self::CODE_IT_SERVICES],
+            425 => ['name' => 'Чистая прибыль',                       'code' => self::CODE_NET_PROFIT],
+            427 => ['name' => 'Рентабельность по чистой прибыли, %',  'code' => self::CODE_NET_PROFIT_MARGIN_PERCENT],
+            428 => ['name' => 'Минимальный порог Чистой прибыли, руб.', 'code' => self::CODE_NET_PROFIT_THRESHOLD_RUB],
+            435 => ['name' => 'Расчет премии',                        'code' => self::CODE_CALCULATION_OF_PREMIUM]
         ];
 
 // Код из таблицы MotivationCostsItem строки - Фонд оплаты труда персонала
@@ -1009,16 +1074,16 @@ class MotivationService
         return $weeks;
     }
 
-    public static function calculateFactFormula(&$motivationDataTableSort, $year, $month) {
+    public static function calculateFactFormula($motivationDataTableSort, $year, $month) {
         // Определяем последний день месяца
         $lastDayOfMonth = date('t', strtotime("$year-$month-01"));
 
         $indMap = [];
         foreach ($motivationDataTableSort as $ind => $row) {
-            if (!key_exists('name', $row)) {
+            if (!key_exists('code', $row)) {
                 continue;
             }
-            $indMap[$row['name']] = $ind;
+            $indMap[intval($row['code'])] = $ind;
         }
         foreach (range(0,7) as $ind) {
             switch ($ind) {
@@ -1028,222 +1093,224 @@ class MotivationService
                 default: { $column = 'week' . $ind; break; }
             }
 
-            $motivationDataTableSort[$indMap["Продажа товара"]][$column] =
-                $motivationDataTableSort[$indMap["Оффлайн продажи"]][$column] +
-                $motivationDataTableSort[$indMap["Онлайн продажи"]][$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["Прочие услуги"]][$column] =
-                $motivationDataTableSort[$indMap["Услуги по сборке"]][$column] +
-                $motivationDataTableSort[$indMap["Услуги по доставке"]][$column] + 0;
+            $motivationDataTableSort[$indMap[self::CODE_OTHER_SERVICES]][$column] =           // "Прочие услуги"
+                $motivationDataTableSort[$indMap[self::CODE_ASSEMBLY_SERVICES]][$column] +    // "Услуги по сборке"
+                $motivationDataTableSort[$indMap[self::CODE_DELIVERY_SERVICES]][$column] + 0; // "Услуги по доставке"
 
-            $motivationDataTableSort[$indMap["Выручка от реализации"]][$column] =
-                $motivationDataTableSort[$indMap["Продажа товара"]][$column] +
-                $motivationDataTableSort[$indMap["Прочие услуги"]][$column] + 0;
+            $motivationDataTableSort[$indMap[self::CODE_REVENUE_FROM_SALES]][$column] = // "Выручка от реализации"
+                $motivationDataTableSort[$indMap[self::CODE_SALE_OF_GOODS]][$column] +  // "Продажа товара"
+                $motivationDataTableSort[$indMap[self::CODE_OTHER_SERVICES]][$column] + 0; // "Прочие услуги"
 
-            $motivationDataTableSort[$indMap["Себестоимость товара"]][$column] =
-                $motivationDataTableSort[$indMap["Стоимость товара"]][$column] + 0;
+            $motivationDataTableSort[$indMap[self::CODE_COST_PRICE_OF_GOODS]][$column] = // "Себестоимость товара"
+                $motivationDataTableSort[$indMap[self::CODE_COSTS_OF_GOODS]][$column] + 0; // "Стоимость товара"
 
-            $motivationDataTableSort[$indMap["Услуги агентов (Расходы на закупку, хранение, доставку товара)"]][$column] =
+            $motivationDataTableSort[$indMap[self::CODE_AGENT_SERVICES_EXPENSES_FOR_PURCHASING_STORING_DELIVERING_GOODS]][$column] = // "Услуги агентов (Расходы на закупку, хранение, доставку товара)"
                 (
-                    $motivationDataTableSort[$indMap["Себестоимость товара"]][$column] +
-                    $motivationDataTableSort[$indMap["Брак, пересорт"]][$column]
+                    $motivationDataTableSort[$indMap[self::CODE_COST_PRICE_OF_GOODS]][$column] + // "Себестоимость товара"
+                    $motivationDataTableSort[$indMap[self::CODE_DEFECT_RESORTING]][$column] // "Брак, пересорт"
                 ) *
-                $motivationDataTableSort[$indMap["Услуги агентов (тариф)"]][$column];
-
-            $motivationDataTableSort[$indMap["Брак, пересорт"]][$column] =
-                $motivationDataTableSort[$indMap["Брак с поставки"]][$column] +
-                $motivationDataTableSort[$indMap["Списание неликвидного товара: порча, истечение срока годности"]][$column] +
-                $motivationDataTableSort[$indMap["Брак из-за поломки оборудования"]][$column] +
-                $motivationDataTableSort[$indMap["Пересорт"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Прямые расходы на продажу"]][$column] =
-                $motivationDataTableSort[$indMap["Себестоимость товара"]][$column] +
-                $motivationDataTableSort[$indMap["Услуги агентов (Расходы на закупку, хранение, доставку товара)"]][$column] +
-                $motivationDataTableSort[$indMap["Брак, пересорт"]][$column] +
-                $motivationDataTableSort[$indMap["Расходные материалы (обеспечение продаж)"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Маржинальный доход"]][$column] =
-                $motivationDataTableSort[$indMap["Выручка от реализации"]][$column] -
-                $motivationDataTableSort[$indMap["Прямые расходы на продажу"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Оплата труда"]][$column] =
-                $motivationDataTableSort[$indMap["Фонд оплаты труда персонала"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Содержание помещения"]][$column] =
-                $motivationDataTableSort[$indMap["Аренда"]][$column] +
-                $motivationDataTableSort[$indMap["Коммунальные услуги"]][$column] +
-                $motivationDataTableSort[$indMap["Охрана"]][$column] +
-                $motivationDataTableSort[$indMap["Услуги по уборке помещений и территории"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Расходы по доставке"]][$column] =
-                $motivationDataTableSort[$indMap["Доставка до клиента курьер"]][$column] +
-                $motivationDataTableSort[$indMap["Доставка до клиента такси"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Содержание и обслуживание ОС и НМА"]][$column] =
-                $motivationDataTableSort[$indMap["Холодильное оборудование (ремонт, содержание, ТО)"]][$column] +
-                $motivationDataTableSort[$indMap["Расходы на содержание и ремонт оргтехники, в т.ч. расходные материалы"]][$column] +
-                $motivationDataTableSort[$indMap["Расходы на содержание и ремонт прочих ОС"]][$column] +
-                $motivationDataTableSort[$indMap["Техническое обслуживание кассовых аппаратов"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Услуги связи"]][$column] =
-                $motivationDataTableSort[$indMap["Интернет"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Прочие операционные расходы"]][$column] =
-                $motivationDataTableSort[$indMap["Хозяйственные товары"]][$column] +
-                $motivationDataTableSort[$indMap["Канцтовары"]][$column] +
-                $motivationDataTableSort[$indMap["Вода питьевая"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Операционные расходы (Себестоимость)"]][$column] =
-                $motivationDataTableSort[$indMap["Оплата труда"]][$column] +
-                $motivationDataTableSort[$indMap["Содержание помещения"]][$column] +
-                $motivationDataTableSort[$indMap["Расходы по доставке"]][$column] +
-                $motivationDataTableSort[$indMap["Услуги маркетплейсов"]][$column] +
-                $motivationDataTableSort[$indMap["Содержание и обслуживание ОС и НМА"]][$column] +
-                $motivationDataTableSort[$indMap["Услуги связи"]][$column] +
-                $motivationDataTableSort[$indMap["Прочие операционные расходы"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Валовая прибыль"]][$column] =
-                $motivationDataTableSort[$indMap["Маржинальный доход"]][$column] -
-                $motivationDataTableSort[$indMap["Операционные расходы (Себестоимость)"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Бухгалтерия и финансы"]][$column] =
-                $motivationDataTableSort[$indMap["Бухгалтерские услуги: постановка и ведение БУ и НУ"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Юридическое сопровождение"]][$column] =
-                $motivationDataTableSort[$indMap["Юридические услуги"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["HR- услуги"]][$column] =
-                $motivationDataTableSort[$indMap["Кадровое администрирование, охрана труда"]][$column] +
-                $motivationDataTableSort[$indMap["Услуги по подбору персонала"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["IT услуги"]][$column] =
-                $motivationDataTableSort[$indMap["Администрирование ИТ инфраструктуры (подключения к базам данных, ПО, почта, интернет)"]][$column] +
-                $motivationDataTableSort[$indMap["Лицензия на ПО: ERP система"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Общехозяйственные расходы"]][$column] =
-                $motivationDataTableSort[$indMap["Бухгалтерия и финансы"]][$column] +
-                $motivationDataTableSort[$indMap["Юридическое сопровождение"]][$column] +
-                $motivationDataTableSort[$indMap["HR- услуги"]][$column] +
-                $motivationDataTableSort[$indMap["IT услуги"]][$column] +
-                $motivationDataTableSort[$indMap["Продвижение и продажа товара через сайт"]][$column] + 0;
-
-            $motivationDataTableSort[$indMap["Чистая прибыль"]][$column] =
-                $motivationDataTableSort[$indMap["Валовая прибыль"]][$column] -
-                $motivationDataTableSort[$indMap["Общехозяйственные расходы"]][$column] + 0;
-
-            $c5 = $motivationDataTableSort[$indMap["Выручка от реализации"]][$column];
+                $motivationDataTableSort[$indMap[self::CODE_AGENT_SERVICES_TARIFF]][$column]; // "Услуги агентов (тариф)"
+
+            $motivationDataTableSort[$indMap[self::CODE_DEFECT_RESORTING]][$column] = // "Брак, пересорт"
+                $motivationDataTableSort[$indMap[self::CODE_DELIVERY_DEFECTS]][$column] + // "Брак с поставки"
+                $motivationDataTableSort[$indMap[self::CODE_WRITE_OFF_ILLIQUID_GOODS_SPOOLAGE_EXPIRATION_OF_SHELF_LIFE]][$column] + // "Списание неликвидного товара: порча, истечение срока годности"
+                $motivationDataTableSort[$indMap[self::CODE_EQUIPMENT_FAILURE_DEFECT]][$column] + // "Брак из-за поломки оборудования"
+                $motivationDataTableSort[$indMap[self::CODE_REGRADING]][$column] + 0; // "Пересорт"
+
+            $motivationDataTableSort[$indMap[self::CODE_DIRECT_SELLING_COSTS]][$column] = // "Прямые расходы на продажу"
+                $motivationDataTableSort[$indMap[self::CODE_COST_PRICE_OF_GOODS]][$column] + // "Себестоимость товара"
+                $motivationDataTableSort[$indMap[self::CODE_AGENT_SERVICES_EXPENSES_FOR_PURCHASING_STORING_DELIVERING_GOODS]][$column] + // "Услуги агентов (Расходы на закупку, хранение, доставку товара)"
+                $motivationDataTableSort[$indMap[self::CODE_DEFECT_RESORTING]][$column] + // "Брак, пересорт"
+                $motivationDataTableSort[$indMap[self::CODE_CONSUMABLES_SALES_SUPPORT]][$column] + 0; // "Расходные материалы (обеспечение продаж)"
+
+            $motivationDataTableSort[$indMap[self::CODE_MARGINAL_INCOME]][$column] = // "Маржинальный доход"
+                $motivationDataTableSort[$indMap[self::CODE_REVENUE_FROM_SALES]][$column] - // "Выручка от реализации"
+                $motivationDataTableSort[$indMap[self::CODE_DIRECT_SELLING_COSTS]][$column] + 0; // "Прямые расходы на продажу"
+
+            $motivationDataTableSort[$indMap[self::CODE_PAYMENT]][$column] = // "Оплата труда"
+                $motivationDataTableSort[$indMap[self::CODE_PAYROLL_FUND]][$column] + 0; // "Фонд оплаты труда персонала"
+
+            $motivationDataTableSort[$indMap[self::CODE_MAINTENANCE_OF_PRIMISES]][$column] = // "Содержание помещения"
+                $motivationDataTableSort[$indMap[self::CODE_RENT]][$column] + // "Аренда"
+                $motivationDataTableSort[$indMap[self::CODE_PUBLIC_SERVICES]][$column] + // "Коммунальные услуги"
+                $motivationDataTableSort[$indMap[self::CODE_SECURITY]][$column] + // "Охрана"
+                $motivationDataTableSort[$indMap[self::CODE_CLEANING_SERVICES_FOR_PREMISES_AND_TERRITORY]][$column] + 0; // "Услуги по уборке помещений и территории"
+
+            $motivationDataTableSort[$indMap[self::CODE_DELIVERY_COST]][$column] = // "Расходы по доставке"
+                $motivationDataTableSort[$indMap[self::CODE_DELIVERY_TO_CLIENT_CURRIER]][$column] + // "Доставка до клиента курьер"
+                $motivationDataTableSort[$indMap[self::CODE_DELIVERY_TO_CLIENT_TAXI]][$column] + 0; // "Доставка до клиента такси"
+
+            $motivationDataTableSort[$indMap[self::CODE_MAINTENANCE_AND_SERVICE_OF_FIXED_ASSETS_AND_INTANGIBLE_ASSETS]][$column] = // "Содержание и обслуживание ОС и НМА"
+                $motivationDataTableSort[$indMap[self::CODE_REFRIGERATION_EQUIPMENT_REPAIR_MAINTANANCE]][$column] + // "Холодильное оборудование (ремонт, содержание, ТО)"
+                $motivationDataTableSort[$indMap[self::CODE_COSTS_FOR_MAINTENANCE_AND_REPAIR_OF_OFFICE_EQUIPMENT_INCLUDING_CONSUMABLES]][$column] + // "Расходы на содержание и ремонт оргтехники, в т.ч. расходные материалы"
+                $motivationDataTableSort[$indMap[self::CODE_EXPENSES_FOR_MAINENANCE_AND_REPAIR_OF_OTHER_FIXED_ASSETS]][$column] + // "Расходы на содержание и ремонт прочих ОС"
+                $motivationDataTableSort[$indMap[self::CODE_MAINTENANCE_OF_CASH_REGISTERS]][$column] + 0; // "Техническое обслуживание кассовых аппаратов"
+
+            $motivationDataTableSort[$indMap[self::CODE_COMMUNICATION_SERVICES]][$column] = // "Услуги связи"
+                $motivationDataTableSort[$indMap[self::CODE_INTERNET]][$column] + 0; // "Интернет"
+
+            $motivationDataTableSort[$indMap[self::CODE_OTHER_OPERATING_EXPENSES]][$column] = // "Прочие операционные расходы"
+                $motivationDataTableSort[$indMap[self::CODE_HOUSEHOLD_GOODS]][$column] + // "Хозяйственные товары"
+                $motivationDataTableSort[$indMap[self::CODE_STATIONARY]][$column] + // "Канцтовары"
+                $motivationDataTableSort[$indMap[self::CODE_DRINKING_WATER]][$column] + 0; // "Вода питьевая"
+
+            $motivationDataTableSort[$indMap[self::CODE_OPERATIONAL_EXPANSES_COST]][$column] = // "Операционные расходы (Себестоимость)"
+                $motivationDataTableSort[$indMap[self::CODE_PAYMENT]][$column] + // "Оплата труда"
+                $motivationDataTableSort[$indMap[self::CODE_MAINTENANCE_OF_PRIMISES]][$column] + // "Содержание помещения"
+                $motivationDataTableSort[$indMap[self::CODE_DELIVERY_COST]][$column] + // "Расходы по доставке"
+                $motivationDataTableSort[$indMap[self::CODE_MARKETPLACE_SERVICES]][$column] + // "Услуги маркетплейсов"
+                $motivationDataTableSort[$indMap[self::CODE_MAINTENANCE_AND_SERVICE_OF_FIXED_ASSETS_AND_INTANGIBLE_ASSETS]][$column] + // "Содержание и обслуживание ОС и НМА"
+                $motivationDataTableSort[$indMap[self::CODE_COMMUNICATION_SERVICES]][$column] + // "Услуги связи"
+                $motivationDataTableSort[$indMap[self::CODE_OTHER_OPERATING_EXPENSES]][$column] + 0; // "Прочие операционные расходы"
+
+            $motivationDataTableSort[$indMap[self::CODE_GROSS_PROFIT]][$column] = // "Валовая прибыль"
+                $motivationDataTableSort[$indMap[self::CODE_MARGINAL_INCOME]][$column] - // "Маржинальный доход"
+                $motivationDataTableSort[$indMap[self::CODE_OPERATIONAL_EXPANSES_COST]][$column] + 0; // "Операционные расходы (Себестоимость)"
+
+            $motivationDataTableSort[$indMap[self::CODE_ACCOUNTING_AND_FINANCE]][$column] = // "Бухгалтерия и финансы"
+                $motivationDataTableSort[$indMap[self::CODE_ACCOUNTING_SERVICES_SETTING_UP_AND_MAINTAINING_ACCOUNTING_AND_TAX_RECORDS]][$column] + 0; // "Бухгалтерские услуги: постановка и ведение БУ и НУ"
+
+            $motivationDataTableSort[$indMap[self::CODE_LEGAL_SUPPORT]][$column] = // "Юридическое сопровождение"
+                $motivationDataTableSort[$indMap[self::CODE_LEGAL_SERVICES]][$column] + 0; // "Юридические услуги"
+
+            $motivationDataTableSort[$indMap[self::CODE_HR_SERVICES]][$column] = // "HR- услуги"
+                $motivationDataTableSort[$indMap[self::CODE_PERSONAL_ADMINISTRATION_LABOR_PROTECTION]][$column] + // "Кадровое администрирование, охрана труда"
+                $motivationDataTableSort[$indMap[self::CODE_RECRUITMENT_SERVICES]][$column] + 0; // "Услуги по подбору персонала"
+
+            $motivationDataTableSort[$indMap[self::CODE_IT_SERVICES]][$column] = // "IT услуги"
+                $motivationDataTableSort[$indMap[self::CODE_ADMINISTRATION_OF_IT_INFRASTRUCTURE_CONNECTIONS_TO_DATABASES_SOFTWARE_MAIL_INTERNET]][$column] + // "Администрирование ИТ инфраструктуры (подключения к базам данных, ПО, почта, интернет)"
+                $motivationDataTableSort[$indMap[self::CODE_SOFTWARE_LICENSE_ERP_SYSTEM]][$column] + 0; // "Лицензия на ПО: ERP система"
+
+            $motivationDataTableSort[$indMap[self::CODE_GENERAL_BUSINESS_EXPENSES]][$column] = // "Общехозяйственные расходы"
+                $motivationDataTableSort[$indMap[self::CODE_ACCOUNTING_AND_FINANCE]][$column] + // "Бухгалтерия и финансы"
+                $motivationDataTableSort[$indMap[self::CODE_LEGAL_SUPPORT]][$column] + // "Юридическое сопровождение"
+                $motivationDataTableSort[$indMap[self::CODE_HR_SERVICES]][$column] + // "HR- услуги"
+                $motivationDataTableSort[$indMap[self::CODE_IT_SERVICES]][$column] + // "IT услуги"
+                $motivationDataTableSort[$indMap[self::CODE_PROMOTION_AND_SALE_OF_GOODS_THROUGH_THE_WEBSITE]][$column] + 0; // "Продвижение и продажа товара через сайт"
+
+            $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT]][$column] = // "Чистая прибыль"
+                $motivationDataTableSort[$indMap[self::CODE_GROSS_PROFIT]][$column] - // "Валовая прибыль"
+                $motivationDataTableSort[$indMap[self::CODE_GENERAL_BUSINESS_EXPENSES]][$column] + 0; // "Общехозяйственные расходы"
+
+            $c5 = $motivationDataTableSort[$indMap[self::CODE_REVENUE_FROM_SALES]][$column]; // "Выручка от реализации"
             if ($c5 != 0) {
-                $motivationDataTableSort[$indMap["Рентабельность по чистой прибыли, %"]][$column] =
-                    $motivationDataTableSort[$indMap["Чистая прибыль"]][$column] / $c5;
+                $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_MARGIN_PERCENT]][$column] = // "Рентабельность по чистой прибыли, %"
+                    $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT]][$column] / $c5; // "Чистая прибыль"
             }
 
             if ($ind == 0) {
-                $b62 = $motivationDataTableSort[$indMap["Чистая прибыль"]]["plan"];
+                $b62 = $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT]]["plan"]; // "Чистая прибыль"
                 if ($b62 > 0) {
                     $b64 = $b62 * 0.9;
                 } else {
                     $b64 = $b62 * 1.1;
                 }
-                $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]]["plan"] = $b64;
+                $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]]["plan"] = $b64; // "Минимальный порог Чистой прибыли, руб."
             }
             if ($ind >= 1 && $ind <= 4) {
-                $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]][$column] =
-                    $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]]["plan"] / $lastDayOfMonth * 7;
+                $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]][$column] = // "Минимальный порог Чистой прибыли, руб."
+                    $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]]["plan"] / $lastDayOfMonth * 7; // "Минимальный порог Чистой прибыли, руб."
             }
             if ($ind == 5) {
-                $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]][$column] =
-                    $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]]["plan"] / $lastDayOfMonth * ($lastDayOfMonth - 4 * 7);
+                $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) {
                 $sum = 0;
                 foreach (range(1, 5) as $index) {
-                    $sum += $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]]['week' . $index];
+                    $sum += $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]]['week' . $index]; // "Минимальный порог Чистой прибыли, руб."
                 }
-                $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]][$column] = $sum;
+                $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]][$column] = $sum; // "Минимальный порог Чистой прибыли, руб."
             }
 
 //            if ($ind > 0) {
-//                $c62 = $motivationDataTableSort[$indMap["Чистая прибыль"]][$column];
-//                $b64 = $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]][$ind == 6 ? "plan" : $column];
+//                $c62 = $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT]][$column]; // "Чистая прибыль"
+//                $b64 = $motivationDataTableSort[$indMap[self::CODE_NET_PROFIT_THRESHOLD_RUB]][$ind == 6 ? "plan" : $column]; // "Минимальный порог Чистой прибыли, руб."
 //
 //                $j66 = 0;
 //                if ($c62 >= $b64) {
-//                    $formula = $c62 - $c5 * $motivationDataTableSort[$indMap["Пороговый коэффициент"]]["plan"];
+//                    $formula = $c62 - $c5 * $motivationDataTableSort[$indMap[self::CODE_THRESHOLD_COEFFICIENT]]["plan"]; // "Пороговый коэффициент"
 //                    if ($formula > 0) {
 //                        $j66 = $formula;
 //                    }
 //                }
-//                $motivationDataTableSort[$indMap["Расчет премии"]][$column] = $j66 + 0;
+//                $motivationDataTableSort[$indMap[self::CODE_CALCULATION_OF_PREMIUM]][$column] = $j66 + 0; // "Расчет премии"
 //            }
         }
 
         // Отклонение
-        $deviationFunc = function ($name) use(&$motivationDataTableSort, &$indMap) {
-            if ($motivationDataTableSort[$indMap[$name]]["plan"] != 0) {
-                $motivationDataTableSort[$indMap[$name]]["deviation"] =
-                    $motivationDataTableSort[$indMap[$name]]["fact"] /
-                    $motivationDataTableSort[$indMap[$name]]["plan"];
+        $deviationFunc = function ($code) use(&$motivationDataTableSort, &$indMap) {
+            if ($motivationDataTableSort[$indMap[$code]]["plan"] != 0) {
+                $motivationDataTableSort[$indMap[$code]]["deviation"] =
+                    $motivationDataTableSort[$indMap[$code]]["fact"] /
+                    $motivationDataTableSort[$indMap[$code]]["plan"];
             }
         };
-        $names = [
-            "Выручка от реализации",
-            "Продажа товара",
-            "Оффлайн продажи",
-            "Онлайн продажи",
-            "Прочие услуги",
-            "Услуги по сборке",
-            "Услуги по доставке",
-            "Прямые расходы на продажу",
-            "Себестоимость товара",
-            "Услуги агентов (Расходы на закупку, хранение, доставку товара)",
-            "Брак, пересорт",
-            "Брак с поставки",
-            "Списание неликвидного товара: порча, истечение срока годности",
-            "Брак из-за поломки оборудования",
-            "Пересорт",
-            "Расходные материалы (обеспечение продаж)",
-            "Маржинальный доход",
-            "Операционные расходы (Себестоимость)",
-            "Оплата труда",
-            "Фонд оплаты труда персонала",
-            "Содержание помещения",
-            "Аренда",
-            "Коммунальные услуги",
-            "Охрана",
-            "Услуги по уборке помещений и территории",
-            "Расходы по доставке",
-            "Доставка до клиента курьер",
-            "Доставка до клиента такси",
-            "Услуги маркетплейсов",
-            "Содержание и обслуживание ОС и НМА",
-            "Холодильное оборудование (ремонт, содержание, ТО)",
-            "Расходы на содержание и ремонт оргтехники, в т.ч. расходные материалы",
-            "Расходы на содержание и ремонт прочих ОС",
-            "Техническое обслуживание кассовых аппаратов",
-            "Услуги связи",
-            "Интернет",
-            "Прочие операционные расходы",
-            "Хозяйственные товары",
-            "Канцтовары",
-            "Вода питьевая",
-            "Валовая прибыль",
-            "Общехозяйственные расходы",
-            "Бухгалтерия и финансы",
-            "Бухгалтерские услуги: постановка и ведение БУ и НУ",
-            "Юридическое сопровождение",
-            "Юридические услуги",
-            "HR- услуги",
-            "Кадровое администрирование, охрана труда",
-            "Услуги по подбору персонала",
-            "IT услуги",
-            "Администрирование ИТ инфраструктуры (подключения к базам данных, ПО, почта, интернет)",
-            "Лицензия на ПО: ERP система",
-            "Продвижение и продажа товара через сайт",
-            "Чистая прибыль",
-            "Рентабельность по чистой прибыли, %"
-        ];
-        foreach ($names as $name) {
-            $deviationFunc($name);
+//        $names = [
+//            "Выручка от реализации",
+//            "Продажа товара",
+//            "Оффлайн продажи",
+//            "Онлайн продажи",
+//            "Прочие услуги",
+//            "Услуги по сборке",
+//            "Услуги по доставке",
+//            "Прямые расходы на продажу",
+//            "Себестоимость товара",
+//            "Услуги агентов (Расходы на закупку, хранение, доставку товара)",
+//            "Брак, пересорт",
+//            "Брак с поставки",
+//            "Списание неликвидного товара: порча, истечение срока годности",
+//            "Брак из-за поломки оборудования",
+//            "Пересорт",
+//            "Расходные материалы (обеспечение продаж)",
+//            "Маржинальный доход",
+//            "Операционные расходы (Себестоимость)",
+//            "Оплата труда",
+//            "Фонд оплаты труда персонала",
+//            "Содержание помещения",
+//            "Аренда",
+//            "Коммунальные услуги",
+//            "Охрана",
+//            "Услуги по уборке помещений и территории",
+//            "Расходы по доставке",
+//            "Доставка до клиента курьер",
+//            "Доставка до клиента такси",
+//            "Услуги маркетплейсов",
+//            "Содержание и обслуживание ОС и НМА",
+//            "Холодильное оборудование (ремонт, содержание, ТО)",
+//            "Расходы на содержание и ремонт оргтехники, в т.ч. расходные материалы",
+//            "Расходы на содержание и ремонт прочих ОС",
+//            "Техническое обслуживание кассовых аппаратов",
+//            "Услуги связи",
+//            "Интернет",
+//            "Прочие операционные расходы",
+//            "Хозяйственные товары",
+//            "Канцтовары",
+//            "Вода питьевая",
+//            "Валовая прибыль",
+//            "Общехозяйственные расходы",
+//            "Бухгалтерия и финансы",
+//            "Бухгалтерские услуги: постановка и ведение БУ и НУ",
+//            "Юридическое сопровождение",
+//            "Юридические услуги",
+//            "HR- услуги",
+//            "Кадровое администрирование, охрана труда",
+//            "Услуги по подбору персонала",
+//            "IT услуги",
+//            "Администрирование ИТ инфраструктуры (подключения к базам данных, ПО, почта, интернет)",
+//            "Лицензия на ПО: ERP система",
+//            "Продвижение и продажа товара через сайт",
+//            "Чистая прибыль",
+//            "Рентабельность по чистой прибыли, %"
+//        ];
+        foreach (array_keys($indMap) as $code) {
+            $deviationFunc($code);
         }
+
+        return $motivationDataTableSort;
     }
 }