diff --git a/src/excel/excel.service.ts b/src/excel/excel.service.ts index caa0823..3441db9 100644 --- a/src/excel/excel.service.ts +++ b/src/excel/excel.service.ts @@ -651,8 +651,7 @@ export class ExcelService { }); usuarios.push(usuario); - idsUsuarios.push(usuario.id_usuario) - + if (carrera) { const carreraUsuario = queryRunner.manager.create(CarreraUsuario, { usuario, @@ -735,7 +734,10 @@ export class ExcelService { // 1️⃣ Guardar usuarios primero — asigna IDs await queryRunner.manager.save(usuarios); - + idsUsuarios = usuarios.map(u => u.id_usuario); + idsUsuarios.push( + ...existentes.map(e => e.id_usuario) + ); // 2️⃣ Reconstruir relaciones con usuarios ya guardados // CarreraUsuario @@ -791,23 +793,29 @@ export class ExcelService { await queryRunner.manager.save(usuariosTiposFinal); await queryRunner.manager.save(serviciosActivosFinal); - - await this.servActivosRepo - .createQueryBuilder() - .update() - .set({ - Red: false, - Prestamos: false, - AT: false, - Correo: false, - RedStatus: 'Inactivo', - PrestamosStatus: 'Inactivo', - ATStatus: 'Inactivo', - CorreoStatus: 'Inactivo', - }) - .where('id_usuario NOT IN (:...ids)', { ids: idsUsuarios }) - .execute(); + await this.servActivosRepo + .createQueryBuilder('sa') + .leftJoin( + Usuario, + 'u', + 'u.id_usuario = sa.id_usuario AND u.id_usuario IN (:...ids)', + { ids: idsUsuarios }, + ) + .update() + .set({ + Red: false, + Prestamos: false, + AT: false, + Correo: false, + RedStatus: 'Inactivo', + PrestamosStatus: 'Inactivo', + ATStatus: 'Inactivo', + CorreoStatus: 'Inactivo', + }) + .where('u.id_usuario IS NULL') + .execute(); + return {