Actualizar Honduras y dist validado para produccion

This commit is contained in:
2026-09-09 11:17:28 -04:00
parent ca7595b346
commit 9cf20a3db4
21 changed files with 5148 additions and 6 deletions
+111
View File
@@ -0,0 +1,111 @@
# Validación — Cruce de Cuentas GLM · Honduras
## Datos reales utilizados
Se validó la lógica contra cuatro períodos reales:
- Junio 2026 · Quincena 15
- Junio 2026 · Quincena 30 / fin de mes
- Julio 2026 · Quincena 15
- Julio 2026 · Quincena 30 / fin de mes
Se utilizaron los Excel reales de nómina, los CSV BAC de planes AR94/AR95US y el reporte completo de BambooHR proporcionado para las pruebas.
## Normalización de nómina
| Período | Filas válidas | Total HNL | Total USD |
|---|---:|---:|---:|
| Junio Q15 | 266 | 2,111,731.15 | 0.00 |
| Junio Q30 | 332 | 1,810,119.17 | 23,474.54 |
| Julio Q15 | 264 | 1,450,958.81 | 0.00 |
| Julio Q30 | 336 | 1,760,132.78 | 24,013.15 |
## Parser bancario
| Período | Transacciones | Total HNL | Total USD |
|---|---:|---:|---:|
| Junio Q15 | 266 | 2,128,362.38 | 0.00 |
| Junio Q30 | 508 | 4,603,602.47 | 43,859.02 |
| Julio Q15 | 264 | 1,450,959.26 | 0.00 |
| Julio Q30 | 337 | 1,760,133.30 | 24,780.81 |
Los archivos bancarios de junio Q30 incluyen envíos del 23/06 y 30/06; ambos pertenecen a la segunda mitad del mes y por diseño se auditan dentro de Q30. Por eso existen pagos “Banco sin nómina” correspondientes a envíos adicionales del período.
## Resultado del reconciliador final
| Período | Coincidencias | Discrepancias | Banco sin nómina | Banco sin Bamboo | Diferencias nombre banco | Cuenta mal digitada |
|---|---:|---:|---:|---:|---:|---:|
| Junio Q15 | 143 | 122 | 0 | 5 | 1 | 1 |
| Junio Q30 | 331 | 0 | 176 | 5 | 5 | 1 |
| Julio Q15 | 263 | 0 | 0 | 4 | 1 | 1 |
| Julio Q30 | 335 | 0 | 1 | 5 | 3 | 1 |
### Redondeos
La validación final aplica una tolerancia de hasta 0.05. Esto elimina falsos positivos de 0.01 observados repetidamente y el caso real de 0.03 USD, sin ocultar diferencias materiales. En Junio Q15, después de eliminar únicamente esos redondeos, las 122 discrepancias restantes empiezan en 58.18 HNL, por lo que siguen siendo hallazgos materiales.
### Cuenta mal digitada confirmada
El caso consistente en los períodos es **Brenda Baquedano**:
- Nómina: `745899511`
- Banco: `745899611`
Durante una revisión preliminar se había señalado también a Harold Panchame en junio Q30. La revisión directa del Excel original mostró que la celda de nómina contiene `756669711.0`, que normaliza a `756669711`, exactamente igual al banco; por tanto el reconciliador final no lo clasifica como cuenta mal digitada.
### Diferencias de nombre banco
La regla final distingue truncamientos normales del archivo bancario de diferencias reales:
- `Oscar Rene Flores Alvarad` vs `OSCAR RENE FLORES ALVARADO` se considera truncamiento y no genera falso positivo.
- `Erick Santaigo Herrera He` vs `ERICK SANTIAGO HERRERA HERRERA` sigue reportándose porque contiene una diferencia interna de escritura.
- Los registros de `Suhan Gonzales` vs `SUHAN ELIZABETH GONZALEZ DUBON` siguen reportándose cuando aparecen.
### BambooHR
El normalizador identifica 456 registros de Honduras en el reporte completo utilizado para prueba. Se corrigió el caso ambiguo de `Suyapa Palma`: cuando el nombre corto coincide con un registro histórico y el nombre completo del cuentahabiente identifica de forma única a `Suyapa Melisa Palma Aguilar`, el workflow prioriza el nombre legal completo y evita un falso “Banco sin Bamboo”.
## Gemini / todas las quincenas y años
El fallback determinista y el flujo Gemini fueron probados con:
- `Nomina 6.1 2026 GLM HN.xlsx` → junio 1–15.
- `Nomina 6.2 2026 GLM HN.xlsx` → junio 16–30.
- `Nomina 7.1 2026 GLM HN.xlsx` → julio 1–15.
- `Nomina 7.2 2026 GLM HN.xlsx` → julio 16–31.
- Febrero 2027 → segunda quincena 16–28.
- Febrero 2028 → segunda quincena 16–29 (bisiesto).
- Diciembre 2031 → segunda quincena 16–31.
El último día se calcula en tiempo de ejecución; no está fijado a 30 y no depende de 2026.
## App / dist
Validaciones realizadas sobre el paquete final:
- `CountryCode` incluye `HN`.
- Configuración HN usa HNL, `es-HN` y la URL exacta de la bandera proporcionada.
- Webhook principal HN incorporado.
- Endpoint de Históricos HN incorporado.
- Endpoint de Marcar Resuelto HN incorporado.
- Modal de corrección muestra Melody Chang Blandin.
- El JavaScript compilado `dist/assets/index-pa.js` pasó `node --check`.
- `index.html`, JavaScript, CSS y favicon fueron servidos localmente bajo `/cruce-cuentas/` y respondieron HTTP 200.
- Los 16 archivos TypeScript/TSX de `src` pasaron una validación de sintaxis con TypeScript `transpileModule` sin errores.
### Nota sobre el build
El entorno aislado usado para preparar esta entrega no pudo completar una instalación nueva de dependencias desde npm. Por ello no se afirma que se haya ejecutado un `npm run build` fresco en esta sesión. El `dist` final parte del `dist` de El Salvador que el usuario ya había probado y desplegado, fue actualizado directamente con las mismas incorporaciones HN del código fuente y luego fue validado por sintaxis y servido estáticamente bajo la ruta real `/cruce-cuentas/`.
## n8n
Los cinco JSON finales:
- parsean como JSON;
- están en `active: false`;
- tienen nombres e IDs de nodo únicos dentro de cada workflow;
- no contienen conexiones hacia nodos inexistentes;
- conservan los paths esperados;
- los nodos Code pasan validación de sintaxis JavaScript;
- las correcciones HN se dirigen a `mchang@gomezleemarketing.com`;
- el reporte general HN contiene los seis destinatarios definidos.