extracted objects

This commit is contained in:
2025-12-17 13:02:12 +01:00
commit 7dd4ea08e1
195 changed files with 70591 additions and 0 deletions

View File

@@ -0,0 +1,14 @@
# GET_CONSUNTIVI_USERS
## Colonne
| Colonna | Tipo |
|---------|------|
| USERS | VARCHAR2(4000) |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_CONSUNTIVI_USERS AS
select result as users from table(string_to_table_enum(get_param_value('PERMES_CONSUNTIVI'), 0, ':'))
```

View File

@@ -0,0 +1,53 @@
# GET_COSTO_ART_BY_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COD_ARTICOLO | VARCHAR2(10) |
| COSTO_UNI | NUMBER |
| NUMERO | NUMBER |
| COSTO_CALC | NUMBER |
| COSTO_CALC_IVA | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_ART_BY_EVT AS
SELECT p.id_evento, ca.COD_ARTICOLO, nvl(p.COSTO_ARTICOLO, ca.costo_uni) as costo_uni,
(
case when a.flg_qta_type = 'S' then nvl(qta_std_prel_tot, 0) else 1 end
*
case when a.flg_qta_type = 'C' then nvl(qta_coeff_prel_tot, 0) else 1 end
*
case when a.flg_qta_type = 'P' then nvl(qta_prec_prel_tot, 0) else 1 end
) as numero,
NVL(p.COSTO_ARTICOLO, ca.COSTO_UNI)
*
(
case when a.flg_qta_type = 'S' then nvl(qta_std_prel_tot, 0) else 1 end
*
case when a.flg_qta_type = 'C' then nvl(qta_coeff_prel_tot, 0) else 1 end
*
case when a.flg_qta_type = 'P' then nvl(qta_prec_prel_tot, 0) else 1 end
) as costo_calc,
(NVL(p.COSTO_ARTICOLO, ca.COSTO_UNI)+NVL(p.COSTO_ARTICOLO, ca.COSTO_UNI)*(a.perc_iva/100))
*
(
case when a.flg_qta_type = 'S' then nvl(qta_std_prel_tot, 0) else 1 end
*
case when a.flg_qta_type = 'C' then nvl(qta_coeff_prel_tot, 0) else 1 end
*
case when a.flg_qta_type = 'P' then nvl(qta_prec_prel_tot, 0) else 1 end
)
as costo_calc_iva
FROM ARTICOLI a
left JOIN COSTI_ARTICOLI ca ON a.COD_ARTICOLO = ca.COD_ARTICOLO
left join get_prel_art_tot p on a.cod_articolo = p.cod_articolo
left join eventi ed on ed.id = p.id_evento
left join eventi e on e.id = p.id_evento and e.data in (SELECT b.DATA_COSTO FROM COSTI_ARTICOLI b where b.cod_articolo = a.cod_articolo)
left join EVENTI_DET_OSPITI d on d.id_evento = nvl(e.id, ed.id) and d.cod_tipo_ospite = 8 -- adulti (se non trovo un evento per quel costo articolo lo devo ignorare)
WHERE (e.id is not null and ca.DATA_COSTO = nvl(e.data, (SELECT max(b.DATA_COSTO) FROM COSTI_ARTICOLI b where b.cod_articolo = a.cod_articolo)))
or (e.id is null and ca.cod_articolo is not null and ca.DATA_COSTO = nvl(e.data, (SELECT max(b.DATA_COSTO) FROM COSTI_ARTICOLI b where b.cod_articolo = a.cod_articolo)))
```

View File

@@ -0,0 +1,32 @@
# GET_COSTO_ART_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COD_ARTICOLO | VARCHAR2(10) |
| NUMERO | NUMBER |
| COSTO_UNI | NUMBER |
| COSTO | NUMBER |
| COSTO_IVATO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_ART_EVT AS
SELECT
edp.ID_EVENTO,
a.COD_ARTICOLO,
sum(ca.numero) as numero,
sum(ca.costo_uni) as costo_uni,
SUM(ca.costo_calc) AS costo,
SUM(ca.costo_calc_iva) AS costo_ivato
FROM EVENTI e
join EVENTI_DET_OSPITI edoa on edoa.id_evento = e.id and edoa.cod_tipo_ospite = 8 -- adulti
JOIN EVENTI_DET_PREL edp ON edp.ID_EVENTO = e.ID
JOIN ARTICOLI a ON a.COD_ARTICOLO = edp.COD_ARTICOLO
LEFT JOIN GET_COSTO_ART_BY_EVT ca ON ca.COD_ARTICOLO = a.COD_ARTICOLO AND ca.id_evento = e.id
LEFT JOIN GET_ULTIMI_COSTI guc ON guc.COD_ARTICOLO = a.COD_ARTICOLO
GROUP BY edp.ID_EVENTO, a.COD_ARTICOLO
```

View File

@@ -0,0 +1,35 @@
# GET_COSTO_CATEG_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COD_CATEG | VARCHAR2(10) |
| NUMERO | NUMBER |
| COSTO_UNI | NUMBER |
| COSTO | NUMBER |
| COSTO_IVATO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_CATEG_EVT AS
SELECT
edp.ID_EVENTO,
tcc.COD_CATEG,
sum(ca.numero) as numero,
sum(ca.costo_uni) as costo_uni,
SUM(ca.costo_calc) AS costo,
SUM(ca.costo_calc_iva) AS costo_ivato
FROM EVENTI e
join EVENTI_DET_OSPITI edoa on edoa.id_evento = e.id and edoa.cod_tipo_ospite = 8 -- adulti
JOIN EVENTI_DET_PREL edp ON edp.ID_EVENTO = e.ID
JOIN ARTICOLI a ON a.COD_ARTICOLO = edp.COD_ARTICOLO
JOIN TB_CODICI_CATEG tcc ON tcc.COD_CATEG = a.COD_CATEG
JOIN TB_TIPI_MAT ttm ON ttm.COD_TIPO = tcc.COD_TIPO
LEFT JOIN GET_COSTO_ART_BY_EVT ca ON ca.COD_ARTICOLO = a.COD_ARTICOLO AND ca.id_evento = e.id
LEFT JOIN GET_ULTIMI_COSTI guc ON guc.COD_ARTICOLO = a.COD_ARTICOLO
WHERE ttm.COD_TIPO = 'SP'
GROUP BY edp.ID_EVENTO, tcc.COD_CATEG
```

View File

@@ -0,0 +1,30 @@
# GET_COSTO_DEGUS_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COSTO | NUMBER |
| NUMERO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_DEGUS_EVT AS
select "ID_EVENTO","COSTO","NUMERO" from (
SELECT
edd.ID_EVENTO,
--SUM(nvl(n_paganti, 0)*NVL(edd.COSTO_DEGUSTAZIONE, 0)) AS costo,
--sum(nvl(n_paganti, 0)) as numero
SUM(2*NVL(edd.COSTO_DEGUSTAZIONE, 0)) AS costo,
sum(2) as numero
FROM EVENTI e
JOIN EVENTI_DET_DEGUST edd ON edd.ID_EVENTO = e.ID
JOIN TB_TIPI_MAT ttm ON ttm.COD_TIPO = 'DEGUS'
WHERE ttm.COD_TIPO = 'DEGUS'
and edd.detraibile = 1
GROUP BY edd.ID_EVENTO
)
where costo > 0
```

View File

@@ -0,0 +1,18 @@
# GET_COSTO_OSPITI_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| NUMERO | NUMBER |
| COSTO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_OSPITI_EVT AS
SELECT edr.ID_EVENTO, sum(edr.numero) as numero, SUM(edr.numero * (edr.COSTO - (edr.COSTO*(edr.sconto/100)))) AS costo
FROM EVENTI_DET_OSPITI edr
GROUP BY edr.ID_EVENTO
```

View File

