USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONLEVELAMOUNT

The save procedure used by the edit dataform template "Recognition Level Minimum Amount 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.
@MINIMUMAMOUNT money IN Minimum recognition amount
@PLANNEDGIFTAMOUNT money IN Planned giving amount
@EFFECTIVEDATE datetime IN Effective date

Definition

Copy

CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONLEVELAMOUNT
(
    @ID uniqueidentifier,
    @CHANGEAGENTID uniqueidentifier = null,
    @MINIMUMAMOUNT money,
    @PLANNEDGIFTAMOUNT money,
    @EFFECTIVEDATE datetime
)
as
begin
    set nocount on;

    begin try
        declare @CHANGEDATE datetime;
        set @CHANGEDATE = getdate();

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

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

        select
            @BASECURRENCYID = RL.BASECURRENCYID,
            @DATEADDED = RL.DATEADDED,
            @ORGANIZATIONEXCHANGERATEID = RL.ORGANIZATIONEXCHANGERATEID
        from
            dbo.RECOGNITIONLEVEL RL
        where
            RL.ID = @ID;

        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID) begin
            set @ORGANIZATIONAMOUNT = @MINIMUMAMOUNT;
            set @ORGANIZATIONPLANNEDGIFTAMOUNT = @PLANNEDGIFTAMOUNT;
        end
        else begin
            if @ORGANIZATIONEXCHANGERATEID is null
                set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

            set @ORGANIZATIONAMOUNT = dbo.UFN_CURRENCY_CONVERT(@MINIMUMAMOUNT, @ORGANIZATIONEXCHANGERATEID);
            set @ORGANIZATIONPLANNEDGIFTAMOUNT = dbo.UFN_CURRENCY_CONVERT(@PLANNEDGIFTAMOUNT, @ORGANIZATIONEXCHANGERATEID);
        end

        update dbo.RECOGNITIONLEVELAMOUNT set
            AMOUNT = @MINIMUMAMOUNT,
            ORGANIZATIONAMOUNT = @ORGANIZATIONAMOUNT,
            PLANNEDGIFTAMOUNT = @PLANNEDGIFTAMOUNT,
            ORGANIZATIONPLANNEDGIFTAMOUNT = @ORGANIZATIONPLANNEDGIFTAMOUNT,
            ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
            ACTIVEDATE = @EFFECTIVEDATE
        where
            ID = @ID;

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

    return 0;
end