Merge branch 'master' into dev

This commit is contained in:
Lemuel Márquez
2023-07-25 16:20:48 -06:00
8 changed files with 152 additions and 80 deletions
+1 -1
View File
@@ -36,7 +36,7 @@ const liberacion = async (body) => {
.then((res) => CasoEspecial.update(update, { where: { idCasoEspecial } }))
.then((res) => ({
message:
'Se cambio de estatus correctamente y se envio un correo al alumno informandole de su liberación.',
'Se cambió de estatus correctamente y se envió un correo al alumno informandole de su liberación.',
}));
};
+1 -1
View File
@@ -35,7 +35,7 @@ const nuevo = async (body, file) => {
? validar.validarTexto(body.institucion, 'institucion', false, 200)
: '';
const dependencia = body.dependencia
? validar.validarTexto(body.dependencia, 'dependencia', false, 200)
? validar.validarAlfanumerico(body.dependencia, 'dependencia', false, 200)
: '';
const motivo = body.motivo
? validar.validarNumero(body.motivo, 'motivo', true, 1)
+4 -3
View File
@@ -4,6 +4,7 @@ const helperPath = '../../helper';
const helper = require(`${helperPath}/helper`);
const { validarNumero } = require(`${helperPath}/validar`);
const dbPath = '../../db/tablas';
const Carrera = require(`${dbPath}/Carrera`);
const CuestionarioAlumno = require(`${dbPath}/CuestionarioAlumno`);
const Programa = require(`${dbPath}/Programa`);
const Servicio = require(`${dbPath}/Servicio`);
@@ -22,6 +23,7 @@ const get = async (body) => {
},
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}%` } } },
{ model: Usuario },
{ model: Carrera },
],
order: [['createdAt']],
})
@@ -32,6 +34,7 @@ const get = async (body) => {
clavePrograma: res[i].Programa.clavePrograma,
usuario: res[i].Usuario.usuario,
nombre: res[i].Usuario.nombre,
carrera: res[i].Carrera.carrera,
idCuestionarioAlumno: res[i].CuestionarioAlumno.idCuestionarioAlumno,
sexo: res[i].CuestionarioAlumno.sexo,
edad: res[i].CuestionarioAlumno.edad,
@@ -73,9 +76,7 @@ const get = async (body) => {
});
return helper.crearArchivo(path, convertArrayToCSV(data));
})
.then((res) => {
return path;
});
.then((res) => path);
};
module.exports = get;
@@ -5,6 +5,7 @@ const helperPath = '../../helper';
const helper = require(`${helperPath}/helper`);
const { validarNumero } = require(`${helperPath}/validar`);
const dbPath = '../../db/tablas';
const Carrera = require(`${dbPath}/Carrera`);
const CuestionarioPrograma = require(`${dbPath}/CuestionarioPrograma`);
const Servicio = require(`${dbPath}/Servicio`);
const Programa = require(`${dbPath}/Programa`);
@@ -23,6 +24,7 @@ const get = async (body) => {
},
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}-%` } } },
{ model: Usuario },
{ model: Carrera },
],
order: [['createdAt']],
})
@@ -33,6 +35,7 @@ const get = async (body) => {
clavePrograma: res[i].Programa.clavePrograma,
usuario: res[i].Usuario.usuario,
nombre: res[i].Usuario.nombre,
carrera: res[i].Carrera.carrera,
idCuestionarioPrograma:
res[i].CuestionarioPrograma.idCuestionarioPrograma,
actividad1: res[i].CuestionarioPrograma.actividad1,
@@ -50,9 +53,7 @@ const get = async (body) => {
});
return helper.crearArchivo(path, convertArrayToCSV(data));
})
.then((res) => {
return path;
});
.then((res) => path);
};
module.exports = get;
+28 -24
View File
@@ -41,11 +41,8 @@ const nuevo = async (body, file) => {
const profesor = body.profesor
? validar.validarTexto(body.profesor, 'profesor', true, 50)
: '';
let carpeta = '';
return Usuario.findOne({
where: { idUsuario },
})
return Usuario.findOne({ where: { idUsuario } })
.then((res) => {
if (!res) throw new Error('Este alumno no existe en la db.');
if (res.idTipoUsuario !== 3)
@@ -65,19 +62,7 @@ const nuevo = async (body, file) => {
.then(async (res) => {
if (res)
throw new Error('Este alumno ya tienen un Servicio Social activo.');
return drive.folder(numeroCuenta);
})
.then((res) => {
carpeta = res;
return drive.uploadFile(
path,
`Carta_Aceptacion.pdf`,
'application/pdf',
carpeta
);
})
.then((res) =>
Servicio.create({
return Servicio.create({
idUsuario,
idPrograma,
idCarrera,
@@ -85,15 +70,34 @@ const nuevo = async (body, file) => {
correo,
fechaInicio: fechaInicio.format(),
fechaFin: fechaFin.format(),
carpeta,
cartaAceptacion: res,
carpeta: '',
cartaAceptacion: '',
profesor,
programaInterno,
})
)
.then((res) => ({
message: `Se Pre-Registro correctamente a este alumno alumno.`,
}));
});
})
.then((servicio) => {
let carpeta = '';
drive
.mkDir(numeroCuenta)
.then((res) => {
carpeta = res;
return drive.uploadFile(
path,
`Carta_Aceptacion.pdf`,
'application/pdf',
carpeta
);
})
.then((res) =>
Servicio.update(
{ carpeta, cartaAceptacion: res },
{ where: { idServicio: servicio.idServicio } }
)
);
return { message: `Se Pre-Registro correctamente a este alumno.` };
});
};
module.exports = nuevo;
+10 -10
View File
@@ -5,27 +5,27 @@ const dbPath = '../../db/tablas';
const Usuario = require(`${dbPath}/Usuario`);
const Carrera = require(`${dbPath}/Carrera`);
const creditosCarreras = [
{ carrera: 'LIC. EN ACTUARIA', creditos: 70 },
{ carrera: 'LIC. EN ACTUARIA', creditos: 64 },
{ carrera: 'LIC. EN ARQUITECTURA', creditos: 70 },
{ carrera: 'LIC. EN CIENCIAS POLITICAS Y ADMON PUB', creditos: 70 },
{ carrera: 'LIC. EN CIENCIAS POLITICAS Y ADMON.PUBL.', creditos: 70 },
{ carrera: 'LIC. EN CIENCIAS POLITICAS Y ADMON PUB', creditos: 67 },
{ carrera: 'LIC. EN CIENCIAS POLITICAS Y ADMON.PUBL.', creditos: 67 },
{ carrera: 'LIC. EN COMUNICACION', creditos: 67 },
{ carrera: 'LIC. EN DERECHO', creditos: 70 },
{ carrera: 'LIC. EN DERECHO (SUA)', creditos: 70 },
{ carrera: 'LIC. EN DERECHO', creditos: 68 },
{ carrera: 'LIC. EN DERECHO (SUA)', creditos: 67 },
{ carrera: 'LIC. EN DISEÑO GRAFICO', creditos: 70 },
{ carrera: 'LIC. EN ECONOMIA', creditos: 70 },
{ carrera: 'LIC. EN ENSEÑANZA DE INGLES', creditos: 70 },
{ carrera: 'LIC. EN ECONOMIA', creditos: 66 },
{ carrera: 'LIC. EN ENSEÑANZA DE INGLES', creditos: 69 },
{ carrera: 'LIC. EN FILOSOFIA', creditos: 70 },
{ carrera: 'LIC. EN HISTORIA', creditos: 70 },
{ carrera: 'LIC. EN INGENIERIA CIVIL', creditos: 70 },
{ carrera: 'LIC. EN LENGUA Y LITERATURA HISPANICAS', creditos: 70 },
{ carrera: 'LIC. EN MAT. APLICADAS Y COMPUTACION', creditos: 68 },
{ carrera: 'LIC. EN MATEMATICAS APLICADAS Y COMP.', creditos: 68 },
{ carrera: 'LIC. EN MAT. APLICADAS Y COMPUTACION', creditos: 66 },
{ carrera: 'LIC. EN MATEMATICAS APLICADAS Y COMP.', creditos: 66 },
{ carrera: 'LIC. EN PEDAGOGÍA', creditos: 70 },
{ carrera: 'LIC. EN PERIODISMO Y COMUNICACION COL.', creditos: 70 },
{ carrera: 'LIC. EN RELACIONES INTERNACIONALES', creditos: 70 },
{ carrera: 'LIC. EN RELACIONES INTERNACIONALES (SUA)', creditos: 70 },
{ carrera: 'LIC. EN SOCIOLOGIA', creditos: 70 },
{ carrera: 'LIC. EN SOCIOLOGIA', creditos: 68 },
{ carrera: 'LIC. ENSEÑANZA DE ALEMÁN (LENG. EXTRANJS', creditos: 70 },
{ carrera: 'LIC. ENSEÑANZA DE ESPAÑOL(LENG. EXTRANJ)', creditos: 70 },
{ carrera: 'LIC. ENSEÑANZA DE INGLÉS(LENG. EXTRANJE)', creditos: 70 },
+73 -32
View File
@@ -1,4 +1,10 @@
const dudas = `Cualquier duda puedes acudir al área de Registro y Control de Servicio Social en COESI de Lunes a Viernes de 10:00 a 14:00 hrs y de 16:00 a 20:00 hrs, o bien, comunicarte al 5623 1686 o al correo registross@acatlan.unam.mx`;
const dudasAlumno = `Cualquier duda puedes acudir a las ventanillas de servicio social de la Secretaría de Asuntos Académicos Estudiantiles, en la planta baja del Edificio A-8 de lunes a viernes de 09:00 a 15:00 hrs. y de 17:00 a 19:00 hrs. o bien, comunicarte al 5623 1686 o al correo tramites.ss@acatlan.unam.mx`;
const dudasResponsable = `Cualquier duda puede comunicarse al 5623 1686 o al correo tramites.ss@acatlan.unam.mx`;
const atentamente = `
Atentamente
Departamento de Servicio Social y Bolsa de Trabajo
FES Acatlán
`;
const preRegistro = (password, nombre) => {
return {
@@ -6,17 +12,23 @@ const preRegistro = (password, nombre) => {
msj: `Estimado(a) ${nombre}:
Te informamos que la dependencia en donde decidiste realizar tu servicio social ya te registró en nuestro sistema de servicio social, por lo que para completar el proceso debes ingresar en un periodo máximo de 10 días hábiles a partir de la recepción de este mensaje, a la página https://iris.acatlan.unam.mx/ con tu número de cuenta y contraseña: ${password}, para llenar un formulario con tus datos.
En caso de no realizar dicho registro, tu trámite queda inconcluso y no nos hacemos responsables por las horas de servicio social prestadas en cualquier dependencia.
En el sistema que se te indicó podrás dar seguimiento al resto de tu trámite de servicio social.
Cualquier duda puedes acudir al área de Registro y Control de Servicio Social en COESI de lunes a viernes de 10:00 a 13:00 hrs. y de 16:00 a 19:00 hrs. o bien, comunicarte al 5623 1686 o al correo tramites.ss@acatlan.unam.mx
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.
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.
${dudas}`,
${dudasAlumno}
${atentamente}
`,
};
};
@@ -29,7 +41,10 @@ Te informamos que hay un error con tu pre-registro de servicio social por los si
${motivo}
${dudas}`,
${dudasAlumno}
${atentamente}
`,
};
};
@@ -37,11 +52,15 @@ const preRegistroRechazadoResponsable = (motivo, nombre) => {
return {
subject: `Notificación de rechazo de pre-registro.`,
msj: `Estimado responsable de programa:
Te informamos que hubo un error con el pre-registro de servicio social del alumno ${nombre} por los siguientes motivos:
${motivo}
${dudas}`,
${dudasResponsable}
${atentamente}
`,
};
};
@@ -56,7 +75,10 @@ A su vez, deberás responder un cuestionario de evaluación del programa de serv
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}`,
${dudasAlumno}
${atentamente}
`,
};
};
@@ -67,7 +89,10 @@ const registroValidadoResponsable = (nombre) => {
Te informamos que el Área de Registro y Control de Servicio Social ha validado la solicitud de registro del alumno ${nombre}.
${dudas}`,
${dudasResponsable}
${atentamente}
`,
};
};
@@ -76,9 +101,12 @@ const terminoValidado = (nombre) => {
subject: 'Validación de término.',
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.
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 envíe a tu correo, la copia de tu carta de liberación.
${dudas}`,
${dudasAlumno}
${atentamente}
`,
};
};
@@ -91,7 +119,10 @@ Te informamos que no fue validado tu trámite de término por el Departamento de
${motivo}
${dudas}`,
${dudasAlumno}
${atentamente}
`,
};
};
@@ -99,11 +130,15 @@ const terminoRechazadoResponsable = (motivo, nombre) => {
return {
subject: 'Correo de rechazo de término',
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}
${dudas}`,
${dudasResponsable}
${atentamente}
`,
};
};
@@ -116,7 +151,10 @@ Te informamos que fue cancelado tu trámite de servicio social, por el Departame
${motivo}
${dudas}`,
${dudasAlumno}
${atentamente}
`,
};
};
@@ -128,16 +166,19 @@ Te informamos que fue cancelado el trámite de servicio social del alumno ${nomb
${motivo}
${dudas}`,
${dudasResponsable}
${atentamente}
`,
};
};
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: `Le informamos que desde marzo de 2020 se implementó 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:
Usuario: ${usuariomail}
Nombre de usuario para ingresar: ${usuariomail}
Contraseña: ${secreto}
@@ -155,32 +196,35 @@ Para el uso de dicho sistema el proceso es el siguiente:
5. Por su parte el alumno ingresará al sistema para subir escaneado su informe de actividades con firma y sello de su jefe inmediato y llenará un cuestionario de evaluación del programa de servicio social en el que participó.
6. Si todo está correcto el Departamento de servicio social validará el trámite de término del alumno y le notificará el tiempo aproximado en que puede pasar a recoger su carta de liberación de servicio social.
6. Si todo está correcto el Departamento de servicio social validará el trámite de término del alumno y le notificará el tiempo aproximado en que se le enviará por correo su carta de liberación.
Otras consideraciones:
- Le pedimos su apoyo cargando las cartas de los alumnos en un periodo de 10 días hábiles posteriores a la fecha de inicio y término, ya que a su vez los alumnos tendrán otros 10 días hábiles para completar lo que les corresponde en cada etapa. Para todos los casos de este año que ya hayan iniciado su servicio social con anterioridad, le pedimos que antes del 15 de Mayo, quede registrado en nuestro sistema.
- Le pedimos su apoyo cargando las cartas de los alumnos en un periodo de 10 días hábiles posteriores a la fecha de inicio y término, ya que a su vez los alumnos tendrán otros 10 días hábiles para completar lo que les corresponde en cada etapa.
- Para obtener los datos que el sistema le pide del alumno puede preguntárselos directamente, ya que las cartas de presentación sólo se emiten para instituciones externas.
- Para obtener los datos que el sistema le pide del alumno puede preguntárselos directamente, ya que las cartas de presentación sólo se emiten para instituciones externas.
- Los profesores de carrera con proyectos de servicio social registrados no tendrán claves de acceso a este sistema, por lo que sus áreas de adscripción deberán encargarse de hacer los trámites de servicio social de sus alumnos.
- Finalmente, cabe mencionar que el nuevo procedimiento sólo aplica a los alumnos que inicien su servicio social en 2020, por lo que aquellos que ya habían hecho su trámite de inicio desde 2019, lo terminarán con el proceso anterior entregando su carta de termino original en las ventanillas de servicio social.
- De cualquier forma para atender dudas o comentarios al respecto, podrá comunicarse con el equipo del Departamento de Servicio Social:
Lic. Lourdes Ibarra Celorio
56231686
registross@acatlan.unam.mx
tramites.ss@acatlan.unam.mx
Lic. Marcela Martínez Rangel
56231600
sesocial@acatlan.unam.mx.
Mtra. Adriana Roque del Angel
56231600
jefaturassbt@acatlan.unam.mx
sesoprof@acatlan.unam.mx
Atentamente
Mtra. Adriana Roque del Angel
Jefa del Departamento de Servicio Social y Bolsa de Trabajo.`,
Jefa del Departamento de Servicio Social, Desarrollo Profesional e Inserción Laboral
`,
};
};
@@ -195,15 +239,14 @@ En cuanto cumplas con las 480 horas reglamentarias, tienes 15 días hábiles par
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.
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 recibir por correo electrónico 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.
${dudas}
${dudasAlumno}
Atentamente
Departamento de Servicio Social y Bolsa de Trabajo
FES Acatlán`,
${atentamente}
`,
};
};
@@ -222,11 +265,9 @@ En cuanto usted y el alumno suban al sistema lo que les corresponde, el Departam
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}
${dudasResponsable}
Atentamente
Departamento de Servicio Social y Bolsa de Trabajo
FES Acatlán
${atentamente}
`,
};
};
+31 -6
View File
@@ -37,6 +37,8 @@ const list = (pageToken) => {
// Borrar archivo
const deleteFile = (fileId) => {
if (fileId === process.env.CARPETA)
throw new Error('No se puede eliminar este archivo/carpeta.');
return new Promise((resolve, reject) => {
jwtClient.authorize(async (err, tokens) => {
if (err) reject(err);
@@ -144,15 +146,38 @@ const folder = async (numeroCuenta) => {
return mkDir(numeroCuenta);
};
const borrarTodo = () => {
return list().then(async (res) => {
for (let i = 0; i < res.files.length; i++)
if (res.files[i].id !== process.env.CARPETA)
await deleteFile(res.files[i].id);
});
// const borrarTodo = () => {
// return list().then(async (res) => {
// for (let i = 0; i < res.files.length; i++)
// if (res.files[i].id !== process.env.CARPETA)
// await deleteFile(res.files[i].id);
// });
// };
const findAll = async () => {
const folders = [];
const pdfs = [];
let pageToken = '';
do {
await list(pageToken).then((res) => {
for (let i = 0; i < res.files.length; i++) {
if (res.files[i].id !== process.env.CARPETA) {
if (res.files[i].mimeType === 'application/vnd.google-apps.folder')
folders.push(res.files[i].id);
if (res.files[i].mimeType === 'application/pdf')
pdfs.push(res.files[i].id);
}
}
pageToken = res.nextPageToken ? res.nextPageToken : '';
});
} while (pageToken);
return { folders, pdfs };
};
module.exports = {
folder,
uploadFile,
deleteFile,
mkDir,
};