• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar.php
  • Класс: CCalendar
  • Вызов: CCalendar::GetCrmSection
static function GetCrmSection($userId, $autoCreate = false)
{
	if (isset(self::$crmSections[$userId]))
	{
		return self::$crmSections[$userId];
	}

	$result = false;
	if ($userId > 0)
	{
		$set = UserSettings::get($userId);

		$result = $set['crmSection'];
		$section = false;

		if ($result)
		{
			$section = CCalendarSect::GetList([
				'arFilter' => [
					'ID' => $result,
					'CAL_TYPE' => 'user',
					'OWNER_ID' => $userId,
				],
				'checkPermissions' => false,
				'getPermissions' => false,
			]);
			if($section && is_array($section) && is_array($section[0]))
			{
				$section = $section[0];
			}
		}

		if($result && !$section)
		{
			$result = false;
		}

		if (!$result)
		{
			$res = CCalendarSect::GetList([
				'arFilter' => [
					'CAL_TYPE' => 'user',
					'OWNER_ID' => $userId,
				],
				'checkPermissions' => false,
				'getPermissions' => false,
			]);
			if (!empty($res) && $res[0]['ID'])
			{
				$result = $res[0]['ID'];
			}

			if (!$result && $autoCreate)
			{
				$defCalendar = CCalendarSect::CreateDefault(array(
					'type' => 'user',
					'ownerId' => $userId,
				));
				if ($defCalendar && $defCalendar['ID'] > 0)
				{
					$result = $defCalendar['ID'];
				}
			}

			if($result)
			{
				$set['crmSection'] = $result;
				UserSettings::set($set, $userId);
			}
		}
	}

	self::$crmSections[$userId] = $result;
	return $result;
}