# 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 ```