@@ -0,0 +1,17 @@
# GET_COSTO_RIS_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COSTO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_RIS_EVT AS
SELECT edr.ID_EVENTO, SUM(edr.COSTO) AS costo
FROM EVENTI_DET_RIS edr
GROUP BY edr.ID_EVENTO
```

View File

@@ -0,0 +1,34 @@
# GET_COSTO_TIPI_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COD_TIPO | VARCHAR2(10) |
| NUMERO | NUMBER |
| COSTO_UNI | NUMBER |
| COSTO | NUMBER |
| COSTO_IVATO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_COSTO_TIPI_EVT AS
SELECT
edp.ID_EVENTO,
ttm.COD_TIPO,
sum(ca.numero) as numero,
sum(ca.costo_uni) as costo_uni,
SUM(ca.costo_calc) AS costo,
SUM(ca.costo_calc_iva) AS costo_ivato
FROM EVENTI e
join EVENTI_DET_OSPITI edoa on edoa.id_evento = e.id and edoa.cod_tipo_ospite = 8 -- adulti
JOIN EVENTI_DET_PREL edp ON edp.ID_EVENTO = e.ID
JOIN ARTICOLI a ON a.COD_ARTICOLO = edp.COD_ARTICOLO
JOIN TB_CODICI_CATEG tcc ON tcc.COD_CATEG = a.COD_CATEG
JOIN TB_TIPI_MAT ttm ON ttm.COD_TIPO = tcc.COD_TIPO
LEFT JOIN GET_COSTO_ART_BY_EVT ca ON ca.COD_ARTICOLO = a.COD_ARTICOLO AND ca.id_evento = e.id
LEFT JOIN GET_ULTIMI_COSTI guc ON guc.COD_ARTICOLO = a.COD_ARTICOLO
GROUP BY edp.ID_EVENTO, ttm.COD_TIPO
```

View File

@@ -0,0 +1,76 @@
# GET_EVENTI_DA_PAGARE_ENTRO_65GG
## Colonne
| Colonna | Tipo |
|---------|------|
| ID | NUMBER |
| CLIENTE | VARCHAR2(100) |
| DATA | DATE |
| LOCATION | VARCHAR2(200) |
| DESCRIZIONE_TIPO_EVENTO | VARCHAR2(100) |
| STATO | NUMBER |
| TOTALE_CAPARRE_DOVUTE | NUMBER |
| TOTALE_VERSATO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_EVENTI_DA_PAGARE_ENTRO_65GG AS
SELECT
e.ID,
e.CLIENTE,
e.DATA,
loc.LOCATION, -- Campo aggiornato per mostrare il nome della location
te.DESCRIZIONE AS DESCRIZIONE_TIPO_EVENTO,
e.STATO,
NVL(caparre.TOTALE_DOVUTO, 0) AS TOTALE_CAPARRE_DOVUTE,
NVL(pagamenti.TOTALE_PAGATO, 0) AS TOTALE_VERSATO
FROM
EVENTI e
LEFT JOIN
TB_TIPI_EVENTO te ON e.COD_TIPO = te.COD_TIPO
LEFT JOIN
LOCATION loc ON e.ID_LOCATION = loc.ID -- JOIN aggiunta per la tabella LOCATION
LEFT JOIN
(
-- Calcola il totale dovuto per la prima e seconda caparra (importi positivi)
SELECT
ID_EVENTO,
SUM(ACCONTO) AS TOTALE_DOVUTO
FROM
EVENTI_ACCONTI
WHERE
ORDINE IN (10, 20)
GROUP BY
ID_EVENTO
) caparre ON e.ID = caparre.ID_EVENTO
LEFT JOIN
(
-- Calcola il totale versato, invertendo il segno della somma (gli importi sono negativi)
SELECT
ID_EVENTO,
SUM(ACCONTO) * -1 AS TOTALE_PAGATO
FROM
EVENTI_ACCONTI
WHERE
ORDINE >= 1000
GROUP BY
ID_EVENTO
) pagamenti ON e.ID = pagamenti.ID_EVENTO
WHERE
-- Lo stato deve essere 'Scheda Confermata'
e.STATO = 300
-- Filtra per eventi futuri entro 65 giorni
AND e.DATA BETWEEN SYSDATE AND SYSDATE + 65
-- ====================================================================================
-- CONDIZIONE DI PAGAMENTO CON TOLLERANZA
AND NVL(pagamenti.TOTALE_PAGATO, 0) < (NVL(caparre.TOTALE_DOVUTO, 0) * (1 - /* TOLLERANZA */ 10 /* % */ / 100))
-- ====================================================================================
-- Assicuriamoci di considerare solo eventi per cui è richiesta almeno una caparra
AND caparre.TOTALE_DOVUTO IS NOT NULL AND caparre.TOTALE_DOVUTO > 0
ORDER BY
e.DATA
```

182
docs/views/GET_EVT_DATA.md Normal file
View File

@@ -0,0 +1,182 @@
# GET_EVT_DATA
## Colonne
| Colonna | Tipo |
|---------|------|
| ID | NUMBER |
| DESCRIZIONE | VARCHAR2(4000) |
| COD_TIPO | VARCHAR2(10) |
| CLIENTE | VARCHAR2(100) |
| INDIRIZZO | VARCHAR2(200) |
| DATA | DATE |
| DATA_CHAR | VARCHAR2(10) |
| TOT_OSPITI | NUMBER |
| STATO | NUMBER |
| TORTA_A | VARCHAR2(4000) |
| NOTE | VARCHAR2(4000) |
| DATA_DOC | DATE |
| APX_USER | VARCHAR2(20) |
| ID_CLIENTE | NUMBER |
| ID_LOCATION | NUMBER |
| FLG_TEMPLATE | NUMBER |
| ORA_CERIMONIA | DATE |
| ORA_EVENTO | DATE |
| PERC_SEDUTE_APER | NUMBER |
| CONFETTATA_A | VARCHAR2(4000) |
| STAMPA_MENU | VARCHAR2(100) |
| ALLERGIE | VARCHAR2(4000) |
| EXTRA_INFO | VARCHAR2(1000) |
| EXTRA_COSTI | VARCHAR2(1000) |
| NUM_LISTA | NUMBER |
| DISTANZA_LOCATION | VARCHAR2(1000) |
| PRIMI | VARCHAR2(4000) |
| SECONDI | VARCHAR2(4000) |
| VINI | VARCHAR2(4000) |
| CARICOSPOSI | VARCHAR2(4000) |
| CARICOAPOLL | VARCHAR2(4000) |
| STILE_COLORI | VARCHAR2(255) |
| ALLEST_BUFF | VARCHAR2(4000) |
| GIRO_BRACCIO | VARCHAR2(255) |
| GRAN_BUFFET_A | VARCHAR2(4000) |
| SERVIZIO_TAVOLO_A | VARCHAR2(4000) |
| BUFFET_DOLCI_A | VARCHAR2(4000) |
| CLIENTE_TEL | VARCHAR2(255) |
| CLIENTE_EMAIL | VARCHAR2(255) |
| REFERENTE_TEL | VARCHAR2(255) |
| BUFFET_INIZIALE | VARCHAR2(4000) |
| BUFFET_FINALE | VARCHAR2(4000) |
| TIPOL_TAV_SPOSI | VARCHAR2(255) |
| TIPOL_TAV_OSPITI | VARCHAR2(255) |
| SEDIA | VARCHAR2(255) |
| TOVAGLIA | VARCHAR2(255) |
| TOVAGLIOLO | VARCHAR2(255) |
| RUNNER | VARCHAR2(255) |
| SOTTOPIATTI | VARCHAR2(255) |
| PIATTINO_PANE | VARCHAR2(255) |
| POSATE | VARCHAR2(255) |
| BICCHIERI | VARCHAR2(255) |
| NUM_FLORIST | VARCHAR2(255) |
| NUM_MUSICISTI | VARCHAR2(255) |
| NUM_FOTOGRAFI | VARCHAR2(255) |
| NUM_ALTRI | VARCHAR2(4000) |
| BUFFET | VARCHAR2(255) |
| BUFFET_SEDIE | VARCHAR2(255) |
| BUFFET_TAVOLI | VARCHAR2(255) |
| CONFETTATA_B | VARCHAR2(4000) |
| GRAN_BUFFET_B | VARCHAR2(4000) |
| SERVIZIO_TAVOLO_B | VARCHAR2(4000) |
| BUFFET_DOLCI_B | VARCHAR2(4000) |
| TORTA_B | VARCHAR2(4000) |
| TORTA | VARCHAR2(4000) |
| CONFETTATA | VARCHAR2(4000) |
| ALTRO | VARCHAR2(4000) |
| FLG_SUPERATO | NUMBER |
| DATA_SCAD_PREVENTIVO | DATE |
| PIATTI | VARCHAR2(4000) |
| NOTE_INVIO | VARCHAR2(1000) |
| PRE_BOUV_A | VARCHAR2(4000) |
| PRE_BOUV_B | VARCHAR2(4000) |
| ALTRO_A | VARCHAR2(4000) |
| ALTRO_B | VARCHAR2(4000) |
| DATORASCARICO | DATE |
| DATORASCARICO_NOTE | VARCHAR2(4000) |
| IS_TEMPLATE | NUMBER |
| ID_EVT_PADRE | NUMBER |
| ID_EVT_FIGLIO | NUMBER |
| LOCATION | VARCHAR2(200) |
| TIPO_PASTO | VARCHAR2(6) |
| DESCRIZIONE_TIPO | VARCHAR2(100) |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_EVT_DATA AS
select
e.ID,
e.DESCRIZIONE,
e.COD_TIPO,
e.CLIENTE,
e.INDIRIZZO,
e.data,
to_char(e.DATA, 'dd-mm-yyyy') as data_char,
e.TOT_OSPITI,
e.STATO,
e.TORTA_A,
e.NOTE,
e.DATA_DOC,
e.APX_USER,
e.ID_CLIENTE,
e.ID_LOCATION,
e.FLG_TEMPLATE,
e.ORA_CERIMONIA,
e.ORA_EVENTO,
e.PERC_SEDUTE_APER,
e.CONFETTATA_A,
e.STAMPA_MENU,
e.ALLERGIE,
e.EXTRA_INFO,
e.EXTRA_COSTI,
e.NUM_LISTA,
e.DISTANZA_LOCATION,
e.PRIMI,
e.SECONDI,
e.VINI,
e.CARICOSPOSI,
e.CARICOAPOLL,
e.STILE_COLORI,
e.ALLEST_BUFF,
e.GIRO_BRACCIO,
e.GRAN_BUFFET_A,
e.SERVIZIO_TAVOLO_A,
e.BUFFET_DOLCI_A,
e.CLIENTE_TEL,
e.CLIENTE_EMAIL,
e.REFERENTE_TEL,
e.BUFFET_INIZIALE,
e.BUFFET_FINALE,
e.TIPOL_TAV_SPOSI,
e.TIPOL_TAV_OSPITI,
e.SEDIA,
e.TOVAGLIA,
e.TOVAGLIOLO,
e.RUNNER,
e.SOTTOPIATTI,
e.PIATTINO_PANE,
e.POSATE,
e.BICCHIERI,
e.NUM_FLORIST,
e.NUM_MUSICISTI,
e.NUM_FOTOGRAFI,
e.NUM_ALTRI,
e.BUFFET,
e.BUFFET_SEDIE,
e.BUFFET_TAVOLI,
e.CONFETTATA_B,
e.GRAN_BUFFET_B,
e.SERVIZIO_TAVOLO_B,
e.BUFFET_DOLCI_B,
e.TORTA_B,
e.TORTA,
e.CONFETTATA,
e.ALTRO,
e.FLG_SUPERATO,
e.DATA_SCAD_PREVENTIVO,
e.PIATTI,
e.NOTE_INVIO,
e.PRE_BOUV_A,
e.PRE_BOUV_B,
e.ALTRO_A,
e.ALTRO_B,
e.DATORASCARICO,
e.DATORASCARICO_NOTE,
e.IS_TEMPLATE,
e.ID_EVT_PADRE,
e.ID_EVT_FIGLIO,
l.location,
decode(p.tipo_pasto, 'C', 'Cena', 'P', 'Pranzo', 'Altro') as tipo_pasto,
p.descrizione as descrizione_tipo
from eventi e
left join location l on e.id_location = l.id
left join tb_tipi_evento p on p.cod_tipo = e.cod_tipo
```

