- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/update/correcteventingoogle.php
- Класс: BitrixCalendarUpdateCorrectEventInGoogle
- Вызов: CorrectEventInGoogle::getRecurrentEvents
public function getRecurrentEvents(): array
{
global $DB;
$events = [];
$strSql = "SELECT DISTINCT "
. "p.*"
. ", " . $DB->DateToCharFunction('p.DATE_FROM') . " as DATE_FROM"
. ", " . $DB->DateToCharFunction('p.DATE_TO') . " as DATE_TO"
. ", " . $DB->DateToCharFunction('p.DATE_CREATE') . " as DATE_CREATE"
. ", " . $DB->DateToCharFunction('p.TIMESTAMP_X') . " as TIMESTAMP_X"
. ", s.CAL_DAV_CON as CONNECTION_ID"
. ", s.GAPI_CALENDAR_ID as GAPI_CALENDAR_ID"
. ", GROUP_CONCAT(". $DB->DateToCharFunction('i.DATE_FROM')." SEPARATOR ';') as EXDATE"
. " FROM b_calendar_event p"
. " INNER JOIN b_calendar_event i"
. " ON i.RECURRENCE_ID = p.PARENT_ID"
. " AND p.OWNER_ID = i.OWNER_ID"
. " INNER JOIN b_calendar_section s"
. " ON s.ID = p.SECTION_ID"
. " WHERE"
. " p.RRULE IS NOT NULL"
. " AND p.DATE_TO_TS_UTC >= " . $this->getSyncTimestamp()
. " AND p.G_EVENT_ID IS NOT NULL"
. " AND p.SYNC_STATUS != '" . Dictionary::SYNC_STATUS['exdated'] . "'"
. " AND p.SYNC_STATUS != '" . Dictionary::SYNC_STATUS['delete'] . "'"
. " AND p.SYNC_STATUS != '" . Dictionary::SYNC_STATUS['deleted'] . "'"
. " AND i.MEETING_STATUS = 'N'"
. " AND s.EXTERNAL_TYPE = 'local'"
. " AND s.CAL_DAV_CON IS NOT NULL"
. " AND s.GAPI_CALENDAR_ID IS NOT NULL"
. " GROUP BY p.ID"
. " LIMIT 10"
. ";"
;
$eventsDb = $DB->Query($strSql);
while ($event = $eventsDb->Fetch())
{
if (isset($event['REMIND']) && $event['REMIND'] !== "")
{
$event['REMIND'] = unserialize($event['REMIND'], ['allowed_classes' => false]);
}
$event['RRULE'] = CCalendarEvent::ParseRRULE($event['RRULE']);
$events[] = $event;
}
return $events;
}