This commit is contained in:
xXpuma99Xx
2022-01-24 00:13:19 -06:00
parent 539933e065
commit 9af90dc0cf
9 changed files with 234 additions and 3 deletions
+1
View File
@@ -2,3 +2,4 @@ node_modules/
.env
server/uploads/*
+5
View File
@@ -0,0 +1,5 @@
const Carrera = require('../../db/tablas/Carrera');
const get = async () => Carrera.findAll();
module.exports = get;
+136
View File
@@ -0,0 +1,136 @@
const { convertArrayToCSV } = require('convert-array-to-csv');
const { Op } = require('sequelize');
const helperPath = '../../helper';
const helper = require(`${helperPath}/helper`);
const validar = require(`${helperPath}/validar`);
const dbPath = '../../db/tablas';
const Carrera = require(`${dbPath}/Carrera`);
const Carrito = require(`${dbPath}/Carrito`);
const Equipo = require(`${dbPath}/Equipo`);
const Modulo = require(`${dbPath}/Modulo`);
const Operador = require(`${dbPath}/Operador`);
const Prestamo = require(`${dbPath}/Prestamo`);
const Programa = require(`${dbPath}/Programa`);
const TipoCarrito = require(`${dbPath}/TipoCarrito`);
const TipoUsuario = require(`${dbPath}/TipoUsuario`);
const Usuario = require(`${dbPath}/Usuario`);
const reporte = async (body) => {
const inicio = validar.validarFecha(body.inicio, 'fecha de inicio', false);
const fin = validar.validarFecha(body.fin, 'fecha fin', false);
const idCarrera = body.idCarrera
? validar.validarNumeroEntero(body.idCarrera, 'id carrera', true)
: '';
const idTipoUsuario = body.idTipoUsuario
? validar.validarNumeroEntero(body.idTipoUsuario, 'id tipo usuario', true)
: '';
const idTipoCarrito = body.idTipoCarrito
? validar.validarNumeroEntero(body.idTipoCarrito, 'id tipo carrito', true)
: '';
const path = `server/uploads/reporte.csv`;
const data = [];
return Prestamo.findAll({
where: {
[Op.and]: [
{ createdAt: { [Op.gte]: inicio.format() } },
{ createdAt: { [Op.lte]: fin.format() } },
],
},
include: [
{
model: Equipo,
include: [
{
model: Carrito,
include: [{ model: TipoCarrito }, { model: Modulo }],
},
{ model: Programa },
],
},
{
model: Usuario,
include: [{ model: Carrera }, { model: TipoUsuario }],
},
{
model: Operador,
as: 'OperadorEntrega',
},
{
model: Operador,
as: 'OperadorRegreso',
},
{
model: Operador,
as: 'OperadorCancelacion',
},
],
})
.then(async (res) => {
for (let i = 0; i < res.length; i++) {
let agregar = false;
if (idTipoCarrito) {
if (idTipoCarrito === res[i].Equipo.Carrito.idTipoCarrito) {
if (idTipoUsuario) {
if (idTipoUsuario === res[i].Usuario.idTipoUsuario) {
if (idCarrera) {
if (idCarrera === res[i].Usuario.idCarrera) agregar = true;
} else agregar = true;
}
} else if (idCarrera) {
if (idCarrera === res[i].Usuario.idCarrera) agregar = true;
} else agregar = true;
}
} else if (idTipoUsuario) {
if (idTipoUsuario === res[i].Usuario.idTipoUsuario) {
if (idCarrera) {
if (idCarrera === res[i].Usuario.idCarrera) agregar = true;
} else agregar = true;
}
} else if (idCarrera) {
if (idCarrera === res[i].Usuario.idCarrera) agregar = true;
} else agregar = true;
if (agregar)
data.push({
idPrestamo: res[i].idPrestamo,
activo: res[i].activo,
horaMaxRecoger: helper.crearDDMMAAAAHHMM(res[i].horaMaxRecoger),
horaInicio: helper.crearDDMMAAAAHHMM(res[i].horaInicio),
horaFin: helper.crearDDMMAAAAHHMM(res[i].horaFin),
horaEntrega: helper.crearDDMMAAAAHHMM(res[i].horaEntrega),
canceladoUsuario: res[i].canceladoUsuario,
createdAt: helper.crearDDMMAAAAHHMM(res[i].createdAt),
numeroInventario: res[i].Equipo.numeroInventario,
numeroSerie: res[i].Equipo.numeroSerie,
sobrenombre: res[i].Equipo.sobrenombre,
programa: res[i].Equipo.Programa
? res[i].Equipo.Programa.programa
: null,
carrito: res[i].Equipo.Carrito.carrito,
modulo: res[i].Equipo.Carrito.Modulo.modulo,
tipoCarrito: res[i].Equipo.Carrito.TipoCarrito.tipoCarrito,
nombre: res[i].Usuario.nombre,
usuario: res[i].Usuario.usuario,
tipoUsuario: res[i].Usuario.TipoUsuario.tipoUsuario,
carrera: res[i].Usuario.Carrera.carrera,
operadorEntrega: res[i].OperadorEntrega
? res[i].OperadorEntrega.operador
: null,
operadorRegreso: res[i].OperadorRegreso
? res[i].OperadorRegreso.operador
: null,
operadorCancelacion: res[i].OperadorCancelacion
? res[i].OperadorCancelacion.operador
: null,
});
}
await helper.eliminarArchivo(path).catch((err) => {
console.log(err);
});
return helper.crearArchivo(path, convertArrayToCSV(data));
})
.then((res) => path);
};
module.exports = reporte;
+7
View File
@@ -0,0 +1,7 @@
const { Op } = require('sequelize');
const TipoUsuario = require('../../db/tablas/TipoUsuario');
const get = async () =>
TipoUsuario.findAll({ where: { idTipoUsuario: { [Op.gt]: 2 } } });
module.exports = get;
+23 -3
View File
@@ -6,9 +6,28 @@ const crearDDMMAAAA = (date) => {
let ddmmaaaa = '';
if (fechaMoment.isValid())
ddmmaaaa = `${fechaMoment.date()}/${
fechaMoment.month() + 1
}/${fechaMoment.year()}`;
ddmmaaaa = `${fechaMoment.year()}/${
fechaMoment.month() < 9
? '0' + (fechaMoment.month() + 1)
: fechaMoment.month() + 1
}/${
fechaMoment.date() < 10 ? '0' + fechaMoment.date() : fechaMoment.date()
}`;
return ddmmaaaa;
};
const crearDDMMAAAAHHMM = (date) => {
const fechaMoment = moment(date);
let ddmmaaaa = crearDDMMAAAA(date);
if (fechaMoment.isValid())
ddmmaaaa += ` ${
fechaMoment.hour() < 10 ? '0' + fechaMoment.hour() : fechaMoment.hour()
}:${
fechaMoment.minute() < 10
? '0' + fechaMoment.minute()
: fechaMoment.minute()
}`;
return ddmmaaaa;
};
@@ -32,6 +51,7 @@ const crearArchivo = (path, texto) => {
module.exports = {
crearDDMMAAAA,
crearDDMMAAAAHHMM,
eliminarArchivo,
crearArchivo,
};
+21
View File
@@ -0,0 +1,21 @@
const express = require('express');
const app = express();
const { verificaToken } = require('../middleware/autentificacion');
const route = '/carrera';
const get = require('../controller/Carrera/get');
app.get(
`${route}`,
//verificaToken,
(req, res) => {
return get()
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
}
);
module.exports = app;
+18
View File
@@ -15,8 +15,10 @@ const regresar = require(`${controllerPath}/regresar`);
const regresarNumeroInventario = require(`${controllerPath}/regresarNumeroInventario`);
const prestamo = require(`${controllerPath}/prestamo`);
const prestamoUsuario = require(`${controllerPath}/prestamoUsuario`);
const reporte = require(`${controllerPath}/reporte`);
const status = require(`${controllerPath}/status`);
// POST
app.post(
`${route}/pedir`,
// verificaToken,
@@ -31,6 +33,7 @@ app.post(
}
);
// PUT
app.put(
`${route}/entregar`,
// verificaToken,
@@ -101,6 +104,7 @@ app.put(
}
);
// GET
app.get(
`${route}/activos`,
// verificaToken,
@@ -185,6 +189,20 @@ app.get(
}
);
app.get(
`${route}/reporte`,
// verificaToken,
(req, res) => {
return reporte(req.query)
.then((data) => {
res.download(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
}
);
app.get(
`${route}/status`,
// verificaToken,
+21
View File
@@ -0,0 +1,21 @@
const express = require('express');
const app = express();
const { verificaToken } = require('../middleware/autentificacion');
const route = '/tipo_usuario';
const get = require('../controller/TipoUsuario/get');
app.get(
`${route}`,
//verificaToken,
(req, res) => {
return get()
.then((data) => {
res.status(200).json(data);
})
.catch((err) => {
res.status(400).json({ message: err.message });
});
}
);
module.exports = app;
+2
View File
@@ -1,6 +1,7 @@
const express = require('express');
const app = express();
app.use(require('./Carrera'));
app.use(require('./Carrito'));
app.use(require('./Equipo'));
app.use(require('./Infraccion'));
@@ -11,6 +12,7 @@ app.use(require('./Prestamo'));
app.use(require('./Programa'));
app.use(require('./Status'));
app.use(require('./TipoCarrito'));
app.use(require('./TipoUsuario'));
app.use(require('./Usuario'));
module.exports = app;