• Модуль: voximplant
  • Путь к файлу: ~/bitrix/modules/voximplant/lib/integration/report/eventhandler.php
  • Класс: BitrixVoximplantIntegrationReportEventHandler
  • Вызов: EventHandler::onAnalyticPageCollect
static function onAnalyticPageCollect(): array
{
	$boards = [];

	$callDynamics = new AnalyticBoard(CallDynamicsBoard::BOARD_KEY);
	$callDynamics->setBatchKey(self::BATCH_GENERAL_ANALYSIS);
	$callDynamics->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$callDynamics->setTitle(Loc::getMessage('TELEPHONY_REPORT_CALL_DYNAMICS_TITLE'));
	$callDynamics->setFilter(new CallDynamicsFilter(CallDynamicsBoard::BOARD_KEY));
	$callDynamics->addFeedbackButton();
	$boards[] = $callDynamics;

	$periodCompare = new AnalyticBoard(PeriodCompareBoard::BOARD_KEY);
	$periodCompare->setBatchKey(self::BATCH_GENERAL_ANALYSIS);
	$periodCompare->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$periodCompare->setTitle(Loc::getMessage('TELEPHONY_REPORT_PERIOD_COMPARE_TITLE'));
	$periodCompare->setFilter(new PeriodCompareFilter(PeriodCompareBoard::BOARD_KEY));
	$periodCompare->addFeedbackButton();
	$boards[] = $periodCompare;

	$lostCalls = new AnalyticBoard(LostCallsBoard::BOARD_KEY);
	$lostCalls->setBatchKey(self::BATCH_GENERAL_ANALYSIS);
	$lostCalls->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$lostCalls->setTitle(Loc::getMessage('TELEPHONY_REPORT_LOST_CALLS_TITLE_2'));
	$lostCalls->setFilter(new LostCallsFilter(LostCallsBoard::BOARD_KEY));
	$lostCalls->addFeedbackButton();
	$boards[] = $lostCalls;

	$callActivity = new AnalyticBoard(CallActivityBoard::BOARD_KEY);
	$callActivity->setBatchKey(self::BATCH_GENERAL_ANALYSIS);
	$callActivity->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$callActivity->setTitle(Loc::getMessage('TELEPHONY_REPORT_LOST_CALL_ACTIVITY'));
	$callActivity->setFilter(new CallActivityFilter(CallActivityBoard::BOARD_KEY));
	$callActivity->addFeedbackButton();
	$boards[] = $callActivity;

	$employeesWorkload = new AnalyticBoard(EmployeesWorkloadBoard::BOARD_KEY);
	$employeesWorkload->setBatchKey(self::BATCH_MANAGERS_EFFICIENCY);
	$employeesWorkload->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$employeesWorkload->setTitle(Loc::getMessage('TELEPHONY_REPORT_EMPLOYEES_WORKLOAD_TITLE'));
	$employeesWorkload->setFilter(new EmployeesWorkloadFilter(EmployeesWorkloadBoard::BOARD_KEY));
	$employeesWorkload->addFeedbackButton();
	$boards[] = $employeesWorkload;

	$callDuration = new AnalyticBoard(CallDurationBoard::BOARD_KEY);
	$callDuration->setBatchKey(self::BATCH_MANAGERS_EFFICIENCY);
	$callDuration->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$callDuration->setTitle(Loc::getMessage('TELEPHONY_REPORT_CALL_DURATION_TITLE'));
	$callDuration->setFilter(new CallDurationFilter(EmployeesWorkloadBoard::BOARD_KEY));
	$callDuration->addFeedbackButton();
	$boards[] = $callDuration;

	$missedReaction = new AnalyticBoard(MissedReactionBoard::BOARD_KEY);
	$missedReaction->setBatchKey(self::BATCH_MANAGERS_EFFICIENCY);
	$missedReaction->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$missedReaction->setTitle(Loc::getMessage('TELEPHONY_REPORT_MISSED_REACTION_TITLE'));
	$missedReaction->setFilter(new MissedReactionFilter(MissedReactionBoard::BOARD_KEY));
	$missedReaction->addFeedbackButton();
	$boards[] = $missedReaction;

	$averageCallTime = new AnalyticBoard(AverageCallTimeBoard::BOARD_KEY);
	$averageCallTime->setBatchKey(self::BATCH_MANAGERS_EFFICIENCY);
	$averageCallTime->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);
	$averageCallTime->setTitle(Loc::getMessage('TELEPHONY_REPORT_AVERAGE_CALL_TIME_TITLE'));
	$averageCallTime->setFilter(new AverageCallTimeFilter(AverageCallTimeBoard::BOARD_KEY));
	$averageCallTime->addFeedbackButton();
	$boards[] = $averageCallTime;

	$restApps = AppPlacementManager::getHandlerInfos(AppPlacement::ANALYTICS_MENU);
	foreach ($restApps as $categoryName => $apps)
	{
		foreach ($apps as $appInfo)
		{
			$boardKey = str_replace(['#APP_ID#', '#HANDLER_ID#'],[$appInfo['APP_ID'], $appInfo['ID']], static::REST_BOARD_KEY_TEMPLATE) ;
			$batchKey = static::REST_BOARD_BATCH_KEY_TEMPLATE . $categoryName;
			$board = new RestAppBoard();
			$board->setTitle($appInfo['TITLE']);
			$board->setBoardKey($boardKey);
			$board->setBatchKey($batchKey);
			$board->setGroup(self::BATCH_GROUP_TELEPHONY_GENERAL);

			$board->setPlacement(AppPlacement::ANALYTICS_MENU);
			$board->setRestAppId($appInfo['APP_ID']);
			$board->setPlacementHandlerId($appInfo['ID']);
			$boards[] = $board;
		}
	}

	return $boards;
}