const fs = require('fs'); const { convertArrayToCSV } = require('convert-array-to-csv'); const { Op } = require('sequelize'); const validar = require('../../helper/validar'); const Servicio = require('../../db/tablas/Servicio'); const Programa = require('../../db/tablas/Programa'); const Usuario = require('../../db/tablas/Usuario'); const Carrera = require('../../db/tablas/Carrera'); const Status = require('../../db/tablas/Status'); const reporte = async (body) => { const inicio = validar.validarFecha(body.inicio); const fin = validar.validarFecha(body.fin); const path = `csv/reporte.csv`; const data = []; return Servicio.findAll({ where: { [Op.and]: [ { fechaInicio: { [Op.gte]: inicio } }, { fechaInicio: { [Op.lte]: fin } }, ], }, include: [ { model: Programa }, { model: Usuario }, { model: Carrera }, { model: Status }, ], }).then((res) => { for (let i = 0; i < res.length; i++) data.push({ numeroCuenta: res[i].Usuario.usuario, nombre: res[i].Usuario.nombre, licenciatura: res[i].Carrera.carrera, correo: res[i].correo, fechaInicio: validar.crearDDMMAAAA(res[i].fechaInicio), fechaFin: validar.crearDDMMAAAA(res[i].fechaFin), fechaLiberacion: validar.crearDDMMAAAA(res[i].fechaLiberacion), institucion: res[i].Programa.institucion, dependencia: res[i].Programa.dependencia, programa: res[i].Programa.programa, profesor: res[i].profesor, clave: res[i].Programa.clavePrograma, status: res[i].Status.status, }); try { fs.unlinkSync(path); } catch (err) { console.log(err); } fs.appendFile(path, convertArrayToCSV(data), (err) => { if (err) throw new Error(err); }); return { message: `Se creo/actualizo correctamente el csv del reporte de servicios sociales.`, }; }); }; module.exports = reporte;