diff --git a/src/app.module.ts b/src/app.module.ts index 3b79de4..5bb9244 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -70,7 +70,10 @@ import { TipoEntrada } from './institucion-tipo-entrada/entity/tipo-entrada.enti import { TipoUsuario } from './tipo-usuario/entity/tipo-usuario.entity'; import { Usuario } from './usuario/entity/usuario.entity'; +import { FullInformacionEquipoView } from './equipo/entity/views/full-informacion-equipo.view'; import { InformacionEquipoView } from './equipo/entity/views/informacion-equipo.view'; +import { FullInformacionPrestamoView } from './prestamo/entity/views/full-informacion-prestamo.view'; +import { InformacionPrestamoView } from './prestamo/entity/views/informacion-prestamo.view'; import { InformacionEquipoProgramaView } from './equipo-programa/entity/views/informacion-equipo-programa.view'; import { InformacionEquipoTipoEntradaView } from './equipo-tipo-entrada/entity/views/informacion-equipo-tipo-entrada.view'; import { InformacionOperadorView } from './operador/entity/views/informacion-operador.view'; @@ -135,7 +138,10 @@ import { ValidarUsuarioModule } from './validar-usuario/validar-usuario.module'; TipoEntrada, TipoUsuario, Usuario, + FullInformacionEquipoView, InformacionEquipoView, + FullInformacionPrestamoView, + InformacionPrestamoView, InformacionEquipoProgramaView, InformacionEquipoTipoEntradaView, InformacionOperadorView, diff --git a/src/equipo/entity/views/full-informacion-equipo.view.ts b/src/equipo/entity/views/full-informacion-equipo.view.ts new file mode 100644 index 0000000..e54c4a5 --- /dev/null +++ b/src/equipo/entity/views/full-informacion-equipo.view.ts @@ -0,0 +1,116 @@ +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 { Status } from '../../../status/entity/status.entity'; +import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carrito.entity'; +import { TipoEntrada } from '../../../institucion-tipo-entrada/entity/tipo-entrada.entity'; + +@ViewEntity({ + expression: (dataSource: DataSource) => + dataSource + .createQueryBuilder() + .select('e.id_equipo', 'id_equipo') + .addSelect('e.equipo', 'equipo') + .addSelect('e.id_carrito', 'id_carrito') + .addSelect('e.id_status', 'id_status') + .addSelect('e.numero_inventario', 'numero_inventario') + .addSelect('e.numero_serie', 'numero_serie') + .addSelect('e.prestado', 'prestado') + .addSelect('c.activo', 'activo_carrito') + .addSelect('c.carrito', 'carrito') + .addSelect('c.id_modulo', 'id_modulo') + .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') + .addSelect('s.status', 'status') + .addSelect('ps.id_programa', 'id_programa') + .addSelect('tes.id_tipo_entrada', 'id_tipo_entrada') + .addSelect('m.activo', 'activo_modulo') + .addSelect('m.id_institucion', 'id_institucion') + .addSelect('m.modulo', 'modulo') + .addSelect('tc.tipo_carrito', 'tipo_carrito') + .addSelect('p.programa', 'programa') + .addSelect('te.tipo_entrada', 'tipo_entrada') + .addSelect('i.activo', 'activo_institucion') + .addSelect('i.institucion', 'institucion') + .from(Equipo, 'e') + .innerJoin(Carrito, 'c', 'c.id_carrito = e.id_carrito') + .innerJoin(Status, 's', 's.id_status = e.id_status') + .innerJoin(EquipoPrograma, 'ps', 'ps.id_equipo = e.id_equipo') + .innerJoin(EquipoTipoEntrada, 'tes', 'tes.id_equipo = e.id_equipo') + .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') + .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito') + .innerJoin(Programa, 'p', 'p.id_programa = ps.id_programa') + .innerJoin(TipoEntrada, 'te', 'te.id_tipo_entrada = tes.id_tipo_entrada') + .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion'), +}) +export class FullInformacionEquipoView { + @ViewColumn() + id_equipo: number; + + @ViewColumn() + activo_carrito: boolean; + + @ViewColumn() + activo_institucion: boolean; + + @ViewColumn() + activo_modulo: boolean; + + @ViewColumn() + carrito: string; + + @ViewColumn() + equipo: string; + + @ViewColumn() + id_carrito: number; + + @ViewColumn() + id_institucion: number; + + @ViewColumn() + id_modulo: number; + + @ViewColumn() + id_programa: number; + + @ViewColumn() + id_tipo_carrito: number; + + @ViewColumn() + id_tipo_entrada: number; + + @ViewColumn() + id_status: number; + + @ViewColumn() + institucion: string; + + @ViewColumn() + modulo: string; + + @ViewColumn() + numero_inventario: string; + + @ViewColumn() + numero_serie: string; + + @ViewColumn() + prestado: boolean; + + @ViewColumn() + programa: string; + + @ViewColumn() + status: string; + + @ViewColumn() + tipo_carrito: string; + + @ViewColumn() + tipo_entrada: string; +} diff --git a/src/equipo/entity/views/informacion-equipo.view.ts b/src/equipo/entity/views/informacion-equipo.view.ts index 1f59385..dcded71 100644 --- a/src/equipo/entity/views/informacion-equipo.view.ts +++ b/src/equipo/entity/views/informacion-equipo.view.ts @@ -3,10 +3,6 @@ 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 { TipoEntrada } from '../../../institucion-tipo-entrada/entity/tipo-entrada.entity'; @ViewEntity({ expression: (dataSource: DataSource) => @@ -25,18 +21,10 @@ import { TipoEntrada } from '../../../institucion-tipo-entrada/entity/tipo-entra .addSelect('m.activo', 'activo_modulo') .addSelect('m.id_institucion', 'id_institucion') .addSelect('i.activo', 'activo_institucion') - // .addSelect('p.id_programa') - // .addSelect('p.id_programa') - // .addSelect('te.id_tipo_entrada') - // .addSelect('tc.id_tipo_carrito') .from(Equipo, 'e') .innerJoin(Carrito, 'c', 'c.id_carrito = e.id_carrito') .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion'), - // .innerJoin(EquipoPrograma, 'ps', 'ps.id_equipo = e.id_equipo') - // .innerJoin(EquipoTipoEntrada, 'tes', 'tes.id_equipo = e.id_equipo') - // .innerJoin(TipoEntrada, 'te', 'te.id_tipo_entrada = c.id_tipo_entrada') - // .innerJoin(Programa, 'p', 'p.id_programa = e.id_programa') }) export class InformacionEquipoView { @ViewColumn() @@ -57,15 +45,15 @@ export class InformacionEquipoView { @ViewColumn() equipo: string; - @ViewColumn() - id_modulo: number; - @ViewColumn() id_carrito: number; @ViewColumn() id_institucion: number; + @ViewColumn() + id_modulo: number; + @ViewColumn() id_tipo_carrito: number; diff --git a/src/equipo/equipo.module.ts b/src/equipo/equipo.module.ts index 00af674..826b5a9 100644 --- a/src/equipo/equipo.module.ts +++ b/src/equipo/equipo.module.ts @@ -5,6 +5,7 @@ import { EquipoController } from './equipo.controller'; import { EquipoService } from './equipo.service'; import { Equipo } from './entity/equipo.entity'; import { InformacionEquipoView } from './entity/views/informacion-equipo.view'; +import { FullInformacionEquipoView } from './entity/views/full-informacion-equipo.view'; import { CarritoModule } from '../carrito/carrito.module'; import { EquipoProgramaModule } from '../equipo-programa/equipo-programa.module'; import { InstitucionModule } from '../institucion/institucion.module'; @@ -34,7 +35,11 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module' OperadorModule, PassportModule.register({ defaultStrategy: 'jwt' }), StatusModule, - TypeOrmModule.forFeature([Equipo, InformacionEquipoView]), + TypeOrmModule.forFeature([ + Equipo, + FullInformacionEquipoView, + InformacionEquipoView, + ]), ValidarUsuarioModule, ], controllers: [EquipoController], diff --git a/src/prestamo/entity/views/full-informacion-prestamo.view.ts b/src/prestamo/entity/views/full-informacion-prestamo.view.ts new file mode 100644 index 0000000..4ae31a1 --- /dev/null +++ b/src/prestamo/entity/views/full-informacion-prestamo.view.ts @@ -0,0 +1,163 @@ +import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; +import { Carrito } from '../../../carrito/entity/carrito.entity'; +import { Prestamo } from '../prestamo.entity'; +import { Equipo } from '../../../equipo/entity/equipo.entity'; +import { Institucion } from '../../../institucion/entity/institucion.entity'; +import { Modulo } from '../../../modulo/entity/modulo.entity'; +import { Operador } from '../../../operador/entity/operador.entity'; +import { Status } from '../../../status/entity/status.entity'; +import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carrito.entity'; +import { Usuario } from '../../../usuario/entity/usuario.entity'; + +@ViewEntity({ + expression: (dataSource: DataSource) => + dataSource + .createQueryBuilder() + .select('p.id_prestamo', 'id_prestamo') + .addSelect('p.activo', 'activo_prestamo') + .addSelect('p.cancelado_operador', 'cancelado_operador') + .addSelect('p.cancelado_usuario', 'cancelado_usuario') + .addSelect('p.fecha_entrega', 'fecha_entrega') + .addSelect('p.fecha_inicio', 'fecha_inicio') + .addSelect('p.hora_fin', 'hora_fin') + .addSelect('p.hora_inicio', 'hora_inicio') + .addSelect('p.hora_max_recoger', 'hora_max_recoger') + .addSelect('p.id_equipo', 'id_equipo') + .addSelect('p.id_operador_entrega', 'id_operador_entrega') + .addSelect('p.id_operador_regreso', 'id_operador_regreso') + .addSelect('p.id_usuario', 'id_usuario') + .addSelect('e.equipo', 'equipo') + .addSelect('e.id_carrito', 'id_carrito') + .addSelect('e.id_status', 'id_status') + .addSelect('e.numero_inventario', 'numero_inventario') + .addSelect('e.numero_serie', 'numero_serie') + .addSelect('e.prestado', 'prestado') + .addSelect('oe.operador', 'operadorEntrega') + .addSelect('or.operador', 'operadorRegreso') + .addSelect('u.usuario', 'usuario') + .addSelect('u.nombre', 'nombre') + .addSelect('c.activo', 'activo_carrito') + .addSelect('c.carrito', 'carrito') + .addSelect('c.id_modulo', 'id_modulo') + .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') + .addSelect('s.status', 'status') + .addSelect('m.activo', 'activo_modulo') + .addSelect('m.id_institucion', 'id_institucion') + .addSelect('m.modulo', 'modulo') + .addSelect('tc.tipo_carrito', 'tipo_carrito') + .addSelect('i.activo', 'activo_institucion') + .addSelect('i.institucion', 'institucion') + .from(Prestamo, 'p') + .innerJoin(Equipo, 'e', 'e.id_equipo = p.id_equipo') + .innerJoin(Operador, 'oe', 'oe.id_operador = p.id_operador_entrega') + .innerJoin(Operador, 'or', 'or.id_operador = p.id_operador_regreso') + .innerJoin(Usuario, 'u', 'u.id_usuario = p.id_usuario') + .innerJoin(Carrito, 'c', 'c.id_carrito = e.id_carrito') + .innerJoin(Status, 's', 's.id_status = e.id_status') + .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') + .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito') + .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion'), +}) +export class FullInformacionPrestamoView { + @ViewColumn() + id_prestamo: number; + + @ViewColumn() + activo_carrito: boolean; + + @ViewColumn() + activo_institucion: boolean; + + @ViewColumn() + activo_modulo: boolean; + + @ViewColumn() + activo_prestamo: boolean; + + @ViewColumn() + cancelado_operador: boolean; + + @ViewColumn() + cancelado_usuario: boolean; + + @ViewColumn() + carrito: string; + + @ViewColumn() + equipo: string; + + @ViewColumn() + fecha_entrega: Date; + + @ViewColumn() + fecha_inicio: Date; + + @ViewColumn() + hora_fin: Date; + + @ViewColumn() + hora_inicio: Date; + + @ViewColumn() + hora_max_recoger: Date; + + @ViewColumn() + id_carrito: number; + + @ViewColumn() + id_equipo: number; + + @ViewColumn() + id_institucion: number; + + @ViewColumn() + id_modulo: number; + + @ViewColumn() + id_operador_entrega: number; + + @ViewColumn() + id_operador_regreso: number; + + @ViewColumn() + id_status: number; + + @ViewColumn() + id_tipo_carrito: number; + + @ViewColumn() + id_usuario: number; + + @ViewColumn() + institucion: string; + + @ViewColumn() + modulo: string; + + @ViewColumn() + nombre: string; + + @ViewColumn() + numero_inventario: string; + + @ViewColumn() + numero_serie: string; + + @ViewColumn() + operadorEntrega: string; + + @ViewColumn() + operadorRegreso: string; + + @ViewColumn() + prestado: boolean; + + @ViewColumn() + status: string; + + @ViewColumn() + tipo_carrito: string; + + @ViewColumn() + usuario: string; +} diff --git a/src/prestamo/entity/views/informacion-prestamo.view.ts b/src/prestamo/entity/views/informacion-prestamo.view.ts new file mode 100644 index 0000000..287d173 --- /dev/null +++ b/src/prestamo/entity/views/informacion-prestamo.view.ts @@ -0,0 +1,107 @@ +import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; +import { Carrito } from '../../../carrito/entity/carrito.entity'; +import { Prestamo } from '../prestamo.entity'; +import { Equipo } from '../../../equipo/entity/equipo.entity'; +import { Institucion } from '../../../institucion/entity/institucion.entity'; +import { Modulo } from '../../../modulo/entity/modulo.entity'; +import { Operador } from '../../../operador/entity/operador.entity'; +import { Status } from '../../../status/entity/status.entity'; +import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carrito.entity'; +import { Usuario } from '../../../usuario/entity/usuario.entity'; + +@ViewEntity({ + expression: (dataSource: DataSource) => + dataSource + .createQueryBuilder() + .select('p.id_prestamo', 'id_prestamo') + .addSelect('p.activo', 'activo_prestamo') + .addSelect('p.cancelado_operador', 'cancelado_operador') + .addSelect('p.cancelado_usuario', 'cancelado_usuario') + .addSelect('p.fecha_entrega', 'fecha_entrega') + .addSelect('p.fecha_inicio', 'fecha_inicio') + .addSelect('p.hora_fin', 'hora_fin') + .addSelect('p.hora_inicio', 'hora_inicio') + .addSelect('p.hora_max_recoger', 'hora_max_recoger') + .addSelect('p.id_equipo', 'id_equipo') + .addSelect('p.id_operador_entrega', 'id_operador_entrega') + .addSelect('p.id_operador_regreso', 'id_operador_regreso') + .addSelect('p.id_usuario', 'id_usuario') + .addSelect('e.id_carrito', 'id_carrito') + .addSelect('e.id_status', 'id_status') + .addSelect('e.numero_inventario', 'numero_inventario') + .addSelect('u.usuario', 'usuario') + .addSelect('c.id_modulo', 'id_modulo') + .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') + .addSelect('m.id_institucion', 'id_institucion') + .from(Prestamo, 'p') + .innerJoin(Equipo, 'e', 'e.id_equipo = p.id_equipo') + .innerJoin(Operador, 'oe', 'oe.id_operador = p.id_operador_entrega') + .innerJoin(Operador, 'or', 'or.id_operador = p.id_operador_regreso') + .innerJoin(Usuario, 'u', 'u.id_usuario = p.id_usuario') + .innerJoin(Carrito, 'c', 'c.id_carrito = e.id_carrito') + .innerJoin(Status, 's', 's.id_status = e.id_status') + .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') + .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito') + .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion'), +}) +export class InformacionPrestamoView { + @ViewColumn() + id_prestamo: number; + + @ViewColumn() + activo_prestamo: boolean; + + @ViewColumn() + cancelado_operador: boolean; + + @ViewColumn() + cancelado_usuario: boolean; + + @ViewColumn() + fecha_entrega: Date; + + @ViewColumn() + fecha_inicio: Date; + + @ViewColumn() + hora_fin: Date; + + @ViewColumn() + hora_inicio: Date; + + @ViewColumn() + hora_max_recoger: Date; + + @ViewColumn() + id_carrito: number; + + @ViewColumn() + id_equipo: number; + + @ViewColumn() + id_institucion: number; + + @ViewColumn() + id_modulo: number; + + @ViewColumn() + id_operador_entrega: number; + + @ViewColumn() + id_operador_regreso: number; + + @ViewColumn() + id_status: number; + + @ViewColumn() + id_tipo_carrito: number; + + @ViewColumn() + id_usuario: number; + + @ViewColumn() + numero_inventario: string; + + @ViewColumn() + usuario: string; +} diff --git a/src/prestamo/prestamo.module.ts b/src/prestamo/prestamo.module.ts index a59d8a3..c13b19b 100644 --- a/src/prestamo/prestamo.module.ts +++ b/src/prestamo/prestamo.module.ts @@ -5,6 +5,8 @@ import { AppGateway } from '../app.gateway'; import { PrestamoController } from './prestamo.controller'; import { PrestamoService } from './prestamo.service'; import { Prestamo } from './entity/prestamo.entity'; +import { FullInformacionPrestamoView } from './entity/views/full-informacion-prestamo.view'; +import { InformacionPrestamoView } from './entity/views/informacion-prestamo.view'; import { EquipoModule } from '../equipo/equipo.module'; import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionDiaModule } from '../institucion-dia/institucion-dia.module'; @@ -30,7 +32,11 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module' forwardRef(() => MultaModule), OperadorModule, PassportModule.register({ defaultStrategy: 'jwt' }), - TypeOrmModule.forFeature([Prestamo]), + TypeOrmModule.forFeature([ + Prestamo, + FullInformacionPrestamoView, + InformacionPrestamoView, + ]), TipoUsuarioModule, UsuarioModule, ValidarUsuarioModule,