Se agregó la visualización de datos y cambios en el servicio de excel
This commit is contained in:
@@ -3,7 +3,7 @@ import { Controller, Post, Get, UseGuards, Request, Res, UploadedFile, UseInterc
|
||||
import { AuthGuard } from '@nestjs/passport';
|
||||
import { ApiBearerAuth } from '@nestjs/swagger';
|
||||
import { FileInterceptor } from '@nestjs/platform-express';
|
||||
import e, { Response } from 'express';
|
||||
import { Response } from 'express';
|
||||
import { ExcelDocumentation } from './excel.documentation';
|
||||
import { ExcelService } from './excel.service';
|
||||
import { MovimientoService } from '../movimiento/movimiento.service';
|
||||
|
||||
@@ -2,15 +2,15 @@ import { Module } from '@nestjs/common';
|
||||
import { ExcelService } from './excel.service';
|
||||
import { ExcelController } from './excel.controller';
|
||||
import { TypeOrmModule } from '@nestjs/typeorm';
|
||||
import { Usuario, Genero, Carrera } from '../entities/entities';
|
||||
import { Usuario, Genero, Carrera, CarreraUsuario, UsuarioTipoUsuario, TipoUsuario } from '../entities/entities';
|
||||
import { MovimientoModule } from 'src/movimiento/movimiento.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
TypeOrmModule.forFeature([Usuario, Genero, Carrera]),
|
||||
TypeOrmModule.forFeature([Usuario, Genero, Carrera, CarreraUsuario, UsuarioTipoUsuario, TipoUsuario]),
|
||||
MovimientoModule
|
||||
],
|
||||
providers: [ExcelService],
|
||||
controllers: [ExcelController],
|
||||
})
|
||||
export class ExcelModule {}
|
||||
export class ExcelModule { }
|
||||
|
||||
+52
-38
@@ -3,7 +3,7 @@ import { Injectable, BadRequestException, Logger } from '@nestjs/common';
|
||||
import { Workbook } from 'exceljs';
|
||||
import { In, Repository } from 'typeorm';
|
||||
import { InjectRepository } from '@nestjs/typeorm';
|
||||
import { Usuario } from '../entities/entities';
|
||||
import { CarreraUsuario, TipoUsuario, Usuario, UsuarioTipoUsuario } from '../entities/entities';
|
||||
import { Genero } from '../entities/entities';
|
||||
import { Carrera } from '../entities/entities';
|
||||
|
||||
@@ -34,6 +34,12 @@ export class ExcelService {
|
||||
private readonly generoRepo: Repository<Genero>,
|
||||
@InjectRepository(Carrera)
|
||||
private readonly carreraRepo: Repository<Carrera>,
|
||||
@InjectRepository(CarreraUsuario)
|
||||
private readonly carreraUsuarioRepo: Repository<CarreraUsuario>,
|
||||
@InjectRepository(UsuarioTipoUsuario)
|
||||
private readonly usuarioTipoUsuarioRepo: Repository<UsuarioTipoUsuario>,
|
||||
@InjectRepository(TipoUsuario)
|
||||
private readonly tipoUsuarioRepo: Repository<TipoUsuario>,
|
||||
// … inyecta otros repositorios si los usarás
|
||||
) { }
|
||||
|
||||
@@ -181,6 +187,16 @@ export class ExcelService {
|
||||
await this.carreraRepo.save(carrera);
|
||||
}
|
||||
|
||||
let tipo = await this.tipoUsuarioRepo.findOne({
|
||||
where: { tipo_usuario: r.tipo.trim() },
|
||||
});
|
||||
if (!tipo) {
|
||||
tipo = this.tipoUsuarioRepo.create({
|
||||
tipo_usuario: r.tipo.trim(),
|
||||
});
|
||||
await this.tipoUsuarioRepo.save(tipo);
|
||||
}
|
||||
|
||||
const generacion = /^[0-9]{4}$/.test(r.gen?.toString().trim())
|
||||
? parseInt(r.gen.toString().trim(), 10)
|
||||
: null;
|
||||
@@ -198,12 +214,24 @@ export class ExcelService {
|
||||
});
|
||||
await this.usuarioRepo.save(usuario);
|
||||
|
||||
// 4) Relacion usuario–carrera (tabla intermedia)
|
||||
await this.carreraRepo
|
||||
.createQueryBuilder()
|
||||
.relation('carreraUsuarios')
|
||||
.of(carrera)
|
||||
.add(usuario);
|
||||
|
||||
|
||||
// 4) Relacion usuario–carrxera (tabla intermedia)
|
||||
const carreraUsuario = this.carreraUsuarioRepo.create({
|
||||
usuario,
|
||||
carrera,
|
||||
});
|
||||
await this.carreraUsuarioRepo.save(carreraUsuario);
|
||||
|
||||
// 5) Tipo de usuario
|
||||
|
||||
const usuarioTipo = this.usuarioTipoUsuarioRepo.create({
|
||||
usuario,
|
||||
tipoUsuario: tipo,
|
||||
});
|
||||
await this.usuarioTipoUsuarioRepo.save(usuarioTipo);
|
||||
|
||||
|
||||
}
|
||||
|
||||
return { inserted: rows.length };
|
||||
@@ -271,17 +299,7 @@ export class ExcelService {
|
||||
'carreraUsuarios', // relación intermedia
|
||||
'carreraUsuarios.carrera', // carrera asociada a través de la intermedia
|
||||
],
|
||||
select: {
|
||||
num_cuenta: true,
|
||||
nombre: true,
|
||||
a_paterno: true,
|
||||
a_materno: true,
|
||||
rfc: true,
|
||||
fecha_nacimiento: true,
|
||||
generacion: true,
|
||||
carreraUsuarios: true,
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -343,17 +361,25 @@ export class ExcelService {
|
||||
'carreraUsuarios', // relación intermedia
|
||||
'carreraUsuarios.carrera', // carrera asociada a través de la intermedia
|
||||
],
|
||||
select: {
|
||||
num_cuenta: true,
|
||||
nombre: true,
|
||||
a_paterno: true,
|
||||
a_materno: true,
|
||||
rfc: true,
|
||||
carreraUsuarios: true,
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
const usuariosTipo = await this.usuarioRepo.find({
|
||||
|
||||
relations: [
|
||||
'genero',
|
||||
'carreraUsuarios', // relación intermedia
|
||||
'carreraUsuarios.carrera',
|
||||
'usuarioTipos', // relación con tipo de usuario
|
||||
'usuarioTipos.tipoUsuario', // tipo de usuario asociado
|
||||
],
|
||||
|
||||
});
|
||||
|
||||
console.log('Usuarios encontrados:', usuariosTipo);
|
||||
|
||||
console.log('Usuarios encontrados:', usuarios);
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -413,10 +439,7 @@ export class ExcelService {
|
||||
'carreraUsuarios', // relación intermedia
|
||||
'carreraUsuarios.carrera', // carrera asociada a través de la intermedia
|
||||
],
|
||||
select: {
|
||||
num_cuenta: true,
|
||||
fecha_nacimiento: true,
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
|
||||
@@ -466,16 +489,7 @@ export class ExcelService {
|
||||
'carreraUsuarios', // relación intermedia
|
||||
'carreraUsuarios.carrera', // carrera asociada a través de la intermedia
|
||||
],
|
||||
select: {
|
||||
num_cuenta: true,
|
||||
nombre: true,
|
||||
a_paterno: true,
|
||||
a_materno: true,
|
||||
fecha_nacimiento: true,
|
||||
generacion: true,
|
||||
carreraUsuarios: true,
|
||||
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user