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

import java.util.Iterator;
import java.util.List;

import com.rjconsultores.ventaboletos.entidad.Perfil;
import com.rjconsultores.ventaboletos.entidad.Usuario;
import com.rjconsultores.ventaboletos.entidad.UsuarioEmpresa;
import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion;

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

/**
 *
 * @author rodrigo
 */
public class RenderUsuario implements ListitemRenderer {

    public void render(Listitem lstm, Object o) throws Exception {
        Usuario usuario = (Usuario) o;

        Listcell lc = new Listcell(usuario.getUsuarioId().toString());
        lc.setParent(lstm);

        lc = new Listcell(usuario.getClaveUsuario());
        lc.setParent(lstm);

        lc = new Listcell(usuario.getEmpleado() == null ? "" : usuario.getEmpleado().getCveEmpleado());
        lc.setParent(lstm);

        lc = new Listcell(usuario.getNombusuario());
        lc.setParent(lstm);

        lc = new Listcell(usuario.getNombpaterno());
        lc.setParent(lstm);

        lc = new Listcell(usuario.getNombmaterno());
        lc.setParent(lstm);

        if (!usuario.getUsuarioPerfilList().isEmpty()) {
            Perfil p = usuario.getUsuarioPerfilList().get(0).getPerfil();
            if (p != null) {
                lc = new Listcell(p.getDescperfil());
            } else {
                lc = new Listcell("");
            }
            lc.setParent(lstm);
        }
        
        List<UsuarioEmpresa> usuarioEmpresaList = usuario.getUsuarioEmpresaList();
        StringBuilder empresasBuilder = new StringBuilder();
        
        if(!usuarioEmpresaList.isEmpty()){
        	
        	Iterator<UsuarioEmpresa> usuarioEmpresaIt = usuarioEmpresaList.iterator();
        	empresasBuilder.append(usuarioEmpresaIt.next().getEmpresa().getNombempresa());
        	
        	while(usuarioEmpresaIt.hasNext())
        		empresasBuilder.append(" \\ ")
        						.append(usuarioEmpresaIt.next().getEmpresa().getNombempresa());
        	        	
        }
        
        lc = new Listcell(empresasBuilder.toString());
    	lc.setParent(lstm);
        
    	List<UsuarioUbicacion> usuarioUbicacionList = usuario.getUsuarioUbicacionList();
    	StringBuilder ubicacionsBuilder = new StringBuilder();                
        if(!usuarioUbicacionList.isEmpty()){        	
        	
        	Iterator<UsuarioUbicacion> usuarioUbicacionIt = usuarioUbicacionList.iterator();
        	ubicacionsBuilder.append(usuarioUbicacionIt.next().getPuntoVenta().getNombpuntoventa());
        	
        	while(usuarioUbicacionIt.hasNext())
        		ubicacionsBuilder.append(" \\ ")
        						.append(usuarioUbicacionIt.next().getPuntoVenta().getNombpuntoventa());
        	
        }
        
        lc = new Listcell(ubicacionsBuilder.toString());
    	lc.setParent(lstm);

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