diff --git a/server/controller/Premiacion/premiaciones.js b/server/controller/Premiacion/premiaciones.js index 18bd73a..3455d28 100644 --- a/server/controller/Premiacion/premiaciones.js +++ b/server/controller/Premiacion/premiaciones.js @@ -1,5 +1,5 @@ const Premiacion = require('../../db/tablas/Premiacion'); -const get = () => Premiacion.findAll(); +const get = () => Premiacion.findAll({where: {activa: true}}); module.exports = get; diff --git a/server/controller/Profesor/cargarDatos.js b/server/controller/Profesor/cargarDatos.js index 35c969e..fe7cf87 100644 --- a/server/controller/Profesor/cargarDatos.js +++ b/server/controller/Profesor/cargarDatos.js @@ -13,19 +13,29 @@ const cargaMasiva = async (file, body) => { .fromFile(path) .then(async (profesores) => { for (let i = 0; i < profesores.length; i++) { - const resp = await Profesor.create({ - numeroTrabajador: profesores[i].numeroTrabajador, - nombre: profesores[i].nombre, - correo: `${profesores[i].numeroTrabajador}@pcpuma.acatlan.unam.mx`, - adscripcion: profesores[i].adscripcion, + let profesor = await Profesor.findOne({ + where: { numeroTrabajador: profesores[i].numeroTrabajador }, }); - res.push(resp); + let resp; + + if (!profesor) { + resp = await Profesor.create({ + numeroTrabajador: profesores[i].numeroTrabajador, + nombre: profesores[i].nombre, + correo: `${profesores[i].numeroTrabajador}@pcpuma.acatlan.unam.mx`, + adscripcion: profesores[i].adscripcion, + }); + } + + profesor ? res.push(profesor) : res.push(resp); + await ProfesorPremiacion.create({ idPremiacion, - idProfesor: resp.idProfesor, + idProfesor: profesor ? profesor.idProfesor : resp.idProfesor, numeroInvitados: null, numeroInvitadosDentro: null, }); + profesor = null; } await eliminarArchivo(path); }); diff --git a/server/controller/Profesor/premiaciones.js b/server/controller/Profesor/premiaciones.js new file mode 100644 index 0000000..f744f27 --- /dev/null +++ b/server/controller/Profesor/premiaciones.js @@ -0,0 +1,32 @@ +const Premiacion = require('../../db/tablas/Premiacion'); +const Profesor = require('../../db/tablas/Profesor'); +const ProfesorPremiacion = require('../../db/tablas/ProfesorPremiacion'); +const validar = require('../../helper/validar'); + +const premiaciones = async (query) => { + const idProfesor = validar.validarNumeroEntero( + query.idProfesor, + 'idProfesor' + ); + const premiaciones = []; + + const profesor = await Profesor.findOne({ where: idProfesor }); + if (!profesor) throw new Error('Este profesor no existe.'); + + const res = await ProfesorPremiacion.findAll({ + where: { idProfesor }, + }); + + if (!res) + throw new Error( + 'Este profesor no está registrado en ninguna entrega de medallas.' + ); + + for (let i = 0; i < res.length; i++) { + let resp = await Premiacion.findOne({ where: res[i].idPremiacion }); + premiaciones[i] = resp.dataValues; + } + return premiaciones; +}; + +module.exports = premiaciones; diff --git a/server/routes/Profesor.js b/server/routes/Profesor.js index ca4c990..1bec51e 100644 --- a/server/routes/Profesor.js +++ b/server/routes/Profesor.js @@ -9,6 +9,7 @@ const login = require(`${controllerPath}/login`); const entradaInvitado = require(`${controllerPath}/entradaInvitado`); const cargarDatos = require(`${controllerPath}/cargarDatos`); const adscripciones = require(`${controllerPath}/adscripciones`); +const premiaciones = require(`${controllerPath}/premiaciones`); app.post(`${route}/login`, (req, res) => { return login(req.body) @@ -40,6 +41,16 @@ app.get(`${route}/adscripciones`, (req, res) => { }); }); +app.get(`${route}/premiaciones`, (req, res) => { + return premiaciones(req.query) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + app.post( `${route}/cargarDatos`, // verificaToken, diff --git a/server/uploads/2443b1e90c38c1eaf0c2d0f35f8ce801 b/server/uploads/2443b1e90c38c1eaf0c2d0f35f8ce801 new file mode 100644 index 0000000..1fa7289 --- /dev/null +++ b/server/uploads/2443b1e90c38c1eaf0c2d0f35f8ce801 @@ -0,0 +1,5 @@ +numeroTrabajador,nombre,adscripcion +3910347092,Marco Antonio Romero,Adscripcion 1 +8414310744,Jeremy Carreras,Adscripcion 2 +3906067492,Marco Antonio Romero,Adscripcion 1 +8014519004,Jeremy Carreras,Adscripcion 2 diff --git a/server/uploads/3cbbc323998557ed5f72c0044031aa41 b/server/uploads/3cbbc323998557ed5f72c0044031aa41 new file mode 100644 index 0000000..5f60b01 --- /dev/null +++ b/server/uploads/3cbbc323998557ed5f72c0044031aa41 @@ -0,0 +1,5 @@ +numeroTrabajador,nombre,adscripcion +3910347092,Marco Antonio Romero,Adscripcion 1 +8410310744,Jeremy Carreras,Adscripcion 2 +3906067492,Marco Antonio Romero,Adscripcion 1 +8014519004,Jeremy Carreras,Adscripcion 2 diff --git a/server/uploads/4d75adea95e46549b99133dfbdd93c68 b/server/uploads/4d75adea95e46549b99133dfbdd93c68 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/4d75adea95e46549b99133dfbdd93c68 @@ -0,0 +1,5 @@ +numeroTrabajador,nombre,adscripcion +3910347492,Marco Antonio Romero,Adscripcion 1 +8414319744,Jeremy Carreras,Adscripcion 2 +3916067492,Marco Antonio Romero,Adscripcion 1 +8414519004,Jeremy Carreras,Adscripcion 2 diff --git a/server/uploads/7fa976b8bd7aef558f1130a9e82999d5 b/server/uploads/7fa976b8bd7aef558f1130a9e82999d5 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/7fa976b8bd7aef558f1130a9e82999d5 @@ -0,0 +1,5 @@ +numeroTrabajador,nombre,adscripcion +3910347492,Marco Antonio Romero,Adscripcion 1 +8414319744,Jeremy Carreras,Adscripcion 2 +3916067492,Marco Antonio Romero,Adscripcion 1 +8414519004,Jeremy Carreras,Adscripcion 2 diff --git a/server/uploads/b038040255e8d238d9496687229b004f b/server/uploads/b038040255e8d238d9496687229b004f new file mode 100644 index 0000000..1fa7289 --- /dev/null +++ b/server/uploads/b038040255e8d238d9496687229b004f @@ -0,0 +1,5 @@ +numeroTrabajador,nombre,adscripcion +3910347092,Marco Antonio Romero,Adscripcion 1 +8414310744,Jeremy Carreras,Adscripcion 2 +3906067492,Marco Antonio Romero,Adscripcion 1 +8014519004,Jeremy Carreras,Adscripcion 2 diff --git a/server/uploads/c4c1871b470236081367af5abbab3e4a b/server/uploads/c4c1871b470236081367af5abbab3e4a new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/c4c1871b470236081367af5abbab3e4a @@ -0,0 +1,5 @@ +numeroTrabajador,nombre,adscripcion +3910347492,Marco Antonio Romero,Adscripcion 1 +8414319744,Jeremy Carreras,Adscripcion 2 +3916067492,Marco Antonio Romero,Adscripcion 1 +8414519004,Jeremy Carreras,Adscripcion 2