USP_DATALIST_FAFREGISTRATIONPRODUCT
Provides the list of Registrationtypes available in Faf Event.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@EVENTID | uniqueidentifier | IN | Event ID |
@EVENTPRICEID | uniqueidentifier | IN | Event Price ID |
@ROLETYPE | tinyint | IN | Role type |
Definition
Copy
CREATE procedure dbo.USP_DATALIST_FAFREGISTRATIONPRODUCT
(
@EVENTID uniqueidentifier,
@EVENTPRICEID uniqueidentifier = null,
@ROLETYPE tinyint = 0 -- 0: Individual, 1: Team, 2: Company, 3:Head of household, 4:household members, 5:Team Members
) with execute as owner
as
set nocount on;
DECLARE @EVENTPRICELIST TABLE (EVENTPRICEID uniqueidentifier)
IF @ROLETYPE = 0
INSERT INTO @EVENTPRICELIST(EVENTPRICEID)
SELECT EP.ID
from dbo.EVENTPRICE EP
inner join dbo.FAFREGISTRATIONTYPE ERT
ON EP.ID = ERT.EVENTPRICEID
WHERE EP.EVENTID = @EVENTID AND EP.ID = ISNULL(@EVENTPRICEID,EP.ID)
AND ERT.ISREGTYPEAVAILABLEINDIVIDUAL = 1
IF @ROLETYPE = 1
INSERT INTO @EVENTPRICELIST(EVENTPRICEID)
SELECT EP.ID
from dbo.EVENTPRICE EP
inner join dbo.FAFREGISTRATIONTYPE ERT
ON EP.ID = ERT.EVENTPRICEID
WHERE EP.EVENTID = @EVENTID AND EP.ID = ISNULL(@EVENTPRICEID,EP.ID)
AND ERT.ISREGTYPEAVAILABLETEAMLEADER = 1
IF @ROLETYPE = 2
INSERT INTO @EVENTPRICELIST(EVENTPRICEID)
SELECT EP.ID
from dbo.EVENTPRICE EP
inner join dbo.FAFREGISTRATIONTYPE ERT
ON EP.ID = ERT.EVENTPRICEID
WHERE EP.EVENTID = @EVENTID AND EP.ID = ISNULL(@EVENTPRICEID,EP.ID)
AND ERT.ISREGTYPEAVAILABLECOMPANYLEADER = 1
IF @ROLETYPE = 3
INSERT INTO @EVENTPRICELIST(EVENTPRICEID)
SELECT EP.ID
from dbo.EVENTPRICE EP
inner join dbo.FAFREGISTRATIONTYPE ERT
ON EP.ID = ERT.EVENTPRICEID
WHERE EP.EVENTID = @EVENTID AND EP.ID = ISNULL(@EVENTPRICEID,EP.ID)
AND ERT.ISREGTYPEAVAILABLEHEADHOUSEHOLD = 1
IF @ROLETYPE = 4
INSERT INTO @EVENTPRICELIST(EVENTPRICEID)
SELECT EP.ID
from dbo.EVENTPRICE EP
inner join dbo.FAFREGISTRATIONTYPE ERT
ON EP.ID = ERT.EVENTPRICEID
WHERE EP.EVENTID = @EVENTID AND EP.ID = ISNULL(@EVENTPRICEID,EP.ID)
AND ERT.ISREGTYPEAVAILABLEFAMILYMEMBER = 1
IF @ROLETYPE = 5
INSERT INTO @EVENTPRICELIST(EVENTPRICEID)
SELECT EP.ID
from dbo.EVENTPRICE EP
inner join dbo.FAFREGISTRATIONTYPE ERT
ON EP.ID = ERT.EVENTPRICEID
WHERE EP.EVENTID = @EVENTID AND EP.ID = ISNULL(@EVENTPRICEID,EP.ID)
AND ERT.ISREGTYPEAVAILABLETEAMMEMBER = 1
IF @ROLETYPE IN (4,5)
SET @ROLETYPE = 0
SELECT
EVENTPRICE.ID,
EVENTPRICE.AMOUNT,
EVENTPRICE.RECEIPTAMOUNT,
EVENTPRICE.REGISTRATIONCOUNT,
EVENTPRICE.NAME,
EVENTREGISTRATIONTYPE.DESCRIPTION as REGISTRATIONTYPE,
FAFREGISTRATIONTYPE.DESCRIPTION,
FAFREGISTRATIONTYPE.MINIMUMAGE,
FAFREGISTRATIONTYPE.MAXIMUMAGE,
FAFREGISTRATIONTYPE.EARLYREGISTRATIONDATE,
FAFREGISTRATIONTYPE.EARLYREGISTRATIONDISCOUNT,
FAFREGISTRATIONTYPE.USEDQUANTITY,
FAFREGISTRATIONTYPE.MAXQUANTITY,
FAFREGISTRATIONTYPE.LATEFEEDATE,
FAFREGISTRATIONTYPE.LATEFEE,
FAFREGISTRATIONTYPE.TURNONWAITLIST as ISWAITLISTENABLED,
FAFREGISTRATIONTYPE.WAITLISTMESSAGE,
FAFREGISTRATIONTYPE.DISPLAYSPOTSAVAILABLE,
FAFREGISTRATIONTYPE.ALLOWPARTICIPANTSWAIVEBENEFITS,
(CASE WHEN @ROLETYPE = 3 THEN FAFREGISTRATIONTYPEGOAL.PARTICIPANTMUSTPAYBALANCE ELSE INDGOAL.PARTICIPANTMUSTPAYBALANCE END) as PARTICIPANTMUSTPAYBALANCE,
(CASE WHEN @ROLETYPE = 3 THEN FAFREGISTRATIONTYPEGOAL.PARTICIPANTPAYSBALANCEMESSAGE ELSE INDGOAL.PARTICIPANTPAYSBALANCEMESSAGE END) as PARTICIPANTPAYSBALANCEMESSAGE,
FAFREGISTRATIONTYPE.SENDEVENTCONTACTALERTMAXREACHED
from @EVENTPRICELIST EL
inner join dbo.EVENTPRICE on EL.EVENTPRICEID = EVENTPRICE.ID
inner join dbo.EVENTREGISTRATIONTYPE on EVENTREGISTRATIONTYPE.ID = EVENTPRICE.EVENTREGISTRATIONTYPEID
inner join dbo.FAFREGISTRATIONTYPE on EVENTPRICE.ID = FAFREGISTRATIONTYPE.EVENTPRICEID AND FAFREGISTRATIONTYPE.ISACTIVE = 1
inner join dbo.FAFREGISTRATIONTYPEGOAL ON FAFREGISTRATIONTYPEGOAL.EVENTPRICEID = EVENTPRICE.ID AND FAFREGISTRATIONTYPEGOAL.REGTYPEGOALCODE = @ROLETYPE
inner join dbo.FAFREGISTRATIONTYPEGOAL INDGOAL ON INDGOAL.EVENTPRICEID = EVENTPRICE.ID AND INDGOAL.REGTYPEGOALCODE = 0
where
FAFREGISTRATIONTYPE.ISNOTAVAILABLEONLINEREG = 0
order by
REGISTRATIONTYPE,EVENTPRICE.AMOUNT,EVENTPRICE.NAME;