View File

@@ -0,0 +1,106 @@
# GET_EVT_DATA_PRINT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID | NUMBER |
| DESCRIZIONE | VARCHAR2(4000) |
| COD_TIPO | VARCHAR2(10) |
| CLIENTE | VARCHAR2(100) |
| INDIRIZZO | VARCHAR2(200) |
| DATA | DATE |
| DATA_CHAR | VARCHAR2(10) |
| TOT_OSPITI | NUMBER |
| STATO | NUMBER |
| TORTA_A | VARCHAR2(4000) |
| NOTE | VARCHAR2(4000) |
| DATA_DOC | DATE |
| APX_USER | VARCHAR2(20) |
| ID_CLIENTE | NUMBER |
| ID_LOCATION | NUMBER |
| FLG_TEMPLATE | NUMBER |
| ORA_CERIMONIA | DATE |
| ORA_EVENTO | DATE |
| PERC_SEDUTE_APER | NUMBER |
| CONFETTATA_A | VARCHAR2(4000) |
| STAMPA_MENU | VARCHAR2(100) |
| ALLERGIE | VARCHAR2(4000) |
| EXTRA_INFO | VARCHAR2(1000) |
| EXTRA_COSTI | VARCHAR2(1000) |
| NUM_LISTA | NUMBER |
| DISTANZA_LOCATION | VARCHAR2(1000) |
| PRIMI | VARCHAR2(4000) |
| SECONDI | VARCHAR2(4000) |
| VINI | VARCHAR2(4000) |
| CARICOSPOSI | VARCHAR2(4000) |
| CARICOAPOLL | VARCHAR2(4000) |
| STILE_COLORI | VARCHAR2(255) |
| ALLEST_BUFF | VARCHAR2(4000) |
| GIRO_BRACCIO | VARCHAR2(255) |
| GRAN_BUFFET_A | VARCHAR2(4000) |
| SERVIZIO_TAVOLO_A | VARCHAR2(4000) |
| BUFFET_DOLCI_A | VARCHAR2(4000) |
| CLIENTE_TEL | VARCHAR2(255) |
| CLIENTE_EMAIL | VARCHAR2(255) |
| REFERENTE_TEL | VARCHAR2(255) |
| BUFFET_INIZIALE | VARCHAR2(4000) |
| BUFFET_FINALE | VARCHAR2(4000) |
| TIPOL_TAV_SPOSI | VARCHAR2(255) |
| TIPOL_TAV_OSPITI | VARCHAR2(255) |
| SEDIA | VARCHAR2(255) |
| TOVAGLIA | VARCHAR2(255) |
| TOVAGLIOLO | VARCHAR2(255) |
| RUNNER | VARCHAR2(255) |
| SOTTOPIATTI | VARCHAR2(255) |
| PIATTINO_PANE | VARCHAR2(255) |
| POSATE | VARCHAR2(255) |
| BICCHIERI | VARCHAR2(255) |
| NUM_FLORIST | VARCHAR2(255) |
| NUM_MUSICISTI | VARCHAR2(255) |
| NUM_FOTOGRAFI | VARCHAR2(255) |
| NUM_ALTRI | VARCHAR2(4000) |
| BUFFET | VARCHAR2(255) |
| BUFFET_SEDIE | VARCHAR2(255) |
| BUFFET_TAVOLI | VARCHAR2(255) |
| CONFETTATA_B | VARCHAR2(4000) |
| GRAN_BUFFET_B | VARCHAR2(4000) |
| SERVIZIO_TAVOLO_B | VARCHAR2(4000) |
| BUFFET_DOLCI_B | VARCHAR2(4000) |
| TORTA_B | VARCHAR2(4000) |
| TORTA | VARCHAR2(4000) |
| CONFETTATA | VARCHAR2(4000) |
| ALTRO | VARCHAR2(4000) |
| FLG_SUPERATO | NUMBER |
| DATA_SCAD_PREVENTIVO | DATE |
| PIATTI | VARCHAR2(4000) |
| NOTE_INVIO | VARCHAR2(1000) |
| PRE_BOUV_A | VARCHAR2(4000) |
| PRE_BOUV_B | VARCHAR2(4000) |
| ALTRO_A | VARCHAR2(4000) |
| ALTRO_B | VARCHAR2(4000) |
| DATORASCARICO | DATE |
| DATORASCARICO_NOTE | VARCHAR2(4000) |
| IS_TEMPLATE | NUMBER |
| ID_EVT_PADRE | NUMBER |
| ID_EVT_FIGLIO | NUMBER |
| LOCATION | VARCHAR2(200) |
| TIPO_PASTO | VARCHAR2(6) |
| DESCRIZIONE_TIPO | VARCHAR2(100) |
| PRELIEVO_ANGOLI_INIZIALI | VARCHAR2(4000) |
| PRELIEVO_ANGOLI_FINALI | VARCHAR2(4000) |
| PRELIEVO_SERVIZIO_TAVOLA | VARCHAR2(4000) |
| PRELIEVO_VINI | VARCHAR2(4000) |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_EVT_DATA_PRINT AS
select e."ID",e."DESCRIZIONE",e."COD_TIPO",e."CLIENTE",e."INDIRIZZO",e."DATA",e."DATA_CHAR",e."TOT_OSPITI",e."STATO",e."TORTA_A",e."NOTE",e."DATA_DOC",e."APX_USER",e."ID_CLIENTE",e."ID_LOCATION",e."FLG_TEMPLATE",e."ORA_CERIMONIA",e."ORA_EVENTO",e."PERC_SEDUTE_APER",e."CONFETTATA_A",e."STAMPA_MENU",e."ALLERGIE",e."EXTRA_INFO",e."EXTRA_COSTI",e."NUM_LISTA",e."DISTANZA_LOCATION",e."PRIMI",e."SECONDI",e."VINI",e."CARICOSPOSI",e."CARICOAPOLL",e."STILE_COLORI",e."ALLEST_BUFF",e."GIRO_BRACCIO",e."GRAN_BUFFET_A",e."SERVIZIO_TAVOLO_A",e."BUFFET_DOLCI_A",e."CLIENTE_TEL",e."CLIENTE_EMAIL",e."REFERENTE_TEL",e."BUFFET_INIZIALE",e."BUFFET_FINALE",e."TIPOL_TAV_SPOSI",e."TIPOL_TAV_OSPITI",e."SEDIA",e."TOVAGLIA",e."TOVAGLIOLO",e."RUNNER",e."SOTTOPIATTI",e."PIATTINO_PANE",e."POSATE",e."BICCHIERI",e."NUM_FLORIST",e."NUM_MUSICISTI",e."NUM_FOTOGRAFI",e."NUM_ALTRI",e."BUFFET",e."BUFFET_SEDIE",e."BUFFET_TAVOLI",e."CONFETTATA_B",e."GRAN_BUFFET_B",e."SERVIZIO_TAVOLO_B",e."BUFFET_DOLCI_B",e."TORTA_B",e."TORTA",e."CONFETTATA",e."ALTRO",e."FLG_SUPERATO",e."DATA_SCAD_PREVENTIVO",e."PIATTI",e."NOTE_INVIO",e."PRE_BOUV_A",e."PRE_BOUV_B",e."ALTRO_A",e."ALTRO_B",e."DATORASCARICO",e."DATORASCARICO_NOTE",e."IS_TEMPLATE",e."ID_EVT_PADRE",e."ID_EVT_FIGLIO",e."LOCATION",e."TIPO_PASTO",e."DESCRIZIONE_TIPO",
(select LISTAGG('• ' || g.descrizione_articolo, chr(13)) WITHIN GROUP (ORDER BY g.ordine ASC) from get_prel_by_evt g where g.id_evento = e.id and g.cod_tipo = 'AN') as prelievo_angoli_iniziali,
(select LISTAGG('• ' || g.descrizione_articolo, chr(13)) WITHIN GROUP (ORDER BY g.ordine ASC) from get_prel_by_evt g where g.id_evento = e.id and g.cod_tipo = 'ANG-FIN') as prelievo_angoli_finali,
(select LISTAGG('• ' || g.descrizione_articolo, chr(13)) WITHIN GROUP (ORDER BY g.ordine ASC) from get_prel_by_evt g where g.id_evento = e.id and g.cod_tipo = 'MENU') as prelievo_servizio_tavola,
(select LISTAGG('• ' || g.descrizione_articolo, chr(13)) WITHIN GROUP (ORDER BY g.ordine ASC) from get_prel_by_evt g where g.id_evento = e.id and g.cod_tipo = 'BEV SED') as prelievo_vini
from get_evt_data e
left join location l on e.id_location = l.id
```

View File

@@ -0,0 +1,14 @@
# GET_GESTORI_USERS
## Colonne
| Colonna | Tipo |
|---------|------|
| USERS | VARCHAR2(4000) |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_GESTORI_USERS AS
select result as users from table(string_to_table_enum(get_param_value('PERMES_GESTORI'), 0, ':'))
```

