SaveServlet.java 6.47 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 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
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 {
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

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

        try {
            Connection con = DataBase.getConnection();
            Statement stmt = con.createStatement();
Angel Zarate committed
32 33 34 35 36 37 38 39 40 41
            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");
42
                int bootcampIdBase = rs.getInt("bootcamp_id");
Angel Zarate committed
43
                if (correo.equals(correoBase) && (bootcampIdBase == bootcampActual)) {
44
                    rechazarDatos = true;
45 46
                }
            }
47 48
            rs = stmt.executeQuery("SELECT * FROM lenguaje");
            int contador = 0;
Angel Zarate committed
49
            while (rs.next()) {
50
                String nombreLenguaje = rs.getString("nombre_lenguaje");
Angel Zarate committed
51
                if (request.getParameter(nombreLenguaje) != null) {
52 53 54
                    contador++;
                }
            }
Angel Zarate committed
55
            if (contador == 0) {
56 57
                rechazarDatos = true;
            }
Angel Zarate committed
58 59
            String telefono = request.getParameter("telefono");
            String direccion = request.getParameter("direccion");
60 61 62
            boolean experienciaLaboral = false;
            boolean universidad = false;
            boolean notebook = false;
Angel Zarate committed
63
            if (request.getParameter("experiencia_laboral") != null) {
64 65
                experienciaLaboral = true;
            }
Angel Zarate committed
66
            if (request.getParameter("notebook") != null) {
67 68
                notebook = true;
            }
Angel Zarate committed
69
            if (request.getParameter("universidad") != null) {
70 71
                universidad = true;
            }
72

Angel Zarate committed
73
            Postulante postulante = new Postulante();
74 75 76
            PostulanteLenguaje cargarLenguaje = new PostulanteLenguaje();
            int status = 0;
            int statusLenguaje = 0;
Angel Zarate committed
77 78
            // SI LOS DATOS SON CORRECTOS NO SE RECHAZAN ENTONCES CARGA A LA BASE
            if (!rechazarDatos) {
79 80 81 82 83 84 85 86 87
                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);
88
                postulante.setBootcampId(bootcampActual);
89
                postulante.setAceptado(false);
Angel Zarate committed
90
                status = PostulanteDao.save(postulante);
91

Angel Zarate committed
92 93 94
                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;
95 96 97 98
                while (rs.next()) {
                    idUltimoPostulante = rs.getInt("id");
                }
                rs = stmt.executeQuery("SELECT * FROM lenguaje");
Angel Zarate committed
99
                while (rs.next()) {
100 101
                    int idLenguaje = rs.getInt("id");
                    String nombreLenguaje = rs.getString("nombre_lenguaje");
Angel Zarate committed
102
                    if (request.getParameter(nombreLenguaje) != null) {
103 104 105 106 107
                        cargarLenguaje.setIdLenguaje(idLenguaje);
                        cargarLenguaje.setIdPostulante(idUltimoPostulante);
                        statusLenguaje = PostulanteLenguajeDao.save(cargarLenguaje);
                    }
                }
108
            }
Angel Zarate committed
109 110
            if (status > 0) {
                // out.print("<p>Record saved successfully!</p>");
111
                out.print(" <div class=\"alert\">\n" +
Angel Zarate committed
112 113
                        "  <span class=\"closebtn\" onclick=\"this.parentElement.style.display='none';\">&times;</span> \n"
                        +
114 115 116
                        "  <strong>Formulario Cargado!</strong> EXITOSAMENTE CARGADO\n" +
                        "</div>");
                request.getRequestDispatcher("formulario.jsp").include(request, response);
Angel Zarate committed
117 118
            } else {
                if (rechazarDatos) {
119
                    out.print(" <div class=\"alert info\">\n" +
Angel Zarate committed
120 121
                            "  <span class=\"closebtn\" onclick=\"this.parentElement.style.display='none';\">&times;</span> \n"
                            +
122 123 124
                            "  <strong>Formulario ya Cargado!</strong> YA EXISTE EL FORMULARIO\n" +
                            "</div>");
                    request.getRequestDispatcher("formulario.jsp").include(request, response);
Angel Zarate committed
125
                } else {
126 127
                    out.println("Error al cargar datos");
                    out.print(" <div class=\"alert info error\">\n" +
Angel Zarate committed
128 129
                            "  <span class=\"closebtn\" onclick=\"this.parentElement.style.display='none';\">&times;</span> \n"
                            +
130
                            "  <strong>Formulario ya Cargado!</strong> YA EXISTE EL FORMULARIO\n" +
131 132
                            "</div>");
                    request.getRequestDispatcher("formulario.jsp").include(request, response);
133
                }
134
            }
Angel Zarate committed
135 136
        } catch (Exception ex) {
            ex.printStackTrace();
137
        }
138 139 140
        out.close();
    }
}