• Модуль: calendar
  • Путь к файлу: ~/bitrix/modules/calendar/lib/update/eventduplicatecleaner.php
  • Класс: BitrixCalendarUpdateEventDuplicateCleaner
  • Вызов: EventDuplicateCleaner::execute
public function execute(array &$result): bool
{
	if (!Loader::includeModule("calendar"))
	{
		return self::FINISH_EXECUTION;
	}

	$totalCount = 0;
	// Clear duplications of child events
	$dataToClean = $this->getDuplicatedChildEntryList();
	if (count($dataToClean))
	{
		foreach ($dataToClean as $entryToClean)
		{
			$this->cleanDuplicates(
				(int)$entryToClean['PARENT_ID'],
				(int)$entryToClean['OWNER_ID'],
				(int)$entryToClean['FIRSTID'] === (int)$entryToClean['PARENT_ID']
					? (int)$entryToClean['FIRSTID']
					: (int)$entryToClean['LASTID']
			);
			$totalCount += $entryToClean['CNT'];
			if ($totalCount >= self::MAX_TOTAL_COUUNT)
			{
				return self::CONTINUE_EXECUTION;
			}
		}

		return self::CONTINUE_EXECUTION;
	}

	if ($this->getBogusLocationEntry())
	{
		$this->clearBogusLocationEntries();
		return self::CONTINUE_EXECUTION;
	}

	if ($this->getLocationEntriesWithEmptyParent())
	{
		$this->clearLocationEntriesWithEmptyParent();
		return self::CONTINUE_EXECUTION;
	}

	return self::FINISH_EXECUTION;
}