• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/service/worktime/notification/worktimenotificationservice.php
  • Класс: BitrixTimemanServiceWorktimeNotificationWorktimeNotificationService
  • Вызов: WorktimeNotificationService::getUserIdsToNotify
private function getUserIdsToNotify(WorktimeViolation $violation, Schedule $schedule, $fromUserId = null)
{
	$userIds = [];
	if ($fromUserId === null)
	{
		$fromUserId = $violation->userId;
	}
	$violationRules = $violation->violationRules;
	switch ($violation->type)
	{
		case WorktimeViolation::TYPE_LATE_START:
		case WorktimeViolation::TYPE_EARLY_START:
		case WorktimeViolation::TYPE_EARLY_ENDING:
		case WorktimeViolation::TYPE_LATE_ENDING:
			$userIds = $violationRules->getNotifyUserIds(ViolationRulesTable::USERS_TO_NOTIFY_FIXED_START_END, $fromUserId);
			break;
		case WorktimeViolation::TYPE_MIN_DAY_DURATION:
			$userIds = $violationRules->getNotifyUserIds(ViolationRulesTable::USERS_TO_NOTIFY_FIXED_RECORD_TIME_PER_DAY, $fromUserId);
			break;
		case WorktimeViolation::TYPE_EDITED_BREAK_LENGTH:
		case WorktimeViolation::TYPE_EDITED_START:
		case WorktimeViolation::TYPE_EDITED_ENDING:
			$userIds = $violationRules->getNotifyUserIds(ViolationRulesTable::USERS_TO_NOTIFY_FIXED_EDIT_WORKTIME, $fromUserId);
			break;
		case WorktimeViolation::TYPE_TIME_LACK_FOR_PERIOD:
			$userIds = $violationRules->getNotifyUserIds(ViolationRulesTable::USERS_TO_NOTIFY_FIXED_TIME_FOR_PERIOD, $fromUserId);
			break;
		case WorktimeViolation::TYPE_SHIFT_LATE_START:
			$userIds = $violationRules->getNotifyUserIds(ViolationRulesTable::USERS_TO_NOTIFY_SHIFT_DELAY, $fromUserId);
			break;
		case WorktimeViolation::TYPE_MISSED_SHIFT:
			$userIds = $violationRules->getNotifyUserIds(ViolationRulesTable::USERS_TO_NOTIFY_SHIFT_MISSED_START, $fromUserId);
			break;
	}

	return $userIds;
}