22 $cacheTTL = 3600 * 24 * 30;
23 $cacheDir =
'/sonet/user_absence';
25 $cache = new \CPHPCache();
26 if ($cache->initCache($cacheTTL,
'intranet_absence', $cacheDir))
32 $cache->startDataCache();
36 ModuleManager::isModuleInstalled(
'intranet')
37 && Loader::includeModule(
'iblock')
38 && ($absenceIblockId = (
int)Option::get(
'intranet',
'iblock_absence'))
43 $res = \CIBlockProperty::getList(
46 'IBLOCK_ID' => $absenceIblockId,
48 'CODE' =>
'ABSENCE_TYPE',
53 ($property =
$res->fetch())
54 && ($absenceTypePropertyId = (
int)$property[
'ID'])
57 $vacationXMLIdList = [];
58 $res = \CIBlockPropertyEnum::getList(
61 'PROPERTY_ID' => $absenceTypePropertyId,
62 'XML_ID' => [
'VACATION',
'LEAVEMATERINITY' ],
66 while ($enum =
$res->fetch())
68 $vacationXMLIdList[$enum[
'XML_ID']] = (int)$enum[
'ID'];
71 if (isset($vacationXMLIdList[
'LEAVEMATERINITY']))
74 'absenceIblockId' => $absenceIblockId,
75 'absenceTypeId' => $vacationXMLIdList[
'LEAVEMATERINITY'],
79 if (isset($vacationXMLIdList[
'VACATION']))
82 'absenceIblockId' => $absenceIblockId,
83 'absenceTypeId' => $vacationXMLIdList[
'VACATION'],
84 'fromTimestamp' => time() - (3600 * 24 * 120),