View File

@@ -0,0 +1,35 @@
# GET_PREL_ART_TOT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| ID | NUMBER |
| COD_ARTICOLO | VARCHAR2(10) |
| QTA | NUMBER |
| NOTE | VARCHAR2(4000) |
| QTA_APE | NUMBER |
| QTA_SEDU | NUMBER |
| QTA_BUFDOL | NUMBER |
| QTA_MAN_APE | NUMBER |
| QTA_MAN_SEDU | NUMBER |
| QTA_MAN_BUFDOL | NUMBER |
| COSTO_ARTICOLO | NUMBER |
| PERC_OSPITI | NUMBER |
| QTA_STD_PREL_TOT | NUMBER |
| QTA_COEFF_PREL_TOT | NUMBER |
| QTA_PREC_PREL_TOT | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_PREL_ART_TOT AS
select p."ID_EVENTO",p."ID",p."COD_ARTICOLO",p."QTA",p."NOTE",p."QTA_APE",p."QTA_SEDU",p."QTA_BUFDOL",p."QTA_MAN_APE",p."QTA_MAN_SEDU",p."QTA_MAN_BUFDOL",p."COSTO_ARTICOLO",p."PERC_OSPITI",
p.QTA_APE + p.QTA_SEDU + p.QTA_BUFDOL + p.QTA_MAN_APE + p.QTA_MAN_SEDU + p.QTA_MAN_BUFDOL as qta_std_prel_tot,
p.QTA_APE*nvl(a.coeff_a, 1) + p.QTA_SEDU*nvl(a.coeff_s, 1) + p.QTA_BUFDOL*nvl(a.coeff_b, 1) + p.QTA_MAN_APE*nvl(a.coeff_a, 1) + p.QTA_MAN_SEDU*nvl(a.coeff_s, 1) + p.QTA_MAN_BUFDOL*nvl(a.coeff_b, 1) as qta_coeff_prel_tot,
nvl(d.numero, 1)*nvl(nvl2(p.perc_ospiti, p.perc_ospiti/100, a.perc_ospiti/100), 0) as qta_prec_prel_tot
from eventi_det_prel p
join articoli a on p.cod_articolo = a.cod_articolo
join EVENTI_DET_OSPITI d on d.id_evento = p.id_evento and d.cod_tipo_ospite = 8
```

View File

@@ -0,0 +1,38 @@
# GET_PREL_BY_EVT
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| COD_TIPO | VARCHAR2(10) |
| DESCRIZIONE_TIPO | VARCHAR2(1000) |
| COD_CATEG | VARCHAR2(10) |
| DESCRIZIONE_CATEGORIA | VARCHAR2(1000) |
| COD_RELATIVO | VARCHAR2(10) |
| COD_ARTICOLO | VARCHAR2(10) |
| DESCRIZIONE_ARTICOLO | VARCHAR2(4000) |
| ORDINE | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_PREL_BY_EVT AS
select
e.id as id_evento,
m.cod_tipo,
m.descrizione as descrizione_tipo,
a.cod_categ,
g.descrizione as descrizione_categoria,
a.cod_relativo,
a.cod_articolo,
trim(a.descrizione) || ' - ' || trim(d.note) as descrizione_articolo,
d.ordine
from eventi e
join eventi_det_prel d on e.id = d.id_evento
join articoli a on a.cod_articolo = d.cod_articolo
join tb_codici_categ g on g.cod_categ = a.cod_categ
join tb_tipi_mat m on m.cod_tipo = g.cod_tipo
where g.show_print = 1
order by d.ordine
```

