• Модуль: timeman
  • Путь к файлу: ~/bitrix/modules/timeman/lib/repository/schedule/schedulerepository.php
  • Класс: BitrixTimemanRepositoryScheduleScheduleRepository
  • Вызов: ScheduleRepository::findSchedulesByIdsForEntity
protected function findSchedulesByIdsForEntity($userScheduleIds, $fieldsToSelect = [])
{
	$query = $this->getActiveSchedulesQuery();
	if (empty($fieldsToSelect))
	{
		$query->addSelect('*')
			->addSelect('DEPARTMENTS')
			->addSelect('SCHEDULE_VIOLATION_RULES')
			->addSelect('SHIFTS')
			->registerRuntimeField((new OneToMany('DEPARTMENTS', DepartmentScheduleDepartmentTable::class, 'SCHEDULE'))->configureJoinType('LEFT'))
			->whereIn('ID', $userScheduleIds)
			->where(Query::filter()->logic('or')
				->where('SHIFTS.DELETED', ShiftTable::DELETED_NO)
				->whereNull('SHIFTS.DELETED')
			);
	}
	else
	{
		$query->addSelect('ID');
		foreach ($fieldsToSelect as $fieldName)
		{
			$query->addSelect($fieldName);
		}
	}
	$query->setCacheTtl(3600 * 12);
	$query->cacheJoins(true);
	return $query
		->whereIn('ID', $userScheduleIds)
		->exec()
		->fetchCollection();
}