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)