View File

@@ -0,0 +1,120 @@
# GET_REPORT_CONSUNTIVO_PER_DATA
## Colonne
| Colonna | Tipo |
|---------|------|
| ORDINE | NUMBER |
| ID | NUMBER |
| DATA | DATE |
| TIPO | VARCHAR2(4000) |
| NUMERO | NUMBER |
| COSTO | NUMBER |
| SCONTO | NUMBER |
| PERCIVA | NUMBER |
| TOTALE | NUMBER |
| IVA | NUMBER |
| TOTALE_IVATO | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_REPORT_CONSUNTIVO_PER_DATA AS
select
edo.ordine,
e.id,
e.data,
nvl2(edo.note, tto.descrizione || ': ' || edo.note, tto.descrizione) as tipo,
nullif(edo.numero, 0) as numero,
nullif(edo.costo, 0) as costo,
nullif(edo.sconto, 0) as sconto,
nullif(case when edo.numero > 0 then 0.10 else 0 end, 0) as perciva,
nullif(edo.numero * (edo.COSTO - (edo.COSTO*(edo.sconto/100))), 0) as totale,
nullif((edo.numero * (edo.COSTO - (edo.COSTO*(edo.sconto/100))) * 0.10), 0) as iva,
edo.numero * (edo.COSTO - (edo.COSTO*(edo.sconto/100))) + (edo.numero * (edo.COSTO - (edo.COSTO*(edo.sconto/100))) * 0.10) as totale_ivato
from eventi e
left join eventi_det_ospiti edo on edo.id_evento = e.id
left join tb_tipi_ospiti tto on tto.cod_tipo = edo.cod_tipo_ospite
where edo.ordine != 3
union all
select
rownum+49 as ordine,
e.id_evento as id,
d.data,
'Degustazioni effettuate' as tipo,
nullif(numero, 0) as numero,
nullif(costo, 0) as costo,
null as sconto,
null as perciva,
nullif(costo*-1, 0) as totale,
null as iva,
costo*-1 as totale_ivato
from get_costo_degus_evt e
join eventi d on d.id = e.id_evento
union all
select rownum+99 as ordine, t."ID",t."DATA",t."TIPO",t."NUMERO",t."COSTO",t."SCONTO",t."PERCIVA",t."TOTALE",t."IVA",t."TOTALE_IVATO" from (
select
e.id_evento as id,
d.data,
replace(REGEXP_REPLACE(replace(a.descrizione, ' ', '_'), '[^0-9A-Za-z_()]', ''), '_', ' ') as tipo,
nullif(e.numero, 0) as numero,
nullif(e.costo_uni, 0) as costo,
null as sconto,
nullif(case when e.COSTO > 0 then (a.perc_iva/100) else 0 end, 0) as perciva,
nullif(e.COSTO, 0) as totale,
nullif(case when e.COSTO > 0 then e.COSTO_IVATO - e.COSTO else 0 end, 0) as iva,
nullif(case when e.COSTO > 0 then e.COSTO_IVATO else 0 end, 0) as totale_ivato
from get_costo_art_evt e
join articoli a on e.cod_articolo = a.cod_articolo
join EVENTI_DET_OSPITI edoa on edoa.id_evento = e.id_evento and edoa.cod_tipo_ospite = 8
join tb_codici_categ g on g.cod_categ = a.cod_categ
join eventi d on d.id = e.id_evento
where nvl(e.COSTO, 0) > 0
and g.show_print = 1
union all
select
e.id_evento as id,
d.data,
'Altri Articoli (dettaglio a pagina 3)' as tipo,
null as numero,
null as costo,
null as sconto,
null as perciva,
nullif(sum(e.COSTO), 0) as totale,
nullif(sum(case when e.COSTO > 0 then e.COSTO_IVATO - e.COSTO else 0 end), 0) as iva,
nullif(sum(case when e.COSTO > 0 then e.COSTO_IVATO else 0 end), 0) as totale_ivato
from get_costo_art_evt e
join articoli a on e.cod_articolo = a.cod_articolo
join EVENTI_DET_OSPITI edoa on edoa.id_evento = e.id_evento and edoa.cod_tipo_ospite = 8
join tb_codici_categ g on g.cod_categ = a.cod_categ
join eventi d on d.id = e.id_evento
where nvl(e.COSTO, 0) > 0
and g.show_print = 0
group by 'Altri Articoli', e.id_evento, d.data, 0, 0, 0, 0
) t
union all
select
ea.ordine+199 as ordine,
e.id,
e.data,
ea.descrizione as tipo,
ea.quantity as numero,
nullif(ea.costo, 0) as costo,
null as sconto,
nullif(case when ea.costo > 0 then 0.1 else 0 end, 0) as perciva,
nullif(ea.costo * ea.quantity, 0) as totale,
nullif(case when ea.COSTO > 0 then (ea.costo * ea.quantity) * 0.10 else 0 end, 0) as iva,
nullif(case when ea.COSTO > 0 then (ea.costo * ea.quantity) + ((ea.costo * ea.quantity) * 0.10) else (ea.costo * ea.quantity) end, 0) as totale_ivato
from eventi e
left join eventi_altricosti ea on ea.id_evento = e.id
where ea.costo is not null
order by 1
```

View File

@@ -0,0 +1,17 @@
# GET_ULTIMI_COSTI
## Colonne
| Colonna | Tipo |
|---------|------|
| COD_ARTICOLO | VARCHAR2(10) |
| COSTO_UNI | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_ULTIMI_COSTI AS
SELECT a.COD_ARTICOLO, a.costo_uni
FROM COSTI_ARTICOLI a
WHERE a.DATA_COSTO = (SELECT max(b.DATA_COSTO) FROM COSTI_ARTICOLI b where b.cod_articolo = a.cod_articolo)
```

View File

@@ -0,0 +1,16 @@
# GET_USERS_LIST
## Colonne
| Colonna | Tipo |
|---------|------|
| USERS | VARCHAR2(100) |
## Definizione
```sql
CREATE OR REPLACE VIEW GET_USERS_LIST AS
select user_name as users
from APEX_WORKSPACE_APEX_USERS
where workspace_name = USER
```

90
docs/views/README.md Normal file
View File

