package com.ejie.m62fb.service;

import com.ejie.m62fb.dao.M62fbDisponibilidadVivsDao;
import com.ejie.x38.dto.Pagination;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.ejie.m62fb.model.M62fbDisponibilidadVivs;

/**
 * M62fbDisponibilidadVivsServiceImpl generated by UDA, 17-oct-2012 15:45:50.
 * 
XXXX
 */

@Service(value = "m62fbDisponibilidadVivsService")
public class M62fbDisponibilidadVivsServiceImpl implements
		M62fbDisponibilidadVivsService {

	@Autowired
	private M62fbDisponibilidadVivsDao m62fbDisponibilidadVivsDao;

	/**
	 * Inserts a single row in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @return M62fbDisponibilidadVivs
	 */
	@Transactional(rollbackFor = Throwable.class)
	public M62fbDisponibilidadVivs add(
			M62fbDisponibilidadVivs m62fbDisponibilidadVivs) {
		return this.m62fbDisponibilidadVivsDao.add(m62fbDisponibilidadVivs);
	}

	/**
	 * Updates a single row in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @return M62fbDisponibilidadVivs
	 */
	@Transactional(rollbackFor = Throwable.class)
	public M62fbDisponibilidadVivs update(
			M62fbDisponibilidadVivs m62fbDisponibilidadVivs) {
		return this.m62fbDisponibilidadVivsDao.update(m62fbDisponibilidadVivs);
	}

	/**
	 * Finds a single row in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @return M62fbDisponibilidadVivs
	 */
	public M62fbDisponibilidadVivs find(
			M62fbDisponibilidadVivs m62fbDisponibilidadVivs) {
		return (M62fbDisponibilidadVivs) this.m62fbDisponibilidadVivsDao
				.find(m62fbDisponibilidadVivs);
	}

	/**
	 * Finds a List of rows in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAll(
			M62fbDisponibilidadVivs m62fbDisponibilidadVivs,
			Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAll(m62fbDisponibilidadVivs, pagination);
	}

	/**
	 * Counts rows in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @return Long
	 */
	public Long findAllCount(M62fbDisponibilidadVivs m62fbDisponibilidadVivs) {
		return this.m62fbDisponibilidadVivsDao
				.findAllCount(m62fbDisponibilidadVivs);
	}

	/**
	 * Finds rows in the M62fbDisponibilidadVivs table using like.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @param pagination
	 *            Pagination
	 * @param startsWith
	 *            Boolean
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllLike(
			M62fbDisponibilidadVivs m62fbDisponibilidadVivs,
			Pagination pagination, Boolean startsWith) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllLike(m62fbDisponibilidadVivs, pagination, startsWith);
	}

	/**
	 * Counts rows in the M62fbDisponibilidadVivs table using like.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @param startsWith
	 *            Boolean
	 * @return Long
	 */
	public Long findAllLikeCount(
			M62fbDisponibilidadVivs m62fbDisponibilidadVivs, Boolean startsWith) {
		return this.m62fbDisponibilidadVivsDao.findAllLikeCount(
				m62fbDisponibilidadVivs, startsWith);
	}

	/**
	 * Deletes a single row in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @return
	 */
	@Transactional(rollbackFor = Throwable.class)
	public void remove(M62fbDisponibilidadVivs m62fbDisponibilidadVivs) {
		this.m62fbDisponibilidadVivsDao.remove(m62fbDisponibilidadVivs);
	}

	/**
	 * Deletes a single row in the M62fbr46s0s00 table.
	 * 
	 * @param m62fbDisponibilidadVivs
	 *            M62fbDisponibilidadVivs
	 * @return
	 */
	@Transactional(rollbackFor = Throwable.class)
	public void removeVivOfer(M62fbDisponibilidadVivs m62fbDisponibilidadVivs) {
		this.m62fbDisponibilidadVivsDao.removeVivOfer(m62fbDisponibilidadVivs);
	}

	/**
	 * Deletes multiple rows in the M62fbDisponibilidadVivs table.
	 * 
	 * @param m62fbDisponibilidadVivsList
	 *            List
	 * @return
	 */
	@Transactional(rollbackFor = Throwable.class)
	public void removeMultiple(
			List<M62fbDisponibilidadVivs> m62fbDisponibilidadVivsList) {
		for (M62fbDisponibilidadVivs m62fbDisponibilidadVivsAux : m62fbDisponibilidadVivsList) {
			this.m62fbDisponibilidadVivsDao.remove(m62fbDisponibilidadVivsAux);
		}
	}

	/**
	 * Finds rows in the catalogo table using like.
	 * 
	 * @param numVivienda
	 *            BigDecimal
	 * @param numExpediente
	 *            String
	 * @param fecIncorporacionCatDesde
	 *            Date
	 * @param fecIncorporacionCatHasta
	 *            Date
	 * @param codProvincia
	 *            String
	 * @param codMunicipio
	 *            String
	 * @param fecIniSituacionDesde
	 *            Date
	 * @param fecIniSituacionHasta
	 *            Date
	 * @param codSituacion
	 *            String
	 * @param fecFinSituacionDesde
	 *            Date
	 * @param fecFinSituacionHasta
	 *            Date
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllPersonalizado(
			BigDecimal numVivienda, String numExpediente,
			Date fecIncorporacionCatDesde, Date fecIncorporacionCatHasta,
			String codProvincia, String codMunicipio,
			Date fecIniSituacionDesde, Date fecIniSituacionHasta,
			String codSituacion, Date fecFinSituacionDesde,
			Date fecFinSituacionHasta, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizado(numVivienda, numExpediente,
						fecIncorporacionCatDesde, fecIncorporacionCatHasta,
						codProvincia, codMunicipio, fecIniSituacionDesde,
						fecIniSituacionHasta, codSituacion,
						fecFinSituacionDesde, fecFinSituacionHasta, pagination);
	}

	/**
	 * Counts rows in the catalogo .
	 * 
	 * @param numVivienda
	 *            BigDecimal
	 * @param numExpediente
	 *            String
	 * @param fecIncorporacionCatDesde
	 *            Date
	 * @param fecIncorporacionCatHasta
	 *            Date
	 * @param codProvincia
	 *            String
	 * @param codMunicipio
	 *            String
	 * @param fecIniSituacionDesde
	 *            Date
	 * @param fecIniSituacionHasta
	 *            Date
	 * @param codSituacion
	 *            String
	 * @param fecFinSituacionDesde
	 *            Date
	 * @param fecFinSituacionHasta
	 *            Date
	 * @return Long
	 */
	public Long findAllPersonalizadoCount(BigDecimal numVivienda,
			String numExpediente, Date fecIncorporacionCatDesde,
			Date fecIncorporacionCatHasta, String codProvincia,
			String codMunicipio, Date fecIniSituacionDesde,
			Date fecIniSituacionHasta, String codSituacion,
			Date fecFinSituacionDesde, Date fecFinSituacionHasta) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoCount(numVivienda, numExpediente,
						fecIncorporacionCatDesde, fecIncorporacionCatHasta,
						codProvincia, codMunicipio, fecIniSituacionDesde,
						fecIniSituacionHasta, codSituacion,
						fecFinSituacionDesde, fecFinSituacionHasta);
	}

	/**
	 * Finds rows in the catalogoDisp table using like.
	 * 
	 * @param numViviendaFiltro
	 *            Long
	 * @param numExpedienteFiltro
	 *            String
	 * @param codProvinciaFiltro
	 *            String
	 * @param codMunicipioFiltro
	 *            String
	 * @param codRegAccesoFiltro
	 *            String
	 * @param indVivAdaptadaFiltro
	 *            String
	 * @param numDormitoriosDesdeFiltro
	 *            Integer
	 * @param numDormitoriosHastaFiltro
	 *            Integer
	 * @param supUtilVivDesdeFiltro
	 *            BigDecimal
	 * @param supUtilVivHastaFiltro
	 *            BigDecimal
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllPersonalizadoVivDisp(
			BigDecimal numVivienda, String numExpediente, String codProvincia,
			String codMunicipio, String codRegAcceso, String codRegTenencia,
			String indVivAdaptada, Integer numDormitoriosDesde,
			Integer numDormitoriosHasta, BigDecimal supUtilVivDesde,
			BigDecimal supUtilVivHasta, BigDecimal idR45, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivDisp(numVivienda, numExpediente,
						codProvincia, codMunicipio, codRegAcceso,
						codRegTenencia, indVivAdaptada, numDormitoriosDesde,
						numDormitoriosHasta, supUtilVivDesde, supUtilVivHasta,
						idR45, pagination);
	}

	/**
	 * Counts rows in the catalogoDisp .
	 * 
	 * @param numViviendaFiltro
	 *            Long
	 * @param numExpedienteFiltro
	 *            String
	 * @param codProvinciaFiltro
	 *            String
	 * @param codMunicipioFiltro
	 *            String
	 * @param codRegAccesoFiltro
	 *            String
	 * @param indVivAdaptadaFiltro
	 *            String
	 * @param numDormitoriosDesdeFiltro
	 *            Integer
	 * @param numDormitoriosHastaFiltro
	 *            Integer
	 * @param supUtilVivDesdeFiltro
	 *            BigDecimal
	 * @param supUtilVivHastaFiltro
	 *            BigDecimal
	 * @return Long
	 */
	public Long findAllPersonalizadoVivDispCount(BigDecimal numVivienda,
			String numExpediente, String codProvincia, String codMunicipio,
			String codRegAcceso, String codRegTenencia, String indVivAdaptada,
			Integer numDormitoriosDesde, Integer numDormitoriosHasta,
			BigDecimal supUtilVivDesde, BigDecimal supUtilVivHasta,
			BigDecimal idR45) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivDispCount(numVivienda, numExpediente,
						codProvincia, codMunicipio, codRegAcceso,
						codRegTenencia, indVivAdaptada, numDormitoriosDesde,
						numDormitoriosHasta, supUtilVivDesde, supUtilVivHasta,
						idR45);
	}

	/**
	 * Finds rows in the catalogoVivEnOfer table using like.
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllPersonalizadoVivEnOfer(
			BigDecimal idM62r45t0, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivEnOfer(idM62r45t0, pagination);
	}

	/**
	 * Counts rows in the catalogoDisp .
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @return Long
	 */
	public Long findAllPersonalizadoVivEnOferCount(BigDecimal idM62r45t0) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivEnOferCount(idM62r45t0);
	}

	/**
	 * Finds rows in the findAllListadoDeVivParaOfertar table using like.
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllListadoDeVivParaOfertar(
			BigDecimal idM62r45t0, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllListadoDeVivParaOfertar(idM62r45t0, pagination);
	}

	/**
	 * Counts rows in the findAllListadoDeVivParaOfertarCount .
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @return Long
	 */
	public Long findAllListadoDeVivParaOfertarCount(BigDecimal idM62r45t0) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllListadoDeVivParaOfertarCount(idM62r45t0);
	}

	/**
	 * Finds rows in the catalogoVivEnOfer table using like.
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllPersonalizadoVivEnCatalogo(

	BigDecimal numVivienda, String numExpediente, String fecIncCatDesde,
			String fecIncCatHasta, String codProvincia, String codMunicipio,
			String codSitCat, String fecIniSitDesde, String fecIniSitHasta,
			String fecFinSitDesde, String fecFinSitHasta, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivEnCatalogo(numVivienda, numExpediente,
						fecIncCatDesde, fecIncCatHasta, codProvincia,
						codMunicipio, codSitCat, fecIniSitDesde,
						fecIniSitHasta, fecFinSitDesde, fecFinSitHasta,
						pagination);
	}

	/**
	 * Counts rows in the catalogoDisp .
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @return Long
	 */
	public Long findAllPersonalizadoVivEnCatalogoCount(BigDecimal numVivienda,
			String numExpediente, String fecIncCatDesde, String fecIncCatHasta,
			String codProvincia, String codMunicipio, String codSitCat,
			String fecIniSitDesde, String fecIniSitHasta,
			String fecFinSitDesde, String fecFinSitHasta) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivEnCatalogoCount(numVivienda,
						numExpediente, fecIncCatDesde, fecIncCatHasta,
						codProvincia, codMunicipio, codSitCat, fecIniSitDesde,
						fecIniSitHasta, fecFinSitDesde, fecFinSitHasta);
	}

	/**
	 * Finds rows in the findAllListadoParaIncEnCatalogo table using like.
	 * 
	 * @param numViviendaFiltro
	 *            Long
	 * @param numExpedienteFiltro
	 *            String
	 * @param codProvinciaFiltro
	 *            String
	 * @param codMunicipioFiltro
	 *            String
	 * @param codRegAccesoFiltro
	 *            String
	 * @param indVivAdaptadaFiltro
	 *            String
	 * @param numDormitoriosDesdeFiltro
	 *            BigDecimal
	 * @param numDormitoriosHastaFiltro
	 *            BigDecimal
	 * @param supUtilVivDesdeFiltro
	 *            BigDecimal
	 * @param supUtilVivHastaFiltro
	 *            BigDecimal
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllListadoParaIncEnCatalogo(
			BigDecimal numVivienda, String numExpediente, String codProvincia,
			String codMunicipio, String codRegAcceso, String codRegTenencia,
			String indVivAdaptada, Integer numDormitoriosDesde,
			Integer numDormitoriosHasta, BigDecimal supUtilDesde,
			BigDecimal supUtilHasta, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllListadoParaIncEnCatalogo(numVivienda, numExpediente,
						codProvincia, codMunicipio, codRegAcceso,
						codRegTenencia, indVivAdaptada, numDormitoriosDesde,
						numDormitoriosHasta, supUtilDesde, supUtilHasta,
						pagination);
	}

	/**
	 * Finds rows in the findAllListadoParaIncEnCatalogoCount table using like.
	 * 
	 * @param numViviendaFiltro
	 *            Long
	 * @param numExpedienteFiltro
	 *            String
	 * @param codProvinciaFiltro
	 *            String
	 * @param codMunicipioFiltro
	 *            String
	 * @param codRegAccesoFiltro
	 *            String
	 * @param codRegTenenciaFiltro
	 *            String
	 * @param indVivAdaptadaFiltro
	 *            String
	 * @param numDormitoriosDesdeFiltro
	 *            BigDecimal
	 * @param numDormitoriosHastaFiltro
	 *            BigDecimal
	 * @param supUtilVivDesdeFiltro
	 *            BigDecimal
	 * @param supUtilVivHastaFiltro
	 *            BigDecimal
	 * @return Long
	 */
	public Long findAllListadoParaIncEnCatalogoCount(BigDecimal numVivienda,
			String numExpediente, String codProvincia, String codMunicipio,
			String codRegAcceso, String codRegTenencia, String indVivAdaptada,
			Integer numDormitoriosDesde, Integer numDormitoriosHasta,
			BigDecimal supUtilDesde, BigDecimal supUtilHasta) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllListadoParaIncEnCatalogoCount(numVivienda,
						numExpediente, codProvincia, codMunicipio,
						codRegAcceso, codRegTenencia, indVivAdaptada,
						numDormitoriosDesde, numDormitoriosHasta, supUtilDesde,
						supUtilHasta);
	}

	/**
	 * Finds rows in the catalogoVivEnOfer table using like.
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @param pagination
	 *            Pagination
	 * @return List
	 */
	public List<M62fbDisponibilidadVivs> findAllPersonalizadoVivEnOferExcel(
			BigDecimal idR45, BigDecimal idPersona, String codSitOferta,
			Date fecOfertaDesde, Date fecOfertaHasta, Date fecAceptacionDesde,
			Date fecAceptacionHasta, Date fecFinalizacionDesde,
			Date fecFinalizacionHasta, Date fecDeclinacionDesde,
			Date fecDeclinacionHasta, Pagination pagination) {
		return (List<M62fbDisponibilidadVivs>) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivEnOferExcel(idR45, idPersona,
						codSitOferta, fecOfertaDesde, fecOfertaHasta,
						fecAceptacionDesde, fecAceptacionHasta,
						fecFinalizacionDesde, fecFinalizacionHasta,
						fecDeclinacionDesde, fecDeclinacionHasta, pagination);
	}

	/**
	 * Counts rows in the catalogoDisp .
	 * 
	 * @param idM62r45t0
	 *            Long
	 * @return Long
	 */
	public Long findAllPersonalizadoVivEnOferExcelCount(BigDecimal idR45,
			BigDecimal idPersona, String codSitOferta, Date fecOfertaDesde,
			Date fecOfertaHasta, Date fecAceptacionDesde,
			Date fecAceptacionHasta, Date fecFinalizacionDesde,
			Date fecFinalizacionHasta, Date fecDeclinacionDesde,
			Date fecDeclinacionHasta) {
		return (Long) this.m62fbDisponibilidadVivsDao
				.findAllPersonalizadoVivEnOferExcelCount(idR45, idPersona,
						codSitOferta, fecOfertaDesde, fecOfertaHasta,
						fecAceptacionDesde, fecAceptacionHasta,
						fecFinalizacionDesde, fecFinalizacionHasta,
						fecDeclinacionDesde, fecDeclinacionHasta);
	}

}
