Apollinare Catering - Documentazione Completa
Questa documentazione contiene l'estrazione completa di tutti gli oggetti del database Oracle e dell'applicazione APEX di Apollinare Catering & Banqueting.
Application Overview
Apollinare Catering & Banqueting Management Software è un gestionale completo per aziende di catering che gestisce l'intero ciclo di vita di un evento: dalla richiesta del cliente, al preventivo, alla conferma, fino all'esecuzione.
Funzionalità Principali
| Area | Descrizione |
|---|---|
| Gestione Eventi | Creazione, workflow stati, versioning |
| Gestione Ospiti | Tipologie ospiti, conteggi, coefficienti |
| Lista Prelievo | Calcolo automatico quantità materiale |
| Risorse/Staff | Pianificazione personale per evento |
| Acconti/Pagamenti | Sistema caparre 30%-50%-20%, solleciti |
| Calendario | Vista eventi, limiti giornalieri, conflitti |
| Reporting | Schede evento, preventivi, report cucina |
Proposta SaaS: CaterPro
La documentazione include una proposta per trasformare Apollinare in CaterPro, una piattaforma SaaS multi-tenant:
- Target: Piccole, medie e grandi aziende di catering
- Stack: .NET 8 + React TypeScript + PostgreSQL/Oracle
- Pricing: Da €49/mese (Basic) a €399/mese (Enterprise)
- Roadmap: 10-14 mesi per feature parity + SaaS
Leggi la documentazione completa per dettagli su architettura, funzionalità e roadmap.
Struttura della Documentazione
docs/
├── apex/ # Applicazione APEX
│ ├── README.md # Overview applicazione
│ ├── pages/ # 56 pagine
│ ├── processes/ # 98 processi
│ ├── lovs/ # 12 List of Values
│ ├── javascript/ # Librerie JavaScript
│ ├── authorization/ # 5 schemi autorizzazione
│ ├── dynamic-actions/ # Azioni dinamiche
│ ├── items/ # Items condivisi
│ ├── regions/ # Regioni condivise
│ └── navigation/ # Navigazione
├── tables/ # 32 tabelle
├── views/ # 26 viste
├── procedures/ # 11 stored procedures
├── functions/ # 23 funzioni
├── packages/ # 17 packages
├── triggers/ # 19 triggers
├── sequences/ # 22 sequences
└── types/ # 10 tipi custom
APEX Application Documentation
APEX Application Overview
Application: APCB Project (ID: 112) APEX Version: 21.1.0 Schema: APOLLINARECATERINGPROD
| Component | Count |
|---|---|
| Pages | 56 |
| Items | 302 |
| Processes | 98 |
| Regions | 151 |
| Buttons | 119 |
| Dynamic Actions | 62 |
| LOVs | 12 |
Key APEX Documentation
- APEX README - Application overview and navigation
- Processes Documentation - All 98 processes with PL/SQL code
- LOVs Documentation - 12 List of Values definitions
- JavaScript Libraries - Custom ajaxUtils.js and iframeObj.js
- Authorization Schemes - 5 security schemes
Critical APEX Pages
| Page | Name | Description |
|---|---|---|
| 1 | Home | Dashboard principale |
| 22 | Nuovo Evento | Pagina più complessa (108 items, 32 processi) |
| 9 | Liste | Lista eventi |
| 12 | Calendario | Calendario eventi |
| 35 | Schede | Schede evento |
Indice per Categoria
Tabelle (32)
Tabelle principali del dominio business:
- EVENTI - Tabella principale eventi
- EVENTI_DET_PREL - Liste prelievo
- EVENTI_DET_OSPITI - Dettaglio ospiti
- EVENTI_DET_RIS - Risorse assegnate
- EVENTI_DET_DEGUST - Degustazioni
- EVENTI_ACCONTI - Gestione acconti/pagamenti
- EVENTI_ALTRICOSTI - Altri costi
- EVENTI_ALLEG - Allegati
- ARTICOLI - Catalogo articoli
- COSTI_ARTICOLI - Storico costi
- CLIENTI - Anagrafica clienti
- LOCATION - Location eventi
- RISORSE - Personale
Tabelle di lookup:
- TB_TIPI_MAT - Tipi materiale
- TB_CODICI_CATEG - Categorie
- TB_TIPI_EVENTO - Tipi evento
- TB_TIPI_OSPITI - Tipi ospiti
- TB_TIPI_RISORSA - Tipi risorsa
- TB_TIPI_PASTO - Tipi pasto
- TB_CALENDAR_LOCKS - Limiti calendario
- TB_CONFIG - Configurazioni
Tabelle di sistema:
- USERS_READONLY - Permessi utenti
- XLIB_LOGS - Log applicazione
- XLIB_COMPONENTS - Componenti
- XLIB_JASPERREPORTS_CONF - Config report
- XLIB_JASPERREPORTS_DEMOS - Demo report
Viste (26)
Viste per calcolo costi:
- GET_COSTO_ART_BY_EVT - Costo articoli per evento
- GET_COSTO_ART_EVT - Costo articoli aggregato
- GET_COSTO_CATEG_EVT - Costo per categoria
- GET_COSTO_DEGUS_EVT - Costo degustazioni
- GET_COSTO_OSPITI_EVT - Costo ospiti
- GET_COSTO_RIS_EVT - Costo risorse
- GET_COSTO_TIPI_EVT - Costo per tipo
- GET_ULTIMI_COSTI - Ultimi costi articoli
Viste per eventi:
- GET_EVT_DATA - Dati evento completi
- GET_EVT_DATA_PRINT - Dati per stampa
- GET_PREL_ART_TOT - Totali prelievo
- GET_PREL_BY_EVT - Prelievi per evento
Viste per calendario e stato:
- VW_CALENDARIO_EVENTI - Vista calendario
- VW_EVENT_COLOR - Colori stati
- VW_EVENTI_STATUSES - Stati eventi
Viste per giacenze:
- V_IMPEGNI_ARTICOLI - Impegni articoli
- V_IMPEGNI_ARTICOLI_LOC - Impegni per location
Viste per report:
- V_REP_ALLESTIMENTI - Report allestimenti
- VW_REP_DEGUSTAZIONI - Report degustazioni
- V_GRIGLIA - Vista griglia
- GET_REPORT_CONSUNTIVO_PER_DATA - Consuntivo
Viste per utenti/permessi:
- GET_CONSUNTIVI_USERS - Utenti consuntivi
- GET_GESTORI_USERS - Utenti gestori
- GET_USERS_LIST - Lista utenti
Viste per pagamenti:
- GET_EVENTI_DA_PAGARE_ENTRO_65GG - Eventi da sollecitare
Stored Procedures (11)
Business logic principale:
- EVENTI_AGGIORNA_QTA_LISTA - Ricalcolo quantità lista prelievo
- EVENTI_AGGIORNA_TOT_OSPITI - Aggiorna totale ospiti
- EVENTI_COPIA - Duplicazione evento
- EVENTI_RICALCOLA_ACCONTI - Ricalcolo acconti
- EVENTO_ELIMINA_PRELIEVI - Elimina prelievi
- LISTE_COPIA - Copia liste tra eventi
- P_CANCEL_SAME_LOCATION_EVENTS - Annulla eventi stessa location
Utility:
- ROWSORT_TIPI - Ordinamento tipi
- HTPPRN - Stampa HTTP
- SEND_DATA_TO_DROPBOX - Export Dropbox
- XLOG - Logging
Funzioni (23)
Calcolo quantità e disponibilità:
- F_GET_QTA_IMPEGNATA - Quantità impegnata
- F_GET_TOT_OSPITI - Totale ospiti
- F_GET_OSPITI - Dettaglio ospiti (pipelined)
- F_LIST_PRELIEVO_ADD_ARTICOLO - Aggiunta articolo
Calcolo costi:
- F_GET_COSTO_ARTICOLO - Costo articolo a data
Validazioni:
- F_EVENTO_SCADUTO - Verifica scadenza
- F_MAX_NUMERO_EVENTI_RAGGIUNTO - Limite eventi
- F_MAX_NUM_EVENTI_CONFERMATI - Limite confermati
- F_CI_SONO_EVENTI_CONFERMATI - Check confermati
Report:
- F_REP_ALLESTIMENTI - Report allestimenti
- F_REP_CUCINA - Report cucina
- F_GET_ANGOLO_ALLESTIMENTO - Angolo allestimento
- F_GET_ANGOLO_ALLESTIMENTO_OB - Angolo open bar
- F_GET_TOVAGLIATO_ALLESTIMENTO - Tovagliato
Autorizzazioni:
- F_USER_IN_ROLE - Verifica ruolo utente
- F_USER_IN_ROLE_STR - Ruolo utente (stringa)
Utility:
- F_DAY_TO_NAME - Giorno in italiano
- STRING_TO_TABLE_ENUM - Stringa a tabella
- GET_PARAM_VALUE - Valore parametro
- SPLIT - Split stringa
- MY_INSTR - Instr custom
- CLOB2BLOB - Conversione CLOB
- EXTDATE_GET_ITA - Data in italiano
Packages (17)
Business:
- MAIL_PKG - Gestione invio email automatiche
Utility esterne:
- UTL_BASE64 - Encoding Base64
JasperReports:
- XLIB_JASPERREPORTS - Integrazione JasperReports
- XLIB_JASPERREPORTS_IMG - Immagini report
HTTP/Componenti:
- XLIB_HTTP - Chiamate HTTP
- XLIB_COMPONENT - Componenti
- XLIB_LOG - Logging
JSON (libreria PLJSON):
- PLJSON_DYN
- PLJSON_EXT
- PLJSON_HELPER
- PLJSON_ML
- PLJSON_OBJECT_CACHE
- PLJSON_PARSER
- PLJSON_PRINTER
- PLJSON_UT
- PLJSON_UTIL_PKG
- PLJSON_XML
Triggers (19)
Generazione ID:
- EVENTI_TRG - ID eventi + inizializzazione
- EVENTI_AI_TRG - Creazione ospiti default
- EVENTI_DET_PREL_TRG - ID prelievi
- EVENTI_DET_RIS_TRG - ID risorse
- EVENTI_DET_DEGUST_TRG - ID degustazioni
- EVENTI_ACCONTI_TRG - ID acconti
- EVENTI_ALTRICOSTI_TRG - ID altri costi
- EVENTI_ALLEG_TRG - ID allegati
- CLIENTI_TRG - ID clienti
- LOCATION_TRG - ID location
- RISORSE_TRG - ID risorse
- ARTICOLI_DET_REGOLE_TRG - ID regole articoli
- TB_TIPI_PASTO_TRG - ID tipi pasto
Business logic:
- EVENTI_DET_OSPITI_TRG_AI - Aggiornamento ospiti
- EVENTI_DET_PREL_QTA_TOT_TRG - Calcolo quantità totale
Ordinamento:
- ADD_COD_STEP - Ordine tipi materiale
- ON_DELETE_REORDER - Riordino dopo delete
Sistema:
- BI_GL_SCHEMA_CHANGES - Log modifiche schema
- XLIB_LOGS_BI_TRG - Log applicazione
Sequences (22)
Tutte le sequence del database.
Types (10)
Tipi custom:
- T_DET_OSPITI_ROW / T_DET_OSPITI_TAB - Tipo per F_GET_OSPITI
- T_REP_ALLESTIMENTI_ROW / T_REP_ALLESTIMENTI_TAB - Tipo per F_REP_ALLESTIMENTI
- T_REP_CUCINA_ROW / T_REP_CUCINA_TAB - Tipo per F_REP_CUCINA
- STRING_LIST - Lista stringhe
- ENUM_TABLE_OBJECT / ENUM_TABLE_TYPE - Tipi per STRING_TO_TABLE_ENUM
- XLIB_VC2_ARRAY_T - Array varchar2
Schema ER Semplificato
┌─────────────┐
│ CLIENTI │
└──────┬──────┘
│
▼
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ LOCATION │◄────│ EVENTI │────►│TB_TIPI_EVENTO│
└─────────────┘ └──────┬──────┘ └─────────────┘
│
┌─────────────────┼─────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│EVENTI_DET_OSPITI│ │ EVENTI_DET_PREL │ │ EVENTI_DET_RIS │
└─────────────────┘ └────────┬────────┘ └────────┬────────┘
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ TB_TIPI_OSPITI │ │ ARTICOLI │ │ RISORSE │
└─────────────────┘ └────────┬────────┘ └─────────────────┘
│
▼
┌─────────────────┐
│ TB_CODICI_CATEG │
└────────┬────────┘
│
▼
┌─────────────────┐
│ TB_TIPI_MAT │
└─────────────────┘
┌─────────────────┬─────────────────┐
│ │ │
▼ ▼ ▼
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│EVENTI_DET_DEGUST│ │ EVENTI_ACCONTI │ │EVENTI_ALTRICOSTI│
└─────────────────┘ └─────────────────┘ └─────────────────┘
Workflow Stati Evento
┌──────────────┐
│ PREVENTIVO │ (100) - Bianco
└──────┬───────┘
│ Degustazione
▼
┌──────────────┐
│SCHEDA EVENTO │ (200) - Celeste
│(preparazione)│
└──────┬───────┘
│ Prima caparra
▼
┌──────────────┐
│ SCHEDA │ (300) - Giallo
│ CONFERMATA │
└──────┬───────┘
│ Quasi confermato
▼
┌──────────────┐
│SCHEDA QUASI │ (350) - Arancio
│ CONFERMATA │
└──────┬───────┘
│ Conferma definitiva
▼
┌──────────────┐
│ CONFERMATO │ (400) - Verde
└──────────────┘
│ Rifiuto/Scadenza
▼
┌──────────────┐
│NON ACCETTATO/│ (900) - Viola
│ SUPERATO │
└──────────────┘
Note per lo Sviluppo
-
Packages PLJSON_*: Libreria esterna per parsing JSON, può essere sostituita con funzionalità native .NET
-
Packages XLIB_*: Componenti per integrazione JasperReports, da valutare sostituzione con report .NET
-
Trigger per ID: In .NET usare Identity columns o GUID
-
Calcolo quantità: La logica in
EVENTI_AGGIORNA_QTA_LISTAè critica e deve essere portata fedelmente -
Sistema acconti: Le percentuali 30%-50%-20% sono hardcoded, valutare parametrizzazione