diff --git a/src/app.module.ts b/src/app.module.ts index 5bb9244..3e3d448 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -74,6 +74,8 @@ import { FullInformacionEquipoView } from './equipo/entity/views/full-informacio 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 { FullInformacionMultaView } from './multa/entity/views/full-informacion-multa.view'; +import { InformacionMultaView } from './multa/entity/views/informacion-multa.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'; @@ -142,6 +144,8 @@ import { ValidarUsuarioModule } from './validar-usuario/validar-usuario.module'; InformacionEquipoView, FullInformacionPrestamoView, InformacionPrestamoView, + FullInformacionMultaView, + InformacionMultaView, InformacionEquipoProgramaView, InformacionEquipoTipoEntradaView, InformacionOperadorView, diff --git a/src/multa/entity/views/full-informacion-multa.view.ts b/src/multa/entity/views/full-informacion-multa.view.ts new file mode 100644 index 0000000..8dddd8e --- /dev/null +++ b/src/multa/entity/views/full-informacion-multa.view.ts @@ -0,0 +1,94 @@ +import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; +import { Infraccion } from '../../../institucion-infraccion/entity/infraccion.entity'; +import { Institucion } from '../../../institucion/entity/institucion.entity'; +import { InstitucionInfraccion } from '../../../institucion-infraccion/entity/institucion-infraccion.entity'; +import { Multa } from '../multa.entity'; +import { Operador } from '../../../operador/entity/operador.entity'; +import { Prestamo } from '../../../prestamo/entity/prestamo.entity'; +import { Usuario } from '../../../usuario/entity/usuario.entity'; + +@ViewEntity({ + expression: (dataSource: DataSource) => + dataSource + .createQueryBuilder() + .select('mu.id_multa', 'id_multa') + .addSelect('mu.activo', 'activo') + .addSelect('mu.descripcion', 'descripcion') + .addSelect('mu.fecha_fin', 'fecha_fin') + .addSelect('mu.fecha_inicio', 'fecha_inicio') + .addSelect('mu.id_institucion_infraccion', 'id_institucion_infraccion') + .addSelect('mu.id_operador', 'id_operador') + .addSelect('mu.id_prestamo', 'id_prestamo') + .addSelect('mu.retraso', 'retraso') + .addSelect('ii.id_infraccion', 'id_infraccion') + .addSelect('om.id_institucion', 'id_institucion') + .addSelect('om.operador', 'operador') + .addSelect('p.id_usuario', 'id_usuario') + .addSelect('inf.infraccion', 'infraccion') + .addSelect('i.institucion', 'institucion') + .addSelect('u.usuario', 'usuario') + .addSelect('u.nombre', 'nombre') + .from(Multa, 'mu') + .innerJoin( + InstitucionInfraccion, + 'ii', + 'ii.id_institucion_infraccion = mu.id_institucion_infraccion', + ) + .innerJoin(Operador, 'om', 'om.id_operador = mu.id_operador') + .innerJoin(Prestamo, 'p', 'p.id_prestamo = mu.id_prestamo') + .innerJoin(Infraccion, 'inf', 'inf.id_infraccion = ii.id_infraccion') + .innerJoin(Usuario, 'u', 'u.id_usuario = p.id_usuario') + .innerJoin(Institucion, 'i', 'i.id_institucion = om.id_institucion'), +}) +export class FullInformacionMultaView { + @ViewColumn() + id_multa: number; + + @ViewColumn() + activo: boolean; + + @ViewColumn() + descripcion: string; + + @ViewColumn() + fecha_fin: Date; + + @ViewColumn() + fecha_inicio: Date; + + @ViewColumn() + id_institucion: number; + + @ViewColumn() + id_infraccion: number; + + @ViewColumn() + id_institucion_infraccion: number; + + @ViewColumn() + id_operador: number; + + @ViewColumn() + id_prestamo: number; + + @ViewColumn() + id_usuario: number; + + @ViewColumn() + infraccion: string; + + @ViewColumn() + institucion: string; + + @ViewColumn() + nombre: string; + + @ViewColumn() + operador: string; + + @ViewColumn() + retraso: boolean; + + @ViewColumn() + usuario: string; +} diff --git a/src/multa/entity/views/informacion-multa.view.ts b/src/multa/entity/views/informacion-multa.view.ts new file mode 100644 index 0000000..c93744c --- /dev/null +++ b/src/multa/entity/views/informacion-multa.view.ts @@ -0,0 +1,68 @@ +import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; +import { InstitucionInfraccion } from '../../../institucion-infraccion/entity/institucion-infraccion.entity'; +import { Multa } from '../multa.entity'; +import { Prestamo } from '../../../prestamo/entity/prestamo.entity'; +import { Operador } from '../../../operador/entity/operador.entity'; + +@ViewEntity({ + expression: (dataSource: DataSource) => + dataSource + .createQueryBuilder() + .select('mu.id_multa', 'id_multa') + .addSelect('mu.activo', 'activo') + .addSelect('mu.descripcion', 'descripcion') + .addSelect('mu.fecha_fin', 'fecha_fin') + .addSelect('mu.fecha_inicio', 'fecha_inicio') + .addSelect('mu.id_institucion_infraccion', 'id_institucion_infraccion') + .addSelect('mu.id_operador', 'id_operador') + .addSelect('mu.id_prestamo', 'id_prestamo') + .addSelect('mu.retraso', 'retraso') + .addSelect('ii.id_infraccion', 'id_infraccion') + .addSelect('om.id_institucion', 'id_institucion') + .addSelect('p.id_usuario', 'id_usuario') + .from(Multa, 'mu') + .innerJoin( + InstitucionInfraccion, + 'ii', + 'ii.id_institucion_infraccion = mu.id_institucion_infraccion', + ) + .innerJoin(Prestamo, 'p', 'p.id_prestamo = mu.id_prestamo') + .innerJoin(Operador, 'om', 'om.id_operador = mu.id_operador'), +}) +export class InformacionMultaView { + @ViewColumn() + id_multa: number; + + @ViewColumn() + activo: boolean; + + @ViewColumn() + descripcion: string; + + @ViewColumn() + fecha_fin: Date; + + @ViewColumn() + fecha_inicio: Date; + + @ViewColumn() + id_institucion: number; + + @ViewColumn() + id_infraccion: number; + + @ViewColumn() + id_institucion_infraccion: number; + + @ViewColumn() + id_operador: number; + + @ViewColumn() + id_prestamo: number; + + @ViewColumn() + id_usuario: number; + + @ViewColumn() + retraso: boolean; +} diff --git a/src/multa/multa.module.ts b/src/multa/multa.module.ts index 9e84dab..01046ac 100644 --- a/src/multa/multa.module.ts +++ b/src/multa/multa.module.ts @@ -4,6 +4,8 @@ import { TypeOrmModule } from '@nestjs/typeorm'; import { MultaController } from './multa.controller'; import { MultaService } from './multa.service'; import { Multa } from './entity/multa.entity'; +import { FullInformacionMultaView } from './entity/views/full-informacion-multa.view'; +import { InformacionMultaView } from './entity/views/informacion-multa.view'; import { EquipoModule } from '../equipo/equipo.module'; import { InstitucionModule } from '../institucion/institucion.module'; import { InstitucionInfraccionModule } from '../institucion-infraccion/institucion-infraccion.module'; @@ -22,7 +24,11 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module' PassportModule.register({ defaultStrategy: 'jwt' }), forwardRef(() => PrestamoModule), OperadorModule, - TypeOrmModule.forFeature([Multa]), + TypeOrmModule.forFeature([ + Multa, + FullInformacionMultaView, + InformacionMultaView, + ]), UsuarioModule, ValidarUsuarioModule, ], diff --git a/src/prestamo/entity/views/full-informacion-prestamo.view.ts b/src/prestamo/entity/views/full-informacion-prestamo.view.ts index 4ae31a1..945af2f 100644 --- a/src/prestamo/entity/views/full-informacion-prestamo.view.ts +++ b/src/prestamo/entity/views/full-informacion-prestamo.view.ts @@ -14,7 +14,7 @@ import { Usuario } from '../../../usuario/entity/usuario.entity'; dataSource .createQueryBuilder() .select('p.id_prestamo', 'id_prestamo') - .addSelect('p.activo', 'activo_prestamo') + .addSelect('p.activo', 'activo') .addSelect('p.cancelado_operador', 'cancelado_operador') .addSelect('p.cancelado_usuario', 'cancelado_usuario') .addSelect('p.fecha_entrega', 'fecha_entrega') @@ -31,21 +31,17 @@ import { Usuario } from '../../../usuario/entity/usuario.entity'; .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') @@ -63,16 +59,7 @@ export class FullInformacionPrestamoView { id_prestamo: number; @ViewColumn() - activo_carrito: boolean; - - @ViewColumn() - activo_institucion: boolean; - - @ViewColumn() - activo_modulo: boolean; - - @ViewColumn() - activo_prestamo: boolean; + activo: boolean; @ViewColumn() cancelado_operador: boolean; @@ -149,9 +136,6 @@ export class FullInformacionPrestamoView { @ViewColumn() operadorRegreso: string; - @ViewColumn() - prestado: boolean; - @ViewColumn() status: string; diff --git a/src/prestamo/entity/views/informacion-prestamo.view.ts b/src/prestamo/entity/views/informacion-prestamo.view.ts index 287d173..68e798d 100644 --- a/src/prestamo/entity/views/informacion-prestamo.view.ts +++ b/src/prestamo/entity/views/informacion-prestamo.view.ts @@ -2,12 +2,10 @@ 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) => @@ -29,7 +27,6 @@ import { Usuario } from '../../../usuario/entity/usuario.entity'; .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') @@ -37,12 +34,10 @@ import { Usuario } from '../../../usuario/entity/usuario.entity'; .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'), + .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito'), }) export class InformacionPrestamoView { @ViewColumn() @@ -101,7 +96,4 @@ export class InformacionPrestamoView { @ViewColumn() numero_inventario: string; - - @ViewColumn() - usuario: string; }