• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/classes/general/calendar_event.php
  • Класс: CCalendarEvent
  • Вызов: CCalendarEvent::getLocalBatchEvent
static function getLocalBatchEvent(int $userId, int $sectionId, int $syncTimestamp, int $count = 50): array
{
	global $DB;
	$events = [];

	$queryString = "SELECT e.*"
			. ", " . $DB->DateToCharFunction('e.DATE_FROM') . " as DATE_FROM"
			. ", " . $DB->DateToCharFunction('e.DATE_TO') . " as DATE_TO"
			. ", " . $DB->DateToCharFunction('e.DATE_CREATE') . " as DATE_CREATE"
			. ", " . $DB->DateToCharFunction('e.TIMESTAMP_X') . " as TIMESTAMP_X"
		. " FROM b_calendar_event e"
		. " INNER JOIN b_calendar_section s"
			. " ON s.ID = e.SECTION_ID"
		. " WHERE"
			. " e.CAL_TYPE = 'user'"
			. " AND e.OWNER_ID = " . $userId
			. " AND e.DELETED <> 'Y'"
			. " AND e.DATE_TO_TS_UTC >= " . $syncTimestamp
			. " AND e.SECTION_ID = " . $sectionId
			. " AND e.SYNC_STATUS IS NULL"
			. " AND (e.RECURRENCE_ID IS NULL OR e.RECURRENCE_ID = '')"
			. " AND (e.RRULE IS NULL OR e.RRULE = '')"
			. " AND (e.MEETING_STATUS != 'N'"
				. " OR e.MEETING_STATUS IS NULL)"
			. " AND s.EXTERNAL_TYPE = 'local'"
			. " AND s.GAPI_CALENDAR_ID IS NOT NULL"
		. " ORDER BY ID ASC"
		. " LIMIT " . $count
		. ";"
	;

	$eventsDb = $DB->Query($queryString);
	while ($event = $eventsDb->Fetch())
	{
		if (isset($event['REMIND']) && $event['REMIND'] !== "")
		{
			$event['REMIND'] = unserialize($event['REMIND'], ['allowed_classes' => false]);
		}
		$events[] = $event;
	}

	return $events;
}