$APPLICATION->IncludeComponent("bitrix:main.user.link", '', array("AJAX_ONLY" => "Y", "PATH_TO_SONET_USER_PROFILE" => $arParams["~PATH_TO_USER_PROFILE"], "PATH_TO_SONET_MESSAGES_CHAT" => $arParams["~PATH_TO_MESSAGES_CHAT"], "DATE_TIME_FORMAT" => $arParams["~DATE_TIME_FORMAT"], "SHOW_YEAR" => $arParams["SHOW_YEAR"], "NAME_TEMPLATE" => $arParams["NAME_TEMPLATE"], "SHOW_LOGIN" => $arParams["SHOW_LOGIN"], "PATH_TO_CONPANY_DEPARTMENT" => $arParams["~PATH_TO_CONPANY_DEPARTMENT"], "PATH_TO_VIDEO_CALL" => $arParams["~PATH_TO_VIDEO_CALL"]), false, array("HIDE_ICONS" => "Y")); define('TASKS_MUL_INCLUDED', 1); } ?> <div class="task-report"> <div class="tasks-whole-company-efficiency"><?php echo GetMessage("TASKS_REPORT_EMPLOYEES_COUNT"); ?> : <?php echo CTaskReport::GetEmployeesCount(); ?> . <?php echo GetMessage("TASKS_REPORT_USE_TASKS"); ?> : <?php echo CTaskReport::GetEmployeesCount() > 0 ? round($arResult["COMPANY_STATS"]["RESPONSIBLES"] / CTaskReport::GetEmployeesCount() * 100) : 0; ?> % (<?php echo $arResult["COMPANY_STATS"]["RESPONSIBLES"]; ?> ). <?php echo GetMessage("TASKS_REPORT_WHOLE_COMPANY_EFFICIENCY"); ?> : <?php echo $arResult["COMPANY_STATS"]["MARKED_IN_REPORT"] > 0 ? round($arResult["COMPANY_STATS"]["POSITIVE"] / $arResult["COMPANY_STATS"]["MARKED_IN_REPORT"] * 100) : 0; ?> %</div> <div class="task-report-left-corner"></div> <div class="task-report-right-corner"></div> <table class="task-report-table" cellspacing="0" id="task-report-table">
$rsDepartmentsReports = CTaskReport::GetDepartementStats($arDepartmentsFilter); while ($departmentStats = $rsDepartmentsReports->GetNext()) { $arResult["DEPARTMENTS"][$departmentStats["DEPARTMENT_ID"]]["STATS"] = $departmentStats; } // whole company $arCompanyFilter = $arFilter; if (isset($arCompanyFilter["RESPONSIBLE_ID"])) { unset($arCompanyFilter["RESPONSIBLE_ID"]); } if (isset($arCompanyFilter["DEPARTMENT_ID"])) { unset($arCompanyFilter["DEPARTMENT_ID"]); } if (isset($arCompanyFilter["GROUP_ID"])) { unset($arCompanyFilter["GROUP_ID"]); } $rsCompanyStats = CTaskReport::GetCompanyStats($arCompanyFilter); if ($companyStats = $rsCompanyStats->GetNext()) { $arResult["COMPANY_STATS"] = $companyStats; } if ($arParams["SET_TITLE"] == "Y") { $APPLICATION->SetTitle(GetMessage("TASKS_EFFICIENCY_REPORT")); } if ($arParams["SET_NAVCHAIN"] != "N") { if ($taskType == "user") { $APPLICATION->AddChainItem(CUser::FormatName($arParams["NAME_TEMPLATE"], $arResult["USER"]), CComponentEngine::MakePathFromTemplate($arParams["~PATH_TO_USER_PROFILE"], array("user_id" => $arParams["USER_ID"]))); $APPLICATION->AddChainItem(GetMessage("TASKS_EFFICIENCY_REPORT")); } else { $APPLICATION->AddChainItem($arResult["GROUP"]["NAME"], CComponentEngine::MakePathFromTemplate($arParams["~PATH_TO_GROUP"], array("group_id" => $arParams["GROUP_ID"]))); $APPLICATION->AddChainItem(GetMessage("TASKS_EFFICIENCY_REPORT")); } }
function GetCompanyStats($arFilter = array()) { global $DB; $arSqlSearch = CTasks::GetFilter($arFilter); if (!array_key_exists('PERIOD', $arFilter)) { $arFilter['PERIOD'] = null; } $strSql = "\n\t\t\tSELECT\n\t\t\t\tCOUNT(DISTINCT T.RESPONSIBLE_ID) AS RESPONSIBLES,\n\t\t\t\tSUM(" . CTaskReport::GetPeriodCondition($arFilter["PERIOD"], "CLOSED_DATE", "T.CLOSED_DATE IS NOT NULL AND T.ADD_IN_REPORT = 'Y' AND (T.MARK = 'P' OR T.MARK = 'N')") . ") AS MARKED_IN_REPORT,\n\t\t\t\tSUM(" . CTaskReport::GetPeriodCondition($arFilter["PERIOD"], "CLOSED_DATE", "T.CLOSED_DATE IS NOT NULL AND T.ADD_IN_REPORT = 'Y' AND T.MARK = 'P'") . ") AS POSITIVE\n\t\t\tFROM\n\t\t\t\tb_tasks T\n\t\t\tINNER JOIN\n\t\t\t\tb_user U ON U.ID = T.RESPONSIBLE_ID\n\t\t\tWHERE\n\t\t\t\tT.ADD_IN_REPORT = 'Y'\n\t\t\tAND\n\t\t\t\tU.ACTIVE = 'Y'\n\t\t\t"; if (count($arSqlSearch) !== 0) { $strSql .= ' AND ' . implode(' AND ', $arSqlSearch); } $res = $DB->Query($strSql, false, "File: " . __FILE__ . "<br>Line: " . __LINE__); return $res; }