diff --git a/apps/api/src/services/regimen.service.ts b/apps/api/src/services/regimen.service.ts index eb752fe..2fa98fb 100644 --- a/apps/api/src/services/regimen.service.ts +++ b/apps/api/src/services/regimen.service.ts @@ -64,7 +64,24 @@ export async function getRegimenesActivosClavesEfectivos( if (rows.length > 0 && rows[0].regimen_fiscal) { return rows[0].regimen_fiscal.split(',').map((c: string) => c.trim()).filter(Boolean); } - return []; + // Fallback: si el contribuyente no tiene regimen_fiscal, usamos los del tenant + // para no perder la alerta si el campo quedó vacío accidentalmente. + const tenantRegimenes = await getRegimenesActivosClaves(tenantId); + if (tenantRegimenes.length > 0) return tenantRegimenes; + + const { rows: allRows } = await pool.query( + `SELECT DISTINCT regimen_fiscal FROM contribuyentes WHERE regimen_fiscal IS NOT NULL AND regimen_fiscal <> ''`, + ); + const set = new Set(); + for (const row of allRows) { + if (row.regimen_fiscal) { + for (const clave of row.regimen_fiscal.split(',')) { + const trimmed = clave.trim(); + if (trimmed) set.add(trimmed); + } + } + } + return Array.from(set); } const tenantRegimenes = await getRegimenesActivosClaves(tenantId);