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