Vai al contenuto

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