Files
apollinare-catering-software/docs/functions/F_GET_OSPITI.md
2025-12-17 13:02:12 +01:00

3.9 KiB

F_GET_OSPITI

Codice Sorgente

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