• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Reservation/Actions/ProcessInventoryManagement.php
  • Класс: Bitrix\Crm\Reservation\Actions\ProcessInventoryManagement
  • Вызов: ProcessInventoryManagement::processInternal
public function processInternal(Crm\Item $item): Main\Result
{
	$result = new Main\Result();

	$semanticId =
		$item->hasField(Crm\Item::FIELD_NAME_STAGE_SEMANTIC_ID)
			? $item->getStageSemanticId()
			: null
	;

	$processInventoryManagementResult = null;

	if ($semanticId === Crm\PhaseSemantics::SUCCESS)
	{
		$processInventoryManagementResult = $this->ship($item);
		if ($processInventoryManagementResult->isSuccess())
		{
			$processInventoryManagementResult = $this->unReserve($item);
		}
	}
	elseif ($semanticId === Crm\PhaseSemantics::FAILURE)
	{
		$processInventoryManagementResult = $this->unReserve($item);
	}

	if ($processInventoryManagementResult && !$processInventoryManagementResult->isSuccess())
	{
		Crm\Activity\Provider\StoreDocument::addProductActivity($item->getId());
	}

	return $result;
}