• Модуль: socialnetwork
  • Путь к файлу: ~/bitrix/modules/socialnetwork/lib/integration/intranet/absence/user.php
  • Класс: BitrixSocialnetworkIntegrationIntranetAbsenceUser
  • Вызов: User::getVacationListOfType
static function getVacationListOfType(array $params = []): array
{
	$result = [];

	$absenceIblockId = (int)($params['absenceIblockId'] ?? 0);
	$absenceTypeId = (int)($params['absenceTypeId'] ?? 0);
	$fromTimestamp = ($params['fromTimestamp'] ?? false);

	if (
		$absenceIblockId <= 0
		|| $absenceTypeId <= 0
		|| !Loader::includeModule('iblock')
	)
	{
		return $result;
	}

	$filter = [
		'IBLOCK_ID' => $absenceIblockId,
		'PROPERTY_ABSENCE_TYPE' => $absenceTypeId,
		'ACTIVE' => 'Y',
	];

	if ($fromTimestamp)
	{
		$filter['>=DATE_ACTIVE_FROM'] = Date(BitrixMainTypeDate::convertFormatToPhp(FORMAT_DATETIME), $fromTimestamp);
	}

	$res = CIBlockElement::getList(
		[],
		$filter,
		false,
		false,
		[ 'ID', 'DATE_ACTIVE_FROM', 'DATE_ACTIVE_TO', 'PROPERTY_ABSENCE_TYPE', 'PROPERTY_USER' ]
	);

	while ($absence = $res->fetch())
	{
		$result[] = [
			'USER_ID' => $absence['PROPERTY_USER_VALUE'],
			'DATE_FROM' =>  $absence['DATE_ACTIVE_FROM'],
			'DATE_TO' =>  $absence['DATE_ACTIVE_TO'],
			'ABSENCE_TYPE' =>  $absence['PROPERTY_ABSENCE_TYPE_ENUM_ID'],
		];
	}

	return $result;
}