USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVELGOAL

The save procedure used by the add dataform template "Fundraising Purpose Goal 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.
@DESIGNATIONLEVELID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@NAME nvarchar(100) IN Name
@GOAL money IN Goal
@STARTDATE datetime IN Start date
@ENDDATE datetime IN End date

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_DESIGNATIONLEVELGOAL
                    (
                        @ID uniqueidentifier = null output,
                        @CHANGEAGENTID uniqueidentifier = null,    
                        @DESIGNATIONLEVELID uniqueidentifier,
                        @NAME nvarchar(100) = null,
                        @GOAL money = null,
                        @STARTDATE datetime = null,
                        @ENDDATE datetime = null
                    )
                    as

                        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 @BASECURRENCYID uniqueidentifier;
                            declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                            declare @ORGANIZATIONGOAL money;
                            declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select
                                @BASECURRENCYID = DESIGNATIONLEVEL.BASECURRENCYID
                            from
                                dbo.DESIGNATIONLEVEL
                            where
                                DESIGNATIONLEVEL.ID = @DESIGNATIONLEVELID

                            if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                            begin
                                set @ORGANIZATIONGOAL = @GOAL;
                            end
                            else
                            begin
                                set @CURRENCYEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                                set @ORGANIZATIONGOAL = dbo.UFN_CURRENCY_CONVERT(@GOAL, @CURRENCYEXCHANGERATEID);
                            end

                            insert into dbo.DESIGNATIONLEVELGOAL
                                (ID,DESIGNATIONLEVELID,NAME,STARTDATE,ENDDATE,GOAL,ORGANIZATIONGOAL,ORGANIZATIONEXCHANGERATEID,BASECURRENCYID,ADDEDBYID,CHANGEDBYID, DATEADDED, DATECHANGED)
                            values
                                (@ID, @DESIGNATIONLEVELID, @NAME, @STARTDATE, @ENDDATE, @GOAL,@ORGANIZATIONGOAL,@CURRENCYEXCHANGERATEID,@BASECURRENCYID,@CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);

                        end try

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

                        return 0;