Files
seguimiento-impuestos/README.md
T

89 lines
3.0 KiB
Markdown

# Seguimiento de Impuestos GLM
Aplicación interna para mantener el calendario tributario regional, administrar destinatarios y alimentar el flujo automático de recordatorios por Gmail y WhatsApp.
## Incluye
- Login con Google y control de acceso desde Supabase.
- Calendario histórico 2026 migrado a PostgreSQL/Supabase.
- Creación, consulta, edición y eliminación lógica de obligaciones antes de su primer aviso.
- Bloqueo automático de edición y eliminación después del primer recordatorio enviado.
- País obligatorio y categorías limitadas a **Nómina** y **Administración**.
- Regla de alertas: **miércoles estrictamente anterior y el mismo día**, incluidos sábados y domingos.
- Contactos almacenados en Supabase y administrables desde la app.
- Países visibles aunque todavía no tengan contactos.
- Filtro buscable por país y búsqueda por nombre en Contactos.
- Búsqueda por nombre o país en Lista.
- Webhook de producción configurado para n8n.
- Workflow de n8n para Gmail + WhatsApp con correo HTML GLM.
## 1. Crear la base de datos
Ejecuta completo:
```text
supabase/Seguimiento-de-Impuestos-GLM.sql
```
El script crea tablas, RLS, funciones, bitácora anti-duplicados, bloqueo de eventos notificados, accesos iniciales, contactos y las 294 obligaciones históricas de 2026.
Si ya habías ejecutado una versión anterior del script completo, ejecuta solamente:
```text
supabase/actualizacion_eventos_bloqueados.sql
```
## 2. Configurar frontend
Copia `.env.example` como `.env` y completa la llave pública de Supabase. La `service_role` nunca debe ponerse en Vite.
```bash
npm install
npm run dev
```
URL local:
```text
http://localhost:5173/calendario-impuestos/
```
Build:
```bash
npm run build
npm run preview
```
## 3. Configurar n8n
Importa:
```text
n8n/Seguimiento-de-Impuestos-GLM.json
```
Luego sigue `n8n/CONFIGURACION.md`. El único ajuste dentro del canvas es seleccionar la credencial de Gmail; las demás claves se leen de variables de entorno.
## Enrutamiento
- **Regional** recibe todas las obligaciones.
- **Nómina** recibe únicamente obligaciones de Nómina de su país.
- **Administración** recibe únicamente obligaciones de Administración de su país.
- El flujo consulta los contactos en Supabase en cada ejecución; agregar un contacto en la app no requiere modificar n8n.
## Despliegue
Vite conserva la base:
```ts
base: "/calendario-impuestos/";
```
## Actualización final de calendario y Nómina
- Cuando un día tiene más de tres obligaciones, el enlace **Ver todos** abre una vista con la lista completa; desde allí se puede abrir cada obligación.
- El script `supabase/actualizacion_final_calendario_y_nomina.sql` agrega a Mati Soto Valenzuela e Iveth Herrera como contactos regionales especializados en Nómina.
- Los contactos regionales con área `nomina` reciben obligaciones de Nómina de todos los países. Los contactos con área `regional` continúan recibiendo todas las categorías.
- El número de Mati se guarda como `18094037571`, agregando el prefijo internacional `1` requerido para WhatsApp.