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

import java.awt.FileDialog;
import java.awt.Frame;
import java.io.File;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import javax.swing.JFileChooser;
import javax.swing.JPanel;
import javax.swing.filechooser.FileNameExtensionFilter;

import org.springframework.beans.factory.annotation.Autowired;
import org.zkoss.util.media.Media;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Fileupload;
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 org.zkoss.zul.Messagebox;

import com.rjconsultores.ventaboletos.entidad.SolicitudExpreso;
import com.rjconsultores.ventaboletos.service.SolicitudExpresosService;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.web.gui.controladores.expressos.CargaContratoExpressosController;
import com.rjconsultores.ventaboletos.web.gui.controladores.expressos.ExpressosPorCotizarController;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;

public class RenderCargaContratoExpresos implements ListitemRenderer{
	
	private static final long serialVersionUID = 1L;

	private EventListener listenerGenerico;
	
	private CargaContratoExpressosController expresosControllerWindow;
	
	private SolicitudExpreso expreso;
	
	@Autowired
	SolicitudExpresosService expresosService;
	
	public RenderCargaContratoExpresos(CargaContratoExpressosController window) {
		super();
		expresosControllerWindow = window;
	}

	@Override
	public void render(Listitem item, Object data) throws Exception {
		SolicitudExpreso expresos = (SolicitudExpreso) data;
		
		Listcell lc = new Listcell(expresos.getSolicitudExpresoId().toString());
		lc.setParent(item);
		
		lc = new Listcell(DateUtil.getStringDate(expresos.getFechaSolicitud(), "dd/MM/yyyy"));
        lc.setParent(item);
        
        String ruta = expresos.getCiudadOrigen().getDescparada() + " - " + expresos.getCiudadDestino().getDescparada();
        lc = new Listcell(ruta);
        lc.setParent(item);
        
        if(expresos.getIndViajeRedondo() == false) {
        	lc = new Listcell(Labels.getLabel("expresosController.lbl.ida"));
            lc.setParent(item);
        }else if (expresos.getIndViajeRedondo() == true) {
        	lc = new Listcell(Labels.getLabel("expresosController.lbl.idaVuelta"));
            lc.setParent(item);
        }else {
        	lc = new Listcell();
            lc.setParent(item);
        }
        
        
        lc = new Listcell(DateUtil.getStringDate(expresos.getFechaHoraIda(), "dd/MM/yyyy HH:mm"));
        lc.setParent(item);
        
        lc = new Listcell(DateUtil.getStringDate(expresos.getFechaHoraRegreso(), "dd/MM/yyyy HH:mm"));
        lc.setParent(item);
        
        lc = new Listcell(expresos.getDescSitioPartidaIda());
        lc.setParent(item);
        
        lc = new Listcell(expresos.getDescSitioPartidaRegreso());
        lc.setParent(item);
        
        if(expresos.getIndRequiereDispVehiculo() == 0) {
        	lc = new Listcell("No");
            lc.setParent(item);
        }else if (expresos.getIndRequiereDispVehiculo() == 1) {
        	lc = new Listcell("Sí");
            lc.setParent(item);
        }else {
        	lc = new Listcell("N/A");
            lc.setParent(item);
        }
        
        lc = new Listcell();
        lc.setParent(item);
        
        Button btnVerDetalle = new Button("Ver Detalle");
        
        btnVerDetalle.addEventListener("onClick", new EventListener() {
			@Override
			public void onEvent(Event event) throws Exception {
				Listitem listItem = (Listitem) event.getTarget().getParent().getParent();
				expreso = (SolicitudExpreso)listItem.getAttribute("data");
				
				Map args = new HashMap();
				args.put("expreso", expreso);

				expresosControllerWindow.openWindow("/gui/expressos/detalleExpreso.zul", Labels.getLabel("verDetalleExpreso.window.title"), args, PantallaUtileria.MODAL);
			}
		});
        lc.appendChild(btnVerDetalle);
		
		item.setAttribute("data", expresos);
	}

	public SolicitudExpreso getExpreso() {
		return expreso;
	}

	public void setExpreso(SolicitudExpreso expreso) {
		this.expreso = expreso;
	}

}
