165 lines
3.9 KiB
Markdown
165 lines
3.9 KiB
Markdown
# F_GET_OSPITI
|
|
|
|
## Codice Sorgente
|
|
|
|
```sql
|
|
FUNCTION "F_GET_OSPITI" (
|
|
p_id_evento IN NUMBER
|
|
) RETURN t_det_ospiti_tab
|
|
PIPELINED
|
|
AS
|
|
|
|
v_data DATE;
|
|
v_location VARCHAR2(100);
|
|
v_cliente VARCHAR2(100);
|
|
v_descrizione VARCHAR2(100);
|
|
v_ora_cerimonia VARCHAR2(10);
|
|
v_ora_evento VARCHAR2(10);
|
|
v_tot_adulti NUMBER;
|
|
v_tot_kinder NUMBER;
|
|
v_tot_baby NUMBER;
|
|
v_tot_staff NUMBER;
|
|
v_tot_invitati NUMBER;
|
|
v_allergie VARCHAR2(4000);
|
|
v_torta VARCHAR2(1000);
|
|
v_confettata VARCHAR2(100);
|
|
v_stampa_menu VARCHAR2(100);
|
|
v_angoli VARCHAR2(1000);
|
|
v_extra_info VARCHAR2(1000);
|
|
v_note_adulti VARCHAR2(1000);
|
|
v_note_kinder VARCHAR2(1000);
|
|
v_note_baby VARCHAR2(1000);
|
|
v_note_staff VARCHAR2(1000);
|
|
BEGIN
|
|
BEGIN
|
|
v_tot_adulti := 0;
|
|
v_tot_kinder := 0;
|
|
v_tot_baby := 0;
|
|
v_tot_staff := 0;
|
|
v_tot_invitati := 0;
|
|
v_angoli := 0;
|
|
v_note_adulti := '';
|
|
v_note_kinder := '';
|
|
v_note_baby := '';
|
|
v_note_staff := '';
|
|
|
|
--ospiti
|
|
SELECT
|
|
nvl(SUM(o.numero),
|
|
0)
|
|
INTO v_tot_adulti
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 8; -- adulti
|
|
|
|
BEGIN
|
|
SELECT
|
|
o.note
|
|
INTO v_note_adulti
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 8; -- adulti
|
|
|
|
EXCEPTION
|
|
WHEN no_data_found THEN
|
|
NULL;
|
|
END;
|
|
|
|
SELECT
|
|
nvl(SUM(o.numero),
|
|
0)
|
|
INTO v_tot_kinder
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 5; --Kinder
|
|
|
|
BEGIN
|
|
SELECT
|
|
o.note
|
|
INTO v_note_kinder
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 5; --Kinder
|
|
|
|
EXCEPTION
|
|
WHEN no_data_found THEN
|
|
NULL;
|
|
END;
|
|
|
|
SELECT
|
|
nvl(SUM(o.numero),
|
|
0)
|
|
INTO v_tot_baby
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 6; -- Baby
|
|
|
|
BEGIN
|
|
SELECT
|
|
o.note
|
|
INTO v_note_baby
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 6; -- Baby
|
|
|
|
EXCEPTION
|
|
WHEN no_data_found THEN
|
|
NULL;
|
|
END;
|
|
|
|
SELECT
|
|
nvl(SUM(o.numero),
|
|
0)
|
|
INTO v_tot_staff
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 7; -- Staff
|
|
|
|
BEGIN
|
|
SELECT
|
|
o.note
|
|
INTO v_note_staff
|
|
FROM
|
|
eventi_det_ospiti o
|
|
WHERE
|
|
o.id_evento = p_id_evento
|
|
AND o.cod_tipo_ospite = 7; -- Staff
|
|
|
|
EXCEPTION
|
|
WHEN no_data_found THEN
|
|
NULL;
|
|
END;
|
|
|
|
SELECT
|
|
nvl(e.tot_ospiti, 0)
|
|
INTO v_tot_invitati
|
|
FROM
|
|
eventi e
|
|
WHERE
|
|
e.id = p_id_evento;
|
|
|
|
PIPE ROW ( t_det_ospiti_row(p_id_evento, v_tot_adulti, v_tot_kinder, v_tot_baby, v_tot_staff,
|
|
v_tot_invitati, v_note_adulti, v_note_kinder, v_note_baby, v_note_staff) );
|
|
|
|
EXCEPTION
|
|
WHEN OTHERS THEN
|
|
NULL;
|
|
END;
|
|
|
|
RETURN;
|
|
END;```
|