• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/access/rule/checklistsaverule.php
  • Класс: BitrixTasksAccessRuleChecklistSaveRule
  • Вызов: ChecklistSaveRule::getDelta
private function getDelta(array $old, array $new)
{
	$delta = [];

	$new = $this->prepareParams($new);

	$old = array_column($old, null, 'ID');
	$new = array_column($new, null, 'ID');

	if (array_key_exists('', $new))
	{
		$delta[self::ADDED] = true;
		unset($new['']);
	}

	if (empty($old))
	{
		$delta[self::ADDED] = true;
	}

	foreach ($old as $id => $row)
	{
		if (
			!array_key_exists($id, $new)
			|| $this->isUpdated($row, $new[$id])
		)
		{
			$delta[self::CHANGED][] = $row;
		}

		if (
			array_key_exists($id, $new)
			&& $this->isStatusChanged($row, $new[$id])
		)
		{
			$delta[self::STATUS_CHANGED][] = $row;
		}
	}

	return $delta;
}