diff --git a/package.json b/package.json index 5ac4b93..0ae7939 100644 --- a/package.json +++ b/package.json @@ -1,31 +1,32 @@ { - "name": "jornada-laboral-api", - "version": "1.0.0", - "description": "", - "main": "index.js", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "https://repositorio.acatlan.unam.mx/danielGe/jornada-laboral-api.git" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "bcryptjs": "^2.4.3", - "cors": "^2.8.5", - "email-check": "^1.1.0", - "email-validator": "^2.0.4", - "express": "^4.17.1", - "mysql-promise": "^5.0.0", - "pdfkit": "^0.10.0", - "promise-mysql": "^4.1.0", - "qr-image": "^3.2.0", - "qrcode-generator": "^1.4.4", - "validator": "^11.1.0", - "voilab-pdf-table": "^0.5.0", - "xlsx": "^0.15.1" - } + "name": "jornada-laboral-api", + "version": "1.0.0", + "description": "", + "main": "app.js", + "dependencies": { + "bcryptjs": "^2.4.3", + "cors": "^2.8.5", + "email-check": "^1.1.0", + "email-validator": "^2.0.4", + "exceljs": "^3.1.0", + "express": "^4.17.1", + "mysql-promise": "^5.0.0", + "pdfkit": "^0.10.0", + "promise-mysql": "^4.1.0", + "qr-image": "^3.2.0", + "qrcode-generator": "^1.4.4", + "validator": "^11.1.0", + "voilab-pdf-table": "^0.5.0", + "xlsx": "^0.15.1" + }, + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "https://repositorio.acatlan.unam.mx/danielGe/jornada-laboral-api.git" + }, + "author": "", + "license": "ISC" } diff --git a/routes/getexcel.js b/routes/getexcel.js new file mode 100644 index 0000000..5b6aaef --- /dev/null +++ b/routes/getexcel.js @@ -0,0 +1,276 @@ +const connection = require('../conf/connection.js'); +const express = require('express') +var app = express(); +var Excel = require('exceljs'); + +function query(consulta) { + return new Promise(function(resolve, reject) { + connection.query(`${consulta}`, (error, results, files) => { + if (error) reject(error); + resolve(results); + }); + }) +} + +app.get('/getexcel', async(req, res) => { + + const workbook = new Excel.Workbook(); + const worksheet = workbook.addWorksheet('Inscripcion'); + const asis = workbook.addWorksheet('Asistencia'); + let con = 1; + let data = []; + let aux = [] + + workbook.creator = 'Me'; + workbook.lastModifiedBy = 'Her'; + workbook.created = new Date(); + workbook.modified = new Date(); + workbook.lastPrinted = new Date(); + workbook.views = [{ + x: 0, + y: 0, + width: 10000, + height: 20000, + firstSheet: 0, + activeTab: 1, + visibility: 'visible' + }] + // aux[3] = element.sexo; + // aux[4] = element.edad; + // aux[5] = element.correo; + + // aux[6] = element.gradoAcademico; + // aux[7] = element.nombrePrograma; + // aux[8] = element.semestre; + + // aux[9] = element.promedio; + // aux[10] = element.titulado; + // aux[11] = element.recibir_info; + let encabezado = [] + let nombre = "Nombre"; + let apellido = "Apellidos" + let noCuenta = "No. Cuenta" + let sexo = "Sexo" + let edad = "Edad" + let correo = "Correo" + let grad = "Grado Academico" + let lic = "Nombre del Programa" + let sem = "Semestre" + let pro = "Promedio" + let tit = "Titulado" + let rec = "Recibir Informacion" + let ingles = "Nivel de Ingles" + encabezado.push(nombre); + encabezado.push(apellido); + encabezado.push(noCuenta); + encabezado.push(sexo); + encabezado.push(edad); + encabezado.push(correo); + encabezado.push(grad); + encabezado.push(lic); + encabezado.push(ingles); + encabezado.push(sem); + encabezado.push(pro); + encabezado.push(tit); + encabezado.push(rec); + encabezado.push("Incritos Conferencia: ") + encabezado.push(1); + encabezado.push(2); + encabezado.push(3); + encabezado.push(4); + encabezado.push(5); + encabezado.push(6); + encabezado.push(7); + encabezado.push(8); + encabezado.push(9); + encabezado.push(10); + encabezado.push(11); + encabezado.push(12); + encabezado.push(13); + + worksheet.addRow(encabezado) + asis.addRow(encabezado) + + + let x; + try { + let consulta = `select * from persona where comunidad="acatlan";`; + x = await query(consulta); + // console.log(x); + } catch (error) { + //console.error('------'); + //console.error(error); + res.status(400).json({ error: true, msj: "error al elegir la comunidad" }); + return; + } + // console.log('1'); + // console.log(data); + for (let index = 0; index < x.length; index++) { + // console.log("ppp", index); + let element = x[index]; + // console.log(element); + cad = `select idConferencia from asistencia where idPersona=${element.idPersona};` + let altas; + try { + altas = await query(cad); + } catch (error) { + res.status(400).json({ error: true, msj: "error al elegir la inscripcion" }); + return; + } + let entro; + let cad2 = `select idConferencia from asistencia where idPersona=${element.idPersona} and asistencia=1;`; + try { + entro = await query(cad2); + } catch { + res.status(400).json({ error: true, msj: "error al elegir la inscripcion" }); + return; + } + let aux = []; + //console.log('-------'); + //console.log(element.nombre); + // console.log(index); + // console.log(data); + aux.push(element.nombre); + aux.push(element.apellidos); + aux.push(element.noCuenta); + + aux.push(element.sexo); + aux.push(element.edad); + aux.push(element.correo); + + aux.push(element.gradoAcademico); + aux.push(element.nombrePrograma); + aux.push(element.nivelIngles); + aux.push(element.semestre); + + aux.push(element.promedio); + if (element.titulado == 1) + aux.push("Si"); + else + aux.push("No"); + if (element.recibir_info == 1) + aux.push("Si"); + else + aux.push("No"); + + + let = ultimo = 13; + aux[ultimo] = "" + for (let x = 1; x <= 13; x++) + aux[ultimo + x] = 0; + + altas.forEach(element => { + console.log(ultimo + element.idConferencia); + aux[ultimo + element.idConferencia] = 1; + }); + // console.log("sakñalskdñalskda"); + worksheet.addRow(aux) + + aux[ultimo] = "" + for (let x = 1; x <= 13; x++) + aux[ultimo + x] = 0; + entro.forEach(element => { + console.log(ultimo + element.idConferencia); + aux[ultimo + element.idConferencia] = 1; + }); + + asis.addRow(aux) + //data.push(aux); + aux = []; + } + //console.log('kkkk'); + //console.log(data); + worksheet.getCell('AD1').value = 'Catalogo de conferencia según su numero'; + worksheet.getCell('AD2').value = "1" + worksheet.getCell('AD3').value = "2" + worksheet.getCell('AD4').value = "3" + worksheet.getCell('AD5').value = "4" + worksheet.getCell('AD6').value = "5" + worksheet.getCell('AD7').value = "6" + worksheet.getCell('AD8').value = "7" + worksheet.getCell('AD9').value = "8" + worksheet.getCell('AD10').value = "9" + worksheet.getCell('AD11').value = "10" + worksheet.getCell('AD12').value = "11" + worksheet.getCell('AD13').value = "12" + worksheet.getCell('AD14').value = "13" + + worksheet.getCell('AE2').value = `"Competencias profesionales", ¿Qué busca los empleadores` + worksheet.getCell('AE3').value = `"Las prácticas profesionales, una puerta al mercado laboral"` + worksheet.getCell('AE4').value = `"Red profesional Linkedln"` + worksheet.getCell('AE5').value = `Taller, "Entrevista por Competencias"` + worksheet.getCell('AE6').value = `"¿Cómo tener una buena entrevista de trabajo? Antes, durante y después"` + worksheet.getCell('AE7').value = `"Aprendizaje-Servicio PALECH, Pedagogía para el Desarrollo del Servicio Social"` + + worksheet.getCell('AE8').value = "13va Feria del Empleo y Servicio Social" + worksheet.getCell('AE9').value = `Taller "Elaboración del curriculum y herramientas asertivas durante un proceso de entrevista laboral"` + worksheet.getCell('AE10').value = `"¿Le temes al éxito? Egresados de Acatlán comparten su experiencia y recomendaciones para emplearte."` + worksheet.getCell('AE11').value = `Taller "Curriculum de impacto "` + worksheet.getCell('AE12').value = `"Creando perfiles humanos dentro de las organizaciones"` + worksheet.getCell('AE13').value = `"¿Conoces qué son las prestaciones y beneficios que ofertan las empresas?"` + worksheet.getCell('AE14').value = `"Puntos clave para el desarrollo de tu talento"` + + + + + asis.getCell('AD1').value = 'Catalogo de conferencia según su numero'; + asis.getCell('AD2').value = "1" + asis.getCell('AD3').value = "2" + asis.getCell('AD4').value = "3" + asis.getCell('AD5').value = "4" + asis.getCell('AD6').value = "5" + asis.getCell('AD7').value = "6" + asis.getCell('AD8').value = "7" + asis.getCell('AD9').value = "8" + asis.getCell('AD10').value = "9" + asis.getCell('AD11').value = "10" + asis.getCell('AD12').value = "11" + asis.getCell('AD13').value = "12" + asis.getCell('AD14').value = "13" + + asis.getCell('AE2').value = `"Competencias profesionales", ¿Qué busca los empleadores` + asis.getCell('AE3').value = `"Las prácticas profesionales, una puerta al mercado laboral"` + asis.getCell('AE4').value = `"Red profesional Linkedln"` + asis.getCell('AE5').value = `Taller, "Entrevista por Competencias"` + asis.getCell('AE6').value = `"¿Cómo tener una buena entrevista de trabajo? Antes, durante y después"` + asis.getCell('AE7').value = `"Aprendizaje-Servicio PALECH, Pedagogía para el Desarrollo del Servicio Social"` + + asis.getCell('AE8').value = "13va Feria del Empleo y Servicio Social" + asis.getCell('AE9').value = `Taller "Elaboración del curriculum y herramientas asertivas durante un proceso de entrevista laboral"` + asis.getCell('AE10').value = `"¿Le temes al éxito? Egresados de Acatlán comparten su experiencia y recomendaciones para emplearte."` + asis.getCell('AE11').value = `Taller "Curriculum de impacto "` + asis.getCell('AE12').value = `"Creando perfiles humanos dentro de las organizaciones"` + asis.getCell('AE13').value = `"¿Conoces qué son las prestaciones y beneficios que ofertan las empresas?"` + asis.getCell('AE14').value = `"Puntos clave para el desarrollo de tu talento"` + + + // res.setHeader('Content-Type', 'application/vnd.openxmlformats'); + // res.setHeader("Content-Disposition", "attachment; filename=" + "Report.xlsx"); + // workbook.xlsx.write(res); + // res.end(); + + // res.attachment("jornada-laboral.xlsx") + // workbook.xlsx.write(res) + // .then(function() { + // res.end() + // }); + + res.attachment(__dirname + `/../public/jornada.xlsx`) + workbook + .xlsx + .write(res) + .then(() => { + res.end() + + }) + .catch((err) => { + res.status(400).json({ error: false, msj: "no se pudo descargar" }); + }); + // + + return data; + +}) + + +module.exports = app \ No newline at end of file diff --git a/routes/index.js b/routes/index.js index 5a16663..b73b6ca 100644 --- a/routes/index.js +++ b/routes/index.js @@ -12,5 +12,5 @@ app.use(require('./verificarConferencia')); app.use(require('./cupo')); app.use(require('./loginAdmin')); app.use(require('./paseLista')); -//app.use(require('./get_excel')); +app.use(require('./getexcel')); module.exports = app; \ No newline at end of file