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.ExcepcionPeajeVigencia;

public class RenderExcepcionPeajeVigencia implements ListitemRenderer {

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

		 
        if (excepcionPeajeVigencia.getFecVentaIni() != null) {
            lc = new Listcell(sdf.format(excepcionPeajeVigencia.getFecVentaIni()));
        } else {
            lc = new Listcell("");
        }
        lc.setParent(lstm);
        
        if (excepcionPeajeVigencia.getFecVentaFin() != null) {
            lc = new Listcell(sdf.format(excepcionPeajeVigencia.getFecVentaFin()));
        } else {
            lc = new Listcell("");
        }
        lc.setParent(lstm);
        
        if (excepcionPeajeVigencia.getHoraIni() != null) {
        	Calendar cal = Calendar.getInstance();
        	  cal.setTime(excepcionPeajeVigencia.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 (excepcionPeajeVigencia.getHoraFin() != null) {
        	Calendar cal = Calendar.getInstance();
      	  cal.setTime(excepcionPeajeVigencia.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(excepcionPeajeVigencia));
		lc.setParent(lstm);
		
		if (excepcionPeajeVigencia.getPrecio() != null) {
			double x = excepcionPeajeVigencia.getPrecio().doubleValue();
            lc = new Listcell(String.format("%.02f",x));
        } else {
            lc = new Listcell("");
        }
		
		lc.setParent(lstm);
		
		
		lstm.setAttribute("data", excepcionPeajeVigencia);
		
        
	}
	
	private String getDias(ExcepcionPeajeVigencia excepcionPeajeVigencia) {
		String retorno = "";
		if (excepcionPeajeVigencia.getINDDOMINGO()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.domingo")+", ";
		}
		if (excepcionPeajeVigencia.getINDLUNES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.lunes")+", ";
		}
		if (excepcionPeajeVigencia.getINDMARTES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.martes")+", ";
		}
		if (excepcionPeajeVigencia.getINDMIERCOLES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.miercoles")+", ";
		}
		if (excepcionPeajeVigencia.getINDJUEVES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.jueves")+", ";
		}
		if (excepcionPeajeVigencia.getINDVIERNES()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.viernes")+", ";
		}
		if (excepcionPeajeVigencia.getINDSABADO()) {
			retorno = retorno + Labels.getLabel("editarExcepcionPeajeController.msg.sabado")+", ";
		}
		if (retorno.length() > 1) {
			retorno = retorno.substring(0, retorno.length() - 2);
		}
		return retorno;
	}
}
