listo para mañana

This commit is contained in:
xXpuma99Xx 2022-11-13 22:49:49 -06:00
parent f3cd658c47
commit 842e9f3a47
2 changed files with 46 additions and 39 deletions

View File

@ -23,6 +23,7 @@ import { Usuario } from '../../../usuario/entity/usuario.entity';
.addSelect('p.id_equipo', 'id_equipo') .addSelect('p.id_equipo', 'id_equipo')
.addSelect('p.id_usuario', 'id_usuario') .addSelect('p.id_usuario', 'id_usuario')
.addSelect('e.equipo', 'equipo') .addSelect('e.equipo', 'equipo')
.addSelect('e.u', 'u')
.addSelect('e.id_carrito', 'id_carrito') .addSelect('e.id_carrito', 'id_carrito')
.addSelect('e.id_status', 'id_status') .addSelect('e.id_status', 'id_status')
.addSelect('e.numero_inventario', 'numero_inventario') .addSelect('e.numero_inventario', 'numero_inventario')
@ -119,4 +120,7 @@ export class PrestamoInformacionView {
@ViewColumn() @ViewColumn()
usuario: string; usuario: string;
@ViewColumn()
u: number;
} }

View File

@ -84,23 +84,25 @@ export class PrestamoService {
prestamo.fecha_entrega = ahora.toDate(); prestamo.fecha_entrega = ahora.toDate();
prestamo.cancelado_operador = true; prestamo.cancelado_operador = true;
prestamo.operadorRegreso = operadorRegreso; prestamo.operadorRegreso = operadorRegreso;
prestamo.equipo.u = null; if (prestamo.equipo.u === prestamo.usuario.id_usuario) {
prestamo.equipo.status.id_status = 6; prestamo.equipo.u = null;
// Guardo cambios en el equipo, y envio el motivo de cancelación prestamo.equipo.status.id_status = 6;
return ( // Guardo cambios en el equipo, y envio el motivo de cancelación
this.equipoService await this.equipoService.updateStatus(
.updateStatus(prestamo.equipo, operadorRegreso, motivo) prestamo.equipo,
// Guardo cambios del prestamo operadorRegreso,
.then((_) => this.repository.save(prestamo)) motivo,
.then((_) => { );
// Actualizo interfaz de usaurios }
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario); // Guardo cambios del prestamo
this.appGateway.actualizarOperador( return this.repository.save(prestamo).then((_) => {
operadorRegreso.institucion.id_institucion, // Actualizo interfaz de usaurios
); this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
return { message: 'Se canceló correctamente este préstamo.' }; this.appGateway.actualizarOperador(
}) operadorRegreso.institucion.id_institucion,
); );
return { message: 'Se canceló correctamente este préstamo.' };
});
} }
async cancelarUsuario(usuario: Usuario) { async cancelarUsuario(usuario: Usuario) {
@ -109,27 +111,27 @@ export class PrestamoService {
this.validacionBasicaPrestamo(prestamo); this.validacionBasicaPrestamo(prestamo);
// Saco error en status de equipo 3 // Saco error en status de equipo 3
if (prestamo.equipo.status.id_status === 3) if (prestamo.equipo.u === usuario.id_usuario) {
throw new ConflictException( if (prestamo.equipo.status.id_status === 3)
'No puedes cancelar este préstamo una vez que se te entregó el equipo.', throw new ConflictException(
); 'No puedes cancelar este préstamo una vez que se te entregó el equipo.',
);
prestamo.equipo.u = null;
prestamo.equipo.status.id_status = 1;
// Guardo cambios en el equipo
await this.equipoService.updateStatus(prestamo.equipo);
}
prestamo.activo = false; prestamo.activo = false;
prestamo.fecha_entrega = ahora.toDate(); prestamo.fecha_entrega = ahora.toDate();
prestamo.cancelado_usuario = true; prestamo.cancelado_usuario = true;
prestamo.equipo.u = null; // Guardo cambios del prestamo
prestamo.equipo.status.id_status = 1; return this.repository.save(prestamo).then((_) => {
// Guardo cambios en el equipo // Actualizo interfaz de operador
return this.equipoService this.appGateway.actualizarOperador(
.updateStatus(prestamo.equipo) prestamo.equipo.carrito.modulo.institucion.id_institucion,
.then((_) => this.repository.save(prestamo)) // Guardo cambios del prestamo );
.then((_) => { return { message: 'Se canceló correctamente este préstamo.' };
// Actualizo interfaz de usaurios });
this.appGateway.actualizarUsuario(usuario.id_usuario);
this.appGateway.actualizarOperador(
prestamo.equipo.carrito.modulo.institucion.id_institucion,
);
return { message: 'Se canceló correctamente este préstamo.' };
});
} }
async create( async create(
@ -341,6 +343,10 @@ export class PrestamoService {
throw new ConflictException( throw new ConflictException(
'Ya se entregó el equipo de cómputo al usuario.', 'Ya se entregó el equipo de cómputo al usuario.',
); );
if (prestamo.usuario.id_usuario != prestamo.equipo.u)
throw new ConflictException(
'Este equipo fue asignado más de una vez y este es el préstamo incorrecto, espere unos segundos y se desactivará este préstamo o tanto el usario como el opeardor pueden cancelarlo manualmente.',
);
prestamo.hora_inicio = ahora.toDate(); prestamo.hora_inicio = ahora.toDate();
prestamo.hora_fin = prestamo.hora_fin =
ahora > horaMax ahora > horaMax
@ -724,6 +730,7 @@ export class PrestamoService {
id_equipo: infoPrestamo.id_equipo, id_equipo: infoPrestamo.id_equipo,
equipo: infoPrestamo.equipo, equipo: infoPrestamo.equipo,
numero_inventario: infoPrestamo.numero_inventario, numero_inventario: infoPrestamo.numero_inventario,
u: infoPrestamo.u,
carrito: { carrito: {
id_carrito: infoPrestamo.id_carrito, id_carrito: infoPrestamo.id_carrito,
carrito: infoPrestamo.carrito, carrito: infoPrestamo.carrito,
@ -833,10 +840,6 @@ export class PrestamoService {
); );
if (id_institucion_infraccion && !descripcion) if (id_institucion_infraccion && !descripcion)
throw new ConflictException('No se mandó la descripción de lo ocurrido.'); throw new ConflictException('No se mandó la descripción de lo ocurrido.');
if (prestamo.usuario.id_usuario !== prestamo.equipo.u)
throw new ConflictException(
'Este equipo fue asignado 2 veces y este es el préstamo incorrecto, espere unos segundos y se desactivará este préstamo.',
);
prestamo.activo = false; prestamo.activo = false;
prestamo.fecha_entrega = ahora.toDate(); prestamo.fecha_entrega = ahora.toDate();
prestamo.operadorRegreso = operadorRegreso; prestamo.operadorRegreso = operadorRegreso;