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

import java.util.List;

import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Button;
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;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;

public class RenderClienteCarteirinhaSel 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(cliente.getNombcliente());
		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.getNumIdentificaUno() != null && !"null".equals(cliente.getNumIdentificaUno()) ? cliente.getNumIdentificaUno() : "");
		lc.setParent(lstm);
		
		lc = new Listcell(cliente.getEscola() != null ? cliente.getEscola().getNombescola() : "-");
		lc.setParent(lstm);
		
		Button btn = new Button();
		lc = new Listcell();
		lc.setParent(lstm);

		btn.setWidth("16");
		btn.setHeight("16");
		btn.setImage("/gui/img/remove.png");

		btn.addEventListener("onClick", new EventListener() {
			@Override
			public void onEvent(Event event) throws Exception {
				MyListbox listBox = (MyListbox) event.getTarget().getParent().getParent().getParent();
				Listitem listItem = (Listitem) event.getTarget().getParent().getParent();
				listBox.removeItem((Cliente) listItem.getAttribute("data"));
			}
		});
		lc.appendChild(btn);

		lstm.setAttribute("data", cliente);
	}
}
