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 institucionDia.institucion.id_institucion
) )
throw new ConflictException( 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 // Validamos que hora_inicio no sea mayor a hora_fin
if ( if (

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -83,7 +83,7 @@ export class InstitucionService {
admin.institucion.id_institucion != institucion.id_institucion admin.institucion.id_institucion != institucion.id_institucion
) )
throw new ConflictException( 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 // Asignamos valores enviados al objeto
Object.assign(institucion, attrs); Object.assign(institucion, attrs);

View File

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

View File

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

View File

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

View File

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