• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/connectionmanager.php
  • Класс: BitrixCalendarSyncManagersConnectionManager
  • Вызов: ConnectionManager::disableConnection
public function disableConnection(Connection $connection)
{
	global $DB;
	$id = $connection->getId();
	$DB->Query(
		"UPDATE `b_dav_connections` as con SET con.IS_DELETED ='Y' WHERE con.ID = $id;",
		true
	);
	$DB->Query(
		"DELETE FROM `b_calendar_section_connection` WHERE CONNECTION_ID = $id;",
		true
	);
	$DB->Query(
		"DELETE FROM b_calendar_event_connection WHERE CONNECTION_ID = $id;",
		true
	);

	$DB->Query("DELETE sect FROM b_calendar_section sect
		LEFT JOIN b_calendar_section_connection link ON sect.ID = link.SECTION_ID 
		WHERE link.ID IS NULL 
		  AND sect.EXTERNAL_TYPE = '{$connection->getVendor()->getCode()}'
		  AND sect.OWNER_ID = '{$connection->getOwner()->getId()}'
		  ;",
		true
	);
	$DB->Query("DELETE event FROM `b_calendar_event` event 
		LEFT JOIN b_calendar_section sec ON event.SECTION_ID = sec.ID 
		WHERE sec.ID IS NULL
			AND event.OWNER_ID = '{$connection->getOwner()->getId()}'
			;",
		true
	);
	$DB->Query("DELETE push FROM b_calendar_push push
		LEFT JOIN b_calendar_section_connection as sc on push.ENTITY_ID=sc.ID and push.ENTITY_TYPE='SECTION_CONNECTION'
		WHERE sc.ID IS NULL;",
		true
	);
}