package com.ejie.m62fb.dao.registroVPP;

import java.util.List;

import com.ejie.m62fb.model.Propietario;
import com.ejie.x38.dto.JQGridRequestDto;
import com.ejie.x38.dto.TableRowDto;

/**
 * M62r04s00Dao generated by UDA, 23-sep-2015 11:53:46.
 * 
XXXX
 */

public interface PropietarioDao {

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

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

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

	/**
	 * Finds a single row in the Propietario table.
	 * 
	 * @param propietario
	 *            Propietario
	 * @return Propietario
	 */
	Propietario findForUpdate(Propietario propietario);

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

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

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

	/*
	 * OPERACIONES RUP_TABLE
	 */
	/**
	 * Counts rows in the Propietario table using like.
	 * 
	 * @param propietario
	 *            Propietario
	 * @param startsWith
	 *            Boolean
	 * @return Long
	 */
	Long findAllLikeCount(Propietario propietario, Boolean startsWith);

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

	/**
	 * Reorder selection.
	 * 
	 * @param filterM62r04s00
	 *            Propietario
	 * @param jqGridRequestDto
	 *            JQGridRequestDto
	 * @param startsWith
	 *            Boolean
	 * @return List<TableRowDto<Propietario>>
	 */
	List<TableRowDto<Propietario>> reorderSelection(
			Propietario filterM62r04s00, JQGridRequestDto jqGridRequestDto,
			Boolean startsWith);

	/**
	 * Calcula la suma del porcentaje de titularidad teniendo en cuenta el % de
	 * titularidad que se esta modificando.
	 * 
	 * @param propietario
	 *            Propietario
	 * @return boolean
	 */
	boolean findPorcentTitularidad(Propietario propietario);

	/**
	 * Funcion que mira si hay algun otro titular en el contrato con el campo
	 * IND_PRIMER_SOLIC = 'S'.
	 * 
	 * @param propietario
	 *            Propietario
	 * @return boolean
	 */
	boolean findTitularPrimerSolic(Propietario propietario);

	/**
	 * Funcion que consulta si el titular esta en otro contrato de otra
	 * vivienda.
	 * 
	 * @param idVivienda
	 *            Integer
	 * @param idPersona
	 *            Integer
	 * @return boolean
	 */
	boolean findTitularesContratos(Integer idVivienda, Integer idPersona);
}
