USP_DATAFORMTEMPLATE_ADD_TEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENT

The save procedure used by the add dataform template "Team Fundraising Team Member from Constituent 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.
@TEAMFUNDRAISINGTEAMID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CONSTITUENTID uniqueidentifier IN Team fundraiser
@GOAL money IN Goal

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_TEAMFUNDRAISINGTEAMMEMBERFROMCONSTITUENT
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @TEAMFUNDRAISINGTEAMID uniqueidentifier,
                        @CONSTITUENTID uniqueidentifier,
                        @GOAL money = 0
                    )
                    as
                    begin
                        set nocount on;

                        declare @CURRENTDATE datetime;

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

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

                        set @CURRENTDATE = getdate();

                        begin try

                            declare @APPEALID uniqueidentifier;
                            declare @TEAMFUNDRAISERID uniqueidentifier;
                            declare @CURRENTGOAL money;
                            declare @CURRENTORGANIZATIONGOAL money;
                            declare @CURRENTORGANIZATIONEXCHANGERATEID uniqueidentifier;
                            declare @BASECURRENCYID uniqueidentifier;

                            select
                                @APPEALID = TEAMFUNDRAISINGTEAM.APPEALID,
                                @TEAMFUNDRAISERID = TEAMFUNDRAISER.ID,
                                @CURRENTGOAL = TEAMFUNDRAISER.GOAL,
                                @BASECURRENCYID = APPEAL.BASECURRENCYID,
                                @CURRENTGOAL = TEAMFUNDRAISER.GOAL,
                                @CURRENTORGANIZATIONGOAL = TEAMFUNDRAISER.ORGANIZATIONGOAL,
                                @CURRENTORGANIZATIONEXCHANGERATEID = TEAMFUNDRAISER.ORGANIZATIONEXCHANGERATEID
                            from
                                dbo.TEAMFUNDRAISINGTEAM
                                left join dbo.TEAMFUNDRAISER on
                                    TEAMFUNDRAISINGTEAM.APPEALID = TEAMFUNDRAISER.APPEALID
                                    and @CONSTITUENTID = TEAMFUNDRAISER.CONSTITUENTID
                                left join dbo.APPEAL on APPEAL.ID = TEAMFUNDRAISINGTEAM.APPEALID
                            where
                                TEAMFUNDRAISINGTEAM.ID = @TEAMFUNDRAISINGTEAMID;

                            declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
                            declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier = dbo.UFN_CURRENCYEXCHANGERATE_GETLATESTORGANIZATIONRATE(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, getdate(), null, null);
                            declare @ORGANIZATIONGOAL money = dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(@GOAL, @ORGANIZATIONEXCHANGERATEID, null);

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

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

                            insert into dbo.TEAMFUNDRAISINGTEAMMEMBER
                                (ID,TEAMFUNDRAISINGTEAMID,TEAMFUNDRAISERID,ADDEDBYID,CHANGEDBYID,DATEADDED,DATECHANGED)
                            values
                                (@ID,@TEAMFUNDRAISINGTEAMID,@TEAMFUNDRAISERID,@CHANGEAGENTID,@CHANGEAGENTID,@CURRENTDATE,@CURRENTDATE);
                        end try

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

                        return 0;

                    end