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

134 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Implementación — Cruce de Cuentas GLM · Honduras (HN)
## Alcance
Esta entrega agrega Honduras al portal centralizado sin retirar Guatemala (GT), Trinidad y Tobago (TT), Panamá (PA), El Salvador (SV) ni Bono 14 Guatemala.
Honduras queda configurado con:
- Código: `HN`
- Nombre: `Honduras`
- Moneda principal: `HNL`
- Soporte de pagos en `USD` dentro del mismo archivo de nómina
- Locale: `es-HN`
- Bandera: `https://dbit.digitalcompass.agency/storage/v1/object/public/public-assets/Bandera%20de%20Honduras.webp`
- Responsable de correcciones BambooHR: Melody Chang Blandin — `mchang@gomezleemarketing.com`
## Archivos n8n
### Nuevos
1. `Portal de Verificación de Nómina - Honduras.json`
- Webhook de producción: `/webhook/nominahn-bamboo-test`
- Recibe un Excel de nómina y uno o varios CSV bancarios.
- Procesa planes BAC AR94 (HNL) y AR95US (USD).
- Genera/reutiliza el Google Sheet del período, registra el histórico en Supabase y envía el reporte.
2. `Portal de Verificación de Nómina Honduras - Históricos.json`
- Webhook: `/webhook/cruce-cuentas-hn-historicos`
- Consulta únicamente históricos `country = HN`.
3. `Portal de Verificación de Nómina Honduras - Envío de Reporte.json`
- Webhook: `/webhook/cruce-cuentas-hn-marcar-resuelto`
- Marca únicamente reportes HN como resueltos y envía la notificación correspondiente.
### Actualizaciones compartidas
4. `Portal de Verificación de Nómina - Analizar Nómina con Gemini GT TT PA SV HN.json`
- Conserva el webhook existente `/webhook/cruce-cuentas-analizar-nomina`.
- Agrega HN al validador, esquema, prompt y normalizador.
- Reconoce nombres compactos de Honduras como `Nomina 7.1 2026 GLM HN.xlsx` y `Nomina 7.2 2026 GLM HN.xlsx`.
- Calcula dinámicamente 1–15 y 16–último día real del mes, incluyendo febrero y años bisiestos.
5. `Portal de Verificación de Nómina - Reportar corrección BambooHR a RRHH - GT TT PA SV HN.json`
- Conserva el webhook existente `/webhook/cruce-cuentas-bamboo-correccion`.
- Agrega HN y envía las correcciones de Honduras exclusivamente a `mchang@gomezleemarketing.com`.
> Los dos workflows compartidos usan los mismos paths que los workflows actuales. No deben quedar dos versiones activas con el mismo webhook. Actualiza/reemplaza la versión existente o desactiva la anterior antes de publicar la nueva.
## Destinatarios de reportes generados de Honduras
El workflow principal usa estos seis destinatarios:
```javascript
const to = [
'iaracena@gomezleemarketing.com',
'jgomez@gomezleemarketing.com',
'mgomez@gomezleemarketing.com',
'vparamo@gomezleemarketing.com',
'ymadera@gomezleemarketing.com',
'adminregional@gomezleemarketing.com',
].join(',');
```
## Nómina Honduras soportada
El workflow procesa las hojas reales observadas en junio/julio de 2026, con tolerancia a hojas opcionales ausentes:
- Colgate Base
- Colgate Combustible
- POP Helper Base
- POP Helper Combustible
- Motorola Base
- Motorola Temporales
- Motorola KAM Dolares
- Nestle Base
- Nestle Combustible
- Whirlpool Base
- Whirlpool Combustible
- FF Regional WH Base
- FF Regional WH Combustible
- GLM Base Lempiras
- GLM Combustible Lempiras
- GLM Dolares Base
- GLM Dolares Combustible
Las cuentas se preservan como texto y los montos se separan por moneda HNL/USD.
## Regla de redondeo
Para Honduras, una diferencia absoluta de hasta `0.05` entre nómina y banco se considera redondeo operativo y no una discrepancia. Los archivos reales mostraron diferencias de 0.01 y un caso USD de 0.03. Diferencias superiores continúan reportándose.
## Supabase
Ejecuta `SUPABASE_Honduras_READY.sql` antes de activar los workflows.
El script:
- Agrega `HN` a los constraints de aliases BambooHR, correcciones e históricos.
- Agrega `HN` al constraint `paises` de `cruce_cuentas_usuarios_autorizados`.
- Agrega HN a **todos los usuarios actuales**, preservando los demás permisos.
- Actualiza `cruce_cuentas_bamboo_aliases_activos` para cinco países.
- Actualiza `cruce_cuentas_get_historicos` para cinco países.
- Actualiza `cruce_cuentas_get_banco_sin_bamboo_reporte` para cinco países.
- Conserva la tabla histórica compartida `cruces_cuentas_gt_reportes`; el nombre es legado, la tabla es multi-país.
## App
Variables Honduras incorporadas:
```env
VITE_N8N_HONDURAS_WEBHOOK_URL="https://agenteit.digitalcompass.agency/webhook/nominahn-bamboo-test"
VITE_HISTORICOS_HN_URL="https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-hn-historicos"
VITE_MARCAR_RESUELTO_HN_URL="https://agenteit.digitalcompass.agency/webhook/cruce-cuentas-hn-marcar-resuelto"
```
El selector de país incluye Honduras y el `dist` entregado ya contiene la configuración HN, los tres endpoints, la bandera y el destinatario de correcciones.
## Orden de implementación recomendado
1. Ejecutar `SUPABASE_Honduras_READY.sql` y verificar que todos los usuarios tengan `HN` en `paises`.
2. Importar el workflow nuevo **Portal de Verificación de Nómina - Honduras** y revisar credenciales.
3. Importar **Honduras - Históricos**.
4. Importar **Honduras - Envío de Reporte / Marcar Resuelto**.
5. Reemplazar/actualizar el workflow compartido de Gemini; no dejar activa la versión anterior con el mismo webhook.
6. Reemplazar/actualizar el workflow compartido de correcciones BambooHR; no dejar activa la versión anterior con el mismo webhook.
7. Publicar/activar los cinco workflows una vez revisadas las credenciales.
8. Desplegar exactamente el contenido de `dist` del ZIP de aplicación bajo `/cruce-cuentas/`.
9. Hacer una prueba controlada de una Q15 y una Q30 desde la aplicación.
10. Verificar Históricos, “Marcar resuelto” y un caso de “Reportar a RRHH”.
## Estado de activación de los JSON
Los cinco JSON entregados tienen `active: false` intencionalmente para una importación segura. Actívalos únicamente después de confirmar credenciales y de evitar duplicidad de webhooks compartidos.