USP_DATAFORMTEMPLATE_ADD_GRANT

The save procedure used by the add dataform template "Grant Add Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@CURRENTAPPUSERID uniqueidentifier IN Input parameter indicating the ID of the current user.
@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
@TRANSACTIONCURRENCYID uniqueidentifier IN Currency
@TITLE nvarchar(150) IN Title
@GRANTORID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@GRANTFUNDINGTYPES xml IN Funding types
@DESCRIPTION nvarchar(500) IN Description

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_GRANT
                    (
                        @ID uniqueidentifier output,
                        @CURRENTAPPUSERID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @MINAWARD money = null,
                        @MAXAWARD money = null,
                        @TRANSACTIONCURRENCYID uniqueidentifier = null,
                        @TITLE nvarchar(150) = null,
                        @GRANTORID uniqueidentifier,
                        @GRANTFUNDINGTYPES xml = null,
                        @DESCRIPTION nvarchar(500) = null
                    )
                    as
                        set nocount on;

                        if @ID is null
                            set @ID = newid();

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

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

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

                        set @BASECURRENCYID = dbo.UFN_APPUSER_GETBASECURRENCY(@CURRENTAPPUSERID);

                        if @TRANSACTIONCURRENCYID is null
                            set @TRANSACTIONCURRENCYID = @BASECURRENCYID;

                        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;


                        begin try
                            insert into dbo.GRANTS
                            (
                                ID,
                                BASECURRENCYID,
                                TRANSACTIONCURRENCYID,
                                ORGANIZATIONEXCHANGERATEID,
                                BASEEXCHANGERATEID,
                                GRANTORID,
                                TITLE,
                                DESCRIPTION,
                                MINAWARD,
                                ORGANIZATIONMINAWARD,
                                TRANSACTIONMINAWARD,
                                MAXAWARD,
                                ORGANIZATIONMAXAWARD,
                                TRANSACTIONMAXAWARD,
                                ADDEDBYID,
                                CHANGEDBYID,
                                DATEADDED,
                                DATECHANGED
                            )
                            values
                            (
                                @ID,
                                @BASECURRENCYID,
                                @TRANSACTIONCURRENCYID,
                                @ORGANIZATIONEXCHANGERATEID,
                                @BASEEXCHANGERATEID,
                                @GRANTORID,
                                @TITLE,
                                @DESCRIPTION,
                                @BASEMINAWARD,
                                @ORGANIZATIONMINAWARD,
                                @MINAWARD,
                                @BASEMAXAWARD,
                                @ORGANIZATIONMAXAWARD,
                                @MAXAWARD,
                                @CHANGEAGENTID,
                                @CHANGEAGENTID,
                                @CURRENTDATE,
                                @CURRENTDATE
                            );

                            exec dbo.USP_GRANT_FUNDINGTYPES_ADDFROMXML @ID, @GRANTFUNDINGTYPES, @CHANGEAGENTID;
                        end try
                        begin catch
                            exec dbo.USP_RAISE_ERROR;
                            return 1;
                        end catch

                        return 0;