From: Alexander Smirnov Date: Thu, 15 Aug 2024 11:07:10 +0000 (+0300) Subject: [ERP-105] Подсчёт итогового факта мотивации X-Git-Tag: 1.4~20^2~9 X-Git-Url: https://gitweb.erp-flowers.ru/?a=commitdiff_plain;h=27fbf87d9b6210949169535f581c5b5ccd9497fb;p=erp24_rep%2Fyii-erp24%2F.git [ERP-105] Подсчёт итогового факта мотивации --- diff --git a/erp24/actions/motivation/IndexAction.php b/erp24/actions/motivation/IndexAction.php index 5d800c6e..522573e1 100644 --- a/erp24/actions/motivation/IndexAction.php +++ b/erp24/actions/motivation/IndexAction.php @@ -154,7 +154,7 @@ class IndexAction extends Action } } - + MotivationService::calculateFactFormula($motivationDataTableSort); // Формируем заголовок для 5-й недели if ($model->month == 2) { // Февраль diff --git a/erp24/services/MotivationService.php b/erp24/services/MotivationService.php index 0ada3d5e..c625230e 100644 --- a/erp24/services/MotivationService.php +++ b/erp24/services/MotivationService.php @@ -519,4 +519,132 @@ class MotivationService } } } + + public static function calculateFactFormula(&$motivationDataTableSort) { + $indMap = []; + foreach ($motivationDataTableSort as $ind => $row) { + if (!key_exists('name', $row)) { + continue; + } + $indMap[$row['name']] = $ind; + } + $motivationDataTableSort[$indMap["Продажа товара"]]["fact"] = + $motivationDataTableSort[$indMap["Оффлайн продажи"]]["fact"] + + $motivationDataTableSort[$indMap["Онлайн продажи"]]["fact"]; + + $motivationDataTableSort[$indMap["Прочие услуги"]]["fact"] = + $motivationDataTableSort[$indMap["Услуги по сборке"]]["fact"] + + $motivationDataTableSort[$indMap["Услуги по доставке"]]["fact"]; + + $motivationDataTableSort[$indMap["Выручка от реализации"]]["fact"] = + $motivationDataTableSort[$indMap["Продажа товара"]]["fact"] + + $motivationDataTableSort[$indMap["Прочие услуги"]]["fact"]; + + $motivationDataTableSort[$indMap["Услуги агентов (Расходы на закупку, хранение, доставку товара)"]]["fact"] = + ( + $motivationDataTableSort[$indMap["Стоимость товара"]]["fact"] + + $motivationDataTableSort[$indMap["Брак, пересорт"]]["fact"] + ) * + $motivationDataTableSort[$indMap["Услуги агентов (тариф)"]]["fact"]; + + $motivationDataTableSort[$indMap["Брак, пересорт"]]["fact"] = + $motivationDataTableSort[$indMap["Брак с поставки"]]["fact"] + + $motivationDataTableSort[$indMap["Списание неликвидного товара: порча, истечение срока годности"]]["fact"] + + $motivationDataTableSort[$indMap["Брак из-за поломки оборудования"]]["fact"] + + $motivationDataTableSort[$indMap["Пересорт"]]["fact"]; + + $motivationDataTableSort[$indMap["Прямые расходы на продажу"]]["fact"] = + $motivationDataTableSort[$indMap["Стоимость товара"]]["fact"] + + $motivationDataTableSort[$indMap["Услуги агентов (Расходы на закупку, хранение, доставку товара)"]]["fact"] + + $motivationDataTableSort[$indMap["Брак, пересорт"]]["fact"] + + $motivationDataTableSort[$indMap["Расходные материалы (обеспечение продаж)"]]["fact"]; + + $motivationDataTableSort[$indMap["Маржинальный доход"]]["fact"] = + $motivationDataTableSort[$indMap["Выручка от реализации"]]["fact"] - + $motivationDataTableSort[$indMap["Прямые расходы на продажу"]]["fact"]; + + $motivationDataTableSort[$indMap["Оплата труда"]]["fact"] = + $motivationDataTableSort[$indMap["Фонд оплаты труда персонала"]]["fact"]; + + $motivationDataTableSort[$indMap["Содержание помещения"]]["fact"] = + $motivationDataTableSort[$indMap["Аренда"]]["fact"] + + $motivationDataTableSort[$indMap["Коммунальные услуги"]]["fact"] + + $motivationDataTableSort[$indMap["Охрана"]]["fact"] + + $motivationDataTableSort[$indMap["Услуги по уборке помещений и территории"]]["fact"]; + + $motivationDataTableSort[$indMap["Расходы по доставке"]]["fact"] = + $motivationDataTableSort[$indMap["Доставка до клиента курьер"]]["fact"] + + $motivationDataTableSort[$indMap["Доставка до клиента такси"]]["fact"]; + + $motivationDataTableSort[$indMap["Содержание и обслуживание ОС и НМА"]]["fact"] = + $motivationDataTableSort[$indMap["Холодильное оборудование (ремонт, содержание, ТО)"]]["fact"] + + $motivationDataTableSort[$indMap["Расходы на содержание и ремонт оргтехники, в т.ч. расходные материалы"]]["fact"] + + $motivationDataTableSort[$indMap["Расходы на содержание и ремонт прочих ОС"]]["fact"] + + $motivationDataTableSort[$indMap["Техническое обслуживание кассовых аппаратов"]]["fact"]; + + $motivationDataTableSort[$indMap["Услуги связи"]]["fact"] = + $motivationDataTableSort[$indMap["Интернет"]]["fact"]; + + $motivationDataTableSort[$indMap["Прочие операционные расходы"]]["fact"] = + $motivationDataTableSort[$indMap["Хозяйственные товары"]]["fact"] + + $motivationDataTableSort[$indMap["Канцтовары"]]["fact"] + + $motivationDataTableSort[$indMap["Вода питьевая"]]["fact"]; + + $motivationDataTableSort[$indMap["Операционные расходы (Себестоимость)"]]["fact"] = + $motivationDataTableSort[$indMap["Оплата труда"]]["fact"] + + $motivationDataTableSort[$indMap["Содержание помещения"]]["fact"] + + $motivationDataTableSort[$indMap["Расходы по доставке"]]["fact"] + + $motivationDataTableSort[$indMap["Услуги маркетплейсов"]]["fact"] + + $motivationDataTableSort[$indMap["Содержание и обслуживание ОС и НМА"]]["fact"] + + $motivationDataTableSort[$indMap["Услуги связи"]]["fact"] + + $motivationDataTableSort[$indMap["Прочие операционные расходы"]]["fact"]; + + $motivationDataTableSort[$indMap["Валовая прибыль"]]["fact"] = + $motivationDataTableSort[$indMap["Маржинальный доход"]]["fact"] - + $motivationDataTableSort[$indMap["Операционные расходы (Себестоимость)"]]["fact"]; + + $motivationDataTableSort[$indMap["Бухгалтерия и финансы"]]["fact"] = + $motivationDataTableSort[$indMap["Бухгалтерские услуги: постановка и ведение БУ и НУ"]]["fact"]; + + $motivationDataTableSort[$indMap["Юридическое сопровождение"]]["fact"] = + $motivationDataTableSort[$indMap["Юридические услуги"]]["fact"]; + + $motivationDataTableSort[$indMap["HR- услуги"]]["fact"] = + $motivationDataTableSort[$indMap["Кадровое администрирование, охрана труда"]]["fact"] + + $motivationDataTableSort[$indMap["Услуги по подбору персонала"]]["fact"]; + + $motivationDataTableSort[$indMap["IT услуги"]]["fact"] = + $motivationDataTableSort[$indMap["Администрирование ИТ инфраструктуры (подключения к базам данных, ПО, почта, интернет)"]]["fact"] + + $motivationDataTableSort[$indMap["Лицензия на ПО: ERP система"]]["fact"]; + + $motivationDataTableSort[$indMap["Общехозяйственные расходы"]]["fact"] = + $motivationDataTableSort[$indMap["Бухгалтерия и финансы"]]["fact"] + + $motivationDataTableSort[$indMap["Юридическое сопровождение"]]["fact"] + + $motivationDataTableSort[$indMap["HR- услуги"]]["fact"] + + $motivationDataTableSort[$indMap["IT услуги"]]["fact"] + + $motivationDataTableSort[$indMap["Продвижение и продажа товара через сайт"]]["fact"]; + + $motivationDataTableSort[$indMap["Чистая прибыль"]]["fact"] = + $motivationDataTableSort[$indMap["Валовая прибыль"]]["fact"] - + $motivationDataTableSort[$indMap["Общехозяйственные расходы"]]["fact"]; + + $j5 = $motivationDataTableSort[$indMap["Выручка от реализации"]]["fact"]; + if ($j5 != 0) { + $motivationDataTableSort[$indMap["Рентабельность по чистой прибыли, %"]]["fact"] = + $motivationDataTableSort[$indMap["Чистая прибыль"]]["fact"] / $j5; + } + + $j62 = $motivationDataTableSort[$indMap["Чистая прибыль"]]["fact"]; + $b64 = $motivationDataTableSort[$indMap["Минимальный порог Чистой прибыли, руб."]]["plan"]; + + $j66 = 0; + if ($j62 >= $b64) { + $formula = $j62 - $j5 * $motivationDataTableSort[$indMap["Пороговый коэффициент"]]["plan"]; + if ($formula > 0) { + $j66 = $formula; + } + } + $motivationDataTableSort[$indMap["Расчет премии"]]["fact"] = $j66; + + } }