modulo multa final
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
import { IsNumberString } from 'class-validator';
|
||||
|
||||
export class IdUsuarioDto {
|
||||
@IsNumberString()
|
||||
id_usuario: string;
|
||||
}
|
||||
@@ -1,9 +1,12 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
|
||||
import { PrestamoMinEquipoOutputDto } from '../../../prestamo/dto/output/prestamo-equipo-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { PrestamoEquipoMinOutputDto } from '../../../prestamo/dto/output/prestamo-equipo-min.dto';
|
||||
|
||||
export class MultasEquipoOutputDto {
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@@ -16,9 +19,6 @@ export class MultasEquipoOutputDto {
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
retraso;
|
||||
|
||||
@@ -27,7 +27,7 @@ export class MultasEquipoOutputDto {
|
||||
opeardorMulta;
|
||||
|
||||
@Expose()
|
||||
@Type(() => PrestamoMinEquipoOutputDto)
|
||||
@Type(() => PrestamoEquipoMinOutputDto)
|
||||
prestamo;
|
||||
|
||||
@Expose()
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { PrestamoMinOutputDto } from '../../../prestamo/dto/output/prestamo-min.dto';
|
||||
|
||||
export class MultasMinOutputDto {
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
descripcion;
|
||||
|
||||
@Expose()
|
||||
fecha_fin;
|
||||
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
retraso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => InstitucionInfraccionOutputDto)
|
||||
institucionInfraccion;
|
||||
}
|
||||
@@ -1,9 +1,12 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
|
||||
import { PrestamoMinUsuarioOutputDto } from '../../../prestamo/dto/output/prestamo-usuario-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { PrestamoUsuarioMinOutputDto } from '../../../prestamo/dto/output/prestamo-usuario-min.dto';
|
||||
|
||||
export class MultasUsuarioOutputDto {
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@@ -16,9 +19,6 @@ export class MultasUsuarioOutputDto {
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
retraso;
|
||||
|
||||
@@ -27,7 +27,7 @@ export class MultasUsuarioOutputDto {
|
||||
opeardorMulta;
|
||||
|
||||
@Expose()
|
||||
@Type(() => PrestamoMinUsuarioOutputDto)
|
||||
@Type(() => PrestamoUsuarioMinOutputDto)
|
||||
prestamo;
|
||||
|
||||
@Expose()
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
|
||||
import { PrestamoMinOutputDto } from '../../../prestamo/dto/output/prestamo-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { PrestamoMinOutputDto } from '../../../prestamo/dto/output/prestamo-min.dto';
|
||||
|
||||
export class MultasOutputDto {
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@@ -16,9 +19,6 @@ export class MultasOutputDto {
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
id_multa;
|
||||
|
||||
@Expose()
|
||||
retraso;
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@ import {
|
||||
Entity,
|
||||
JoinColumn,
|
||||
ManyToOne,
|
||||
OneToOne,
|
||||
PrimaryGeneratedColumn,
|
||||
} from 'typeorm';
|
||||
import { InstitucionInfraccion } from '../../institucion-infraccion/entity/institucion-infraccion.entity';
|
||||
|
||||
@@ -2,11 +2,13 @@ import { Controller, Get, Query } from '@nestjs/common';
|
||||
import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { MultaService } from './multa.service';
|
||||
import { IdUsuarioDto } from '../dto/id-usuario.dto';
|
||||
import { IdEquipoPaginaDto } from '../dto/id-equipo-pagina.dto';
|
||||
import { MultasDto } from './dto/input/multas.dto';
|
||||
import { MultasUsuarioDto } from './dto/input/multas-usuario.dto';
|
||||
import { MultasOutputDto } from './dto/output/multas.dto';
|
||||
import { MultasEquipoOutputDto } from './dto/output/multas-equipo.dto';
|
||||
import { MultasMinOutputDto } from './dto/output/multas-min.dto';
|
||||
import { MultasUsuarioOutputDto } from './dto/output/multas-usuario.dto';
|
||||
|
||||
@Controller('multa')
|
||||
@@ -85,6 +87,20 @@ export class MultaController {
|
||||
);
|
||||
}
|
||||
|
||||
@Serealize(MultasMinOutputDto)
|
||||
@Get('multas-usuario-activas')
|
||||
@ApiOperation({
|
||||
description: 'Endpoint que retorna todas las multas de un usuario .',
|
||||
})
|
||||
@ApiQuery({
|
||||
description: 'Id del usuario.',
|
||||
name: 'id_usuario',
|
||||
type: 'string',
|
||||
})
|
||||
multasActivas(@Query() query: IdUsuarioDto) {
|
||||
return this.multaService.findMultasActivas(parseInt(query.id_usuario));
|
||||
}
|
||||
|
||||
// @Get('reporte')
|
||||
// reporte() {}
|
||||
}
|
||||
|
||||
+123
-103
@@ -1,8 +1,7 @@
|
||||
import * as moment from 'moment';
|
||||
import { ConflictException, Injectable } from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { FindOperator, Like, Repository } from 'typeorm';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { Repository } from 'typeorm';
|
||||
import { InstitucionInfraccion } from '../institucion-infraccion/entity/institucion-infraccion.entity';
|
||||
import { Multa } from './entity/multa.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
@@ -64,6 +63,10 @@ export class MultaService {
|
||||
)
|
||||
: null;
|
||||
|
||||
if (prestamo.cancelado_operador || prestamo.cancelado_usuario)
|
||||
throw new ConflictException(
|
||||
'No se puede multar a un usuario con un préstamo que fue cancelado.',
|
||||
);
|
||||
if (!retraso && !institucionInfraccion)
|
||||
throw new ConflictException(
|
||||
'No se mandó ningún motivo para multar a este alumno.',
|
||||
@@ -87,125 +90,142 @@ export class MultaService {
|
||||
return this.repository.save(this.repository.create(data));
|
||||
})
|
||||
.then((_) => {
|
||||
for (let i = 0; prestamo.usuario.instituciones.length; i++)
|
||||
for (let i = 0; prestamo.usuario.instituciones.length; i++) {
|
||||
const institucionUsuario = prestamo.usuario.instituciones[i];
|
||||
|
||||
if (
|
||||
prestamo.usuario.instituciones[i].institucionCarrera.institucion
|
||||
.id_institucion ===
|
||||
institucionInfraccion.institucion.id_institucion
|
||||
institucionUsuario.institucionCarrera.institucion.id_institucion ===
|
||||
operador.institucion.id_institucion
|
||||
) {
|
||||
prestamo.usuario.instituciones[i].multa = true;
|
||||
return this.institucionUsuarioService.update(
|
||||
prestamo.usuario.instituciones[i],
|
||||
);
|
||||
institucionUsuario.multa = true;
|
||||
return this.institucionUsuarioService.update(institucionUsuario);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async findAll(filtros: {
|
||||
pagina: string;
|
||||
id_institucion?: string;
|
||||
usuario?: string;
|
||||
}) {
|
||||
const busqueda: {
|
||||
prestamo: {
|
||||
equipo: { carrito: { modulo: { institucion?: Institucion } } };
|
||||
usuario: { usuario?: FindOperator<string> };
|
||||
};
|
||||
} = {
|
||||
prestamo: { equipo: { carrito: { modulo: {} } }, usuario: {} },
|
||||
};
|
||||
const institucion = filtros.id_institucion
|
||||
? await this.institucionService.findById(parseInt(filtros.id_institucion))
|
||||
: null;
|
||||
|
||||
if (filtros.usuario)
|
||||
busqueda.prestamo.usuario.usuario = Like(filtros.usuario);
|
||||
if (institucion)
|
||||
busqueda.prestamo.equipo.carrito.modulo.institucion = institucion;
|
||||
return this.repository.findAndCount({
|
||||
join: {
|
||||
alias: 'mu',
|
||||
innerJoinAndSelect: {
|
||||
p: 'mu.prestamo',
|
||||
e: 'p.equipo',
|
||||
c: 'e.carrito',
|
||||
m: 'c.modulo',
|
||||
i: 'm.institucion',
|
||||
u: 'p.usuario',
|
||||
ci: 'u.institucionCarrera',
|
||||
ca: 'ci.carrera',
|
||||
n: 'ca.nivel',
|
||||
},
|
||||
},
|
||||
where: busqueda,
|
||||
skip: (parseInt(filtros.pagina) - 1) * 25,
|
||||
take: 25,
|
||||
});
|
||||
}
|
||||
|
||||
findAllByIdEquipo(id_equipo: number, pagina: number) {
|
||||
return this.equipoService.findById(id_equipo).then((equipo) =>
|
||||
this.repository.findAndCount({
|
||||
join: {
|
||||
alias: 'mu',
|
||||
innerJoinAndSelect: {
|
||||
p: 'mu.prestamo',
|
||||
e: 'p.equipo',
|
||||
u: 'p.usuario',
|
||||
ci: 'u.institucionCarrera',
|
||||
ca: 'ci.carrera',
|
||||
n: 'ca.nivel',
|
||||
},
|
||||
},
|
||||
where: { prestamo: { equipo } },
|
||||
skip: (pagina - 1) * 25,
|
||||
take: 25,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
findAllByIdUsuario(id_usuario: number, pagina: number) {
|
||||
return this.usuarioService.findById(id_usuario).then((usuario) =>
|
||||
this.repository.findAndCount({
|
||||
join: {
|
||||
alias: 'mu',
|
||||
innerJoinAndSelect: {
|
||||
p: 'mu.prestamo',
|
||||
e: 'p.equipo',
|
||||
c: 'e.carrito',
|
||||
m: 'c.modulo',
|
||||
i: 'm.institucion',
|
||||
},
|
||||
},
|
||||
where: { prestamo: { usuario } },
|
||||
skip: (pagina - 1) * 25,
|
||||
take: 25,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
desactivarMultas() {
|
||||
const ahora = moment();
|
||||
|
||||
return this.repository.find({ activo: true }).then(async (multas) => {
|
||||
for (let i = 0; i < multas.length; i++)
|
||||
if (ahora.diff(moment(multas[i].fecha_fin)) > 0) {
|
||||
const instituciones = multas[i].prestamo.usuario.instituciones;
|
||||
|
||||
multas[i].activo = false;
|
||||
await this.usuarioService
|
||||
.update(multas[i].prestamo.usuario)
|
||||
.then((_) => this.repository.save(multas[i]));
|
||||
for (let j = 0; multas[i].prestamo.usuario.instituciones.length; j++)
|
||||
await this.repository.save(multas[i]);
|
||||
for (let j = 0; j < instituciones.length; j++) {
|
||||
const institucionUsuario = instituciones[j];
|
||||
|
||||
if (
|
||||
multas[i].prestamo.usuario.instituciones[j].institucionCarrera
|
||||
.institucion.id_institucion ===
|
||||
institucionUsuario.institucionCarrera.institucion
|
||||
.id_institucion ===
|
||||
multas[i].opeardorMulta.institucion.id_institucion
|
||||
) {
|
||||
multas[i].prestamo.usuario.instituciones[j].multa = false;
|
||||
await this.institucionUsuarioService.update(
|
||||
multas[i].prestamo.usuario.instituciones[j],
|
||||
);
|
||||
institucionUsuario.multa = false;
|
||||
await this.institucionUsuarioService.update(institucionUsuario);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
async findAll(filtros: {
|
||||
pagina: string;
|
||||
id_institucion?: string;
|
||||
usuario?: string;
|
||||
}) {
|
||||
const query = this.repository
|
||||
.createQueryBuilder('mu')
|
||||
.innerJoinAndSelect('mu.institucionInfraccion', 'ii')
|
||||
.innerJoinAndSelect('ii.infraccion', 'in')
|
||||
.innerJoinAndSelect('mu.opeardorMulta', 'om')
|
||||
.innerJoinAndSelect('om.tipoUsuario', 'tu')
|
||||
.innerJoinAndSelect('mu.prestamo', 'p')
|
||||
.innerJoinAndSelect('p.equipo', 'e')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.innerJoinAndSelect('p.usuario', 'u')
|
||||
.innerJoinAndSelect('u.instituciones', 'is')
|
||||
.innerJoinAndSelect('is.institucionCarrera', 'ic')
|
||||
.innerJoinAndSelect('ic.institucion', 'in')
|
||||
.innerJoinAndSelect('ic.carrera', 'ca')
|
||||
.innerJoinAndSelect('ca.nivel', 'n')
|
||||
.orderBy('i.institucion')
|
||||
.addOrderBy('u.usuario')
|
||||
.addOrderBy('mu.id_multa', 'DESC')
|
||||
.skip((parseInt(filtros.pagina) - 1) * 25)
|
||||
.take(25);
|
||||
const institucion = filtros.id_institucion
|
||||
? await this.institucionService.findById(parseInt(filtros.id_institucion))
|
||||
: null;
|
||||
|
||||
if (filtros.usuario)
|
||||
query.andWhere('u.usuario LIKE :usuario', {
|
||||
usuario: `%${filtros.usuario}%`,
|
||||
});
|
||||
if (institucion)
|
||||
query.andWhere('i.id_institucion :id_institucion', {
|
||||
id_institucion: institucion.id_institucion,
|
||||
});
|
||||
return query.getManyAndCount();
|
||||
}
|
||||
|
||||
findAllByIdEquipo(id_equipo: number, pagina: number) {
|
||||
return this.equipoService.findById(id_equipo).then((equipo) =>
|
||||
this.repository
|
||||
.createQueryBuilder('mu')
|
||||
.innerJoinAndSelect('mu.institucionInfraccion', 'ii')
|
||||
.innerJoinAndSelect('ii.infraccion', 'in')
|
||||
.innerJoinAndSelect('mu.opeardorMulta', 'om')
|
||||
.innerJoinAndSelect('om.tipoUsuario', 'tu')
|
||||
.innerJoinAndSelect('mu.prestamo', 'p')
|
||||
.innerJoinAndSelect('p.equipo', 'e', 'e.id_equipo = :id_equipo', {
|
||||
id_equipo: equipo.id_equipo,
|
||||
})
|
||||
.innerJoinAndSelect('p.usuario', 'u')
|
||||
.innerJoinAndSelect('u.instituciones', 'is')
|
||||
.innerJoinAndSelect('is.institucionCarrera', 'ic')
|
||||
.innerJoinAndSelect('ic.institucion', 'in')
|
||||
.innerJoinAndSelect('ic.carrera', 'ca')
|
||||
.innerJoinAndSelect('ca.nivel', 'n')
|
||||
.orderBy('mu.id_multa', 'DESC')
|
||||
.skip((pagina - 1) * 25)
|
||||
.take(25),
|
||||
);
|
||||
}
|
||||
|
||||
findAllByIdUsuario(id_usuario: number, pagina: number) {
|
||||
return this.usuarioService.findById(id_usuario).then((usuario) =>
|
||||
this.repository
|
||||
.createQueryBuilder('mu')
|
||||
.innerJoinAndSelect('mu.institucionInfraccion', 'ii')
|
||||
.innerJoinAndSelect('ii.infraccion', 'in')
|
||||
.innerJoinAndSelect('mu.opeardorMulta', 'om')
|
||||
.innerJoinAndSelect('om.tipoUsuario', 'tu')
|
||||
.innerJoinAndSelect('mu.prestamo', 'p')
|
||||
.innerJoinAndSelect('p.equipo', 'e')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.innerJoinAndSelect('p.usuario', 'u', 'u.id_usuario = :id_usuario', {
|
||||
id_usuario: usuario.id_usuario,
|
||||
})
|
||||
.orderBy('mu.id_multa', 'DESC')
|
||||
.skip((pagina - 1) * 25)
|
||||
.take(25),
|
||||
);
|
||||
}
|
||||
|
||||
findMultasActivas(id_usuario: number) {
|
||||
return this.usuarioService.findById(id_usuario).then((usuario) =>
|
||||
this.repository.find({
|
||||
join: { alias: 'mu', innerJoin: { p: 'mu.prestamo' } },
|
||||
where: { activo: true, prestamo: { usuario } },
|
||||
}),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamoMinEquipoOutputDto {
|
||||
export class PrestamoEquipoMinOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
|
||||
@@ -12,9 +12,6 @@ export class PrestamoMinOutputDto {
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
hora_fin;
|
||||
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
|
||||
export class PrestamoMinUsuarioOutputDto {
|
||||
export class PrestamoUsuarioMinOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@@ -14,9 +14,6 @@ export class PrestamoMinUsuarioOutputDto {
|
||||
@Expose()
|
||||
hora_fin;
|
||||
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
|
||||
@@ -8,9 +8,6 @@ export class PrestamoOutputDto {
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/instit
|
||||
import { InstitucionTipoEntradaModule } from '../institucion-tipo-entrada/institucion-tipo-entrada.module';
|
||||
import { OperadorModule } from '../operador/operador.module';
|
||||
import { ModuloModule } from '../modulo/modulo.module';
|
||||
import { MotivoModule } from '../motivo/motivo.module';
|
||||
import { MultaModule } from 'src/multa/multa.module';
|
||||
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
|
||||
import { UsuarioModule } from '../usuario/usuario.module';
|
||||
@@ -25,7 +24,6 @@ import { AppGateway } from '../app.gateway';
|
||||
InstitucionTipoCarritoModule,
|
||||
InstitucionTipoEntradaModule,
|
||||
ModuloModule,
|
||||
MotivoModule,
|
||||
forwardRef(() => MultaModule),
|
||||
OperadorModule,
|
||||
TipoUsuarioModule,
|
||||
|
||||
@@ -19,7 +19,6 @@ import { InstitucionProgramaService } from '../institucion-programa/institucion-
|
||||
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
|
||||
import { InstitucionTipoEntradaService } from '../institucion-tipo-entrada/institucion-tipo-entrada.service';
|
||||
import { ModuloService } from '../modulo/modulo.service';
|
||||
import { MotivoService } from '../motivo/motivo.service';
|
||||
import { MultaService } from '../multa/multa.service';
|
||||
import { OperadorService } from '../operador/operador.service';
|
||||
import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
|
||||
@@ -36,7 +35,6 @@ export class PrestamoService {
|
||||
private institucionTipoCarritoService: InstitucionTipoCarritoService,
|
||||
private institucionTipoEntradaService: InstitucionTipoEntradaService,
|
||||
private moduloService: ModuloService,
|
||||
private motivoService: MotivoService,
|
||||
@Inject(forwardRef(() => MultaService))
|
||||
private multaService: MultaService,
|
||||
private operadorService: OperadorService,
|
||||
@@ -305,7 +303,6 @@ export class PrestamoService {
|
||||
.innerJoinAndSelect('ic.carrera', 'ca')
|
||||
.innerJoinAndSelect('ca.nivel', 'n')
|
||||
.innerJoinAndSelect('p.equipo', 'e')
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
@@ -350,9 +347,11 @@ export class PrestamoService {
|
||||
: null;
|
||||
|
||||
if (filtros.activo) {
|
||||
if (typeof filtros.activo === 'boolean')
|
||||
query.andWhere('p.activo = :activo', { activo: filtros.activo });
|
||||
else
|
||||
if (typeof filtros.activo === 'boolean') {
|
||||
query
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.andWhere('p.activo = :activo', { activo: filtros.activo });
|
||||
} else
|
||||
query.andWhere('p.activo = :activo', {
|
||||
activo: filtros.activo === 'true',
|
||||
});
|
||||
@@ -508,7 +507,7 @@ export class PrestamoService {
|
||||
.then((prestamo) => {
|
||||
if (!prestamo)
|
||||
throw new NotFoundException(
|
||||
'Este usuario no tiene un prestamo activo.',
|
||||
'Este usuario no tiene un préstamo activo.',
|
||||
);
|
||||
return prestamo;
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user