• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/catalog/provider.php
  • Класс: BitrixSaleInternalsCatalogProvider
  • Вызов: Provider::save
static function save(SaleOrder $order, array $context = array())
{
	$result = new SaleResult();

	$context = self::prepareContext($order, $context);

	$r = self::checkContext($context);
	if (!$r->isSuccess())
	{
		$result->addErrors($r->getErrors());
		return $result;
	}

	$pool = PoolQuantity::getInstance($order->getInternalId());

	$rulesMap = SaleInternalsShipmentRules::createOrderRuleMap($order, $pool);

	if (empty($rulesMap))
	{
		return $result;
	}

	$r = SaleInternalsShipmentRules::saveRules($rulesMap, $context);
	if (!$r->isSuccess())
	{
		$result->addErrors($r->getErrors());
	}

	if ($r->hasWarnings())
	{
		$result->addWarnings($r->getWarnings());
	}

	$pool->reset(PoolQuantity::POOL_QUANTITY_TYPE);
	$pool->reset(PoolQuantity::POOL_RESERVE_TYPE);

	return $result;
}