diff --git a/src/excel/excel.service.ts b/src/excel/excel.service.ts index caa0823..15c84e3 100644 --- a/src/excel/excel.service.ts +++ b/src/excel/excel.service.ts @@ -524,7 +524,7 @@ export class ExcelService { const queryRunner = this.dataSource.createQueryRunner(); await queryRunner.connect(); await queryRunner.startTransaction(); - + let idsUsuarios: number[] =[] try { const movimiento = await this.movimientoService.logger( queryRunner, @@ -587,7 +587,7 @@ export class ExcelService { const serviciosActivos: ServActivos[] = []; let contador = 0; - let idsUsuarios: number[] =[] + for (const r of rows) { if (setCuentas.has(r.cuenta) || (r.rfc && setRfcs.has(r.rfc))) { const use= existentes.find( u => u.num_cuenta === r.cuenta || u.rfc === r.rfc) @@ -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,8 +793,27 @@ export class ExcelService { await queryRunner.manager.save(usuariosTiposFinal); await queryRunner.manager.save(serviciosActivosFinal); + + - await this.servActivosRepo + + + return { + inserted: rows.length - contador, + id_movimiento: movimiento.id_mov, + errors: errs, + conteoTiposAt, + conteoTiposCorreo, + conteoTiposRed, + conteoTiposSolicita, + }; + } catch (err) { + await queryRunner.rollbackTransaction(); + throw err; + } finally { + await queryRunner.release(); + + await this.servActivosRepo .createQueryBuilder() .update() .set({ @@ -810,20 +831,7 @@ export class ExcelService { - return { - inserted: rows.length - contador, - id_movimiento: movimiento.id_mov, - errors: errs, - conteoTiposAt, - conteoTiposCorreo, - conteoTiposRed, - conteoTiposSolicita, - }; - } catch (err) { - await queryRunner.rollbackTransaction(); - throw err; - } finally { - await queryRunner.release(); + } }