Vai al contenuto

# 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

1. Packages PLJSON_*: Libreria esterna per parsing JSON, può essere sostituita con funzionalità native .NET

2. Packages XLIB_*: Componenti per integrazione JasperReports, da valutare sostituzione con report .NET

3. Trigger per ID: In .NET usare Identity columns o GUID

4. Calcolo quantità: La logica in `EVENTI_AGGIORNA_QTA_LISTA` è critica e deve essere portata fedelmente

5. Sistema acconti: Le percentuali 30%-50%-20% sono hardcoded, valutare parametrizzazione