/*
 * 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.Sede;
import pe.siso.horario.Beans.ZonaSede;
import pe.siso.horario.Services.SedeServices;
import pe.siso.horario.Services.ZonaSedeServices;

/**
 *
 * @author fcelestino
 */
public class ServletSede extends HttpServlet {
    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String param=request.getParameter("Accion");
        if("cargarSede".equals(param)){
            cargarSede(request,response);
        }else if("cargarSedeDirage".equals(param)){
            cargarSedeDirage(request,response);
        }else if("cargarSedeAdmin".equals(param)){
            cargarSedeAdmin(request,response);
        }else if("cargarSedeAula".equals(param)){
            cargarSedeAula(request,response);
        }else if("cargarSedeDirageSesion".equals(param)){
            cargarSedeDirageSesion(request,response);
        }else if("cargarSedeAdminSesion".equals(param)){
            cargarSedeAdminSesion(request,response);
        }else if("sessionSede".equals(param)){
            sessionSede(request,response);
        }else if("cargarSedeAulaSession".equals(param)){
            cargarSedeAulaSession(request,response);
        }else if("buscarSedesAsignadas".equals(param)){
            buscarSedesAsignadas(request,response);
        }
    }

    private void cargarSede(HttpServletRequest request, HttpServletResponse response) throws IOException {
        SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        
        lista=servicios.listarSedes();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        for(int i=0; i< lista.size(); i++) {
            pw.println("<option value='"+lista.get(i).getCodigoSede()+"'>"+lista.get(i).getNombreSede()+"</option>");
        }
        pw.println("</select>");
    }

    private void cargarSedeDirage(HttpServletRequest request, HttpServletResponse response) throws IOException {
        SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        
        lista=servicios.listarSedesDirage();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='form-control validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        pw.println("<option value='todo'>TODO</option>");
        for(int i=0; i< lista.size(); i++) {
            pw.println("<option value='"+lista.get(i).getCodigoSede()+"'>"+lista.get(i).getNombreSede()+"</option>");
        }

        pw.println("</select>");
    }

    private void cargarSedeAdmin(HttpServletRequest request, HttpServletResponse response) throws IOException {
       SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        
        lista=servicios.listarSedesDirage();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        pw.println("<option value='todo'>TODO</option>");
        for(int i=0; i< lista.size(); i++) {
            pw.println("<option value='"+lista.get(i).getCodigoSede()+"'>"+lista.get(i).getNombreSede()+"</option>");
        }

        pw.println("</select>");
    }

    private void cargarSedeAula(HttpServletRequest request, HttpServletResponse response) throws IOException {
        SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        
        lista=servicios.listarSedesAula();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='form-control validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        
        for(int i=0; i< lista.size(); i++) {
            pw.println("<option value='"+lista.get(i).getCodigoSede()+"'>"+lista.get(i).getNombreSede()+"</option>");
        }

        pw.println("</select>");
    }

    private void cargarSedeDirageSesion(HttpServletRequest request, HttpServletResponse response) throws IOException {
        SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        int codigoLocal = Integer.parseInt(request.getParameter("codigoLocal"));
        
        lista=servicios.listarSedesDirage();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        pw.println("<option value='todo'>TODO</option>");
        for(int i=0; i< lista.size(); i++) {
            if(codigoLocal==lista.get(i).getCodigoSede()){
                pw.println("<option value='"+lista.get(i).getCodigoSede()+"' selected>"+lista.get(i).getNombreSede()+"</option>");
            }else{
                pw.println("<option value='"+lista.get(i).getCodigoSede()+"'>"+lista.get(i).getNombreSede()+"</option>");
            }
            
        }

        pw.println("</select>");
    }

    private void cargarSedeAdminSesion(HttpServletRequest request, HttpServletResponse response) throws IOException {
        SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        int codigoLocal = Integer.parseInt(request.getParameter("codigoLocal"));
        lista=servicios.listarSedesDirage();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        pw.println("<option value='todo'>TODO</option>");
        for(int i=0; i< lista.size(); i++) {
            if(codigoLocal==lista.get(i).getCodigoSede()){
                 pw.println("<option value='"+lista.get(i).getCodigoSede()+"' selected>"+lista.get(i).getNombreSede()+"</option>");
            }else{
                 pw.println("<option value='"+lista.get(i).getCodigoSede()+"' >"+lista.get(i).getNombreSede()+"</option>");
            }
         
           
        }

        pw.println("</select>");
    }

    private void sessionSede(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session_actual = request.getSession(true);
        Sede sede = new Sede();
        int codigoSede = 0;
        String codSede = request.getParameter("codLocal");
        if(codSede.equals("todo")){
            codigoSede = 0;
        }else{
            codigoSede = Integer.parseInt(request.getParameter("codLocal"));
        }
        //
        sede.setCodigoSede(codigoSede);
        session_actual.setAttribute("sedeSessionCod",sede);
    }

    private void cargarSedeAulaSession(HttpServletRequest request, HttpServletResponse response) throws IOException {
        SedeServices servicios = new SedeServices();
        ArrayList<Sede> lista = null;
        String accion = request.getParameter("accion");
        String nombre = request.getParameter("nombre");
        int sedecod = Integer.parseInt(request.getParameter("sedeCod"));
        
        lista=servicios.listarSedesAula();
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<select id='"+nombre+"' class='form-control validate[required]' onChange='"+accion+"'>");
        pw.println("<option value=''>[Seleccione]</option>");
        
        for(int i=0; i< lista.size(); i++) {
            if(sedecod==lista.get(i).getCodigoSede()){
                pw.println("<option value='"+lista.get(i).getCodigoSede()+"' selected>"+lista.get(i).getNombreSede()+"</option>");
            }else{
                pw.println("<option value='"+lista.get(i).getCodigoSede()+"'>"+lista.get(i).getNombreSede()+"</option>");
            }
            
        }

        pw.println("</select>");
    }

    private void buscarSedesAsignadas(HttpServletRequest request, HttpServletResponse response) throws IOException {
        String codigoZona = request.getParameter("codigoZona");
        ArrayList<ZonaSede> lista = null;
        ZonaSedeServices servicios = new ZonaSedeServices();
        lista = servicios.listarSedesConZona(codigoZona);
        
        response.setContentType("text/html");
        PrintWriter pw = response.getWriter();
        
        pw.println("<ul class=\"list-unstyled\">");
        for(int i = 0; i<lista.size(); i++){
            pw.println("<li>");
                pw.println("<i class=\"ace-icon fa fa-caret-right blue\"></i>"+lista.get(i).getNombreSede()+"");
            pw.println("</li>");
        }
        pw.println("</ul>");
        
    }
}
