package com.ejie.m62fb.dao.registroVPP;

import java.math.BigDecimal;
import java.util.List;

import com.ejie.m62fb.model.AlojamientoDotacional;
import com.ejie.x38.dto.JQGridRequestDto;

/**
 * AlojamientoDotacionalDao.
 * 
XXXX
 */
public interface AlojamientoDotacionalDao {

	/**
	 * Inserts a single row in the AlojamientoDotacional table.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @return AlojamientoDotacional
	 */
	AlojamientoDotacional add(AlojamientoDotacional alojamientoDotacional);

	/**
	 * Updates a single row in the AlojamientoDotacional table.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @return AlojamientoDotacional
	 */
	AlojamientoDotacional update(AlojamientoDotacional alojamientoDotacional);

	/**
	 * Finds a single row in the AlojamientoDotacional table.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @return AlojamientoDotacional
	 */
	AlojamientoDotacional find(AlojamientoDotacional alojamientoDotacional);

	/**
	 * Removes a single row in the AlojamientoDotacional table.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 */
	void remove(AlojamientoDotacional alojamientoDotacional);

	/**
	 * Finds a List of rows in the AlojamientoDotacional table.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @param jqGridRequestDto
	 *            JQGridRequestDto
	 * @return List
	 */
	List<AlojamientoDotacional> findAll(
			AlojamientoDotacional alojamientoDotacional,
			JQGridRequestDto jqGridRequestDto);

	/**
	 * Finds rows in the AlojamientoDotacional table using like.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @param jqGridRequestDto
	 *            JQGridRequestDto
	 * @param startsWith
	 *            Boolean
	 * @return List
	 */
	List<AlojamientoDotacional> findAllLike(
			AlojamientoDotacional alojamientoDotacional,
			JQGridRequestDto jqGridRequestDto, Boolean startsWith);

	/*
	 * OPERACIONES RUP_TABLE
	 */

	/**
	 * Counts rows in the AlojamientoDotacional table using like.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @param startsWith
	 *            Boolean
	 * @return Long
	 */
	Long findAllLikeCount(AlojamientoDotacional alojamientoDotacional,
			Boolean startsWith);

	/**
	 * Counts rows in the AlojamientoDotacional table.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional
	 * @return Long
	 */
	Long findAllCount(AlojamientoDotacional alojamientoDotacional);

	/**
	 * Comprueba si se ha realizado algun cambio en BBDD, si es asi lanza una
	 * excecion.
	 * 
	 * @param alojamientoDotacional
	 *            AlojamientoDotacional(idAlojReg, fecHorUltimaModif)
	 */
	void checkForUpdate(AlojamientoDotacional alojamientoDotacional);
	Integer findIdAlojReg(String numAlojamiento,String numExpedPromo);
}