@@ -0,0 +1,90 @@
# Viste Database
Questa cartella contiene la documentazione di tutte le 26 viste del database.
## Viste per Calcolo Costi
| Vista | Descrizione |
|-------|-------------|
| [GET_COSTO_ART_BY_EVT](GET_COSTO_ART_BY_EVT.md) | Calcola costo articoli per singolo evento |
| [GET_COSTO_ART_EVT](GET_COSTO_ART_EVT.md) | Aggregazione costi articoli per evento |
| [GET_COSTO_CATEG_EVT](GET_COSTO_CATEG_EVT.md) | Costi aggregati per categoria |
| [GET_COSTO_DEGUS_EVT](GET_COSTO_DEGUS_EVT.md) | Costo degustazioni (da detrarre) |
| [GET_COSTO_OSPITI_EVT](GET_COSTO_OSPITI_EVT.md) | Costo per ospiti con sconti |
| [GET_COSTO_RIS_EVT](GET_COSTO_RIS_EVT.md) | Costo risorse/personale |
| [GET_COSTO_TIPI_EVT](GET_COSTO_TIPI_EVT.md) | Costi aggregati per tipo materiale |
| [GET_ULTIMI_COSTI](GET_ULTIMI_COSTI.md) | Ultimo costo registrato per articolo |
## Viste per Dati Evento
| Vista | Descrizione |
|-------|-------------|
| [GET_EVT_DATA](GET_EVT_DATA.md) | Dati completi evento con join |
| [GET_EVT_DATA_PRINT](GET_EVT_DATA_PRINT.md) | Dati evento formattati per stampa |
| [GET_PREL_ART_TOT](GET_PREL_ART_TOT.md) | Totali quantità prelievo calcolate |
| [GET_PREL_BY_EVT](GET_PREL_BY_EVT.md) | Prelievi per evento con descrizioni |
## Viste Calendario e Stati
| Vista | Descrizione |
|-------|-------------|
| [VW_CALENDARIO_EVENTI](VW_CALENDARIO_EVENTI.md) | Vista per calendario con colori e CSS |
| [VW_EVENT_COLOR](VW_EVENT_COLOR.md) | Mapping stati → colori |
| [VW_EVENT_COLOR_OLD](VW_EVENT_COLOR_OLD.md) | Vecchia logica colori (deprecata) |
| [VW_EVENTI_STATUSES](VW_EVENTI_STATUSES.md) | Elenco stati distinti con colori |
## Viste Giacenze e Impegni
| Vista | Descrizione |
|-------|-------------|
| [V_IMPEGNI_ARTICOLI](V_IMPEGNI_ARTICOLI.md) | Quantità impegnate per articolo/data |
| [V_IMPEGNI_ARTICOLI_LOC](V_IMPEGNI_ARTICOLI_LOC.md) | Impegni con dettaglio location |
## Viste Report
| Vista | Descrizione |
|-------|-------------|
| [V_REP_ALLESTIMENTI](V_REP_ALLESTIMENTI.md) | Dati per report allestimenti |
| [VW_REP_DEGUSTAZIONI](VW_REP_DEGUSTAZIONI.md) | Dati per report degustazioni |
| [V_GRIGLIA](V_GRIGLIA.md) | Vista griglia settimanale |
| [GET_REPORT_CONSUNTIVO_PER_DATA](GET_REPORT_CONSUNTIVO_PER_DATA.md) | Report consuntivo dettagliato |
## Viste Utenti e Permessi
| Vista | Descrizione |
|-------|-------------|
| [GET_CONSUNTIVI_USERS](GET_CONSUNTIVI_USERS.md) | Utenti con accesso consuntivi |
| [GET_GESTORI_USERS](GET_GESTORI_USERS.md) | Utenti con ruolo gestore |
| [GET_USERS_LIST](GET_USERS_LIST.md) | Lista utenti APEX workspace |
## Viste Pagamenti
| Vista | Descrizione |
|-------|-------------|
| [GET_EVENTI_DA_PAGARE_ENTRO_65GG](GET_EVENTI_DA_PAGARE_ENTRO_65GG.md) | Eventi con caparre non pagate |
## Note Tecniche
### Calcolo Totale Evento
Il totale evento viene calcolato sommando diverse viste:
```sql
TOTALE = GET_COSTO_TIPI_EVT
- GET_COSTO_DEGUS_EVT (detrazione)
+ GET_COSTO_RIS_EVT
+ GET_COSTO_OSPITI_EVT (+ 10% IVA)
+ EVENTI_ALTRICOSTI (+ 10% IVA se > 0)
```
### V_IMPEGNI_ARTICOLI
Questa vista è fondamentale per il controllo giacenze:
- Include solo eventi con stato 200-400
- Esclude eventi con versioni successive (`ID_EVT_FIGLIO IS NULL`)
- Usata dalla funzione `F_GET_QTA_IMPEGNATA`
### VW_CALENDARIO_EVENTI
Costruisce la descrizione dinamica per il calendario:
- Numero progressivo evento nel giorno
- Indicatore preventivo scaduto (`!!!`)
- Indicatore contratto non firmato (`*`)
- Location e numero ospiti adulti
- Classe CSS per colorazione

View File

@@ -0,0 +1,60 @@
# VW_CALENDARIO_EVENTI
## Colonne
| Colonna | Tipo |
|---------|------|
| WEEK | VARCHAR2(2) |
| GIORNO | VARCHAR2(1) |
| DATA | DATE |
| DESCRI | VARCHAR2(294) |
| ID | NUMBER |
| STATUS | VARCHAR2(28) |
| COLOR | CHAR(7) |
| CSS_CLASS | VARCHAR2(47) |
| STATO | NUMBER |
| LOCATION | VARCHAR2(200) |
## Definizione
```sql
CREATE OR REPLACE VIEW VW_CALENDARIO_EVENTI AS
select to_char(data,'IW') week,to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') giorno,
e.data,
-- Daniele Trombettoni 15/03/2020
-- Conteggio eventi giornalieri e stato
(case when F_EVENTO_SCADUTO(e.data_scad_preventivo, e.stato, 0, 299) = 1 then '!!! ' end) || ROW_NUMBER() OVER (PARTITION BY e.data, e.stato ORDER BY e.id )|| ') ' || (case when e.contratto_firmato = 0 and e.stato >= 300 then '* ' else '' end) || l.LOCATION || ' Os:'|| F_GET_TOT_OSPITI(e.id, 8) ||(case when tp.TIPO_PASTO is not null then '/' else null end)|| tp.TIPO_PASTO descri,
--l.LOCATION descri,
e.id,
c.status,
-- Daniele Viti 18/01/2020
-- Aggiunto il controllo sul numero di eventi massimi per giorno
-- 20200315 - disattivo temporaneamente il cambio di colore rosso
--case when (select count(*) from eventi ev where ev.data = e.data) > 7 then '#ff2e2e' else c.color end as color
c.color as color,
case c.STATUS
when 'Scheda Quasi Confermata'
then 'apex-cal-SchedaQuasiConfermata' || (case when F_EVENTO_SCADUTO(e.data_scad_preventivo, e.stato, 0, 299) = 1 then ' apex-cal-Scaduto' end)
when 'Scheda Confermata'
then 'apex-cal-SchedaConfermata' || (case when F_EVENTO_SCADUTO(e.data_scad_preventivo, e.stato, 0, 299) = 1 then ' apex-cal-Scaduto' end)
when 'Preventivo'
then 'apex-cal-Preventivo' || (case when F_EVENTO_SCADUTO(e.data_scad_preventivo, e.stato, 0, 299) = 1 then ' apex-cal-Scaduto' end)
when 'Scheda Evento (preparazione)'
then 'apex-cal-Preparazione'
when 'Confermato'
then 'apex-cal-Confermato'
end as css_class,
e.stato,
l.LOCATION
from eventi e
left join tb_tipi_evento tp on tp.cod_tipo = e.cod_tipo
left join location l on e.id_location = l.id
left join vw_event_color c on e.id = c.id
-- 20200315 - escludo nn accettato/superato
where e.stato != 900
and disabled = 0
and nvl(is_template, 0) = 0
and e.ID_EVT_FIGLIO is null
and deleted = 0
order by e.stato
```

View File

@@ -0,0 +1,19 @@
# VW_EVENTI_STATUSES
## Colonne
| Colonna | Tipo |
|---------|------|
| STATO | NUMBER |
| COLOR | CHAR(7) |
| COLOR_SLANG | VARCHAR2(7) |
## Definizione
```sql
CREATE OR REPLACE VIEW VW_EVENTI_STATUSES AS
select distinct e.stato, v.color, v.color_slang
from eventi e
join vw_event_color v on v.id = e.id
order by 1
```

View File

@@ -0,0 +1,57 @@
# VW_EVENT_COLOR
## Colonne
| Colonna | Tipo |
|---------|------|
| ID | NUMBER |
| STATUS | VARCHAR2(28) |
| COLOR | CHAR(7) |
| COLOR_SLANG | VARCHAR2(7) |
## Definizione
```sql
CREATE OR REPLACE VIEW VW_EVENT_COLOR AS
select e.id ,
case when e.stato = 900
then 'Prev non Accettato/Superato'
when e.stato = 100
then 'Preventivo'
when e.stato = 200
then 'Scheda Evento (preparazione)'
when e.stato = 300
then 'Scheda Confermata'
when e.stato = 350
then 'Scheda Quasi Confermata'
when e.stato = 400
then 'Confermato'
end as status,
case when e.stato = 900
then '#913096'
when e.stato = 100
then '#ffffff'
when e.stato = 200
then '#CAE3FC'
when e.stato = 300
then '#FFFFB8'
when e.stato = 350
then '#FFCD59'
when e.stato = 400
then '#B8FFB8'
end as color,
case when e.stato = 900
then 'viola'
when e.stato = 100
then 'bianco'
when e.stato = 200
then 'celeste'
when e.stato = 300
then 'giallo'
when e.stato = 350
then 'arancio'
when e.stato = 400
then 'verde'
end as color_slang
from eventi e
```

View File

