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

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.zkoss.util.media.AMedia;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Filedownload;
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.SolicitudExpreso;
import com.rjconsultores.ventaboletos.entidad.TrayectosExpresos;
import com.rjconsultores.ventaboletos.service.SolicitudExpresosService;
import com.rjconsultores.ventaboletos.service.TrayectosExpresosService;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.web.gui.controladores.expressos.DocumentosExpresosController;
import com.rjconsultores.ventaboletos.web.gui.controladores.expressos.ProgramacionVehiculosExpresosController;
import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria;

public class RenderProgramacionVehiculosExpresos implements ListitemRenderer {
	
	@Autowired
	TrayectosExpresosService trayectosService;
	
	@Autowired
	SolicitudExpresosService expresosService;
	
	private SolicitudExpreso expreso;
	private List<TrayectosExpresos> trayectos;
	
	ProgramacionVehiculosExpresosController winProgramacionVehiculoExpresos;
	
	public RenderProgramacionVehiculosExpresos(ProgramacionVehiculosExpresosController window){
		super();
		winProgramacionVehiculoExpresos = 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(Labels.getLabel("expresosController.lbl.verDetalle"));
        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);

				winProgramacionVehiculoExpresos.openWindow("/gui/expressos/detalleExpreso.zul", Labels.getLabel("verDetalleExpreso.window.title"), args, PantallaUtileria.MODAL);
			}
		});
        lc.appendChild(btnVerDetalle);
        
        Button btnAsignarBus = new Button(Labels.getLabel("expresosController.lbl.asignarBus"));
        btnAsignarBus.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);

				winProgramacionVehiculoExpresos.openWindow("/gui/expressos/asignarBusExpreso.zul", Labels.getLabel("asignarBusExpreso.window.title"), args, PantallaUtileria.MODAL);
			}
		});
        lc.appendChild(btnAsignarBus);
		
		item.setAttribute("data", expresos);
	}

}
