diff --git a/server/controller/Invitado/infoInvitados.js b/server/controller/Invitado/infoInvitados.js index bf26078..27e8ab0 100644 --- a/server/controller/Invitado/infoInvitados.js +++ b/server/controller/Invitado/infoInvitados.js @@ -1,26 +1,44 @@ const Invitado = require('../../db/tablas/Invitado'); const Profesor = require('../../db/tablas/Profesor'); +const Premiacion = require('../../db/tablas/Premiacion'); const validar = require('../../helper/validar'); const { correo } = require('../../helper/correos'); const gmail = require('../../helper/gmail'); +const ProfesorPremiacion = require('../../db/tablas/ProfesorPremiacion'); const infoInvitados = async (body) => { const idProfesor = validar.validarNumeroEntero(body.idProfesor, 'idProfesor'); + const idPremiacion = validar.validarNumeroEntero( + body.idPremiacion, + 'idPremiacion' + ); const invitados = body.invitados; const numeroInvitados = invitados.length; + const premiacion = await Premiacion.findOne({ where: idPremiacion }); + if (!premiacion) + throw new Error('No existe ninguna premiación con este id con este id.'); + invitados.forEach((invitado) => { - if (invitado.edad < 18) - throw new Error('Los invitados deben de ser mayores de edad.'); + if (invitado.edad < 12) + throw new Error( + 'Alguno de sus invitados no cuenta con la edad suficiente.' + ); }); - + if (numeroInvitados > 3) throw new Error('El número de invitados no puede ser mayor que 3.'); - const prof = await Profesor.findOne({ where: idProfesor }); - if (prof.numeroInvitados) + const profPrem = await ProfesorPremiacion.findOne({ + where: { idProfesor, idPremiacion }, + }); + if (!profPrem) + throw new Error( + 'No existe ningún profesor con este id en esta premiación.' + ); + if (profPrem.numeroInvitados) throw new Error('A este profesor ya se le han guardado sus invitados.'); - prof.update({ numeroInvitados: numeroInvitados }); + profPrem.update({ numeroInvitados: numeroInvitados }); const respuesta = []; for (let i = 0; i < numeroInvitados; i++) { @@ -40,23 +58,26 @@ const infoInvitados = async (body) => { nombreCompleto: nombre, edad: edad, idProfesor: idProfesor, + idPremiacion: idPremiacion, }); if (!res) throw new Error('No se ha podido ingresar los datos del invitado'); respuesta.push(res); } - const dataProf = await Profesor.findOne({ where: idProfesor }); const Mail = correo( - dataProf.nombre, - dataProf.numeroTrabajador, - dataProf.numeroInvitados + profPrem.idProfesor, + profPrem.idPremiacion, + premiacion.premiacion, + premiacion.fecha, + premiacion.hora ); + const dataProf = await Profesor.findOne({ where: idProfesor }); gmail( Mail.subject, - `yosoymarco3@gmail.com`, - // `${dataProf.numeroTrabajador}@pcpuma.acatlan.unam.mx`, + // `jeremy@acatlan.unam.mx`, + `${dataProf.numeroTrabajador}@pcpuma.acatlan.unam.mx`, Mail.message ); return { diff --git a/server/controller/Invitado/invitados.js b/server/controller/Invitado/invitados.js index 9d0cde7..14016c4 100644 --- a/server/controller/Invitado/invitados.js +++ b/server/controller/Invitado/invitados.js @@ -1,6 +1,20 @@ const Invitado = require('../../db/tablas/Invitado'); -const Profesor = require('../../db/tablas/Profesor') +const Profesor = require('../../db/tablas/Profesor'); +const { validarNumeroEntero } = require('../../helper/validar'); -const get = () => Invitado.findAll({include: [{ model: Profesor }],}); +const get = async (query) => { + const idPremiacion = validarNumeroEntero( + query.idPremiacion, + 'idPremiacion', + true + ); -module.exports = get; \ No newline at end of file + const invitados = await Invitado.findAll({ + where: { idPremiacion }, + include: [{ model: Profesor }], + }); + if (!invitados) throw new Error('No se ha podido traer a los invitados'); + return invitados; +}; + +module.exports = get; diff --git a/server/controller/Premiacion/activarDesactivar.js b/server/controller/Premiacion/activarDesactivar.js new file mode 100644 index 0000000..81782ff --- /dev/null +++ b/server/controller/Premiacion/activarDesactivar.js @@ -0,0 +1,21 @@ +const Premiacion = require('../../db/tablas/Premiacion'); +const { validarNumeroEntero, validarFecha } = require('../../helper/validar'); + +const activarDesactivar = async (body) => { + if (!body.activa) + throw new Error('Se necesita saber si se quiere activar o desactivar.'); + + const idPremiacion = validarNumeroEntero( + body.idPremiacion, + 'idPremiacion', + true + ); + + const activa = body.activa; + + const premiacion = await Premiacion.findOne({ where: idPremiacion }); + if (!premiacion) throw new Error('No existe esta premiación.'); + return premiacion.update({ activa }); +}; + +module.exports = activarDesactivar; diff --git a/server/controller/Premiacion/editar.js b/server/controller/Premiacion/editar.js new file mode 100644 index 0000000..d9ffc66 --- /dev/null +++ b/server/controller/Premiacion/editar.js @@ -0,0 +1,21 @@ +const Premiacion = require('../../db/tablas/Premiacion'); +const { validarNumeroEntero, validarFecha } = require('../../helper/validar'); + +const editar = async (body) => { + let fecha; + let hora; + if (body.fecha) fecha = validarFecha(body.fecha); + if (body.hora) hora = body.hora; + + const idPremiacion = validarNumeroEntero( + body.idPremiacion, + 'idPremiacion', + true + ); + + const premiacion = await Premiacion.findOne({ where: idPremiacion }); + if (!premiacion) throw new Error('No existe esta premiación.'); + return premiacion.update({ fecha, hora}); +}; + +module.exports = editar; diff --git a/server/controller/Premiacion/nueva.js b/server/controller/Premiacion/nueva.js new file mode 100644 index 0000000..1ddd0f3 --- /dev/null +++ b/server/controller/Premiacion/nueva.js @@ -0,0 +1,18 @@ +const Premiacion = require('../../db/tablas/Premiacion'); +const validar = require('../../helper/validar'); + +const nueva = async (body) => { + const premiacion = validar.validacionBasicaStr( + body.premiacion, + 'premiacion', + true + ); + const fecha = validar.validarFecha(body.fecha, 'fecha', true); + if (!body.hora) throw new Error('Falta la hora.'); + const hora = body.hora; + + const res = await Premiacion.create({ premiacion, fecha, hora, activa: true }); + return res; +}; + +module.exports = nueva; diff --git a/server/controller/Premiacion/premiaciones.js b/server/controller/Premiacion/premiaciones.js new file mode 100644 index 0000000..18bd73a --- /dev/null +++ b/server/controller/Premiacion/premiaciones.js @@ -0,0 +1,5 @@ +const Premiacion = require('../../db/tablas/Premiacion'); + +const get = () => Premiacion.findAll(); + +module.exports = get; diff --git a/server/controller/Profesor/adscripciones.js b/server/controller/Profesor/adscripciones.js index ea7470f..132304c 100644 --- a/server/controller/Profesor/adscripciones.js +++ b/server/controller/Profesor/adscripciones.js @@ -10,7 +10,8 @@ const adscripciones = async () => { result.push(item.adscripcion); } }); - return result + return result; }); }; + module.exports = adscripciones; diff --git a/server/controller/Profesor/cargarDatos.js b/server/controller/Profesor/cargarDatos.js index 3f3fd6b..35c969e 100644 --- a/server/controller/Profesor/cargarDatos.js +++ b/server/controller/Profesor/cargarDatos.js @@ -1,8 +1,11 @@ const csv = require('csvtojson'); const { eliminarArchivo } = require('../../helper/helper'); const Profesor = require('../../db/tablas/Profesor'); +const { validarNumeroEntero } = require('../../helper/validar'); +const ProfesorPremiacion = require('../../db/tablas/profesorPremiacion'); -const cargaMasiva = async (file) => { +const cargaMasiva = async (file, body) => { + const idPremiacion = validarNumeroEntero(body.idPremiacion); const path = `server/uploads/${file}`; let res = []; @@ -15,15 +18,21 @@ const cargaMasiva = async (file) => { nombre: profesores[i].nombre, correo: `${profesores[i].numeroTrabajador}@pcpuma.acatlan.unam.mx`, adscripcion: profesores[i].adscripcion, - }) - res.push(resp) + }); + res.push(resp); + await ProfesorPremiacion.create({ + idPremiacion, + idProfesor: resp.idProfesor, + numeroInvitados: null, + numeroInvitadosDentro: null, + }); } await eliminarArchivo(path); }); return { message: 'Se subió correctamente el archivo csv.', - res + res, }; }; -module.exports = cargaMasiva; \ No newline at end of file +module.exports = cargaMasiva; diff --git a/server/controller/Profesor/entradaInvitado.js b/server/controller/Profesor/entradaInvitado.js index e857a74..5670ad5 100644 --- a/server/controller/Profesor/entradaInvitado.js +++ b/server/controller/Profesor/entradaInvitado.js @@ -1,21 +1,37 @@ const Profesor = require('../../db/tablas/Profesor'); +const ProfesorPremiacion = require('../../db/tablas/ProfesorPremiacion'); const validar = require('../../helper/validar'); const entradaInvitado = async (body) => { const idProfesor = validar.validarNumeroEntero(body.idProfesor, 'idProfesor'); + const idPremiacion = validar.validarNumeroEntero( + body.idPremiacion, + 'idPremiacion' + ); const profesor = await Profesor.findOne({ where: idProfesor }); - if (!profesor) throw new Error('Este profesor no existe'); - if (!profesor.noInvitados) throw new Error('Este profesor no registró a ninún invitado.') - let noInvDentro = profesor.dataValues.numeroInvitadosDentro; - let noInv = profesor.dataValues.numeroInvitados; + if (!profesor) throw new Error('Este profesor no existe.'); + + const profPrem = await ProfesorPremiacion.findOne({ + where: { idPremiacion, idProfesor }, + }); + + if (!profPrem) + throw new Error( + 'Este profesor no está registrado en esta entrega de medallas.' + ); + if (!profPrem.numeroInvitados) + throw new Error('Este profesor no registró a ninún invitado.'); + + let noInvDentro = profPrem.dataValues.numeroInvitadosDentro; + let noInv = profPrem.dataValues.numeroInvitados; if (noInvDentro && noInvDentro >= noInv) throw new Error('Este profesor ya ingreso a todos sus invitados.'); - const res = await profesor.update({ numeroInvitadosDentro: noInvDentro + 1 }); + const res = await profPrem.update({ numeroInvitadosDentro: noInvDentro + 1 }); if (!res) throw new Error( - 'Ha ocurrido un error al actualizar los datos del profesor.' + 'Ha ocurrido un error al registrar los invitados del profesor.' ); return res; }; diff --git a/server/controller/Profesor/login.js b/server/controller/Profesor/login.js index 1278867..f5544e8 100644 --- a/server/controller/Profesor/login.js +++ b/server/controller/Profesor/login.js @@ -8,15 +8,17 @@ const login = async (body) => { 'numero de trabajador', true ); - const adscripcion = validar.validacionBasicaStr( - body.adscripcion, - 'adscripcion', - false, - 150 - ); + // const adscripcion = validar.validacionBasicaStr( + // body.adscripcion, + // 'adscripcion', + // false, + // 150 + // ); return Profesor.findOne({ - where: { numeroTrabajador, adscripcion }, + where: { numeroTrabajador + // , adscripcion + }, }).then((res) => { if (!res) throw new Error('No existe este profesor en la base de datos.'); return { diff --git a/server/controller/Usuario/nuevoOperador.js b/server/controller/Usuario/nuevoOperador.js new file mode 100644 index 0000000..e69de29 diff --git a/server/db/data-fake.js b/server/db/data-fake.js index 403d919..f8d9f31 100644 --- a/server/db/data-fake.js +++ b/server/db/data-fake.js @@ -1,10 +1,11 @@ const Usuario = require('./tablas/Usuario'); const Profesor = require('./tablas/Profesor'); +const Premiacion = require('./tablas/Premiacion'); const { encriptar } = require('../helper/encriptar'); const dataUsuarios = async () => { - let usuario = ['416313221', '111111111', '222222222']; - let nombre = ['Adriana De Luna Ramirez', 'Nombre Falso 1', 'Nombre Falso 2']; + let usuario = ['416313221', '111111111']; + let nombre = ['Adriana De Luna Ramirez', 'Nombre Falso 1']; for (let i = 0; i < usuario.length; i++) { await Usuario.create({ @@ -17,6 +18,23 @@ const dataUsuarios = async () => { } }; +const dataPremiaciones = async () => { + let premiacion = ['premiacion 1', 'premiacion 2', 'premiacion 3']; + let fecha = ['2022-06-10', '2023-06-10', '2024-06-10']; + let hora = ['12:00', '13:00', '14:00']; + + for (let i = 0; i < premiacion.length; i++) { + await Premiacion.create({ + premiacion: premiacion[i], + fecha: fecha[i], + hora: hora[i], + activa: true, + }); + + console.log(`Se insertó la premiacion ${premiacion[i]}.`.magenta); + } +}; + const dataProfesores = async () => { let usuario = ['4163132', '123456778', '1234567890']; let adscripcion = ['Adscripcion 1', 'Adscripcion 2', 'Adscripcion 3']; @@ -28,8 +46,7 @@ const dataProfesores = async () => { numeroTrabajador: usuario[i], adscripcion: adscripcion[i], nombre: nombre[i], - correo: correo[i], - numeroInvitados: null, + correo: correo[i] }); console.log(`Se insertó el profesor ${usuario[i]}.`.magenta); } @@ -38,6 +55,7 @@ const dataProfesores = async () => { const exec = async () => { await dataUsuarios(); await dataProfesores(); + await dataPremiaciones(); console.log( '\nSe ha instalado exitosamente la información falsa en la base de datos.\n' .underline.bold.green diff --git a/server/db/install.js b/server/db/install.js index 5091376..92b34d9 100644 --- a/server/db/install.js +++ b/server/db/install.js @@ -5,6 +5,8 @@ const TipoUsuario = require('./tablas/TipoUsuario'); const Usuario = require('./tablas/Usuario'); const Profesor = require('./tablas/Profesor'); const Invitado = require('./tablas/Invitado'); +const Premiacion = require('./tablas/Premiacion'); +const ProfesorPremiacion = require('./tablas/ProfesorPremiacion'); const drop = async () => { console.log('\nPaso 1) Desinstalando la db.'.bold.blue); @@ -18,15 +20,27 @@ const drop = async () => { await TipoUsuario.drop(); console.log('La tabla TipoUsuario se desinstalo correctamente.'.magenta); + await ProfesorPremiacion.drop(); + console.log('La tabla ProfesorPremiacion se desinstalo correctamente.'.magenta); + await Profesor.drop(); console.log('La tabla Profesor se desinstalo correctamente.'.magenta); + + await Premiacion.drop(); + console.log('La tabla Premiacion se desinstalo correctamente.'.magenta); }; const sync = async () => { console.log('\nPaso 2) Instalando la db.'.bold.blue); + await Premiacion.sync(); + console.log('La tabla Premiacion se instalo correctamente.'.magenta); + await Profesor.sync(); console.log('La tabla Profesor se instalo correctamente.'.magenta); + + await ProfesorPremiacion.sync(); + console.log('La tabla ProfesorPremiacion se instalo correctamente.'.magenta); await TipoUsuario.sync(); console.log('La tabla TipoUsuario se instalo correctamente.'.magenta); @@ -39,7 +53,7 @@ const sync = async () => { }; const dataTipoUsuario = async () => { - const data = ['admin', 'operador', 'profesor']; + const data = ['admin', 'operador']; console.log('\nPaso 3) Instalando catalogo tipo usuario.'.bold.blue); for (let i = 0; i < data.length; i++) diff --git a/server/db/tablas/Premiacion.js b/server/db/tablas/Premiacion.js index 15f952a..2e0b131 100644 --- a/server/db/tablas/Premiacion.js +++ b/server/db/tablas/Premiacion.js @@ -15,10 +15,18 @@ Premiacion.init( type: DataTypes.STRING(50), allowNull: false, }, + hora: { + type: DataTypes.STRING(5), + allowNull: false, + }, fecha: { type: DataTypes.DATEONLY, allowNull: false, }, + activa: { + type: DataTypes.BOOLEAN, + allowNull: false + } }, { sequelize, diff --git a/server/db/tablas/Profesor.js b/server/db/tablas/Profesor.js index c3fe06b..57b3cc9 100644 --- a/server/db/tablas/Profesor.js +++ b/server/db/tablas/Profesor.js @@ -8,13 +8,11 @@ Profesor.init( type: DataTypes.INTEGER, primaryKey: true, allowNull: false, - unique: true, autoIncrement: true, }, numeroTrabajador: { type: DataTypes.STRING(10), allowNull: false, - unique: true, }, nombre: { type: DataTypes.STRING(50), @@ -29,14 +27,6 @@ Profesor.init( allowNull: true, defaultValue: null, }, - numeroInvitados: { - type: DataTypes.INTEGER, - allowNull: true, - }, - numeroInvitadosDentro: { - type: DataTypes.INTEGER, - allowNull: true, - }, }, { sequelize, diff --git a/server/db/tablas/ProfesorPremiacion.js b/server/db/tablas/ProfesorPremiacion.js new file mode 100644 index 0000000..d88e1c4 --- /dev/null +++ b/server/db/tablas/ProfesorPremiacion.js @@ -0,0 +1,48 @@ +const { DataTypes, Model } = require('sequelize'); +const sequelize = require('../../config/sequelize.conf'); +const Premiacion = require('./Premiacion'); +const Profesor = require('./Profesor'); + +class ProfesorPremiacion extends Model {} +ProfesorPremiacion.init( + { + idProfesorPremiacion: { + type: DataTypes.INTEGER, + primaryKey: true, + allowNull: false, + autoIncrement: true, + }, + numeroInvitados: { + type: DataTypes.INTEGER, + allowNull: true, + }, + numeroInvitadosDentro: { + type: DataTypes.INTEGER, + allowNull: true, + }, + }, + { + sequelize, + modelName: 'ProfesorPremiacion', + tableName: 'profesor_premiacion', + timestamps: false, + } +); + +ProfesorPremiacion.belongsTo(Profesor, { + foreignKey: { + name: 'idProfesor', + type: DataTypes.INTEGER, + allowNull: false, + }, +}); + +ProfesorPremiacion.belongsTo(Premiacion, { + foreignKey: { + name: 'idPremiacion', + type: DataTypes.INTEGER, + allowNull: false, + }, +}); + +module.exports = ProfesorPremiacion; diff --git a/server/helper/correos.js b/server/helper/correos.js index bb8031a..1e21875 100644 --- a/server/helper/correos.js +++ b/server/helper/correos.js @@ -1,45 +1,39 @@ const moment = require('moment'); -const correo = (nombre, numeroTrabajador, numeroInvitados) => { +const correo = (idProfesor, idPremiacion, premiacion, fecha, hora) => { // const fecha = moment(date); return { subject: `Comprobante de registro invitados.`, - message: `

Estimada(o) profesor(o)

+ message: `

Distinguido(a) galardonado(a):

- Gracias por registrarte para participar en este recorrido por la FES Acatlán, tu Facultad. La cita es en - la entrada peatonal (sobre Av. San Juan Totoltepec), el próximo h. Te pedimos - asistir en la fecha y horarios elegidos (no puedes modificarlos). +¡El registro de sus invitados para la ceremonia de ${premiacion}, programada para el ${fecha} a las ${hora} hrs. ha sido exitoso!

-

Te solicitamos atender las siguientes medidas:

+

Le pedimos compartir el siguiente código QR con las personas registradas, pues será su acceso al Teatro Javier Barros Sierra. Podrán presentarlo impreso, o digital en su celular. Será importante atender las siguientes consideraciones:

- -

¡Estaremos felices de recibirte!

+

¡Será un gusto contar con su puntual asistencia!

-

"Por mi raza hablará el espíritu"

+

"Por mi raza hablará el espíritu"

-

Facultad de Estudios Superiores Acatlán

+

Facultad de Estudios Superiores Acatlán

`, }; }; -// qr_img module.exports = { correo }; \ No newline at end of file diff --git a/server/routes/Invitado.js b/server/routes/Invitado.js index 1f62b3e..4e1b682 100644 --- a/server/routes/Invitado.js +++ b/server/routes/Invitado.js @@ -7,7 +7,7 @@ const get = require(`${controllerPath}/invitados`); const infoInvitados = require(`${controllerPath}/infoInvitados`); app.get(`${route}/get`, (req, res) => { - return get() + return get(req.query) .then((data) => { res.status(200).json(data); }) @@ -26,14 +26,4 @@ app.post(`${route}/infoInvitados`, (req, res) => { }); }); -// app.post(`${route}/entradaInvitado`, (req, res) => { -// return entradaInvitado(req.body) -// .then((data) => { -// res.status(200).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// }); - module.exports = app; diff --git a/server/routes/Premiacion.js b/server/routes/Premiacion.js new file mode 100644 index 0000000..0d33db9 --- /dev/null +++ b/server/routes/Premiacion.js @@ -0,0 +1,51 @@ +const express = require('express'); +const app = express(); +// const { verificaToken } = require('../middleware/autentificacion'); +const route = '/premiacion'; +const controllerPath = '../controller/Premiacion'; +const get = require(`${controllerPath}/premiaciones`); +const editar = require(`${controllerPath}/editar`); +const nueva = require(`${controllerPath}/nueva`); +const activarDesactivar = require(`${controllerPath}/activarDesactivar`); + +app.get(`${route}/get`, (req, res) => { + return get() + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + +app.post(`${route}/nueva`, (req, res) => { + return nueva(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + +app.put(`${route}/editar`, (req, res) => { + return editar(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + +app.put(`${route}/activarDesactivar`, (req, res) => { + return activarDesactivar(req.body) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); +}); + +module.exports = app; diff --git a/server/routes/Profesor.js b/server/routes/Profesor.js index b2ec2a5..ca4c990 100644 --- a/server/routes/Profesor.js +++ b/server/routes/Profesor.js @@ -46,7 +46,7 @@ app.post( upload.single('file'), (req, res) => { if (req.file) { - return cargarDatos(req.file.filename) + return cargarDatos(req.file.filename, req.body) .then((data) => { res.status(201).json(data); }) diff --git a/server/routes/Usuario.js b/server/routes/Usuario.js index aa8f54d..f685bd3 100644 --- a/server/routes/Usuario.js +++ b/server/routes/Usuario.js @@ -27,14 +27,4 @@ app.post(`${route}/loginOperador`, (req, res) => { }); }); -// app.post(`${route}/entradaInvitado`, (req, res) => { -// return entradaInvitado(req.body) -// .then((data) => { -// res.status(200).json(data); -// }) -// .catch((err) => { -// res.status(400).json({ message: err.message }); -// }); -// }); - module.exports = app; diff --git a/server/routes/index.js b/server/routes/index.js index e18f8dc..3acce19 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -4,5 +4,6 @@ const app = express(); app.use(require("./Usuario")); app.use(require("./Profesor")); app.use(require("./Invitado")); +app.use(require("./Premiacion")); module.exports = app; diff --git a/server/uploads/04b2aa1f156b677db4bbc8d110abf6e1 b/server/uploads/04b2aa1f156b677db4bbc8d110abf6e1 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/04b2aa1f156b677db4bbc8d110abf6e1 @@ -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/0d30acf9dbd42afe5fcd639ab214c033 b/server/uploads/0d30acf9dbd42afe5fcd639ab214c033 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/0d30acf9dbd42afe5fcd639ab214c033 @@ -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/1549e70024b5180e24f940e44343305e b/server/uploads/1549e70024b5180e24f940e44343305e new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/1549e70024b5180e24f940e44343305e @@ -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/1bf93440819d517aa40c05c80b3ed41d b/server/uploads/1bf93440819d517aa40c05c80b3ed41d new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/1bf93440819d517aa40c05c80b3ed41d @@ -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/36b4e21d2a3de28a644bd3247e485a53 b/server/uploads/36b4e21d2a3de28a644bd3247e485a53 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/36b4e21d2a3de28a644bd3247e485a53 @@ -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/3a8c885e14b8f74635715748990e7776 b/server/uploads/3a8c885e14b8f74635715748990e7776 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/3a8c885e14b8f74635715748990e7776 @@ -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/46825c3d810fae52bc6e98cc71efa3c3 b/server/uploads/46825c3d810fae52bc6e98cc71efa3c3 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/46825c3d810fae52bc6e98cc71efa3c3 @@ -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/7529e9a543d7a0661d3f7a1cfe74dacd b/server/uploads/7529e9a543d7a0661d3f7a1cfe74dacd new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/7529e9a543d7a0661d3f7a1cfe74dacd @@ -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/da363856e94cb587b3d0e09e79af1fb3 b/server/uploads/da363856e94cb587b3d0e09e79af1fb3 new file mode 100644 index 0000000..a8a6698 --- /dev/null +++ b/server/uploads/da363856e94cb587b3d0e09e79af1fb3 @@ -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