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 402491b..a93c7cd 100644 --- a/src/app.module.ts +++ b/src/app.module.ts @@ -70,7 +70,7 @@ 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 { EquipoPrestamoView } from './equipo/entity/views/equipo-prestamo.view'; +import { InformacionEquipoView } from './equipo/entity/views/informacion-equipo.view'; import { InformacionOperadorView } from './operador/entity/views/informacion-operador.view'; import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuario.view'; @@ -132,7 +132,7 @@ import { InformacionUsuarioView } from './usuario/entity/views/informacion-usuar TipoEntrada, TipoUsuario, Usuario, - // EquipoPrestamoView, + InformacionEquipoView, InformacionOperadorView, InformacionUsuarioView, ], diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index 9bbe853..9a66360 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -8,7 +8,6 @@ import { BcryptService } from '../bcrypt/bcrypt.service'; import { ModuloService } from '../modulo/modulo.service'; import { OperadorService } from '../operador/operador.service'; import { UsuarioService } from '../usuario/usuario.service'; -import { JwtPayload } from './dto/jwt-payload'; @Injectable() export class AuthService { diff --git a/src/equipo/entity/views/equipo-prestamo.view.ts b/src/equipo/entity/views/informacion-equipo.view.ts similarity index 60% rename from src/equipo/entity/views/equipo-prestamo.view.ts rename to src/equipo/entity/views/informacion-equipo.view.ts index 3313372..093d410 100644 --- a/src/equipo/entity/views/equipo-prestamo.view.ts +++ b/src/equipo/entity/views/informacion-equipo.view.ts @@ -6,54 +6,57 @@ 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.equipo', 'equipo') + .addSelect('e.id_carrito', 'id_carrito') + .addSelect('e.id_status', 'id_status') + .addSelect('e.numero_inventario', 'numero_inventario') .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('c.activo', 'activo_carrito') + .addSelect('c.carrito', 'carrito') + .addSelect('c.id_modulo', 'id_modulo') + .addSelect('c.id_tipo_carrito', 'id_tipo_carrito') + .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(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', - ), + .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 EquipoPrestamoView { +export class InformacionEquipoView { @ViewColumn() id_equipo: number; + @ViewColumn() + equipo: string; + @ViewColumn() prestado: boolean; - @ViewColumn() - activo: boolean; - - @ViewColumn() - id_status: number; - @ViewColumn() id_modulo: number; + @ViewColumn() + id_carrito: number; + @ViewColumn() id_institucion: number; + + @ViewColumn() + id_status: number; } diff --git a/src/equipo/equipo.module.ts b/src/equipo/equipo.module.ts index d976ddf..6f59bd5 100644 --- a/src/equipo/equipo.module.ts +++ b/src/equipo/equipo.module.ts @@ -4,7 +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 { InformacionEquipoView } from './entity/views/informacion-equipo.view'; import { CarritoModule } from '../carrito/carrito.module'; import { EquipoProgramaModule } from '../equipo-programa/equipo-programa.module'; import { InstitucionModule } from '../institucion/institucion.module'; @@ -33,7 +33,7 @@ import { StatusModule } from '../status/status.module'; OperadorModule, PassportModule.register({ defaultStrategy: 'jwt' }), StatusModule, - TypeOrmModule.forFeature([Equipo /*, EquipoPrestamoView*/]), + TypeOrmModule.forFeature([Equipo, InformacionEquipoView]), ], controllers: [EquipoController], providers: [EquipoService], diff --git a/src/equipo/equipo.service.ts b/src/equipo/equipo.service.ts index f31d496..0cd4341 100644 --- a/src/equipo/equipo.service.ts +++ b/src/equipo/equipo.service.ts @@ -10,7 +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 { InformacionEquipoView } from './entity/views/informacion-equipo.view'; import { Institucion } from '../institucion/entity/institucion.entity'; import { Marca } from '../marca/entity/marca.entity'; import { Modelo } from '../modelo/entity/modelo.entity'; @@ -36,8 +36,8 @@ import { StatusService } from '../status/status.service'; export class EquipoService { constructor( @InjectRepository(Equipo) private repository: Repository, - // @InjectRepository(EquipoPrestamoView) - // private equipoPrestamoView: Repository, + @InjectRepository(InformacionEquipoView) + private informacionEquipoView: Repository, private carritoService: CarritoService, @Inject(forwardRef(() => EquipoProgramaService)) private equipoProgramaService: EquipoProgramaService, @@ -300,9 +300,7 @@ 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, diff --git a/src/operador/entity/views/informacion-operador.view.ts b/src/operador/entity/views/informacion-operador.view.ts index 5d78f99..2f2911d 100644 --- a/src/operador/entity/views/informacion-operador.view.ts +++ b/src/operador/entity/views/informacion-operador.view.ts @@ -9,14 +9,12 @@ import { Operador } from '../operador.entity'; .createQueryBuilder() .select('o.id_operador', 'id_operador') .addSelect('o.activo', 'activo') + .addSelect('o.id_institucion', 'id_institucion') + .addSelect('o.id_tipo_usuario', 'id_tipo_usuario') .addSelect('o.nombre', 'nombre') .addSelect('o.operador', 'operador') .addSelect('o.password', 'password') - .addSelect('tu.id_tipo_usuario', 'id_tipo_usuario') - .addSelect('i.id_institucion', 'id_institucion') - .from(Operador, 'o') - .innerJoin(TipoUsuario, 'tu', 'tu.id_tipo_usuario = o.id_tipo_usuario') - .innerJoin(Institucion, 'i', 'i.id_institucion = o.id_institucion'), + .from(Operador, 'o'), }) export class InformacionOperadorView { @ViewColumn() diff --git a/src/operador/operador.service.ts b/src/operador/operador.service.ts index f341ce1..2b4b88f 100644 --- a/src/operador/operador.service.ts +++ b/src/operador/operador.service.ts @@ -173,27 +173,6 @@ export class OperadorService { }); } - informacionOperador(institucion: Institucion, operador: string) { - return this.informacionOperadorView - .findOne({ - where: { operador, id_institucion: institucion.id_institucion }, - }) - .then((operador) => { - if (!operador) return { operador: null, activo: null, password: null }; - return { - operador: { - id_operador: operador.id_operador, - nombre: operador.nombre, - operador: operador.operador, - institucion: { id_institucion: operador.id_institucion }, - tipoUsuario: { id_tipo_usuario: operador.id_tipo_usuario }, - }, - activo: operador.activo, - password: operador.password, - }; - }); - } - informacionAdmin(admin: string) { return this.informacionOperadorView .findOne({ @@ -218,6 +197,27 @@ export class OperadorService { }); } + informacionOperador(institucion: Institucion, operador: string) { + return this.informacionOperadorView + .findOne({ + where: { operador, id_institucion: institucion.id_institucion }, + }) + .then((operador) => { + if (!operador) return { operador: null, activo: null, password: null }; + return { + operador: { + id_operador: operador.id_operador, + nombre: operador.nombre, + operador: operador.operador, + institucion: { id_institucion: operador.id_institucion }, + tipoUsuario: { id_tipo_usuario: operador.id_tipo_usuario }, + }, + activo: operador.activo, + password: operador.password, + }; + }); + } + passwordReset(admin: Operador, id_operador: number, password?: string) { return this.findById(id_operador) .then((operador) => { diff --git a/src/upload-file/upload-file.service.ts b/src/upload-file/upload-file.service.ts index 0b80272..3f3bccb 100644 --- a/src/upload-file/upload-file.service.ts +++ b/src/upload-file/upload-file.service.ts @@ -131,7 +131,8 @@ export class UploadFileService { errores: string[], equiposNuevos: Equipo[], ) { - let error = this.errorBase(index); + const errorAux = this.errorBase(index); + let error = errorAux; if ( !dataEquipo.carrito || @@ -145,23 +146,38 @@ export class UploadFileService { !dataEquipo.tipo ) { if (!dataEquipo.carrito) error += ' falta del campo carrito'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.entradas) error += ' falta del campo entradas'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.equipo) error += ' falta del campo equipo'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.marca) error += ' falta del campo marca'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.modelo) error += ' falta del campo modelo'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.modulo) error += ' falta del campo modulo'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.numero_inventario) + if (!dataEquipo.entradas) { + if (error != errorAux) error += ','; + error += ' falta del campo entradas'; + } + if (!dataEquipo.equipo) { + if (error != errorAux) error += ','; + error += ' falta del campo equipo'; + } + if (!dataEquipo.marca) { + if (error != errorAux) error += ','; + error += ' falta del campo marca'; + } + if (!dataEquipo.modelo) { + if (error != errorAux) error += ','; + error += ' falta del campo modelo'; + } + if (!dataEquipo.modulo) { + if (error != errorAux) error += ','; + error += ' falta del campo modulo'; + } + if (!dataEquipo.numero_inventario) { + if (error != errorAux) error += ','; error += ' falta del campo numero_inventario'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.numero_serie) error += ' falta del campo numero_serie'; - if (error != this.errorBase(index)) error += ','; - if (!dataEquipo.tipo) error += ' falta del campo tipo'; + } + if (!dataEquipo.numero_serie) { + if (error != errorAux) error += ','; + error += ' falta del campo numero_serie'; + } + if (!dataEquipo.tipo) { + if (error != errorAux) error += ','; + error += ' falta del campo tipo'; + } errores.push(error + '.'); return; } @@ -205,14 +221,22 @@ export class UploadFileService { if (!tipoCarrito || !marca || !modelo || !modulo || !carrito) { if (!tipoCarrito) error += ' no existe este tipo de carrito'; - if (error != this.errorBase(index)) error += ','; - if (!marca) error += ' no existe esta marca'; - if (error != this.errorBase(index)) error += ','; - if (!modelo) error += ' no existe este modelo'; - if (error != this.errorBase(index)) error += ','; - if (!modulo) error += ' no existe este módulo'; - if (error != this.errorBase(index)) error += ','; - if (!carrito) error += ' no existe este carrito'; + if (!marca) { + if (error != errorAux) error += ','; + error += ' no existe esta marca'; + } + if (!modelo) { + if (error != errorAux) error += ','; + error += ' no existe este modelo'; + } + if (!modulo) { + if (error != errorAux) error += ','; + error += ' no existe este módulo'; + } + if (!carrito) { + if (error != errorAux) error += ','; + error += ' no existe este carrito'; + } errores.push(error + '.'); return; } @@ -228,6 +252,7 @@ export class UploadFileService { dataEquipo.numero_inventario, false, ); + console.log('hola'); if (equipo) { errores.push( `${error} ya existe un equipo con ese número de inventario en esta institución.`, @@ -242,6 +267,7 @@ export class UploadFileService { marca, modelo, ); + console.log('adios'); const entradas = dataEquipo.entradas.split(','); const programas = dataEquipo.programas diff --git a/src/usuario/entity/views/informacion-usuario.view.ts b/src/usuario/entity/views/informacion-usuario.view.ts index 55f4ca5..00fe385 100644 --- a/src/usuario/entity/views/informacion-usuario.view.ts +++ b/src/usuario/entity/views/informacion-usuario.view.ts @@ -1,9 +1,6 @@ import { DataSource, ViewEntity, ViewColumn } from 'typeorm'; -import { Carrera } from '../../../institucion-carrera/entity/carrera.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 { TipoUsuario } from '../../../tipo-usuario/entity/tipo-usuario.entity'; import { Usuario } from '../usuario.entity'; @ViewEntity({ @@ -11,26 +8,23 @@ import { Usuario } from '../usuario.entity'; dataSource .createQueryBuilder() .select('u.id_usuario', 'id_usuario') + .addSelect('u.id_tipo_usuario', 'id_tipo_usuario') .addSelect('u.nombre', 'nombre') .addSelect('u.password', 'password') .addSelect('u.usuario', 'usuario') - .addSelect('tu.id_tipo_usuario', 'id_tipo_usuario') - .addSelect('is.activo', 'activo') - .addSelect('is.id_institucion_usuario', 'id_institucion_usuario') - .addSelect('ic.id_institucion_carrera', 'id_institucion_carrera') - .addSelect('is.multa', 'multa') - .addSelect('c.id_carrera', 'id_carrera') - .addSelect('i.id_institucion', 'id_institucion') + .addSelect('iu.activo', 'activo') + .addSelect('iu.id_institucion_carrera', 'id_institucion_carrera') + .addSelect('iu.id_institucion_usuario', 'id_institucion_usuario') + .addSelect('iu.multa', 'multa') + .addSelect('ic.id_carrera', 'id_carrera') + .addSelect('ic.id_institucion', 'id_institucion') .from(Usuario, 'u') - .innerJoin(InstitucionUsuario, 'is', 'is.id_usuario = u.id_usuario') - .innerJoin(TipoUsuario, 'tu', 'tu.id_tipo_usuario = u.id_tipo_usuario') + .innerJoin(InstitucionUsuario, 'iu', 'iu.id_usuario = u.id_usuario') .innerJoin( InstitucionCarrera, 'ic', - 'ic.id_institucion_carrera = is.id_institucion_carrera', - ) - .innerJoin(Carrera, 'c', 'c.id_carrera = ic.id_carrera') - .innerJoin(Institucion, 'i', 'i.id_institucion = ic.id_institucion'), + 'ic.id_institucion_carrera = iu.id_institucion_carrera', + ), }) export class InformacionUsuarioView { @ViewColumn() @@ -39,9 +33,6 @@ export class InformacionUsuarioView { @ViewColumn() activo: boolean; - @ViewColumn() - multa: boolean; - @ViewColumn() id_carrera: number; @@ -57,6 +48,9 @@ export class InformacionUsuarioView { @ViewColumn() id_tipo_usuario: number; + @ViewColumn() + multa: boolean; + @ViewColumn() nombre: string;