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

import org.zkoss.util.resource.Labels;
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.utilerias.DateUtil;

public class RenderCumplimientoServicioExpresos implements ListitemRenderer {
	
	EventListener listenerGenerico;
	
	public RenderCumplimientoServicioExpresos(EventListener listenerGenerico) {
		super();
		this.listenerGenerico = listenerGenerico;
	}

	@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);
        
        int estadoExpreso = (expresos.getStatusSolicitudExpresoId() == null ? 0 : expresos.getStatusSolicitudExpresoId());
        
        switch(estadoExpreso) {
        	case 1:
        		lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoSolicitado"));
                lc.setParent(item);
        		break;
        	case 2:
        		lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoEnviado"));
                lc.setParent(item);
        		break;
        	case 3:
        		lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoAceptado"));
                lc.setParent(item);
                
                lc = new Listcell();
                lc.setParent(item);
                
                Button btnCargarCumplimiento = new Button(Labels.getLabel("expresosController.lbl.btnCargarCumplimientoServicio"));
                btnCargarCumplimiento.setAttribute("data", data);
                btnCargarCumplimiento.addEventListener("onClick", listenerGenerico);
        		
        		lc.appendChild(btnCargarCumplimiento);
        		
        		break;
        	case 4:
        		lc = new Listcell(Labels.getLabel("expresosController.lbl.estadoRechazado"));
                lc.setParent(item);
        		break;
        	default: break;
        }
        
        lc = new Listcell();
	}

}
