institución infracción service final

This commit is contained in:
lemuel 2022-12-20 20:15:11 -06:00
parent 1c9d1ce2de
commit 0563178460
12 changed files with 40 additions and 56 deletions

View File

@ -75,7 +75,7 @@ export class InstitucionDiaService {
institucionDia.institucion.id_institucion
)
throw new ConflictException(
'No puedes acceder a esta información porque no le pertenece a tu institución.',
'No puedes modificar la información este día porque no pertenece a tu institución.',
);
// Validamos que hora_inicio no sea mayor a hora_fin
if (

View File

@ -30,7 +30,9 @@ export class InstitucionInfraccion {
@JoinColumn({ name: 'id_infraccion' })
infraccion: Infraccion;
@ManyToOne(() => Institucion, (institucion) => institucion.infracciones)
@ManyToOne(() => Institucion, (institucion) => institucion.infracciones, {
eager: true,
})
@JoinColumn({ name: 'id_institucion' })
institucion: Institucion;

View File

@ -66,9 +66,7 @@ export class InstitucionInfraccionController {
const operador: Operador = req.user.operador;
this.validarUsuarioService.validarAdminOperador(operador);
return this.institucionInfraccionService.findAllByIdInstitucion(
operador.institucion.id_institucion,
);
return this.institucionInfraccionService.findAllOperador(operador);
}
@Serealize(MessageOutputDto)

View File

@ -6,10 +6,10 @@ import {
import { InjectRepository } from '@nestjs/typeorm';
import { Not, Repository } from 'typeorm';
import { Infraccion } from './entity/infraccion.entity';
import { Institucion } from '../institucion/entity/institucion.entity';
import { InstitucionInfraccion } from './entity/institucion-infraccion.entity';
import { Operador } from '../operador/entity/operador.entity';
import { InstitucionService } from '../institucion/institucion.service';
import { Institucion } from 'src/institucion/entity/institucion.entity';
@Injectable()
export class InstitucionInfraccionService {
@ -21,12 +21,12 @@ export class InstitucionInfraccionService {
private institucionService: InstitucionService,
) {}
create(infraccion: string) {
// Buscamos una infracción con ese nombre
create(infraccion: string): Promise<{ message: string }> {
// Buscamos un registro con ese nombre
return this.infraccionRepository
.findOne({ where: { infraccion } })
.then((existeInfraccion) => {
// Saco error si existe
// Sacamos error si existe
if (existeInfraccion)
throw new ConflictException('Ya existe esta infracción.');
// Creamos y guardamos un registro
@ -37,7 +37,7 @@ export class InstitucionInfraccionService {
.then(async (infraccion) => {
const instituciones = await this.institucionService.findAll();
// Le asigno la nueva infracción a todas las instituciones
// Asociamos las nueva infracción con las instituciones
for (let i = 0; i < instituciones.length; i++)
await this.institucionInfraccionRepository.save(
this.institucionInfraccionRepository.create({
@ -49,39 +49,26 @@ export class InstitucionInfraccionService {
});
}
findAll() {
findAll(): Promise<Infraccion[]> {
return this.infraccionRepository.find({
where: { id_infraccion: Not(1) },
order: { infraccion: 'ASC' },
});
}
findAllByIdInstitucion(id_institucion: number) {
return this.institucionService
.findById(id_institucion)
.then((institucion) =>
this.institucionInfraccionRepository
.createQueryBuilder('ii')
.innerJoinAndSelect('ii.infraccion', 'inf')
.innerJoinAndSelect('ii.institucion', 'i')
.where(
'i.id_institucion = :id_institucion && inf.id_infraccion != 1',
{ id_institucion: institucion.id_institucion },
)
.orderBy('inf.infraccion')
.getMany(),
);
findAllOperador(operador: Operador): Promise<InstitucionInfraccion[]> {
return this.institucionInfraccionRepository.find({
where: {
infraccion: { id_infraccion: Not(1) },
institucion: operador.institucion,
},
order: { infraccion: { infraccion: 'ASC' } },
});
}
findById(id_institucion_infraccion: number) {
findById(id_institucion_infraccion: number): Promise<InstitucionInfraccion> {
return this.institucionInfraccionRepository
.findOne({
join: {
alias: 'ii',
innerJoinAndSelect: { i: 'ii.institucion', in: 'ii.infraccion' },
},
where: { id_institucion_infraccion },
})
.findOne({ where: { id_institucion_infraccion } })
.then((institucionInfraccion) => {
if (!institucionInfraccion)
throw new NotFoundException(
@ -91,28 +78,25 @@ export class InstitucionInfraccionService {
});
}
findSinInfraccion(institucion: Institucion) {
return this.institucionInfraccionRepository
.createQueryBuilder('ii')
.innerJoinAndSelect('ii.infraccion', 'inf')
.innerJoinAndSelect('ii.institucion', 'i')
.where('i.id_institucion = :id_institucion && inf.id_infraccion = 1', {
id_institucion: institucion.id_institucion,
})
.getOne();
findSinInfraccion(institucion: Institucion): Promise<InstitucionInfraccion> {
return this.institucionInfraccionRepository.findOne({
where: { infraccion: { id_infraccion: 1 }, institucion },
});
}
update(admin: Operador, attrs: Partial<InstitucionInfraccion>) {
update(
admin: Operador,
attrs: Partial<InstitucionInfraccion>,
): Promise<{ message: string }> {
return this.findById(attrs.id_institucion_infraccion)
.then((institucionInfraccion) => {
// Validamos que la institucionInfraccion le pertenezca al operador que
// realiza esta acción
// Validamos que la institucion infraccion pertenezca a la institución del admin
if (
admin.institucion.id_institucion !=
institucionInfraccion.institucion.id_institucion
)
throw new ConflictException(
'No puedes actualizar la información de esta infraccion porque no le pertenece a tu institución.',
'No puedes modificar la información este infracción porque no pertenece a tu institución.',
);
// Asignamos valores enviados al objeto
Object.assign(institucionInfraccion, attrs);

View File

@ -25,7 +25,7 @@ export class InstitucionProgramaService {
return this.programaRepository
.findOne({ where: { programa } })
.then((existePrograma) => {
// Saco error si existe
// Sacamos error si existe
if (existePrograma)
throw new ConflictException('Ya existe este programa.');
// Creamos y guardamos un registro

View File

@ -25,7 +25,7 @@ export class InstitucionTipoCarritoService {
return this.tipoCarritoRepository
.findOne({ where: [{ letra }, { tipo_carrito }] })
.then((existeTipoCarrito) => {
// Saco error si existe
// Sacamos error si existe
if (existeTipoCarrito) {
if (letra === existeTipoCarrito.letra)
throw new ConflictException(

View File

@ -25,7 +25,7 @@ export class InstitucionTipoEntradaService {
return this.tipoEntradaRepository
.findOne({ where: { tipo_entrada } })
.then((existeTipoEntrada) => {
// Saco error si existe
// Sacamos error si existe
if (existeTipoEntrada)
throw new ConflictException('Ya existe este tipo de entrada.');
// Creamos y guardamos un registro

View File

@ -83,7 +83,7 @@ export class InstitucionService {
admin.institucion.id_institucion != institucion.id_institucion
)
throw new ConflictException(
'No puedes actualizar la información de esta institución porque no perteneces a ella.',
'No puedes modificar la información esta institución porque no te pertenece.',
);
// Asignamos valores enviados al objeto
Object.assign(institucion, attrs);

View File

@ -11,7 +11,7 @@ export class MarcaService {
// Buscamos una marca con ese nombre
return this.findByMarca(marca, tipo, false)
.then((existeMarca) => {
// Saco error si existe
// Sacamos error si existe
if (existeMarca) throw new ConflictException('Ya existe esta marca.');
// Creamos y guardamos un registro
return this.repository.save(this.repository.create({ marca, tipo }));

View File

@ -13,7 +13,7 @@ export class ModeloService {
// Buscamos un modelo con ese nombre
return this.findByModelo(modelo, tipo, false)
.then((existeModelo) => {
// Saco error si existe
// Sacamos error si existe
if (existeModelo) throw new ConflictException('Ya existe este modelo.');
// Creamos y guardamos un registro
return this.repository.save(this.repository.create({ modelo, tipo }));

View File

@ -111,7 +111,7 @@ export class PrestamoService {
const prestamo = await this.prestamoInfoByUsuario(usuario);
this.validacionBasicaPrestamo(prestamo);
// Saco error en status de equipo 3
// Sacamos error en status de equipo 3
if (prestamo.equipo.u === usuario.id_usuario) {
if (prestamo.equipo.status.id_status === 3)
throw new ConflictException(
@ -215,7 +215,7 @@ export class PrestamoService {
});
})
.then((existePrestamo) => {
// Saco error si lo encuentra
// Sacamos error si lo encuentra
if (existePrestamo)
throw new ConflictException(
'Este usuario ya tiene un préstamo activo.',

View File

@ -18,7 +18,7 @@ export class TipoUsuarioService {
return this.repository
.findOne({ where: { tipo_usuario } })
.then((existeTipoUsuario) => {
// Saco error si existe
// Sacamos error si existe
if (existeTipoUsuario)
throw new ConflictException('Ya existe este tipo usuario');
// Creamos y guardamos un registro