ultimos cambios

This commit is contained in:
xXpuma99Xx
2022-10-26 03:25:15 -05:00
parent 1a2d0658be
commit 20f332f035
5 changed files with 72 additions and 45 deletions
+1 -1
View File
@@ -55,7 +55,7 @@ export class JwtStrategyService extends PassportStrategy(Strategy) {
if (operador.tipoUsuario.id_tipo_usuario === 4) {
if ('Modulo' in payload)
await this.moduloService
.findById(payload.Modulo.id_modulo)
.findFullInfoById(payload.Modulo.id_modulo)
.then((modulo) => (user.modulo = modulo));
else
throw new ForbiddenException(
@@ -21,6 +21,7 @@ import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carri
.addSelect('e.numero_inventario', 'numero_inventario')
.addSelect('e.numero_serie', 'numero_serie')
.addSelect('e.prestado', 'prestado')
.addSelect('e.u', 'u')
.addSelect('c.carrito', 'carrito')
.addSelect('c.id_modulo', 'id_modulo')
.addSelect('c.id_tipo_carrito', 'id_tipo_carrito')
@@ -102,4 +103,7 @@ export class FullInformacionEquipoView {
@ViewColumn()
tipo_carrito: string;
@ViewColumn()
u: number;
}
+58 -39
View File
@@ -361,7 +361,7 @@ export class EquipoService {
}),
);
})
.then((equipo) => this.findById(equipo.id_equipo)) // Una vez actualizado lo busco de nuevo
.then((equipo) => this.findFullInfoById(equipo.id_equipo)) // Una vez actualizado lo busco de nuevo
.then((equipo) => {
// Si el campo u no coincide con el id_usaurio saca error
if (equipo.u != id_usuario)
@@ -389,53 +389,33 @@ export class EquipoService {
'No existe un equipo de cómputo con este número de inventario en esta institución.',
);
const equipo = this.fullViewToEquipo(infoEquipo);
// Busco todos los programas de este equipo
const programas =
await this.equipoProgramaService.findFullInfoAllByIdEquipo(
infoEquipo.id_equipo,
equipo.id_equipo,
);
// Busco todos los tipos de entrada de este equipo
const tiposEntradas =
await this.equipoTipoEntradaService.findFullInfoAllByIdEquipo(
infoEquipo.id_equipo,
equipo.id_equipo,
);
return this.repository.create({
id_equipo: infoEquipo.id_equipo,
equipo: infoEquipo.equipo,
numero_inventario: infoEquipo.numero_inventario,
prestado: infoEquipo.prestado,
carrito: {
id_carrito: infoEquipo.id_carrito,
carrito: infoEquipo.carrito,
modulo: {
id_modulo: infoEquipo.id_modulo,
modulo: infoEquipo.modulo,
institucion: {
id_institucion: infoEquipo.id_institucion,
institucion: infoEquipo.institucion,
},
},
tipoCarrito: {
id_tipo_carrito: infoEquipo.id_tipo_carrito,
tipo_carrito: infoEquipo.tipo_carrito,
},
},
marca: {
id_marca: infoEquipo.id_marca,
marca: infoEquipo.marca,
},
modelo: {
id_modelo: infoEquipo.id_modelo,
modelo: infoEquipo.modelo,
},
status: {
id_status: infoEquipo.id_status,
status: infoEquipo.status,
},
programas,
tiposEntradas,
});
equipo.programas = programas;
equipo.tiposEntradas = tiposEntradas;
return equipo;
});
}
findFullInfoById(id_equipo: number) {
return this.fullInformacionEquipoView
.findOne({ where: { id_equipo } })
.then((infoEquipo) => {
if (!infoEquipo)
throw new NotFoundException(
'No existe un equipo de cómputo con este número de inventario en esta institución.',
);
return this.fullViewToEquipo(infoEquipo);
});
}
@@ -530,6 +510,45 @@ export class EquipoService {
return this.repository.save(equipo);
}
private fullViewToEquipo(infoEquipo: FullInformacionEquipoView) {
return this.repository.create({
id_equipo: infoEquipo.id_equipo,
equipo: infoEquipo.equipo,
numero_inventario: infoEquipo.numero_inventario,
numero_serie: infoEquipo.numero_serie,
prestado: infoEquipo.prestado,
u: infoEquipo.u,
carrito: {
id_carrito: infoEquipo.id_carrito,
carrito: infoEquipo.carrito,
modulo: {
id_modulo: infoEquipo.id_modulo,
modulo: infoEquipo.modulo,
institucion: {
id_institucion: infoEquipo.id_institucion,
institucion: infoEquipo.institucion,
},
},
tipoCarrito: {
id_tipo_carrito: infoEquipo.id_tipo_carrito,
tipo_carrito: infoEquipo.tipo_carrito,
},
},
marca: {
id_marca: infoEquipo.id_marca,
marca: infoEquipo.marca,
},
modelo: {
id_modelo: infoEquipo.id_modelo,
modelo: infoEquipo.modelo,
},
status: {
id_status: infoEquipo.id_status,
status: infoEquipo.status,
},
});
}
private viewToEquipo(infoEquipo: InformacionEquipoView) {
return this.repository.create({
id_equipo: infoEquipo.id_equipo,
+4 -1
View File
@@ -133,12 +133,14 @@ export class PrestamoController {
})
cancelarOperador(@Request() req, @Body() body: CancelarOperadorDto) {
const operador: Operador = req.user.operador;
const modulo: Modulo = req.user.modulo;
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.cancelarOperador(
operador,
body.id_prestamo,
body.motivo,
modulo,
);
}
@@ -173,9 +175,10 @@ export class PrestamoController {
})
entregar(@Request() req, @Body() body: EntregarDto) {
const operador: Operador = req.user.operador;
const modulo: Modulo = req.user.modulo;
this.validarUsuarioService.validarAdminOperador(operador);
return this.prestamoService.entregar(operador, body.id_prestamo);
return this.prestamoService.entregar(operador, body.id_prestamo, modulo);
}
@Serealize(PrestamosOutputDto)
+5 -4
View File
@@ -70,12 +70,13 @@ export class PrestamoService {
operadorRegreso: Operador,
id_prestamo: number,
motivo: string,
modulo: Modulo,
) {
const ahora = moment();
const prestamo = await this.findById(id_prestamo);
this.validacionBasicaPrestamo(prestamo);
this.validacionOperadorPrestamo(prestamo, operadorRegreso);
this.validacionOperadorPrestamo(prestamo, operadorRegreso, modulo);
prestamo.activo = false;
prestamo.fecha_entrega = ahora.toDate();
prestamo.cancelado_operador = true;
@@ -281,7 +282,7 @@ export class PrestamoService {
async entregar(
operadorEntrega: Operador,
id_prestamo: number,
modulo?: Modulo,
modulo: Modulo,
) {
const ahora = moment();
const ahoraStr = ahora.format('YYYY-MM-DD');
@@ -310,7 +311,7 @@ export class PrestamoService {
prestamo.hora_fin =
ahora > horaMax
? horaTope.toDate()
: ahora.add(operadorEntrega.institucion.tiempo_prestamo, 'm').toDate();
: ahora.add(modulo.institucion.tiempo_prestamo, 'm').toDate();
prestamo.operadorEntrega = operadorEntrega;
prestamo.equipo.prestado = true;
prestamo.equipo.status.id_status = 3;
@@ -909,7 +910,7 @@ export class PrestamoService {
private validacionOperadorPrestamo(
prestamo: Prestamo,
operador: Operador,
modulo?: Modulo,
modulo: Modulo,
) {
// Valido que el prestamo pertenezca a la institución
if (