- Модуль: 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;
}