Files
AsineApi/routes/getExcelEvento.js
T
2020-10-19 02:33:48 -05:00

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;