From 872549ee9befaaed12090422a9b2ac75b016eee2 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Wed, 24 Feb 2021 12:23:30 -0600 Subject: [PATCH 1/7] listo --- server/controller/CasoEspecial/nuevo.js | 4 ++-- server/routes/index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/server/controller/CasoEspecial/nuevo.js b/server/controller/CasoEspecial/nuevo.js index 22363c4..e0c5969 100644 --- a/server/controller/CasoEspecial/nuevo.js +++ b/server/controller/CasoEspecial/nuevo.js @@ -54,8 +54,8 @@ const nuevo = async (body, file) => { carpeta = res; return drive.uploadFile( path, - `archivos.rar`, - 'application/x-rar', + `archivos.zip`, + 'application/zip', carpeta ); }) diff --git a/server/routes/index.js b/server/routes/index.js index 2c5581b..69195f8 100644 --- a/server/routes/index.js +++ b/server/routes/index.js @@ -4,7 +4,7 @@ const app = express(); app.use(require('./Status')); app.use(require('./Usuario')); app.use(require('./Servicio')); -// app.use(require('./CasoEspecial')); +app.use(require('./CasoEspecial')); app.use(require('./Programa')); app.use(require('./CuestionarioAlumno')); app.use(require('./CuestionarioPrograma')); From bd454750bac5a7a5b0b5fe70855e6ccf627a40fe Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Fri, 26 Feb 2021 14:17:42 -0600 Subject: [PATCH 2/7] update caso especial --- server/controller/CasoEspecial/nuevo.js | 13 ++--- server/controller/CasoEspecial/update.js | 63 ++++++++++++++++++++++++ server/controller/Servicio/reporte.js | 0 server/controller/Servicio/update.js | 2 +- server/db/tablas/CasoEspecial.js | 8 ++- server/routes/CasoEspecial.js | 20 ++++++++ 6 files changed, 95 insertions(+), 11 deletions(-) create mode 100644 server/controller/CasoEspecial/update.js create mode 100644 server/controller/Servicio/reporte.js diff --git a/server/controller/CasoEspecial/nuevo.js b/server/controller/CasoEspecial/nuevo.js index e0c5969..9fa0860 100644 --- a/server/controller/CasoEspecial/nuevo.js +++ b/server/controller/CasoEspecial/nuevo.js @@ -11,6 +11,7 @@ const nuevo = async (body, file) => { const numeroCuenta = validar.validarNumeroCuenta(body.numeroCuenta); const creditos = validar.validarNumero(body.creditos); const correo = validar.validarCorreo(body.correo); + const telefono = validar.validarNumero(body.telefono, 15); const fechaInicio = validar.validarFecha(body.fechaInicio); const fechaFin = validar.validarFecha(body.fechaFin); const fechaNacimiento = validar.validarFecha(body.fechaNacimiento); @@ -20,10 +21,10 @@ const nuevo = async (body, file) => { 200 ); const institucion = body.institucion - ? validar.validarTexto(body.institucion, 'El texto institucion.', 100) + ? validar.validarTexto(body.institucion, 'El texto institucion.', 200) : ''; const dependencia = body.dependencia - ? validar.validarTexto(body.dependencia, 'El texto dependencia.', 100) + ? validar.validarTexto(body.dependencia, 'El texto dependencia.', 200) : ''; const motivo = body.motivo ? validar.validarNumero(body.motivo, 'El texto motivo.', 1) @@ -52,12 +53,7 @@ const nuevo = async (body, file) => { }) .then((res) => { carpeta = res; - return drive.uploadFile( - path, - `archivos.zip`, - 'application/zip', - carpeta - ); + return drive.uploadFile(path, `archivos.zip`, 'application/zip', carpeta); }) .then((res) => CasoEspecial.create({ @@ -66,6 +62,7 @@ const nuevo = async (body, file) => { idStatus, creditos, correo, + telefono, institucion, dependencia, motivo, diff --git a/server/controller/CasoEspecial/update.js b/server/controller/CasoEspecial/update.js new file mode 100644 index 0000000..6a0d003 --- /dev/null +++ b/server/controller/CasoEspecial/update.js @@ -0,0 +1,63 @@ +const drive = require('../../helper/drive'); +const validar = require('../../helper/validar'); +const CasoEspecial = require('../../db/tablas/CasoEspecial'); + +const update = async (body, file) => { + const idCasoEspecial = validar.validarId(body.idCasoEspecial); + const dataUpdate = {}; + + return CasoEspecial.findOne({ where: { idCasoEspecial } }) + .then(async (res) => { + if (!res) throw new Error('Este Caso Especiaal no existe en la db.'); + if (file) + dataUpdate.archivoZip = await drive.uploadFile( + `./server/uploads/${file}`, + `archivos.pdf`, + 'application/zip', + res.carpeta + ); + if (body.correo) dataUpdate.correo = validar.validarCorreo(body.correo); + if (body.fechaInicio) + dataUpdate.fechaInicio = validar.validarFecha(body.fechaInicio); + if (body.fechaFin) + dataUpdate.fechaFin = validar.validarFecha(body.fechaFin); + if (body.fechaNacimiento) + dataUpdate.fechaNacimiento = validar.validarFecha(body.fechaNacimiento); + if (body.direccion) + dataUpdate.direccion = validar.validarAlfanumerico( + body.direccion, + 'La dirección', + 200 + ); + if (body.telefono) + dataUpdate.telefono = validar.validarNumero(body.telefono, 15); + if (body.institucion) + dataUpdate.institucion = validar.validarTexto( + body.institucion, + 'El texto institucion.', + 200 + ); + if (body.dependencia) + dataUpdate.dependencia = validar.validarTexto( + body.dependencia, + 'El texto dependencia.', + 200 + ); + if (body.motivo) + dataUpdate.motivo = validar.validarNumero( + body.motivo, + 'El texto motivo.', + 1 + ); + if (validar.isObjectEmpty(dataUpdate)) + throw new Error( + 'No se envio nada para actualizar este Caso Especiaal.' + ); + return CasoEspecial.update(dataUpdate, { where: { idCasoEspecial } }); + }) + .then((res) => ({ + message: 'Se guardo correctamente los cambios de este servicio.', + })); +}; + +module.exports = update; diff --git a/server/controller/Servicio/reporte.js b/server/controller/Servicio/reporte.js new file mode 100644 index 0000000..e69de29 diff --git a/server/controller/Servicio/update.js b/server/controller/Servicio/update.js index 53357b2..5d96c7c 100644 --- a/server/controller/Servicio/update.js +++ b/server/controller/Servicio/update.js @@ -58,7 +58,7 @@ const update = async (body, files) => { return Servicio.update(dataUpdate, { where: { idServicio } }); }) .then((res) => ({ - message: 'Se guadro correctamente los cambios de este servicio.', + message: 'Se guardo correctamente los cambios de este servicio.', })); }; diff --git a/server/db/tablas/CasoEspecial.js b/server/db/tablas/CasoEspecial.js index 8ea8cb2..4a77331 100644 --- a/server/db/tablas/CasoEspecial.js +++ b/server/db/tablas/CasoEspecial.js @@ -22,13 +22,17 @@ CasoEspecial.init( type: DataTypes.STRING(60), allowNull: false, }, + telefono: { + type: DataTypes.STRING(15), + allowNull: false, + }, institucion: { - type: DataTypes.STRING(100), + type: DataTypes.STRING(200), allowNull: true, defaultValue: null, }, dependencia: { - type: DataTypes.STRING(100), + type: DataTypes.STRING(200), allowNull: true, defaultValue: null, }, diff --git a/server/routes/CasoEspecial.js b/server/routes/CasoEspecial.js index 7104c31..e8ea59c 100644 --- a/server/routes/CasoEspecial.js +++ b/server/routes/CasoEspecial.js @@ -9,6 +9,7 @@ const nuevo = require('../controller/CasoEspecial/nuevo'); const serviciosEspeciales = require('../controller/CasoEspecial/serviciosEspeciales'); const casoEspecial = require('../controller/CasoEspecial/casoEspecial'); const liberacion = require('../controller/CasoEspecial/liberacion'); +const update = require('../controller/CasoEspecial/update'); const eliminarArchivo = (filename) => { fs.unlinkSync(`./server/uploads/${filename}`); @@ -72,4 +73,23 @@ app.put( } ); +app.put( + `${route}/update`, + // verificaToken, + upload.single('archivos'), + (req, res) => { + return update( + JSON.parse(req.body.alumno), + req.file ? req.file.filename : '' + ) + .then((data) => { + res.status(201).json(data); + }) + .catch((err) => { + if (req.file) eliminarArchivo(req.file.filename); + res.status(400).json({ message: err.message }); + }); + } +); + module.exports = app; From 98c712b7704af84acbbbed60d6f31738e303f50c Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Mon, 1 Mar 2021 11:13:22 -0600 Subject: [PATCH 3/7] reporte casi listo --- server/controller/Servicio/reporte.js | 50 +++++++++++++++++++++++++++ server/routes/Servicio.js | 15 ++++++++ 2 files changed, 65 insertions(+) diff --git a/server/controller/Servicio/reporte.js b/server/controller/Servicio/reporte.js index e69de29..f833b41 100644 --- a/server/controller/Servicio/reporte.js +++ b/server/controller/Servicio/reporte.js @@ -0,0 +1,50 @@ +const fs = require('fs'); +const { convertArrayToCSV } = require('convert-array-to-csv'); +const { Op } = require('sequelize'); +const validar = require('../../helper/validar'); +const Servicio = require('../../db/tablas/Servicio'); +const Programa = require('../../db/tablas/Programa'); +const Usuario = require('../../db/tablas/Usuario'); +const Carrera = require('../../db/tablas/Carrera'); + +const get = async (body) => { + const inicio = validar.validarFecha(body.inicio); + const fin = validar.validarFecha(body.fin); + const path = `csv/reporte.csv`; + const data = []; + + return Servicio.findAll({ + where: { + fechaInicio: { [Op.gte]: inicio }, + fechaInicio: { [Op.lte]: fin }, + }, + include: [{ model: Programa }, { model: Usuario }, { model: Carrera }], + }).then((res) => { + for (let i = 0; i < res.length; i++) + data.push({ + numeroCuenta: res[i].Usuario.Usuario, + nombre: res[i].Usuario.nombre, + licenciatura: res[i].Carrera.carrera, + correo: res[i].correo, + fehcaInicio: res[i].fechaInicio, + fechaFin: res[i].fechaFin, + institucion: res[i].Programa.institucion, + dependencia: res[i].Programa.dependencia, + programa: res[i].Programa.programa, + clave: res[i].Programa.clavePrograma, + }); + try { + fs.unlinkSync(path); + } catch (err) { + console.log(err); + } + fs.appendFile(path, convertArrayToCSV(data), (err) => { + if (err) throw new Error(err); + }); + return { + message: `Se creo/actualizo correctamente el csv del reporte de servicios sociales.`, + }; + }); +}; + +module.exports = get; diff --git a/server/routes/Servicio.js b/server/routes/Servicio.js index 7c07196..c61f1bc 100644 --- a/server/routes/Servicio.js +++ b/server/routes/Servicio.js @@ -21,6 +21,7 @@ const rechazarAceptacion = require('../controller/Servicio/rechazarAceptacion'); const rechazarTermino = require('../controller/Servicio/rechazarTermino'); const rechazarInforme = require('../controller/Servicio/rechazarInforme'); const update = require('../controller/Servicio/update'); +const reporte = require('../controller/Servicio/reporte'); const eliminarArchivo = (filename) => { fs.unlinkSync(`./server/uploads/${filename}`); @@ -82,6 +83,20 @@ app.get(`${route}/alumno`, verificaToken, (req, res) => { }); }); +app.get( + `${route}/reporte`, + // verificaToken, + (req, res) => { + return reporte(req.query) + .then((data) => { + res.status(200).json(data); + }) + .catch((err) => { + res.status(400).json({ message: err.message }); + }); + } +); + app.put(`${route}/cancelar`, verificaToken, (req, res) => { return cancelar(req.body) .then((data) => { From 2011018794341dac4b0a26a56724b44cd705a4d9 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Mon, 1 Mar 2021 19:14:04 -0600 Subject: [PATCH 4/7] =?UTF-8?q?fecha=20de=20termino=20a=C3=B1adida?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/controller/Servicio/liberacion.js | 7 ++++++- server/db/tablas/Servicio.js | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/server/controller/Servicio/liberacion.js b/server/controller/Servicio/liberacion.js index 11a2780..321cbe6 100644 --- a/server/controller/Servicio/liberacion.js +++ b/server/controller/Servicio/liberacion.js @@ -1,3 +1,4 @@ +const moment = require('moment'); const validar = require('../../helper/validar'); const gmail = require('../../helper/gmail'); const correos = require('../../helper/correos'); @@ -48,7 +49,11 @@ const liberacion = async (body) => { throw new Error('Id status no valido.'); } }) - .then((res) => Servicio.update(update, { where: { idServicio } })) + .then((res) => + Servicio.update(update, { + where: { idServicio, fechaLiberacion: moment() }, + }) + ) .then((res) => ({ message: 'Se cambio de estatus correctamente y se envio un correo al alumno informandole de su liberación.', diff --git a/server/db/tablas/Servicio.js b/server/db/tablas/Servicio.js index b9037db..8b22b5f 100644 --- a/server/db/tablas/Servicio.js +++ b/server/db/tablas/Servicio.js @@ -44,6 +44,11 @@ Servicio.init( allowNull: true, // eliminar defaultValue: null, }, + fechaLiberacion: { + type: DataTypes.DATE, + allowNull: true, + defaultValue: null, + }, fechaNacimiento: { type: DataTypes.DATE, allowNull: true, From 699fa144cd4b0fb05a5b0b9f15dd484395c5a3c2 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Mon, 1 Mar 2021 19:15:29 -0600 Subject: [PATCH 5/7] error al eliminar archivo no existente --- server/controller/CuestionarioAlumno/get.js | 2 +- server/controller/CuestionarioPrograma/get.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/server/controller/CuestionarioAlumno/get.js b/server/controller/CuestionarioAlumno/get.js index 0a78a01..fa6ee41 100644 --- a/server/controller/CuestionarioAlumno/get.js +++ b/server/controller/CuestionarioAlumno/get.js @@ -67,7 +67,7 @@ const get = async (body) => { try { fs.unlinkSync(path); } catch (err) { - throw new Error(err); + console.log(err); } fs.appendFile(path, convertArrayToCSV(data), (err) => { if (err) throw new Error(err); diff --git a/server/controller/CuestionarioPrograma/get.js b/server/controller/CuestionarioPrograma/get.js index d5deeb4..797bf5a 100644 --- a/server/controller/CuestionarioPrograma/get.js +++ b/server/controller/CuestionarioPrograma/get.js @@ -43,7 +43,7 @@ const get = async (body) => { try { fs.unlinkSync(path); } catch (err) { - throw new Error(err); + console.log(err); } fs.appendFile(path, convertArrayToCSV(data), (err) => { if (err) throw new Error(err); From 280ab38ba6f1a127218fec601fcb1ee53740428d Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Tue, 2 Mar 2021 10:30:47 -0600 Subject: [PATCH 6/7] no subir archivos --- server/controller/CasoEspecial/update.js | 14 +++----------- server/routes/CasoEspecial.js | 9 ++------- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/server/controller/CasoEspecial/update.js b/server/controller/CasoEspecial/update.js index 6a0d003..c55f96a 100644 --- a/server/controller/CasoEspecial/update.js +++ b/server/controller/CasoEspecial/update.js @@ -1,21 +1,13 @@ -const drive = require('../../helper/drive'); const validar = require('../../helper/validar'); const CasoEspecial = require('../../db/tablas/CasoEspecial'); -const update = async (body, file) => { +const update = async (body) => { const idCasoEspecial = validar.validarId(body.idCasoEspecial); const dataUpdate = {}; return CasoEspecial.findOne({ where: { idCasoEspecial } }) .then(async (res) => { - if (!res) throw new Error('Este Caso Especiaal no existe en la db.'); - if (file) - dataUpdate.archivoZip = await drive.uploadFile( - `./server/uploads/${file}`, - `archivos.pdf`, - 'application/zip', - res.carpeta - ); + if (!res) throw new Error('Este Caso Especial no existe en la db.'); if (body.correo) dataUpdate.correo = validar.validarCorreo(body.correo); if (body.fechaInicio) dataUpdate.fechaInicio = validar.validarFecha(body.fechaInicio); @@ -51,7 +43,7 @@ const update = async (body, file) => { ); if (validar.isObjectEmpty(dataUpdate)) throw new Error( - 'No se envio nada para actualizar este Caso Especiaal.' + 'No se envio nada para actualizar este Caso Especial.' ); return CasoEspecial.update(dataUpdate, { where: { idCasoEspecial } }); }) diff --git a/server/routes/CasoEspecial.js b/server/routes/CasoEspecial.js index e8ea59c..9ff0197 100644 --- a/server/routes/CasoEspecial.js +++ b/server/routes/CasoEspecial.js @@ -76,17 +76,12 @@ app.put( app.put( `${route}/update`, // verificaToken, - upload.single('archivos'), (req, res) => { - return update( - JSON.parse(req.body.alumno), - req.file ? req.file.filename : '' - ) + return update(req.body) .then((data) => { - res.status(201).json(data); + res.status(200).json(data); }) .catch((err) => { - if (req.file) eliminarArchivo(req.file.filename); res.status(400).json({ message: err.message }); }); } From 1bb69ecdc8bdc5b6dd775906b4635b2298b4cd96 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Thu, 11 Mar 2021 20:01:29 -0600 Subject: [PATCH 7/7] =?UTF-8?q?error=20a=C3=B1os=20pasados=20funcion=20dia?= =?UTF-8?q?rio?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/helper/diario.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/helper/diario.js b/server/helper/diario.js index fec23cd..a9c27e6 100644 --- a/server/helper/diario.js +++ b/server/helper/diario.js @@ -22,6 +22,8 @@ const diario = async () => { if (fechaFin.year() > now.year()) fechaFinDate += 365 * (fechaFin.year() - now.year()); + if (fechaFin.year() < now.year()) + fechaFinDate -= 365 * (now.year() - fechaFin.year()); if (fechaFinDate - now.dayOfYear() === 7) { let correoAlumno = correos.avisoTerminoAlumno( servicios[i].Usuario.nombre