Files
zentral/docs/functions/F_GET_OSPITI.md
2025-11-28 10:59:10 +01:00

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