This commit is contained in:
2022-08-24 03:43:15 -05:00
parent 2a031a7658
commit 385e72e66e
6 changed files with 72 additions and 28 deletions
+2
View File
@@ -43,6 +43,7 @@ import { Carrito } from './carrito/entity/carrito.entity';
import { CarritoMotivo } from './carrito-motivo/entity/carrito-motivo.entity';
import { Dia } from './institucion-dia/entity/dia.entity';
import { Equipo } from './equipo/entity/equipo.entity';
// import { EquipoPrestamoView } from './equipo/entity/views/equipo-prestamo.view';
import { EquipoMotivo } from './equipo-motivo/entity/equipo-motivo.entity';
import { EquipoPrograma } from './equipo-programa/entity/equipo-programa.entity';
import { EquipoTipoEntrada } from './equipo-tipo-entrada/entity/equipo-tipo-entrada.entity';
@@ -102,6 +103,7 @@ import { Usuario } from './usuario/entity/usuario.entity';
CarritoMotivo,
Dia,
Equipo,
// EquipoPrestamoView,
EquipoMotivo,
EquipoPrograma,
EquipoTipoEntrada,
@@ -1,22 +0,0 @@
// import { ViewEntity, ViewColumn, DataSource } from 'typeorm';
// @ViewEntity({
// expression: (dataSource: DataSource) =>
// dataSource
// .createQueryBuilder()
// .select('post.id', 'id')
// .addSelect('post.name', 'name')
// .addSelect('category.name', 'categoryName')
// .from(Post, 'post')
// .leftJoin(Category, 'category', 'category.id = post.categoryId'),
// })
// export class PostCategory {
// @ViewColumn()
// id: number;
// @ViewColumn()
// name: string;
// @ViewColumn()
// categoryName: string;
// }
@@ -0,0 +1,59 @@
import { DataSource, ViewEntity, ViewColumn } from 'typeorm';
import { Carrito } from '../../../carrito/entity/carrito.entity';
import { Equipo } from '../equipo.entity';
import { Institucion } from '../../../institucion/entity/institucion.entity';
import { Modulo } from '../../../modulo/entity/modulo.entity';
import { EquipoPrograma } from '../../../equipo-programa/entity/equipo-programa.entity';
import { EquipoTipoEntrada } from '../../../equipo-tipo-entrada/entity/equipo-tipo-entrada.entity';
import { Programa } from '../../../institucion-programa/entity/programa.entity';
import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carrito.entity';
import { TipoEntrada } from '../../../institucion-tipo-entrada/entity/tipo-entrada.entity';
import { Status } from '../../../status/entity/status.entity';
@ViewEntity({
expression: (dataSource: DataSource) =>
dataSource
.createQueryBuilder()
.from(Equipo, 'e')
.select('e.id_equipo', 'id_equipo')
.addSelect('e.prestado', 'prestado')
.addSelect('c.activo', 'activo')
.addSelect('s.id_status', 'id_status')
.addSelect('m.id_modulo', 'id_modulo')
.addSelect('i.id_institucion', 'id_institucion')
// .addSelect('p.id_programa')
// .addSelect('p.id_programa')
// .addSelect('te.id_tipo_entrada')
// .addSelect('tc.id_tipo_carrito')
.innerJoin(Carrito, 'c', 'c.id_carrito = e.id_carrito')
.innerJoin(EquipoPrograma, 'ps', 'ps.id_equipo = e.id_equipo')
.innerJoin(EquipoTipoEntrada, 'tes', 'tes.id_equipo = e.id_equipo')
.innerJoin(Status, 's', 's.id_status = e.id_status')
// .innerJoin(TipoEntrada, 'te', 'te.id_tipo_entrada = c.id_tipo_entrada')
.innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo')
// .innerJoin(Programa, 'p', 'p.id_programa = e.id_programa')
.innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito')
.innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion')
.where(
'e.prestado = 1 && s.id_status = 1 && c.activo = 1 && m.activo = 1 && i.activo = 1',
),
})
export class EquipoPrestamoView {
@ViewColumn()
id_equipo: number;
@ViewColumn()
prestado: boolean;
@ViewColumn()
activo: boolean;
@ViewColumn()
id_status: number;
@ViewColumn()
id_modulo: number;
@ViewColumn()
id_institucion: number;
}
+2 -1
View File
@@ -4,6 +4,7 @@ import { TypeOrmModule } from '@nestjs/typeorm';
import { EquipoController } from './equipo.controller';
import { EquipoService } from './equipo.service';
import { Equipo } from './entity/equipo.entity';
// import { EquipoPrestamoView } from './entity/views/equipo-prestamo.view';
import { CarritoModule } from '../carrito/carrito.module';
import { EquipoProgramaModule } from '../equipo-programa/equipo-programa.module';
import { InstitucionModule } from '../institucion/institucion.module';
@@ -32,7 +33,7 @@ import { StatusModule } from '../status/status.module';
OperadorModule,
PassportModule.register({ defaultStrategy: 'jwt' }),
StatusModule,
TypeOrmModule.forFeature([Equipo]),
TypeOrmModule.forFeature([Equipo /*, EquipoPrestamoView*/]),
],
controllers: [EquipoController],
providers: [EquipoService],
+5
View File
@@ -10,6 +10,7 @@ import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Carrito } from '../carrito/entity/carrito.entity';
import { Equipo } from './entity/equipo.entity';
// import { EquipoPrestamoView } from './entity/views/equipo-prestamo.view';
import { Institucion } from '../institucion/entity/institucion.entity';
import { Marca } from '../marca/entity/marca.entity';
import { Modelo } from '../modelo/entity/modelo.entity';
@@ -35,6 +36,8 @@ import { StatusService } from '../status/status.service';
export class EquipoService {
constructor(
@InjectRepository(Equipo) private repository: Repository<Equipo>,
// @InjectRepository(EquipoPrestamoView)
// private equipoPrestamoView: Repository<EquipoPrestamoView>,
private carritoService: CarritoService,
@Inject(forwardRef(() => EquipoProgramaService))
private equipoProgramaService: EquipoProgramaService,
@@ -297,7 +300,9 @@ export class EquipoService {
.where('e.prestado = 0')
.orderBy('c.carrito')
.addOrderBy('e.equipo');
// const a = await this.equipoPrestamoView.find();
// console.log(a);
if (programa) {
query.andWhere('ps.id_programa = :id_programa', {
id_programa: programa.id_programa,
+4 -5
View File
@@ -326,6 +326,7 @@ export class PrestamoService {
.innerJoinAndSelect('p.operadorRegreso', 'or')
.innerJoinAndSelect('p.usuario', 'u')
.innerJoinAndSelect('e.carrito', 'c')
.innerJoinAndSelect('e.status', 's')
.innerJoinAndSelect('oe.tipoUsuario', 'tuoe')
.innerJoinAndSelect('or.tipoUsuario', 'tuor')
.innerJoinAndSelect('u.instituciones', 'is')
@@ -346,11 +347,9 @@ export class PrestamoService {
.take(25);
if (filtros.activo) {
if (typeof filtros.activo === 'boolean') {
query
.innerJoinAndSelect('e.status', 's')
.andWhere('p.activo = :activo', { activo: filtros.activo });
} else
if (typeof filtros.activo === 'boolean')
query.andWhere('p.activo = :activo', { activo: filtros.activo });
else
query.andWhere('p.activo = :activo', {
activo: filtros.activo === 'true',
});