• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/controller/propertyrelation.php
  • Класс: BitrixSaleControllerPropertyRelation
  • Вызов: PropertyRelation::addAction
public function addAction(array $fields)
{
	$r = new Result();

	$res = $this->existsByFilter([
		'PROPERTY_ID'=>$fields['PROPERTY_ID'],
		'ENTITY_ID'=>$fields['ENTITY_ID'],
		'ENTITY_TYPE'=>$fields['ENTITY_TYPE']
	]);

	if($res->isSuccess() == false)
	{
		$r = $this->existsProperty($fields['PROPERTY_ID']);
		if($r->isSuccess())
		{
			$r = $this->getEntityTable()
				->add($fields);
		}
	}
	else
	{
		$r->addError(new Error('Duplicate entry for key [propertyId, entityId, entityType]', 201650000001));
	}

	if(!$r->isSuccess())
	{
		$this->addErrors($r->getErrors());
		return null;
	}
	else
	{
		return [
			'PROPERTY_RELATION'=>
				$this->getEntityTable()::getList([
					'filter'=>[
						'PROPERTY_ID'=>$fields['PROPERTY_ID'],
						'ENTITY_ID'=>$fields['ENTITY_ID'],
						'ENTITY_TYPE'=>$fields['ENTITY_TYPE']
					]
				])->fetchAll()[0]
		];
	}
}