package com.rjconsultores.ventaboletos.web.utilerias.render;

import java.util.List;

import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;

import com.rjconsultores.ventaboletos.entidad.Cliente;
import com.rjconsultores.ventaboletos.entidad.ClienteFidelidad;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.TarjetaFidelidad;

public class RenderCliente implements ListitemRenderer {

	public void render(Listitem lstm, Object o) throws Exception {

		Cliente cliente = (Cliente) o;
		List<ClienteFidelidad> ls = cliente.getListClienteFidelidadActivos();

		Listcell lc = new Listcell(cliente.getClienteId().toString());
		lc.setParent(lstm);

		lc = new Listcell();
		StringBuilder emp = new StringBuilder();
		StringBuilder tarjetasFidelidad = new StringBuilder();
		TarjetaFidelidad tarjetaFidelidad = null;

		if (null != ls && ls.size()!=0) {
			for (ClienteFidelidad cf : ls) {
				if (!cf.getActivo()) {
					continue;
				}
				Empresa empresa = null;
				tarjetaFidelidad = cf.getTarjetaFidelidad();
				empresa = cf.getEmpresa();
				emp.append(empresa.getNombempresa().toString()).append(" - ");
				tarjetasFidelidad.append(tarjetaFidelidad.getNumTarjeta().toString()).append(" - ");
			}
		}

		if (!emp.toString().isEmpty()) {
			emp.replace(emp.length()-2, emp.length(), "");
			lc = new Listcell(emp.toString());
		} else {
			lc = new Listcell("");
		}
		lc.setParent(lstm);

		if (!tarjetasFidelidad.toString().isEmpty()) {
			tarjetasFidelidad.replace(tarjetasFidelidad.length()-2, tarjetasFidelidad.length(), "");
			lc = new Listcell(tarjetasFidelidad.toString());
		} else {
			lc = new Listcell("");
		}
		lc.setParent(lstm);

		lc = new Listcell(cliente.getNombcliente());
		lc.setParent(lstm);

		lc = new Listcell(cliente.getApellidopaterno());
		lc.setParent(lstm);

		lc = new Listcell(cliente.getApellidomaterno());
		lc.setParent(lstm);

		lc = new Listcell(cliente.getNumtelefono());
		lc.setParent(lstm);

		lc = new Listcell(cliente.getNumtelefonodos());
		lc.setParent(lstm);

		lc = new Listcell(cliente.getNumIdentificaUno() != null && !"null".equals(cliente.getNumIdentificaUno()) ? cliente.getNumIdentificaUno() : "");
		lc.setParent(lstm);

		lc = new Listcell(cliente.getNumIdentificaDos() != null && !"null".equals(cliente.getNumIdentificaDos()) ? cliente.getNumIdentificaDos() : "");
		lc.setParent(lstm);

		lc = new Listcell(cliente.getDesccorreo() != null && !"null".equals(cliente.getDesccorreo()) ? cliente.getDesccorreo() : "");
		lc.setParent(lstm);

		lstm.setAttribute("data", cliente);

	}
}
