Files
ASINEA-API/routes/traer_persona.js
T
2020-03-06 14:24:37 -06:00

221 lines
8.4 KiB
JavaScript

const connection = require('../conf/connection.js');
const express = require('express');
const fs = require('fs');
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('/traer_persona', async(req, res) => {
data = { alumno: [], academico: [] };
try {
let cad = `select * from persona;`;
let r = query(cad);
r.then(async(p) => {
for (let i = 0; i < p.length; i++) {
if (p[i].situacion_academica == 'Alumno') {
let aux = {}
cad = `select e.*, asi.* from evento as e inner join asistencia as asi where asi.id_persona=${p[i].id_persona} and e.id_evento=asi.id_evento`;
let n_ans = await query(cad);
console.log(p[i]);
console.log("nuevo ans ", n_ans);
aux.id_persona = p[i].id_persona;
aux.nombre = p[i].nombre;
aux.apellido_p = p[i].apellido_p;
aux.apellido_m = p[i].apellido_m;
aux.comunidad = p[i].comunidad;
aux.conversatorio_ponente = 'No';
aux.conversatorio_asistente = 'No';
aux.taller = 'No';
aux.visita = 'No';
aux.magistral = 'No';
aux.bienvenida = 'No';
aux.comprobante_pago = false;
aux.carta_aceptacion = false;
if (fs.existsSync(`./files/carta_aceptacion-${p[i].id_persona}.docx`)) {
aux.carta_aceptacion = true;
}
if (fs.existsSync(`./files/comprobante_pago-${p[i].id_persona}.docx`)) {
aux.comprobante_pago = true;
}
aux.correo = p[i].correo;
// let nueva_cadena = `select * from alumno where id_persona=${p[i].id_persona};`
// let nueva_query = await query(nueva_cadena);
// aux.tipo_pago = nueva_query[0].metodo_pago_asignado;
let ext = true;
if (aux.comunidad == 'UNAM')
ext = false;
let tot = 0;
for (let j = 0; j < n_ans.length; j++) {
console.log(aux.nombre, " ", aux.comunidad, " ", tot, " ", ext, " ", n_ans[j].tipo_de_participacion);
if (n_ans[j].tipo_evento == 'Conversatorio') {
if (n_ans[j].tipo_de_participacion == 'Video') {
if (ext == true)
tot += 700;
else
tot += 100;
aux.conversatorio_ponente = 'Video: ' + n_ans[j].nombre_evento;
} else
if (n_ans[j].tipo_de_participacion == 'Ensayo') {
if (ext == true)
tot += 700;
else
tot += 100;
aux.conversatorio_ponente = 'Ensayo: ' + n_ans[j].nombre_evento;
} else {
aux.conversatorio_asistente = n_ans[j].nombre_evento;
if (ext == true)
tot += 200;
else
tot += 100;
}
}
if (n_ans[j].tipo_evento == 'Taller alumno') {
if (ext == true)
tot += 900;
else
tot += 200;
aux.taller = n_ans[j].nombre_evento;
}
if (n_ans[j].tipo_evento == 'Visitas guiadas') {
if (ext == true)
tot += 500;
else
tot += 500;
aux.visita = n_ans[j].nombre_evento;
}
if (n_ans[j].tipo_evento == 'Dialogo magistral') {
aux.magistral = n_ans[j].nombre_evento;
}
if (n_ans[j].codigo == 'Bienvenida') {
aux.bienvenida = n_ans[j].nombre_evento;
}
aux.pago = tot;
}
data.alumno.push(aux);
console.log(" ");
console.log(" ");
}
if (p[i].situacion_academica == 'Académico') {
let aux = {}
cad = `select e.*, asi.* from evento as e inner join asistencia as asi where asi.id_persona=${p[i].id_persona} and e.id_evento=asi.id_evento`;
let n_ans = await query(cad);
aux.id_persona = p[i].id_persona;
aux.nombre = p[i].nombre;
aux.apellido_p = p[i].apellido_p;
aux.apellido_m = p[i].apellido_m;
aux.comunidad = p[i].comunidad;
aux.conversatorio_ponente = 'No';
aux.conversatorio_asistente = 'No';
aux.taller = 'No';
aux.visita = 'No';
aux.magistral = 'No';
aux.bienvenida = 'No';
aux.pago = 0;
aux.correo = p[i].correo;
// let nueva_cadena = `select * from academico where id_persona=${p[i].id_persona};`
// let nueva_query = await query(nueva_cadena);
// aux.tipo_pago = nueva_query[0].metodo_pago_asignado;
//aux.codigo = nueva_query[0].codigo;
let tot = 0;
let ext = true;
if (aux.comunidad == 'UNAM')
ext = false;
for (let j = 0; j < n_ans.length; j++) {
if (n_ans[j].tipo_evento == 'Conversatorio') {
if (n_ans[j].tipo_de_participacion == 'Ponente') {
if (ext == true)
tot += 1000;
else
tot += 500;
aux.conversatorio_ponente = n_ans[j].nombre_event;
} else {
aux.conversatorio_asistente = n_ans[j].nombre_evento;
if (ext == true)
tot += 1300;
else
tot += 650;
}
}
if (n_ans[j].tipo_evento == 'Taller profesor') {
if (ext == true)
tot += 1500;
else
tot += 750;
aux.taller = n_ans[j].nombre_evento;
}
if (n_ans[j].tipo_evento == 'Visitas guiadas') {
if (ext == true)
tot += 500;
else
tot += 500;
aux.visita = n_ans[j].nombre_evento;
}
if (n_ans[j].tipo_evento == 'Dialogo magistral') {
aux.magistral = n_ans[j].nombre_evento;
}
if (n_ans[j].codigo == 'Bienvenida') {
aux.bienvenida = n_ans[j].nombre_evento;
}
aux.pago = tot;
}
data.academico.push(aux);
}
}
console.log(p);
res.status(200).json({ error: false, datos: data });
})
} catch (err) {
return res.status(400).json({ error: true, msj: "Error al traer los datos" });
}
});
module.exports = app;