UFN_REGISTRANT_GETREGISTRATIONINFORMATION
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REGISTRANTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REGISTRANT_GETREGISTRATIONINFORMATION
(
@REGISTRANTID uniqueidentifier
)
returns @REGISTRANTREGISTRATIONINFORMATION table (ID uniqueidentifier, REGISTRATIONINFORMATIONID uniqueidentifier, REQUIRED bit, NAME nvarchar(100), RESPONSETYPECODE tinyint, PERSONDETAILTYPECODE tinyint, TEXTVALUE nvarchar(max), REGISTRATIONINFORMATIONOPTIONID uniqueidentifier, SECTIONSEQUENCE int, SEQUENCE int)
as begin
declare @PROGRAMID uniqueidentifier;
declare @EVENTID uniqueidentifier;
declare @PRICETYPECODEID uniqueidentifier;
declare @HASCUSTOMREGISTRATIONINFORMATION bit;
select
@PROGRAMID = EVENT.PROGRAMID,
@EVENTID = REGISTRANT.EVENTID,
@HASCUSTOMREGISTRATIONINFORMATION = EVENT.HASCUSTOMREGISTRATIONINFORMATION,
@PRICETYPECODEID = SALESORDERITEMTICKET.PRICETYPECODEID
from dbo.REGISTRANT
inner join dbo.EVENT
on REGISTRANT.EVENTID = EVENT.ID
inner join dbo.SALESORDERITEMTICKETREGISTRANT
on REGISTRANT.ID = SALESORDERITEMTICKETREGISTRANT.REGISTRANTID
inner join dbo.SALESORDERITEMTICKET
on SALESORDERITEMTICKETREGISTRANT.SALESORDERITEMTICKETID = SALESORDERITEMTICKET.ID
where REGISTRANT.ID = @REGISTRANTID;
with SECTIONINFORMATION_CTE as (
select
PROGRAMEVENTREGISTRATIONSECTION.ID,
PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID,
PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.REQUIRED,
PROGRAMEVENTREGISTRATIONSECTION.SEQUENCE as SECTIONSEQUENCE,
PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.SEQUENCE
from dbo.PROGRAMEVENTREGISTRATIONSECTION
inner join dbo.PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION
on PROGRAMEVENTREGISTRATIONSECTION.ID = PROGRAMEVENTREGISTRATIONSECTIONREGISTRATIONINFORMATION.PROGRAMEVENTREGISTRATIONSECTIONID
where
(@HASCUSTOMREGISTRATIONINFORMATION = 1 and PROGRAMEVENTREGISTRATIONSECTION.EVENTID = @EVENTID)
or (@HASCUSTOMREGISTRATIONINFORMATION = 0 and PROGRAMEVENTREGISTRATIONSECTION.PROGRAMID = @PROGRAMID)
)
insert into @REGISTRANTREGISTRATIONINFORMATION
(ID, REGISTRATIONINFORMATIONID, REQUIRED, NAME, RESPONSETYPECODE, PERSONDETAILTYPECODE, TEXTVALUE, REGISTRATIONINFORMATIONOPTIONID, SECTIONSEQUENCE, SEQUENCE)
select
REGISTRANTREGISTRATIONINFORMATION.ID,
REGISTRATIONINFORMATION.ID,
SECTIONINFO.REQUIRED,
REGISTRATIONINFORMATION.NAME,
REGISTRATIONINFORMATION.RESPONSETYPECODE,
REGISTRANTREGISTRATIONINFORMATION.PERSONDETAILTYPECODE,
REGISTRANTREGISTRATIONINFORMATION.TEXTVALUE,
case REGISTRATIONINFORMATION.RESPONSETYPECODE
when 3 then
case isnull(REGISTRANTREGISTRATIONINFORMATION.BOOLEANVALUE, 0)
when 1 then '11111111-1111-1111-1111-111111111111' -- Yes
else '00000000-0000-0000-0000-000000000000' -- No
end
else REGISTRANTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONOPTIONID
end as REGISTRATIONINFORMATIONOPTIONID,
coalesce(SECTIONINFO.SECTIONSEQUENCE, 100), -- If question no longer on program/event, try to include answer at end
coalesce(SECTIONINFO.SEQUENCE, 100)
from dbo.REGISTRANTREGISTRATIONINFORMATION
inner join dbo.REGISTRATIONINFORMATION
on REGISTRANTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID = REGISTRATIONINFORMATION.ID
left outer join SECTIONINFORMATION_CTE SECTIONINFO
on REGISTRATIONINFORMATION.ID = SECTIONINFO.REGISTRATIONINFORMATIONID
where REGISTRANTREGISTRATIONINFORMATION.REGISTRANTID = @REGISTRANTID;
insert into @REGISTRANTREGISTRATIONINFORMATION
(ID, REGISTRATIONINFORMATIONID, REQUIRED, NAME, RESPONSETYPECODE, PERSONDETAILTYPECODE, TEXTVALUE, REGISTRATIONINFORMATIONOPTIONID, SECTIONSEQUENCE, SEQUENCE)
select
null,
EVENTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID,
EVENTREGISTRATIONINFORMATION.REQUIRED,
EVENTREGISTRATIONINFORMATION.NAME,
EVENTREGISTRATIONINFORMATION.RESPONSETYPECODE,
EVENTREGISTRATIONINFORMATION.PERSONDETAILTYPECODE,
EVENTREGISTRATIONINFORMATION.TEXTVALUE,
EVENTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONOPTIONID,
EVENTREGISTRATIONINFORMATION.SECTIONSEQUENCE,
EVENTREGISTRATIONINFORMATION.SEQUENCE
from dbo.UFN_EVENT_GETREGISTRATIONINFORMATION(@EVENTID, @PRICETYPECODEID) EVENTREGISTRATIONINFORMATION
left outer join @REGISTRANTREGISTRATIONINFORMATION as REGISTRANTREGISTRATIONINFORMATION
on EVENTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID = REGISTRANTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID
and EVENTREGISTRATIONINFORMATION.PERSONDETAILTYPECODE = REGISTRANTREGISTRATIONINFORMATION.PERSONDETAILTYPECODE
where REGISTRANTREGISTRATIONINFORMATION.REGISTRATIONINFORMATIONID is null;
return;
end