@@ -0,0 +1,43 @@
# VW_EVENT_COLOR_OLD
## Colonne
| Colonna | Tipo |
|---------|------|
| ID | NUMBER |
| STATUS | VARCHAR2(28) |
| COLOR | CHAR(7) |
## Definizione
```sql
CREATE OR REPLACE VIEW VW_EVENT_COLOR_OLD AS
select e.id ,
case when e.flg_superato = 1
then 'Prev non Accettato/Superato'
when e.stato = 0 and d.id_evento is null
then 'Preventivo'
when e.stato = 0
then 'Scheda Evento (preparazione)'
when e.stato = 10
then 'Scheda Confermata'
when e.stato = 20
then 'Confermato'
end as status,
case when e.flg_superato = 1
then '#913096'
when e.stato = 0 and d.id_evento is null
then '#ffffff'
when e.stato = 0
then '#CAE3FC'
when e.stato = 10
then '#FFFFB8'
when e.stato = 20
then '#B8FFB8'
end as color
from eventi e
left join (select max(data) data_deg , id_evento
from eventi_det_degust
group by id_evento
) d on e.id = d.id_evento
```

View File

@@ -0,0 +1,70 @@
# VW_REP_DEGUSTAZIONI
## Colonne
| Colonna | Tipo |
|---------|------|
| ID_EVENTO | NUMBER |
| ID | NUMBER |
| DATA | DATE |
| ORA | VARCHAR2(20) |
| NOME | VARCHAR2(100) |
| TELEFONO | VARCHAR2(255) |
| EMAIL | VARCHAR2(255) |
| LOCATION | VARCHAR2(200) |
| N_PERSONE | NUMBER |
| MENU | VARCHAR2(1000) |
| N_PAGANTI | NUMBER |
| NOTE | VARCHAR2(4000) |
| N_DEGUSTAZIONE | NUMBER |
| DES_EVENTO | VARCHAR2(407) |
| DATA_EVENTO | DATE |
| LOCATION_DEG | VARCHAR2(1000) |
| COUNT_RIGA | NUMBER |
| STATO | NUMBER |
| STATUS | VARCHAR2(28) |
| SCADUTO | CHAR(2) |
| TIPO_PASTO | VARCHAR2(6) |
| DESCRIZIONE_TIPO | VARCHAR2(100) |
## Definizione
```sql
CREATE OR REPLACE VIEW VW_REP_DEGUSTAZIONI AS
select
d.ID_EVENTO,
d.ID,
d.DATA,
d.ORA,
e.CLIENTE NOME,
e.cliente_tel as TELEFONO,
e.cliente_email as EMAIL,
l.LOCATION,
d.N_PERSONE,
d.MENU,
d.N_PAGANTI,
d.NOTE,
d.N_DEGUSTAZIONE,
e.data || ' - ' || t.DESCRIZIONE || ' - ' || l.location || ' - ' || substr(cliente,1,20) des_evento,
e.data as data_evento,
d.location as location_deg,
1 AS COUNT_RIGA,
e.stato as stato,
c.status,
case when e.data_scad_preventivo <= trunc(sysdate)
then CASE WHEN e.stato >= 400 THEN 'NO' ELSE 'SI' END
else 'NO'
end scaduto,
decode(p.tipo_pasto, 'C', 'Cena', 'P', 'Pranzo', 'Altro') as tipo_pasto,
p.descrizione as descrizione_tipo
from eventi e
left join EVENTI_DET_DEGUST d on d.id_evento = e.id
left join vw_event_color c on d.id_evento = c.id
left join tb_tipi_evento t on e.cod_tipo = t.COD_TIPO
left join location l on e.id_location = l.ID
left join tb_tipi_evento p on p.cod_tipo = e.cod_tipo
where e.disabled = 0
and e.deleted = 0
and e.stato < 900
order by d.data, d.ora
```

69
docs/views/V_GRIGLIA.md Normal file
View File

@@ -0,0 +1,69 @@
# V_GRIGLIA
## Colonne
| Colonna | Tipo |
|---------|------|
| ID | NUMBER |
| TIPO_RIEPILOGO | VARCHAR2(20) |
| RNK | NUMBER |
| DES_TIPO | VARCHAR2(1000) |
| LUN | VARCHAR2(4000) |
| MAR | VARCHAR2(4000) |
| MER | VARCHAR2(4000) |
| GIO | VARCHAR2(4000) |
| VEN_1 | VARCHAR2(4000) |
| VEN_2 | VARCHAR2(4000) |
| SAB_1 | VARCHAR2(4000) |
| SAB_2 | VARCHAR2(4000) |
| DOM_1 | VARCHAR2(4000) |
| DOM_2 | VARCHAR2(4000) |
## Definizione
```sql
CREATE OR REPLACE VIEW V_GRIGLIA AS
with t as (
select to_char(data,'IW') week,
-- to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') giorno,
to_char(data,'d') giorno,
-- to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') * 100000 + E.ID giorno,
E.ID ,
DENSE_RANK() OVER (PARTITION BY to_char(data,'d', 'NLS_DATE_LANGUAGE = italian') * 100000 ORDER BY e.id) rnk,
e.data,e.descrizione,
p.cod_articolo,
a.descrizione des_art,
a.cod_categ,
c.descrizione des_categ,
c.cod_tipo ,
t.descrizione des_tipo,
c.tipo_riepilogo
from eventi e
join eventi_det_prel p on e.id = p.id_evento
join articoli a on p.cod_articolo = a.cod_articolo
join tb_codici_categ c on a.cod_categ = c.cod_categ
join tb_tipi_mat t on c.cod_tipo = t.cod_tipo
-- where to_char(data,'IW') = to_char(to_date(:P14_SETTIMANA,'DD-MON-YYYY'),'IW')
where to_char(data,'IW') = to_char(to_date('05-MAY-2018','DD-MON-YYYY'),'IW')
)
, t_des as (
select ID,rnk,
t.tipo_riepilogo,
t.DES_TIPO,
t.descrizione,
case when giorno = 1 then t.DES_ART end DOM_1,
case when giorno = 1 then t.DES_ART end DOM_2,
case when giorno = 2 then t.DES_ART end LUN,
case when giorno = 3 then t.DES_ART end MAR,
case when giorno = 4 then t.DES_ART end MER,
case when giorno = 5 then t.DES_ART end GIO,
case when giorno = 6 and rnk =1 then t.DES_ART else '1-' end VEN_1,
case when giorno = 6 and rnk =2 then t.DES_ART else '2-' end VEN_2,
case when giorno = 7 then t.DES_ART else '1-' end SAB_1,
case when giorno = 7 then t.DES_ART else '2-' end SAB_2
from t
)
select id, tipo_riepilogo,rnk, DES_TIPO,LUN, MAR, MER, GIO, VEN_1,VEN_2, SAB_1, SAB_2, DOM_1, DOM_2
from t_des
```

View File

@@ -0,0 +1,30 @@
# V_IMPEGNI_ARTICOLI
## Colonne
| Colonna | Tipo |
|---------|------|
| DATA | DATE |
| COD_ARTICOLO | VARCHAR2(10) |
| QTA_IMP | NUMBER |
| QTA_APE | NUMBER |
| QTA_SEDU | NUMBER |
| QTA_BUFDOL | NUMBER |
## Definizione
```sql
CREATE OR REPLACE VIEW V_IMPEGNI_ARTICOLI AS
select e.data,p.cod_articolo,
sum(p.qta) qta_imp,
sum(p.qta_ape) qta_ape,
sum(p.qta_sedu) qta_sedu,
sum(p.qta_bufdol) qta_bufdol
from eventi_det_prel p
join eventi e on p.id_evento = e.id
where e.data >= trunc(sysdate)
and e.stato between 200 and 400
and e.id_evt_figlio is null
group by e.data,cod_articolo
order by cod_articolo,e.data
```

View File

