mini cambios

This commit is contained in:
lemuel 2022-11-21 22:20:35 -06:00
parent 0189e7fcee
commit 80111e15e0
5 changed files with 37 additions and 72 deletions

View File

@ -35,12 +35,11 @@ export class AuthService {
id_operador: admin.id_operador,
operador: admin.operador,
nombre: admin.nombre,
// institucion: { id_institucion: admin.institucion.id_institucion },
tipoUsuario: { id_tipo_usuario: admin.tipoUsuario.id_tipo_usuario },
},
};
// Los super admin y sistema no tienen institucion
// Los super admin y sistema no tienen institución
if (JwtPayload.Operador.tipoUsuario.id_tipo_usuario > 2)
JwtPayload.Operador.institucion = {
id_institucion: admin.institucion.id_institucion,
@ -83,7 +82,7 @@ export class AuthService {
loginUsuario(usuario: string, password: string) {
return this.usuarioService.findByUsuario(usuario).then((usuario) => {
// Sin password = no registrado, valida que este registrado
// Sin password = no registrado, valido que este registrado
if (usuario && !usuario.password)
throw new BadRequestException('Este usuario no ha sido registrado.');
this.validacionBasica(usuario, password);

View File

@ -50,7 +50,7 @@ export class JwtStrategyService extends PassportStrategy(Strategy) {
// Valida que la cuena del operador este activa
if (!operador.activo)
throw new ForbiddenException('Esta cuenta esta desactivada.');
// Validar que venga en el payload venga con un objeto Modulo en
// Validar que venga en el payload con un objeto Modulo en
// caso de ser tipo usuario operador y asignarlo al objeto user
if (operador.tipoUsuario.id_tipo_usuario === 4) {
if ('Modulo' in payload)

View File

@ -58,7 +58,6 @@ export class CarritoService {
throw new ForbiddenException(
'No puedes crear carritos para este módulo porque no pertenece a tu institución.',
);
// Creo y guardo el registro
return this.repository
.save(
@ -94,10 +93,7 @@ export class CarritoService {
id_tipo_carrito: tipoCarrito.id_tipo_carrito,
},
})
.then((infoCarrito) => {
if (!infoCarrito) return null;
return this.viewToCarrito(infoCarrito);
});
.then((infoCarrito) => this.viewToCarrito(infoCarrito));
}
findFullInfoById(id_carrito: number) {
@ -242,7 +238,7 @@ export class CarritoService {
return this.repository.save(carrito);
})
.then((carrito) => {
// Creo reporte de cambio de status del carrito
// Creo reporte de desactivación del carrito
if (attrs.activo === false)
this.caritoMotivoService.create(
carrito,
@ -256,6 +252,7 @@ export class CarritoService {
}
private viewToCarrito(infoCarrito: InformacionCarritoView) {
if (!infoCarrito) return null;
return this.repository.create({
id_carrito: infoCarrito.id_carrito,
modulo: {

View File

@ -23,19 +23,11 @@ export class EquipoMotivoService {
async create(
equipo: Equipo,
id_operador: number | Operador,
id_status: number | Status,
operador: Operador,
status: Status,
motivo: string,
) {
const ahora = moment();
const operador =
typeof id_operador === 'number'
? await this.operadorService.findById(id_operador)
: id_operador;
const status =
typeof id_status === 'number'
? await this.statusService.findById(id_status)
: id_status;
// Creo registro y lo guardo
return this.repository.save(

View File

@ -159,37 +159,22 @@ export class EquipoService {
.take(15)
.skip((parseInt(filtros.pagina) - 1) * 15);
// Si se mando id modulo
if (modulo) {
// Valido que el módulo le pertenezca a la institución del
// operador que solicita la información
if (
operador.tipoUsuario.id_tipo_usuario > 2 &&
operador.institucion.id_institucion != modulo.institucion.id_institucion
)
throw new ForbiddenException(
'No puedes acceder a esta información porque este módulo no pertenece a tu institución.',
);
if (operador.tipoUsuario.id_tipo_usuario > 2)
query.andWhere('m.id_institucion = :id_institucion', {
id_institucion: operador.institucion.id_institucion,
});
else if (institucion)
query.andWhere('m.id_institucion = :id_institucion', {
id_institucion: institucion.id_institucion,
});
if (modulo)
query.andWhere('m.id_modulo = :id_modulo', {
id_modulo: modulo.id_modulo,
});
}
// Si se mando id carrito
if (carrito) {
// Valido que el carrito le pertenezca a la institución del
// operador que solicita la información
if (
operador.tipoUsuario.id_tipo_usuario > 2 &&
operador.institucion.id_institucion !=
carrito.modulo.institucion.id_institucion
)
throw new ForbiddenException(
'No puedes acceder a esta información porque este carrito no pertenece a tu institución.',
);
if (carrito)
query.andWhere('c.id_carrito = :id_carrito', {
id_carrito: carrito.id_carrito,
});
}
if (filtros.carrito)
query.andWhere('c.carrito LIKE :carrito', {
carrito: `%${filtros.carrito}%`,
@ -198,10 +183,6 @@ export class EquipoService {
query.andWhere('e.equipo LIKE :equipo', {
equipo: `%${filtros.equipo}%`,
});
if (institucion)
query.andWhere('m.id_institucion = :id_institucion', {
id_institucion: institucion.id_institucion,
});
if (marca)
query.andWhere('ma.id_marca = :id_marca', {
id_marca: marca.id_marca,
@ -248,13 +229,10 @@ export class EquipoService {
},
})
.then((infoEquipo) => {
if (!infoEquipo) {
if (validarNoExiste)
throw new NotFoundException(
'No existe un equipo de cómputo con este número de inventario.',
);
return null;
}
if (!infoEquipo && validarNoExiste)
throw new NotFoundException(
'No existe un equipo de cómputo con este número de inventario.',
);
return this.viewToEquipo(infoEquipo);
});
}
@ -272,13 +250,10 @@ export class EquipoService {
},
})
.then((infoEquipo) => {
if (!infoEquipo) {
if (validarNoExiste)
throw new NotFoundException(
'No existe un equipo de cómputo con este número de inventario.',
);
return null;
}
if (!infoEquipo && validarNoExiste)
throw new NotFoundException(
'No existe un equipo de cómputo con este número de inventario.',
);
return this.viewToEquipo(infoEquipo);
});
}
@ -423,26 +398,27 @@ export class EquipoService {
return this.repository
.createQueryBuilder()
.update()
.where('id_status != 3')
.set({ prestado: false })
.execute();
}
async update(
update(
operador: Operador,
attrs: Partial<Equipo>,
id_carrito?: number,
id_status?: number,
motivo?: string,
) {
const carrito = id_carrito
? await this.carritoService.findById(id_carrito)
: null;
const status = id_status
? await this.statusService.findById(id_status)
: null;
return this.findById(attrs.id_equipo)
.then(async (equipo) => {
const carrito = id_carrito
? await this.carritoService.findById(id_carrito)
: null;
const status = id_status
? await this.statusService.findById(id_status)
: null;
// Valido que el equipo pertenezca a la institución del operador
// que realiza esta acción
if (
@ -463,7 +439,7 @@ export class EquipoService {
// El operador no puede cambiar el status de un equipo a uno de estos
if (status.id_status === 2 || status.id_status === 3)
throw new ConflictException(
'No se puede cambiar manualmente el status de un equipo a este status.',
'No se puede cambiar manualmente el status de un equipo a apartado o en uso.',
);
if (!motivo)
throw new ConflictException(
@ -550,6 +526,7 @@ export class EquipoService {
}
private viewToEquipo(infoEquipo: InformacionEquipoView) {
if (!infoEquipo) return null;
return this.repository.create({
id_equipo: infoEquipo.id_equipo,
equipo: infoEquipo.equipo,