diff --git a/src/auth/auth.controller.ts b/src/auth/auth.controller.ts
index 0439d8f..247f491 100644
--- a/src/auth/auth.controller.ts
+++ b/src/auth/auth.controller.ts
@@ -9,9 +9,27 @@ import { SetPasswordDto } from './dto/createPassword.dto';
import { Response } from 'express';
import { WhiteDto } from './dto/whiteList.dto';
+interface Update{
+ id:string;
+ nombreNuevo:string;
+
+ }
+
@Controller()
export class AuthController {
constructor(private readonly authService: AuthService) { }
+ //Comentar en producciòn
+
+ @Post('update')
+ async update(@Body() user:Update) {
+ return this.authService.updateCorreo(user.id,user.nombreNuevo);
+ }
+
+ @Get('findAll')
+ async findAll(){
+ this.authService.all()
+
+ }
@Post('login')
@AuthDocumentation.login()
diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts
index e161071..b7502fd 100644
--- a/src/auth/auth.service.ts
+++ b/src/auth/auth.service.ts
@@ -41,8 +41,23 @@ export class AuthService {
};
}
+ async updateCorreo(id:string, nombreNuevo:string){
+ console.log("id: ", id, "nombre: ", nombreNuevo)
+ const usuarios=await this.userRepo.findOne({where:{id_usuario:id}})
+ console.log(usuarios)
+ if(!usuarios){throw new Error("usuaro no existe")}
+ usuarios.correo=nombreNuevo;
+
+ return await this.userRepo.save(usuarios);
+ }
+ async all(){
+
+ const usuarios=await this.userRepo.find()
+ console.log(usuarios)
+
+ }
async register(dto: RegisterDto) {
// 1) Verificar duplicado
diff --git a/src/excel/excel.controller.ts b/src/excel/excel.controller.ts
index 928f7c3..4e13b96 100644
--- a/src/excel/excel.controller.ts
+++ b/src/excel/excel.controller.ts
@@ -41,10 +41,25 @@ export class ExcelController {
html: `
La carga de datos se ha realizado con éxito ${alta}
`,
});
- await this.excelService.enviarCargaMasiva();
-
-
+ if(alta.at){
+ await this.excelService.enviarInforme('AT',"Carga Individual de datos en Servicios PCpuma",
+ `Se ha hecho una carga individual en el sistema`)
+ }
+ if(alta.red){
+ await this.excelService.enviarInforme('RED',"Carga Individual de datos en Servicios PCpuma",
+ `Se ha hecho una carga individual en el sistema`)
+ }
+
+ if(alta.solicita){
+ await this.excelService.enviarInforme('SOLICITA',"Carga Individual de datos en Servicios PCpuma",
+ `Se ha hecho una carga individual en el sistema` )
+ }
+
+ if(alta.correo){
+ await this.excelService.enviarInforme('CORREO',"Carga Individual de datos en Servicios PCpuma",
+ `Se ha hecho una carga individual en el sistema`)
+ }
}
@@ -121,24 +136,29 @@ export class ExcelController {
${result.errors.map(error => `- ${error}
`).join('')}
`,
});
- await this.excelService.enviarCargaMasiva();
+ // await this.excelService.enviarCargaMasiva();
+ if(result.conteoTiposAt>0){
- await this.excelService.enviarInforme('AT',"Carga de datos en Servicios PCpuma",
- `Se ha hecho una carga en el sistema \n ${result.conteoTiposAt}`
- )
+ await this.excelService.enviarInforme('AT',"Carga de datos en Servicios PCpuma",
+ `Se ha hecho una carga en el sistema de \n ${result.conteoTiposAt} usarios`)
+ }
+ if(result.conteoTiposRed>0){
+ await this.excelService.enviarInforme('RED',"Carga de datos en Servicios PCpuma",
+ `Se ha hecho una carga en el sistema \n ${result.conteoTiposRed} usarios`)
+ }
- await this.excelService.enviarInforme('RED',"Carga de datos en Servicios PCpuma",
- `Se ha hecho una carga en el sistema \n ${result.conteoTiposRed}`
- )
-
- await this.excelService.enviarInforme('SOLICITA',"Carga de datos en Servicios PCpuma",
- `Se ha hecho una carga en el sistema \n ${result.conteoTiposCorreo}`
- )
-
- await this.excelService.enviarInforme('CORREO',"Carga de datos en Servicios PCpuma",
- `Se ha hecho una carga en el sistema \n ${result.conteoTiposCorreo}`
- )
+
+ if(result.conteoTiposSolicita>0){
+ await this.excelService.enviarInforme('SOLICITA',"Carga de datos en Servicios PCpuma",
+ `Se ha hecho una carga en el sistema \n ${result.conteoTiposSolicita} usarios` )
+ }
+
+ if(result.conteoTiposCorreo>0){
+ await this.excelService.enviarInforme('CORREO',"Carga de datos en Servicios PCpuma",
+ `Se ha hecho una carga en el sistema \n ${result.conteoTiposCorreo} usarios`)
+ }
+
diff --git a/src/excel/excel.service.ts b/src/excel/excel.service.ts
index 96ed89e..0441ff6 100644
--- a/src/excel/excel.service.ts
+++ b/src/excel/excel.service.ts
@@ -209,10 +209,10 @@ export class ExcelService {
);
}
- const conteoTiposRed: Record = {};
- const conteoTiposAt: Record = {};
- const conteoTiposSolicita: Record = {};
- const conteoTiposCorreo: Record = {};
+ let conteoTiposRed: number=0;
+ let conteoTiposAt: number=0;
+ let conteoTiposSolicita: number=0;
+ let conteoTiposCorreo: number=0;
const queryRunner = this.dataSource.createQueryRunner();
await queryRunner.connect();
@@ -361,24 +361,24 @@ export class ExcelService {
switch (r.tipo.trim()) {
case 'Diplomado':
Object.assign(servData, { Correo: true });
- conteoTiposCorreo[r.tipo] = (conteoTiposCorreo[r.tipo] ?? 0) + 1;
+ conteoTiposCorreo++;
break;
case 'Extra Largo':
Object.assign(servData, { Correo: true, Prestamos: true });
- conteoTiposCorreo[r.tipo] = (conteoTiposCorreo[r.tipo] ?? 0) + 1;
- conteoTiposSolicita[r.tipo] = (conteoTiposSolicita[r.tipo] ?? 0) + 1;
+ conteoTiposCorreo++;
+ conteoTiposSolicita++;
break;
case 'Servicio Social':
Object.assign(servData, { Correo: true, AT: true, Red: true });
- conteoTiposCorreo[r.tipo] = (conteoTiposCorreo[r.tipo] ?? 0) + 1;
- conteoTiposAt[r.tipo] = (conteoTiposAt[r.tipo] ?? 0) + 1;
- conteoTiposRed[r.tipo] = (conteoTiposRed[r.tipo] ?? 0) + 1;
+ conteoTiposCorreo++;
+ conteoTiposAt++;
+ conteoTiposRed++;
break;
case 'Idiomas R (UNAM)':
case 'Idiomas Sabatino':
Object.assign(servData, { Correo: true, Red: true });
- conteoTiposCorreo[r.tipo] = (conteoTiposCorreo[r.tipo] ?? 0) + 1;
- conteoTiposRed[r.tipo] = (conteoTiposRed[r.tipo] ?? 0) + 1;
+ conteoTiposCorreo++;
+ conteoTiposRed++;
break;
case 'Reinscrito':
case 'Posgrado':
@@ -393,14 +393,14 @@ export class ExcelService {
Red: true,
Prestamos: true,
});
- conteoTiposCorreo[r.tipo] = (conteoTiposCorreo[r.tipo] ?? 0) + 1;
- conteoTiposRed[r.tipo] = (conteoTiposRed[r.tipo] ?? 0) + 1;
- conteoTiposAt[r.tipo] = (conteoTiposAt[r.tipo] ?? 0) + 1;
- conteoTiposSolicita[r.tipo] = (conteoTiposSolicita[r.tipo] ?? 0) + 1;
+ conteoTiposCorreo++;
+ conteoTiposRed++;
+ conteoTiposAt++;
+ conteoTiposSolicita++;
break;
case 'Trabajadores':
Object.assign(servData, { Red: true });
- conteoTiposRed[r.tipo] = (conteoTiposRed[r.tipo] ?? 0) + 1;
+ conteoTiposRed++;
break;
}
@@ -418,6 +418,7 @@ export class ExcelService {
await queryRunner.manager.save(serviciosActivos);
await queryRunner.commitTransaction();
+
return {
inserted: rows.length - contador,
@@ -579,6 +580,7 @@ export class ExcelService {
],
});
+
const header = [
'num_cuenta', 'nombre', 'a_paterno', 'a_materno',
'carreras', 'rfc', 'tipos_usuario'
@@ -605,7 +607,7 @@ export class ExcelService {
}).join('\n');
const tablaCompleta = header + rows;
-
+ console.log("rows:",rows)
return tablaCompleta;
}
diff --git a/src/usuarios/usuarios.controller.ts b/src/usuarios/usuarios.controller.ts
index 9625640..2764ea1 100644
--- a/src/usuarios/usuarios.controller.ts
+++ b/src/usuarios/usuarios.controller.ts
@@ -16,6 +16,11 @@ export class UsuariosController {
finsdAll() {
return this.usuariosService.enviarSolicitud();
}
+ @Get("mov/:move")
+ findByMov(@Param('move') move:number){
+ return this.usuariosService.findByMov(move);
+ }
+
@Get(':noCuenta')
findOne(@Param('noCuenta') noCuenta: string) {
diff --git a/src/usuarios/usuarios.service.ts b/src/usuarios/usuarios.service.ts
index 36087d5..f2de791 100644
--- a/src/usuarios/usuarios.service.ts
+++ b/src/usuarios/usuarios.service.ts
@@ -43,6 +43,33 @@ export class UsuariosService {
return 'This action adds a new usuario';
}
+
+
+ async findByMov(id:number){
+ const usuarios = await this.usuarioRepository.find({
+ where: {
+ //movimiento:{id_mov:id},
+
+ servActivo: {
+ PrestamosStatus: 'Inactivo', // solo los que no tienen servicio activo
+ Prestamos: true, // solo los que tienen el servicio de préstamos activo
+ }
+
+ },
+ relations: [
+ 'usuarioTipos',
+ 'usuarioTipos.tipoUsuario',
+ 'servActivo'
+ ],
+
+ });
+ if(!usuarios)throw new Error("No existe suauarios relacionados a ese movimiento");
+ return usuarios;
+
+
+
+ }
+
async findOneStatus(noCuenta: string) {
const usuario = await this.usuarioRepository.findOne({
where: { num_cuenta: noCuenta },
@@ -434,6 +461,7 @@ export class UsuariosService {
async cargaIndividual(usuario: CreateUsuarioDto, origen: string) {
+ console.log('Iniciando carga individual para usuario:', usuario);
const queryRunner = this.usuarioRepository.manager.connection.createQueryRunner();
await queryRunner.connect();
await queryRunner.startTransaction();
@@ -525,7 +553,10 @@ export class UsuariosService {
await queryRunner.manager.save(usuarioTipo);
-
+ let at:boolean=false;
+ let correo:boolean=false;
+ let red:boolean=false;
+ let solicita:boolean=false;
switch (usuario.tipo_usuario.trim()) {
@@ -540,8 +571,8 @@ export class UsuariosService {
CorreoStatus: 'Inactivo',
PrestamosStatus: 'Inactivo',
});
+ correo=true;
await queryRunner.manager.save(servActivosDiplomado);
-
break;
case 'Extra Largo':
@@ -555,6 +586,8 @@ export class UsuariosService {
PrestamosStatus: 'Inactivo',
});
+ solicita=true;
+ correo=true;
await queryRunner.manager.save(servActivosExtraLargo);
break;
@@ -569,6 +602,9 @@ export class UsuariosService {
CorreoStatus: 'Inactivo',
PrestamosStatus: 'Inactivo',
});
+ at=true;
+ red=true;
+ correo=true;
await queryRunner.manager.save(servActivosServicio);
break;
@@ -585,6 +621,8 @@ export class UsuariosService {
CorreoStatus: 'Inactivo',
PrestamosStatus: 'Inactivo',
});
+ red=true;
+ correo=true;
await queryRunner.manager.save(servActivosIdiomas);
break;
@@ -611,6 +649,10 @@ export class UsuariosService {
CorreoStatus: 'Inactivo',
PrestamosStatus: 'Inactivo',
});
+ at=true;
+ red=true;
+ correo=true;
+ solicita=true;
await queryRunner.manager.save(servActivos);
break;
@@ -624,6 +666,7 @@ export class UsuariosService {
RedStatus: 'Inactivo',
});
+ red=true;
await queryRunner.manager.save(servActivosTrabajadores);
break;
}
@@ -634,7 +677,7 @@ export class UsuariosService {
- return { saved: savedUser, movId: mov.id_mov };
+ return { saved: savedUser, movId: mov.id_mov, at, correo, red, solicita };
} catch (error) {
await queryRunner.rollbackTransaction();