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;
if (prestamo.equipo.u === prestamo.usuario.id_usuario) {
prestamo.equipo.u = null; prestamo.equipo.u = null;
prestamo.equipo.status.id_status = 6; prestamo.equipo.status.id_status = 6;
// Guardo cambios en el equipo, y envio el motivo de cancelación // Guardo cambios en el equipo, y envio el motivo de cancelación
return ( await this.equipoService.updateStatus(
this.equipoService prestamo.equipo,
.updateStatus(prestamo.equipo, operadorRegreso, motivo) operadorRegreso,
motivo,
);
}
// Guardo cambios del prestamo // Guardo cambios del prestamo
.then((_) => this.repository.save(prestamo)) return this.repository.save(prestamo).then((_) => {
.then((_) => {
// Actualizo interfaz de usaurios // Actualizo interfaz de usaurios
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario); this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
this.appGateway.actualizarOperador( this.appGateway.actualizarOperador(
operadorRegreso.institucion.id_institucion, operadorRegreso.institucion.id_institucion,
); );
return { message: 'Se canceló correctamente este préstamo.' }; return { message: 'Se canceló correctamente este préstamo.' };
}) });
);
} }
async cancelarUsuario(usuario: Usuario) { async cancelarUsuario(usuario: Usuario) {
@ -109,22 +111,22 @@ 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.u === usuario.id_usuario) {
if (prestamo.equipo.status.id_status === 3) if (prestamo.equipo.status.id_status === 3)
throw new ConflictException( throw new ConflictException(
'No puedes cancelar este préstamo una vez que se te entregó el equipo.', 'No puedes cancelar este préstamo una vez que se te entregó el equipo.',
); );
prestamo.activo = false;
prestamo.fecha_entrega = ahora.toDate();
prestamo.cancelado_usuario = true;
prestamo.equipo.u = null; prestamo.equipo.u = null;
prestamo.equipo.status.id_status = 1; prestamo.equipo.status.id_status = 1;
// Guardo cambios en el equipo // Guardo cambios en el equipo
return this.equipoService await this.equipoService.updateStatus(prestamo.equipo);
.updateStatus(prestamo.equipo) }
.then((_) => this.repository.save(prestamo)) // Guardo cambios del prestamo prestamo.activo = false;
.then((_) => { prestamo.fecha_entrega = ahora.toDate();
// Actualizo interfaz de usaurios prestamo.cancelado_usuario = true;
this.appGateway.actualizarUsuario(usuario.id_usuario); // Guardo cambios del prestamo
return this.repository.save(prestamo).then((_) => {
// Actualizo interfaz de operador
this.appGateway.actualizarOperador( this.appGateway.actualizarOperador(
prestamo.equipo.carrito.modulo.institucion.id_institucion, prestamo.equipo.carrito.modulo.institucion.id_institucion,
); );
@ -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;