• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/reservation/basketreservationservice.php
  • Класс: BitrixSaleReservationBasketReservationService
  • Вызов: BasketReservationService::add
public function add(array $fields): Result
{
	$result = BasketReservationTable::add($fields);

	if ($result->isSuccess())
	{
		// Debug start
		$reservation = BasketReservationTable::getRowById($result->getId());
		if (!$reservation)
		{
			$logFields = [
				'STORE_ID' => $fields['STORE_ID'] ?? 0,
				'BASKET_ID' => $fields['BASKET_ID'] ?? 0,
				'DATE_RESERVE' => is_object($fields['DATE_RESERVE']) ? $fields['DATE_RESERVE']->toString() : $fields['DATE_RESERVE'],
				'DATE_RESERVE_END' => is_object($fields['DATE_RESERVE_END']) ? $fields['DATE_RESERVE_END']->toString() : $fields['DATE_RESERVE_END'],
				'QUANTITY' => $fields['QUANTITY'] ?? 0,
			];

			$description = 'ID='.$result->getId().'; json='.BitrixMainWebJson::encode($logFields);

			CEventLog::Add(array(
				"SEVERITY" => CEventLog::SEVERITY_DEBUG,
				"AUDIT_TYPE_ID" => "SALE_RESERVATION_DEBUG",
				"MODULE_ID" => "sale",
				"ITEM_ID" => "",
				"DESCRIPTION" => $description
			));
		}
		// Debug end

		$historyResult = $this->historyService->addByReservation($result->getId());
		foreach ($historyResult->getErrors() as $err)
		{
			$result->addError($err);
		}
	}

	return $result;
}