USP_DATALIST_FAFREGISTRANTBENEFIT_SUMMARY

Displays a summary of benefits, incentive benefits for a given registrant and all of that registrant's guests..

Parameters

Parameter Parameter Type Mode Description
@REGISTRANTID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.

Definition

Copy


CREATE procedure dbo.USP_DATALIST_FAFREGISTRANTBENEFIT_SUMMARY    (
          @REGISTRANTID uniqueidentifier,
          @CURRENTAPPUSERID uniqueidentifier
                )
                as
                set nocount on;

                WITH GET_REGISTRANTBENEFITEXTENSION
        AS
        (    
        SELECT    REGISTRANT.ID, dbo.UFN_REGISTRANT_GETNAME(REGISTRANT.ID) NAME
                  , case when REGISTRANTBENEFITEXTENSION.BENEFITTYPECODE = 0 then REGISTRANT.BENEFITSWAIVED else 0 end as BENEFITSWAIVED
                    , CASE    WHEN ISNULL(BENEFITOPTION.NAME, '')= ''        THEN ISNULL(dbo.UFN_BENEFIT_GETNAME (REGISTRANTBENEFITEXTENSION.BENEFITID),'')  
                                  WHEN ISNULL(BENEFITOPTION.NAME, '')<> ''    THEN ISNULL(dbo.UFN_BENEFIT_GETNAME (REGISTRANTBENEFITEXTENSION.BENEFITID),'')  + '- ' + ISNULL(BENEFITOPTION.NAME, ''
                              END AS BENEFITNAME
                      , REGISTRANTBENEFITEXTENSION.BENEFITTYPE, RB.QUANTITY --, RB.UNITVALUE

                      , REGISTRANTBENEFITEXTENSION.BENEFITPREFERENCE as UNITVALUE, RB.TOTALVALUE, RB.DETAILS, RB.BASECURRENCYID
                      , EVENT.NAME EVENTNAME,EVENTHIERARCHY.HIERARCHYPATH.GetLevel() EVENTLEVEL,REGISTRANTBENEFITEXTENSION.BENEFITTYPECODE, RB.BENEFITID, RB.UNITVALUE UNITVALUE2
        FROM              dbo.REGISTRANT
        INNER JOIN    dbo.REGISTRANTBENEFITEXTENSION    ON REGISTRANTBENEFITEXTENSION.REGISTRANTID = REGISTRANT.ID
        LEFT JOIN        dbo.REGISTRANTBENEFIT    RB                ON RB.BENEFITID = dbo.REGISTRANTBENEFITEXTENSION.BENEFITID AND REGISTRANTBENEFITEXTENSION.REGISTRANTID = RB.REGISTRANTID
        INNER JOIN    dbo.EVENT                                        ON REGISTRANT.EVENTID = EVENT.ID
        LEFT JOIN        dbo.EVENTHIERARCHY                        ON EVENTHIERARCHY.ID = EVENT.ID
        LEFT JOIN        BENEFITOPTION                                 ON REGISTRANTBENEFITEXTENSION.BENEFITOPTIONID= BENEFITOPTION.ID
        WHERE              REGISTRANT.ID =@REGISTRANTID
        )
        ,  GET_REGISTRANTBENEFIT
        AS
        ( 
        SELECT          REGISTRANT.ID, dbo.UFN_REGISTRANT_GETNAME(REGISTRANT.ID) NAME, 
                    case when RB2.BENEFITTYPECODE = 0 then REGISTRANT.BENEFITSWAIVED else 0 end as BENEFITSWAIVED,
                    B.NAME AS BENEFITNAME, RB2.BENEFITTYPE, QUANTITY, '' as UNITVALUE, 
                    TOTALVALUE, DETAILS, RB2.BASECURRENCYID, EVENT.NAME EVENTNAME, EVENTHIERARCHY.HIERARCHYPATH.GetLevel() EVENTLEVEL, '' AS BENEFITTYPECODE, RB2.BENEFITID, RB2.UNITVALUE UNITVALUE2
        FROM              dbo.REGISTRANT 
        LEFT JOIN        dbo.REGISTRANTBENEFIT   RB2 ON RB2.REGISTRANTID = REGISTRANT.ID
        LEFT JOIN        dbo.BENEFIT                        B       ON RB2.BENEFITID = B.ID
        INNER JOIN    dbo.EVENT                               ON REGISTRANT.EVENTID = EVENT.ID
        LEFT JOIN        dbo.EVENTHIERARCHY               ON EVENTHIERARCHY.ID = EVENT.ID
        WHERE              REGISTRANT.ID = @REGISTRANTID and RB2.ID is not null
        AND                  RB2.BENEFITID NOT IN (SELECT BENEFITID FROM GET_REGISTRANTBENEFITEXTENSION)
         )
        SELECT * FROM GET_REGISTRANTBENEFIT UNION ALL SELECT * FROM GET_REGISTRANTBENEFITEXTENSION  ORDER BY EVENTLEVEL, EVENTNAME, NAME