/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.web.utilerias.render;

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

import org.zkoss.zul.Listcell;
import org.zkoss.zul.Listitem;
import org.zkoss.zul.ListitemRenderer;

import com.rjconsultores.ventaboletos.dao.BoletoDAO;
import com.rjconsultores.ventaboletos.entidad.DispositivoEmbarcada;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.vo.embarcada.PtoVtaUsuarioUltimaVendaDispositivoVO;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;

/**
 *
 * @author Fabricio
 */
public class RenderDispositivoVendaEmbarcada implements ListitemRenderer {
	
	private BoletoDAO boletoDAO;
	private Map<String, PtoVtaUsuarioUltimaVendaDispositivoVO> ultimaVendaDispositivo;	

	public RenderDispositivoVendaEmbarcada() {
		boletoDAO = (BoletoDAO) AppContext.getApplicationContext().getBean("boletoDAO");
		
		List<PtoVtaUsuarioUltimaVendaDispositivoVO> itens = boletoDAO.buscarUltimaVendaDosDispositivosEmbarcada();
		ultimaVendaDispositivo = new HashMap<String, PtoVtaUsuarioUltimaVendaDispositivoVO>();
		for (PtoVtaUsuarioUltimaVendaDispositivoVO vo : itens){
			ultimaVendaDispositivo.put(vo.getImei(), vo);
		}
	}
	
	public void render(Listitem lstm, Object o) throws Exception {
		DispositivoEmbarcada dispositivoEmbarcada = (DispositivoEmbarcada) o;
		
		Listcell lc = new Listcell(dispositivoEmbarcada.getDispositivoEmbarcadaId().toString());
		lc.setParent(lstm);

		lc = new Listcell(dispositivoEmbarcada.getDescricao().toString());
		lc.setParent(lstm);
		
		lc = new Listcell(dispositivoEmbarcada.getRegistro());
		lc.setParent(lstm);
		
		lc = new Listcell(dispositivoEmbarcada.getImei());
		lc.setParent(lstm);
		
		lc = new Listcell(String.format("%s - %s", dispositivoEmbarcada.getPuntoVenta().getPuntoventaId().toString(), dispositivoEmbarcada.getPuntoVenta().getNombpuntoventa()));
		lc.setParent(lstm);
		
		lc = new Listcell(dispositivoEmbarcada.getVersaoUltimaSinc());
		lc.setParent(lstm);
		
		lc = new Listcell(DateUtil.getStringDate24Hour(dispositivoEmbarcada.getDataUltimaSinc()));
		lc.setParent(lstm);
		
		lc = new Listcell(dispositivoEmbarcada.getIndDispBloqueado()?"Sim":"Não");
		lc.setParent(lstm);
		
		lc = new Listcell(dispositivoEmbarcada.getIndDispManutencao()?"Sim":"Não");
		lc.setParent(lstm);

		lc = new Listcell(dispositivoEmbarcada.getIndDispBaixado()?"Sim":"Não");
		lc.setParent(lstm);
		
		lc = new Listcell(String.format("%s - %s", dispositivoEmbarcada.getUsuario().getUsuarioId(), dispositivoEmbarcada.getUsuario().getNombusuario()));
		lc.setParent(lstm);
		
		
		PtoVtaUsuarioUltimaVendaDispositivoVO vo = ultimaVendaDispositivo.get(dispositivoEmbarcada.getImei());
		if (vo != null) {
			lc = new Listcell(String.format("%s - %s", vo.getPuntoventaId(), vo.getNombpuntoventa()));// mostrar o ponto de venda referente ao último bpe emitido
			lc.setParent(lstm);
		
			lc = new Listcell(String.format("%s - %s", vo.getUsuarioId(), vo.getNombusuario())); // Essa informação deve ser buscada na ultima venda registrada nessa maquina
			lc.setParent(lstm);
		}



		lstm.setAttribute("data", dispositivoEmbarcada);
	}
}
