# 🎓 MAPA DE LA APLICACIÓN — JOLLY (FormaGest - Gestión Integral de Academias)

> **Documento Canónico de Arquitectura y Navegación**  
> **Sistema**: ERP de Gestión Integral de Centros Educativos, Academias de Idiomas y Formación  
> **Directorio**: `c:\fuentes\proyectos delphi\JOLLY`  
> **Entorno**: Delphi XE3+ (VCL Namespaces) &bull; MariaDB / MySQL &bull; ZeosLib 7.x &bull; FastReport &bull; Indy SSL &bull; Wacom STU SDK  
> **Mapeado por**: Agente [`mapeador`](file:///c:/fuentes/proyectos%20delphi/.agents/agents/mapeador.md)  

---

## 1. Visión General del Sistema JOLLY / FormaGest

El ecosistema **JOLLY (FormaGest)** es una solución completa orientada a academias privadas y centros de enseñanza reglada y no reglada (especialmente academias de idiomas). Resuelve el ciclo integral desde la matriculación de alumnos y asignación de niveles, planificación de grupos y horarios, control diario de asistencia, biblioteca y préstamo de libros/CDs/MP3, hasta la facturación mensual, emisión de recibos domiciliados mediante **remesas bancarias SEPA**, firma biométrica en tabletas **Wacom STU**, comunicaciones automáticas por **Email y WhatsApp API**, y sincronización con portales formativos basados en **WordPress / LMS**.

```mermaid
graph TD
    subgraph JOLLY_SUITE["Suite JOLLY / FormaGest"]
        ERP["FormaGest ERP\nformagest.dpr\nGestión Académica, Económica y RRHH"]
        ZAS["ZAS-JOLLY\nzasjolly.dpr\nSincronizador Alumnos -> WordPress LMS"]
        MDI["MDIAPP\nMDIAPP.dpr\nContenedor MDI con VCL Styles"]
    end

    subgraph HARDWARE_EXTERNAL["Dispositivos e Integraciones"]
        WACOM["Tableta Wacom STU\nSignatureForm.pas\nFirma Digital de Recibos/Contratos"]
        WHATSAPP["WhatsApp API / CallMeBot\nuEmailWhatsApp.pas\nNotificación a Padres/Alumnos"]
        INDY["Servidor SMTP SSL\nuConfigEmail.pas\nEnvío Facturas y Calificaciones PDF"]
        SEPA["Norma Bancaria SEPA\nfremesas.pas / frecibosbanco.pas\nCuotas Bancarias Domiciliadas"]
        WP["Portal Web Alumnos\nwp_users (MariaDB)\nAcceso Campus Online"]
    end

    ERP --> WACOM
    ERP --> WHATSAPP
    ERP --> INDY
    ERP --> SEPA
    ERP -.->|Datos Alumnos| ZAS
    ZAS -->|Inserta / Actualiza| WP
```

---

## 2. Inventario de Proyectos y Módulos

### A. FormaGest — ERP Principal Académico
* **Proyecto**: [`JOLLY\formagest.dpr`](file:///c:/fuentes/proyectos%20delphi/JOLLY/formagest.dpr) | [`formagest.dproj`](file:///c:/fuentes/proyectos%20delphi/JOLLY/formagest.dproj)
* **Volumen**: 47 unidades Pascal, 40 formularios visuales y DataModules.
* **Ventana Principal**: [`principal.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/principal.pas) / [`principal.dfm`](file:///c:/fuentes/proyectos%20delphi/JOLLY/principal.dfm) (`TMENU`)
* **DataModules de Acceso a Datos**:
  1. [`DATOS.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/DATOS.pas) (`TDM`): DataModule nuclear con conexiones ZeosLib (`TZConnection`), datasets de recibos, pagos de nóminas, libros de biblioteca, alquileres, alumnos, cajas y facturas.
  2. [`datosalumnos.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/datosalumnos.pas) (`Tdmalumnos`): Consultas especializadas en expediente del alumno, historial escolar, autorizaciones y teléfonos familiares.
  3. [`CONSULTASINFORMES.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/CONSULTASINFORMES.pas) (`TDMINF`): Consultas predefinidas para generación de estadísticas, informes académicos e impresión en FastReport.
  4. [`DATOS2.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/DATOS2.pas) (`TDM2`): Consultas secundarias auxiliares.

* **Submódulos Funcionales**:
  * **Expediente Académico y Alumnado**:
    * [`principal.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/principal.pas): Ficha central del alumno, datos médicos, teléfonos de urgencia, personas autorizadas a recogida y descuentos aplicados.
    * [`fniveles.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fniveles.pas): Configuración de niveles de conocimiento (A1, A2, B1, B2, C1, etc.).
    * [`promocionan.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/promocionan.pas): Asistente de pase de nivel / promoción de alumnos al finalizar el ciclo lectivo.
    * [`fdlgcopiarcurso.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fdlgcopiarcurso.pas): Clonación y apertura de nuevo año académico.
    * [`frpgresos.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/frpgresos.pas): Registro y boletines de evolución académica y notas del estudiante.
    * [`fplataforma.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fplataforma.pas): Integración con plataforma educativa externa.
  * **Grupos, Aulas y Horarios**:
    * [`ESTGRUPOS.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ESTGRUPOS.pas): Configuración de grupos lectivos, ratios máximas de alumnos y asignación de profesores.
    * [`ESTSESIONES.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ESTSESIONES.pas): Calendario semanal de clases, franjas horarias y aulas asignadas.
    * [`fpartes_asistencia.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fpartes_asistencia.pas): Registro diario de presencia, ausencias justificadas y retrasos por sesión y grupo.
  * **Biblioteca y Material Didáctico**:
    * [`flibros.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/flibros.pas): Catálogo de libros, manuales, CDs de audio y archivos MP3 con clasificación editorial y nivel.
    * [`fprestamos.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fprestamos.pas): Préstamo, devolución y control de material prestado a alumnos y profesores.
  * **Facturación, Cobros y Remesas Bancarias**:
    * [`ffacturas.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ffacturas.pas): Emisión de facturas oficiales a clientes/tutores.
    * [`frecibos_s.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/frecibos_s.pas): Generación y cobro de recibos simples en mostrador/caja.
    * [`frecibosbanco.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/frecibosbanco.pas) / [`fremesas.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fremesas.pas): Generación de remesas de recibos domiciliados bancarios (Norma 19 / SEPA XML B2B/Core).
    * [`fcajas.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fcajas.pas) / [`fdlgcajas.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fdlgcajas.pas) / [`fdlgcobros.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fdlgcobros.pas): Arqueos diarios, entradas/salidas de efectivo, pagos con tarjeta y control de caja por turno.
    * [`fplanes.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fplanes.pas): Planes de precios, tarifas planas familiares y modalidades de pago.
  * **Control de Presencia, Empleados y Activos**:
    * [`fticados.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fticados.pas) / [`fdlgticados.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fdlgticados.pas): Fichaje horario de entrada/salida de profesores y personal no docente.
    * [`fdlgpagosempleados.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/fdlgpagosempleados.pas): Liquidación mensual de honorarios por horas impartidas.
    * [`factivos.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/factivos.pas): Control de equipamiento e inmovilizado del centro educativo.
    * [`EMPRESAS.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/EMPRESAS.pas): Configuración multisede / datos fiscales de la academia.
  * **Comunicaciones Telemáticas y Firma Biométrica**:
    * [`SignatureForm.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/SignatureForm.pas): Integración con tableta Wacom STU (`wgssSTU_TLB`) para captura de firma electrónica con presión, coordenadas y guardado automático en imagen para justificar autorizaciones y cobros.
    * [`uEmailWhatsApp.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/uEmailWhatsApp.pas): Motor unificado para exportación a PDF vía FastReport y envío telemático mediante Indy SMTP TLS o WhatsApp (CallMeBot API / WhatsApp Web URI).
    * [`uEnviarDocumento.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/uEnviarDocumento.pas) / [`uConfigEmail.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/uConfigEmail.pas): Interfaz de usuario para remitir recibos, partes o boletines a los tutores legales.

---

### B. ZAS-JOLLY — Sincronizador Web WordPress / LMS
* **Proyecto**: [`JOLLY\ZAS-JOLLY\zasjolly.dpr`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ZAS-JOLLY/zasjolly.dpr) | [`zasjolly.dproj`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ZAS-JOLLY/zasjolly.dproj)
* **Formulario**: [`fprincipal.pas`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ZAS-JOLLY/fprincipal.pas) / [`fprincipal.dfm`](file:///c:/fuentes/proyectos%20delphi/JOLLY/ZAS-JOLLY/fprincipal.dfm)
* **Función**: Módulo puente que lee los alumnos activos de la base de datos central de Jolly (`dbjolly`) e inserta de forma desatendida sus credenciales de acceso en la base de datos WordPress (`wp_users` en `dbzasjolly`). Permite a cada estudiante acceder a su aula virtual LMS inmediatamente después de ser matriculado en secretaría.

---

### C. MDIAPP — Contenedor MDI y Estilos VCL
* **Proyecto**: [`JOLLY\MDIAPP.dpr`](file:///c:/fuentes/proyectos%20delphi/JOLLY/MDIAPP.dpr)
* **Formularios**: `Main.pas`, `CHILDWIN.PAS`, `about.pas`.
* **Función**: Arquitectura de ventanas subordinadas (MDI Child) con gestor de estilos VCL modernos (`Sapphire Kamri`).

---

## 3. Modelo de Datos Central (MariaDB / ZeosLib)

| Tabla Principal | Mapeo / Dataset en Delphi | Descripción y Propósito |
|:---|:---|:---|
| `alumnos` | `dmalumnos.qalumnos` | Ficha académica del estudiante, historial escolar, nivel, alergias, tutores. |
| `grupos` / `sesiones` | `TDM.grupos`, `TDM.sesiones` | Distribución de aulas, horarios lectivos y profesorado asignado. |
| `asistencias` | `fpartes_asistencia` | Marcajes diarios de asistencia, retrasos y faltas justificadas. |
| `recibos` | `TDM.recibos`, `frecibos_s` | Cuotas mensuales y conceptos facturados al alumno. |
| `remesas` | `fremesas`, `frecibosbanco` | Agrupación bancaria para domiciliaciones bancarias SEPA XML. |
| `libros` / `prestamos` | `TDM.libros`, `TDM.alquilar` | Biblioteca, fonoteca, préstamos de material y control de devoluciones. |
| `ticados` | `fticados` | Registro de jornada laboral y fichajes del personal docente. |
| `pagos` | `TDM.pagos` | Nóminas y liquidaciones a profesores según horas impartidas. |
| `cajas` / `cobros` | `fcajas`, `fdlgcobros` | Movimientos de caja, cobros TPV y arqueos al cierre de jornada. |
| `config_email_wa` | `uEmailWhatsApp` | Parámetros SMTP, claves API de CallMeBot y plantillas de notificación. |
| `wp_users` | `ZAS-JOLLY.qusers` | Base de datos externa WordPress para credenciales de alumnos en plataforma web. |

---

## 4. Estado de Salud y Oportunidades de Mejora

1. **Modernización de Acceso a Datos**: Al igual que el resto de soluciones del parque de Delphi XE3, la migración ordenada de ZeosLib a **FireDAC** (`TFDConnection`, `TFDQuery`) proporcionaría mejor soporte para Unicode nativo y control de reconexión automática (`wait_timeout`).
2. **Cumplimiento Fiscal**: Si la academia emite facturas a empresas o particulares sujetas a la normativa antifraude 2026, la capa de facturación (`ffacturas.pas`) debe heredar el motor criptográfico Veri*Factu (huella encadenada SHA-256) desarrollado en el ERP central.
3. **Optimización de Archivos Históricos**: La carpeta raíz cuenta con backups de Delphi (`__history`) y copias de seguridad de unidades (`DATOSxxx.pas`, `principal.pasxxx`) que deben mantenerse fuera del control de fuentes activo.
