208 lines
6.3 KiB
JavaScript
208 lines
6.3 KiB
JavaScript
const connection = require('../conf/connection.js');
|
|
const express = require('express');
|
|
const fs = require('fs');
|
|
var app = express()
|
|
const Excel = require('exceljs');
|
|
var path = require('path');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
function query(consulta) {
|
|
return new Promise(function(resolve, reject) {
|
|
connection.query(`${consulta}`, (error, results, files) => {
|
|
if (error) reject(error);
|
|
resolve(results);
|
|
});
|
|
})
|
|
}
|
|
|
|
|
|
|
|
app.get('/getExcelEvento', async(req, res) => {
|
|
|
|
try{
|
|
|
|
|
|
if( typeof(req.query.idEvento) === 'undefined' ){
|
|
return res.status(200).json({error: false, msj: 'Falta en identificador del evento'});
|
|
}
|
|
|
|
const workbook = new Excel.Workbook();
|
|
const worksheet = workbook.addWorksheet('Datos alumno');
|
|
|
|
|
|
|
|
let encabezados = [];
|
|
encabezados.push("Nombre");
|
|
encabezados.push("Apellido Paterno");
|
|
encabezados.push("Apellido Materno");
|
|
encabezados.push("Correo");
|
|
encabezados.push("Telefono");
|
|
encabezados.push("Comunidad");
|
|
encabezados.push("Institucion");
|
|
encabezados.push("CURP");
|
|
|
|
await worksheet.addRow(encabezados)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let sqlString = `SELECT * FROM asistencia where idEvento = ${req.query.idEvento};`;
|
|
let asistencia = await query(sqlString);
|
|
|
|
sqlString = `SELECT * FROM evento where idEvento = ${req.query.idEvento};`;
|
|
let evento = await query(sqlString);
|
|
evento = evento[0];
|
|
|
|
for(let item in asistencia){
|
|
|
|
sqlString = `SELECT * FROM persona where idPersona = ${asistencia[item].idPersona};`;
|
|
let datosPersona = await query(sqlString);
|
|
datosPersona = datosPersona[0];
|
|
|
|
let rowPersona = [];
|
|
rowPersona.push(datosPersona.nombre);
|
|
rowPersona.push(datosPersona.apellidoPaterno);
|
|
rowPersona.push(datosPersona.apellidoMaterno);
|
|
rowPersona.push(datosPersona.correo);
|
|
rowPersona.push(datosPersona.telefono);
|
|
rowPersona.push(datosPersona.comunidad);
|
|
rowPersona.push(datosPersona.institucion);
|
|
rowPersona.push(datosPersona.curp);
|
|
await worksheet.addRow(rowPersona);
|
|
}
|
|
|
|
|
|
|
|
res.attachment(path.join('./public', `Asistencia-${evento.nombreEvento}.xlsx`));
|
|
|
|
workbook.xlsx.write(res).then( ()=>{
|
|
res.end();
|
|
|
|
}).catch(error =>{
|
|
console.log(`error desc: ${error}`);
|
|
res.status(400).json({ error: false, msj: "no se pudo descargar" });
|
|
})
|
|
|
|
|
|
|
|
|
|
}
|
|
catch(error){
|
|
console.log(`error desc: ${error}`);
|
|
res.status(400).json({ error: false, msj: "no se pudo descargar" });
|
|
}
|
|
|
|
|
|
|
|
/* for (let i = 0; i < data.alumno.length; i++) {
|
|
let d = data.alumno[i];
|
|
let a = [];
|
|
console.log(d);
|
|
a.push(d.nombre);
|
|
a.push(d.apellido_p);
|
|
a.push(d.apellido_m);
|
|
a.push(d.correo);
|
|
a.push(d.comunidad);
|
|
|
|
a.push(d.conversatorio_asistente);
|
|
a.push(d.conversatorio_ponente);
|
|
a.push(d.magistral_1);
|
|
a.push(d.magistral_2);
|
|
a.push(d.taller);
|
|
a.push(d.visita);
|
|
a.push(d.tipo_pago);
|
|
a.push(d.pago);
|
|
a.push(d.rfc)
|
|
a.push(d.domicilio);
|
|
a.push(d.f_telefono);
|
|
a.push(d.f_correo);
|
|
/*aux.rfc='No_registrado';
|
|
aux.domicilio='No_registrado';
|
|
aux.f_telefono='No_registrado';
|
|
aux.f_correo='No_registrado';
|
|
|
|
worksheet.addRow(a);
|
|
|
|
}
|
|
enc = [];
|
|
worksheet.addRow(enc);
|
|
enc = [];
|
|
worksheet.addRow(enc);
|
|
enc = [];
|
|
worksheet.addRow(enc);
|
|
enc.push("");
|
|
enc.push("");
|
|
enc.push("");
|
|
enc.push("Academico");
|
|
worksheet.addRow(enc);
|
|
|
|
enc = [];
|
|
enc.push("Nombre");
|
|
enc.push("Apellido Paterno");
|
|
enc.push("Apellido Materno");
|
|
enc.push("Correo");
|
|
enc.push("Comunidad");
|
|
enc.push("Conversatorio Asistente");
|
|
enc.push("Conversatorio Ponente");
|
|
enc.push("Diálogo magistral 1");
|
|
enc.push("Diálogo magistral 2");
|
|
enc.push("Taller");
|
|
enc.push("Ruta");
|
|
enc.push("Tipo de Pago");
|
|
enc.push("Total de Pago");
|
|
enc.push("RFC");
|
|
enc.push("Domicilio para la factura");
|
|
enc.push("Telefono para la factura");
|
|
enc.push("Correo para la factura");
|
|
worksheet.addRow(enc);
|
|
|
|
for (let i = 0; i < data.academico.length; i++) {
|
|
let d = data.academico[i];
|
|
let a = [];
|
|
console.log(d);
|
|
a.push(d.nombre);
|
|
a.push(d.apellido_p);
|
|
a.push(d.apellido_m);
|
|
a.push(d.correo);
|
|
a.push(d.comunidad);
|
|
|
|
a.push(d.conversatorio_asistente);
|
|
a.push(d.conversatorio_ponente);
|
|
a.push(d.magistral_1);
|
|
a.push(d.magistral_2);
|
|
a.push(d.taller);
|
|
a.push(d.visita);
|
|
a.push(d.tipo_pago);
|
|
a.push(d.pago);
|
|
a.push(d.rfc)
|
|
a.push(d.domicilio);
|
|
a.push(d.f_telefono);
|
|
a.push(d.f_correo);
|
|
worksheet.addRow(a);
|
|
|
|
}
|
|
|
|
|
|
|
|
res.attachment(__dirname + `/../public/ASINEA-2020.xlsx`)
|
|
workbook
|
|
.xlsx
|
|
.write(res)
|
|
.then(() => {
|
|
res.end()
|
|
|
|
})
|
|
.catch((err) => {
|
|
res.status(400).json({ error: false, msj: "no se pudo descargar" });
|
|
|
|
}*/
|
|
|
|
});
|
|
|
|
module.exports = app; |