USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONLEVELDISBURSEMENT

The save procedure used by the edit dataform template "Fundraising Purpose Disbursement 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.
@DATE datetime IN Date
@AMOUNT money IN Amount

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_DESIGNATIONLEVELDISBURSEMENT
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,                
                        @DATE datetime,
                        @AMOUNT money                                       
                    )
                as 
                begin
                    set nocount on

                    declare @CURRENTDATE datetime                    
                    set @CURRENTDATE = getdate()

                    begin try
                        if @CHANGEAGENTID is null  
                            exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output

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

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

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

                            set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @CURRENCYEXCHANGERATEID);
                        end

                        update
                            dbo.DESIGNATIONLEVELDISBURSEMENT
                        set 
                            DATE = @DATE,                             
                            AMOUNT = @AMOUNT,
                            ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
                            ORGANIZATIONEXCHANGERATEID = @CURRENCYEXCHANGERATEID,                            
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE                                                
                        where 
                            ID = @ID                        
                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0
                end