USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONLEVELGOAL

The save procedure used by the edit dataform template "Fundraising Purpose Goal Edit Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@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_EDIT_DESIGNATIONLEVELGOAL
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,            
                        @NAME nvarchar(100),
                        @GOAL money,
                        @STARTDATE datetime,
                        @ENDDATE datetime
                    )
                as

                    set nocount on;
                    begin try
                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;

                        declare @BASECURRENCYID uniqueidentifier;
                        declare @DATEADDED datetime;
                        declare @CURRENCYEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONGOAL money;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @BASECURRENCYID = DESIGNATIONLEVELGOAL.BASECURRENCYID,
                            @DATEADDED = DESIGNATIONLEVELGOAL.DATEADDED,
                            @CURRENCYEXCHANGERATEID = DESIGNATIONLEVELGOAL.ORGANIZATIONEXCHANGERATEID
                        from
                            dbo.DESIGNATIONLEVELGOAL
                        where
                            DESIGNATIONLEVELGOAL.ID = @ID;

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

                            set @ORGANIZATIONGOAL = dbo.UFN_CURRENCY_CONVERT(@GOAL, @CURRENCYEXCHANGERATEID);
                        end

                        update dbo.DESIGNATIONLEVELGOAL
                            set    
                                NAME = @NAME,
                                STARTDATE = @STARTDATE,
                                ENDDATE = @ENDDATE,
                                GOAL = @GOAL,
                                ORGANIZATIONGOAL = @ORGANIZATIONGOAL,
                                ORGANIZATIONEXCHANGERATEID = @CURRENCYEXCHANGERATEID,
                                BASECURRENCYID = @BASECURRENCYID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = getdate()
                        where ID = @ID;

                    end try

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

                    return 0;