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

import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;

import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.event.EventListener;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;

import com.rjconsultores.ventaboletos.entidad.ConfRestricaoCanalVenta;
import com.rjconsultores.ventaboletos.web.gui.controladores.esquemaoperacional.BusquedaConfRestricaoCanalVentaController;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;

public class RenderConfRestricaoCanalVenta implements ListitemRenderer {

	private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

	private MyListbox confRestricaoCanalVentaList;
	
	private BusquedaConfRestricaoCanalVentaController telaPrincipal;
	
	public RenderConfRestricaoCanalVenta() {
		super();
	}

	public RenderConfRestricaoCanalVenta(MyListbox confList, BusquedaConfRestricaoCanalVentaController telaMae) {
		super();
		confRestricaoCanalVentaList = confList;
		telaPrincipal = telaMae;
	}

	public void render(Listitem lstm, Object o) throws Exception {
		ConfRestricaoCanalVenta confRestricaoCanalVenta = (ConfRestricaoCanalVenta) o;
		
		EventListener doubleClick = new EventListener() {
			@Override
			public void onEvent(Event event) throws Exception {
				verConfRestricaoCanalVenta(confRestricaoCanalVenta);
			}
		};

		Listcell lc = new Listcell();

		lc = new Listcell(confRestricaoCanalVenta.getConfRestricaoCanalVentaId().toString() == null ? "-" : confRestricaoCanalVenta.getConfRestricaoCanalVentaId().toString());
		lc.addEventListener("onDoubleClick", doubleClick);
		lc.setParent(lstm);
		
		lc = new Listcell(confRestricaoCanalVenta.getRuta() == null ? "-" : MyComboRutaRenderer.buscarDescricaoComboRuta(confRestricaoCanalVenta.getRuta()));
		lc.setParent(lstm);

		lc = new Listcell(confRestricaoCanalVenta.getDescConfRestricaoCanalVenta() == null ? "-" : confRestricaoCanalVenta.getDescConfRestricaoCanalVenta());
		lc.addEventListener("onDoubleClick", doubleClick);
		lc.setParent(lstm);

		lc = new Listcell(confRestricaoCanalVenta.getCorridaId() == null ? "-" : confRestricaoCanalVenta.getCorridaId().toString());
		lc.addEventListener("onDoubleClick", doubleClick);
		lc.setParent(lstm);

		lc = new Listcell(confRestricaoCanalVenta.getFecCorrida() == null ? "-" : sdf.format(confRestricaoCanalVenta.getFecCorrida()));
		lc.addEventListener("onDoubleClick", doubleClick);
		lc.setParent(lstm);
		
		lc = new Listcell(buscarDescricaoVigencia(confRestricaoCanalVenta));
		lc.addEventListener("onDoubleClick", doubleClick);
		lc.setParent(lstm);
		
		lc.setParent(lstm);

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

	private String buscarDescricaoVigencia(ConfRestricaoCanalVenta confRestricaoCanalVenta) {
		if(confRestricaoCanalVenta.getFeciniciovigencia()!= null || confRestricaoCanalVenta.getFecfinvigencia()!= null) {
			return "De "+ sdf.format(confRestricaoCanalVenta.getFeciniciovigencia()) + " até  " +  sdf.format(confRestricaoCanalVenta.getFecfinvigencia());
		}
		return " - ";
	}
	
	@SuppressWarnings({ "rawtypes", "unchecked" })
	private void verConfRestricaoCanalVenta(ConfRestricaoCanalVenta conf) {
		if (conf == null) {
			return;
		}

		Map args = new HashMap();
		args.put("confRestricaoCanalVenta", conf);
		args.put("confRestricaoCanalVentaList", confRestricaoCanalVentaList);

		telaPrincipal.openWindow("/gui/esquema_operacional/editarConfRestricaoCanalVenta.zul",
				Labels.getLabel("editarConfRestricaoCanalVentaController.window.title"),
				args, PantallaUtileria.MODAL);
	}
}
