diff --git a/src/app.gateway.ts b/src/app.gateway.ts index 266fd7d..c22d4f7 100644 --- a/src/app.gateway.ts +++ b/src/app.gateway.ts @@ -10,15 +10,15 @@ import { Socket, Server } from 'socket.io'; @WebSocketGateway({ cors: { origin: [ - // 'http://localhost:3176', - // 'http://localhost:3186', + 'http://localhost:3176', + 'http://localhost:3186', // 'http://132.248.80.196:3155', // 'http://132.248.80.196:3185', // 'https://pmodulospcpuma.unam.mx', // 'https://pmodulospcpuma.unam.mx:3015', - 'https://modulospcpuma.unam.mx', - 'https://modulospcpuma.unam.mx:3015', - 'https://betelgeuse.acatlan.unam.mx:3180', + // 'https://modulospcpuma.unam.mx', + // 'https://modulospcpuma.unam.mx:3015', + // 'https://betelgeuse.acatlan.unam.mx:3180', ], }, }) diff --git a/src/app.module.ts b/src/app.module.ts index a936a33..d92dcc6 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -88,7 +88,7 @@ import { FullInformacionMultaView } from './multa/entity/views/full-informacion- import { InformacionMultaView } from './multa/entity/views/informacion-multa.view'; import { InformacionOperadorView } from './operador/entity/views/informacion-operador.view'; import { FullInformacionPrestamoView } from './prestamo/entity/views/full-informacion-prestamo.view'; -import { FullInformacionPrestamoEquipoView } from './prestamo/entity/views/full-informacion-prestamo-equipo.view'; +import { FullInformacionPrestamoNumeroInventarioView } from './prestamo/entity/views/full-informacion-prestamo-numero-inventario.view'; import { FullInformacionPrestamoUsuarioView } from './prestamo/entity/views/full-informacion-prestamo-usuario.view'; import { InformacionPrestamoView } from './prestamo/entity/views/informacion-prestamo.view'; import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuario.view'; @@ -168,7 +168,7 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar InformacionMultaView, InformacionOperadorView, FullInformacionPrestamoView, - FullInformacionPrestamoEquipoView, + FullInformacionPrestamoNumeroInventarioView, FullInformacionPrestamoUsuarioView, InformacionPrestamoView, InformacionUsuarioView, diff --git a/src/prestamo/entity/views/full-informacion-prestamo-equipo.view.ts b/src/prestamo/entity/views/full-informacion-prestamo-numero-inventario.view.ts similarity index 67% rename from src/prestamo/entity/views/full-informacion-prestamo-equipo.view.ts rename to src/prestamo/entity/views/full-informacion-prestamo-numero-inventario.view.ts index 82f541f..a0c20ee 100644 --- a/src/prestamo/entity/views/full-informacion-prestamo-equipo.view.ts +++ b/src/prestamo/entity/views/full-informacion-prestamo-numero-inventario.view.ts @@ -2,7 +2,6 @@ import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; import { Carrito } from '../../../carrito/entity/carrito.entity'; import { Equipo } from '../../../equipo/entity/equipo.entity'; import { Modulo } from '../../../modulo/entity/modulo.entity'; -import { Operador } from '../../../operador/entity/operador.entity'; import { Prestamo } from '../prestamo.entity'; import { Usuario } from '../../../usuario/entity/usuario.entity'; @@ -12,34 +11,29 @@ import { Usuario } from '../../../usuario/entity/usuario.entity'; .createQueryBuilder() .select('p.id_prestamo', 'id_prestamo') .addSelect('p.activo', 'activo') - .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('oe.operador', 'operador_entrega') - .addSelect('or.operador', 'operador_regreso') + .addSelect('e.equipo', 'equipo') + .addSelect('e.id_carrito', 'id_carrito') + .addSelect('e.id_status', 'id_status') .addSelect('u.id_tipo_usuario', 'id_tipo_usuario') .addSelect('u.nombre', 'nombre') .addSelect('u.usuario', 'usuario') + .addSelect('c.id_modulo', 'id_modulo') + .addSelect('c.carrito', '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(Modulo, 'm', 'm.id_modulo = c.id_modulo') - - .orderBy('p.id_prestamo', 'DESC'), + .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo'), }) -export class FullInformacionPrestamoEquipoView { +export class FullInformacionPrestamoNumeroInventarioView { @ViewColumn() id_prestamo: number; @@ -47,10 +41,10 @@ export class FullInformacionPrestamoEquipoView { activo: number; @ViewColumn() - cancelado_operador: boolean; + carrito: string; @ViewColumn() - cancelado_usuario: boolean; + equipo: string; @ViewColumn() fecha_entrega: Date; @@ -67,6 +61,9 @@ export class FullInformacionPrestamoEquipoView { @ViewColumn() hora_max_recoger: Date; + @ViewColumn() + id_carrito: number; + @ViewColumn() id_equipo: number; @@ -74,10 +71,10 @@ export class FullInformacionPrestamoEquipoView { id_institucion: number; @ViewColumn() - id_operador_entrega: number; + id_modulo: number; @ViewColumn() - id_operador_regreso: number; + id_status: number; @ViewColumn() id_tipo_usuario: number; @@ -88,12 +85,6 @@ export class FullInformacionPrestamoEquipoView { @ViewColumn() nombre: string; - @ViewColumn() - operador_entrega: string; - - @ViewColumn() - operador_regreso: string; - @ViewColumn() usuario: string; } diff --git a/src/prestamo/entity/views/full-informacion-prestamo-usuario.view copy.ts b/src/prestamo/entity/views/full-informacion-prestamo-usuario.view copy.ts new file mode 100644 index 0000000..8110ab2 --- /dev/null +++ b/src/prestamo/entity/views/full-informacion-prestamo-usuario.view copy.ts @@ -0,0 +1,152 @@ +// import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; +// import { Carrito } from '../../../carrito/entity/carrito.entity'; +// import { Equipo } from '../../../equipo/entity/equipo.entity'; +// import { Institucion } from '../../../institucion/entity/institucion.entity'; +// import { InstitucionCarrera } from '../../../institucion-carrera/entity/institucion-carrera.entity'; +// import { InstitucionUsuario } from '../../../institucion-usuario/entity/institucion-usuario.entity'; +// import { Modulo } from '../../../modulo/entity/modulo.entity'; +// import { Operador } from '../../../operador/entity/operador.entity'; +// import { Prestamo } from '../prestamo.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') +// .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('oe.operador', 'operador_entrega') +// .addSelect('or.operador', 'operador_regreso') +// .addSelect('c.carrito', 'carrito') +// .addSelect('c.id_modulo', 'id_modulo') +// .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') +// .addSelect('s.status', 'status') +// .addSelect('m.id_institucion', 'id_institucion') +// .addSelect('m.modulo', 'modulo') +// .addSelect('ic.id_institucion', 'id_institucion_u') +// .addSelect('tc.tipo_carrito', 'tipo_carrito') +// .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(InstitucionUsuario, 'is', 'is.id_usuario = u.id_usuario') +// .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') +// .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito') +// .innerJoin( +// InstitucionCarrera, +// 'ic', +// 'ic.id_institucion_carrera = is.id_institucion_carrera', +// ) +// .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion') +// .orderBy('p.id_prestamo', 'DESC'), +// }) +// export class FullInformacionPrestamoUsuarioView { +// @ViewColumn() +// id_prestamo: number; + +// @ViewColumn() +// activo: number; + +// @ViewColumn() +// cancelado_operador: number; + +// @ViewColumn() +// cancelado_usuario: number; + +// @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_institucion_u: 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() +// numero_inventario: string; + +// @ViewColumn() +// numero_serie: string; + +// @ViewColumn() +// operador_entrega: string; + +// @ViewColumn() +// operador_regreso: string; + +// @ViewColumn() +// status: string; + +// @ViewColumn() +// tipo_carrito: string; +// } diff --git a/src/prestamo/entity/views/full-informacion-prestamo-usuario.view.ts b/src/prestamo/entity/views/full-informacion-prestamo-usuario.view.ts index cd3adbd..de36211 100644 --- a/src/prestamo/entity/views/full-informacion-prestamo-usuario.view.ts +++ b/src/prestamo/entity/views/full-informacion-prestamo-usuario.view.ts @@ -2,12 +2,8 @@ import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; import { Carrito } from '../../../carrito/entity/carrito.entity'; import { Equipo } from '../../../equipo/entity/equipo.entity'; import { Institucion } from '../../../institucion/entity/institucion.entity'; -import { InstitucionCarrera } from '../../../institucion-carrera/entity/institucion-carrera.entity'; -import { InstitucionUsuario } from '../../../institucion-usuario/entity/institucion-usuario.entity'; import { Modulo } from '../../../modulo/entity/modulo.entity'; -import { Operador } from '../../../operador/entity/operador.entity'; import { Prestamo } from '../prestamo.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'; @@ -17,50 +13,30 @@ import { Usuario } from '../../../usuario/entity/usuario.entity'; .createQueryBuilder() .select('p.id_prestamo', 'id_prestamo') .addSelect('p.activo', 'activo') - .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('oe.operador', 'operador_entrega') - .addSelect('or.operador', 'operador_regreso') .addSelect('c.carrito', 'carrito') .addSelect('c.id_modulo', 'id_modulo') .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') - .addSelect('s.status', 'status') .addSelect('m.id_institucion', 'id_institucion') .addSelect('m.modulo', 'modulo') - .addSelect('ic.id_institucion', 'id_institucion_u') .addSelect('tc.tipo_carrito', 'tipo_carrito') .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(InstitucionUsuario, 'is', 'is.id_usuario = u.id_usuario') .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito') - .innerJoin( - InstitucionCarrera, - 'ic', - 'ic.id_institucion_carrera = is.id_institucion_carrera', - ) - .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion') - .orderBy('p.id_prestamo', 'DESC'), + .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion'), }) export class FullInformacionPrestamoUsuarioView { @ViewColumn() @@ -69,21 +45,12 @@ export class FullInformacionPrestamoUsuarioView { @ViewColumn() activo: number; - @ViewColumn() - cancelado_operador: boolean; - - @ViewColumn() - cancelado_usuario: boolean; - @ViewColumn() carrito: string; @ViewColumn() equipo: string; - @ViewColumn() - fecha_entrega: Date; - @ViewColumn() fecha_inicio: Date; @@ -105,18 +72,9 @@ export class FullInformacionPrestamoUsuarioView { @ViewColumn() id_institucion: number; - @ViewColumn() - id_institucion_u: number; - @ViewColumn() id_modulo: number; - @ViewColumn() - id_operador_entrega: number; - - @ViewColumn() - id_operador_regreso: number; - @ViewColumn() id_status: number; @@ -135,18 +93,6 @@ export class FullInformacionPrestamoUsuarioView { @ViewColumn() numero_inventario: string; - @ViewColumn() - numero_serie: string; - - @ViewColumn() - operador_entrega: string; - - @ViewColumn() - operador_regreso: string; - - @ViewColumn() - status: string; - @ViewColumn() tipo_carrito: string; } diff --git a/src/prestamo/entity/views/full-informacion-prestamo.view copy.ts b/src/prestamo/entity/views/full-informacion-prestamo.view copy.ts new file mode 100644 index 0000000..aa5fe1b --- /dev/null +++ b/src/prestamo/entity/views/full-informacion-prestamo.view copy.ts @@ -0,0 +1,181 @@ +// import { DataSource, ViewEntity, ViewColumn } 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 { InstitucionCarrera } from '../../../institucion-carrera/entity/institucion-carrera.entity'; +// import { InstitucionUsuario } from '../../../institucion-usuario/entity/institucion-usuario.entity'; +// import { Modulo } from '../../../modulo/entity/modulo.entity'; +// import { Operador } from '../../../operador/entity/operador.entity'; +// import { Prestamo } from '../prestamo.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') +// .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('oe.operador', 'operador_entrega') +// .addSelect('or.operador', 'operador_regreso') +// .addSelect('u.id_tipo_usuario', 'id_tipo_usuario') +// .addSelect('u.nombre', 'nombre') +// .addSelect('u.usuario', 'usuario') +// .addSelect('c.carrito', 'carrito') +// .addSelect('c.id_modulo', 'id_modulo') +// .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') +// .addSelect('s.status', 'status') +// .addSelect('is.id_institucion_usuario', 'id_institucion_usuario') +// .addSelect('m.id_institucion', 'id_institucion') +// .addSelect('m.modulo', 'modulo') +// .addSelect('ic.id_institucion_carrera', 'id_institucion_carrera') +// .addSelect('ic.id_institucion', 'id_institucion_u') +// .addSelect('ic.id_carrera', 'id_carrera') +// .addSelect('tc.tipo_carrito', 'tipo_carrito') +// .addSelect('i.institucion', 'institucion') +// .addSelect('ca.carrera', 'carrera') +// .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(InstitucionUsuario, 'is', 'is.id_usuario = u.id_usuario') +// .innerJoin(Modulo, 'm', 'm.id_modulo = c.id_modulo') +// .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito') +// .innerJoin( +// InstitucionCarrera, +// 'ic', +// 'ic.id_institucion_carrera = is.id_institucion_carrera', +// ) +// .innerJoin(Institucion, 'i', 'i.id_institucion = m.id_institucion') +// .innerJoin(Carrera, 'ca', 'ca.id_carrera = ic.id_carrera'), +// }) +// export class FullInformacionPrestamoView { +// @ViewColumn() +// id_prestamo: number; + +// @ViewColumn() +// activo: number; + +// @ViewColumn() +// carrera: string; + +// @ViewColumn() +// cancelado_operador: number; + +// @ViewColumn() +// cancelado_usuario: number; + +// @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_carrera: number; + +// @ViewColumn() +// id_carrito: number; + +// @ViewColumn() +// id_equipo: number; + +// @ViewColumn() +// id_institucion: number; + +// @ViewColumn() +// id_institucion_usuario: number; + +// @ViewColumn() +// id_institucion_carrera: number; + +// @ViewColumn() +// id_institucion_u: 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_tipo_usuario: number; + +// @ViewColumn() +// id_usuario: number; + +// @ViewColumn() +// institucion: string; + +// @ViewColumn() +// modulo: string; + +// @ViewColumn() +// nombre: string; + +// @ViewColumn() +// numero_inventario: string; + +// @ViewColumn() +// numero_serie: string; + +// @ViewColumn() +// operador_entrega: string; + +// @ViewColumn() +// operador_regreso: string; + +// @ViewColumn() +// status: string; + +// @ViewColumn() +// tipo_carrito: string; + +// @ViewColumn() +// usuario: string; +// } diff --git a/src/prestamo/entity/views/full-informacion-prestamo.view.ts b/src/prestamo/entity/views/full-informacion-prestamo.view.ts index 19aa669..bebe7e1 100644 --- a/src/prestamo/entity/views/full-informacion-prestamo.view.ts +++ b/src/prestamo/entity/views/full-informacion-prestamo.view.ts @@ -81,10 +81,10 @@ export class FullInformacionPrestamoView { carrera: string; @ViewColumn() - cancelado_operador: boolean; + cancelado_operador: number; @ViewColumn() - cancelado_usuario: boolean; + cancelado_usuario: number; @ViewColumn() carrito: string; diff --git a/src/prestamo/entity/views/informacion-prestamo.view.ts b/src/prestamo/entity/views/informacion-prestamo.view.ts index e2f4e32..0d8e6d8 100644 --- a/src/prestamo/entity/views/informacion-prestamo.view.ts +++ b/src/prestamo/entity/views/informacion-prestamo.view.ts @@ -4,6 +4,7 @@ import { Prestamo } from '../prestamo.entity'; import { Equipo } from '../../../equipo/entity/equipo.entity'; import { Modulo } from '../../../modulo/entity/modulo.entity'; import { Status } from '../../../status/entity/status.entity'; +import { TipoCarrito } from '../../../institucion-tipo-carrito/entity/tipo-carrito.entity'; @ViewEntity({ expression: (dataSource: DataSource) => @@ -22,30 +23,40 @@ import { Status } from '../../../status/entity/status.entity'; .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('c.carrito', 'carrito') .addSelect('c.id_modulo', 'id_modulo') .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') .addSelect('m.id_institucion', 'id_institucion') + .addSelect('tc.tipo_carrito', 'tipo_carrito') .from(Prestamo, 'p') .innerJoin(Equipo, 'e', 'e.id_equipo = p.id_equipo') .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(Modulo, 'm', 'm.id_modulo = c.id_modulo') + .innerJoin(TipoCarrito, 'tc', 'tc.id_tipo_carrito = c.id_tipo_carrito'), }) export class InformacionPrestamoView { @ViewColumn() id_prestamo: number; @ViewColumn() - activo: boolean; + activo: number; @ViewColumn() - cancelado_operador: boolean; + cancelado_operador: number; @ViewColumn() - cancelado_usuario: boolean; + cancelado_usuario: number; + + @ViewColumn() + carrito: string; + + @ViewColumn() + equipo: string; @ViewColumn() fecha_entrega: Date; @@ -91,4 +102,7 @@ export class InformacionPrestamoView { @ViewColumn() numero_inventario: string; + + @ViewColumn() + tipo_carrito: string; } diff --git a/src/prestamo/prestamo.controller.ts b/src/prestamo/prestamo.controller.ts index f39ff3b..a1da5fc 100644 --- a/src/prestamo/prestamo.controller.ts +++ b/src/prestamo/prestamo.controller.ts @@ -361,7 +361,9 @@ export class PrestamoController { if ('id_usuario' in usuarioOperador) this.validarUsuarioService.validarUsuario(usuarioOperador); else this.validarUsuarioService.validarAdminOperador(usuarioOperador); - return this.prestamoService.findById(parseInt(query.id_prestamo)); + return this.prestamoService.findFullInfoPrestamoById( + parseInt(query.id_prestamo), + ); } @Serealize(PrestamoOutputDto) @@ -381,10 +383,9 @@ export class PrestamoController { const usuario: Usuario = req.user.usuario; this.validarUsuarioService.validarUsuario(usuario); - return this.prestamoService.findByIdUsuario(parseInt(query.id_usuario)); - // return this.prestamoService.findFullInfoPrestamoByIdUsuario( - // parseInt(query.id_usuario), - // ); + return this.prestamoService.findFullInfoPrestamoByIdUsuario( + parseInt(query.id_usuario), + ); } @Serealize(PrestamoEquipoOutputDto) @@ -412,14 +413,14 @@ export class PrestamoController { const operador: Operador = req.user.operador; this.validarUsuarioService.validarAdminOperador(operador); - return this.prestamoService.findByNumeroInventario( - parseInt(query.id_institucion), - query.numero_inventario, - ); - // return this.prestamoService.findFullInfoPrestamoByNumeroInventario( + // return this.prestamoService.findByNumeroInventario( // parseInt(query.id_institucion), // query.numero_inventario, // ); + return this.prestamoService.findFullInfoPrestamoByNumeroInventario( + parseInt(query.id_institucion), + query.numero_inventario, + ); } @Put('regresar-id-prestamo') diff --git a/src/prestamo/prestamo.module.ts b/src/prestamo/prestamo.module.ts index 7c069bc..e3757eb 100644 --- a/src/prestamo/prestamo.module.ts +++ b/src/prestamo/prestamo.module.ts @@ -6,7 +6,7 @@ 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 { FullInformacionPrestamoEquipoView } from './entity/views/full-informacion-prestamo-equipo.view'; +import { FullInformacionPrestamoNumeroInventarioView } from './entity/views/full-informacion-prestamo-numero-inventario.view'; import { FullInformacionPrestamoUsuarioView } from './entity/views/full-informacion-prestamo-usuario.view'; import { InformacionPrestamoView } from './entity/views/informacion-prestamo.view'; import { EquipoModule } from '../equipo/equipo.module'; @@ -37,7 +37,7 @@ import { ValidarUsuarioModule } from '../validar-usuario/validar-usuario.module' TypeOrmModule.forFeature([ Prestamo, FullInformacionPrestamoView, - FullInformacionPrestamoEquipoView, + FullInformacionPrestamoNumeroInventarioView, FullInformacionPrestamoUsuarioView, InformacionPrestamoView, ]), diff --git a/src/prestamo/prestamo.service.ts b/src/prestamo/prestamo.service.ts index b84de34..60ea6aa 100644 --- a/src/prestamo/prestamo.service.ts +++ b/src/prestamo/prestamo.service.ts @@ -18,7 +18,7 @@ import { Operador } from '../operador/entity/operador.entity'; import { Prestamo } from './entity/prestamo.entity'; import { Usuario } from '../usuario/entity/usuario.entity'; import { FullInformacionPrestamoView } from './entity/views/full-informacion-prestamo.view'; -import { FullInformacionPrestamoEquipoView } from './entity/views/full-informacion-prestamo-equipo.view'; +import { FullInformacionPrestamoNumeroInventarioView } from './entity/views/full-informacion-prestamo-numero-inventario.view'; import { FullInformacionPrestamoUsuarioView } from './entity/views/full-informacion-prestamo-usuario.view'; import { InformacionPrestamoView } from './entity/views/informacion-prestamo.view'; import { EquipoService } from '../equipo/equipo.service'; @@ -39,8 +39,8 @@ export class PrestamoService { @InjectRepository(Prestamo) private repository: Repository, @InjectRepository(FullInformacionPrestamoView) private fullInformacionPrestamoView: Repository, - @InjectRepository(FullInformacionPrestamoEquipoView) - private fullInformacionPrestamoEquipoView: Repository, + @InjectRepository(FullInformacionPrestamoNumeroInventarioView) + private fullInformacionPrestamoNumeroInventarioView: Repository, @InjectRepository(FullInformacionPrestamoUsuarioView) private fullInformacionPrestamoUsuarioView: Repository, @InjectRepository(InformacionPrestamoView) @@ -66,7 +66,7 @@ export class PrestamoService { motivo: string, ) { const ahora = moment(); - const prestamo = await this.findById(id_prestamo); + const prestamo = await this.findInfoPrestamoById(id_prestamo); this.validacionBasicaPrestamo(prestamo, operadorRegreso); prestamo.activo = false; @@ -77,21 +77,17 @@ export class PrestamoService { .update(prestamo.equipo, null, 6, operadorRegreso, motivo) .then((_) => this.repository.save(prestamo)) .then((_) => { - console.log(prestamo.usuario.id_usuario); - console.log(operadorRegreso.institucion.id_institucion); this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario); this.appGateway.actualizarOperador( operadorRegreso.institucion.id_institucion, ); - return { - message: 'Se canceló correctamente este préstamo.', - }; + return { message: 'Se canceló correctamente este préstamo.' }; }); } async cancelarUsuario(id_prestamo: number) { const ahora = moment(); - const prestamo = await this.findById(id_prestamo); + const prestamo = await this.findInfoPrestamoById(id_prestamo); this.validacionBasicaPrestamo(prestamo); if (prestamo.equipo.status.id_status === 3) @@ -109,11 +105,7 @@ export class PrestamoService { prestamo.equipo.carrito.modulo.institucion.id_institucion, ); this.appGateway.actualizarUsuario(prestamo.usuario.id_usuario); - console.log(prestamo.usuario.id_usuario); - console.log(prestamo.equipo.carrito.modulo.institucion.id_institucion); - return { - message: 'Se canceló correctamente este préstamo.', - }; + return { message: 'Se canceló correctamente este préstamo.' }; }); } @@ -124,7 +116,7 @@ export class PrestamoService { id_programa?: number, id_tipo_entrada?: number, ) { - const ahora = moment(); + const ahora = moment().add(4, 'h'); const ahoraStr = ahora.format('YYYY-MM-DD'); const sistema = { id_operador: 1 }; const modulo = await this.moduloService.findById(id_modulo); @@ -152,34 +144,34 @@ export class PrestamoService { ) : null; - if (ahora.weekday() === 0) - throw new ConflictException('No hay servicio los días domingo.'); - this.validarInstitucionUsuario(usuario.instituciones, modulo); - 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 >= horaExtra) - throw new ConflictException( - `El servicio terminó a las ${institucionDia.hora_extra} el día de hoy.`, - ); - for (let i = 0; i < institucionDia.horasExcepcion.length; i++) { - const horaFin = moment( - `${ahoraStr} ${institucionDia.horasExcepcion[i].hora_fin}`, - ); - const horaInicio = moment( - `${ahoraStr} ${institucionDia.horasExcepcion[i].hora_inicio}`, - ); + // if (ahora.weekday() === 0) + // throw new ConflictException('No hay servicio los días domingo.'); + // this.validarInstitucionUsuario(usuario.instituciones, modulo); + // 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 >= horaExtra) + // throw new ConflictException( + // `El servicio terminó a las ${institucionDia.hora_extra} el día de hoy.`, + // ); + // for (let i = 0; i < institucionDia.horasExcepcion.length; i++) { + // const horaFin = moment( + // `${ahoraStr} ${institucionDia.horasExcepcion[i].hora_fin}`, + // ); + // const horaInicio = moment( + // `${ahoraStr} ${institucionDia.horasExcepcion[i].hora_inicio}`, + // ); - if (ahora > horaInicio && ahora < horaFin) - throw new ConflictException( - `Se suspendió temporalmente el servicio de ${institucionDia.horasExcepcion[i].hora_inicio} a ${institucionDia.horasExcepcion[i].hora_fin}.`, - ); - } + // if (ahora > horaInicio && ahora < horaFin) + // throw new ConflictException( + // `Se suspendió temporalmente el servicio de ${institucionDia.horasExcepcion[i].hora_inicio} a ${institucionDia.horasExcepcion[i].hora_fin}.`, + // ); + // } return this.repository .findOne({ where: { activo: true, usuario } }) .then((existePrestamo) => { @@ -248,7 +240,7 @@ export class PrestamoService { async entregar(operadorEntrega: Operador, id_prestamo: number) { const ahora = moment(); const ahoraStr = ahora.format('YYYY-MM-DD'); - const prestamo = await this.findById(id_prestamo); + const prestamo = await this.findInfoPrestamoById(id_prestamo); const institucionDia = await this.institucionDiaService.findByInstitucionDia( operadorEntrega.institucion, @@ -509,37 +501,6 @@ export class PrestamoService { }); } - findByIdUsuario(id_usuario: number) { - return this.usuarioService - .findById(id_usuario, true, true) - .then((usuario) => - this.repository - .createQueryBuilder('p') - .innerJoinAndSelect('p.equipo', 'e') - .innerJoinAndSelect('p.usuario', 'u', 'u.id_usuario = :id_usuario', { - id_usuario: usuario.id_usuario, - }) - .innerJoinAndSelect('e.carrito', 'c') - .innerJoinAndSelect('e.programas', 'ps') - .innerJoinAndSelect('e.status', 's') - .innerJoinAndSelect('e.tiposEntradas', 'tes') - .innerJoinAndSelect('c.modulo', 'm') - .innerJoinAndSelect('c.tipoCarrito', 'tc') - .innerJoinAndSelect('ps.programa', 'pr') - .innerJoinAndSelect('tes.tipoEntrada', 'te') - .innerJoinAndSelect('m.institucion', 'i') - .where('p.activo = 1') - .getOne(), - ) - .then((prestamo) => { - if (!prestamo) - throw new NotFoundException( - 'Este usuario no tiene un préstamo activo.', - ); - return prestamo; - }); - } - async findByNumeroInventario( id_institucion: number | Institucion, numero_inventario: string, @@ -579,155 +540,181 @@ export class PrestamoService { }); } - // findInfoPrestamoById(id_prestamo: number) { - // return this.informacionPrestamoView - // .findOne({ where: { id_prestamo } }) - // .then((infoPrestamo) => { - // if (!infoPrestamo) - // throw new NotFoundException('No existe este id préstamo.'); - // return this.repository.create({ - // id_prestamo: infoPrestamo.id_prestamo, - // activo: infoPrestamo.activo, - // cancelado_operador: infoPrestamo.cancelado_operador, - // cancelado_usuario: infoPrestamo.cancelado_usuario, - // fecha_entrega: infoPrestamo.fecha_entrega, - // fecha_inicio: infoPrestamo.fecha_inicio, - // hora_inicio: infoPrestamo.hora_inicio, - // hora_fin: infoPrestamo.hora_fin, - // hora_max_recoger: infoPrestamo.hora_max_recoger, - // equipo: { - // id_equipo: infoPrestamo.id_equipo, - // numero_inventario: infoPrestamo.numero_inventario, - // carrito: { - // id_carrito: infoPrestamo.id_carrito, - // modulo: { - // id_modulo: infoPrestamo.id_modulo, - // institucion: { id_institucion: infoPrestamo.id_institucion }, - // }, - // tipoCarrito: { id_tipo_carrito: infoPrestamo.id_tipo_carrito }, - // }, - // status: { id_status: infoPrestamo.id_status }, - // }, - // operadorEntrega: { id_operador: infoPrestamo.id_operador_entrega }, - // operadorRegreso: { id_operador: infoPrestamo.id_operador_regreso }, - // usuario: { id_usuario: infoPrestamo.id_usuario }, - // }); - // }); - // } + findInfoPrestamoById(id_prestamo: number) { + return this.informacionPrestamoView + .findOne({ where: { id_prestamo } }) + .then((infoPrestamo) => { + if (!infoPrestamo) + throw new NotFoundException('No existe este id préstamo.'); + return this.repository.create({ + id_prestamo: infoPrestamo.id_prestamo, + activo: infoPrestamo.activo === 1, + cancelado_operador: infoPrestamo.cancelado_operador === 1, + cancelado_usuario: infoPrestamo.cancelado_usuario === 1, + fecha_entrega: infoPrestamo.fecha_entrega, + fecha_inicio: infoPrestamo.fecha_inicio, + hora_fin: infoPrestamo.hora_fin, + hora_inicio: infoPrestamo.hora_inicio, + hora_max_recoger: infoPrestamo.hora_max_recoger, + equipo: { + id_equipo: infoPrestamo.id_equipo, + equipo: infoPrestamo.equipo, + numero_inventario: infoPrestamo.numero_inventario, + carrito: { + id_carrito: infoPrestamo.id_carrito, + carrito: infoPrestamo.carrito, + modulo: { + id_modulo: infoPrestamo.id_modulo, + institucion: { id_institucion: infoPrestamo.id_institucion }, + }, + tipoCarrito: { + id_tipo_carrito: infoPrestamo.id_tipo_carrito, + tipo_carrito: infoPrestamo.tipo_carrito, + }, + }, + status: { id_status: infoPrestamo.id_status }, + }, + operadorEntrega: { id_operador: infoPrestamo.id_operador_entrega }, + operadorRegreso: { id_operador: infoPrestamo.id_operador_regreso }, + usuario: { id_usuario: infoPrestamo.id_usuario }, + }); + }); + } - // findFullInfoPrestamoByIdUsuario(id_usuario: number) { - // return this.fullInformacionPrestamoUsuarioView - // .findOne({ where: { activo: 1, id_usuario } }) - // .then((infoPrestamo) => { - // if (!infoPrestamo) - // throw new NotFoundException( - // 'Este usuario no tiene un préstamo activo.', - // ); - // return this.repository.create({ - // id_prestamo: infoPrestamo.id_prestamo, - // activo: infoPrestamo.activo === 1, - // cancelado_operador: infoPrestamo.cancelado_operador, - // cancelado_usuario: infoPrestamo.cancelado_usuario, - // fecha_entrega: infoPrestamo.fecha_entrega, - // fecha_inicio: infoPrestamo.fecha_inicio, - // hora_inicio: infoPrestamo.hora_inicio, - // hora_fin: infoPrestamo.hora_fin, - // hora_max_recoger: infoPrestamo.hora_max_recoger, - // equipo: { - // id_equipo: infoPrestamo.id_equipo, - // equipo: infoPrestamo.equipo, - // numero_inventario: infoPrestamo.numero_inventario, - // numero_serie: infoPrestamo.numero_serie, - // carrito: { - // id_carrito: infoPrestamo.id_carrito, - // carrito: infoPrestamo.carrito, - // modulo: { - // id_modulo: infoPrestamo.id_modulo, - // modulo: infoPrestamo.modulo, - // institucion: { - // id_institucion: infoPrestamo.id_institucion, - // institucion: infoPrestamo.institucion, - // }, - // }, - // tipoCarrito: { - // id_tipo_carrito: infoPrestamo.id_tipo_carrito, - // tipo_carrito: infoPrestamo.tipo_carrito, - // }, - // }, - // status: { - // id_status: infoPrestamo.id_status, - // status: infoPrestamo.status, - // }, - // }, - // operadorEntrega: { - // id_operador: infoPrestamo.id_operador_entrega, - // operador: infoPrestamo.operador_entrega, - // }, - // operadorRegreso: { - // id_operador: infoPrestamo.id_operador_regreso, - // operador: infoPrestamo.operador_regreso, - // }, - // usuario: { id_usuario: infoPrestamo.id_usuario }, - // }); - // }); - // } + findFullInfoPrestamoById(id_prestamo: number) { + return this.fullInformacionPrestamoView + .findOne({ where: { id_prestamo } }) + .then((infoPrestamo) => { + if (!infoPrestamo) + throw new NotFoundException('No existe este id préstamo.'); + return this.repository.create({ + id_prestamo: infoPrestamo.id_prestamo, + activo: infoPrestamo.activo === 1, + cancelado_operador: infoPrestamo.cancelado_operador === 1, + cancelado_usuario: infoPrestamo.cancelado_usuario === 1, + fecha_entrega: infoPrestamo.fecha_entrega, + fecha_inicio: infoPrestamo.fecha_inicio, + hora_fin: infoPrestamo.hora_fin, + hora_inicio: infoPrestamo.hora_inicio, + hora_max_recoger: infoPrestamo.hora_max_recoger, + equipo: { + id_equipo: infoPrestamo.id_equipo, + equipo: infoPrestamo.equipo, + numero_inventario: infoPrestamo.numero_inventario, + carrito: { + id_carrito: infoPrestamo.id_carrito, + carrito: infoPrestamo.carrito, + modulo: { + id_modulo: infoPrestamo.id_modulo, + modulo: infoPrestamo.modulo, + institucion: { + id_institucion: infoPrestamo.id_institucion, + institucion: infoPrestamo.institucion, + }, + }, + tipoCarrito: { + id_tipo_carrito: infoPrestamo.id_tipo_carrito, + tipo_carrito: infoPrestamo.tipo_carrito, + }, + }, + status: { id_status: infoPrestamo.id_status }, + }, + }); + }); + } - // async findFullInfoPrestamoByNumeroInventario( - // id_institucion: number | Institucion, - // numero_inventario: string, - // ) { - // const institucion = - // typeof id_institucion === 'number' - // ? await this.institucionService.findInfoInstitucionById(id_institucion) - // : id_institucion; + findFullInfoPrestamoByIdUsuario(id_usuario: number) { + return this.fullInformacionPrestamoUsuarioView + .findOne({ where: { activo: 1, id_usuario } }) + .then((infoPrestamo) => { + if (!infoPrestamo) + throw new NotFoundException( + 'Este usuario no tiene un préstamo activo.', + ); + return this.repository.create({ + id_prestamo: infoPrestamo.id_prestamo, + activo: infoPrestamo.activo === 1, + fecha_inicio: infoPrestamo.fecha_inicio, + hora_fin: infoPrestamo.hora_fin, + hora_inicio: infoPrestamo.hora_inicio, + hora_max_recoger: infoPrestamo.hora_max_recoger, + equipo: { + id_equipo: infoPrestamo.id_equipo, + equipo: infoPrestamo.equipo, + numero_inventario: infoPrestamo.numero_inventario, + carrito: { + id_carrito: infoPrestamo.id_carrito, + carrito: infoPrestamo.carrito, + modulo: { + id_modulo: infoPrestamo.id_modulo, + modulo: infoPrestamo.modulo, + institucion: { + id_institucion: infoPrestamo.id_institucion, + institucion: infoPrestamo.institucion, + }, + }, + tipoCarrito: { + id_tipo_carrito: infoPrestamo.id_tipo_carrito, + tipo_carrito: infoPrestamo.tipo_carrito, + }, + }, + status: { id_status: infoPrestamo.id_status }, + }, + }); + }); + } - // return this.equipoService - // .findInfoEquipoByNumeroInventario(institucion, numero_inventario) - // .then((equipo) => - // this.fullInformacionPrestamoEquipoView.findOne({ - // where: { activo: 1, id_equipo: equipo.id_equipo }, - // }), - // ) - // .then((infoPrestamo) => { - // if (!infoPrestamo) - // throw new NotFoundException( - // 'No existe un préstamo activo con este equipo de cómputo.', - // ); - // return this.repository.create({ - // id_prestamo: infoPrestamo.id_prestamo, - // activo: infoPrestamo.activo === 1, - // cancelado_operador: infoPrestamo.cancelado_operador, - // cancelado_usuario: infoPrestamo.cancelado_usuario, - // fecha_entrega: infoPrestamo.fecha_entrega, - // fecha_inicio: infoPrestamo.fecha_inicio, - // hora_inicio: infoPrestamo.hora_inicio, - // hora_fin: infoPrestamo.hora_fin, - // hora_max_recoger: infoPrestamo.hora_max_recoger, - // equipo: { - // id_equipo: infoPrestamo.id_equipo, - // carrito: { - // modulo: { - // institucion: { id_institucion: infoPrestamo.id_institucion }, - // }, - // }, - // }, - // operadorEntrega: { - // id_operador: infoPrestamo.id_operador_entrega, - // operador: infoPrestamo.operador_entrega, - // }, - // operadorRegreso: { - // id_operador: infoPrestamo.id_operador_regreso, - // operador: infoPrestamo.operador_regreso, - // }, - // usuario: { - // id_usuario: infoPrestamo.id_usuario, - // usuario: infoPrestamo.usuario, - // nombre: infoPrestamo.nombre, - // tipoUsuario: { id_tipo_usuario: infoPrestamo.id_tipo_usuario }, - // }, - // }); - // }); - // } + async findFullInfoPrestamoByNumeroInventario( + id_institucion: number | Institucion, + numero_inventario: string, + ) { + const institucion = + typeof id_institucion === 'number' + ? await this.institucionService.findInfoInstitucionById(id_institucion) + : id_institucion; + + return this.equipoService + .findInfoEquipoByNumeroInventario(institucion, numero_inventario) + .then((equipo) => + this.fullInformacionPrestamoNumeroInventarioView.findOne({ + where: { activo: 1, id_equipo: equipo.id_equipo }, + }), + ) + .then((infoPrestamo) => { + if (!infoPrestamo) + throw new NotFoundException( + 'No existe un préstamo activo con este equipo de cómputo.', + ); + return this.repository.create({ + id_prestamo: infoPrestamo.id_prestamo, + activo: infoPrestamo.activo === 1, + fecha_entrega: infoPrestamo.fecha_entrega, + fecha_inicio: infoPrestamo.fecha_inicio, + hora_fin: infoPrestamo.hora_fin, + hora_inicio: infoPrestamo.hora_inicio, + hora_max_recoger: infoPrestamo.hora_max_recoger, + equipo: { + id_equipo: infoPrestamo.id_equipo, + equipo: infoPrestamo.equipo, + carrito: { + id_carrito: infoPrestamo.id_carrito, + carrito: infoPrestamo.carrito, + modulo: { + id_modulo: infoPrestamo.id_modulo, + institucion: { id_institucion: infoPrestamo.id_institucion }, + }, + }, + status: { id_status: infoPrestamo.id_status }, + }, + usuario: { + id_usuario: infoPrestamo.id_usuario, + usuario: infoPrestamo.usuario, + nombre: infoPrestamo.nombre, + tipoUsuario: { id_tipo_usuario: infoPrestamo.id_tipo_usuario }, + }, + }); + }); + } private mensajeNoPoderPedir() { return 'No puedes pedir equipos de cómputo porque:'; @@ -813,7 +800,7 @@ export class PrestamoService { descripcion?: string, id_institucion_infraccion?: number, ) { - return this.findById(id_prestamo).then((prestamo) => + return this.findInfoPrestamoById(id_prestamo).then((prestamo) => this.regresar( prestamo, operador, @@ -863,11 +850,10 @@ export class PrestamoService { operador && operador.institucion.id_institucion != prestamo.equipo.carrito.modulo.institucion.id_institucion - ) { + ) throw new ConflictException( 'Este préstamo no pertenece a esta institución.', ); - } } validarInstitucionUsuario(