Añadir README.md
This commit is contained in:
@@ -0,0 +1,597 @@
|
||||
# Cálculo de IR — Nicaragua
|
||||
|
||||
> Automatización mensual que procesa las nóminas de primera y segunda quincena, recalcula el Impuesto sobre la Renta de cada empleado, identifica diferencias y genera una memoria de cálculo completa para Administración.
|
||||
|
||||
---
|
||||
|
||||
## Información general
|
||||
|
||||
| Campo | Detalle |
|
||||
|---|---|
|
||||
| **Proyecto** | Cálculo de IR — Nicaragua |
|
||||
| **Área** | Administración / Nómina |
|
||||
| **Estado** | Listo para producción |
|
||||
| **Developer principal** | Isaac Aracena |
|
||||
| **Product Owner / Sponsor** | Máximo Gomez |
|
||||
| **IT Manager** | Luis Matos |
|
||||
| **Fecha de inicio** | 2026-07-10 |
|
||||
| **Fecha de cierre técnico** | 2026-07-15 |
|
||||
| **Tipo de iniciativa** | Automatización operativa mensual |
|
||||
| **Board de ejecución** | [Kan.bn — IR Nicaragua](https://pmit.digitalcompass.agency/cards/z7ms5z0ciw1k) |
|
||||
| **Repositorio** | [Gitea — ir-nicaragua](https://git.digitalcompass.agency/Isaac_Aracena/ir-nicaragua) |
|
||||
| **Workflow principal** | `Cálculo de IR - Nicaragua.json` |
|
||||
| **Workflow auxiliar** | Limpieza de archivos temporales de IR Nicaragua |
|
||||
|
||||
---
|
||||
|
||||
## Objetivo
|
||||
|
||||
### Problema que resuelve
|
||||
|
||||
Administración de Nicaragua utilizaba una memoria de cálculo de Excel para validar el IR mensual, pero debía copiar manualmente la información de cada empleado desde las nóminas de primera y segunda quincena. Aunque el Excel contenía las fórmulas fiscales, la digitación empleado por empleado consumía demasiado tiempo, aumentaba el riesgo de errores y dificultaba revisar oportunamente las diferencias del sistema de nómina.
|
||||
|
||||
### Solución implementada
|
||||
|
||||
El sistema presenta un formulario en n8n donde Administración selecciona el mes y el año, adjunta las dos nóminas en formato `.xlsx` y ejecuta la validación. El workflow lee automáticamente todas las pestañas operativas, cruza a los empleados, recalcula el IR, genera una memoria completa en Google Sheets y Excel, crea una pestaña exclusiva de diferencias y envía un resumen por correo.
|
||||
|
||||
### Usuarios y beneficiarios
|
||||
|
||||
- Administración de GomezLee Marketing Nicaragua.
|
||||
- Personal responsable de validar nómina e IR.
|
||||
- Recursos Humanos.
|
||||
- Dirección administrativa.
|
||||
- Dirección de Recursos Humanos.
|
||||
- Equipo de IT que monitorea la automatización.
|
||||
|
||||
---
|
||||
|
||||
## Arquitectura
|
||||
|
||||
### Diagrama general
|
||||
|
||||
```text
|
||||
Formulario n8n
|
||||
|
|
||||
|-- Mes
|
||||
|-- Año
|
||||
|-- Nómina Q1 (.xlsx)
|
||||
`-- Nómina Q2 (.xlsx)
|
||||
|
|
||||
v
|
||||
Conversión temporal de XLSX a Google Sheets
|
||||
|
|
||||
v
|
||||
Lectura de todas las pestañas operativas
|
||||
|
|
||||
v
|
||||
Normalización y cruce de empleados
|
||||
|
|
||||
v
|
||||
Recalculo independiente del IR
|
||||
|
|
||||
v
|
||||
Creación de memoria de cálculo
|
||||
|-- MEMORIA DE CALCULO
|
||||
`-- DIFERENCIAS
|
||||
|
|
||||
+--> Compartir Google Sheet
|
||||
+--> Exportar copia XLSX
|
||||
+--> Enviar correo HTML
|
||||
`--> Eliminar archivos temporales
|
||||
```
|
||||
|
||||
### Stack tecnológico
|
||||
|
||||
| Componente | Tecnología | Propósito |
|
||||
|---|---|---|
|
||||
| Automatización | n8n self-hosted | Orquestación del proceso |
|
||||
| Interfaz de entrada | n8n Form Trigger | Recepción de período y archivos |
|
||||
| Procesamiento | JavaScript nativo en Code nodes | Lectura lógica, normalización, cruce y cálculo |
|
||||
| Conversión de archivos | Google Drive API | Conversión temporal de XLSX a Google Sheets |
|
||||
| Lectura y escritura | Google Sheets API | Lectura multih hoja, fórmulas, formato y reporte |
|
||||
| Notificaciones | Gmail OAuth2 | Envío del correo HTML y del Excel adjunto |
|
||||
| Almacenamiento temporal | Google Drive | Archivos temporales durante la ejecución |
|
||||
| Infraestructura | Servidor corporativo GLM | Hosting de n8n |
|
||||
| Base de datos | No aplica | El flujo no requiere base de datos |
|
||||
|
||||
### Integraciones externas
|
||||
|
||||
| Sistema | Tipo de integración | Datos que fluyen |
|
||||
|---|---|---|
|
||||
| Google Drive | OAuth2 / REST API | Carga, conversión, exportación, permisos y eliminación |
|
||||
| Google Sheets | OAuth2 / REST API | Lectura de pestañas, escritura, fórmulas y formato |
|
||||
| Gmail | OAuth2 | Correo HTML y archivo Excel adjunto |
|
||||
| n8n Form | Trigger web | Mes, año y nóminas Q1/Q2 |
|
||||
|
||||
---
|
||||
|
||||
## Reglas de negocio
|
||||
|
||||
### Archivos de entrada
|
||||
|
||||
1. El formulario exige dos archivos: nómina de primera quincena y nómina de segunda quincena.
|
||||
2. Ambos archivos deben estar en formato `.xlsx`.
|
||||
3. Los dos libros deben corresponder al mismo mes y año seleccionados.
|
||||
4. La validación del período se realiza con el contenido de cada pestaña, no únicamente con el nombre del archivo.
|
||||
5. El archivo Q1 admite hojas con período del día 1 al 15.
|
||||
6. El archivo Q2 admite hojas del día 16 al 28, 29, 30 o 31 y hojas mensuales del día 1 al 28, 29, 30 o 31.
|
||||
7. Se excluyen automáticamente resúmenes, hojas auxiliares, copias de otros períodos, filas de totales y notas administrativas.
|
||||
|
||||
### Fuente monetaria para el cálculo
|
||||
|
||||
La fuente principal es la columna **Salario INSS**, porque representa el ingreso bruto sujeto a INSS antes de descontar el 7 %.
|
||||
|
||||
Cuando `Salario INSS` está vacío, se aplican los siguientes respaldos:
|
||||
|
||||
1. `Salario IR / 0.93`.
|
||||
2. `INSS Laboral / 0.07`.
|
||||
3. El registro se marca como dato derivado o incompleto.
|
||||
|
||||
No se utiliza `Total Ingresos` como fuente principal, porque puede incluir subsidios u otros conceptos no sujetos a INSS o IR.
|
||||
|
||||
### Cruce de empleados
|
||||
|
||||
El orden de coincidencia es:
|
||||
|
||||
1. Cédula normalizada.
|
||||
2. Número de INSS válido.
|
||||
3. Nombre normalizado.
|
||||
|
||||
El empleado no necesita permanecer en la misma hoja, proyecto o cliente entre las dos quincenas.
|
||||
|
||||
### Cálculo para personal quincenal
|
||||
|
||||
```text
|
||||
Ingreso sujeto mensual = Salario INSS Q1 + Salario INSS Q2
|
||||
INSS laboral = Ingreso sujeto mensual × 7 %
|
||||
Base imponible = Ingreso sujeto mensual − INSS laboral
|
||||
Proyección anual = Base imponible × 12
|
||||
```
|
||||
|
||||
A la proyección anual se le aplica la tabla progresiva del IR de Nicaragua.
|
||||
|
||||
### Cálculo para personal mensual
|
||||
|
||||
Para empleados incluidos en una hoja mensual dentro del archivo Q2:
|
||||
|
||||
```text
|
||||
Ingreso sujeto mensual = Salario INSS mensual de Q2
|
||||
```
|
||||
|
||||
No se busca una pareja en Q1 porque el valor de Q2 ya representa el mes completo.
|
||||
|
||||
### Tabla fiscal aplicada
|
||||
|
||||
| Renta anual | Porcentaje | Impuesto base | Exceso sobre |
|
||||
|---:|---:|---:|---:|
|
||||
| Hasta C$100,000.00 | 0 % | C$0.00 | C$0.00 |
|
||||
| C$100,000.01 a C$200,000.00 | 15 % | C$0.00 | C$100,000.00 |
|
||||
| C$200,000.01 a C$350,000.00 | 20 % | C$15,000.00 | C$200,000.00 |
|
||||
| C$350,000.01 a C$500,000.00 | 25 % | C$45,000.00 | C$350,000.00 |
|
||||
| Más de C$500,000.00 | 30 % | C$82,500.00 | C$500,000.00 |
|
||||
|
||||
### Comparación
|
||||
|
||||
```text
|
||||
Diferencia = IR registrado en nómina Q2 − IR esperado
|
||||
```
|
||||
|
||||
- Resultado negativo: la nómina retuvo menos IR del esperado.
|
||||
- Resultado positivo: la nómina retuvo más IR del esperado.
|
||||
- Diferencia absoluta menor o igual a C$1.00: tolerancia de redondeo.
|
||||
- Diferencia absoluta mayor a C$1.00: diferencia material.
|
||||
|
||||
### Estados del reporte
|
||||
|
||||
| Estado | Significado |
|
||||
|---|---|
|
||||
| `VALIDADO` | El IR se encuentra dentro de la tolerancia |
|
||||
| `DIFERENCIA IR` | Existe una diferencia material mayor a C$1.00 |
|
||||
| `SOLO EN 1RA QUINCENA` | El empleado no aparece en Q2 |
|
||||
| `SOLO EN 2DA QUINCENA` | El empleado no aparece en Q1 |
|
||||
| `DATO DERIVADO` | Se utilizó un respaldo o el cruce fue por nombre |
|
||||
| `DATO INCOMPLETO` | No fue posible obtener toda la información requerida |
|
||||
|
||||
Los empleados presentes en una sola quincena se muestran como **No comparables**; el flujo no presenta un cálculo parcial como si fuera una validación mensual completa.
|
||||
|
||||
### Colores del reporte
|
||||
|
||||
- **Rojo:** diferencia material de IR.
|
||||
- **Amarillo:** empleado presente en una sola quincena.
|
||||
- **Naranja:** dato incompleto.
|
||||
- **Azul:** dato derivado o emparejamiento por nombre.
|
||||
- **Sin alerta:** empleado validado.
|
||||
|
||||
---
|
||||
|
||||
## Reportes generados
|
||||
|
||||
### Pestaña `MEMORIA DE CALCULO`
|
||||
|
||||
Contiene a todos los empleados identificados y conserva la estructura de la memoria original:
|
||||
|
||||
- NSS, cédula, nombres, cargo, empresa y departamento.
|
||||
- Salario contractual, primera quincena y segunda quincena.
|
||||
- Total, INSS, base imponible y proyección anual.
|
||||
- Exceso, diferencia, porcentaje e impuesto base.
|
||||
- IR anual, IR mensual e IR quincenal.
|
||||
|
||||
La tabla fiscal y las columnas técnicas se mantienen ocultas para facilitar la lectura.
|
||||
|
||||
### Pestaña `DIFERENCIAS`
|
||||
|
||||
Muestra únicamente registros que requieren atención:
|
||||
|
||||
- Diferencias materiales.
|
||||
- Empleados presentes en una sola quincena.
|
||||
- Datos derivados.
|
||||
- Datos incompletos.
|
||||
|
||||
Incluye IR esperado, IR de nómina, diferencia, estado, interpretación, observación, hojas de origen y método de cruce.
|
||||
|
||||
### Correo HTML
|
||||
|
||||
El correo incluye:
|
||||
|
||||
- Branding y logo de GomezLee Marketing.
|
||||
- Período procesado.
|
||||
- Empleados Q1, Q2 y emparejados.
|
||||
- Diferencias materiales.
|
||||
- Empleados presentes en una sola quincena.
|
||||
- Datos por revisar.
|
||||
- Tabla con las principales diferencias.
|
||||
- Botón para abrir el Google Sheet.
|
||||
- Copia del reporte en formato Excel.
|
||||
|
||||
---
|
||||
|
||||
## Destinatarios y permisos
|
||||
|
||||
El correo y el acceso de edición al Google Sheet se asignan a:
|
||||
|
||||
| Nombre | Correo |
|
||||
|---|---|
|
||||
| Isaac Aracena | `iaracena@gomezleemarketing.com` |
|
||||
| Estefani Orozco | `administrativo@gomezleemarketing.com` |
|
||||
| Angie Carolina Chavez Silva | `administrativonicaragua@gomezleemarketing.com` |
|
||||
| Mati Soto Valenzuela | `msoto@gomezleemarketing.com` |
|
||||
| Iveth Herrera | `iherrera@gomezleemarketing.com` |
|
||||
| Máximo Gomez | `mgomez@gomezleemarketing.com` |
|
||||
|
||||
No existe modo de prueba en la versión de producción. Cada ejecución envía el correo y comparte el documento con las seis personas configuradas.
|
||||
|
||||
---
|
||||
|
||||
## Configuración y setup
|
||||
|
||||
### Prerrequisitos
|
||||
|
||||
- Acceso al servidor corporativo de n8n.
|
||||
- Google Drive API habilitada.
|
||||
- Google Sheets API habilitada.
|
||||
- Credencial OAuth2 de Google Drive en n8n.
|
||||
- Credencial OAuth2 de Google Sheets en n8n.
|
||||
- Credencial OAuth2 de Gmail en n8n.
|
||||
- Permisos de Google Workspace para crear, compartir y eliminar archivos.
|
||||
|
||||
### Credenciales requeridas
|
||||
|
||||
| Credencial | Uso |
|
||||
|---|---|
|
||||
| Google Drive OAuth2 | Conversión, exportación, permisos y eliminación |
|
||||
| Google Sheets OAuth2 | Lectura, escritura, fórmulas y formato |
|
||||
| Gmail OAuth2 | Envío del correo y adjunto |
|
||||
|
||||
> Nunca incluir tokens, secretos OAuth ni contraseñas en el repositorio.
|
||||
|
||||
### Variables de entorno
|
||||
|
||||
El proyecto no requiere variables de entorno adicionales ni cambios al servidor.
|
||||
|
||||
No necesita ExcelJS, `require()`, `NODE_FUNCTION_ALLOW_EXTERNAL`, Dockerfile personalizado ni paquetes npm externos.
|
||||
|
||||
### Instalación
|
||||
|
||||
```bash
|
||||
git clone https://git.digitalcompass.agency/Isaac_Aracena/ir-nicaragua.git
|
||||
cd ir-nicaragua
|
||||
```
|
||||
|
||||
1. Abrir n8n.
|
||||
2. Ir a **Workflows**.
|
||||
3. Seleccionar **Import from File**.
|
||||
4. Importar `Cálculo de IR - Nicaragua.json`.
|
||||
5. Confirmar las credenciales de Google Drive, Google Sheets y Gmail.
|
||||
6. Guardar y publicar el workflow.
|
||||
7. Copiar la Production URL del Form Trigger.
|
||||
8. Registrar la URL en Kan.bn y compartirla únicamente con usuarios autorizados.
|
||||
|
||||
### Workflow de limpieza
|
||||
|
||||
El workflow auxiliar revisa diariamente Google Drive y elimina archivos temporales cuyo nombre comienza con:
|
||||
|
||||
```text
|
||||
TMP_IR_NIC_
|
||||
```
|
||||
|
||||
Solo elimina temporales con más de 24 horas para cubrir ejecuciones interrumpidas.
|
||||
|
||||
---
|
||||
|
||||
## Cómo funciona
|
||||
|
||||
1. Administración abre el formulario.
|
||||
2. Selecciona mes y año.
|
||||
3. Adjunta Q1 y Q2.
|
||||
4. n8n valida los archivos.
|
||||
5. Google Drive los convierte temporalmente a Google Sheets.
|
||||
6. Google Sheets API enumera las pestañas.
|
||||
7. Se identifican las hojas operativas válidas.
|
||||
8. Se normalizan encabezados e identificadores.
|
||||
9. Se extrae Salario INSS y el IR de Q2.
|
||||
10. Se cruzan los empleados.
|
||||
11. Se recalcula el IR.
|
||||
12. Se crea la memoria completa.
|
||||
13. Se genera la pestaña `DIFERENCIAS`.
|
||||
14. Se comparte el Google Sheet.
|
||||
15. Se exporta el Excel.
|
||||
16. Gmail envía el correo.
|
||||
17. Se eliminan los temporales.
|
||||
18. El formulario muestra la confirmación.
|
||||
|
||||
### Triggers
|
||||
|
||||
| Trigger | Frecuencia | Descripción |
|
||||
|---|---|---|
|
||||
| n8n Form Trigger | Bajo demanda | Administración carga las nóminas |
|
||||
| Schedule Trigger de limpieza | Diario, 2:00 a. m. | Elimina temporales con más de 24 horas |
|
||||
|
||||
---
|
||||
|
||||
## Testing
|
||||
|
||||
### Regresión histórica
|
||||
|
||||
| Período | Empleados Q1 | Empleados Q2 | Emparejados | Diferencias > C$1 | Solo en una quincena |
|
||||
|---|---:|---:|---:|---:|---:|
|
||||
| Marzo 2026 | 208 | 230 | 194 | 12 | 32 |
|
||||
| Abril 2026 | 223 | 237 | 207 | 20 | 28 |
|
||||
| Mayo 2026 | 225 | 245 | 220 | 14 | 13 |
|
||||
|
||||
### Casos de prueba
|
||||
|
||||
| Caso | Resultado esperado | Estado |
|
||||
|---|---|---|
|
||||
| Q1 y Q2 válidos | Reporte, correo y permisos correctos | Validado |
|
||||
| Meses diferentes | Ejecución detenida | Validado |
|
||||
| Archivo no XLSX | Rechazo antes de procesar | Validado |
|
||||
| Hoja auxiliar | Excluida | Validado |
|
||||
| Empleado mensual | Cálculo con Q2 mensual | Validado |
|
||||
| Solo Q1 o solo Q2 | No comparable | Validado |
|
||||
| Sin Salario INSS | Valor derivado y marcado | Validado |
|
||||
| Diferencia ≤ C$1 | Redondeo | Validado |
|
||||
| Diferencia > C$1 | Alerta roja | Validado |
|
||||
| Error temporal de Google | Reintentos automáticos | Configurado |
|
||||
| Fallo antes de limpiar | Limpieza diaria | Configurado |
|
||||
|
||||
---
|
||||
|
||||
## Errores conocidos y troubleshooting
|
||||
|
||||
| Error | Causa probable | Solución |
|
||||
|---|---|---|
|
||||
| Form Trigger con `?` | Versión incompatible | Usar `typeVersion: 2.3` |
|
||||
| Error de `this.helpers` | Helper no soportado | Usar el workflow actual sin helpers |
|
||||
| Google no convierte el XLSX | Sesión vencida o archivo incompatible | Iniciar una ejecución nueva |
|
||||
| Error al aplicar formato | Columnas congeladas cortan celdas combinadas | Congelar solo filas |
|
||||
| No encuentra hojas válidas | Mes/año incorrecto | Revisar archivos y selección |
|
||||
| Coincidencia muy baja | Q1 y Q2 no corresponden | Cargar el mismo período |
|
||||
| Correo no enviado | OAuth Gmail vencido | Reconectar la credencial |
|
||||
| Permiso no creado | Restricción de Workspace | Revisar Google Admin |
|
||||
| Timeout | Libro grande o servicio lento | Revisar retries y timeout |
|
||||
| Temporales en Drive | Fallo antes de limpiar | Verificar workflow diario |
|
||||
|
||||
---
|
||||
|
||||
## Monitoreo
|
||||
|
||||
- Revisar **n8n → Executions** después de cada procesamiento.
|
||||
- Verde significa completado; rojo significa fallo.
|
||||
- Confirmar recepción del correo por los seis destinatarios.
|
||||
- Confirmar las pestañas `MEMORIA DE CALCULO` y `DIFERENCIAS`.
|
||||
- Confirmar el Excel adjunto.
|
||||
- Confirmar la eliminación de temporales.
|
||||
- Revisar el workflow de limpieza diariamente.
|
||||
|
||||
### Output esperado
|
||||
|
||||
1. Google Sheet con memoria completa.
|
||||
2. Pestaña de diferencias.
|
||||
3. Permisos de edición para seis destinatarios.
|
||||
4. Correo HTML.
|
||||
5. Excel adjunto.
|
||||
6. Confirmación final en el formulario.
|
||||
7. Eliminación de archivos temporales.
|
||||
|
||||
---
|
||||
|
||||
## Seguridad
|
||||
|
||||
- El formulario procesa datos sensibles de nómina.
|
||||
- La URL debe compartirse únicamente con personal autorizado.
|
||||
- No almacenar credenciales en el JSON.
|
||||
- No publicar los reportes mediante acceso público por enlace.
|
||||
- Eliminar temporales al finalizar.
|
||||
- No subir nóminas reales ni reportes con datos personales al repositorio.
|
||||
|
||||
---
|
||||
|
||||
## Estructura del repositorio
|
||||
|
||||
```text
|
||||
/ir-nicaragua
|
||||
├── README.md
|
||||
├── Cálculo de IR - Nicaragua.json
|
||||
├── n8n/
|
||||
│ ├── workflow-principal.json
|
||||
│ └── workflow-limpieza-temporales.json
|
||||
├── docs/
|
||||
│ ├── arquitectura.md
|
||||
│ ├── reglas-negocio.md
|
||||
│ └── pruebas-historicas.md
|
||||
├── CHANGELOG.md
|
||||
└── DECISIONS.md
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Changelog
|
||||
|
||||
### 2026-07-15 — v1.0.0
|
||||
|
||||
- Workflow listo para producción.
|
||||
- Formulario con Q1 y Q2.
|
||||
- Lectura dinámica de pestañas.
|
||||
- Cruce de empleados.
|
||||
- Cálculo progresivo de IR.
|
||||
- Memoria completa y pestaña de diferencias.
|
||||
- Branding GLM.
|
||||
- Correo HTML y Excel adjunto.
|
||||
- Permisos para seis destinatarios.
|
||||
- Limpieza de temporales.
|
||||
- Pruebas de marzo, abril y mayo.
|
||||
- Modo de prueba eliminado.
|
||||
|
||||
### 2026-07-13 — v0.9.0
|
||||
|
||||
- Ajustes de formato.
|
||||
- Corrección de alineaciones y cuadrícula.
|
||||
- Mejora de observaciones.
|
||||
- Ajuste automático de filas.
|
||||
- Corrección de celdas combinadas.
|
||||
|
||||
### 2026-07-10 — v0.1.0
|
||||
|
||||
- Inicio del proyecto.
|
||||
- Análisis de la memoria.
|
||||
- Análisis de nóminas.
|
||||
- Definición de reglas.
|
||||
|
||||
---
|
||||
|
||||
## Decisions log
|
||||
|
||||
### DEC-001 — Exigir ambas quincenas
|
||||
|
||||
- **Decisión:** Q1 y Q2 son obligatorias.
|
||||
- **Razón:** el IR depende de la suma real de ambas quincenas.
|
||||
|
||||
### DEC-002 — Usar Salario INSS
|
||||
|
||||
- **Decisión:** Salario INSS es la fuente principal.
|
||||
- **Razón:** la memoria descuenta por sí misma el 7 %.
|
||||
|
||||
### DEC-003 — No instalar módulos externos
|
||||
|
||||
- **Decisión:** usar APIs de Google.
|
||||
- **Razón:** no se puede modificar el servidor de n8n.
|
||||
|
||||
### DEC-004 — Tolerancia de C$1.00
|
||||
|
||||
- **Decisión:** reportar como material una diferencia absoluta mayor a C$1.
|
||||
- **Razón:** excluir redondeos normales.
|
||||
|
||||
### DEC-005 — Dos pestañas
|
||||
|
||||
- **Decisión:** `MEMORIA DE CALCULO` y `DIFERENCIAS`.
|
||||
- **Razón:** mantener trazabilidad y simplificar la revisión.
|
||||
|
||||
### DEC-006 — Una sola quincena no es comparable
|
||||
|
||||
- **Decisión:** dejar IR esperado y diferencia en blanco.
|
||||
- **Razón:** evitar cálculos mensuales parciales.
|
||||
|
||||
### DEC-007 — Seis responsables
|
||||
|
||||
- **Decisión:** correo y edición para Isaac, Estefani, Angie, Mati, Iveth y Máximo.
|
||||
- **Razón:** responsables oficiales de operación y seguimiento.
|
||||
|
||||
### DEC-008 — Limpieza automática
|
||||
|
||||
- **Decisión:** workflow diario de temporales.
|
||||
- **Razón:** seguridad y mantenimiento de Drive.
|
||||
|
||||
---
|
||||
|
||||
## Contactos del proyecto
|
||||
|
||||
| Rol | Nombre | Contacto |
|
||||
|---|---|---|
|
||||
| Product Owner / Sponsor | Máximo Gomez | `mgomez@gomezleemarketing.com` |
|
||||
| IT Manager | Luis Matos | Contacto corporativo GLM |
|
||||
| Developer principal | Isaac Aracena | `iaracena@gomezleemarketing.com` |
|
||||
| Administración Nicaragua | Estefani Orozco | `administrativo@gomezleemarketing.com` |
|
||||
| Administración Nicaragua | Angie Carolina Chavez Silva | `administrativonicaragua@gomezleemarketing.com` |
|
||||
| Revisión | Mati Soto Valenzuela | `msoto@gomezleemarketing.com` |
|
||||
| Revisión | Iveth Herrera | `iherrera@gomezleemarketing.com` |
|
||||
|
||||
---
|
||||
|
||||
## Checklist mensual
|
||||
|
||||
Antes:
|
||||
|
||||
- [ ] Confirmar mismo mes en Q1 y Q2.
|
||||
- [ ] Confirmar formato `.xlsx`.
|
||||
- [ ] Seleccionar mes y año correctos.
|
||||
|
||||
Después:
|
||||
|
||||
- [ ] Confirmar ejecución verde.
|
||||
- [ ] Abrir el Google Sheet.
|
||||
- [ ] Revisar filas rojas.
|
||||
- [ ] Revisar filas amarillas.
|
||||
- [ ] Revisar datos derivados.
|
||||
- [ ] Confirmar recepción del correo.
|
||||
- [ ] Confirmar Excel adjunto.
|
||||
- [ ] Confirmar permisos.
|
||||
- [ ] Confirmar eliminación de temporales.
|
||||
|
||||
---
|
||||
|
||||
## Definition of Done
|
||||
|
||||
- [x] Memoria original analizada.
|
||||
- [x] Nóminas históricas analizadas.
|
||||
- [x] Reglas fiscales reproducidas.
|
||||
- [x] Formulario funcionando.
|
||||
- [x] Q1 y Q2 obligatorias.
|
||||
- [x] Lectura multih hoja.
|
||||
- [x] Cruce validado.
|
||||
- [x] Google Sheet y Excel.
|
||||
- [x] Pestaña de diferencias.
|
||||
- [x] Correo HTML.
|
||||
- [x] Permisos configurados.
|
||||
- [x] Limpieza de temporales.
|
||||
- [x] Pruebas históricas.
|
||||
- [x] Workflow versionado.
|
||||
- [x] README completo.
|
||||
- [x] Modo de prueba eliminado.
|
||||
- [ ] Validación formal final de Luis Matos.
|
||||
- [ ] Aprobación formal final de Máximo Gomez.
|
||||
|
||||
---
|
||||
|
||||
## Mantenimiento
|
||||
|
||||
Todo cambio en la tasa del INSS, tabla fiscal, estructura de nóminas, encabezados, destinatarios, tolerancia o permisos debe:
|
||||
|
||||
1. Documentarse.
|
||||
2. Probarse con un período histórico.
|
||||
3. Exportarse nuevamente desde n8n.
|
||||
4. Actualizarse en Gitea.
|
||||
5. Registrarse en el changelog.
|
||||
|
||||
---
|
||||
|
||||
Documento mantenido por el equipo **GLM IT**.
|
||||
Reference in New Issue
Block a user