USP_DATAFORMTEMPLATE_VIEW_REGISTRANTPROFILE
The load procedure used by the view dataform template "Registrant Summary View Form"
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter used to load the fields defined on the form. |
@DATALOADED | bit | INOUT | Output parameter indicating whether or not data was actually loaded. |
@ISREGISTRANTPROFILE | bit | INOUT | ISREGISTRANTPROFILE |
@ADDRESS | nvarchar(300) | INOUT | ADDRESS |
@PHONENUMBER | nvarchar(100) | INOUT | PHONENUMBER |
@PHONETYPE | nvarchar(100) | INOUT | PHONETYPE |
@EMAILADDRESS | UDT_EMAILADDRESS | INOUT | EMAILADDRESS |
@WEBADDRESS | UDT_WEBADDRESS | INOUT | WEBADDRESS |
@PICTURE | varbinary | INOUT | PICTURE |
@REGISTRANTGUESTCOUNT | int | INOUT | No. of guests |
@REGISTRANTSTATUS | nvarchar(28) | INOUT | Status |
@GROUPNAME | nvarchar(100) | INOUT | Group name |
@CONSTITUENTNAME | nvarchar(700) | INOUT | Name |
@CONSTITUENTID | uniqueidentifier | INOUT | CONSTITUENTID |
@ISGUEST | bit | INOUT | ISGUEST |
@GUESTOFREGISTRANTID | uniqueidentifier | INOUT | GUESTOFREGISTRANTID |
@GUESTOFREGISTRANTNAME | nvarchar(700) | INOUT | GUESTOFREGISTRANTNAME |
@EVENTID | uniqueidentifier | INOUT | EVENTID |
@EVENTNAME | nvarchar(100) | INOUT | EVENTNAME |
@ATTENDED | bit | INOUT | ATTENDED |
@WILLNOTATTEND | bit | INOUT | WILLNOTATTEND |
@ONLINEREGISTRANT | bit | INOUT | ONLINEREGISTRANT |
@REGISTRANTSEAT | nvarchar(310) | INOUT | Seat |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_VIEW_REGISTRANTPROFILE
(
@ID uniqueidentifier,
@DATALOADED bit = 0 output,
@ISREGISTRANTPROFILE bit = null output,
@ADDRESS nvarchar(300) = null output,
@PHONENUMBER nvarchar(100) = null output,
@PHONETYPE nvarchar(100) = null output,
@EMAILADDRESS dbo.UDT_EMAILADDRESS = null output,
@WEBADDRESS dbo.UDT_WEBADDRESS = null output,
@PICTURE varbinary(max) = null output,
@REGISTRANTGUESTCOUNT int = null output,
@REGISTRANTSTATUS nvarchar(28) = null output,
@GROUPNAME nvarchar(100) = null output,
@CONSTITUENTNAME nvarchar(700) = null output,
@CONSTITUENTID uniqueidentifier = null output,
@ISGUEST bit = null output,
@GUESTOFREGISTRANTID uniqueidentifier = null output,
@GUESTOFREGISTRANTNAME nvarchar(700) = null output,
@EVENTID uniqueidentifier = null output,
@EVENTNAME nvarchar(100) = null output,
@ATTENDED bit = null output,
@WILLNOTATTEND bit = null output,
@ONLINEREGISTRANT bit = null output,
@REGISTRANTSEAT nvarchar(310) = null output
)
as
set nocount on;
set @DATALOADED = 0;
select
@DATALOADED = 1,
@ADDRESS = dbo.UFN_BUILDFULLADDRESS(ADDRESS.ID, ADDRESS.ADDRESSBLOCK, ADDRESS.CITY, ADDRESS.STATEID, ADDRESS.POSTCODE, ADDRESS.COUNTRYID),
@PHONENUMBER = PHONE.NUMBER,
@PHONETYPE = dbo.UFN_PHONETYPECODE_GETDESCRIPTION(PHONE.PHONETYPECODEID),
@EMAILADDRESS = EMAILADDRESS.EMAILADDRESS,
@WEBADDRESS = CONSTITUENT.WEBADDRESS,
@PICTURE = CONSTITUENT.PICTURETHUMBNAIL,
@REGISTRANTGUESTCOUNT = coalesce((select count(GUESTS.ID) from dbo.REGISTRANT as GUESTS where GUESTS.GUESTOFREGISTRANTID = REGISTRANT.ID),0),
@REGISTRANTSTATUS =
case
when REGISTRANT.ATTENDED = 0 and REGISTRANT.WILLNOTATTEND = 1 then 'Registered (will not attend)'
when REGISTRANT.ATTENDED = 0 and REGISTRANT.WILLNOTATTEND = 0 then 'Registered'
else 'Attended'
end,
@CONSTITUENTNAME = NF.NAME,
@CONSTITUENTID = REGISTRANT.CONSTITUENTID,
@ISGUEST = case when REGISTRANT.GUESTOFREGISTRANTID is null then 0 else 1 end,
@GUESTOFREGISTRANTID = REGISTRANT.GUESTOFREGISTRANTID,
@GUESTOFREGISTRANTNAME = GUESTOF_NF.NAME,
@EVENTID = REGISTRANT.EVENTID,
@EVENTNAME = dbo.UFN_EVENT_GETNAME(REGISTRANT.EVENTID),
@ATTENDED = REGISTRANT.ATTENDED,
@WILLNOTATTEND = REGISTRANT.WILLNOTATTEND,
@ONLINEREGISTRANT = REGISTRANT.ONLINEREGISTRANT,
@ISREGISTRANTPROFILE = 1,
@REGISTRANTSEAT = dbo.UFN_EVENTSEATING_GETREGISTRANTSEATPATH(REGISTRANT.ID)
from
dbo.REGISTRANT
inner join dbo.CONSTITUENT on REGISTRANT.CONSTITUENTID = CONSTITUENT.ID
left join dbo.ADDRESS on ADDRESS.CONSTITUENTID = CONSTITUENT.ID and ADDRESS.ISPRIMARY = 1
left join dbo.PHONE on PHONE.CONSTITUENTID = CONSTITUENT.ID and PHONE.ISPRIMARY = 1
left join dbo.EMAILADDRESS on EMAILADDRESS.CONSTITUENTID = CONSTITUENT.ID and EMAILADDRESS.ISPRIMARY = 1
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(REGISTRANT.CONSTITUENTID) NF
left join dbo.REGISTRANT as GUESTOF on GUESTOF.ID = REGISTRANT.GUESTOFREGISTRANTID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(GUESTOF.CONSTITUENTID) GUESTOF_NF
where
REGISTRANT.ID = @ID;
--Attempt to load data for an unknown guest if no constituent exists
if ((@DATALOADED is null) or (@DATALOADED = 0))
begin
select
@DATALOADED = 1,
@ADDRESS = null,
@PHONENUMBER = null,
@PHONETYPE = null,
@EMAILADDRESS = null,
@WEBADDRESS = null,
@PICTURE = null,
@REGISTRANTGUESTCOUNT = coalesce((select count(GUESTS.ID) from dbo.REGISTRANT as GUESTS where GUESTS.GUESTOFREGISTRANTID = REGISTRANT.ID),0),
@REGISTRANTSTATUS =
case
when REGISTRANT.ATTENDED = 0 and REGISTRANT.WILLNOTATTEND = 1 then 'Registered (will not attend)'
when REGISTRANT.ATTENDED = 0 and REGISTRANT.WILLNOTATTEND = 0 then 'Registered'
else 'Attended'
end,
@CONSTITUENTNAME = dbo.UFN_REGISTRANT_GETNAME(REGISTRANT.ID),
@CONSTITUENTID = REGISTRANT.CONSTITUENTID,
@ISGUEST = case when REGISTRANT.GUESTOFREGISTRANTID is null then 0 else 1 end,
@GUESTOFREGISTRANTID = REGISTRANT.GUESTOFREGISTRANTID,
@GUESTOFREGISTRANTNAME = GUESTOF_NF.NAME,
@EVENTID = REGISTRANT.EVENTID,
@EVENTNAME = dbo.UFN_EVENT_GETNAME(REGISTRANT.EVENTID),
@ATTENDED = REGISTRANT.ATTENDED,
@WILLNOTATTEND = REGISTRANT.WILLNOTATTEND,
@ONLINEREGISTRANT = REGISTRANT.ONLINEREGISTRANT,
@ISREGISTRANTPROFILE = 1,
@REGISTRANTSEAT = dbo.UFN_EVENTSEATING_GETREGISTRANTSEATPATH(REGISTRANT.ID)
from
dbo.REGISTRANT
inner join dbo.REGISTRANT HOST on REGISTRANT.GUESTOFREGISTRANTID = HOST.ID
outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(HOST.CONSTITUENTID) GUESTOF_NF
where
REGISTRANT.ID = @ID
and REGISTRANT.CONSTITUENTID is null;
end
if @DATALOADED = 1
select
@GROUPNAME = EVENTGROUP.NAME
from
dbo.EVENTGROUPMEMBER
inner join dbo.EVENTGROUP on EVENTGROUP.ID = EVENTGROUPMEMBER.EVENTGROUPID
where
EVENTGROUPMEMBER.REGISTRANTID = @ID;
return 0;