USP_DATALIST_PREREGISTEREDPROGRAMEVENTREGISTRANTVIEW
Lists preregistered program events for a given constituent.
Parameters
| Parameter | Parameter Type | Mode | Description |
|---|---|---|---|
| @CONSTITUENTID | uniqueidentifier | IN | Input parameter indicating the context ID for the data list. |
| @DATESELECTTYPE | tinyint | IN | Date |
| @STARTDATE | date | IN | From |
| @ENDDATE | date | IN | To |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_PREREGISTEREDPROGRAMEVENTREGISTRANTVIEW
(
@CONSTITUENTID uniqueidentifier,
@DATESELECTTYPE tinyint = null,
@STARTDATE date = null,
@ENDDATE date = null
)
as
set nocount on;
declare @CURRENTDATE date;
set @CURRENTDATE = getdate();
if @DATESELECTTYPE is null
set @DATESELECTTYPE = 2;
set @STARTDATE = case @DATESELECTTYPE
when 0 then @CURRENTDATE
when 1 then @CURRENTDATE
when 3 then @STARTDATE
when 4 then @STARTDATE
end;
set @ENDDATE = case @DATESELECTTYPE
when 0 then @CURRENTDATE
when 1 then dateadd(week,1, @CURRENTDATE)
when 3 then @ENDDATE
when 4 then @STARTDATE
end;
select REGISTRANT.ID,
EVENT.ID,
SALESORDERITEM.SALESORDERID,
EVENT.NAME,
EVENT.STARTDATE,
EVENT.ENDDATE,
case when ORDERTOTALS.BALANCE > 0
then 0
else
1
end as ORDERPAID,
~REGISTRANT.ISCANCELLED as WILLATTEND,
case when SALESORDERITEM.SALESORDERID is null
then 1
else
0
end as ISHOST,
case when REGISTRANT.ISCANCELLED = 1
then 'Cancelled'
else
case when REGISTRANT.ATTENDED = 1
then 'Attended'
else
'Not attended'
end
end as STATUS
from dbo.REGISTRANT
inner join dbo.EVENT on REGISTRANT.EVENTID = EVENT.ID
left join dbo.SALESORDERITEMTICKETREGISTRANT on REGISTRANT.ID = SALESORDERITEMTICKETREGISTRANT.REGISTRANTID
left join dbo.SALESORDERITEM on SALESORDERITEMTICKETREGISTRANT.SALESORDERITEMTICKETID = SALESORDERITEM.ID
outer apply dbo.UFN_SALESORDER_TOTALS(SALESORDERITEM.SALESORDERID) as ORDERTOTALS
where EVENT.PROGRAMID is not null
and ((EVENT.STARTDATE between @STARTDATE and @ENDDATE) or (@DATESELECTTYPE = 2))
and REGISTRANT.CONSTITUENTID = @CONSTITUENTID
order by EVENT.STARTDATETIME asc;