USP_DATAFORMTEMPLATE_EDIT_GRANT_2

The save procedure used by the edit dataform template "Grant 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.
@MINAWARD money IN Min. grant award
@MAXAWARD money IN Max. grant award
@TITLE nvarchar(150) IN Title
@GRANTFUNDINGTYPES xml IN Funding types
@DESCRIPTION nvarchar(500) IN Description
@TRANSACTIONCURRENCYID uniqueidentifier IN Currency

Definition

Copy


                    create procedure dbo.USP_DATAFORMTEMPLATE_EDIT_GRANT_2
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier,
                        @MINAWARD money,
                        @MAXAWARD money,
                        @TITLE nvarchar(150),
                        @GRANTFUNDINGTYPES xml,
                        @DESCRIPTION nvarchar(500),
                        @TRANSACTIONCURRENCYID uniqueidentifier
                    )
                    as
                        set nocount on;

                        declare @CURRENTDATE datetime;
                        set @CURRENTDATE = getdate();

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

                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @BASEEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONMINAWARD money;
                        declare @ORGANIZATIONMAXAWARD money;
                        declare @TRANSACTIONMINAWARD money;
                        declare @TRANSACTIONMAXAWARD money;
                        declare @BASEMINAWARD money;
                        declare @BASEMAXAWARD money;
                        declare @OLDCURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        declare @BASECURRENCYID uniqueidentifier;

                        select
                            @BASECURRENCYID = GRANTS.BASECURRENCYID,
                            @TRANSACTIONMINAWARD = GRANTS.TRANSACTIONMINAWARD,
                            @TRANSACTIONMAXAWARD = GRANTS.TRANSACTIONMAXAWARD,
                            @ORGANIZATIONMINAWARD = GRANTS.ORGANIZATIONMINAWARD,
                            @ORGANIZATIONMAXAWARD = GRANTS.ORGANIZATIONMAXAWARD,
                            @BASEEXCHANGERATEID = GRANTS.BASEEXCHANGERATEID,
                            @ORGANIZATIONEXCHANGERATEID = GRANTS.ORGANIZATIONEXCHANGERATEID,
                            @BASEMINAWARD = GRANTS.MINAWARD,
                            @BASEMAXAWARD = GRANTS.MAXAWARD,
                            @OLDCURRENCYID = GRANTS.TRANSACTIONCURRENCYID
                        from
                            dbo.GRANTS
                        where
                            GRANTS.ID = @ID;

                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        if (@TRANSACTIONMINAWARD <> @MINAWARD or @TRANSACTIONMAXAWARD <> @MAXAWARD or @OLDCURRENCYID <> @TRANSACTIONCURRENCYID)
                            begin
                                set @BASEEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@TRANSACTIONCURRENCYID, @BASECURRENCYID, @CURRENTDATE, 1, null);

                                exec dbo.USP_CURRENCY_GETCURRENCYVALUES @MINAWARD, @CURRENTDATE, @BASECURRENCYID, @BASEEXCHANGERATEID output, @TRANSACTIONCURRENCYID output, @BASEMINAWARD output, @ORGANIZATIONCURRENCYID output, @ORGANIZATIONMINAWARD output, @ORGANIZATIONEXCHANGERATEID output, 1;
                                exec dbo.USP_CURRENCY_GETCURRENCYVALUES @MAXAWARD, @CURRENTDATE, @BASECURRENCYID, @BASEEXCHANGERATEID output, @TRANSACTIONCURRENCYID output, @BASEMAXAWARD output, @ORGANIZATIONCURRENCYID output, @ORGANIZATIONMAXAWARD output, @ORGANIZATIONEXCHANGERATEID output, 0;

                            end

                        begin try
                            update dbo.GRANTS
                            set
                                TITLE = @TITLE,
                                DESCRIPTION = @DESCRIPTION,
                                MINAWARD = @BASEMINAWARD,
                                MAXAWARD = @BASEMAXAWARD,
                                TRANSACTIONMINAWARD = @MINAWARD,
                                TRANSACTIONMAXAWARD = @MAXAWARD,
                                ORGANIZATIONMINAWARD = @ORGANIZATIONMINAWARD,
                                ORGANIZATIONMAXAWARD = @ORGANIZATIONMAXAWARD,
                                BASEEXCHANGERATEID = @BASEEXCHANGERATEID,
                                ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
                                BASECURRENCYID = @BASECURRENCYID,
                                TRANSACTIONCURRENCYID = @TRANSACTIONCURRENCYID,
                                CHANGEDBYID = @CHANGEAGENTID,
                                DATECHANGED = @CURRENTDATE
                            where
                                ID = @ID;

                            exec dbo.USP_GRANT_FUNDINGTYPES_UPDATEFROMXML @ID, @GRANTFUNDINGTYPES, @CHANGEAGENTID;

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

                        return 0;