package com.ejie.m62fb.service.registroVPP;

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

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.ejie.m62fb.dao.registroVPP.TitularesViviendaDao;
import com.ejie.m62fb.model.TitularesVivienda;
import com.ejie.x38.dto.JQGridRequestDto;
import com.ejie.x38.dto.JQGridResponseDto;

/**
 * TitularesViviendaServiceImpl.
 * 
XXXX
 */
@Service(value = "titularesViviendaService")
public class TitularesViviendaServiceImpl implements TitularesViviendaService {

	@Autowired
	private TitularesViviendaDao titularesViviendaDao;

	/**
	 * Filter method in the TitularesVivienda table.
	 * 
	 * @param filterTitularesVivienda
	 *            TitularesVivienda
	 * @param jqGridRequestDto
	 *            JQGridRequestDto
	 * @return JQGridResponseDto<TitularesVivienda>
	 */
	@Override
	public JQGridResponseDto<TitularesVivienda> filterRestoViviendas(
			TitularesVivienda filterTitularesVivienda,
			JQGridRequestDto jqGridRequestDto) {
		List<TitularesVivienda> listaTitularesVivienda = this.titularesViviendaDao
				.getRestoViviendas(filterTitularesVivienda, jqGridRequestDto);
		Long recordNum = this.titularesViviendaDao
				.getRestoViviendasCount(filterTitularesVivienda != null ? filterTitularesVivienda
						: new TitularesVivienda());
		return new JQGridResponseDto<TitularesVivienda>(jqGridRequestDto,
				recordNum, listaTitularesVivienda);
	}

	/**
	 * Devuelve true si existen otros contratos para la persona pasada como
	 * parametro
	 * 
	 * @param numVivienda
	 *            BigDecimal
	 * @param idPersona
	 *            BigDecimal
	 * @return boolean
	 */
	@Override
	public boolean existenOtrosContratos(BigDecimal numVivienda,
			BigDecimal idPersona) {
		TitularesVivienda filterTitularesVivienda = new TitularesVivienda();
		filterTitularesVivienda.setNumVivienda(numVivienda);
		filterTitularesVivienda.setIdPersona(idPersona);
		return this.titularesViviendaDao
				.getRestoViviendasCount(filterTitularesVivienda) > 0L;
	}
}