diff --git a/src/carrera-programa/carrera-programa.service.ts b/src/carrera-programa/carrera-programa.service.ts index 4751761..280dbcf 100644 --- a/src/carrera-programa/carrera-programa.service.ts +++ b/src/carrera-programa/carrera-programa.service.ts @@ -114,7 +114,7 @@ export class CarreraProgramaService { // Validamos que el usuario pertenezca a la institución de la información que solicita if (!institucionUsuario) throw new ForbiddenException( - 'No puedes acceder a esta información porque no le pertenece a tu institución.', + 'No puedes acceder a esta información porque no peteneces a esta institución.', ); return this.findAllByInstitucion(institucion); }); diff --git a/src/institucion-dia/institucion-dia.service.ts b/src/institucion-dia/institucion-dia.service.ts index 8b33164..3dc750c 100644 --- a/src/institucion-dia/institucion-dia.service.ts +++ b/src/institucion-dia/institucion-dia.service.ts @@ -74,7 +74,7 @@ export class InstitucionDiaService { // Validamos que el usuario pertenezca a la institución de la información que solicita if (!institucionUsuario) throw new ForbiddenException( - 'No puedes acceder a esta información porque no le pertenece a tu institución.', + 'No puedes acceder a esta información porque no peteneces a esta institución.', ); return this.hoy(institucion); }); diff --git a/src/institucion-usuario/institucion-usuario.service.ts b/src/institucion-usuario/institucion-usuario.service.ts index 665d1a4..40b40ea 100644 --- a/src/institucion-usuario/institucion-usuario.service.ts +++ b/src/institucion-usuario/institucion-usuario.service.ts @@ -115,6 +115,31 @@ export class InstitucionUsuarioService { ); } + findFullInfoAllByIdUsuario( + usuario: Usuario, + activosSinMulta = true, + ): Promise { + const busqueda: FindOptionsWhere = { + id_usuario: usuario.id_usuario, + }; + + if (activosSinMulta) { + busqueda.activo = 1; + busqueda.multa = 0; + } + return this.fullInformacionInstitucionUsuarioView + .find({ where: busqueda }) + .then((infoInstitucionesUsuario) => { + const institucionesUsuario: InstitucionUsuario[] = []; + + for (let i = 0; i < infoInstitucionesUsuario.length; i++) + institucionesUsuario.push( + this.fullViewToInstitucionUsuario(infoInstitucionesUsuario[i]), + ); + return institucionesUsuario; + }); + } + findFullInfoAllByIdUsuarioIdInstitucion( usuario: Usuario, institucion: Institucion, @@ -142,31 +167,6 @@ export class InstitucionUsuarioService { }); } - findFullInfoAllByIdUsuario( - usuario: Usuario, - activosSinMulta = true, - ): Promise { - const busqueda: FindOptionsWhere = { - id_usuario: usuario.id_usuario, - }; - - if (activosSinMulta) { - busqueda.activo = 1; - busqueda.multa = 0; - } - return this.fullInformacionInstitucionUsuarioView - .find({ where: busqueda }) - .then((infoInstitucionesUsuario) => { - const institucionesUsuario: InstitucionUsuario[] = []; - - for (let i = 0; i < infoInstitucionesUsuario.length; i++) - institucionesUsuario.push( - this.fullViewToInstitucionUsuario(infoInstitucionesUsuario[i]), - ); - return institucionesUsuario; - }); - } - findFullInfoByIdUsuarioIdInstitucionCarrera( usuario: Usuario, institucionCarrera: InstitucionCarrera, diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index a118eba..adc8db7 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -91,7 +91,7 @@ export class PrestamoService { prestamo.operadorRegreso = operadorRegreso; // Validamos que el equipo si se la haya asignado al usuario del registro if (prestamo.equipo.u === prestamo.usuario.id_usuario) { - // Reseteamos datos de equipo + // Reseteamos datos del equipo prestamo.equipo.u = null; prestamo.equipo.status.id_status = 6; // Guardamos cambios en el equipo @@ -125,7 +125,12 @@ export class PrestamoService { throw new ConflictException( 'No puedes cancelar este préstamo una vez que se te entregó el equipo.', ); - // Reseteamos datos de equipo + // Solo se puede cancelar si esta en status apartado + if (prestamo.equipo.status.id_status != 2) + throw new ConflictException( + 'Hubo un error, comunicate con los desarrolladores.', + ); + // Reseteamos datos del equipo prestamo.equipo.u = null; prestamo.equipo.status.id_status = 1; // Guardamos cambios en el equipo @@ -283,6 +288,11 @@ export class PrestamoService { throw new ConflictException( 'Ya se entregó el equipo de cómputo al usuario.', ); + // Solo se puede entregar si esta en status apartado + if (prestamo.equipo.status.id_status != 2) + throw new ConflictException( + 'Hubo un error, comunicate con los desarrolladores.', + ); 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.', @@ -713,7 +723,7 @@ export class PrestamoService { const tardanza = Math.trunc(ahora.diff(moment(prestamo.hora_fin)) / 60000); // Si la resta ahora - hora_fin es positiva es que ya se tardo en entregar const semanasCastigo = Math.trunc( tardanza / modulo.institucion.tiempo_entrega, - ); // Semanas de castigo correspondiente al tiempo de tardanza de cada institución + ); // Semanas de castigo correspondiente al tiempo de entrega de cada institución this.validacionBasicaPrestamo(prestamo); this.validacionOperadorPrestamo(prestamo, operadorRegreso, modulo); @@ -722,6 +732,12 @@ export class PrestamoService { throw new ConflictException( 'Aún no se ha entregado el equipo de cómputo al usuario.', ); + // Solo se puede regresar si esta en status apartado + if (prestamo.equipo.status.id_status != 3) + throw new ConflictException( + 'Hubo un error, comunicate con los desarrolladores.', + ); + // Validamos que se mande la descripción si es que se manda una infracción if (id_institucion_infraccion && !descripcion) throw new ConflictException( 'No se mandó la descripción para el reporte de incidencia.', @@ -730,14 +746,14 @@ export class PrestamoService { prestamo.activo = false; prestamo.fecha_entrega = ahora.toDate(); prestamo.operadorRegreso = operadorRegreso; - // Reseteamos datos de equipo + // Reseteamos datos del equipo prestamo.equipo.u = null; prestamo.equipo.status = status; // Si semanasCastigo es mayor a 0 significa que hay multa por atraso if (semanasCastigo > 0) { const mensajeTardanza = `El usuario se tardó: ${tardanza} minutos en entregar el equipo de cómputo.`; - // Si se mando id_institucion_infraccion significa que ademas de entregar tarde cometió una infracción + // Si se mando id_institucion_infraccion significa que ademas de entregar tarde, cometió una infracción if (id_institucion_infraccion) await this.multaService.create( operadorRegreso, diff --git a/src/status/status.service.ts b/src/status/status.service.ts index 914cda7..3e26139 100644 --- a/src/status/status.service.ts +++ b/src/status/status.service.ts @@ -15,7 +15,7 @@ export class StatusService { findById(id_status: number) { return this.repository.findOne({ where: { id_status } }).then((status) => { - if (!status) throw new NotFoundException('No existe este status.'); + if (!status) throw new NotFoundException('No existe este id status.'); return status; }); } diff --git a/src/usuario/usuario.service.ts b/src/usuario/usuario.service.ts index ac2ad9d..ee6e72c 100644 --- a/src/usuario/usuario.service.ts +++ b/src/usuario/usuario.service.ts @@ -132,6 +132,28 @@ export class UsuarioService { return query.getManyAndCount(); } + findById(id_usuario: number): Promise { + return this.repository + .findOne({ + select: ['id_usuario', 'correo', 'password', 'usuario'], + where: { id_usuario }, + }) + .then((usuario) => { + if (!usuario) throw new NotFoundException('No existe este usuario.'); + return usuario; + }); + } + + findByUsuario(usuario: string, rfc?: string): Promise { + const busqueda: FindOptionsWhere = { usuario }; + + if (rfc) busqueda.rfc = rfc; + return this.repository.findOne({ + select: ['id_usuario', 'correo', 'nombre', 'password', 'usuario'], + where: busqueda, + }); + } + findFullInfoByUsuario(operador: Operador, usuario: string): Promise { return this.fullInformacionUsuarioView .findOne({ where: { usuario } }) @@ -161,28 +183,6 @@ export class UsuarioService { }); } - findById(id_usuario: number): Promise { - return this.repository - .findOne({ - select: ['id_usuario', 'correo', 'password', 'usuario'], - where: { id_usuario }, - }) - .then((usuario) => { - if (!usuario) throw new NotFoundException('No existe este usuario.'); - return usuario; - }); - } - - findByUsuario(usuario: string, rfc?: string): Promise { - const busqueda: FindOptionsWhere = { usuario }; - - if (rfc) busqueda.rfc = rfc; - return this.repository.findOne({ - select: ['id_usuario', 'correo', 'nombre', 'password', 'usuario'], - where: busqueda, - }); - } - passwordReset( operador: Operador, id_usuario: number,