• Модуль: report
  • Путь к файлу: ~/bitrix/modules/report/lib/visualconstructor/internal/model.php
  • Класс: BitrixReportVisualConstructorInternalModel
  • Вызов: Model::__call
public function __call($name , array $arguments)
{
	$isDeleteReferenceCall = preg_match_all('/^delete(w+)/', $name, $deleteCallNameParts);
	if ($isDeleteReferenceCall)
	{
		$referenceName = $deleteCallNameParts[1][0];
		$referenceName = mb_strtolower($referenceName);
		$referenceMapAttributes = $this::getMapReferenceAttributes();
		if (!empty($referenceMapAttributes[$referenceName]))
		{
			/** @var static[] $entities */
			$entities = !empty($arguments[0]) ? $arguments[0] : array();
			if (!is_array($entities))
			{
				$entities = array(
					$entities
				);
			}

			foreach ($entities as $entity)
			{
				$this->deletedEntities[$referenceName][$entity->getId()] = $entity;
				unset($this->{$referenceName}[$entity->getId()]);
			}
		}
	}

	$isAddReferenceCall = preg_match_all('/^add(w+)/', $name, $addCallNameParts);
	if ($isAddReferenceCall)
	{
		$referenceName = $addCallNameParts[1][0];
		$referenceName = mb_strtolower($referenceName);
		$referenceMapAttributes = $this::getMapReferenceAttributes();
		if (!empty($referenceMapAttributes[$referenceName]))
		{
			/** @var static[] $entities */
			$entities = !empty($arguments[0]) ? $arguments[0] : array();
			if (!is_array($entities))
			{
				$entities = array(
					$entities
				);
			}

			foreach ($entities as $entity)
			{
				$this->{$referenceName}[] = $entity;
			}
		}
	}

}