- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/rest/entity/basketitem.php
- Класс: BitrixSaleRestEntityBasketItem
- Вызов: BasketItem::checkRequiredFieldsModify
public function checkRequiredFieldsModify($fields)
{
$r = new Result();
$basketProperties = new BasketProperties();
$listFieldsInfoAdd = $this->getListFieldInfo($this->getFields(), ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly], 'ignoredFields'=>['ORDER_ID']]]);
$listFieldsInfoUpdate = $this->getListFieldInfo($this->getFields(), ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly, Attributes::Immutable]]]);
foreach ($fields['ORDER']['BASKET_ITEMS'] as $k=>$item)
{
$required = $this->checkRequiredFields($item,
$this->isNewItem($item)? $listFieldsInfoAdd:$listFieldsInfoUpdate
);
if(!$required->isSuccess())
{
$r->addError(new Error('[basketItems]['.$k.'] - '.implode(', ', $required->getErrorMessages()).'.'));
}
if(isset($item['PROPERTIES']))
{
$requiredProperties = $basketProperties->checkRequiredFieldsModify(['BASKET_ITEM'=>['PROPERTIES'=>$item['PROPERTIES']]]);
if(!$requiredProperties->isSuccess())
{
$requiredPropertiesFields = [];
foreach ($requiredProperties->getErrorMessages() as $errorMessage)
{
$requiredPropertiesFields[] = '[basketItems]['.$k.']'.$errorMessage;
}
$r->addError(new Error(implode( ' ', $requiredPropertiesFields)));
}
}
}
return $r;
}