package com.rjconsultores.ventaboletos.relatorios.utilitarios;

import org.zkoss.zul.Paging;

import com.rjconsultores.ventaboletos.entidad.Cliente;
import com.rjconsultores.ventaboletos.entidad.TipoIdentificacion;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject;
import com.trg.search.Filter;

public class PagedListCliente extends PagedListGenerico<Cliente> {
	
	private static final int TIPO_DOCUMENTO_CPF = 2;
	
	public PagedListCliente(MyListbox listBox, MyTextbox txtPesquisa, Paging paging) {
		super(listBox, txtPesquisa, paging);
		super.setHibernateSearchObject(new HibernateSearchObject<Cliente>(Cliente.class, getPaging().getPageSize()));
	}

	@Override
	protected void personalizarBusca() {
		HibernateSearchObject<Cliente> clienteSearch = getHibernateSearchObject();
		TipoIdentificacion tipoIdentificacion = new TipoIdentificacion();
		tipoIdentificacion.setTipoIdentificacionId(TIPO_DOCUMENTO_CPF);
		clienteSearch.addFilterAnd(Filter.or(
				Filter.and(Filter.ilike("numIdentificaUno", "%" + getTxtPesquisa().getValue() + "%"), Filter.equal("tipoIdentificacionUno", tipoIdentificacion)),
				Filter.and(Filter.ilike("numIdentificaDos", "%" + getTxtPesquisa().getValue() + "%"), Filter.equal("tipoIdentificacionDos", tipoIdentificacion))));
		clienteSearch.addFilterEqual("activo", true);
	}
	
}
