54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
# 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)))
|
|
```
|