responder con el archivo en los reportes
This commit is contained in:
+35
@@ -0,0 +1,35 @@
|
||||
TYPEDB = mariadb
|
||||
|
||||
DB = servicio_social
|
||||
|
||||
USERDB = root
|
||||
|
||||
PASSWORDDB = hola
|
||||
|
||||
HOSTDB = localhost
|
||||
|
||||
PORT = 3000
|
||||
|
||||
SALT_ROUNDS = 10
|
||||
|
||||
KEY = seed_de_pruebas
|
||||
|
||||
CADUCIDAD_TOKEN = 1800000
|
||||
|
||||
ESCOLARES = https://kalinga.acatlan.unam.mx/evaluacion/public_html/sybase/acceso.php?cuenta=
|
||||
|
||||
ESCOLARES_PASS = pass=c4rt3lgr1s
|
||||
|
||||
GMAIL = cidwa1@pcpuma.acatlan.unam.mx
|
||||
|
||||
GMAILPASSWORD = cidwaxd1
|
||||
|
||||
CARPETA = 1_1g8U13kIzLkKYBffgV4zV_7NOfg-2Uq
|
||||
|
||||
ADMIN = admin
|
||||
|
||||
ADMIN_PASSWORD = qwertyui
|
||||
|
||||
CASOS_ESPECIALES = sesocial@acatlan.unam.mx
|
||||
|
||||
CASOS_ESPECIALES_PASSWORD = qwertyui
|
||||
@@ -10,7 +10,7 @@ const Usuario = require(`${dbPath}/Usuario`);
|
||||
|
||||
const get = async (body) => {
|
||||
const year = validar.validarNumero(body.year, 4);
|
||||
const path = `csv/${year}_cuestionario_alumno.csv`;
|
||||
const path = `server/uploads/${year}_cuestionario_alumno.csv`;
|
||||
const data = [];
|
||||
|
||||
return Servicio.findAll({
|
||||
@@ -22,61 +22,59 @@ const get = async (body) => {
|
||||
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}%` } } },
|
||||
{ model: Usuario },
|
||||
],
|
||||
}).then((res) => {
|
||||
for (let i = 0; i < res.length; i++)
|
||||
data.push({
|
||||
idServicio: res[i].idServicio,
|
||||
clavePrograma: res[i].Programa.clavePrograma,
|
||||
usuario: res[i].Usuario.usuario,
|
||||
nombre: res[i].Usuario.nombre,
|
||||
idCuestionarioAlumno: res[i].CuestionarioAlumno.idCuestionarioAlumno,
|
||||
sexo: res[i].CuestionarioAlumno.sexo,
|
||||
edad: res[i].CuestionarioAlumno.edad,
|
||||
servicioMedico: res[i].CuestionarioAlumno.servicioMedico,
|
||||
p1: res[i].CuestionarioAlumno.p1,
|
||||
p2: res[i].CuestionarioAlumno.p2,
|
||||
p3: res[i].CuestionarioAlumno.p3,
|
||||
p4: res[i].CuestionarioAlumno.p4,
|
||||
p5: res[i].CuestionarioAlumno.p5,
|
||||
p6: res[i].CuestionarioAlumno.p6,
|
||||
p7: res[i].CuestionarioAlumno.p7,
|
||||
p8: res[i].CuestionarioAlumno.p8,
|
||||
p9: res[i].CuestionarioAlumno.p9,
|
||||
p10: res[i].CuestionarioAlumno.p10,
|
||||
p11: res[i].CuestionarioAlumno.p11,
|
||||
p12: res[i].CuestionarioAlumno.p12,
|
||||
p13: res[i].CuestionarioAlumno.p13,
|
||||
p14: res[i].CuestionarioAlumno.p14,
|
||||
p15: res[i].CuestionarioAlumno.p15,
|
||||
p16: res[i].CuestionarioAlumno.p16,
|
||||
p17: res[i].CuestionarioAlumno.p17,
|
||||
p18: res[i].CuestionarioAlumno.p18,
|
||||
p19: res[i].CuestionarioAlumno.p19,
|
||||
p20: res[i].CuestionarioAlumno.p20,
|
||||
p21: res[i].CuestionarioAlumno.p21,
|
||||
p22: res[i].CuestionarioAlumno.p22,
|
||||
p23: res[i].CuestionarioAlumno.p23,
|
||||
p24: res[i].CuestionarioAlumno.p24,
|
||||
p25: res[i].CuestionarioAlumno.p25,
|
||||
p26: res[i].CuestionarioAlumno.p26,
|
||||
p27: res[i].CuestionarioAlumno.p27,
|
||||
p28: res[i].CuestionarioAlumno.p28,
|
||||
p29: res[i].CuestionarioAlumno.p29,
|
||||
p30: res[i].CuestionarioAlumno.p30,
|
||||
createdAt: res[i].CuestionarioAlumno.createdAt,
|
||||
order: [['createdAt']],
|
||||
})
|
||||
.then(async (res) => {
|
||||
for (let i = 0; i < res.length; i++)
|
||||
data.push({
|
||||
idServicio: res[i].idServicio,
|
||||
clavePrograma: res[i].Programa.clavePrograma,
|
||||
usuario: res[i].Usuario.usuario,
|
||||
nombre: res[i].Usuario.nombre,
|
||||
idCuestionarioAlumno: res[i].CuestionarioAlumno.idCuestionarioAlumno,
|
||||
sexo: res[i].CuestionarioAlumno.sexo,
|
||||
edad: res[i].CuestionarioAlumno.edad,
|
||||
servicioMedico: res[i].CuestionarioAlumno.servicioMedico,
|
||||
p1: res[i].CuestionarioAlumno.p1,
|
||||
p2: res[i].CuestionarioAlumno.p2,
|
||||
p3: res[i].CuestionarioAlumno.p3,
|
||||
p4: res[i].CuestionarioAlumno.p4,
|
||||
p5: res[i].CuestionarioAlumno.p5,
|
||||
p6: res[i].CuestionarioAlumno.p6,
|
||||
p7: res[i].CuestionarioAlumno.p7,
|
||||
p8: res[i].CuestionarioAlumno.p8,
|
||||
p9: res[i].CuestionarioAlumno.p9,
|
||||
p10: res[i].CuestionarioAlumno.p10,
|
||||
p11: res[i].CuestionarioAlumno.p11,
|
||||
p12: res[i].CuestionarioAlumno.p12,
|
||||
p13: res[i].CuestionarioAlumno.p13,
|
||||
p14: res[i].CuestionarioAlumno.p14,
|
||||
p15: res[i].CuestionarioAlumno.p15,
|
||||
p16: res[i].CuestionarioAlumno.p16,
|
||||
p17: res[i].CuestionarioAlumno.p17,
|
||||
p18: res[i].CuestionarioAlumno.p18,
|
||||
p19: res[i].CuestionarioAlumno.p19,
|
||||
p20: res[i].CuestionarioAlumno.p20,
|
||||
p21: res[i].CuestionarioAlumno.p21,
|
||||
p22: res[i].CuestionarioAlumno.p22,
|
||||
p23: res[i].CuestionarioAlumno.p23,
|
||||
p24: res[i].CuestionarioAlumno.p24,
|
||||
p25: res[i].CuestionarioAlumno.p25,
|
||||
p26: res[i].CuestionarioAlumno.p26,
|
||||
p27: res[i].CuestionarioAlumno.p27,
|
||||
p28: res[i].CuestionarioAlumno.p28,
|
||||
p29: res[i].CuestionarioAlumno.p29,
|
||||
p30: res[i].CuestionarioAlumno.p30,
|
||||
createdAt: res[i].CuestionarioAlumno.createdAt,
|
||||
});
|
||||
await validar.eliminarArchivo(path).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
try {
|
||||
fs.unlinkSync(path);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
fs.appendFile(path, convertArrayToCSV(data), (err) => {
|
||||
if (err) throw new Error(err);
|
||||
return validar.crearArchivo(path, convertArrayToCSV(data));
|
||||
})
|
||||
.then((res) => {
|
||||
return path;
|
||||
});
|
||||
return {
|
||||
message: `Se creo/actualizo correctamente el csv del cuestionario de alumno del año ${year}.`,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = get;
|
||||
|
||||
@@ -10,7 +10,7 @@ const Usuario = require(`${dbPath}/Usuario`);
|
||||
|
||||
const get = async (body) => {
|
||||
const year = validar.validarNumero(body.year, 4);
|
||||
const path = `csv/${year}_cuestionario_programa.csv`;
|
||||
const path = `server/uploads/${year}_cuestionario_programa.csv`;
|
||||
const data = [];
|
||||
|
||||
return Servicio.findAll({
|
||||
@@ -22,37 +22,35 @@ const get = async (body) => {
|
||||
{ model: Programa, where: { clavePrograma: { [Op.like]: `${year}-%` } } },
|
||||
{ model: Usuario },
|
||||
],
|
||||
}).then((res) => {
|
||||
for (let i = 0; i < res.length; i++)
|
||||
data.push({
|
||||
idServicio: res[i].idServicio,
|
||||
clavePrograma: res[i].Programa.clavePrograma,
|
||||
usuario: res[i].Usuario.usuario,
|
||||
nombre: res[i].Usuario.nombre,
|
||||
idCuestionarioPrograma:
|
||||
res[i].CuestionarioPrograma.idCuestionarioPrograma,
|
||||
actividad1: res[i].CuestionarioPrograma.actividad1,
|
||||
actividad2: res[i].CuestionarioPrograma.actividad2,
|
||||
actividad3: res[i].CuestionarioPrograma.actividad3,
|
||||
actividad4: res[i].CuestionarioPrograma.actividad4,
|
||||
actividad5: res[i].CuestionarioPrograma.actividad5,
|
||||
retroalimentacion: res[i].CuestionarioPrograma.retroalimentacion,
|
||||
p6: res[i].CuestionarioPrograma.p6,
|
||||
p7: res[i].CuestionarioPrograma.p7,
|
||||
createdAt: res[i].CuestionarioPrograma.createdAt,
|
||||
order: [['createdAt']],
|
||||
})
|
||||
.then(async (res) => {
|
||||
for (let i = 0; i < res.length; i++)
|
||||
data.push({
|
||||
idServicio: res[i].idServicio,
|
||||
clavePrograma: res[i].Programa.clavePrograma,
|
||||
usuario: res[i].Usuario.usuario,
|
||||
nombre: res[i].Usuario.nombre,
|
||||
idCuestionarioPrograma:
|
||||
res[i].CuestionarioPrograma.idCuestionarioPrograma,
|
||||
actividad1: res[i].CuestionarioPrograma.actividad1,
|
||||
actividad2: res[i].CuestionarioPrograma.actividad2,
|
||||
actividad3: res[i].CuestionarioPrograma.actividad3,
|
||||
actividad4: res[i].CuestionarioPrograma.actividad4,
|
||||
actividad5: res[i].CuestionarioPrograma.actividad5,
|
||||
retroalimentacion: res[i].CuestionarioPrograma.retroalimentacion,
|
||||
p6: res[i].CuestionarioPrograma.p6,
|
||||
p7: res[i].CuestionarioPrograma.p7,
|
||||
createdAt: res[i].CuestionarioPrograma.createdAt,
|
||||
});
|
||||
await validar.eliminarArchivo(path).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
try {
|
||||
fs.unlinkSync(path);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
fs.appendFile(path, convertArrayToCSV(data), (err) => {
|
||||
if (err) throw new Error(err);
|
||||
return validar.crearArchivo(path, convertArrayToCSV(data));
|
||||
})
|
||||
.then((res) => {
|
||||
return path;
|
||||
});
|
||||
return {
|
||||
message: `Se creo/actualizo correctamente el csv del cuestionario de programa del año ${year}.`,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = get;
|
||||
|
||||
@@ -12,7 +12,7 @@ const gustavoBazPrada = async (body) => {
|
||||
const year = validar.validarNumero(body.year, 4);
|
||||
const inicio = moment(`${year}-01-31`);
|
||||
const fin = moment(`${parseInt(year) + 1}-01-31`);
|
||||
const path = `csv/${year}_gustavo_baz_prada.csv`;
|
||||
const path = `server/uploads/${year}_gustavo_baz_prada.csv`;
|
||||
const data = [];
|
||||
|
||||
return Servicio.findAll({
|
||||
@@ -23,27 +23,25 @@ const gustavoBazPrada = async (body) => {
|
||||
],
|
||||
},
|
||||
include: [{ 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,
|
||||
fechaLiberacion: validar.crearDDMMAAAA(res[i].fechaLiberacion),
|
||||
order: [['fechaLiberacion']],
|
||||
})
|
||||
.then(async (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,
|
||||
fechaLiberacion: validar.crearDDMMAAAA(res[i].fechaLiberacion),
|
||||
});
|
||||
await validar.eliminarArchivo(path).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
try {
|
||||
fs.unlinkSync(path);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
fs.appendFile(path, convertArrayToCSV(data), (err) => {
|
||||
if (err) throw new Error(err);
|
||||
return validar.crearArchivo(path, convertArrayToCSV(data));
|
||||
})
|
||||
.then((res) => {
|
||||
return path;
|
||||
});
|
||||
return {
|
||||
message: `Se creo/actualizo correctamente el csv del reporte Gustavo Baz Prada.`,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = gustavoBazPrada;
|
||||
|
||||
@@ -12,14 +12,14 @@ const Usuario = require(`${dbPath}/Usuario`);
|
||||
const reporte = async (body) => {
|
||||
const inicio = validar.validarFecha(body.inicio);
|
||||
const fin = validar.validarFecha(body.fin);
|
||||
const path = `csv/reporte.csv`;
|
||||
const path = `server/uploads/reporte.csv`;
|
||||
const data = [];
|
||||
|
||||
return Servicio.findAll({
|
||||
where: {
|
||||
[Op.and]: [
|
||||
{ fechaInicio: { [Op.gte]: inicio } },
|
||||
{ fechaInicio: { [Op.lte]: fin } },
|
||||
{ fechaInicio: { [Op.gte]: inicio.format() } },
|
||||
{ fechaInicio: { [Op.lte]: fin.format() } },
|
||||
],
|
||||
},
|
||||
include: [
|
||||
@@ -28,35 +28,33 @@ const reporte = async (body) => {
|
||||
{ model: Carrera },
|
||||
{ model: Status },
|
||||
],
|
||||
}).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,
|
||||
fechaInicio: validar.crearDDMMAAAA(res[i].fechaInicio),
|
||||
fechaFin: validar.crearDDMMAAAA(res[i].fechaFin),
|
||||
fechaLiberacion: validar.crearDDMMAAAA(res[i].fechaLiberacion),
|
||||
institucion: res[i].Programa.institucion,
|
||||
dependencia: res[i].Programa.dependencia,
|
||||
programa: res[i].Programa.programa,
|
||||
profesor: res[i].profesor,
|
||||
clave: res[i].Programa.clavePrograma,
|
||||
status: res[i].Status.status,
|
||||
order: [['fechaInicio']],
|
||||
})
|
||||
.then(async (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,
|
||||
fechaInicio: validar.crearDDMMAAAA(res[i].fechaInicio),
|
||||
fechaFin: validar.crearDDMMAAAA(res[i].fechaFin),
|
||||
fechaLiberacion: validar.crearDDMMAAAA(res[i].fechaLiberacion),
|
||||
institucion: res[i].Programa.institucion,
|
||||
dependencia: res[i].Programa.dependencia,
|
||||
programa: res[i].Programa.programa,
|
||||
profesor: res[i].profesor,
|
||||
clave: res[i].Programa.clavePrograma,
|
||||
status: res[i].Status.status,
|
||||
});
|
||||
await validar.eliminarArchivo(path).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
try {
|
||||
fs.unlinkSync(path);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
fs.appendFile(path, convertArrayToCSV(data), (err) => {
|
||||
if (err) throw new Error(err);
|
||||
return validar.crearArchivo(path, convertArrayToCSV(data));
|
||||
})
|
||||
.then((res) => {
|
||||
return path;
|
||||
});
|
||||
return {
|
||||
message: `Se creo/actualizo correctamente el csv del reporte de servicios sociales.`,
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = reporte;
|
||||
|
||||
@@ -39,11 +39,6 @@ const diario = async () => {
|
||||
servicios[i].Programa.Usuario.usuario,
|
||||
correoResponsable.msj
|
||||
);
|
||||
await gmail(
|
||||
correoAlumno.subject,
|
||||
'araceli_linux@hotmail.com',
|
||||
correoAlumno.msj
|
||||
);
|
||||
} else if (fechaFinDate - now.dayOfYear() <= -1) {
|
||||
mensaje += `El servicio con id ${servicios[i].idServicio} del alumno ${servicios[i].Usuario.usuario} con id ${servicios[i].Usuario.idUsuario} paso al status 4\n`;
|
||||
await Servicio.update(
|
||||
@@ -52,9 +47,7 @@ const diario = async () => {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
await gmail('Reporte función diario', 'lemuel@acatlan.unam.mx', mensaje);
|
||||
await gmail('Reporte función diario', 'dscad@acatlan.unam.mx', mensaje);
|
||||
};
|
||||
|
||||
diario();
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
const fs = require('fs');
|
||||
const moment = require('moment');
|
||||
const validator = require('validator');
|
||||
const Servicio = require('../db/tablas/Servicio');
|
||||
@@ -161,6 +162,24 @@ const crearDDMMAAAA = (date) => {
|
||||
return ddmmaaaa;
|
||||
};
|
||||
|
||||
const eliminarArchivo = (path) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
fs.unlink(path, (err) => {
|
||||
if (err) reject(err);
|
||||
resolve({ message: 'Se elimino el archivo correctamente.' });
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const crearArchivo = (path, texto) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
fs.appendFile(path, texto, (err) => {
|
||||
if (err) reject(err);
|
||||
resolve({ message: 'Se creo el archivo correctamente.' });
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
validar,
|
||||
noValido,
|
||||
@@ -177,4 +196,6 @@ module.exports = {
|
||||
validarAccesibilidad,
|
||||
isObjectEmpty,
|
||||
crearDDMMAAAA,
|
||||
eliminarArchivo,
|
||||
crearArchivo,
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@ app.post(`${route}`, verificaToken, (req, res) => {
|
||||
app.get(`${route}`, verificaToken, (req, res) => {
|
||||
return get(req.query)
|
||||
.then((data) => {
|
||||
res.status(200).json(data);
|
||||
res.download(data);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(400).json({ message: err.message });
|
||||
|
||||
@@ -19,7 +19,7 @@ app.post(`${route}`, verificaToken, (req, res) => {
|
||||
app.get(`${route}`, verificaToken, (req, res) => {
|
||||
return get(req.query)
|
||||
.then((data) => {
|
||||
res.status(200).json(data);
|
||||
res.download(data);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(400).json({ message: err.message });
|
||||
|
||||
@@ -88,17 +88,17 @@ 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);
|
||||
res.download(data);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(400).json({ message: err.message });
|
||||
});
|
||||
});
|
||||
|
||||
app.get(`${route}/gustavo_bas_prada`, verificaToken, (req, res) => {
|
||||
app.get(`${route}/gustavo_baz_prada`, verificaToken, (req, res) => {
|
||||
return gustavoBazPrada(req.query)
|
||||
.then((data) => {
|
||||
res.status(200).json(data);
|
||||
res.download(data);
|
||||
})
|
||||
.catch((err) => {
|
||||
res.status(400).json({ message: err.message });
|
||||
|
||||
Reference in New Issue
Block a user