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

import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.zkoss.util.resource.Labels;
import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;

import com.rjconsultores.ventaboletos.entidad.CasetaPeajeExcepcion;

public class RenderCasetaPeajeExcepcion  implements ListitemRenderer {

	public void render(Listitem lstm, Object o) throws Exception {
		CasetaPeajeExcepcion casetaPeajeExcepcion = (CasetaPeajeExcepcion) o;
		Listcell lc;
		if(casetaPeajeExcepcion.getCasetaPeajeExcepcionId() != null ){
			lc = new Listcell(casetaPeajeExcepcion.getCasetaPeajeExcepcionId().toString());
		}else{
			 lc = new Listcell("-");
		}
		
		lc.setParent(lstm);
		
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

		 
        if (casetaPeajeExcepcion.getFecVentaIni() != null) {
            lc = new Listcell(sdf.format(casetaPeajeExcepcion.getFecVentaIni()));
        } else {
            lc = new Listcell("");
        }
        lc.setParent(lstm);
        
        if (casetaPeajeExcepcion.getFecVentaFin() != null) {
            lc = new Listcell(sdf.format(casetaPeajeExcepcion.getFecVentaFin()));
        } else {
            lc = new Listcell("");
        }
        lc.setParent(lstm);
        
        if (casetaPeajeExcepcion.getHoraIni() != null) {
        	Calendar cal = Calendar.getInstance();
        	  cal.setTime(casetaPeajeExcepcion.getHoraIni());
        	  int hour = cal.get(Calendar.HOUR_OF_DAY);
        	  int minute = cal.get(Calendar.MINUTE);
        	  int second = cal.get(Calendar.SECOND);
        	
            lc = new Listcell(String.format("%02d",hour)+":"+String.format("%02d",minute)+":"+String.format("%02d",second));
        } else {
            lc = new Listcell("");
        }
        lc.setParent(lstm);
        
        if (casetaPeajeExcepcion.getHoraFin() != null) {
        	Calendar cal = Calendar.getInstance();
      	  cal.setTime(casetaPeajeExcepcion.getHoraFin());
      	  int hour = cal.get(Calendar.HOUR_OF_DAY);
      	  int minute = cal.get(Calendar.MINUTE);
      	  int second = cal.get(Calendar.SECOND);
      	
          lc = new Listcell(String.format("%02d",hour)+":"+String.format("%02d",minute)+":"+String.format("%02d",second));
        } else {
            lc = new Listcell("");
        }
        lc.setParent(lstm);
        
        lc = new Listcell(getDias(casetaPeajeExcepcion));
		lc.setParent(lstm);
		
		if (casetaPeajeExcepcion.getPrecio() != null) {
			double x = casetaPeajeExcepcion.getPrecio().doubleValue();
            lc = new Listcell(String.format("%.02f",x));
        } else {
            lc = new Listcell("");
        }
		
		lc.setParent(lstm);
		
		
		lstm.setAttribute("data", casetaPeajeExcepcion);
		
        
	}
	
	private String getDias(CasetaPeajeExcepcion casetaPeajeExcepcion) {
		String retorno = "";
		if (casetaPeajeExcepcion.getINDDOMINGO()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.domingo")+", ";
		}
		if (casetaPeajeExcepcion.getINDLUNES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.lunes")+", ";
		}
		if (casetaPeajeExcepcion.getINDMARTES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.martes")+", ";
		}
		if (casetaPeajeExcepcion.getINDMIERCOLES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.miercoles")+", ";
		}
		if (casetaPeajeExcepcion.getINDJUEVES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.jueves")+", ";
		}
		if (casetaPeajeExcepcion.getINDVIERNES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.viernes")+", ";
		}
		if (casetaPeajeExcepcion.getINDSABADO()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.sabado")+", ";
		}
		if (retorno.length() > 1) {
			retorno = retorno.substring(0, retorno.length() - 2);
		}
		return retorno;
	}
}
