USP_DATAFORMTEMPLATE_EDIT_FUNDINGREQUEST

The save procedure used by the edit dataform template "Funding Request Edit Data 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.
@GRANTID uniqueidentifier IN Grant program
@FUNDINGREQUESTSTATUSCODEID uniqueidentifier IN Status
@AMOUNTREQUESTED money IN Amount requested
@DATESUBMITTED datetime IN Date submitted
@COMMENT nvarchar(500) IN Comment
@PRIMARYMANAGERID uniqueidentifier IN Primary manager
@SECONDARYMANAGERID uniqueidentifier IN Secondary manager
@SPONSORS xml IN Secondary solicitors

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_FUNDINGREQUEST (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @GRANTID uniqueidentifier,
                        @FUNDINGREQUESTSTATUSCODEID uniqueidentifier,
                        @AMOUNTREQUESTED money,
                        @DATESUBMITTED datetime,
                        @COMMENT nvarchar(500),
                        @PRIMARYMANAGERID uniqueidentifier,
                        @SECONDARYMANAGERID uniqueidentifier,
                        @SPONSORS xml
                    )
                    as
                        set nocount on;

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

                        declare @CURRENTDATE datetime
                        set @CURRENTDATE = getdate()


                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @BASEEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONAMOUNTREQUESTED money;                    
                        declare @TRANSACTIONAMOUNTREQUESTED money;                    
                        declare @BASEAMOUNTREQUESTED money;                    
                        declare @OLDCURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        declare @BASECURRENCYID uniqueidentifier;                                                                        
                        declare @DATEADDED datetime;
                        declare @TRANSACTIONCURRENCYID uniqueidentifier;

                        begin try
                            select                                    
                                @BASECURRENCYID = FUNDINGREQUEST.BASECURRENCYID,
                                @TRANSACTIONAMOUNTREQUESTED = FUNDINGREQUEST.TRANSACTIONAMOUNTREQUESTED,                    
                                @ORGANIZATIONAMOUNTREQUESTED = FUNDINGREQUEST.ORGANIZATIONAMOUNTREQUESTED,                        
                                @BASEEXCHANGERATEID = FUNDINGREQUEST.BASEEXCHANGERATEID,
                                @ORGANIZATIONEXCHANGERATEID = FUNDINGREQUEST.ORGANIZATIONEXCHANGERATEID,                                                    
                                @DATEADDED = FUNDINGREQUEST.DATEADDED,
                                @BASEAMOUNTREQUESTED = FUNDINGREQUEST.AMOUNTREQUESTED
                            from
                                dbo.FUNDINGREQUEST
                            where
                                FUNDINGREQUEST.ID = @ID;

                            set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                            select 
                                @TRANSACTIONCURRENCYID = GRANTS.TRANSACTIONCURRENCYID
                            from 
                                dbo.GRANTS
                            where
                                GRANTS.ID = @GRANTID

                            if (@TRANSACTIONAMOUNTREQUESTED <> @AMOUNTREQUESTED )
                            begin
                                set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID, @BASECURRENCYID, @DATEADDED, 1, null);
                                exec dbo.USP_CURRENCY_GETCURRENCYVALUES 
                                @AMOUNTREQUESTED
                                @DATEADDED
                                @BASECURRENCYID
                                @BASEEXCHANGERATEID
                                @TRANSACTIONCURRENCYID
                                @BASEAMOUNTREQUESTED output,
                                @ORGANIZATIONCURRENCYID
                                @ORGANIZATIONAMOUNTREQUESTED output
                                @ORGANIZATIONEXCHANGERATEID
                                0;                            
                            end

                            update 
                                dbo.FUNDINGREQUEST 
                            set
                                FUNDINGREQUEST.GRANTSID = @GRANTID,
                                FUNDINGREQUEST.FUNDINGREQUESTSTATUSCODEID = @FUNDINGREQUESTSTATUSCODEID,
                                FUNDINGREQUEST.AMOUNTREQUESTED = @BASEAMOUNTREQUESTED,
                                FUNDINGREQUEST.TRANSACTIONAMOUNTREQUESTED = @AMOUNTREQUESTED,
                                FUNDINGREQUEST.DATESUBMITTED = @DATESUBMITTED,
                                FUNDINGREQUEST.COMMENT = @COMMENT,
                                FUNDINGREQUEST.PRIMARYMANAGERID = @PRIMARYMANAGERID,
                                FUNDINGREQUEST.SECONDARYMANAGERID = @SECONDARYMANAGERID,
                                FUNDINGREQUEST.TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,                                
                                FUNDINGREQUEST.ORGANIZATIONAMOUNTREQUESTED = @ORGANIZATIONAMOUNTREQUESTED,
                                FUNDINGREQUEST.BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where 
                                ID = @ID


                            exec dbo.USP_FUNDINGREQUEST_GETSPONSORS_UPDATEFROMXML @ID, @SPONSORS, @CHANGEAGENTID, @CURRENTDATE
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR
                            return 1
                        end catch

                    return 0;