diff --git a/Server/ActasNacimiento/SIU241008_ActaN.pdf b/Server/ActasNacimiento/SIU241008_ActaN.pdf index 36464c7..0313993 100644 Binary files a/Server/ActasNacimiento/SIU241008_ActaN.pdf and b/Server/ActasNacimiento/SIU241008_ActaN.pdf differ diff --git a/Server/Controller/DAO.js b/Server/Controller/DAO.js index 63008dd..7c17740 100644 --- a/Server/Controller/DAO.js +++ b/Server/Controller/DAO.js @@ -4,16 +4,19 @@ import Mensaje from '../Model/Mensaje.js'; // Asegúrate de tener la ruta correc import DAORegistro from './DAORegistro.js'; class DAO { - static async dameAlumnos() { + + static async matriculas() { const conexion = new Conexion(); const conexionEstablecida = await conexion.conectar(); try { - const sql = `SELECT id, nombre, apellido, matricula FROM usuario`; + const sql = `SELECT id, matricula FROM usuario where inscrito = 1`; const [rows] = await conexionEstablecida.query(sql); - const resultado = rows.map(row => new Usuario(row.id, row.nombre, row.apellido, row.matricula)); + const resultado = rows.map(row => { + return { id: row.id, matricula: row.matricula }; + }); return resultado; } catch (error) { - console.error(error); + console.error(error); s return []; } finally { conexion.cerrarConexion(); @@ -155,6 +158,61 @@ class DAO { } return usuario; } + static async editarAlumnoInscrito(data) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + try { + const sql = `UPDATE usuario SET inscrito = ? WHERE id = ?`; + const [result] = await conexionEstablecida.query(sql, [ + 1, data.idUsuario + ]); + return result.affectedRows > 0; + + } catch (error) { + + } finally { + conexion.cerrarConexion(); + } + } + + static async traeTodosLosDatosUsuario(id) { + const conexion = new Conexion(); + const conexionEstablecida = await conexion.conectar(); + let usuario = null; + try { + const sql = `SELECT U.id,U.nombre,U.apellido,matricula,correo,nacionalidad,tipoSangre,fecha_nacimiento,curp,inscrito, T.nombre as tutorNombre, T.apellido as tutorApellido, T.numeroDeTelefono,C.nombre as carreraNombre FROM usuario U, tutor T, carrera C where C.id= U.idCarrera and U.id = T.idUsuario and inscrito =1 and U.id =?;`; + const [rows] = await conexionEstablecida.query(sql, [id]); + if (rows.length > 0) { + const row = rows[0]; + + // Convertir la fecha al formato "yyyy-MM-dd" + const fechaNacimiento = new Date(row.fecha_nacimiento); + const formattedDate = fechaNacimiento.toISOString().split('T')[0]; // "yyyy-MM-dd" + + usuario = { + id: row.id, + nombre: row.nombre, + apellido: row.apellido, + matricula: row.matricula, + correo: row.correo, + nacionalidad: row.nacionalidad, + tipoSangre: row.tipoSangre, + fecha_nacimiento: formattedDate, + curp: row.curp, + inscrito: row.inscrito, + tutorNombre: row.tutorNombre, + tutorApellido: row.tutorApellido, + numeroDeTelefono: row.numeroDeTelefono, + carreraNombre: row.carreraNombre + } + } + } catch (error) { + console.error(error); + } finally { + conexion.cerrarConexion(); + } + return usuario; + } } export default DAO; diff --git a/Server/server.js b/Server/server.js index edc4cb4..d167e60 100644 --- a/Server/server.js +++ b/Server/server.js @@ -1,5 +1,6 @@ import express from 'express'; import bodyParser from 'body-parser'; +import cors from 'cors'; import DAO from './Controller/DAO.js'; // Importa tus controladores DAO import DAOTutor from './Controller/DAOTutor.js'; import DAOCarreras from './Controller/DAOCarrera.js'; @@ -31,18 +32,18 @@ const fileUpload = multer({ app.use(bodyParser.json()); // Configuración de CORS -app.use((req, res, next) => { - res.header("Access-Control-Allow-Origin", "http://localhost:5173"); - res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); - res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS"); - res.header("Access-Control-Allow-Credentials", "true"); - next(); -}); +app.use(cors({ + origin: 'http://localhost:5173', // Especifica el origen permitido + methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'], + allowedHeaders: ['Origin', 'X-Requested-With', 'Content-Type', 'Accept'], + credentials: true +})); +app.use(express.static(path.join(__dirname,'ActasNacimiento'))) // Rutas -app.get("/todosLosAlumnos", async (req, res) => { +app.get("/matriculas", async (req, res) => { try { - const alumnos = await DAO.dameAlumnos(); + const alumnos = await DAO.matriculas(); res.json(alumnos); } catch (error) { res.status(500).json({ error: error.message }); @@ -159,9 +160,14 @@ app.post("/agregarDocumentoAN", fileUpload, async (req, res) => { const guardado = await DAODocumento.agregarDocumento(data, file); if (guardado) { - res.json({ message: "Archivo guardado correctamente" }); + const cambiar = await DAO.editarAlumnoInscrito(data); + if (cambiar) { + res.json({ message: true }); + } else { + res.json({ message: false }); + } } else { - res.json({ message: "No se pudo guardar el archivo" }); + res.json({ message: false }); } } catch (error) { res.status(500).json({ error: error.message }); @@ -178,3 +184,13 @@ app.use((err, req, res, next) => { app.listen(port, () => { console.log(`App listening at http://localhost:${port}`); }); + +app.post("/traerTodosDatosAlumno", async (req, res) => { + try { + const usuario = req.body; + const datos = await DAO.traeTodosLosDatosUsuario(usuario.id); + res.json(datos); + } catch (error) { + res.status(500).json({ error: error.message }); + } +}); diff --git a/frontend/src/Views/Inscripcion.jsx b/frontend/src/Views/Inscripcion.jsx index da81bca..5a826a5 100644 --- a/frontend/src/Views/Inscripcion.jsx +++ b/frontend/src/Views/Inscripcion.jsx @@ -18,7 +18,8 @@ const Inscripcion = () => { tipoSangre: "", fecha_nacimiento: "", curp: "", - idCarrera: 0 + idCarrera: 0, + inscrito:0 }); const [tutor, setTutor] = useState({ @@ -53,7 +54,8 @@ const Inscripcion = () => { tipoSangre: resUsuario.data.tipoSangre || "", fecha_nacimiento: resUsuario.data.fecha_nacimiento || "", curp: resUsuario.data.curp || "", - idCarrera: resUsuario.data.idCarrera || 0 + idCarrera: resUsuario.data.idCarrera || 0, + inscrito: resUsuario.data.inscrito || 0 })); } else { console.log('Error: No hay usuario'); @@ -157,155 +159,162 @@ const Inscripcion = () => { formData.append('titulo', `${usuario.matricula}_ActaN`); formData.append('archivo', actaN.archivo); formData.append('idUsuario', usuario.id); - fetch('http://localhost:3000/agregarDocumentoAN',{ - method: 'POST', - body: formData - }).then(res=>res.text()) - .then(res => console.log(res)) - .catch(err=>{ - console.error(err) - }) - setActaN(null) + const reqs = await axios.post('/agregarDocumentoAN', formData,{ + headers: { + 'Content-Type': 'multipart/form-data', + }, + }); + if (reqs){ + window.location.reload(); + } } catch (error) { console.error('Error al subir los datos:', error); - //window.location.reload(); } }; - return ( -
Nombre: { }
-Apellido:{ }
-Matricula: { }
-Correo:{ }
-Nacionalidad:{ }
-Tipo de sangre:{ }
-Fecha de nacimiento:{ }
-CURP:{ }
-Carrera:{ }
+Nombre: {alumno.nombre}
+Apellido: {alumno.apellido}
+Matricula: {alumno.matricula}
+Correo: {alumno.correo}
+Nacionalidad: {alumno.nacionalidad}
+Tipo de sangre: {alumno.tipoSangre}
+Fecha de nacimiento: {alumno.fecha_nacimiento}
+CURP: {alumno.curp}
+Carrera: {alumno.carreraNombre}
Nombre: { }
-Apellido:{ }
-Teléfono:{ }
+Nombre: {alumno.tutorNombre}
+Apellido: {alumno.tutorApellido}
+Teléfono: {alumno.numeroDeTelefono}
Acta de Nacimiento:
- +Acta de Nacimiento:
+Constancia de estudios :
- +Constancia de estudios:
+Fotografia:
- +Fotografía:
+