From 1ce52851bcc4f4e0b116a96c882fb6a298b05b79 Mon Sep 17 00:00:00 2001 From: Lemuel Marquez Date: Tue, 29 Dec 2020 00:12:32 -0600 Subject: [PATCH] =?UTF-8?q?pr=C3=A1cticamente=20lista?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .DS_Store | Bin 0 -> 6148 bytes csv/plantilla.csv | 16 +++++ server/app.js | 2 + server/controller/Programa/cargaMasiva.js | 7 +-- server/helper/correos.js | 40 ++++++------- server/helper/diario.js | 68 ++++++++++++++++++++++ 6 files changed, 109 insertions(+), 24 deletions(-) create mode 100644 .DS_Store create mode 100644 csv/plantilla.csv diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..a8b992bba93af084e3f13d6eb01de6e11e0ad937 GIT binary patch literal 6148 zcmeHK%}&BV5Z(pU1!Lr3qTcr6jROrB!oj4ec<^RYqX#w63Xvw*5?UaNm_CQTkuTuu zIJ3Jo5;=G>MrM-TZ)Rs^xAP_4AI2DW#$AiCGGk0YL*%F|5gcCX%9&t9j&sCAe-Qa# zz4=4q`|E(;o@ci#W)pw<_4@}woK&mtJeM!5t#1fX5~Z!ujoXi=ZsH~5*zrbJXq|aU z-#7Ys6b(Lg&%X$I({_31I0_Rl2zw)y9CUjSa(x+u-Dv7W^coLRNQT17VMjrqJNb`Pwh)6V_FgTf{Xs%Qv<;>j)z$$WUZ2rlKtur@ z-x7$@plvYK2p$lwQvr1Q{6B$TX6Yk;F@-E*fEf5^4DdqBZ8=bsIa|M#hi9#X)`5nCaVaVwpf6kk jz`%WEPdT+;q7HGk!Biv8g5xS3kS+p>5bB75Utr(^CM-}Q literal 0 HcmV?d00001 diff --git a/csv/plantilla.csv b/csv/plantilla.csv new file mode 100644 index 0000000..327a919 --- /dev/null +++ b/csv/plantilla.csv @@ -0,0 +1,16 @@ +correo,nombre,institucion,dependencia,programa,clave +lemuel@acatlan.unam.mx,Lemuel,Institucion Falsa 1,Dependencia Falsa 10,Progrma Falso 30,2020-1/10-30 +lemuel@acatlan.unam.mx,Lemuel,Institucion Falsa 1,Dependencia Falsa 10,Progrma Falso 30,2019-1/10-30 +lemuel@acatlan.unam.mx,Lemuel,Institucion Falsa 1,Dependencia Falsa 11,Progrma Falso 31,2020-1/11-31 +lemuel@acatlan.unam.mx,Lemuel,Institucion Falsa 1,Dependencia Falsa 11,Progrma Falso 31,2020-1/11-31 +lemuel@acatlan.unam.mx,Lemuel,Institucion Falsa 1,Dependencia Falsa 12,Progrma Falso 32,2020-1/12-32 +correo@corre.com,random,Institucion Falsa 20,Dependencia Falsa 13,Progrma Falso 33,2020-20/13-33 +correo@corre.com,random,Institucion Falsa 20,Dependencia Falsa 14,Progrma Falso 34,2020-20/14-34 +correo@corre.com,random,Institucion Falsa 20,Dependencia Falsa 15,Progrma Falso 35,2020-20/15-35 +correo2@corre.com,random2,Institucion Falsa 21,Dependencia Falsa 16,Progrma Falso 36,2020-21/16-36 +correo2@corre.com,random2,Institucion Falsa 21,Dependencia Falsa 17,Progrma Falso 37,2020-21/17-37 +correo2@corre.com,random2,Institucion Falsa 21,Dependencia Falsa 18,Progrma Falso 38,2020-21/18-38 +correo1@acatlan.unam.mx,random3,UNAM,FES Acatlán,Acatlán Contigo,2020-12/20-91 +correo2@acatlan.unam.mx,random4,UNAM,FES Acatlán,Acatlán Contigo,2020-12/20-91 +correo3@acatlan.unam.mx,random5,UNAM,FES Acatlán,Acatlán Contigo,2019-12/20-91 +correo3@acatlan.unam.mx,random5,UNAM,FES Acatlán,Acatlán Contigo,2020-12/20-91 diff --git a/server/app.js b/server/app.js index ba0b38e..36acec1 100644 --- a/server/app.js +++ b/server/app.js @@ -15,6 +15,8 @@ app.use( app.use(bodyParser.json()); +app.use(express.static('csv')); + app.get('/', (req, res) => res.send('API IRIS')); app.use(require('./routes/index')); diff --git a/server/controller/Programa/cargaMasiva.js b/server/controller/Programa/cargaMasiva.js index c34a6f1..280e4c5 100644 --- a/server/controller/Programa/cargaMasiva.js +++ b/server/controller/Programa/cargaMasiva.js @@ -77,9 +77,9 @@ const cargaMasiva = async (file) => { let activo = true; if (clavePrograma.substr(0, 4) < moment().year()) activo = false; - if (clavePrograma.substr(0, 4) > moment().year()) { + if (clavePrograma.substr(0, 4) > moment().year()) mensaje += `El año de esta clave de programa no es valido\n\n`; - } else { + else { await Programa.create({ institucion: programas[i].institucion, dependencia: programas[i].dependencia, @@ -101,9 +101,8 @@ const cargaMasiva = async (file) => { } a Acatlán\n\n`; }); } - } else { + } else mensaje += `Ya existe el programa con clave de programa: ${dataPrograma.clavePrograma} que pertenece al responsable con correo: ${dataPrograma.Usuario.usuario}\n\n`; - } }); }); } diff --git a/server/helper/correos.js b/server/helper/correos.js index 9dcb032..b405f91 100644 --- a/server/helper/correos.js +++ b/server/helper/correos.js @@ -12,7 +12,7 @@ Cualquier duda puedes acudir al área de Registro y Control de Servicio Social e Instrucciones al término de tu servicio social: -Al día siguiente de tu fecha de término programada, quedará habilitado en el sistema la opción para subir los documentos correspondientes, por lo que la institución deberá subir escaneada tu carta de término y llenar un cuestionario sobre tu desempeño, mientras que tú debes encargarte de subir tu informe global de actividades en el formato disponible en http://bit.ly/informeglobal-FESA, así como llenar un cuestionario sobre el programa en el que participaste. +Al día siguiente de tu fecha de término programada, quedará habilitado en el sistema la opción para subir los documentos correspondientes, por lo que la institución deberá subir escaneada tu carta de término y llenar un cuestionario sobre tu desempeño, mientras que tú debes encargarte de subir tu informe global de actividades en el formato disponible en http://bit.ly/informeglobal-FESA, así como llenar un cuestionario sobre el programa en el que participaste. Si se suben correctamente los documentos y cuestionarios mencionados, el Departamento de Servicio Social validará tu trámite de término en el sistema y en un periodo aproximado de 15 días hábiles te hará llegar por correo electrónico tu carta de liberación del servicio social. Finalmente, te recomendamos destacar en tu bandeja de correos este mensaje para tener siempre a la mano las instrucciones recibidas, o bien, copiar en otro archivo el texto para que lo puedas ubicar fácilmente. @@ -51,11 +51,11 @@ const registroValidadoAlumno = (nombre) => { msj: `Estimado(a) ${nombre}: Te informamos que el Área de Registro y Control de Servicio Social ha validado tu solicitud de registro de servicio social, por lo que el siguiente trámite lo realizarás hasta que concluyas 480 horas en un período de mínimo 6 meses y obtengas tu carta de término por parte de la institución, quien se encargará de subir dicho archivo a la página en donde te registraste, además de responder un cuestionario sobre tu desempeño. - + A su vez, deberás responder un cuestionario de evaluación del programa de servicio social en donde participaste y enviar el informe global de actividades elaborado por ti, con firma y sello de visto bueno de tu jefe inmediato. - + Cabe mencionar que se ha enviado copia de este mensaje al responsable de programa de servicio social de tu dependencia para que esté enterado de la validación de tu registro. - + ${dudas}`, }; }; @@ -77,7 +77,7 @@ const terminoValidado = (nombre) => { msj: `Estimado(a) ${nombre}: Te confirmamos que has concluido con los trámites necesarios para la liberación de tu servicio social por lo que ahora solo queda esperar máximo 15 días hábiles para que se te notifique por correo electrónico, a partir de cuándo puedes recoger la copia de tu carta de liberación en las ventanillas del Área de Registro y Control de Servicio Social. - + ${dudas}`, }; }; @@ -89,8 +89,8 @@ const terminoRechazadoAlumno = (motivo, nombre) => { Te informamos que no fue validado tu trámite de término por el Departamento de Servicio Social y Bolsa de Trabajo por los siguientes motivos: -${motivo} - +${motivo} + ${dudas}`, }; }; @@ -101,8 +101,8 @@ const terminoRechazadoResponsable = (motivo, nombre) => { msj: `Estimado responsable de programa: Te informamos que no fue validado el trámite de término del alumno ${nombre} por el Departamento de Servicio Social y Bolsa de Trabajo por los siguientes motivos: -${motivo} - +${motivo} + ${dudas}`, }; }; @@ -114,7 +114,7 @@ const canceladoAlumno = (motivo, nombre) => { Te informamos que fue cancelado tu trámite de servicio social, por el Departamento de Servicio Social y Bolsa de Trabajo por los siguientes motivos: -${motivo} +${motivo} ${dudas}`, }; @@ -126,8 +126,8 @@ const canceladoResponsable = (motivo, nombre) => { msj: `Estimado responsable de programa: Te informamos que fue cancelado el trámite de servicio social del alumno ${nombre}, por el Departamento de Servicio Social y Bolsa de Trabajo por los siguientes motivos: -${motivo} - +${motivo} + ${dudas}`, }; }; @@ -135,7 +135,7 @@ ${dudas}`, const enviarSec = (secreto, usuariomail, nombre) => { return { subject: `Estimado responsable de programa de servicio social: ${nombre}`, - msj: `Como ya se les había informado, en nuestra Facultad estamos en un proceso de actualización administrativa que implica la puesta en marcha de un nuevo sistema interno de servicio social en el cual estará el expediente electrónico del alumno y su seguimiento con respecto a estos trámites. La dirección electrónica de dicho sistema es https://iris.acatlan.unam.mx y su usuario y contraseña son: + msj: `Como ya se les había informado, en nuestra Facultad estamos en un proceso de actualización administrativa que implica la puesta en marcha de un nuevo sistema interno de servicio social en el cual estará el expediente electrónico del alumno y su seguimiento con respecto a estos trámites. La dirección electrónica de dicho sistema es https://iris.acatlan.unam.mx y su usuario y contraseña son: Nombre de usuario para ingresar = ${usuariomail} @@ -145,7 +145,7 @@ Le pedimos sea cuidadoso de sus claves de acceso ya que con ellos tiene la facul Para el uso de dicho sistema el proceso es el siguiente: -1. Al ingresar sólo debe seguir las sencillas instrucciones para pre-registrar a sus prestadores de servicio social, lo cual es un proceso fácil debido a que con sólo capturar el número de cuenta del alumno, aparecerá de manera automática su nombre y carrera, quedando pendiente sólo los campos de correo electrónico del alumno y los datos de su proyecto de servicio social. Adicionalmente deberá cargar el archivo con la carta aceptación escaneada en formato pdf. +1. Al ingresar sólo debe seguir las sencillas instrucciones para pre-registrar a sus prestadores de servicio social, lo cual es un proceso fácil debido a que con sólo capturar el número de cuenta del alumno, aparecerá de manera automática su nombre y carrera, quedando pendiente sólo los campos de correo electrónico del alumno y los datos de su proyecto de servicio social. Adicionalmente deberá cargar el archivo con la carta aceptación escaneada en formato pdf. 2. Con dicho pre-registro el Departamento de servicio social revisará que la carta de aceptación esté correcta y dará su aprobación en el sistema para que le llegue un correo electrónico al alumno notificándole sus claves de acceso para completar el registro. @@ -197,11 +197,11 @@ Te recordamos que está próxima la fecha programada para el término de tu serv En cuanto cumplas con las 480 horas reglamentarias, tienes 15 días hábiles para ingresar con tu usuario y contraseña recibidos anteriormente y subir escaneado tu informe de servicio social en el formato descargable que aparece en la siguiente página: https://www.acatlan.unam.mx/index.php?id=160. Adicionalmente deberás responder en el sistema el Cuestionario de evaluación del programa de servicio social en el que participaste. -Por su parte el responsable del programa de servicio social deberá ingresar al mismo sistema para subir escaneada tu carta de término y debe responder el Cuestionario de desempeño del alumno. Para lo anterior, también la institución tiene 15 días hábiles a partir de que concluiste las 480 horas de servicio. +Por su parte el responsable del programa de servicio social deberá ingresar al mismo sistema para subir escaneada tu carta de término y debe responder el Cuestionario de desempeño del alumno. Para lo anterior, también la institución tiene 15 días hábiles a partir de que concluiste las 480 horas de servicio. En cuanto el responsable de programa de servicio social y tú suban al sistema lo que les corresponde, el Departamento de Servicio Social revisará tus documentos y en caso de estar correctos validará tu trámite para realizar la liberación de este requisito. Recibirás una notificación por correo con el periodo de tiempo aproximado que debes esperar para acudir a recoger la copia de tu carta de liberación o bien, las indicaciones de los documentos que debes corregir para poder aceptar tu trámite de término. -Por reglamento de la Universidad, si en máximo dos años a partir de la fecha de inicio de servicio social no se realiza el trámite de término mencionado anteriormente, debes tomar en cuenta que tu registro queda cancelado y deberás tramitarlo nuevamente en otro programa. +Por reglamento de la Universidad, si en máximo dos años a partir de la fecha de inicio de servicio social no se realiza el trámite de término mencionado anteriormente, debes tomar en cuenta que tu registro queda cancelado y deberás tramitarlo nuevamente en otro programa. ${dudas} @@ -216,15 +216,15 @@ const avisoTerminoResponsable = (nombre) => { subject: `Aviso de Termino de Servicio Social`, msj: `Estimado responsable de programa de servicio social: -Te informamos que la fecha de término programada para el alumno ${nombre} está próxima a cumplirse por lo que te notificamos que un día después de que se cumpla quedará habilitada en el sistema iris.acatlan.unam.mx la opción para realizar el trámite de conclusión. +Te informamos que la fecha de término programada para el alumno ${nombre} está próxima a cumplirse por lo que te notificamos que un día después de que se cumpla quedará habilitada en el sistema iris.acatlan.unam.mx la opción para realizar el trámite de conclusión. -Se ha enviado un correo al alumno para notificarle que una vez que cumpla 480 horas, tiene 15 días hábiles para ingresar con su usuario y contraseña recibidos anteriormente y subir escaneado su informe de servicio social y deberá responder en el sistema el Cuestionario de evaluación del programa en el que participó. +Se ha enviado un correo al alumno para notificarle que una vez que cumpla 480 horas, tiene 15 días hábiles para ingresar con su usuario y contraseña recibidos anteriormente y subir escaneado su informe de servicio social y deberá responder en el sistema el Cuestionario de evaluación del programa en el que participó. -Por su parte usted deberá ingresar al mismo sistema para subir escaneada su carta de término y responder el Cuestionario de desempeño del alumno. Para lo anterior, también tiene 15 días hábiles a partir de que el prestador cumplió las 480 horas de servicio. +Por su parte usted deberá ingresar al mismo sistema para subir escaneada su carta de término y responder el Cuestionario de desempeño del alumno. Para lo anterior, también tiene 15 días hábiles a partir de que el prestador cumplió las 480 horas de servicio. En cuanto usted y el alumno suban al sistema lo que les corresponde, el Departamento de Servicio Social revisará los documentos y en caso de estar correctos validará el trámite para realizar la liberación de este requisito. El alumno recibirá una notificación por correo con el periodo de tiempo aproximado que debe esperar para acudir a recoger la copia de su carta de liberación o bien, recibirán las indicaciones de los documentos que se deben corregir para poder aceptar el trámite de término. -También se le ha informado al alumno que por reglamento de la Universidad, si en máximo dos años a partir de la fecha de inicio de servicio social no se realiza el trámite de término mencionado anteriormente, debe tomar en cuenta que su registro queda cancelado y deberá tramitarlo nuevamente en otro programa. +También se le ha informado al alumno que por reglamento de la Universidad, si en máximo dos años a partir de la fecha de inicio de servicio social no se realiza el trámite de término mencionado anteriormente, debe tomar en cuenta que su registro queda cancelado y deberá tramitarlo nuevamente en otro programa. ${dudas} diff --git a/server/helper/diario.js b/server/helper/diario.js index e69de29..03b6631 100644 --- a/server/helper/diario.js +++ b/server/helper/diario.js @@ -0,0 +1,68 @@ +const moment = require('moment'); +const Servicio = require('../db/tablas/Servicio'); +const Usuario = require('../db/tablas/Usuario'); +const Programa = require('../db/tablas/Programa'); +const gmail = require('./gmail'); +const correos = require('./correos'); +const { where } = require('sequelize/types'); + +const diario = async () => { + const now = moment(); + let servicios = await Servicio.findAll({ + where: { idStatus: 3 }, + include: [ + { model: Usuario }, + { model: Programa, include: [{ model: Usuario }] }, + ], + }).then((res) => res); + + const mensajeRecordatorio = async () => { + for (let i = 0; i < 1; i++) { + let fechaFin = moment(servicios[i].fechaFin); + let fechaFinDate = fechaFin.dayOfYear(); + + if (fechaFin.year() > now.year) + fechaFinDate += 365 * (fechaFin.year() - now.year()); + + if (fechaFinDate - now.dayOfYear() === 7) { + let correoAlumno = correos.avisoTerminoAlumno( + servicios[i].Usuario.nombre + ); + let correoResponsable = correos.avisoTerminoResponsable( + servicios[i].Usuario.nombre + ); + + await gmail( + correoAlumno.subject, + servicios[i].correo, + correoAlumno.msj + ); + await gmail( + correoResponsable.subject, + servicios[i].correo, + correoResponsable.msj + ); + } + } + }; + + const diaDespues = async () => { + for (let i = 0; i < servicios.length; i++) { + let fechaFin = moment(servicios[i].fechaFin); + let fechaFinDate = fechaFin.dayOfYear(); + + if (fechaFin.year() > now.year) + fechaFinDate += 365 * (fechaFin.year() - now.year()); + if (fechaFinDate - now.dayOfYear() <= -1) { + await Servicio.update( + { idStatus: 4 }, + { where: { idServicio: servicios[i].idServicio } } + ); + } + } + }; + + // mensajeRecordatorio(); +}; + +diario();