USP_GLOBALCHANGE_ADDORCHANGEEVENTSPONSORSHIPOPTION
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CHOOSEEDEVENT | uniqueidentifier | IN | |
@CHOOSEEDSPONSORSHIPOPTION | uniqueidentifier | IN | |
@SELECTEDEVENTSFORUPDATE | xml | IN | |
@SELECTEDSPONSORSHIPOPTIONSFORUPDATE | xml | IN | |
@SELECTIONOPTIONFORUPDATE | smallint | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@ASOF | datetime | IN | |
@NUMBERADDED | int | INOUT | |
@NUMBEREDITED | int | INOUT | |
@NUMBERDELETED | int | INOUT | |
@CURRENTAPPUSERID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_GLOBALCHANGE_ADDORCHANGEEVENTSPONSORSHIPOPTION
(
@CHOOSEEDEVENT uniqueidentifier,
@CHOOSEEDSPONSORSHIPOPTION uniqueidentifier,
@SELECTEDEVENTSFORUPDATE xml = null,
@SELECTEDSPONSORSHIPOPTIONSFORUPDATE xml = null,
@SELECTIONOPTIONFORUPDATE smallint,
@CHANGEAGENTID uniqueidentifier = null,
@ASOF as datetime = null,
@NUMBERADDED int = 0 output,
@NUMBEREDITED int = 0 output,
@NUMBERDELETED int = 0 output,
@CURRENTAPPUSERID uniqueidentifier = null
)
as
set nocount off;
declare @CURRENTDATE datetime
declare @NAME nvarchar(50),
@DESCRIPTION nvarchar(1000),
@ISNOTAVAILABLEONLINEREG bit,
@FEESAMOUNT money,
@TAXDEDUCTIBLEAMOUNT money,
@EARLYREGISTRATIONDATE datetime,
@EARLYREGISTRATIONDISCOUNT money,
@LATEFEEDATE datetime,
@LATEFEE money,
@MINFUNDRAISINGGOAL money,
@ISNOTLOWERFUNDRAISINGGOAL bit,
@SPONSORMUSTPAYBALANCE bit,
@SPONSORPAYSBALANCEMESSAGE nvarchar(1000),
@RECRUITEMENT int,
@ISNOTLOWERRECRUITEMENT bit,
@VOLUNTEERRECRUITEMENT int,
@ISNOTLOWERVOLUNTEERRECRUITEMENT bit,
@DONORRETENTION decimal(6,3),
@ISNOTLOWERDONORRETENTION bit,
@UNIT int,
@ISNOTLOWERUNIT bit,
@COMMUNICATIONS int,
@ISNOTLOWERCOMMUNICATION bit,
@LABELFORUNITGOAL nvarchar(50),
@NUMBERAVAILABLE int,
@TURNONWAITLIST bit,
@DISPLAYSPOTSAVAILABLE bit,
@SENDEVENTCONTACTALERTMAXREACHED bit,
@WAITLISTMESSAGE nvarchar(1000),
@BENEFITS xml,
@SPONSORPURCHASECOUNT int,
@ALLOWSPONSORWAIVEBENEFITS bit
declare @EventInfo table(ID int identity(1,1), EventID uniqueidentifier)
declare @EventsThatHaveAnEarlierStartDate table(ID int identity(1,1), EventID uniqueidentifier, EventName nvarchar(max))
declare @ErrorCount int, @ERRORTEXT nvarchar(max)
declare @Count int, @Index int
declare @EventID uniqueidentifier,
@EventSponshipTypeID uniqueidentifier
set @CURRENTDATE = getdate();
set @NUMBERADDED = 0;
set @NUMBEREDITED = 0;
set @NUMBERDELETED = 0;
set @ErrorCount = 0;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHOOSEEDSPONSORSHIPOPTION is not null
begin
exec USP_DATAFORMTEMPLATE_EDITLOAD_SPONSORSHIPTYPE @ID = @CHOOSEEDSPONSORSHIPOPTION,
@NAME = @NAME output,
@DESCRIPTION = @DESCRIPTION output,
@ISNOTAVAILABLEONLINEREG = @ISNOTAVAILABLEONLINEREG output,
@FEESAMOUNT = @FEESAMOUNT output,
@TAXDEDUCTIBLEAMOUNT = @TAXDEDUCTIBLEAMOUNT output,
@EARLYREGISTRATIONDATE = @EARLYREGISTRATIONDATE output,
@EARLYREGISTRATIONDISCOUNT = @EARLYREGISTRATIONDISCOUNT output,
@LATEFEEDATE = @LATEFEEDATE output,
@LATEFEE = @LATEFEE output,
@MINFUNDRAISINGGOAL = @MINFUNDRAISINGGOAL output,
@ISNOTLOWERFUNDRAISINGGOAL = @ISNOTLOWERFUNDRAISINGGOAL output,
@SPONSORMUSTPAYBALANCE = @SPONSORMUSTPAYBALANCE output,
@SPONSORPAYSBALANCEMESSAGE = @SPONSORPAYSBALANCEMESSAGE output,
@RECRUITEMENT = @RECRUITEMENT output,
@ISNOTLOWERRECRUITEMENT = @ISNOTLOWERRECRUITEMENT output,
@VOLUNTEERRECRUITEMENT = @VOLUNTEERRECRUITEMENT output,
@ISNOTLOWERVOLUNTEERRECRUITEMENT = @ISNOTLOWERVOLUNTEERRECRUITEMENT output,
@DONORRETENTION = @DONORRETENTION output,
@ISNOTLOWERDONORRETENTION = @ISNOTLOWERDONORRETENTION output,
@UNIT = @UNIT output,
@ISNOTLOWERUNIT = @ISNOTLOWERUNIT output,
@COMMUNICATIONS = @COMMUNICATIONS output,
@ISNOTLOWERCOMMUNICATION = @ISNOTLOWERCOMMUNICATION output,
@LABELFORUNITGOAL = @LABELFORUNITGOAL output,
@NUMBERAVAILABLE = @NUMBERAVAILABLE output,
@TURNONWAITLIST = @TURNONWAITLIST output,
@DISPLAYSPOTSAVAILABLE = @DISPLAYSPOTSAVAILABLE output,
@SENDEVENTCONTACTALERTMAXREACHED = @SENDEVENTCONTACTALERTMAXREACHED output,
@WAITLISTMESSAGE = @WAITLISTMESSAGE output,
@BENEFITS = @BENEFITS output,
@SPONSORPURCHASECOUNT = @SPONSORPURCHASECOUNT output,
@ALLOWSPONSORWAIVEBENEFITS = @ALLOWSPONSORWAIVEBENEFITS output
--reget @benefits
set @BENEFITS= (SELECT [BENEFITID], [DETAILS], '00000000-0000-0000-0000-000000000000', [QUANTITY], [TOTALVALUE], [UNITVALUE], DEDUCTIBLEUNITVALUE, DEDUCTIBLEVALUE
FROM dbo.UFN_SPONSORSHIP_GETBENEFITS(@CHOOSEEDSPONSORSHIPOPTION)
for xml raw('ITEM'),type,elements,root('BENEFITS'),BINARY BASE64)
end
begin tran
begin try
if @SELECTIONOPTIONFORUPDATE =1
begin
insert into @EventInfo(EventID)
SELECT EVENTID FROM (SELECT T.c.value('(EVENTID)[1]','uniqueidentifier') AS 'EVENTID'
FROM @SELECTEDEVENTSFORUPDATE.nodes('/SELECTEDEVENTSFORUPDATE/ITEM') T(c)) AS XMLTABLE
WHERE exists(
select 1 from dbo.UFN_SITEID_MAPFROM_EVENTID(XMLTABLE.EVENTID) EVENTSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,'800093A6-B727-490B-8CC4-C0C0CF2148F0',20)
where SITEID=[EVENTSITE].[SITEID] or (SITEID is null and [EVENTSITE].[SITEID] is null)) )
)
insert into @EventsThatHaveAnEarlierStartDate(EventID, EventName)
Select E.ID, E.Name
from dbo.EVENT E
Where E.STARTDATE <= @EARLYREGISTRATIONDATE and E.ID in (Select EventID from @EventInfo)
select @ErrorCount = Count(*) from @EventsThatHaveAnEarlierStartDate
if @ErrorCount > 0
begin
SELECT @ERRORTEXT = COALESCE(@ERRORTEXT+', ' ,'') + EventName from @EventsThatHaveAnEarlierStartDate
RAISERROR ('Your updates could not be processed because the source sponsorship option has an early discount date later than the event start date for the following events: %s. To continue, please edit the early discount date for this sponsorship option. Or you can remove these events from your update to continue.', 11, 1, @ERRORTEXT);
end
select @Count = COUNT(*),@Index = 1 from @EventInfo
while @Index< = @Count
begin
select @EventID =EventID from @EventInfo where ID=@Index
exec USP_DATAFORMTEMPLATE_ADD_SPONSORSHIPTYPE @NAME=@NAME,@DESCRIPTION=@DESCRIPTION,@BENEFITS=@BENEFITS,
@ISNOTAVAILABLEONLINEREG=@ISNOTAVAILABLEONLINEREG,@FEESAMOUNT=@FEESAMOUNT,@TAXDEDUCTIBLEAMOUNT=@TAXDEDUCTIBLEAMOUNT,
@EARLYREGISTRATIONDATE=@EARLYREGISTRATIONDATE,@EARLYREGISTRATIONDISCOUNT=@EARLYREGISTRATIONDISCOUNT,@LATEFEEDATE=@LATEFEEDATE,
@LATEFEE=@LATEFEE,@MINFUNDRAISINGGOAL=@MINFUNDRAISINGGOAL,@ISNOTLOWERFUNDRAISINGGOAL=@ISNOTLOWERFUNDRAISINGGOAL,
@SPONSORMUSTPAYBALANCE=@SPONSORMUSTPAYBALANCE,@SPONSORPAYSBALANCEMESSAGE=@SPONSORPAYSBALANCEMESSAGE,@RECRUITEMENT=@RECRUITEMENT,
@ISNOTLOWERRECRUITEMENT=@ISNOTLOWERRECRUITEMENT,@VOLUNTEERRECRUITEMENT=@VOLUNTEERRECRUITEMENT,@ISNOTLOWERVOLUNTEERRECRUITEMENT=@ISNOTLOWERVOLUNTEERRECRUITEMENT,
@DONORRETENTION=@DONORRETENTION,@ISNOTLOWERDONORRETENTION=@ISNOTLOWERDONORRETENTION,@UNIT=@ISNOTLOWERDONORRETENTION,
@ISNOTLOWERUNIT=@ISNOTLOWERUNIT,@COMMUNICATIONS=@COMMUNICATIONS,@ISNOTLOWERCOMMUNICATION=@ISNOTLOWERCOMMUNICATION,@LABELFORUNITGOAL=@LABELFORUNITGOAL,
@NUMBERAVAILABLE=@NUMBERAVAILABLE,@TURNONWAITLIST=@TURNONWAITLIST,@DISPLAYSPOTSAVAILABLE=@DISPLAYSPOTSAVAILABLE,
@SENDEVENTCONTACTALERTMAXREACHED=@SENDEVENTCONTACTALERTMAXREACHED,@WAITLISTMESSAGE=@WAITLISTMESSAGE,@ALLOWSPONSORWAIVEBENEFITS=@ALLOWSPONSORWAIVEBENEFITS,
@CHANGEAGENTID=@CHANGEAGENTID,@EVENTID=@EVENTID
set @Index = @Index +1
set @NUMBERADDED = @NUMBERADDED + 1
end
end
if @SELECTIONOPTIONFORUPDATE =2
begin
DECLARE @UpdatedTable table (ID int identity(1,1), EventSponsorshipID uniqueidentifier)
insert into @UpdatedTable(EventSponsorshipID)
SELECT EVENTSPONSORSHIPID FROM (SELECT T.c.value('(RECORDID)[1]','uniqueidentifier') AS 'EVENTSPONSORSHIPID'
FROM @SELECTEDSPONSORSHIPOPTIONSFORUPDATE.nodes('/SELECTEDSPONSORSHIPOPTIONSFORUPDATE/ITEM') T(c)) AS XMLTABLE
INNER JOIN EVENTSPONSORSHIPTYPE ES ON XMLTABLE.EVENTSPONSORSHIPID = ES.ID
WHERE exists(
select 1 from dbo.UFN_SITEID_MAPFROM_EVENTID(ES.EVENTID) EVENTSITE
where (dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID) = 1
or exists (select 1 from dbo.UFN_SITESFORUSERONFEATURE(@CURRENTAPPUSERID,'800093A6-B727-490B-8CC4-C0C0CF2148F0',20)
where SITEID=[EVENTSITE].[SITEID] or (SITEID is null and [EVENTSITE].[SITEID] is null)) )
)
insert into @EventInfo(EventID)
Select ES.EventID
from dbo.EVENTSPONSORSHIPTYPE ES
join Event E on ES.EventID = E.ID
where ES.ID in (select EventSponsorshipID from @UpdatedTable)
insert into @EventsThatHaveAnEarlierStartDate(EventID, EventName)
Select E.ID, E.Name
from dbo.EVENT E
Where E.STARTDATE <= @EARLYREGISTRATIONDATE and E.ID in (Select EventID from @EventInfo)
select @ErrorCount = Count(*) from @EventsThatHaveAnEarlierStartDate
if @ErrorCount > 0
begin
SELECT @ERRORTEXT = COALESCE(@ERRORTEXT+', ' ,'') + EventName from @EventsThatHaveAnEarlierStartDate
RAISERROR ('Your updates could not be processed because the source sponsorship option has an early discount date later than the event start date for the following events: %s. To continue, please edit the early discount date for this sponsorship option. Or you can remove these events from your update to continue.', 11, 1, @ERRORTEXT);
end
select @Count = COUNT(*),@Index = 1 from @UpdatedTable
while @Index< = @Count
begin
select @EventSponshipTypeID = EventSponsorshipID
from @UpdatedTable
where ID = @Index
exec USP_DATAFORMTEMPLATE_EDIT_SPONSORSHIPTYPE @ID = @EventSponshipTypeID,
@CHANGEAGENTID = @CHANGEAGENTID,
@NAME = @NAME,
@DESCRIPTION = @DESCRIPTION,
@ISNOTAVAILABLEONLINEREG = @ISNOTAVAILABLEONLINEREG,
@FEESAMOUNT = @FEESAMOUNT,
@TAXDEDUCTIBLEAMOUNT = @TAXDEDUCTIBLEAMOUNT,
@EARLYREGISTRATIONDATE = @EARLYREGISTRATIONDATE,
@EARLYREGISTRATIONDISCOUNT = @EARLYREGISTRATIONDISCOUNT,
@LATEFEEDATE = @LATEFEEDATE,
@LATEFEE = @LATEFEE,
@MINFUNDRAISINGGOAL = @MINFUNDRAISINGGOAL,
@ISNOTLOWERFUNDRAISINGGOAL = @ISNOTLOWERFUNDRAISINGGOAL,
@SPONSORMUSTPAYBALANCE = @SPONSORMUSTPAYBALANCE,
@SPONSORPAYSBALANCEMESSAGE = @SPONSORPAYSBALANCEMESSAGE,
@RECRUITEMENT = @RECRUITEMENT,
@ISNOTLOWERRECRUITEMENT = @ISNOTLOWERRECRUITEMENT,
@VOLUNTEERRECRUITEMENT = @VOLUNTEERRECRUITEMENT,
@ISNOTLOWERVOLUNTEERRECRUITEMENT = @ISNOTLOWERVOLUNTEERRECRUITEMENT,
@DONORRETENTION = @DONORRETENTION,
@ISNOTLOWERDONORRETENTION = @ISNOTLOWERDONORRETENTION,
@UNIT = @UNIT,
@ISNOTLOWERUNIT = @ISNOTLOWERUNIT,
@COMMUNICATIONS = @COMMUNICATIONS,
@ISNOTLOWERCOMMUNICATION = @ISNOTLOWERCOMMUNICATION,
@LABELFORUNITGOAL = @LABELFORUNITGOAL,
@NUMBERAVAILABLE = @NUMBERAVAILABLE,
@TURNONWAITLIST = @TURNONWAITLIST,
@DISPLAYSPOTSAVAILABLE = @DISPLAYSPOTSAVAILABLE,
@SENDEVENTCONTACTALERTMAXREACHED = @SENDEVENTCONTACTALERTMAXREACHED,
@WAITLISTMESSAGE = @WAITLISTMESSAGE,
@BENEFITS = @BENEFITS,
@SPONSORPURCHASECOUNT = @SPONSORPURCHASECOUNT,
@ALLOWSPONSORWAIVEBENEFITS = @ALLOWSPONSORWAIVEBENEFITS
set @Index = @Index +1
set @NUMBEREDITED = @NUMBEREDITED + 1
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
rollback tran
return 1;
end catch
commit tran