@@ -0,0 +1,51 @@
# V_IMPEGNI_ARTICOLI_LOC
## Colonne
| Colonna | Tipo |
|---------|------|
| DATA | DATE |
| LOCATION | VARCHAR2(200) |
| COD_ARTICOLO | VARCHAR2(10) |
| DESCRIZIONE | VARCHAR2(4000) |
| TOT_OSPITI | NUMBER |
| QTA_GIAC | NUMBER |
| QTA_IMP | NUMBER |
| QTA_RES | NUMBER |
| QTA_APE | NUMBER |
| QTA_SEDU | NUMBER |
| QTA_BUFDOL | NUMBER |
| DESCRI_CATEG | VARCHAR2(1013) |
| DESCRI_TIPO | VARCHAR2(1013) |
## Definizione
```sql
CREATE OR REPLACE VIEW V_IMPEGNI_ARTICOLI_LOC AS
with t as (
select e.data, l.LOCATION,p.cod_articolo,a.DESCRIZIONE,e.TOT_OSPITI,
sum(a.QTA_GIAC) qta_giac,
sum(p.qta) qta_imp,
sum(a.QTA_GIAC) - f_get_qta_impegnata(p.cod_articolo,e.data) qta_res,
sum(p.qta_ape) qta_ape,
sum(p.qta_sedu) qta_sedu,
sum(p.qta_bufdol) qta_bufdol
from eventi_det_prel p
left
join articoli a on p.COD_ARTICOLO = a.COD_ARTICOLO
join eventi e on p.id_evento = e.id
left
join location l on e.id_location = l.id
where e.stato between 200 and 400
and e.id_evt_figlio is null
group by e.data, l.LOCATION,p.cod_articolo,a.DESCRIZIONE,e.TOT_OSPITI
order by e.data, l.LOCATION,p.cod_articolo
)
select t."DATA",t."LOCATION",t."COD_ARTICOLO",t."DESCRIZIONE",t."TOT_OSPITI",t."QTA_GIAC",t."QTA_IMP",t."QTA_RES",t."QTA_APE",t."QTA_SEDU",t."QTA_BUFDOL",
g.cod_categ || ' - ' || g.descrizione as descri_categ,
u.cod_tipo || ' - ' || u.descrizione as descri_tipo
from t
join articoli a on a.COD_ARTICOLO = t.COD_ARTICOLO
join tb_codici_categ g on g.COD_CATEG = a.COD_CATEG
join tb_tipi_mat u on u.cod_tipo = g.cod_tipo
```

View File

@@ -0,0 +1,177 @@
# V_REP_ALLESTIMENTI
## Colonne
| Colonna | Tipo |
|---------|------|
| D1 | DATE |
| D2 | DATE |
| D3 | DATE |
| D4 | DATE |
| D5 | DATE |
| D6 | DATE |
| D7 | DATE |
| D8 | DATE |
| D9 | DATE |
| D10 | DATE |
| D11 | DATE |
| D12 | DATE |
| L1 | VARCHAR2(200) |
| L2 | VARCHAR2(200) |
| L3 | VARCHAR2(200) |
| L4 | VARCHAR2(200) |
| L5 | VARCHAR2(200) |
| L6 | VARCHAR2(200) |
| L7 | VARCHAR2(200) |
| L8 | VARCHAR2(200) |
| L9 | VARCHAR2(200) |
| L10 | VARCHAR2(200) |
| L11 | VARCHAR2(200) |
| L12 | VARCHAR2(200) |
| T1 | VARCHAR2(4000) |
| T2 | VARCHAR2(4000) |
| T3 | VARCHAR2(4000) |
| T4 | VARCHAR2(4000) |
| T5 | VARCHAR2(4000) |
| T6 | VARCHAR2(4000) |
| T7 | VARCHAR2(4000) |
| T8 | VARCHAR2(4000) |
| T9 | VARCHAR2(4000) |
| T10 | VARCHAR2(4000) |
| T11 | VARCHAR2(4000) |
| T12 | VARCHAR2(4000) |
| C1 | VARCHAR2(4000) |
| C2 | VARCHAR2(4000) |
| C3 | VARCHAR2(4000) |
| C4 | VARCHAR2(4000) |
| C5 | VARCHAR2(4000) |
| C6 | VARCHAR2(4000) |
| C7 | VARCHAR2(4000) |
| C8 | VARCHAR2(4000) |
| C9 | VARCHAR2(4000) |
| C10 | VARCHAR2(4000) |
| C11 | VARCHAR2(4000) |
| C12 | VARCHAR2(4000) |
## Definizione
```sql
CREATE OR REPLACE VIEW V_REP_ALLESTIMENTI AS
with t as (select e.id, e.data, l.location, e.torta, e.confettata
from eventi e
left join location l on e.id_location = l.id
where data >= sysdate
order by data
)
, q as (select t.* , rownum as order_id
from t
order by data
)
, r as (select -- q.* ,
case when order_id =1 then data else null end as data1,
case when order_id =2 then data else null end as data2,
case when order_id =3 then data else null end as data3,
case when order_id =4 then data else null end as data4,
case when order_id =5 then data else null end as data5,
case when order_id =6 then data else null end as data6,
case when order_id =7 then data else null end as data7,
case when order_id =8 then data else null end as data8,
case when order_id =9 then data else null end as data9,
case when order_id =10 then data else null end as data10,
case when order_id =11 then data else null end as data11,
case when order_id =12 then data else null end as data12,
case when order_id =1 then location else null end as location1,
case when order_id =2 then location else null end as location2,
case when order_id =3 then location else null end as location3,
case when order_id =4 then location else null end as location4,
case when order_id =5 then location else null end as location5,
case when order_id =6 then location else null end as location6,
case when order_id =7 then location else null end as location7,
case when order_id =8 then location else null end as location8,
case when order_id =9 then location else null end as location9,
case when order_id =10 then location else null end as location10,
case when order_id =11 then location else null end as location11,
case when order_id =12 then location else null end as location12,
case when order_id =1 then torta else null end as torta1,
case when order_id =2 then torta else null end as torta2,
case when order_id =3 then torta else null end as torta3,
case when order_id =4 then torta else null end as torta4,
case when order_id =5 then torta else null end as torta5,
case when order_id =6 then torta else null end as torta6,
case when order_id =7 then torta else null end as torta7,
case when order_id =8 then torta else null end as torta8,
case when order_id =9 then torta else null end as torta9,
case when order_id =10 then torta else null end as torta10,
case when order_id =11 then torta else null end as torta11,
case when order_id =12 then torta else null end as torta12,
case when order_id =1 then confettata else null end as confettata1,
case when order_id =2 then confettata else null end as confettata2,
case when order_id =3 then confettata else null end as confettata3,
case when order_id =4 then confettata else null end as confettata4,
case when order_id =5 then confettata else null end as confettata5,
case when order_id =6 then confettata else null end as confettata6,
case when order_id =7 then confettata else null end as confettata7,
case when order_id =8 then confettata else null end as confettata8,
case when order_id =9 then confettata else null end as confettata9,
case when order_id =10 then confettata else null end as confettata10,
case when order_id =11 then confettata else null end as confettata11,
case when order_id =12 then confettata else null end as confettata12
from q
)
select min(data1) as d1,
min(data2) as d2,
min(data3) as d3,
min(data4) as d4,
min(data5) as d5,
min(data6) as d6,
min(data7) as d7,
min(data8) as d8,
min(data9) as d9,
min(data10) as d10,
min(data11) as d11,
min(data12) as d12,
min(location1) as l1,
min(location2) as l2,
min(location3) as l3,
min(location4) as l4,
min(location5) as l5,
min(location6) as l6,
min(location7) as l7,
min(location8) as l8,
min(location9) as l9,
min(location10) as l10,
min(location11) as l11,
min(location12) as l12,
min(torta1) as t1,
min(torta2) as t2,
min(torta3) as t3,
min(torta4) as t4,
min(torta5) as t5,
min(torta6) as t6,
min(torta7) as t7,
min(torta8) as t8,
min(torta9) as t9,
min(torta10) as t10,
min(torta11) as t11,
min(torta12) as t12,
min(confettata1) as c1,
min(confettata2) as c2,
min(confettata3) as c3,
min(confettata4) as c4,
min(confettata5) as c5,
min(confettata6) as c6,
min(confettata7) as c7,
min(confettata8) as c8,
min(confettata9) as c9,
min(confettata10) as c10,
min(confettata11) as c11,
min(confettata12) as c12
from r
```