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

	$factory = Crm\Service\Container::getInstance()->getFactory($item->getEntityTypeId());
	if (!$factory)
	{
		return $result;
	}

	if ($this->isSuccessStage($item))
	{
		$productRows = $item->getProductRows();
		if ($productRows)
		{
			$checkResult = self::checkQuantityFromCollection(CCrmOwnerType::Deal, 0, $productRows);
			if (!$checkResult->isSuccess())
			{
				$stageId = $factory->setStartStageIdPermittedForUser($item);
				$item->setStageId($stageId);
			}

			$checkResult = self::checkAvailabilityServices($productRows);
			if (!$checkResult->isSuccess())
			{
				$stageId = $factory->setStartStageIdPermittedForUser($item);
				$item->setStageId($stageId);
			}
		}
	}

	return $result;
}