ultimos cambios
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 (
|
||||
|
||||
Reference in New Issue
Block a user