USP_DATAFORMTEMPLATE_ADD_RECOGNITIONLEVEL

The save procedure used by the add dataform template "Recognition Level Add Data Form".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier INOUT The output parameter indicating the ID of the record added.
@RECOGNITIONPROGRAMID uniqueidentifier IN Input parameter indicating the context ID for the record being added.
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@NAME nvarchar(50) IN Name
@DESCRIPTION nvarchar(255) IN Description
@TIERCODEID uniqueidentifier IN Tier
@AMOUNT money IN Minimum recognition amount
@PLANNEDGIFTAMOUNT money IN Planned giving amount

Definition

Copy


                    CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADD_RECOGNITIONLEVEL
                    (
                        @ID uniqueidentifier = null output,
                        @RECOGNITIONPROGRAMID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @NAME nvarchar(50),
                        @DESCRIPTION nvarchar(255) = null,
                        @TIERCODEID uniqueidentifier = null,
                        @AMOUNT money = null,
                        @PLANNEDGIFTAMOUNT money = 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()

                    begin try
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @ORGANIZATIONAMOUNT money;
                        declare @ORGANIZATIONPLANNEDGIFTAMOUNT money;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @BASECURRENCYID = RECOGNITIONPROGRAM.BASECURRENCYID
                        from dbo.RECOGNITIONPROGRAM
                        where RECOGNITIONPROGRAM.ID = @RECOGNITIONPROGRAMID;

                        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID)
                        begin
                            set @ORGANIZATIONAMOUNT = @AMOUNT;
                            set @ORGANIZATIONPLANNEDGIFTAMOUNT = @PLANNEDGIFTAMOUNT;
                        end
                        else
                        begin
                            set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @CURRENTDATE, 0, null);
                            set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@AMOUNT, @ORGANIZATIONEXCHANGERATEID);
                            set @ORGANIZATIONPLANNEDGIFTAMOUNT = dbo.UFN_CURRENCY_CONVERT(@PLANNEDGIFTAMOUNT, @ORGANIZATIONEXCHANGERATEID);
                        end

                        insert into dbo.RECOGNITIONLEVEL
                            (ID, RECOGNITIONPROGRAMID, NAME, DESCRIPTION, TIERCODEID, BASECURRENCYID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values
                            (@ID, @RECOGNITIONPROGRAMID, @NAME, @DESCRIPTION, @TIERCODEID, @BASECURRENCYID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

                        insert into dbo.RECOGNITIONLEVELAMOUNT
                            (ID, RECOGNITIONLEVELID, AMOUNT, ORGANIZATIONAMOUNT, PLANNEDGIFTAMOUNT, ORGANIZATIONPLANNEDGIFTAMOUNT, ORGANIZATIONEXCHANGERATEID, BASECURRENCYID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
                        values
                            (newid(), @ID, @AMOUNT, @ORGANIZATIONAMOUNT, @PLANNEDGIFTAMOUNT, @ORGANIZATIONPLANNEDGIFTAMOUNT, @ORGANIZATIONEXCHANGERATEID, @BASECURRENCYID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)

                    end try

                    begin catch
                        exec dbo.USP_RAISE_ERROR
                        return 1
                    end catch

                    return 0