/*
 * 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.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import pe.siso.horario.Beans.Aula;
import pe.siso.horario.Beans.Horario;
import pe.siso.horario.Beans.ReporteEncuesta;
import pe.siso.horario.Services.HorarioServices;
import pe.siso.horario.Services.ReporteEncuestaServices;

/**
 *
 * @author fcelestino
 */
public class ServletReporteEncuesta extends HttpServlet {

    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
      String param=request.getParameter("Accion");
       if("listarPeriodoHorario".equals(param)){
            listarPeriodoHorario(request,response);
        }else if("listarPeriodoEncuesta".equals(param)){
            listarPeriodoEncuesta(request,response);
        }else if("listarDocentes".equals(param)){
            listarDocentes(request,response);
        }else if("listarDias".equals(param)){
            listarDias(request,response);
        }else if("listarGrupoAula".equals(param)){
            listarGrupoAula(request,response);
        }else if("listarAulaPorGrupo".equals(param)){
            listarAulaPorGrupo(request,response);
        }else if("reportePorDocenteEncuesta".equals(param)){
            reportePorDocenteEncuesta(request,response);
        }else if("listarDocentesEncuesta".equals(param)){
            listarDocentesEncuesta(request,response);
        }else if("reportePorDocenteEncuestaGeneral".equals(param)){
            reportePorDocenteEncuestaGeneral(request,response);
        }
    }

    private void listarPeriodoHorario(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String periodo = request.getParameter("periodo");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista =  servicios.listarPeriodoHorario();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>");
        for(int i=0;i<lista.size();i++){
            if(periodo.equals(lista.get(i).getCodigoPeriodoHorario())){
                pw.println( "   <option value='"+lista.get(i).getCodigoPeriodoHorario()+"' selected>"+lista.get(i).getNombrePeriodoHorario()+" (Activo)</option>");
            }else{
                pw.println( "   <option value='"+lista.get(i).getCodigoPeriodoHorario()+"'>"+lista.get(i).getNombrePeriodoHorario()+"</option>");
            }
                
        }
        pw.println( "</select>");
    }

    private void listarPeriodoEncuesta(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String periodo = request.getParameter("codPeriodoH");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista =  servicios.listarPeriodoEncuesta(periodo);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>");
        for(int i=0;i<lista.size();i++){
            if(lista.get(i).getEstadoActualEncuesta().equals("1")){
                pw.println( "   <option value='"+lista.get(i).getCodigoPeriodoEncuesta()+"' selected>"+lista.get(i).getNombrePeriodoEncuesta()+" (Activo)</option>");
            }else{
                pw.println( "   <option value='"+lista.get(i).getCodigoPeriodoEncuesta()+"'>"+lista.get(i).getNombrePeriodoEncuesta()+"</option>");
            }
                
        }
        pw.println( "</select>");
    }

    private void listarDocentes(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String periodoH = request.getParameter("codPeriodoH");
        String periodoE = request.getParameter("codPeriodoE");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista =  servicios.listarDocentes(periodoH,periodoE);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>");
        for(int i=0;i<lista.size();i++){
            pw.println( "   <option value='"+lista.get(i).getCodigoDocente()+"'>"+lista.get(i).getNombreDocente()+"</option>");        
        }
        pw.println( "</select>");
    }

    private void listarDias(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String periodoH = request.getParameter("codPeriodoH");
        String Docente = request.getParameter("Docente");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista =  servicios.listarDias(periodoH,Docente);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>");
        for(int i=0;i<lista.size();i++){
            pw.println( "   <option value='"+lista.get(i).getCodigoDia()+"'>"+lista.get(i).getNombreDia()+"</option>");        
        }
        pw.println( "</select>");
    }

    private void listarGrupoAula(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String periodoH = request.getParameter("codPeriodoH");
        String Docente = request.getParameter("Docente");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista =  servicios.listarGrupoAula(periodoH,Docente);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        System.out.println("----------->>> "+lista.size());
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>");
        int cont = 1;
        for(int i=0;i<lista.size();i++){
            pw.println( "   <option value='"+lista.get(i).getCadenaGrupoAula()+"'> Grupo "+cont+"</option>");        
            cont++;
        }
        pw.println( "</select>");
    }

    private void listarAulaPorGrupo(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String cadenaAula = request.getParameter("cadenaAula");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<Aula> lista = null;
        lista =  servicios.listarAulaPorGrupo(cadenaAula);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>");
        if(lista.size()>0){
            pw.println("   <option value='T'>TODAS LAS AULA DEL GRUPO</option>");
        }
        for(int i=0;i<lista.size();i++){
            String nombreAula = lista.get(i).getNombreLocal()+" :: "+lista.get(i).getNombreNivel()+" :: "+lista.get(i).getNombreTipoGrado()+" :: "+lista.get(i).getNombreGrado()+" :: "+lista.get(i).getNombreSeccion()+" :: "+lista.get(i).getNombreTurno();
            pw.println( "   <option value='"+lista.get(i).getCodigoAula()+"'>"+nombreAula+"</option>");        
        }
        pw.println( "</select>");
    }

    private void reportePorDocenteEncuesta(HttpServletRequest request, HttpServletResponse response) throws IOException {
        NumberFormat decimal = new DecimalFormat("#0.00");
        String codPeriodoE = request.getParameter("codPeriodoE");
        String codDocente = request.getParameter("codDocente");
        String cadenaAula = request.getParameter("cadenaAula");
        String codigoAula = request.getParameter("cmbAula");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        HorarioServices serviciosHor = new HorarioServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista = servicios.puntajeDocente(codPeriodoE,codDocente,cadenaAula,codigoAula);
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<style> a:hover { text-decoration: none; } </style>"
                + "<div style=\"border: 1px solid #CCCCCC;\">\n" +
"                       <div class=\"table-header\">\n" +
"                           Puntaje en encuestas" +
"                       </div>\n" +
"                       <div>\n" +
"                           <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">\n" +

"                               <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >\n" +
"                                   <thead>\n" +
"                                       <tr role=\"row\">\n" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >N°</th>\n" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">DOCENTE</th>\n" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">PLANA</th>\n" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">PUNTAJE</th>\n" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">CANTIDAD DE<BR>ENCUESTAS</th>\n" +
"                                       </tr>\n" +
"                                   </thead>\n" +
"                                   <tbody>");
        int cont=1;
        for(int i=0;i<lista.size();i++){
            double puntaje = Double.parseDouble(lista.get(i).getP_puntaje());
            Horario docente = serviciosHor.nombreDocente(codDocente);
            String puntajeReducido=decimal.format(puntaje).replace(",", ".");
            pw.println("<tr>"
                    + "     <td align='center'>"+cont+"</td>"
                    + "     <td>"+docente.getH_apellidosDocente()+", "+docente.getH_nombreDocente()+"</td>"
                    + "     <td>"+lista.get(i).getP_nombrePlana()+"</td>"
                    + "     <td  align='center'  ><span id='puntaje' ><a href='javascript:ver(1,\""+puntajeReducido+"\",\""+puntaje+"\")'>"+puntajeReducido+"</a></span></td>"
                    + "     <td  align='center'  >"+lista.get(i).getP_cantidadEncuestas()+" Encuestas</td>"
                    + " </tr>");
            cont++;
        }
        
        if(lista.size()<1){
            pw.println("<tr>"
                    + "     <td colspan='5' align='center' style='color:red;'> No hay registros en encuestas para esta aula</td>"
                    + "</tr>");
        }
            
        
        pw.println("        </tbody>"
                + "     </table>"
                + "</div></div></div>");
        
    }

    private void listarDocentesEncuesta(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String periodoH = request.getParameter("codPeriodoH");
        String periodoE = request.getParameter("codPeriodoE");
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        lista =  servicios.listarDocentesEncuesta(periodoH,periodoE);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println( "<select class='form-control validate[required]' id='"+nombre+"' onchange='"+accion+"' >" +
                    "   <option value=''>[Seleccione]</option>"+
                    "   <option value='todo'>TODOS</option>");
        for(int i=0;i<lista.size();i++){
            pw.println( "   <option value='"+lista.get(i).getCodigoDocente()+"'>"+lista.get(i).getNombreDocente()+"</option>");        
        }
        pw.println( "</select>");
    }

    private void reportePorDocenteEncuestaGeneral(HttpServletRequest request, HttpServletResponse response) throws IOException {
        NumberFormat decimal = new DecimalFormat("#0.00");
        String periodoH = request.getParameter("codPeriodoH");
        String periodoE = request.getParameter("codPeriodoE");
        String codigoDocente = request.getParameter("codDocente");
        int cantRegistro=0;
        
        int pagina = Integer.parseInt(request.getParameter("pagina"));
        int cantidad = Integer.parseInt(request.getParameter("cantidad"));
        
        int inicio = (pagina-1)*cantidad;
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        ReporteEncuestaServices servicios = new ReporteEncuestaServices();
        ArrayList<ReporteEncuesta> lista = null;
        ArrayList<ReporteEncuesta> lista2 = null;
        ArrayList<ReporteEncuesta> lista3 = null;
        lista =  servicios.listarDocentesEncuesta(periodoH, periodoE, codigoDocente, inicio, cantidad);
        cantRegistro=servicios.cantidadListaDocentesEncuesta(periodoH, periodoE, codigoDocente);
        
    //--------------CALCULO DE PAGINADO---------
        int numero = cantRegistro/cantidad;
        int resto = cantRegistro%cantidad;
        if(resto>0){
            numero = numero+1;
        }
    //----------------------------------------------
        
    pw.println("<div style=\"border: 1px solid #CCCCCC;\">" +
"                       <div class=\"table-header\">" +
"                           <table width=\"100%\" height=\"60\">"
                + "             <tbody>"
                + "                 <tr>"
                + "                     <td>Listado de Docentes</td>"
                + "                     <td align=\"right\">");
        if(!codigoDocente.equals("todo")){
    pw.println("                         <button class=\"btn btn-sm btn-warning\" onclick=\"exportarLista('"+codigoDocente+"');\" type=\"button\">" +
"                                               <i class=\"ace-icon fa fa-file-excel-o icon-on-right bigger-110\"></i>" +
"                                               Exportar Lista" +
"                                           </button>");
        }
    pw.println("                         <button class=\"btn btn-sm btn-warning\" onclick=\"exportarTodo('todo');\" type=\"button\">" +
"                                               <i class=\"ace-icon fa fa-file-excel-o icon-on-right bigger-110\"></i>" +
"                                               Exportar todo" +
"                                           </button>"
                + "                     </td>"
                + "                     <td width=\"10\"></td>"
                + "                 </tr>"
                + "             </tbody>"
                + "         </table>" +
"                       </div>" +
"                       <div>" +
"                           <div class=\"dataTables_wrapper form-inline no-footer\" id=\"sample-table-2_wrapper\">" +

"                               <table class=\"table table-striped table-bordered table-hover dataTable no-footer\" id=\"sample-table-2\" role=\"grid\" aria-describedby=\"sample-table-2_info\" >" +
"                                   <thead>" +
"                                       <tr role=\"row\">" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\" >N°</th>" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">DOCENTE</th>" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">GRUPO</th>" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">PLANA</th>" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">PROMEDIO</th>" +
"                                           <th tabindex=\"0\" class=\"center\" rowspan=\"1\" colspan=\"1\">CANTIDAD ENCUESTAS</th>" +
"                                       </tr>" +
"                                   </thead>" +
"                                   <tbody>");
        int cont_ini = 0;
        int cont_fin = 0;
        int cont= inicio+1;
        int cant= 0; 
        String estilo="";
        int contador=0;
        for(int i=0; i<lista.size(); i++){
            if(i==0){ cont_ini=cont;}
            //String cadenaGrupoAula = lista.get(i).getCadenaGrupoAula();
            String codDocente = lista.get(i).getCodigoDocente();
            if(cont%2==0){ 
                estilo="#FFFAED"; 
            }else{
                estilo="#F3FDFF"; 
            }
            lista2 = servicios.listarGrupoAula2(periodoH, codDocente);
            
            if(lista2.size() == 0){
                cant = lista2.size()+2;
            }else{
                cant = lista2.size()+1;
            }
            pw.println("<tr>");
                pw.println("<td rowspan='"+cant+"' align='center' style='vertical-align:middle;'>");
                    pw.println(""+cont+"");
                pw.println("</td>");
//                pw.println("<td rowspan='"+cant+"'>");
//                    pw.println(""+lista.get(i).getNombreDocente()+"");
//                pw.println("</td>");
            pw.println("</tr>");
            if(lista2.size() == 0){
                String nomDocente = lista.get(i).getNombreDocente();
            pw.println("<tr>");
                pw.println("<td style='vertical-align:middle;'>");
                        pw.println(""+nomDocente+"");                            
                pw.println("</td>");
                pw.println("<td style='vertical-align:middle;' colspan='4'>");
                        pw.println(" DOCENTE ADICIONAL ");                            
                pw.println("</td>");
            pw.println("</tr>");
            }else{
                for(int a=0;a<lista2.size(); a++){
                    String nomDocente = lista.get(i).getNombreDocente();
                    String puntajeReducido = "";                
                    String grupoAula = lista2.get(a).getGrupoAula();
                    String local = lista2.get(a).getP_sede();
                    String cadenaString = lista2.get(a).getCadenaGrupoAula();
                    String nivel = lista2.get(a).getP_nivel();
                    String turno = lista2.get(a).getP_turno();
                    String plana= lista2.get(a).getP_nombrePlana();

                    String cadena = local+" - "+nivel+" - "+turno+"<br><b>"+grupoAula+"</b>";
                    pw.println("<tr style='background-color:"+estilo+";'>");
                        pw.println("<td style='vertical-align:middle;'>");
                            pw.println(""+nomDocente+"");                            
                        pw.println("</td>");
                        pw.println("<td align='center' style='vertical-align:middle;'>");
                            pw.println(""+cadena+"");
                            pw.println("<input type='hidden' value='"+cadenaString+"'>");                            
                        pw.println("</td>");
                         pw.println("<td style='vertical-align:middle;'>");
                            pw.println(""+plana+"");                          
                        pw.println("</td>");
                        lista3 = servicios.puntajeDocente(periodoE, codDocente, cadenaString);
                        if(lista3.size() != 0){
                            for(int p=0; p<lista3.size();p++){
                                double puntaje = Double.parseDouble(lista3.get(p).getP_puntaje());
                                puntajeReducido=decimal.format(puntaje).replace(",", ".");
                                String cantEncuestas = lista3.get(p).getP_cantidadEncuestas();
                        pw.println("<td align='center' style='vertical-align:middle;'>");
                            pw.println("<span id='puntaje"+contador+"' ><a href='javascript:ver(1,\""+puntajeReducido+"\",\""+puntaje+"\",\""+contador+"\")'>"+puntajeReducido+"</a></span>");
                        pw.println("</td>");
                        pw.println("<td align='center' style='vertical-align:middle;'>");
                            pw.println(""+cantEncuestas+"");
                        pw.println("</td>");
                            }   
                        }else{
                            puntajeReducido = "[SIN PROMEDIO]";
                        pw.println("<td align='center' style='vertical-align:middle;'>");
                            pw.println("<span id='puntaje' style='color:red;'>"+puntajeReducido+"</span>");
                        pw.println("</td>");
                        pw.println("<td align='center' style='vertical-align:middle;'>");
                            pw.println("0");
                        pw.println("</td>");
                        }
                    pw.println("</tr>");
                    contador++;
                } 
            }
                                    
            cont++; 
        }            
        cont_fin=cont-1;
        pw.println("</body></table>");
        if (cantRegistro >= cantidad) {

            pw.println("<div class='row'>" +
                            "<div class='col-xs-6'>" +
                                "<div class='dataTables_info' id='sample-table-2_info' role='status' aria-live='polite'> " +
                                    "Mostrando del "+cont_ini+" al "+cont_fin+" de "+cantRegistro+" Docente(s)" +
                                "</div> " +
                            "</div> " +
                            "<div class='col-xs-6'> " +
                                "<div class='dataTables_paginate paging_simple_numbers' id='sample-table-2_paginate'>" +
                                    "<ul class='pagination'>");

            int anterior = pagina - 1;
            int siguiente = pagina + 1;
            if (pagina > 1) {
                pw.println("<li tabindex='0' class='paginate_button previous' id='sample-table-2_previous' aria-controls='sample-table-2'> " +
                                "<a href='javascript:val_reporte(" + 1 + ");'> << </a>" +
                           "</li>");
                pw.println("<li tabindex='0' class='paginate_button previous' id='sample-table-2_previous' aria-controls='sample-table-2'> " +
                                "<a href='javascript:val_reporte(" + anterior + ");'>Anterior</a>" +
                           "</li>");

                //pw.println("<li><a href=\"javascript:buscarAula(" + anterior + ");\"><span>Anterior</span></a></li>");
            }else{
                pw.println("<li tabindex='0' class='paginate_button previous disabled' id='sample-table-2_previous' aria-controls='sample-table-2'> " +
                                "<a> << </a>" +
                           "</li>");
                pw.println("<li tabindex='0' class='paginate_button previous disabled' id='sample-table-2_previous' aria-controls='sample-table-2'> " +
                                "<a>Anterior</a>" +
                           "</li>");
            }

            //for(int i = 1; i<=numero; i++){
            if (numero > 5) {
                if (pagina > 2) {
                    if (numero >= pagina + 5) {
                        for (int i = pagina - 2; i < pagina + 3; i++) {
                            if (pagina == i) {
                                pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                            "</li>");
                                //pw.println("<li ><a href=\"javascript:buscarAula(" + i + ");\" style='background-color:#00A9FB'><span>" + i + "</span></a></li>");
                            } else {
                                pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                            "</li>");
                                //pw.println("<li><a href=\"javascript:buscarAula(" + i + ");\" ><span>" + i + "</span></a></li>");
                            }
                        }
                    } else {
                        if (pagina == numero) {
                            for (int i = pagina - 4; i <= numero; i++) {
                                if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                            }
                        } else if (pagina == numero - 1) {
                            for (int i = pagina - 3; i <= numero; i++) {
                                if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                            }
                        } else if (pagina == numero - 2) {
                            for (int i = pagina - 2; i <= numero; i++) {
                                if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                            }
                        } else if (pagina == numero - 3) {
                            for (int i = pagina - 1; i <= numero; i++) {
                                if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                            }
                        } else if (pagina == numero - 4) {
                            for (int i = pagina; i <= numero; i++) {
                                if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                            }
                        }
                    }
                } else {
                    if (pagina == 1) {
                        for (int i = pagina; i < pagina + 5; i++) {
                            if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                        }
                    } else {
                        for (int i = pagina - 1; i < pagina + 4; i++) {
                            if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                        }
                    }
                }
            } else {
                for (int i = 1; i <= numero; i++) {
                    if (pagina == i) {
                                    pw.println("<li tabindex='0' class='paginate_button active' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                } else {
                                    pw.println("<li tabindex='0' class='paginate_button' aria-controls='sample-table-2'>" +
                                                    "<a href='javascript:val_reporte(" + i + ");'>" + i + "</a>" +
                                                "</li>");
                                }
                }
            }
                                                                //}

            if (pagina < numero) {
                pw.println("<li tabindex='0' class='paginate_button next' id='sample-table-2_next' aria-controls='sample-table-2'>" +
                                "<a href='javascript:val_reporte(" + siguiente + ");'>Siguiente</a>" +
                            "</li>");
                pw.println("<li tabindex='0' class='paginate_button next' id='sample-table-2_next' aria-controls='sample-table-2'>" +
                                "<a href='javascript:val_reporte(" + numero + ");'> >> </a>" +
                            "</li>");
            }else{
                pw.println("<li tabindex='0' class='paginate_button next disabled' id='sample-table-2_next' aria-controls='sample-table-2'>" +
                                "<a>Siguiente</a>" +
                            "</li>");
                pw.println("<li tabindex='0' class='paginate_button next disabled' id='sample-table-2_next' aria-controls='sample-table-2'>" +
                                "<a> >> </a>" +
                            "</li>");
            }
            pw.println(         "</ul>" +
                            "</div>" +
                        "</div>" +
                    "</div>");
        }



        //::::::::::::::: PIE ::::::::::::::::
        pw.println("</div>" +
        "</div>" +
    "</div>");
        
        
    }
}
