• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/userfield/resourcebooking.php
  • Класс: BitrixCalendarUserFieldResourceBooking
  • Вызов: ResourceBooking::handleResourceList
static function handleResourceList($resources)
{
	$result = [];
	foreach($resources as $resource)
	{
		if (is_array($resource))
		{
			if (($resource['id'] ?? null) && (($resource['deleted'] ?? null) || ($resource['title'] ?? null) == ''))
			{
				$sectionList = InternalsSectionTable::getList(
					array(
						"filter" => array("ID" => $resource['id'], "CAL_TYPE" => $resource['type'] ?? null),
						"select" => array("ID", "CAL_TYPE", "NAME")
					)
				);
				if ($sectionList->fetch())
				{
					InternalsSectionTable::delete(array('ID' => $resource['id']));
				}
			}
			else if ($resource['id'] ?? null)
			{
				$sectionList = InternalsSectionTable::getList(
					array(
						"filter" => array("ID" => $resource['id'], "CAL_TYPE" => $resource['type'] ?? null),
						"select" => array("ID", "CAL_TYPE", "NAME")
					)
				);
				if ($section = $sectionList->fetch())
				{
					if ($section['NAME'] != ($resource['title'] ?? null))
					{
						CCalendarSect::edit(array(
							'arFields' => array(
								'ID' => $resource['id'],
								'CAL_TYPE' => $resource['type'] ?? null,
								'NAME' => $resource['title'] ?? null,
								'ACCESS' => []
							)
						));
					}
				}
				$result[] = $resource;
			}
			elseif (!($resource['id'] ?? null) && ($resource['title'] ?? null) !== '')
			{
				$resource['id'] = CCalendarSect::edit(array(
					'arFields' => array(
						'CAL_TYPE' => $resource['type'] ?? null,
						'NAME' => $resource['title'] ?? null,
						'ACCESS' => []
					)
				));
				$result[] = $resource;
			}
		}
	}
	return $result;
}