183 lines
8.6 KiB
Markdown
183 lines
8.6 KiB
Markdown
# Cruce de Cuentas GLM — República Dominicana (RD)
|
|
|
|
## Objetivo
|
|
|
|
Dejar República Dominicana integrada al Portal de Cruce de Cuentas con una lógica reutilizable cada quincena, todos los meses y años, usando la misma arquitectura multi-país ya existente.
|
|
|
|
Configuración RD:
|
|
|
|
- Código: `RD`
|
|
- Moneda: `DOP`
|
|
- Locale: `es-DO`
|
|
- Zona horaria: `America/Santo_Domingo`
|
|
- RRHH destinataria de reportes: **Noralmy Laureano** — `nlaureano@gomezleemarketing.com`
|
|
- Bandera: `https://dbit.digitalcompass.agency/storage/v1/object/public/public-assets/Flag_of_the_Dominican_Republic.svg.webp`
|
|
|
|
## Archivos incluidos
|
|
|
|
### n8n
|
|
|
|
Importar desde `workflows_n8n/`:
|
|
|
|
1. `Portal de Verificación de Nómina - República Dominicana.json`
|
|
2. `Portal de Verificación de Nómina República Dominicana - Históricos.json`
|
|
3. `Portal de Verificación de Nómina República Dominicana - Envío de Reporte.json`
|
|
4. `Portal de Verificación de Nómina - Analizar Nómina con Gemini GT TT PA SV HN PR RD.json`
|
|
5. `Portal de Verificación de Nómina - Reportar corrección BambooHR a RRHH - GT TT PA SV HN PR RD.json`
|
|
|
|
Los workflows se entregan **inactivos** para que puedan importarse/configurarse sin disparar una ejecución accidental. Los dos workflows compartidos (Gemini y correcciones BambooHR) sustituyen las versiones equivalentes sin RD una vez validados.
|
|
|
|
### Supabase
|
|
|
|
Ejecutar:
|
|
|
|
`SUPABASE_Republica_Dominicana_READY.sql`
|
|
|
|
Este script habilita `RD` en las restricciones multi-país, accesos, alias BambooHR e históricos/RPC existentes. La tabla `cruces_cuentas_gt_reportes` conserva su nombre legado, pero funciona como tabla multi-país.
|
|
|
|
## Webhooks RD
|
|
|
|
- Cruce principal: `/webhook/nominard-bamboo-test`
|
|
- Históricos: `/webhook/cruce-cuentas-rd-historicos`
|
|
- Marcar resuelto: `/webhook/cruce-cuentas-rd-marcar-resuelto`
|
|
- Analizar nómina con Gemini: webhook compartido `/webhook/cruce-cuentas-analizar-nomina`
|
|
- Reportar corrección BambooHR: webhook compartido `/webhook/cruce-cuentas-bamboo-correccion`
|
|
|
|
La app ya contiene las variables `VITE_N8N_REPUBLICA_DOMINICANA_WEBHOOK_URL`, `VITE_HISTORICOS_RD_URL` y `VITE_MARCAR_RESUELTO_RD_URL`.
|
|
|
|
## Entrada esperada cada quincena
|
|
|
|
### Nómina
|
|
|
|
RD requiere **exactamente un Excel de nómina** (`.xlsx`, `.xls` o `.xlsm`) por período. El flujo valida que el archivo tenga filas de empleados cuyo campo `PERÍODO` corresponda al rango seleccionado en la app; si detecta empleados de otro período, se detiene para evitar cruzar una nómina equivocada.
|
|
|
|
Hojas operativas observadas y soportadas tras analizar las 16 nóminas de enero a agosto de 2026:
|
|
|
|
- `GLM RD `
|
|
- `Whirlpool`
|
|
- `Bice`
|
|
- `P&G`
|
|
- `KRAFT`
|
|
- `Motorola`
|
|
- `PMI`
|
|
- `Caribe`
|
|
- `Latam `
|
|
- `Purina`
|
|
- `Claro`
|
|
- `Essity`
|
|
|
|
Se excluyen hojas auxiliares como `Resumen`, `Validacion TSS`, `Validacion ISR`, `ISR`, `Calculo Horas extras`, `NVScriptsProperties`, AutoCrat, copias auxiliares como `Copia de Latam ` y hojas genéricas que no forman parte de la nómina operativa.
|
|
|
|
Campos utilizados: nombre, cuenta, `NETO A PAGAR`, `PERÍODO` y, cuando existen, cédula, referencia y correo.
|
|
|
|
### Banco
|
|
|
|
Se aceptan **uno o varios archivos CSV y/o PDF** de la misma quincena. Esto es indispensable en RD porque una quincena puede incluir lotes normales, temporales, suplementos y ACH separados.
|
|
|
|
El parser CSV soporta los formatos observados en 2026 y nombres de archivos como:
|
|
|
|
- BICE
|
|
- CLARO
|
|
- GLM
|
|
- Kraft
|
|
- LATAM
|
|
- Motorola
|
|
- P&G
|
|
- PMI
|
|
- Purina
|
|
- Temp Purina
|
|
- Temp Moto
|
|
- Whirlpool
|
|
- Essity / Temp Essity
|
|
- Bono BICE / Bono BICE inactivos
|
|
|
|
También admite sufijos de lote como `.1.csv` y normaliza el texto `N#U00f3minas` que aparece en algunos nombres exportados.
|
|
|
|
Los PDF BHD se interpretan como ACH complementarios. El flujo extrae beneficiario, cuenta, fecha efectiva, monto, estado, motivo, número de instrucción y descripción. La fecha de cada CSV/PDF se valida contra el período seleccionado.
|
|
|
|
## Reglas de conciliación RD
|
|
|
|
La lógica final está construida a partir de los cuatro reportes de entrenamiento de junio/julio 2026.
|
|
|
|
1. Se normalizan cuentas eliminando formato visual/ceros iniciales solo para comparación; el valor visible se conserva cuando corresponde.
|
|
2. La prioridad de match es **cuenta + monto**.
|
|
3. Cuando nómina no trae cuenta, se permite match por **nombre fuerte + monto**, evitando forzar coincidencias ambiguas.
|
|
4. Se usa tolerancia monetaria de **RD$0.05 por transacción**.
|
|
5. Un pago rechazado se conserva como hallazgo y puede explicar una discrepancia Nómina > Banco.
|
|
6. Antes de clasificar `Banco sin Nómina`, se hace una segunda búsqueda para detectar una **posible cuenta mal digitada** usando nombre/referencia/correo + monto.
|
|
7. Los suplementos `Bono BICE` se integran como pago esperado adicional para que formen parte del total de nómina de conciliación, igual que en el reporte patrón de 15-jun-2026.
|
|
8. `Banco sin Bamboo` es una revisión paralela y **no se suma a `Pendientes cruce principal`**, tal como muestran los reportes oficiales de entrenamiento.
|
|
9. Las diferencias de nombre bancario se mantienen como `Pendiente revisión`; no se fuerzan como identidad confirmada.
|
|
10. Diferencias agregadas insignificantes de centavos no generan una discrepancia si todas las transacciones individuales conciliaron dentro de tolerancia.
|
|
11. Las transacciones bancarias duplicadas exactas entre dos archivos/lotes provocan error para evitar doble contabilización.
|
|
|
|
## BambooHR
|
|
|
|
La consulta usa:
|
|
|
|
`/api/v1/reports/custom?format=JSON&onlyCurrent=false`
|
|
|
|
Esto permite validar también empleados históricos que pudieron participar en una quincena anterior. El filtro RD reconoce país/localización como `RD`, `República Dominicana`, `Dominican Republic` y variantes de localización dominicana.
|
|
|
|
El flujo usa Employee Number cuando está disponible y trabaja con alias de nombres. Las correcciones manuales confirmadas pueden persistirse en Supabase mediante el workflow compartido de correcciones.
|
|
|
|
## Reporte de salida
|
|
|
|
El Google Sheet conserva siempre las seis pestañas patrón de RD:
|
|
|
|
1. `01 Nómina vs Banco`
|
|
2. `02 Banco sin Nómina`
|
|
3. `03 Banco sin Bamboo`
|
|
4. `04 Diferencias nombre banco`
|
|
5. `05 Cuenta Mal Digitada`
|
|
6. `06 Resumen`
|
|
|
|
La pestaña 05 se crea incluso cuando no existen casos, para que el formato sea estable entre quincenas.
|
|
|
|
Las hojas se protegen para preservar datos calculados. La columna `Resolución` queda reservada para RRHH/administración autorizada; Noralmy Laureano está incluida entre las personas autorizadas para RD. El reporte también se comparte automáticamente con los accesos internos configurados.
|
|
|
|
## Correo RD
|
|
|
|
El correo automático del reporte generado se envía a:
|
|
|
|
`nlaureano@gomezleemarketing.com`
|
|
|
|
Utiliza branding GLM, bandera RD y muestra los indicadores relevantes del cruce. El workflow de `Marcar resuelto` también está adaptado a RD y utiliza la zona horaria de Santo Domingo.
|
|
|
|
## Históricos
|
|
|
|
Los históricos se guardan con `country = RD` y una identidad de período del tipo:
|
|
|
|
`RD-2026-06-quincena_15`
|
|
|
|
Si se vuelve a procesar el mismo período, la arquitectura reutiliza/actualiza el reporte existente y conserva resoluciones compatibles en lugar de crear duplicados innecesarios.
|
|
|
|
## Detección automática de período
|
|
|
|
Se actualizó el analizador compartido Gemini y el detector local de la app. Para RD se reconocen:
|
|
|
|
- día 15 → `quincena_15`
|
|
- día 30/31 → `quincena_30`
|
|
- último día real del mes → `quincena_30` (por ejemplo, 28/29 de febrero)
|
|
|
|
Se validaron correctamente los 16 nombres reales de nómina de enero a agosto de 2026.
|
|
|
|
## Orden de despliegue recomendado
|
|
|
|
1. Hacer respaldo de los workflows actualmente publicados.
|
|
2. Ejecutar `SUPABASE_Republica_Dominicana_READY.sql`.
|
|
3. Importar el workflow principal RD.
|
|
4. Importar Históricos RD.
|
|
5. Importar Envío de Reporte RD.
|
|
6. Reemplazar/actualizar el analizador compartido por la versión `... PR RD`.
|
|
7. Reemplazar/actualizar el workflow de correcciones BambooHR por la versión `... PR RD`.
|
|
8. Confirmar que las credenciales de BambooHR, Google Sheets/Drive y Gmail quedaron asociadas tras la importación.
|
|
9. Desplegar el frontend desde el código fuente actualizado (`npm ci && npm run build`).
|
|
10. Activar los cinco workflows una vez revisados los paths de webhook.
|
|
11. Ejecutar una prueba controlada con una de las cuatro quincenas conocidas y comparar con `VALIDACION_REPUBLICA_DOMINICANA_FINAL.md`.
|
|
12. Ejecutar después una quincena nueva/no entrenada antes de declararlo operación mensual definitiva.
|
|
|
|
## Nota de despliegue frontend
|
|
|
|
El `dist` heredado del ZIP original no debe usarse porque fue generado antes de incorporar RD. El entregable final de RD se prepara sin ese `dist` antiguo; el servidor de despliegue debe instalar dependencias y generar un `dist` nuevo desde el código fuente actualizado.
|