/**
 * 
 */
package com.ejie.t17i.filters;

import java.util.List;

import com.ejie.m62fb.utils.bean.BeanAccess;
import com.ejie.m62fb.utils.sql.FiltroWhereGen;
import com.ejie.m62fb.utils.sql.LikeInWhere;
import com.ejie.t17i.dao.PortalDaoSql;
import com.ejie.t17i.model.Portal;

/**
 * <p>
 * Clase que define el filtro para la entidad Portal de NORA
 * </p>
XXXX
 *  * 
 * @see com.ejie.t17i.model.Portal;
 */
public class PortalFilter extends FiltroWhereGen {

	private Portal portal;
	
	/**
	 * <p>Constructor</p> 
	 * @param portal Portal con los datos para filtrar
	 * @param params Lista de par&aacute;metros de la <code>SQL</code
	 * @param query Query <code>SQL</code> a modificar
	 * @param like Indica si hay que implementar <code>LIKE</code> y como
	 * 
	 */
	public PortalFilter (final Portal portal,final List<Object> params,final StringBuilder query,final LikeInWhere like){
		super(params,query,like);
		this.portal=portal;
	}
	
	/**
	 * Devuelve el portal para filtrar
	 * @return El portal para filtrar
	 */
	public Portal getPortal() {
		return portal;
	}

	/**
	 * Establece el portal para filtrar
	 * @param portal El portal para filtrar
	 */
	public void setPortal(Portal portal) {
		this.portal = portal;
	}

	
	/**
	 * {@inheritDoc}
	 */
	@Override
	public void generarWhereBE() {
		
		boolean bImplementar=this.like.isImplementar();
		this.like.setImplementar(false);
		//ID
		super.addFiltro(PortalDaoSql.ALIAS+".ID = ? ", 
						new BeanAccess("portal.id",  this.portal), 
						FiltroWhereGen.AND);
		//CALLE_ID
		super.addFiltro(PortalDaoSql.ALIAS+".CALLE_ID = ? ", 
				new BeanAccess("portal.calle.id",  this.portal), 
				FiltroWhereGen.AND);
		//LOCALIDAD_ID
		super.addFiltro(PortalDaoSql.ALIAS+".LOCALIDAD_ID = ? ", 
				new BeanAccess("portal.localidad.id",  this.portal), 
				FiltroWhereGen.AND);
		//NUMERO
		super.addFiltro(PortalDaoSql.ALIAS+".NUMERO = ? ", 
				new BeanAccess("portal.numero",  this.portal), 
				FiltroWhereGen.AND);
		//BLOQUE
		super.addFiltro(" UPPER("+PortalDaoSql.ALIAS+".BLOQUE) = ? ", 
				new BeanAccess("portal.bloque",  this.portal), 
				FiltroWhereGen.AND);
		//BIS
		super.addFiltro(" UPPER("+PortalDaoSql.ALIAS+".BIS) = ? ", 
				new BeanAccess("portal.bis",  this.portal), 
				FiltroWhereGen.AND);
		//ESTADO
		super.addFiltro(" UPPER("+PortalDaoSql.ALIAS+".ESTADO) = ? ", 
				new BeanAccess("portal.estado",  this.portal), 
				FiltroWhereGen.AND);
		//CODIGO_POSTAL
		super.addFiltro(PortalDaoSql.ALIAS+".CODIGO_POSTAL = ? ", 
				new BeanAccess("portal.codigoPostal",  this.portal), 
				FiltroWhereGen.AND);
		//ACEPCION
		super.addFiltro(PortalDaoSql.ALIAS+".ACEPCION = ? ", 
				new BeanAccess("portal.acepcion",  this.portal), 
				FiltroWhereGen.AND);
		//TRAMO_ID
		super.addFiltro(PortalDaoSql.ALIAS+".TRAMO_ID = ? ", 
				new BeanAccess("portal.idTramo",  this.portal), 
				FiltroWhereGen.AND);
		//DX_ED50
		super.addFiltro(PortalDaoSql.ALIAS+".DX_ED50 = ? ", 
				new BeanAccess("portal.dxEd50",  this.portal), 
				FiltroWhereGen.AND);
		//DY_ED50
		super.addFiltro(PortalDaoSql.ALIAS+".DY_ED50 = ? ", 
				new BeanAccess("portal.dyEd50",  this.portal), 
				FiltroWhereGen.AND);
		//DX_ETRS89
		super.addFiltro(PortalDaoSql.ALIAS+".DX_ETRS89 = ? ", 
				new BeanAccess("portal.dxEtrs89",  this.portal), 
				FiltroWhereGen.AND);
		//DY_ETRS89
		super.addFiltro(PortalDaoSql.ALIAS+".DY_ETRS89 = ? ", 
				new BeanAccess("portal.dyEtrs89",  this.portal), 
				FiltroWhereGen.AND);
		this.like.setImplementar(bImplementar);
		//BLOQUE ||  NUMERO  || BIS
		super.addFiltro("   UPPER(TRIM("+PortalDaoSql.ALIAS+".BLOQUE || " + PortalDaoSql.ALIAS+".NUMERO || " + PortalDaoSql.ALIAS+".BIS)) = ? ", 
				new BeanAccess("portal.comboDesc",  this.portal), 
				FiltroWhereGen.AND);
	}

}
