This commit is contained in:
2020-10-26 10:52:41 -06:00
parent 57d15c2ae4
commit 7987d53f73
3 changed files with 147 additions and 13 deletions
+134
View File
@@ -0,0 +1,134 @@
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('/getExcelFactura', async(req, res) => {
try{
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("Comunidad");
encabezados.push("Institucion");
encabezados.push("CURP");
encabezados.push("Situación academica");
encabezados.push("Grado Academico");
encabezados.push("Participacion");
encabezados.push("Codigo Grupal");
encabezados.push("Total a pagar");
encabezados.push("");
encabezados.push("");
encabezados.push("RFC");
encabezados.push("Telefono Factura");
encabezados.push("Correo Factura");
encabezados.push("Nombre");
encabezados.push("Apellido Paterno");
encabezados.push("Apellido Materno");
encabezados.push("Calle");
encabezados.push("No. Interior");
encabezados.push("No. Exterior");
encabezados.push("Colonia");
encabezados.push("Municipio");
encabezados.push("Estado");
encabezados.push("Codigo Postal");
await worksheet.addRow(encabezados)
let sqlString = `SELECT * FROM factura;`;
let factura = await query(sqlString);
for(let item in factura){
sqlString = `SELECT * from persona where idPersona = ${factura[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.comunidad);
rowPersona.push(datosPersona.institucion);
rowPersona.push(datosPersona.curp);
rowPersona.push(datosPersona.situacionAcademica);
rowPersona.push(datosPersona.gradoAcademico);
rowPersona.push(datosPersona.participacion);
rowPersona.push(datosPersona.codigoGrupal);
rowPersona.push(datosPersona.totalPagar);
rowPersona.push("");
rowPersona.push("");
rowPersona.push(factura[item].rfc);
rowPersona.push(factura[item].telefono);
rowPersona.push(factura[item].correo);
rowPersona.push(factura[item].nombre);
rowPersona.push(factura[item].apellidoPaterno);
rowPersona.push(factura[item].apellidoMaterno);
rowPersona.push(factura[item].calle);
rowPersona.push(factura[item].noInterior);
rowPersona.push(factura[item].noExterior);
rowPersona.push(factura[item].colonia);
rowPersona.push(factura[item].municipio);
rowPersona.push(factura[item].estado);
rowPersona.push(factura[item].codigoPostal);
await worksheet.addRow(rowPersona);
}
res.attachment(path.join('./public', `Factura.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" });
}
});
module.exports = app;
+12 -13
View File
@@ -16,20 +16,19 @@ function query(consulta) {
app.get('/getFactura', async(req, res) => {
try {
let idPersona = req.query.idPersona;
let sqlString = `SELECT * FROM persona WHERE validarPago = true and requiereFactura = true order by participacion;`;
let pagados = await query(sqlString);
let sqlString = `SELECT * FROM factura;`;
let factura = await query(sqlString);
//console.log(pagados);
//console.log(factura);
for(indice in pagados){
for(indice in factura){
sqlString = `SELECT * FROM asistencia where idPersona = ${pagados[indice].idPersona};`;
sqlString = `SELECT * FROM asistencia where idPersona = ${factura[indice].idPersona};`;
let asistenciaPersona = await query ( sqlString );
let actividad = [];
@@ -46,17 +45,17 @@ app.get('/getFactura', async(req, res) => {
}
pagados[indice].actividad = actividad;
pagados[indice].estudiosPractica = estudiosPractica;
pagados[indice].recorridos = recorridos;
factura[indice].actividad = actividad;
factura[indice].estudiosPractica = estudiosPractica;
factura[indice].recorridos = recorridos;
sqlString = `Select * from factura where idPersona = ${pagados[indice].idPersona}`;
let facturaDatos = await query ( sqlString );
pagados[indice].facturaDatos = facturaDatos;
sqlString = `Select * from persona where idPersona = ${factura[indice].idPersona}`;
let datosPersona = await query ( sqlString );
factura[indice].datosPersona = datosPersona[0];
}
res.status(200).json({error: false, msj: '', datos: pagados });
res.status(200).json({error: false, msj: '', datos: factura });
}
+1
View File
@@ -25,5 +25,6 @@ app.use(require('./getFactura'));
app.use(require('./getEventos'));
app.use(require('./getExcelEvento'));
app.use(require('./getExcelInscritos'));
app.use(require('./getExcelFactura'));
module.exports = app;