- Модуль: 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]
];
}
}