USP_DATALIST_PARTICIPANTWIDGET

Get List of Widgets available for Participant.

Parameters

Parameter Parameter Type Mode Description
@EVENTID uniqueidentifier IN EventID
@REGISTRANTID uniqueidentifier IN RegistrantID
@WIDGETID int IN WidgetID

Definition

Copy


        CREATE procedure dbo.USP_DATALIST_PARTICIPANTWIDGET
                            (    @EVENTID uniqueidentifier, 
                                @REGISTRANTID uniqueidentifier,
                                @WIDGETID int = NULL
                            )with execute as caller
        as
            set nocount on;

            declare @CHANGEAGENTID uniqueidentifier 
            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

            declare @CURRENTDATE datetime
            set @CURRENTDATE = getdate()

      --Bug 195562 - copying down the admin story results in an inability to know if the registrant actually customized it

            --IF NOT EXISTS (SELECT 1 FROM PARTICIPANTWIDGET WHERE REGISTRANTID = @REGISTRANTID AND WIDGETID = 3)

            --BEGIN

                --IF NOT EXISTS (SELECT 1 FROM dbo.STORY WHERE REGISTRANTID = @REGISTRANTID AND TYPECODE = 0)

                    --INSERT INTO STORY (ID,EVENTID,STORYTEXT,FAFIMAGESID,IMAGECODE,REGISTRANTID,TYPECODE,ADDEDBYID,CHANGEDBYID,DATECHANGED,DATEADDED)

                    --SELECT TOP 1 NEWID(),EVENTID,STORYTEXT,FAFIMAGESID,IMAGECODE,@REGISTRANTID,0,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE

                    --FROM dbo.STORY WHERE EVENTID = @EVENTID AND TYPECODE = 0 AND REGISTRANTID IS NULL AND TEAMFUNDRAISINGTEAMID IS NULL

            --END


            IF NOT EXISTS (SELECT 1 FROM PARTICIPANTWIDGET WHERE REGISTRANTID = @REGISTRANTID AND WIDGETID = 9)
            BEGIN
                IF NOT EXISTS (SELECT 1 FROM dbo.FAFRSSFEED WHERE REGISTRANTID = @REGISTRANTID AND TYPECODE = 0)
                    INSERT INTO FAFRSSFEED (ID,EVENTID,REGISTRANTID,TYPECODE,RSSFEEDURL,ADDEDBYID,CHANGEDBYID,DATECHANGED,DATEADDED)
                    SELECT NEWID(),EVENTID,@REGISTRANTID,0,RSSFEEDURL,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
                    FROM dbo.FAFRSSFEED WHERE EVENTID = @EVENTID AND TYPECODE = 0 AND REGISTRANTID IS NULL AND TEAMFUNDRAISINGTEAMID IS NULL
            END

            IF NOT EXISTS (SELECT 1 FROM PARTICIPANTWIDGET WHERE REGISTRANTID = @REGISTRANTID AND WIDGETID = 7)
            BEGIN
        DECLARE @CONSTITUENTID uniqueidentifier
        SET @CONSTITUENTID = (SELECT CONSTITUENTID FROM dbo.REGISTRANT WHERE ID = @REGISTRANTID)

                IF NOT EXISTS (SELECT 1 FROM dbo.VIDEO WHERE CONSTITUENTID = @CONSTITUENTID AND TYPECODE = 0)
                    INSERT INTO VIDEO (ID,EVENTID,VIDEOID,NAME,CAPTION,URL,STATUS,FILEPATH,CONSTITUENTID,TYPECODE,ADDEDBYID,CHANGEDBYID,DATECHANGED,DATEADDED)
                    SELECT NEWID(),EVENTID,VIDEOID,NAME,CAPTION,URL,STATUS,FILEPATH,@CONSTITUENTID,0,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
                    FROM dbo.VIDEO WHERE EVENTID = @EVENTID AND TYPECODE = 0 AND CONSTITUENTID IS NULL 
            END

            INSERT INTO PARTICIPANTWIDGET (ID,widgetid,registrantid,displaytext,isactive,addedbyid,changedbyid,dateadded,datechanged)
            SELECT NEWID(),EW.WIDGETID,@REGISTRANTID,EW.DISPLAYTEXT,EW.ISACTIVE,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE
            FROM dbo.EVENTWIDGET EW WITH (NOLOCK)
            LEFT OUTER JOIN dbo.PARTICIPANTWIDGET PW WITH (NOLOCK)
            ON EW.WIDGETID = PW.WIDGETID
            AND PW.REGISTRANTID = @REGISTRANTID
            WHERE PW.WIDGETID IS NULL
            AND EW.ROLECODE = 0
            AND EW.EVENTID = @EVENTID
            AND (EW.ISACTIVE = 1 OR EW.ALLOWREMOVE = 1)

            IF @WIDGETID IS NULL
            SELECT PW.ID,
                   PW.WIDGETID,
                   WG.NAME,
                   WG.DESCRIPTION,
                   PW.DISPLAYTEXT,
                   PW.ISACTIVE,
                   WG.PARENTWIDGETID,
                   EW.ALLOWEDIT,
                   EW.ALLOWMOVE,
                   EW.ALLOWREMOVE
            FROM dbo.EVENTWIDGET EW WITH (NOLOCK)
            INNER JOIN dbo.PARTICIPANTWIDGET PW WITH (NOLOCK)
            ON PW.WIDGETID = EW.WIDGETID
            INNER JOIN dbo.WIDGETGALLERY WG WITH (NOLOCK)
            ON WG.WIDGETID = EW.WIDGETID
            WHERE EW.EVENTID = @EVENTID
            AND EW.ROLECODE = 0
            AND PW.REGISTRANTID = @REGISTRANTID
      -- Remove the filtering here to get all participant widget information in one call

      -- to reduce the # of web service calls, filtering logic will move to front end

            --AND WG.PARENTWIDGETID IS NULL   

            AND (EW.ISACTIVE = 1 OR EW.ALLOWREMOVE = 1)
        ELSE    -- Get the Widget and Child widgets

            SELECT PW.ID,
                   PW.WIDGETID,
                   WG.NAME,
                   WG.DESCRIPTION,
                   PW.DISPLAYTEXT,
                   PW.ISACTIVE,
                   WG.PARENTWIDGETID,
                   EW.ALLOWEDIT,
                   EW.ALLOWMOVE,
                   EW.ALLOWREMOVE
            FROM dbo.EVENTWIDGET EW WITH (NOLOCK)
            INNER JOIN dbo.PARTICIPANTWIDGET PW WITH (NOLOCK)
            ON PW.WIDGETID = EW.WIDGETID
            INNER JOIN dbo.WIDGETGALLERY WG WITH (NOLOCK)
            ON WG.WIDGETID = EW.WIDGETID
            WHERE EW.EVENTID = @EVENTID
            AND EW.ROLECODE = 0
            AND PW.REGISTRANTID = @REGISTRANTID
            AND (EW.ISACTIVE = 1 OR EW.ALLOWREMOVE = 1)
            AND (PW.WIDGETID = @WIDGETID OR WG.PARENTWIDGETID = @WIDGETID)