/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package pe.siso.horario.Servlets;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import pe.siso.horario.Beans.Categoria;
import pe.siso.horario.Beans.Menu;
import pe.siso.horario.Beans.Modulo;
import pe.siso.horario.Services.CategoriaServices;
import pe.siso.horario.Services.ModuloServices;

/**
 *
 * @author fcelestino
 */
public class ServletMenu extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String param=request.getParameter("accion");
        if("listarMenu".equals(param)){
            listarMenu(request,response);
        }else if("paginaMenuSession".equals(param)){
            paginaMenuSession(request,response);
        }
    }

    
   
    
    
    private void listarMenu(HttpServletRequest request, HttpServletResponse response) throws IOException {
        ModuloServices serviciomodulo= new ModuloServices();
        int tipoUsuario = Integer.parseInt(request.getParameter("codTipoUsuario"));
        int codModulo = Integer.parseInt(request.getParameter("codModulo"));
        int codCategoria = Integer.parseInt(request.getParameter("codCategoria"));
        //ArrayList<Modulo> listamodulo=serviciomodulo.listarModulo();
        ArrayList<Modulo> listamodulo=serviciomodulo.listarModulo(tipoUsuario);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<ul class=\"nav nav-list\">");
        for(int i=0; i< listamodulo.size(); i++) {
            if(codModulo==listamodulo.get(i).getIdModulo()){
                pw.println("<li class=\"active open\"> ");
            }else{
                pw.println("<li class=\"\"> ");
            }
            pw.println("<a href=\""+listamodulo.get(i).getAccionModulo()+"\" class=\"dropdown-toggle\"> " +
            "<i class=\"menu-icon fa "+listamodulo.get(i).getIconoModulo()+"\"></i> " +
            "<span class=\"menu-text\"> "+listamodulo.get(i).getNombreModulo()+" </span> " +
            "<b class=\"arrow fa fa-angle-down\"></b> " +
            "</a> ");
                CategoriaServices serviciocategoria = new  CategoriaServices(); 
                //ArrayList<Categoria> listacategoria=serviciocategoria.listarCategoria(listamodulo.get(i).getIdModulo());
                ArrayList<Categoria> listacategoria=serviciocategoria.listarCategoria(listamodulo.get(i).getIdModulo(),tipoUsuario);
                
                pw.println("<b class=\"arrow\"></b> " +
                    "<ul class=\"submenu\">");
                
                for(int j=0; j< listacategoria.size(); j++) {
                    if(codCategoria==listacategoria.get(j).getIdCategoria()){
                        pw.println("<li class=\"active\">" );
                    }else{
                         pw.println("<li class=\"\">" );
                    }
                    //pw.println("<a href=\""+listacategoria.get(j).getAccionCategoria()+"\">" +
                    pw.println("<a href=\"javascript:paginaMenuSession("+listamodulo.get(i).getIdModulo()+","+listacategoria.get(j).getIdCategoria()+",'"+listacategoria.get(j).getAccionCategoria()+"');\">" +
                    "<i class=\"\"></i>" +
                    listacategoria.get(j).getNombreCategoria() +
                    "</a>" +
                    "<b class=\"arrow\"></b>" +
                    "</li>");
                        
                }
                
            pw.println("</ul></li> "+              
            "");
        }       
        pw.println("</ul>");
    }

     private void paginaMenuSession2(HttpServletRequest request, HttpServletResponse response) {
        String pagina = request.getParameter("pagina");
        
        CategoriaServices servicio = new CategoriaServices();
        Categoria consulta = new Categoria();
        
        consulta = servicio.consultarCategoria(pagina);
        int codMod = consulta.getIdModulo();
        int codCat = consulta.getIdCategoria();
        
        HttpSession session_actual = request.getSession(true);
        
        Menu menu = new Menu();
        menu.setCodModulo(codMod);
        menu.setCodCategoria(codCat);
        
        session_actual.setAttribute("menu",menu);
    }
/* -----------------------------------------FORMATO DE DEMO MENU--------------------------------------------
    private void listarMenu(HttpServletRequest request, HttpServletResponse response) throws IOException {
        ModuloService serviciomodulo= new ModuloService();
        int tipoUsuario = Integer.parseInt(request.getParameter("codTipoUsuario"));
        //ArrayList<Modulo> listamodulo=serviciomodulo.listarModulo();
        ArrayList<Modulo> listamodulo=serviciomodulo.listarModulo(tipoUsuario);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<ul class=\"nav nav-list\">");
        for(int i=0; i< listamodulo.size(); i++) {
            pw.println("<li class=\"\"> " +
            "<a href=\""+listamodulo.get(i).getAccionModulo()+"\" class=\"dropdown-toggle\"> " +
            "<i class=\"menu-icon fa "+listamodulo.get(i).getIconoModulo()+"\"></i> " +
            "<span class=\"menu-text\"> "+listamodulo.get(i).getNombreModulo()+" </span> " +
            "<b class=\"arrow fa fa-angle-down\"></b> " +
            "</a> ");
                CategoriaService serviciocategoria = new  CategoriaService();
                //ArrayList<Categoria> listacategoria=serviciocategoria.listarCategoria(listamodulo.get(i).getIdModulo());
                ArrayList<Categoria> listacategoria=serviciocategoria.listarCategoria(listamodulo.get(i).getIdModulo(),tipoUsuario);
                
                pw.println("<b class=\"arrow\"></b> " +
                    "<ul class=\"submenu\">");
                
                for(int j=0; j< listacategoria.size(); j++) {
                    pw.println("<li class=\"\">" +
                    "<a href=\""+listacategoria.get(j).getAccionCategoria()+"\">" +
                    "<i class=\"\"></i>" +
                    listacategoria.get(j).getNombreCategoria() +
                    "</a>" +
                    "<b class=\"arrow\"></b>" +
                    "</li>");
                }
                
            pw.println("</ul></li> "+              
            "");
        }       
        pw.println("</ul>");
    }
    -----------------------------------------FORMATO DE DEMO MENU-------------------------------------------- */

    private void paginaMenuSession(HttpServletRequest request, HttpServletResponse response) {
        int codMod = Integer.parseInt(request.getParameter("codMod"));
        int codCat = Integer.parseInt(request.getParameter("codCat"));
        
        HttpSession session_actual = request.getSession(true);
        
        Menu menu = new Menu();
        menu.setCodModulo(codMod);
        menu.setCodCategoria(codCat);
        
        session_actual.setAttribute("menu",menu);
    }

}
