89 lines
3.0 KiB
Markdown
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.
|