- Модуль: calendar
- Путь к файлу: ~/bitrix/modules/calendar/lib/sync/managers/vendordataexchangemanager.php
- Класс: BitrixCalendarSyncManagersVendorDataExchangeManager
- Вызов: VendorDataExchangeManager::hasDifferentEventFields
private function hasDifferentEventFields(
SyncEntitiesSyncEvent $syncEvent,
SyncEntitiesSyncEvent $existSyncEvent
): bool
{
if (!$syncEvent->getEvent() && !$existSyncEvent->getEvent())
{
return false;
}
if ($syncEvent->getAction() === SyncDictionary::SYNC_EVENT_ACTION['delete']
&& !$existSyncEvent->getEvent()->isDeleted()
)
{
return true;
}
$comparator = new EventCompareManager($syncEvent->getEvent(), $existSyncEvent->getEvent());
$diff = $comparator->getDiff();
$significantFields = [
EventCompareManager::COMPARE_FIELDS['name'] => true,
EventCompareManager::COMPARE_FIELDS['start'] => true,
EventCompareManager::COMPARE_FIELDS['end'] => true,
EventCompareManager::COMPARE_FIELDS['recurringRule'] => true,
EventCompareManager::COMPARE_FIELDS['description'] => true,
'excludedDates' => true,
];
$significantDiff = array_intersect_key($diff, $significantFields);
return !empty($significantDiff);
}