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;