prestamo find all listo

This commit is contained in:
xXpuma99Xx 2022-06-03 08:47:36 -05:00
parent 8bbd2473d2
commit 30e190d35b
4 changed files with 101 additions and 51 deletions

View File

@ -1,19 +1,19 @@
import { Controller, Get, Post, Put } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { PrestamoService } from './prestamo.service';
import {ApiTags} from '@nestjs/swagger'
@Controller('prestamo')
// @ApiTags('prestamo')
@ApiTags('prestamo')
export class PrestamoController {
constructor(private prestamoService: PrestamoService) {}
@Get('activos')
activos() {}
@Put('cancelar_operador')
@Put('cancelar-operador')
cancelarOperador() {}
@Put('cancelar_usuario')
@Put('cancelar-usuario')
cancelarUsuario() {}
@Put('entregar')
@ -22,27 +22,27 @@ export class PrestamoController {
@Get('historial')
historial() {}
@Get('historial_equipo')
@Get('historial-equipo')
historialEquipo() {}
@Get('historial_usuario')
@Get('historial-usuario')
historialUsuario() {}
@Post()
pedir() {}
@Get('prestamo_id_prestamo')
@Get('prestamo-id-prestamo')
prestamoIdPrestamo() {}
@Get('prestamo_id_usuario')
@Get('prestamo-id-usuario')
prestamoIdUsuario() {}
@Get('prestamo_numero_inventario')
@Get('prestamo-numero-inventario')
prestamoNumeroInventario() {}
@Put('regresar')
regresar() {}
@Get('reporte')
reporte() {}
// @Get('reporte')
// reporte() {}
}

View File

@ -6,12 +6,23 @@ import { Prestamo } from './entity/prestamo.entity';
import { CarritoModule } from '../carrito/carrito.module';
import { EquipoModule } from '../equipo/equipo.module';
import { InstitucionModule } from '../institucion/institucion.module';
import { InstitucionCarreraModule } from '../institucion-carrera/institucion-carrera.module';
import { InstitucionTipoCarritoModule } from '../institucion-tipo-carrito/institucion-tipo-carrito.module';
import { ModuloModule } from '../modulo/modulo.module';
import { TipoUsuarioModule } from '../tipo-usuario/tipo-usuario.module';
import { UsuarioModule } from '../usuario/usuario.module';
@Module({
imports: [TypeOrmModule.forFeature([Prestamo])],
imports: [
CarritoModule,
EquipoModule,
InstitucionModule,
InstitucionCarreraModule,
InstitucionTipoCarritoModule,
ModuloModule,
TypeOrmModule.forFeature([Prestamo]),
TipoUsuarioModule,
UsuarioModule,
],
controllers: [PrestamoController],
providers: [PrestamoService],
exports: [PrestamoService],

View File

@ -1,59 +1,98 @@
import { Injectable, NotFoundException } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { FindOperator, Like, Repository } from 'typeorm';
import { Carrera } from '../institucion-carrera/entity/carrera.entity';
import { Carrito } from '../carrito/entity/carrito.entity';
import { Equipo } from '../equipo/entity/equipo.entity';
import { Institucion } from '../institucion/entity/institucion.entity';
import { Modulo } from '../modulo/entity/modulo.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 { Usuario } from '../usuario/entity/usuario.entity';
// import { CarritoService } from '../carrito/carrito.service';
// import { EquipoService } from '../equipo/equipo.service';
// import { InstitucionService } from '../institucion/institucion.service';
// import { ModuloService } from '../modulo/modulo.service';
// import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
// import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
// import { UsuarioService } from '../usuario/usuario.service';
import { CarritoService } from '../carrito/carrito.service';
import { EquipoService } from '../equipo/equipo.service';
import { InstitucionService } from '../institucion/institucion.service';
import { ModuloService } from '../modulo/modulo.service';
import { InstitucionCarreraService } from '../institucion-carrera/institucion-carrera.service';
import { InstitucionTipoCarritoService } from '../institucion-tipo-carrito/institucion-tipo-carrito.service';
import { TipoUsuarioService } from '../tipo-usuario/tipo-usuario.service';
import { UsuarioService } from '../usuario/usuario.service';
@Injectable()
export class PrestamoService {
constructor(
@InjectRepository(Prestamo) private repository: Repository<Prestamo>, // private carreraService: CarreraService, // private carritoService: CarritoService, // private equipoService: EquipoService, // private institucionService: InstitucionService, // private institucionTipoCarritoService: InstitucionTipoCarritoService, // private moduloService: ModuloService, // private tipoUsuarioService: TipoUsuarioService, // private usuarioService: UsuarioService,
@InjectRepository(Prestamo) private repository: Repository<Prestamo>,
private carritoService: CarritoService,
private equipoService: EquipoService,
private institucionService: InstitucionService,
private institucionTipoCarritoService: InstitucionTipoCarritoService,
private moduloService: ModuloService,
private institucionCarreraService: InstitucionCarreraService,
private tipoUsuarioService: TipoUsuarioService,
private usuarioService: UsuarioService,
) {}
findAll(filtros: {
async findAll(filtros: {
pagina: string;
carrito?: string;
equipo?: string;
id_carrera?: number;
id_institucion?: number;
id_modulo?: number;
id_tipo_carrito?: number;
id_tipo_usuario?: number;
// id_prestamo?: number;
pagina: number;
id_carrera?: string;
id_institucion?: string;
id_modulo?: string;
id_tipo_carrito?: string;
id_tipo_usuario?: string;
id_prestamo?: string;
usuario?: string;
}) {
const busqueda: {
carrera?: Carrera;
carrito?: Carrito;
equipo?: Equipo;
institucion?: Institucion;
equipo: {
equipo?: FindOperator<string>;
carrito: {
carrito?: FindOperator<string>;
modulo?: Modulo;
tipoCarrito?: TipoCarrito;
};
};
usuario: {
usuario?: FindOperator<string>;
tipoUsuario?: TipoUsuario;
usuario?: Usuario;
} = {};
// const carrera = this.carreraService.findBy();
// const carrito = this.carritoService.find();
// const equipo = this.equipoService.find();
// const institucion = this.institucionService.find();
// const modulo = this.moduloService.find();
// const tipoCarrito = this.institucionTipoCarritoService.find();
// const tipoUsuario = this.tipoUsuarioService.find();
// const usuario = this.usuarioService.find();
institucionCarrera: { carrera?: Carrera };
};
} = { equipo: { carrito: {} }, usuario: { institucionCarrera: {} } };
const carrera = filtros.id_carrera
? await this.institucionCarreraService.findCarreraByIdCarrera(
parseInt(filtros.id_carrera),
)
: null;
const institucion = filtros.id_institucion
? await this.institucionService.findById(parseInt(filtros.id_institucion))
: null;
const modulo = filtros.id_modulo
? await this.moduloService.findById(parseInt(filtros.id_modulo))
: null;
const tipoCarrito = filtros.id_tipo_carrito
? await this.institucionTipoCarritoService.findTipoCaritoById(
parseInt(filtros.id_tipo_carrito),
)
: null;
const tipoUsuario = filtros.id_tipo_usuario
? await this.tipoUsuarioService.findById(
parseInt(filtros.id_tipo_usuario),
)
: null;
if (filtros.usuario)
busqueda.usuario.usuario = Like(`%${filtros.usuario}%`);
if (filtros.equipo) busqueda.equipo.equipo = Like(`%${filtros.equipo}%`);
if (filtros.carrito)
busqueda.equipo.carrito.carrito = Like(`%${filtros.carrito}%`);
if (carrera) busqueda.usuario.institucionCarrera.carrera = carrera;
if (modulo) busqueda.equipo.carrito.modulo = modulo;
if (institucion) busqueda.equipo.carrito.modulo.institucion = institucion;
if (tipoCarrito) busqueda.equipo.carrito.tipoCarrito = tipoCarrito;
if (tipoUsuario) busqueda.usuario.tipoUsuario = tipoUsuario;
return this.repository.findAndCount({
where: busqueda,
skip: (parseInt(filtros.pagina) - 1) * 25,
take: 25,
});
}
findById(id_prestamo: number) {

View File

@ -42,7 +42,7 @@ export class Usuario {
{ eager: true },
)
@JoinColumn({ name: 'id_institucion_carrera' })
institucionCarrera?: InstitucionCarrera;
institucionCarrera: InstitucionCarrera;
@ManyToOne(() => TipoUsuario, (tipoUsuario) => tipoUsuario.usuarios, {
eager: true,