SaveServlet.java 7.16 KB
Newer Older
1 2 3 4 5
package com.roshka.proyectofinal.Postulante;

import com.roshka.proyectofinal.DataBase;
import com.roshka.proyectofinal.entity.Postulante;
import com.roshka.proyectofinal.entity.Bootcamp;
6
import com.roshka.proyectofinal.entity.PostulanteLenguaje;
7
import jakarta.servlet.RequestDispatcher;
8 9 10 11 12 13 14 15 16 17 18 19 20 21
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;

@WebServlet("/SaveServlet")
public class SaveServlet extends HttpServlet {
22
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
23 24 25
            throws ServletException, IOException {

        response.setContentType("text/html");
Angel Zarate committed
26
        PrintWriter out = response.getWriter();
27
        boolean rechazarDatos = false;
28
        int bootcampActual = Integer.parseInt(request.getParameter("bootcamp"));
29 30 31 32

        try {
            Connection con = DataBase.getConnection();
            Statement stmt = con.createStatement();
Angel Zarate committed
33 34 35 36 37 38 39 40 41 42
            ResultSet rs = stmt.executeQuery(
                    "SELECT correo,bootcamp_id FROM postulante WHERE postulante.bootcamp_id =" + bootcampActual);

            String nombre = request.getParameter("nombre");
            String apellido = request.getParameter("apellido");
            int cedula = Integer.parseInt(request.getParameter("cedula"));
            String correo = request.getParameter("correo");
            // BUCLE PARA VERIFICAR EL CORREO EN EL BOOTCAMP ACTUAL
            while (rs.next()) {
                String correoBase = rs.getString("correo");
43
                int bootcampIdBase = rs.getInt("bootcamp_id");
Angel Zarate committed
44
                if (correo.equals(correoBase) && (bootcampIdBase == bootcampActual)) {
45
                    rechazarDatos = true;
46 47
                }
            }
48 49
            rs = stmt.executeQuery("SELECT * FROM lenguaje");
            int contador = 0;
Angel Zarate committed
50
            while (rs.next()) {
51
                String nombreLenguaje = rs.getString("nombre_lenguaje");
Angel Zarate committed
52
                if (request.getParameter(nombreLenguaje) != null) {
53 54 55
                    contador++;
                }
            }
Angel Zarate committed
56
            if (contador == 0) {
57 58
                rechazarDatos = true;
            }
Angel Zarate committed
59 60
            String telefono = request.getParameter("telefono");
            String direccion = request.getParameter("direccion");
61 62 63
            boolean experienciaLaboral = false;
            boolean universidad = false;
            boolean notebook = false;
Angel Zarate committed
64
            if (request.getParameter("experiencia_laboral") != null) {
65 66
                experienciaLaboral = true;
            }
Angel Zarate committed
67
            if (request.getParameter("notebook") != null) {
68 69
                notebook = true;
            }
Angel Zarate committed
70
            if (request.getParameter("universidad") != null) {
71 72
                universidad = true;
            }
73

Angel Zarate committed
74
            Postulante postulante = new Postulante();
75 76 77
            PostulanteLenguaje cargarLenguaje = new PostulanteLenguaje();
            int status = 0;
            int statusLenguaje = 0;
Angel Zarate committed
78 79
            // SI LOS DATOS SON CORRECTOS NO SE RECHAZAN ENTONCES CARGA A LA BASE
            if (!rechazarDatos) {
80 81 82 83 84 85 86 87 88
                postulante.setNombre(nombre);
                postulante.setApellido(apellido);
                postulante.setNro_cedula(cedula);
                postulante.setCorreo(correo);
                postulante.setTelefono(telefono);
                postulante.setDireccion(direccion);
                postulante.setExpLaboral(experienciaLaboral);
                postulante.setEstudioUniversitario(universidad);
                postulante.setNotebook(notebook);
89
                postulante.setBootcampId(bootcampActual);
90
                postulante.setAceptado(false);
Angel Zarate committed
91
                status = PostulanteDao.save(postulante);
92

Angel Zarate committed
93 94 95
                rs = stmt.executeQuery("SELECT id FROM postulante WHERE postulante.nro_cedula=" + cedula
                        + " AND postulante.bootcamp_id=" + bootcampActual + " ORDER BY id DESC LIMIT 1");
                int idUltimoPostulante = 0;
96 97 98 99
                while (rs.next()) {
                    idUltimoPostulante = rs.getInt("id");
                }
                rs = stmt.executeQuery("SELECT * FROM lenguaje");
Angel Zarate committed
100
                while (rs.next()) {
101 102
                    int idLenguaje = rs.getInt("id");
                    String nombreLenguaje = rs.getString("nombre_lenguaje");
Angel Zarate committed
103
                    if (request.getParameter(nombreLenguaje) != null) {
104 105 106 107 108
                        cargarLenguaje.setIdLenguaje(idLenguaje);
                        cargarLenguaje.setIdPostulante(idUltimoPostulante);
                        statusLenguaje = PostulanteLenguajeDao.save(cargarLenguaje);
                    }
                }
109
            }
Angel Zarate committed
110 111
            if (status > 0) {
                // out.print("<p>Record saved successfully!</p>");
112
                out.print(" <div class=\"alert\">\n" +
Angel Zarate committed
113 114
                        "  <span class=\"closebtn\" onclick=\"this.parentElement.style.display='none';\">&times;</span> \n"
                        +
115 116
                        "  <strong>Formulario Cargado!</strong> EXITOSAMENTE CARGADO\n" +
                        "</div>");
117 118 119
                request.setAttribute("bootcamp", bootcampActual);
                RequestDispatcher rd = request.getRequestDispatcher("formulario.jsp");
                rd.include(request, response);
Angel Zarate committed
120 121 122 123
                // RequestDispatcher rd = request.getRequestDispatcher("formulario.jsp");
                // rd.include(request, response);
            } else {
                if (rechazarDatos) {
124 125

                    out.print("<div class='alert info''>");
Angel Zarate committed
126 127
                    out.print(
                            "<span class='closebtn'' onclick='this.parentElement.style.display='none';'>&times;</span>");
128 129
                    out.print("<strong>Formulario ya Cargado!</strong> YA EXISTE EL FORMULARIO");
                    out.print("</div>");
Angel Zarate committed
130
                    // request.getRequestDispatcher("formulario.jsp").include(request, response);
131 132 133
                    request.setAttribute("bootcamp", bootcampActual);
                    RequestDispatcher rd = request.getRequestDispatcher("formulario.jsp");
                    rd.include(request, response);
Angel Zarate committed
134
                } else {
135

136
                    out.println("Error al cargar datos");
137
                    out.print("<div class='alert info error'>" +
Angel Zarate committed
138 139
                            "<span class=\"closebtn\" onclick=\"this.parentElement.style.display='none';\">&times;</span> \n"
                            +
140
                            "<strong>Formulario ya Cargado!</strong> YA EXISTE EL FORMULARIO\n" +
141
                            "</div>");
142 143 144
                    request.setAttribute("bootcamp", bootcampActual);
                    RequestDispatcher rd = request.getRequestDispatcher("formulario.jsp");
                    rd.include(request, response);
Angel Zarate committed
145
                    // request.getRequestDispatcher("formulario.jsp").include(request, response);
146
                }
147
            }
Angel Zarate committed
148 149
        } catch (Exception ex) {
            ex.printStackTrace();
150
        }
151 152 153
        out.close();
    }
}