• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/Reservation/ProductRowReservation.php
  • Класс: Bitrix\Crm\Reservation\ProductRowReservation
  • Вызов: ProductRowReservation::prepareFields
static function prepareFields(Crm\ProductRow $productRow, array $fields): array
{
	if (isset($fields[self::ID]) && $fields[self::ID] > 0)
	{
		unset($fields['ID']);
	}

	if ($productRow->getId() > 0)
	{
		$fields['ROW_ID'] = $productRow->getId();
	}

	if (isset($fields['INPUT_RESERVE_QUANTITY']))
	{
		$fields['RESERVE_QUANTITY'] = $fields['INPUT_RESERVE_QUANTITY'];
	}

	if (!array_key_exists('DATE_RESERVE_END', $fields))
	{
		$fields['DATE_RESERVE_END'] = ReservationService::getInstance()->getDefaultDateReserveEnd();
	}

	if (is_int($fields['DATE_RESERVE_END']))
	{
		$fields['DATE_RESERVE_END'] = Date::createFromPhp(
			(new \DateTime())->setTimestamp($fields['DATE_RESERVE_END'])
		);
	}

	return array_filter(
		$fields,
		static function (string $fieldName): bool {
			return in_array($fieldName, static::getScalarFieldNames(), true);
		},
		ARRAY_FILTER_USE_KEY
	);
}