USP_DATAFORMTEMPLATE_ADD_REGISTRANTTEAMFUNDRAISINGGUESTFORREGISTRANT

The save procedure used by the add dataform template "Registrant Team Fundraising Guest for Registrant Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@GUESTOFREGISTRANTID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CONSTITUENTID uniqueidentifier IN Registrant
@ATTENDED bit IN Attended
@EVENTSEATINGNOTE nvarchar(250) IN Seating note
@TEAMFUNDRAISERTYPECODE tinyint IN
@TEAMFUNDRAISINGTEAMID uniqueidentifier IN Team
@GOAL money IN Goal
@ISTEAMCAPTAIN bit IN Team captain
@WAIVEBENEFITS bit IN Waive benefits

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_REGISTRANTTEAMFUNDRAISINGGUESTFORREGISTRANT
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @GUESTOFREGISTRANTID uniqueidentifier,
                        @CONSTITUENTID uniqueidentifier = null,
                        @ATTENDED bit = 0,
                        @EVENTSEATINGNOTE nvarchar(250) = '',
                        @TEAMFUNDRAISERTYPECODE tinyint = null,
                        @TEAMFUNDRAISINGTEAMID uniqueidentifier = null,
                        @GOAL money = null,
                        @ISTEAMCAPTAIN bit = 0,
                        @WAIVEBENEFITS bit = 0
                    )
                    as                    
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        declare @EVENTID uniqueidentifier;

                        if @ID is null
                            set @ID = newid();

                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        set @CURRENTDATE = getdate();

                        select 
                            @EVENTID = REGISTRANT.EVENTID,
                            @WAIVEBENEFITS = BENEFITSWAIVED
                        from 
                            dbo.REGISTRANT
                        where
                            REGISTRANT.ID = @GUESTOFREGISTRANTID;

                        begin try
                            insert into dbo.REGISTRANT
                                (ID, CONSTITUENTID, EVENTID, ATTENDED, GUESTOFREGISTRANTID, EVENTSEATINGNOTE, BENEFITSWAIVED, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                            values
                                (@ID, @CONSTITUENTID, @EVENTID, @ATTENDED, @GUESTOFREGISTRANTID, @EVENTSEATINGNOTE, @WAIVEBENEFITS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);                            

                            if @TEAMFUNDRAISERTYPECODE = 1 or @TEAMFUNDRAISERTYPECODE = 2
                            begin
                                declare @APPEALID uniqueidentifier;
                                declare @TEAMFUNDRAISERID uniqueidentifier;
                                declare @CURRENTGOAL money;
                                select
                                    @APPEALID = EVENT.APPEALID,
                                    @TEAMFUNDRAISERID = TEAMFUNDRAISER.ID,
                                    @CURRENTGOAL = TEAMFUNDRAISER.GOAL
                                from
                                    dbo.EVENT
                                    left join dbo.TEAMFUNDRAISER on
                                        EVENT.APPEALID = TEAMFUNDRAISER.APPEALID
                                        and @CONSTITUENTID = TEAMFUNDRAISER.CONSTITUENTID
                                where
                                    EVENT.ID = @EVENTID;

                                if @TEAMFUNDRAISERID is null
                                begin
                                    set @TEAMFUNDRAISERID = newid();

                                    insert into dbo.TEAMFUNDRAISER
                                        (ID,APPEALID,CONSTITUENTID,GOAL,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                                    values
                                        (@TEAMFUNDRAISERID,@APPEALID,@CONSTITUENTID,@GOAL,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
                                end
                                else
                                    if @GOAL <> @CURRENTGOAL
                                        update
                                            dbo.TEAMFUNDRAISER
                                        set
                                            GOAL = @GOAL,
                                            CHANGEDBYID = @CHANGEAGENTID,
                                            DATECHANGED = @CURRENTDATE
                                        where
                                            ID = @TEAMFUNDRAISERID;

                                if @TEAMFUNDRAISERTYPECODE = 1
                                begin
                                    if not exists (select ID from dbo.TEAMFUNDRAISINGTEAMMEMBER where TEAMFUNDRAISINGTEAMID = @TEAMFUNDRAISINGTEAMID and TEAMFUNDRAISERID = @TEAMFUNDRAISERID)
                                        insert into dbo.TEAMFUNDRAISINGTEAMMEMBER
                                            (ID,TEAMFUNDRAISINGTEAMID,TEAMFUNDRAISERID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                                        values
                                            (@ID,@TEAMFUNDRAISINGTEAMID,@TEAMFUNDRAISERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);

                                    if
                                    (
                                        @ISTEAMCAPTAIN = 1
                                        and
                                        not exists (select ID from dbo.TEAMFUNDRAISINGTEAMCAPTAIN where TEAMFUNDRAISINGTEAMID = @TEAMFUNDRAISINGTEAMID and CONSTITUENTID = @CONSTITUENTID)
                                    )
                                            insert into dbo.TEAMFUNDRAISINGTEAMCAPTAIN
                                                (ID,TEAMFUNDRAISINGTEAMID,CONSTITUENTID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                                            values
                                                (@ID,@TEAMFUNDRAISINGTEAMID,@CONSTITUENTID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
                                end

                                if @TEAMFUNDRAISERTYPECODE = 2
                                    if not exists (select ID from dbo.TEAMFUNDRAISINGTEAMMEMBER where TEAMFUNDRAISINGTEAMID is null and TEAMFUNDRAISERID = @TEAMFUNDRAISERID)
                                        insert into dbo.TEAMFUNDRAISINGTEAMMEMBER
                                            (ID,TEAMFUNDRAISINGTEAMID,TEAMFUNDRAISERID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                                        values
                                            (@ID,null,@TEAMFUNDRAISERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
                            end
                        end try

                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;