correcciones

This commit is contained in:
lemuel 2023-01-03 10:51:55 -06:00
parent f0f3b7d3dc
commit c36c9c0925
6 changed files with 71 additions and 55 deletions

View File

@ -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);
});

View File

@ -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);
});

View File

@ -115,6 +115,31 @@ export class InstitucionUsuarioService {
);
}
findFullInfoAllByIdUsuario(
usuario: Usuario,
activosSinMulta = true,
): Promise<InstitucionUsuario[]> {
const busqueda: FindOptionsWhere<FullInformacionInstitucionUsuarioView> = {
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<InstitucionUsuario[]> {
const busqueda: FindOptionsWhere<FullInformacionInstitucionUsuarioView> = {
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,

View File

@ -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,

View File

@ -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;
});
}

View File

@ -132,6 +132,28 @@ export class UsuarioService {
return query.getManyAndCount();
}
findById(id_usuario: number): Promise<Usuario> {
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<Usuario> {
const busqueda: FindOptionsWhere<Usuario> = { 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<Usuario> {
return this.fullInformacionUsuarioView
.findOne({ where: { usuario } })
@ -161,28 +183,6 @@ export class UsuarioService {
});
}
findById(id_usuario: number): Promise<Usuario> {
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<Usuario> {
const busqueda: FindOptionsWhere<Usuario> = { 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,