• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Reservation/ProductRowReservationFactory.php
  • Класс: Bitrix\Crm\Reservation\ProductRowReservationFactory
  • Вызов: ProductRowReservationFactory::canCreateProductReservation
static function canCreateProductReservation(ProductRow $productRow, array $fields): bool
{
	$isNonCatalogProduct = empty($productRow->getProductId());
	if ($isNonCatalogProduct)
	{
		return false;
	}

	if (
		isset($fields['TYPE'])
		&& ReservationService::getInstance()->isRestrictedType((int)$fields['TYPE'])
	)
	{
		return false;
	}

	$canCreateOrLoad =
		isset($fields[ProductRowReservation::ROW_ID])
		|| isset($fields[ProductRowReservation::RESERVE_STORE_ID])
	;
	if (!$canCreateOrLoad)
	{
		return false;
	}

	$existAnyField =
		array_key_exists(ProductRowReservation::RESERVE_QUANTITY, $fields)
		|| array_key_exists(ProductRowReservation::RESERVE_STORE_ID, $fields)
		|| array_key_exists(ProductRowReservation::RESERVE_DATE_END, $fields)
	;

	return $existAnyField;
}