• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/rest/entity/order.php
  • Класс: BitrixSaleRestEntityOrder
  • Вызов: Order::checkRequiredFieldsModify
public function checkRequiredFieldsModify($fields)
{
	$r = new Result();

	$payment = new Payment();
	$shipment = new Shipment();
	$basketItem = new BasketItem();
	$propertyValue = new PropertyValue();
	$tradeBinding = new TradeBinding();

	$listFieldsInfoAdd = $this->getListFieldInfo($this->getFields(), ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly]]]);
	$listFieldsInfoUpdate = $this->getListFieldInfo($this->getFields(), ['filter'=>['ignoredAttributes'=>[Attributes::Hidden, Attributes::ReadOnly, Attributes::Immutable], 'skipFields'=>['ID']]]);

	$required = $this->checkRequiredFields($fields['ORDER'],
		$this->isNewItem($fields['ORDER'])? $listFieldsInfoAdd:$listFieldsInfoUpdate
	);
	if($required->isSuccess() == false)
	{
		$r->addError(new Error(implode(', ', $required->getErrorMessages()).'.'));
	}

	$required = $propertyValue->checkRequiredFieldsModify($fields);
	if($required->isSuccess() == false)
	{
		$r->addError(new Error(implode(', ', $required->getErrorMessages())));
	}

	if(isset($fields['ORDER']['BASKET_ITEMS']))
	{
		$required = $basketItem->checkRequiredFieldsModify($fields);
		if($required->isSuccess() == false)
		{
			$r->addError(new Error(implode(', ', $required->getErrorMessages())));
		}
	}

	if(isset($fields['ORDER']['PAYMENTS']))
	{
		$required = $payment->checkRequiredFieldsModify($fields);
		if($required->isSuccess() == false)
		{
			$r->addError(new Error(implode(', ', $required->getErrorMessages())));
		}
	}

	if(isset($fields['ORDER']['SHIPMENTS']))
	{
		$required = $shipment->checkRequiredFieldsModify($fields);
		if($required->isSuccess() == false)
		{
			$r->addError(new Error(implode(', ', $required->getErrorMessages())));
		}
	}

	if(isset($fields['ORDER']['TRADE_BINDINGS']))
	{
		$required = $tradeBinding->checkRequiredFieldsModify($fields);
		if($required->isSuccess() == false)
		{
			$r->addError(new Error(implode(', ', $required->getErrorMessages())));
		}
	}

	return $r;
}