modulo prestamo final
This commit is contained in:
@@ -215,6 +215,24 @@ export class EquipoService {
|
||||
programa?: Programa,
|
||||
tipoEntrada?: TipoEntrada,
|
||||
) {
|
||||
const queryReseteo = this.repository
|
||||
.createQueryBuilder('e')
|
||||
.innerJoin('e.carrito', 'c', 'c.activo = 1')
|
||||
.innerJoin('c.modulo', 'm', 'm.id_modulo = :id_modulo AND m.activo = 1', {
|
||||
id_modulo: modulo.id_modulo,
|
||||
})
|
||||
.innerJoin('m.institucion', 'i', 'i.activo = 1')
|
||||
.innerJoin(
|
||||
'c.tipoCarrito',
|
||||
'tc',
|
||||
'tc.id_tipo_carrito = :id_tipo_carrito',
|
||||
{ id_tipo_carrito: tipoCarrito.id_tipo_carrito },
|
||||
)
|
||||
.innerJoin('e.programas', 'ps')
|
||||
.innerJoin('e.tiposEntradas', 'tes')
|
||||
.andWhere('e.prestado = 1 AND e.id_status = 1')
|
||||
.update()
|
||||
.set({ prestado: false });
|
||||
const query = this.repository
|
||||
.createQueryBuilder('e')
|
||||
.innerJoinAndSelect('e.carrito', 'c', 'c.activo = 1')
|
||||
@@ -242,51 +260,29 @@ export class EquipoService {
|
||||
.orderBy('c.carrito')
|
||||
.addOrderBy('e.equipo');
|
||||
|
||||
if (programa)
|
||||
if (programa) {
|
||||
query.andWhere('ps.id_programa = :id_programa', {
|
||||
id_programa: programa.id_programa,
|
||||
});
|
||||
else query.andWhere('ps.id_programa = 1');
|
||||
if (tipoEntrada)
|
||||
queryReseteo.andWhere('ps.id_programa = :id_programa', {
|
||||
id_programa: programa.id_programa,
|
||||
});
|
||||
} else {
|
||||
query.andWhere('ps.id_programa = 1');
|
||||
queryReseteo.andWhere('ps.id_programa = 1');
|
||||
}
|
||||
if (tipoEntrada) {
|
||||
query.andWhere('tes.id_tipo_entrada = :id_tipo_entrada', {
|
||||
id_tipo_entrada: tipoEntrada.id_tipo_entrada,
|
||||
});
|
||||
return query;
|
||||
}
|
||||
|
||||
reseteo(
|
||||
modulo: Modulo,
|
||||
tipoCarrito: TipoCarrito,
|
||||
programa?: Programa,
|
||||
tipoEntrada?: TipoEntrada,
|
||||
) {
|
||||
return this.findEquipo(modulo, tipoCarrito, programa, tipoEntrada)
|
||||
.getCount()
|
||||
.then((n) => {
|
||||
if (n === 0)
|
||||
return this.repository
|
||||
.createQueryBuilder('e')
|
||||
.innerJoin('e.carrito', 'c', 'c.activo = 1')
|
||||
.innerJoin(
|
||||
'c.modulo',
|
||||
'm',
|
||||
'm.id_modulo = :id_modulo AND m.activo = 1',
|
||||
{
|
||||
id_modulo: modulo.id_modulo,
|
||||
},
|
||||
)
|
||||
.innerJoin('m.institucion', 'i', 'i.activo = 1')
|
||||
.innerJoin(
|
||||
'c.tipoCarrito',
|
||||
'tc',
|
||||
'tc.id_tipo_carrito = :id_tipo_carrito',
|
||||
{ id_tipo_carrito: tipoCarrito.id_tipo_carrito },
|
||||
)
|
||||
.andWhere('e.prestado = 1 AND e.id_status = 1')
|
||||
.update()
|
||||
.set({ prestado: false })
|
||||
.execute();
|
||||
queryReseteo.andWhere('tes.id_tipo_entrada = :id_tipo_entrada', {
|
||||
id_tipo_entrada: tipoEntrada.id_tipo_entrada,
|
||||
});
|
||||
}
|
||||
return query.getCount().then(async (n) => {
|
||||
if (n === 0) await queryReseteo.execute();
|
||||
return query.getOne();
|
||||
});
|
||||
}
|
||||
|
||||
reseteoTotal() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { StatusOutputDto } from '../../../status/dto/output/status.dto';
|
||||
|
||||
export class MotivoOutputDto {
|
||||
@@ -13,7 +13,7 @@ export class MotivoOutputDto {
|
||||
motivo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operador;
|
||||
|
||||
@Expose()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
|
||||
import { PrestamoMinEquipoOutputDto } from '../../../prestamo/dto/output/prestamo-min-equipo.dto';
|
||||
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { PrestamoMinEquipoOutputDto } from '../../../prestamo/dto/output/prestamo-equipo-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
|
||||
export class MultasEquipoOutputDto {
|
||||
@Expose()
|
||||
@@ -23,7 +23,7 @@ export class MultasEquipoOutputDto {
|
||||
retraso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
opeardorMulta;
|
||||
|
||||
@Expose()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionInfraccionOutputDto } from '../../../institucion-infraccion/dto/output/institucion-infraccion.dto';
|
||||
import { PrestamoMinUsuarioOutputDto } from '../../../prestamo/dto/output/prestamo-min-usuario.dto';
|
||||
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { PrestamoMinUsuarioOutputDto } from '../../../prestamo/dto/output/prestamo-usuario-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
|
||||
export class MultasUsuarioOutputDto {
|
||||
@Expose()
|
||||
@@ -23,7 +23,7 @@ export class MultasUsuarioOutputDto {
|
||||
retraso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
opeardorMulta;
|
||||
|
||||
@Expose()
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
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 { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
|
||||
export class MultasOutputDto {
|
||||
@Expose()
|
||||
@@ -23,7 +23,7 @@ export class MultasOutputDto {
|
||||
retraso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
opeardorMulta;
|
||||
|
||||
@Expose()
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Expose, Type } from 'class-transformer';
|
||||
import { InstitucionMinOutputDto } from '../../../institucion/dto/output/institucion-min.dto';
|
||||
import { TipoUsuarioOutputDto } from '../../../tipo-usuario/dto/output/tipo-usuario.dto';
|
||||
|
||||
export class OperadorMinsOutputDto {
|
||||
export class OperadorMinOutputDto {
|
||||
@Expose()
|
||||
id_operador;
|
||||
|
||||
|
||||
+3
-3
@@ -2,6 +2,9 @@ import { Expose, Type } from 'class-transformer';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamoMinEquipoOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@@ -14,9 +17,6 @@ export class PrestamoMinEquipoOutputDto {
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => UsuariosOutputDto)
|
||||
usuario;
|
||||
@@ -1,17 +1,14 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamoEquipoOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@Expose()
|
||||
cancelado_operador;
|
||||
|
||||
@Expose()
|
||||
cancelado_usuario;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@@ -28,15 +25,8 @@ export class PrestamoEquipoOutputDto {
|
||||
hora_max_recoger;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
operadorEntrega;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
operadorRegreso;
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => UsuariosOutputDto)
|
||||
|
||||
@@ -3,6 +3,9 @@ import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamoMinOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@@ -15,9 +18,6 @@ export class PrestamoMinOutputDto {
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
|
||||
+3
-3
@@ -2,6 +2,9 @@ import { Expose, Type } from 'class-transformer';
|
||||
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
|
||||
export class PrestamoMinUsuarioOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@@ -14,9 +17,6 @@ export class PrestamoMinUsuarioOutputDto {
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
@@ -1,18 +1,13 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
import { OperadorMinsOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamoOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@Expose()
|
||||
cancelado_operador;
|
||||
|
||||
@Expose()
|
||||
cancelado_usuario;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@@ -28,22 +23,7 @@ export class PrestamoOutputDto {
|
||||
@Expose()
|
||||
hora_max_recoger;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
operadorEntrega;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinsOutputDto)
|
||||
operadorRegreso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => UsuariosOutputDto)
|
||||
usuario;
|
||||
}
|
||||
|
||||
+2
-14
@@ -2,18 +2,9 @@ import { Expose, Type } from 'class-transformer';
|
||||
import { EquiposOutputDto } from '../../../equipo/dto/output/equipos.dto';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamoActivoOutputDto {
|
||||
export class PrestamosActivosOutputDto {
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@Expose()
|
||||
cancelado_operador;
|
||||
|
||||
@Expose()
|
||||
cancelado_usuario;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
@@ -27,9 +18,6 @@ export class PrestamoActivoOutputDto {
|
||||
@Expose()
|
||||
hora_max_recoger;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquiposOutputDto)
|
||||
equipo;
|
||||
@@ -0,0 +1,44 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamosEquipoOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@Expose()
|
||||
cancelado_operador;
|
||||
|
||||
@Expose()
|
||||
cancelado_usuario;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
hora_fin;
|
||||
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
@Expose()
|
||||
hora_max_recoger;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operadorEntrega;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operadorRegreso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => UsuariosOutputDto)
|
||||
usuario;
|
||||
}
|
||||
+13
-4
@@ -1,7 +1,11 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
|
||||
export class PrestamosUsuarioOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
export class PrestamoUsuarioOutputDto {
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@@ -26,10 +30,15 @@ export class PrestamoUsuarioOutputDto {
|
||||
@Expose()
|
||||
hora_max_recoger;
|
||||
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operadorEntrega;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operadorRegreso;
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
import { Expose, Type } from 'class-transformer';
|
||||
import { EquipoMinOutputDto } from '../../../equipo/dto/output/equipo-min.dto';
|
||||
import { OperadorMinOutputDto } from '../../../operador/dto/output/operador-min.dto';
|
||||
import { UsuariosOutputDto } from '../../../usuario/dto/output/usuarios.dto';
|
||||
|
||||
export class PrestamosOutputDto {
|
||||
@Expose()
|
||||
id_prestamo;
|
||||
|
||||
@Expose()
|
||||
activo;
|
||||
|
||||
@Expose()
|
||||
cancelado_operador;
|
||||
|
||||
@Expose()
|
||||
cancelado_usuario;
|
||||
|
||||
@Expose()
|
||||
fecha_entrega;
|
||||
|
||||
@Expose()
|
||||
fecha_inicio;
|
||||
|
||||
@Expose()
|
||||
hora_fin;
|
||||
|
||||
@Expose()
|
||||
hora_inicio;
|
||||
|
||||
@Expose()
|
||||
hora_max_recoger;
|
||||
|
||||
@Expose()
|
||||
@Type(() => EquipoMinOutputDto)
|
||||
equipo;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operadorEntrega;
|
||||
|
||||
@Expose()
|
||||
@Type(() => OperadorMinOutputDto)
|
||||
operadorRegreso;
|
||||
|
||||
@Expose()
|
||||
@Type(() => UsuariosOutputDto)
|
||||
usuario;
|
||||
}
|
||||
@@ -2,7 +2,6 @@ import { Body, Controller, Get, Post, Put, Query } from '@nestjs/common';
|
||||
import { ApiBody, ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
|
||||
import { Serealize } from '../interceptors/serialize.interceptor';
|
||||
import { PrestamoService } from './prestamo.service';
|
||||
|
||||
import { ActivosDto } from './dto/input/activos.dto';
|
||||
import { CancelarUsuarioDto } from './dto/input/cancelar-usuario.dto';
|
||||
import { CancelarOperadorDto } from './dto/input/cancelar-operador.dto';
|
||||
@@ -18,16 +17,18 @@ import { RegresarIdPrestamoDto } from './dto/input/regresar-id-prestamo.dto';
|
||||
import { RegresarNumeroInventarioDto } from './dto/input/regresar-numero-inventario.dto';
|
||||
|
||||
import { PrestamoOutputDto } from './dto/output/prestamo.dto';
|
||||
import { PrestamoActivoOutputDto } from './dto/output/prestamo-activo.dto';
|
||||
import { PrestamoUsuarioOutputDto } from './dto/output/prestamo-usuario.dto';
|
||||
import { PrestamoEquipoOutputDto } from './dto/output/prestamo-equipo.dto';
|
||||
import { PrestamosOutputDto } from './dto/output/prestamos.dto';
|
||||
import { PrestamosActivosOutputDto } from './dto/output/prestamos-activos.dto';
|
||||
import { PrestamosEquipoOutputDto } from './dto/output/prestamos-equipo.dto';
|
||||
import { PrestamosUsuarioOutputDto } from './dto/output/prestamos-usuario.dto';
|
||||
|
||||
@Controller('prestamo')
|
||||
@ApiTags('prestamo')
|
||||
export class PrestamoController {
|
||||
constructor(private prestamoService: PrestamoService) {}
|
||||
|
||||
@Serealize(PrestamoActivoOutputDto)
|
||||
@Serealize(PrestamosActivosOutputDto)
|
||||
@Get('activos')
|
||||
@ApiOperation({
|
||||
description:
|
||||
@@ -130,7 +131,7 @@ export class PrestamoController {
|
||||
return this.prestamoService.entregar(body.id_prestamo, body.id_operador);
|
||||
}
|
||||
|
||||
@Serealize(PrestamoOutputDto)
|
||||
@Serealize(PrestamosOutputDto)
|
||||
@Get('historial')
|
||||
@ApiOperation({
|
||||
description:
|
||||
@@ -205,7 +206,7 @@ export class PrestamoController {
|
||||
return this.prestamoService.findAll(query);
|
||||
}
|
||||
|
||||
@Serealize(PrestamoEquipoOutputDto)
|
||||
@Serealize(PrestamosEquipoOutputDto)
|
||||
@Get('historial-equipo')
|
||||
@ApiOperation({
|
||||
description:
|
||||
@@ -228,7 +229,7 @@ export class PrestamoController {
|
||||
);
|
||||
}
|
||||
|
||||
@Serealize(PrestamoUsuarioOutputDto)
|
||||
@Serealize(PrestamosUsuarioOutputDto)
|
||||
@Get('historial-usuario')
|
||||
@ApiOperation({
|
||||
description:
|
||||
@@ -251,7 +252,7 @@ export class PrestamoController {
|
||||
);
|
||||
}
|
||||
|
||||
@Serealize(PrestamoUsuarioOutputDto)
|
||||
@Serealize(PrestamosUsuarioOutputDto)
|
||||
@Post()
|
||||
@ApiOperation({ description: 'Endpoint que crea un prestamo nuevo.' })
|
||||
@ApiBody({
|
||||
@@ -287,7 +288,7 @@ export class PrestamoController {
|
||||
return this.prestamoService.findById(parseInt(query.id_prestamo));
|
||||
}
|
||||
|
||||
@Serealize(PrestamoUsuarioOutputDto)
|
||||
@Serealize(PrestamoOutputDto)
|
||||
@Get('prestamo-id-usuario')
|
||||
@ApiOperation({
|
||||
description:
|
||||
|
||||
+247
-112
@@ -7,13 +7,11 @@ import {
|
||||
NotFoundException,
|
||||
} from '@nestjs/common';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { FindOperator, Like, Repository } from 'typeorm';
|
||||
import { Repository } from 'typeorm';
|
||||
import { AppGateway } from '../app.gateway';
|
||||
import { Institucion } from '../institucion/entity/institucion.entity';
|
||||
import { Modulo } from '../modulo/entity/modulo.entity';
|
||||
import { Operador } from '../operador/entity/operador.entity';
|
||||
import { Prestamo } from './entity/prestamo.entity';
|
||||
import { TipoCarrito } from '../institucion-tipo-carrito/entity/tipo-carrito.entity';
|
||||
import { TipoUsuario } from '../tipo-usuario/entity/tipo-usuario.entity';
|
||||
import { EquipoService } from '../equipo/equipo.service';
|
||||
import { InstitucionService } from '../institucion/institucion.service';
|
||||
import { InstitucionDiaService } from '../institucion-dia/institucion-dia.service';
|
||||
@@ -26,7 +24,6 @@ import { MultaService } from '../multa/multa.service';
|
||||
import { OperadorService } from '../operador/operador.service';
|
||||
import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
|
||||
import { UsuarioService } from '../usuario/usuario.service';
|
||||
import { AppGateway } from '../app.gateway';
|
||||
|
||||
@Injectable()
|
||||
export class PrestamoService {
|
||||
@@ -106,6 +103,8 @@ export class PrestamoService {
|
||||
id_tipo_entrada?: number,
|
||||
) {
|
||||
const ahora = moment();
|
||||
const mensajeNoPoderPedir = 'No puedes pedir equipos de cómputo porque:';
|
||||
const sistema = await this.operadorService.findById(1);
|
||||
const usuario = await this.usuarioService.findById(id_usuario, true, true);
|
||||
const modulo = await this.moduloService.findById(id_modulo);
|
||||
const tipoCarrito =
|
||||
@@ -120,41 +119,68 @@ export class PrestamoService {
|
||||
id_tipo_entrada,
|
||||
)
|
||||
: null;
|
||||
const institucionDia = await this.institucionDiaService.findInstitucionDia(
|
||||
modulo.institucion,
|
||||
ahora.weekday(),
|
||||
);
|
||||
const horaMax = moment(
|
||||
`${ahora.format('YYYY-MM-DD')} ${institucionDia.hora_fin}`,
|
||||
);
|
||||
const horaMin = moment(
|
||||
`${ahora.format('YYYY-MM-DD')} ${institucionDia.hora_inicio}`,
|
||||
);
|
||||
|
||||
if (ahora.weekday() === 0 || ahora.weekday() === 6)
|
||||
if (!usuario.activo)
|
||||
throw new ConflictException(
|
||||
'No se puede pedir equipo de cómputo los sabados y domingos.',
|
||||
`${mensajeNoPoderPedir} tu cuenta esta desactivada.`,
|
||||
);
|
||||
else {
|
||||
const institucionDia =
|
||||
await this.institucionDiaService.findInstitucionDia(
|
||||
modulo.institucion,
|
||||
ahora.weekday(),
|
||||
);
|
||||
const horaMax = moment(
|
||||
`${ahora.format('YYYY-MM-DD')} ${institucionDia.hora_fin}`,
|
||||
);
|
||||
const horaMin = moment(
|
||||
`${ahora.format('YYYY-MM-DD')} ${institucionDia.hora_inicio}`,
|
||||
);
|
||||
if (!institucionDia.activo)
|
||||
throw new ConflictException(
|
||||
'El día de hoy no se esta realizando préstamos de equipos.',
|
||||
);
|
||||
if (ahora > horaMax)
|
||||
throw new Error('Ya no se puede realizar un préstamo el día de hoy.');
|
||||
if (ahora < horaMin)
|
||||
throw new Error('Aún es muy temprano para realizar un préstamo.');
|
||||
if (ahora.weekday() === 0 || ahora.weekday() === 6)
|
||||
throw new ConflictException('No hay servicio los días sábado y domingo.');
|
||||
for (let i = 0; i < usuario.instituciones.length; i++) {
|
||||
const institucion =
|
||||
usuario.instituciones[i].institucionCarrera.institucion;
|
||||
|
||||
if (institucion.id_institucion === modulo.institucion.id_institucion) {
|
||||
if (!usuario.instituciones[i].activo)
|
||||
throw new ConflictException(
|
||||
`${mensajeNoPoderPedir} tu cuenta esta desactivada en esta institución.`,
|
||||
);
|
||||
if (usuario.instituciones[i].multa)
|
||||
throw new ConflictException(
|
||||
`${mensajeNoPoderPedir} tienes una multa activa.`,
|
||||
);
|
||||
break;
|
||||
}
|
||||
}
|
||||
for (let i = 0; i < usuario.instituciones.length; i++)
|
||||
if (
|
||||
usuario.instituciones[i].institucionCarrera.institucion
|
||||
.id_institucion === modulo.institucion.id_institucion &&
|
||||
usuario.instituciones[i].multa
|
||||
)
|
||||
if (!institucionDia.activo)
|
||||
throw new ConflictException(
|
||||
'El día de hoy no hay servicio de préstamo de equipos.',
|
||||
);
|
||||
if (ahora < horaMin)
|
||||
throw new ConflictException(
|
||||
`El servicio inicia a las ${institucionDia.hora_inicio} el día de hoy.`,
|
||||
);
|
||||
if (ahora > horaMax)
|
||||
throw new ConflictException(
|
||||
`El servicio terminó a las ${institucionDia.hora_fin} el día de hoy.`,
|
||||
);
|
||||
for (let i = 0; i < institucionDia.horasExcepcion.length; i++) {
|
||||
const horaFin = moment(
|
||||
`${ahora.format('YYYY-MM-DD')} ${
|
||||
institucionDia.horasExcepcion[i].hora_fin
|
||||
}`,
|
||||
);
|
||||
const horaInicio = moment(
|
||||
`${ahora.format('YYYY-MM-DD')} ${
|
||||
institucionDia.horasExcepcion[i].hora_inicio
|
||||
}`,
|
||||
);
|
||||
|
||||
if (ahora > horaInicio && ahora < horaFin)
|
||||
throw new ConflictException(
|
||||
'Este usuario tiene una multa activa. No puede pedir equipos de cómputo.',
|
||||
`Se suspendió temporalmente el servicio de ${institucionDia.horasExcepcion[i].hora_inicio} a ${institucionDia.horasExcepcion[i].hora_fin}.`,
|
||||
);
|
||||
}
|
||||
return this.repository
|
||||
.findOne({ activo: true, usuario })
|
||||
.then((existePrestamo) => {
|
||||
@@ -162,18 +188,13 @@ export class PrestamoService {
|
||||
throw new ConflictException(
|
||||
'Este usuario ya tiene un préstamo activo.',
|
||||
);
|
||||
return this.equipoService.reseteo(
|
||||
return this.equipoService.findEquipo(
|
||||
modulo,
|
||||
tipoCarrito,
|
||||
programa,
|
||||
tipoEntrada,
|
||||
);
|
||||
})
|
||||
.then((_) =>
|
||||
this.equipoService
|
||||
.findEquipo(modulo, tipoCarrito, programa, tipoEntrada)
|
||||
.getOne(),
|
||||
)
|
||||
.then(async (equipo) => {
|
||||
if (!equipo)
|
||||
throw new ConflictException(
|
||||
@@ -189,6 +210,8 @@ export class PrestamoService {
|
||||
hora_max_recoger: ahora
|
||||
.add(modulo.institucion.tiempo_recoger, 'm')
|
||||
.toDate(),
|
||||
operadorEntrega: sistema,
|
||||
operadorRegreso: sistema,
|
||||
usuario,
|
||||
}),
|
||||
),
|
||||
@@ -201,11 +224,10 @@ export class PrestamoService {
|
||||
|
||||
async desactivarPrestamos() {
|
||||
const ahora = moment();
|
||||
const sistema = await this.operadorService.findById(1);
|
||||
|
||||
return this.repository
|
||||
.find({
|
||||
join: { alias: 'p', innerJoin: { e: 'p.equipo' } },
|
||||
join: { alias: 'p', innerJoin: { e: 'p.equipo', s: 'e.status' } },
|
||||
where: { activo: true, equipo: { status: { id_status: 2 } } },
|
||||
})
|
||||
.then(async (prestamos) => {
|
||||
@@ -213,7 +235,6 @@ export class PrestamoService {
|
||||
if (ahora.diff(moment(prestamos[i].hora_max_recoger)) > 0) {
|
||||
prestamos[i].activo = false;
|
||||
prestamos[i].cancelado_operador = true;
|
||||
prestamos[i].operadorRegreso = sistema;
|
||||
await this.repository
|
||||
.save(prestamos[i])
|
||||
.then((_) =>
|
||||
@@ -253,7 +274,7 @@ export class PrestamoService {
|
||||
.then((_) => {
|
||||
this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario);
|
||||
return {
|
||||
message: 'Se entregó el equipo de cómputo correctamente.',
|
||||
message: 'Se entregó el equipo de cómputo al usuario.',
|
||||
equipo: prestamo.equipo,
|
||||
};
|
||||
});
|
||||
@@ -275,29 +296,32 @@ export class PrestamoService {
|
||||
id_tipo_usuario?: string;
|
||||
usuario?: string;
|
||||
}) {
|
||||
const busqueda: {
|
||||
activo?: boolean;
|
||||
fechaInicio?: Date;
|
||||
fechaFin?: Date;
|
||||
id_prestamo?: FindOperator<string>;
|
||||
equipo: {
|
||||
equipo?: FindOperator<string>;
|
||||
carrito: {
|
||||
carrito?: FindOperator<string>;
|
||||
modulo?: Modulo | { institucion: Institucion };
|
||||
tipoCarrito?: TipoCarrito;
|
||||
};
|
||||
};
|
||||
usuario: {
|
||||
usuario?: FindOperator<string>;
|
||||
tipoUsuario?: TipoUsuario;
|
||||
};
|
||||
operadorEntrega?: Operador;
|
||||
operadorRegreso?: Operador;
|
||||
} = {
|
||||
equipo: { carrito: {} },
|
||||
usuario: {},
|
||||
};
|
||||
const query = this.repository
|
||||
.createQueryBuilder('p')
|
||||
.innerJoinAndSelect('p.usuario', 'u')
|
||||
.innerJoinAndSelect('u.instituciones', 'is')
|
||||
.innerJoinAndSelect('is.institucionCarrera', 'ic')
|
||||
.innerJoinAndSelect('ic.institucion', 'in')
|
||||
.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')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.innerJoinAndSelect('p.operadorEntrega', 'oe')
|
||||
.innerJoinAndSelect('oe.tipoUsuario', 'tuoe')
|
||||
.innerJoinAndSelect('p.operadorRegreso', 'or')
|
||||
.innerJoinAndSelect('or.tipoUsuario', 'tuor')
|
||||
.orderBy('i.institucion')
|
||||
.addOrderBy('m.modulo')
|
||||
.addOrderBy('tc.tipo_carrito')
|
||||
.addOrderBy('c.carrito')
|
||||
.addOrderBy('e.equipo')
|
||||
.addOrderBy('p.id_prestamo', 'DESC')
|
||||
.skip((parseInt(filtros.pagina) - 1) * 25)
|
||||
.take(25);
|
||||
const institucion = filtros.id_institucion
|
||||
? await this.institucionService.findById(parseInt(filtros.id_institucion))
|
||||
: null;
|
||||
@@ -326,71 +350,161 @@ export class PrestamoService {
|
||||
: null;
|
||||
|
||||
if (filtros.activo) {
|
||||
if (typeof filtros.activo === 'boolean') busqueda.activo = filtros.activo;
|
||||
else busqueda.activo = filtros.activo === 'true';
|
||||
if (typeof filtros.activo === 'boolean')
|
||||
query.andWhere('p.activo = :activo', { activo: filtros.activo });
|
||||
else
|
||||
query.andWhere('p.activo = :activo', {
|
||||
activo: filtros.activo === 'true',
|
||||
});
|
||||
}
|
||||
if (filtros.id_prestamo)
|
||||
query.andWhere('p.id_prestamo LIKE :id_prestamo', {
|
||||
id_prestamo: `%${filtros.id_prestamo}%`,
|
||||
});
|
||||
if (filtros.carrito)
|
||||
busqueda.equipo.carrito.carrito = Like(`%${filtros.carrito}%`);
|
||||
if (filtros.equipo) busqueda.equipo.equipo = Like(`%${filtros.equipo}%`);
|
||||
if (filtros.id_prestamo) busqueda.id_prestamo = Like(filtros.id_prestamo);
|
||||
query.andWhere('c.carrito LIKE :carrito', {
|
||||
carrito: `%${filtros.carrito}%`,
|
||||
});
|
||||
if (filtros.equipo)
|
||||
query.andWhere('e.equipo LIKE :equipo', {
|
||||
equipo: `%${filtros.equipo}%`,
|
||||
});
|
||||
if (filtros.usuario)
|
||||
busqueda.usuario.usuario = Like(`%${filtros.usuario}%`);
|
||||
if (institucion) busqueda.equipo.carrito.modulo = { institucion };
|
||||
if (modulo) busqueda.equipo.carrito.modulo = modulo;
|
||||
if (operadorEntrega) busqueda.operadorEntrega = operadorEntrega;
|
||||
if (operadorRegreso) busqueda.operadorRegreso = operadorRegreso;
|
||||
if (tipoCarrito) busqueda.equipo.carrito.tipoCarrito = tipoCarrito;
|
||||
if (tipoUsuario) busqueda.usuario.tipoUsuario = tipoUsuario;
|
||||
return this.repository.findAndCount({
|
||||
join: {
|
||||
alias: 'p',
|
||||
innerJoinAndSelect: {
|
||||
e: 'p.equipo',
|
||||
u: 'p.usuario',
|
||||
c: 'e.carrito',
|
||||
m: 'c.modulo',
|
||||
tc: 'c.tipoCarrito',
|
||||
},
|
||||
},
|
||||
where: busqueda,
|
||||
skip: (parseInt(filtros.pagina) - 1) * 25,
|
||||
take: 25,
|
||||
});
|
||||
query.andWhere('u.usuario LIKE :usuario', {
|
||||
usuario: `%${filtros.usuario}%`,
|
||||
});
|
||||
if (institucion)
|
||||
query.andWhere('i.id_institucion = :id_institucion', {
|
||||
id_institucion: institucion.id_institucion,
|
||||
});
|
||||
if (modulo)
|
||||
query.andWhere('m.id_modulo = :id_modulo', {
|
||||
id_modulo: modulo.id_modulo,
|
||||
});
|
||||
if (tipoCarrito)
|
||||
query.andWhere('tc.id_tipo_carrito = :id_tipo_carrito', {
|
||||
id_tipo_carrito: tipoCarrito.id_tipo_carrito,
|
||||
});
|
||||
if (tipoUsuario)
|
||||
query.andWhere('tu.id_tipo_usuario = :id_tipo_usuario', {
|
||||
id_tipo_usuario: tipoUsuario.id_tipo_usuario,
|
||||
});
|
||||
if (operadorEntrega)
|
||||
query.andWhere('p.id_operador_entrega = :id_operador_entrega', {
|
||||
id_operador_entrega: operadorEntrega.id_operador,
|
||||
});
|
||||
if (operadorRegreso)
|
||||
query.andWhere('p.id_operador_regreso = :id_operador_regreso', {
|
||||
id_operador_regreso: operadorRegreso.id_operador,
|
||||
});
|
||||
return query.getManyAndCount();
|
||||
}
|
||||
|
||||
findAllByIdUsuario(id_usuario: number, pagina: number) {
|
||||
return this.usuarioService
|
||||
.findById(id_usuario, true, true)
|
||||
.then((usuario) =>
|
||||
this.repository.findAndCount({
|
||||
where: { usuario },
|
||||
skip: (pagina - 1) * 25,
|
||||
take: 25,
|
||||
}),
|
||||
this.repository
|
||||
.createQueryBuilder('p')
|
||||
.innerJoinAndSelect('p.usuario', 'u', 'u.id_usuario = :id_usuario', {
|
||||
id_usuario: usuario.id_usuario,
|
||||
})
|
||||
.innerJoinAndSelect('p.equipo', 'e')
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('p.operadorEntrega', 'oe')
|
||||
.innerJoinAndSelect('oe.tipoUsuario', 'tuoe')
|
||||
.innerJoinAndSelect('p.operadorRegreso', 'or')
|
||||
.innerJoinAndSelect('or.tipoUsuario', 'tuor')
|
||||
.skip((pagina - 1) * 25)
|
||||
.take(25)
|
||||
.getManyAndCount(),
|
||||
);
|
||||
}
|
||||
|
||||
async findAllByIdEquipo(id_equipo: number, pagina: number) {
|
||||
return this.equipoService.findById(id_equipo).then((equipo) =>
|
||||
this.repository.findAndCount({
|
||||
where: { equipo },
|
||||
skip: (pagina - 1) * 25,
|
||||
take: 25,
|
||||
}),
|
||||
this.repository
|
||||
.createQueryBuilder('p')
|
||||
.innerJoinAndSelect('p.usuario', 'u')
|
||||
.innerJoinAndSelect('u.instituciones', 'is')
|
||||
.innerJoinAndSelect('is.institucionCarrera', 'ic')
|
||||
.innerJoinAndSelect('ic.institucion', 'in')
|
||||
.innerJoinAndSelect('ic.carrera', 'ca')
|
||||
.innerJoinAndSelect('ca.nivel', 'n')
|
||||
.innerJoinAndSelect('p.equipo', 'e', 'e.id_equipo = :id_equipo', {
|
||||
id_equipo: equipo.id_equipo,
|
||||
})
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.innerJoinAndSelect('p.operadorEntrega', 'oe')
|
||||
.innerJoinAndSelect('oe.tipoUsuario', 'tuoe')
|
||||
.innerJoinAndSelect('p.operadorRegreso', 'or')
|
||||
.innerJoinAndSelect('or.tipoUsuario', 'tuor')
|
||||
.orderBy('p.id_prestamo', 'DESC')
|
||||
.skip((pagina - 1) * 25)
|
||||
.take(25)
|
||||
.getManyAndCount(),
|
||||
);
|
||||
}
|
||||
|
||||
findById(id_prestamo: number) {
|
||||
return this.repository.findOne({ id_prestamo }).then((prestamo) => {
|
||||
if (!prestamo) throw new NotFoundException('No existe este préstamo.');
|
||||
return prestamo;
|
||||
});
|
||||
return this.repository
|
||||
.createQueryBuilder('p')
|
||||
.innerJoinAndSelect('p.usuario', 'u')
|
||||
.innerJoinAndSelect('u.instituciones', 'is')
|
||||
.innerJoinAndSelect('is.institucionCarrera', 'ic')
|
||||
.innerJoinAndSelect('ic.institucion', 'in')
|
||||
.innerJoinAndSelect('ic.carrera', 'ca')
|
||||
.innerJoinAndSelect('ca.nivel', 'n')
|
||||
.innerJoinAndSelect('p.equipo', 'e')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.innerJoinAndSelect('e.tiposEntradas', 'tes')
|
||||
.innerJoinAndSelect('tes.tipoEntrada', 'te')
|
||||
.innerJoinAndSelect('e.programas', 'ps')
|
||||
.innerJoinAndSelect('ps.programa', 'pr')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.where('p.id_prestamo = :id_prestamo', {
|
||||
id_prestamo,
|
||||
})
|
||||
.getOne()
|
||||
.then((prestamo) => {
|
||||
if (!prestamo) throw new NotFoundException('No existe este préstamo.');
|
||||
return prestamo;
|
||||
});
|
||||
}
|
||||
|
||||
findByIdUsuario(id_usuario: number) {
|
||||
return this.usuarioService
|
||||
.findById(id_usuario, true, true)
|
||||
.then((usuario) => this.repository.findOne({ usuario, activo: true }))
|
||||
.then((usuario) =>
|
||||
this.repository
|
||||
.createQueryBuilder('p')
|
||||
.innerJoinAndSelect('p.usuario', 'u', 'u.id_usuario = :id_usuario', {
|
||||
id_usuario: usuario.id_usuario,
|
||||
})
|
||||
.innerJoinAndSelect('p.equipo', 'e')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.innerJoinAndSelect('e.tiposEntradas', 'tes')
|
||||
.innerJoinAndSelect('tes.tipoEntrada', 'te')
|
||||
.innerJoinAndSelect('e.programas', 'ps')
|
||||
.innerJoinAndSelect('ps.programa', 'pr')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.where('p.activo = 1')
|
||||
.getOne(),
|
||||
)
|
||||
.then((prestamo) => {
|
||||
if (!prestamo)
|
||||
throw new NotFoundException(
|
||||
@@ -411,11 +525,30 @@ export class PrestamoService {
|
||||
|
||||
return this.equipoService
|
||||
.findByNumeroInventario(institucion, numero_inventario)
|
||||
.then((equipo) => this.repository.findOne({ equipo, activo: true }))
|
||||
.then((equipo) =>
|
||||
this.repository
|
||||
.createQueryBuilder('p')
|
||||
.innerJoinAndSelect('p.usuario', 'u')
|
||||
.innerJoinAndSelect('u.instituciones', 'is')
|
||||
.innerJoinAndSelect('is.institucionCarrera', 'ic')
|
||||
.innerJoinAndSelect('ic.institucion', 'in')
|
||||
.innerJoinAndSelect('ic.carrera', 'ca')
|
||||
.innerJoinAndSelect('ca.nivel', 'n')
|
||||
.innerJoinAndSelect('p.equipo', 'e', 'e.id_equipo = :id_equipo', {
|
||||
id_equipo: equipo.id_equipo,
|
||||
})
|
||||
.innerJoinAndSelect('e.status', 's')
|
||||
.innerJoinAndSelect('e.carrito', 'c')
|
||||
.innerJoinAndSelect('c.modulo', 'm')
|
||||
.innerJoinAndSelect('m.institucion', 'i')
|
||||
.innerJoinAndSelect('c.tipoCarrito', 'tc')
|
||||
.where('p.activo = 1')
|
||||
.getOne(),
|
||||
)
|
||||
.then((prestamo) => {
|
||||
if (!prestamo)
|
||||
throw new NotFoundException(
|
||||
'No existe este un préstamo activo con este equipo de cómputo.',
|
||||
'No existe un préstamo activo con este equipo de cómputo.',
|
||||
);
|
||||
return prestamo;
|
||||
});
|
||||
@@ -435,7 +568,9 @@ export class PrestamoService {
|
||||
|
||||
this.validacionBasicaPrestamo(prestamo);
|
||||
if (prestamo.equipo.status.id_status === 2)
|
||||
throw new ConflictException('Aun no se entrega el equipo al usuario.');
|
||||
throw new ConflictException(
|
||||
'Aún no se ha entregado el equipo de cómputo al usuario.',
|
||||
);
|
||||
if (id_institucion_infraccion && !descripcion)
|
||||
throw new ConflictException('No se mandó la descripción de lo ocurrido.');
|
||||
prestamo.activo = false;
|
||||
|
||||
@@ -173,11 +173,25 @@ export class UsuarioService {
|
||||
}
|
||||
|
||||
findById(id_usuario: number, validarNoExiste = true, password = false) {
|
||||
return this.repository.findOne({ id_usuario }).then((usuario) => {
|
||||
if (validarNoExiste && (!usuario || (password && !usuario.password)))
|
||||
throw new NotFoundException('No existe este usuario.');
|
||||
return usuario;
|
||||
});
|
||||
return this.repository
|
||||
.findOne({
|
||||
join: {
|
||||
alias: 'u',
|
||||
innerJoinAndSelect: {
|
||||
is: 'u.instituciones',
|
||||
ic: 'is.institucionCarrera',
|
||||
c: 'ic.carrera',
|
||||
i: 'ic.institucion',
|
||||
n: 'c.nivel',
|
||||
},
|
||||
},
|
||||
where: { id_usuario },
|
||||
})
|
||||
.then((usuario) => {
|
||||
if (validarNoExiste && (!usuario || (password && !usuario.password)))
|
||||
throw new NotFoundException('No existe este usuario.');
|
||||
return usuario;
|
||||
});
|
||||
}
|
||||
|
||||
findByUsuario(usuario: string, validarNoExiste = true, password = false) {
|
||||
|
||||
Reference in New Issue
Block a user