SaveServlet.java 5.68 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 25
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");
        PrintWriter out=response.getWriter();
26
        boolean rechazarDatos = false;
27
        int bootcampActual = 2;
28 29 30 31

        try {
            Connection con = DataBase.getConnection();
            Statement stmt = con.createStatement();
32
            ResultSet rs = stmt.executeQuery("SELECT correo,bootcamp_id FROM postulante WHERE postulante.bootcamp_id =" + bootcampActual);
33 34 35 36
            String nombre=request.getParameter("nombre");
            String apellido=request.getParameter("apellido");
            int cedula=Integer.parseInt(request.getParameter("cedula"));
            String correo=request.getParameter("correo");
37
            //BUCLE PARA VERIFICAR EL CORREO EN EL BOOTCAMP ACTUAL
38 39
            while (rs.next()){
                String correoBase =rs.getString("correo");
40 41 42
                int bootcampIdBase = rs.getInt("bootcamp_id");
                if(correo.equals(correoBase) && (bootcampIdBase==bootcampActual)){
                    rechazarDatos = true;
43 44
                }
            }
45 46 47 48 49 50 51 52 53 54 55
            rs = stmt.executeQuery("SELECT * FROM lenguaje");
            int contador = 0;
            while (rs.next()){
                String nombreLenguaje = rs.getString("nombre_lenguaje");
                if (request.getParameter(nombreLenguaje) != null){
                    contador++;
                }
            }
            if (contador == 0){
                rechazarDatos = true;
            }
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
            String telefono=request.getParameter("telefono");
            String direccion=request.getParameter("direccion");
            boolean experienciaProgramando = false;
            boolean experienciaLaboral = false;
            boolean universidad = false;
            boolean notebook = false;
            if (request.getParameter("experiencia_laboral") != null){
                experienciaLaboral = true;
            }
            if (request.getParameter("notebook") != null){
                notebook = true;
            }
            if (request.getParameter("universidad") != null){
                universidad = true;
            }
71 72
            Bootcamp bootcamp = new Bootcamp();
            Postulante postulante=new Postulante();
73 74 75
            PostulanteLenguaje cargarLenguaje = new PostulanteLenguaje();
            int status = 0;
            int statusLenguaje = 0;
76 77
            //SI LOS DATOS SON CORRECTOS NO SE RECHAZAN ENTONCES CARGA A LA BASE
            if (!rechazarDatos){
78 79 80 81 82 83 84 85 86
                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);
87
                postulante.setBootcampId(bootcampActual);
88
                postulante.setAceptado(false);
89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
                status=PostulanteDao.save(postulante);

                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;
                while (rs.next()) {
                    idUltimoPostulante = rs.getInt("id");
                }
                rs = stmt.executeQuery("SELECT * FROM lenguaje");
                while (rs.next()){
                    int idLenguaje = rs.getInt("id");
                    String nombreLenguaje = rs.getString("nombre_lenguaje");
                    if (request.getParameter(nombreLenguaje) != null){
                        cargarLenguaje.setIdLenguaje(idLenguaje);
                        cargarLenguaje.setIdPostulante(idUltimoPostulante);
                        statusLenguaje = PostulanteLenguajeDao.save(cargarLenguaje);
                    }
                }
106
            }
107
                if(status >0 && statusLenguaje > 0){
108 109 110
                    out.print("<p>Record saved successfully!</p>");
                    request.getRequestDispatcher("index.html").include(request, response);
                }else{
111
                    if (rechazarDatos){
112 113 114 115 116 117 118
                        if (contador == 0){
                            out.println("Debe seleccionar al menos una opcion de lenguaje que conoce para postularse");
                            out.println("<a href=formulario.jsp >Volver al cuestionario</a>");
                        }else {
                            out.println("El correo ingresado ya esta registrado para el bootcamp actual");
                        }
                    }else{
119 120
                        out.println("Sorry! unable to save record");
                    }
121 122
                }

123 124 125
        }catch (Exception ex){
                ex.printStackTrace();
        }
126 127 128
        out.close();
    }
}