diff --git a/routes/enviarFicha.js b/routes/enviarFicha.js index 3a5f6a9..0e65187 100644 --- a/routes/enviarFicha.js +++ b/routes/enviarFicha.js @@ -52,7 +52,7 @@ async function sendEmail( destination, idPersona ) { https://drive.google.com/file/d/1ygl7kQDTHOmLN9UNZ1D_Bx1u2IOBww7g/view?usp=sharing Nota: En el número de CLABE le pedimos que se base en la que aparece en las imágenes de acuerdo al banco desde el que lo realice. - *Si realiza el pago desde BBVA, deberán dirigirse a pago de servicios, ingresar el número de convenio, que inicia con 14 y aparecerán los datos de la UNAM, después deberá ingresar la referencia. + Si realiza el pago desde BBVA, deberán dirigirse a pago de servicios, ingresar el número de convenio, que inicia con 14 y aparecerán los datos de la UNAM, después deberá ingresar la referencia. @@ -60,7 +60,7 @@ async function sendEmail( destination, idPersona ) { La referencia tiene una vigencia de 3 días. En este lapso deberá enviar su comprobante para poder validar que el pago fue realizado correctamente. De no usarla, la referencia será cancelada. - Una vez realizado el pago, deberá ingresar nuevamente a la plataforma y adjuntar el voucher o imagen del pago realizado con los siguientes datos: + Una vez realizado el pago, deberá ingresar nuevamente a la plataforma donde realizaste tu registro para adjuntar el archivo en pdf del voucher de pago con los siguientes datos: -Número de referencia o convenio -Banco de procedencia @@ -70,9 +70,9 @@ async function sendEmail( destination, idPersona ) { -Cuenta de depósito e importe. De no tener estos datos, su pago no podrá ser rastreado. - Ahí podrá solicitar su factura. El tiempo de envío es entre 15 y 20 días hábiles.El uso del CFDI en las facturas será generara en automático por Gastos en General, si requiere de otro tipo notificarlo al correo asinea103@fa.unam.mx + Ahí podrá solicitar su factura. El tiempo de envío es entre 15 y 20 días hábiles una vez validado el comprobante.El uso del CFDI en las facturas será generara en automático por Gastos en General, si requiere de otro tipo notificarlo al correo asinea103@fa.unam.mx - Se adjunta una imagen de guia del proceso para subir tu comprobante de pago. + La siguiente imagen te apoyará para saber como subir tu comprobante de pago y los datos antes mencionados a la plataforma, además adjuntamos a este correo un manual para realizar transferencias a los Convenios BBVA Bancome `, // plain text body attachments: [ { diff --git a/routes/getEventos.js b/routes/getEventos.js new file mode 100644 index 0000000..d9b0ab9 --- /dev/null +++ b/routes/getEventos.js @@ -0,0 +1,37 @@ +const connection = require('../conf/connection.js'); +const express = require('express'); + + +var app = express() + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + +app.get('/getEventos', async(req, res) => { + try { + + let idPersona = req.query.idPersona; + + let sqlString = `SELECT * FROM evento order by tipoEvento;`; + let eventos = await query(sqlString); + + //console.log(eventos); + + res.status(200).json({error: false, msj: '', datos: eventos }); + + + } + catch(error){ + console.log(error); + res.status(400).json({ error: true, msj: `Sucedio un error al traer a las personas inscritas msj: ${error}` }); + return; + } +}); + +module.exports = app; diff --git a/routes/getExcelEvento.js b/routes/getExcelEvento.js new file mode 100644 index 0000000..039f4f9 --- /dev/null +++ b/routes/getExcelEvento.js @@ -0,0 +1,208 @@ +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; \ No newline at end of file diff --git a/routes/getExcelInscritos.js b/routes/getExcelInscritos.js new file mode 100644 index 0000000..00d539b --- /dev/null +++ b/routes/getExcelInscritos.js @@ -0,0 +1,207 @@ +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('/getExcelInscritos', 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("Telefono"); + 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"); + + await worksheet.addRow(encabezados) + + + + + + + + let sqlString = `SELECT * FROM persona WHERE validarPago = true order by participacion;`; + let pagados = await query(sqlString); + + + for(let item in pagados){ + + let rowPersona = []; + rowPersona.push(pagados[item].nombre); + rowPersona.push(pagados[item].apellidoPaterno); + rowPersona.push(pagados[item].apellidoMaterno); + rowPersona.push(pagados[item].correo); + rowPersona.push(pagados[item].telefono); + rowPersona.push(pagados[item].comunidad); + rowPersona.push(pagados[item].institucion); + rowPersona.push(pagados[item].curp); + rowPersona.push(pagados[item].situacionAcademica); + rowPersona.push(pagados[item].gradoAcademico); + rowPersona.push(pagados[item].participacion); + rowPersona.push(pagados[item].codigoGrupal); + rowPersona.push(pagados[item].totalPagar); + + await worksheet.addRow(rowPersona); + } + + + + res.attachment(path.join('./public', `Inscritos.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; \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 31300e2..ea0923f 100644 --- a/routes/index.js +++ b/routes/index.js @@ -22,4 +22,8 @@ app.use(require('./getRechazados')); app.use(require('./getPagados')); app.use(require('./getFactura')); +app.use(require('./getEventos')); +app.use(require('./getExcelEvento')); +app.use(require('./getExcelInscritos')); + module.exports = app; \ No newline at end of file