Files
cruce-cuentas-glm-centralizado/VALIDACION_REPUBLICA_DOMINICANA_FINAL.md

157 lines
7.7 KiB
Markdown

# Validación final — República Dominicana
Fecha de revisión: 12-09-2026.
## Material analizado
Se analizaron de forma conjunta:
- las **16 nóminas RD** disponibles de enero a agosto de 2026 (Q15 y cierre de mes);
- los **62 archivos de pagos** disponibles para las cuatro quincenas de entrenamiento de junio/julio 2026;
- los **4 Excel oficiales de referencia** generados durante el entrenamiento;
- la arquitectura actual de la app multi-país;
- los workflows de Puerto Rico y los workflows compartidos de Gemini/corrección BambooHR utilizados como base estructural.
## Reportes patrón
| Período | Coincidencias | Discrepancias | Banco sin nómina | Banco sin Bamboo | Dif. nombre | Cuenta mal digitada | Pendientes principales | Total nómina ref. | Total banco ref. | Diferencia ref. |
| --- | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: | ---: |
| 15-jun-2026 | 257 | 1 | 0 | 7 | 2 | 0 | 3 | RD$4,665,382.94 | RD$4,644,692.08 | RD$20,690.86 |
| 30-jun-2026 | 213 | 1 | 0 | 8 | 2 | 0 | 3 | RD$4,148,894.42 | RD$4,134,786.57 | RD$14,107.85 |
| 15-jul-2026 | 213 | 0 | 0 | 8 | 2 | 0 | 2 | RD$4,008,539.03 | RD$4,008,539.04 | -RD$0.01 |
| 30-jul-2026 | 262 | 0 | 0 | 8 | 2 | 0 | 2 | RD$4,431,266.35 | RD$4,431,266.42 | -RD$0.07 |
## Regresión independiente sobre archivos originales
La lógica RD fue re-ejecutada offline contra los archivos de nómina/pago disponibles, sin utilizar como entrada los totales de los reportes de referencia.
### 15-jun-2026
Resultado reconstruido:
- 210 filas válidas de nómina.
- 48 suplementos `Bono BICE`.
- 258 movimientos bancarios totales, de los cuales 257 fueron procesados y 1 rechazado.
- 257 coincidencias.
- 1 discrepancia.
- 0 Banco sin nómina.
- 0 Nómina sin cuenta sin resolver.
- 0 posibles cuentas mal digitadas.
- 2 diferencias de nombre bancario.
- Total nómina: RD$4,665,382.94.
- Total banco procesado: RD$4,644,692.08.
- Diferencia: RD$20,690.86.
La discrepancia reconstruida corresponde a **Angel Leonardo Baez** y reproduce el caso de pago rechazado por banco.
### 30-jun-2026
Resultado reconstruido:
- 214 filas válidas de nómina.
- 213 movimientos bancarios procesados.
- 213 coincidencias.
- 1 discrepancia.
- 0 Banco sin nómina.
- 0 Nómina sin cuenta sin resolver.
- 0 posibles cuentas mal digitadas.
- 2 diferencias de nombre bancario.
- Total nómina: RD$4,148,894.42.
- Total banco: RD$4,134,786.57.
- Diferencia: RD$14,107.85.
La discrepancia reconstruida corresponde a **Edgar Jimenez De Los Santos**. El ACH adicional de **Jose Luis Ventura** por RD$22,661.00 se incorpora correctamente al conjunto bancario.
### 15-jul-2026
Resultado reconstruido:
- 213 filas válidas.
- 213 movimientos bancarios.
- 213 coincidencias.
- 0 discrepancias.
- 0 Banco sin nómina.
- 0 Nómina sin cuenta sin resolver.
- 0 posibles cuentas mal digitadas.
- 2 diferencias de nombre.
La conciliación transacción por transacción queda completa. Con redondeo monetario determinista por fila, Nómina y Banco quedan en RD$4,008,539.04. El reporte histórico mostraba RD$4,008,539.03 / diferencia -RD$0.01. Esa diferencia histórica es un artefacto agregado de redondeo y **no debe convertirse en discrepancia**, exactamente como se decidió durante el entrenamiento.
### 30-jul-2026
Resultado reconstruido:
- 262 filas válidas.
- 262 movimientos bancarios.
- 262 coincidencias.
- 0 discrepancias.
- 0 Banco sin nómina.
- 0 Nómina sin cuenta sin resolver.
- 0 posibles cuentas mal digitadas.
- 2 diferencias de nombre.
La conciliación por transacción queda completa. El flujo redondea de forma consistente y obtiene RD$4,431,266.42 tanto en Nómina como en Banco. El reporte histórico mostraba una diferencia agregada de -RD$0.07. Nuevamente, no existe una discrepancia real por empleado y el flujo no genera un falso hallazgo.
## Diferencias de nombre bancario
La regresión devuelve exactamente los **2 casos recurrentes** que sirvieron de referencia, sin agregar el falso positivo de Waldo Antonio Gonzales/Gonzalez:
- `GOMEZ PERERA JOSE LEOPOLDO F` frente a Yelida Gómez Lee.
- `JAILYN CHAU` frente a Elizabeth Carrasco.
La lógica fuzzy se ajustó para reconocer variaciones ortográficas cercanas/reordenamiento de tokens sin convertir coincidencias reales en “Diferencia nombre banco”.
## Nóminas enero-agosto 2026
Se confirmaron 16 archivos reales, uno por cada quincena disponible. El detector local de la app identifica correctamente los 16 períodos, incluyendo **28-feb-2026 como segunda quincena/cierre de mes**.
El flujo no depende de que el calendario termine en día 30; el último día real de febrero también se interpreta como `quincena_30`.
La nómina de 30-may-2026 tiene un total bruto notablemente superior al resto. No se modificó ni se “corrigió” automáticamente porque no existen pagos de mayo en el material recibido para validar si corresponde a pagos extraordinarios. El workflow procesará el archivo por sus filas reales y requerirá los archivos bancarios de esa misma quincena para conciliarlo.
## Pagos analizados
Los 62 archivos recibidos corresponden a junio/julio 2026 e incluyen CSV regulares, lotes temporales, suplementos y siete PDFs BHD. La lógica contempla que una quincena tenga múltiples lotes y archivos con sufijo `.1.csv`.
Los ACH PDF detectados incluyen pagos de Jose Luis Ventura, Reimon Perez y Jenny Salazar. La clasificación de origen del PDF se usa como información descriptiva; el match contable se sostiene en cuenta/monto/nombre, por lo que una descripción bancaria inconsistente no invalida un pago real.
## Validaciones técnicas realizadas
- Los 5 workflows RD/compartidos son JSON válido.
- No existen conexiones n8n hacia nodos inexistentes.
- Todos los Code nodes pasan validación sintáctica JavaScript.
- Los archivos `.ts/.tsx` modificados pasan transpilación sintáctica TypeScript.
- El workflow principal RD no conserva referencias operativas a Puerto Rico, USD, `es-PR` ni `America/Puerto_Rico`.
- Moneda RD: `DOP`.
- Locale: `es-DO`.
- Zona horaria: `America/Santo_Domingo`.
- BambooHR: `onlyCurrent=false`.
- Destinataria RRHH: `nlaureano@gomezleemarketing.com`.
- Bandera: URL suministrada para República Dominicana.
- Las 6 pestañas del reporte quedan siempre definidas.
- La protección de `Resolución` incluye a Noralmy para RD.
## Límite de la validación local
No se ejecutó una prueba **live** contra las credenciales reales de n8n/BambooHR/Google Workspace/Supabase desde este entorno. Por esa razón, aunque el paquete está preparado para importar y la lógica fue validada estáticamente y contra los archivos históricos, la condición final de “producción 100%” debe cerrarse con **una ejecución real controlada en n8n**.
En particular, los conteos históricos de `Banco sin Bamboo` (7/8) dependen de la foto real de BambooHR y de los alias almacenados en Supabase al momento de ejecutar. La lógica de consulta y filtrado está implementada, pero esos conteos no pueden reproducirse offline sin consultar BambooHR.
## Gate final de producción
RD puede declararse definitivamente “ready mensual” cuando una ejecución live cumpla simultáneamente:
- webhook RD recibe el Excel + todos los CSV/PDF de la quincena;
- período detectado/seleccionado coincide con `PERÍODO` de la nómina;
- BambooHR responde correctamente con `onlyCurrent=false`;
- se generan las 6 pestañas;
- el Google Sheet se comparte correctamente;
- Noralmy recibe el correo;
- histórico `country=RD` queda guardado;
- “Marcar resuelto” actualiza ese reporte;
- un segundo procesamiento del mismo período reutiliza el reporte y preserva resoluciones aplicables;
- una de las cuatro quincenas patrón reproduce sus hallazgos funcionales;
- una quincena nueva/no entrenada no arroja falsos positivos evidentes.
El detalle de la regresión también queda en `VALIDACION_RD_REGRESION.json`.