• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/shipment.php
  • Класс: BitrixSaleShipment
  • Вызов: Shipment::setStatus
protected function setStatus($status)
{
	global $USER;

	$result = new Result();

	$registry = Registry::getInstance(static::getRegistryType());
	/** @var DeliveryStatus $deliveryStatus */
	$deliveryStatusClassName = $registry->getDeliveryStatusClassName();

	if (is_object($USER)  && $USER->isAuthorized())
	{
		$statusesList = $deliveryStatusClassName::getAllowedUserStatuses($USER->getID(), $this->getField('STATUS_ID'));
	}
	else
	{
		$statusesList = $deliveryStatusClassName::getAllStatuses();
	}

	if($this->getField('STATUS_ID') != $status && array_key_exists($status, $statusesList))
	{
		/** @var Result $r */
		$r = $this->setField('STATUS_ID', $status);
		if (!$r->isSuccess())
		{
			$result->addErrors($r->getErrors());
			return $result;
		}
	}

	return $result;
}