• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Reservation/BasketReservation.php
  • Класс: Bitrix\Crm\Reservation\BasketReservation
  • Вызов: BasketReservation::getReservedProducts
public function getReservedProducts(): array
{
	$result = [];

	$productReservationMap = $this->getReservationMap();
	if ($productReservationMap)
	{
		$reservationProductMap = array_flip($productReservationMap);

		$basketReservationIterator = Sale\ReserveQuantityCollection::getList([
			'select' => ['ID', 'QUANTITY', 'STORE_ID', 'DATE_RESERVE_END'],
			'filter' => [
				'=ID' => array_values($productReservationMap),
			],
		]);
		while ($basketReservation = $basketReservationIterator->fetch())
		{
			$productRowId = $reservationProductMap[$basketReservation['ID']] ?? null;
			if ($productRowId)
			{
				$result[$productRowId] = [
					'RESERVE_ID' => (int)$basketReservation['ID'],
					'STORE_ID' => (int)$basketReservation['STORE_ID'],
					'RESERVE_QUANTITY' => (float)$basketReservation['QUANTITY'],
				];
				if ($basketReservation['DATE_RESERVE_END'] instanceof Main\Type\Date)
				{
					$result[$productRowId]['DATE_RESERVE_END'] =
						$basketReservation['DATE_RESERVE_END']->format(Main\Type\Date::convertFormatToPhp(FORMAT_DATE))
					;
				}
			}
		}
	}

	return $result;
}