- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/controller/action/entity/saveorderaction.php
- Класс: BitrixSaleControllerActionEntitySaveOrderAction
- Вызов: SaveOrderAction::setProperties
private function setProperties(SaleOrder $order, array $properties): SaleResult
{
$result = new SaleResult();
$propertyCollection = $order->getPropertyCollection();
$setValuesResult = $propertyCollection->setValuesFromPost(['PROPERTIES' => $properties], []);
if (!$setValuesResult->isSuccess())
{
foreach ($setValuesResult->getErrors() as $error)
{
$result->addError(new MainError($error->getMessage()));
}
}
/** @var SalePropertyValue $propValue */
foreach ($propertyCollection as $propValue)
{
if ($propValue->isUtil())
{
continue;
}
$verifyResult = $propValue->verify();
if (!$verifyResult->isSuccess())
{
foreach ($verifyResult->getErrors() as $error)
{
$result->addError(
new MainError($error->getMessage(), 0, ['id' => $propValue->getPropertyId()])
);
}
}
$checkRequiredValueResult = $propValue->checkRequiredValue($propValue->getPropertyId(), $propValue->getValue());
if (!$checkRequiredValueResult->isSuccess())
{
foreach ($checkRequiredValueResult->getErrors() as $error)
{
$result->addError(
new MainError($error->getMessage(), 0, ['id' => $propValue->getPropertyId()])
);
}
}
}
return $result;
}