USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONPROGRAMREVENUE_3

The save procedure used by the edit dataform template "Recognition Program Revenue Edit Data Form 2".

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.
@SELECTIONID uniqueidentifier IN Additional revenue selection
@STARTDATE datetime IN Recognition effective date
@GIFTTYPESFILTER xml IN Revenue types
@MAXIMUMAMOUNT money IN Maximum recognition amount
@PLANNEDGIFTCODE tinyint IN
@RECOGNITIONCREDITTYPES xml IN Recognition credit types
@INCLUDECREDITWITHOUTTYPE tinyint IN Include recognition credits without a specified type

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_RECOGNITIONPROGRAMREVENUE_3 (
                    @ID uniqueidentifier,
                    @CHANGEAGENTID uniqueidentifier = null,
                    @SELECTIONID uniqueidentifier,
                    @STARTDATE datetime,
                    @GIFTTYPESFILTER xml,
                    @MAXIMUMAMOUNT money,
                    @PLANNEDGIFTCODE tinyint,
                    @RECOGNITIONCREDITTYPES xml,
                    @INCLUDECREDITWITHOUTTYPE tinyint
                )
                as

                    set nocount on;

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

                    declare @CURRENTDATE datetime
                    set @CURRENTDATE = getdate()

                    begin try
                        declare @BASECURRENCYID uniqueidentifier;
                        declare @DATEADDED datetime;
                        declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
                        declare @ORGANIZATIONMAXIMUMAMOUNT money;
                        declare @ORGANIZATIONCURRENCYID uniqueidentifier;
                        set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();

                        select
                            @BASECURRENCYID = RP.BASECURRENCYID,
                            @DATEADDED = RP.DATEADDED,
                            @ORGANIZATIONEXCHANGERATEID = RP.ORGANIZATIONEXCHANGERATEID
                        from
                            dbo.RECOGNITIONPROGRAM RP
                        where
                            RP.ID = @ID;

                        if (@ORGANIZATIONCURRENCYID = @BASECURRENCYID) begin
                            set @ORGANIZATIONMAXIMUMAMOUNT = @MAXIMUMAMOUNT;
                        end
                        else begin
                            if @ORGANIZATIONEXCHANGERATEID is null
                                set @ORGANIZATIONEXCHANGERATEID = dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(@BASECURRENCYID, @ORGANIZATIONCURRENCYID, @DATEADDED, 0, null);

                            set @ORGANIZATIONMAXIMUMAMOUNT = dbo.UFN_CURRENCY_CONVERT(@MAXIMUMAMOUNT, @ORGANIZATIONEXCHANGERATEID);
                        end

                        update dbo.RECOGNITIONPROGRAM set
                            SELECTIONID = @SELECTIONID,
                            STARTDATE = @STARTDATE,
                            GIFTTYPESFILTER = @GIFTTYPESFILTER,
                            MAXIMUMAMOUNT = @MAXIMUMAMOUNT,
                            ORGANIZATIONMAXIMUMAMOUNT = @ORGANIZATIONMAXIMUMAMOUNT,
                            PLANNEDGIFTCODE = @PLANNEDGIFTCODE,
                            ORGANIZATIONEXCHANGERATEID = @ORGANIZATIONEXCHANGERATEID,
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE,
                            INCLUDECREDITWITHOUTTYPE = @INCLUDECREDITWITHOUTTYPE
                        where ID = @ID;

                        if not @RECOGNITIONCREDITTYPES is null
                            exec dbo.USP_RECOGNITIONPROGRAM_GETCREDITTYPES_UPDATEFROMXML @ID, @RECOGNITIONCREDITTYPES, @CHANGEAGENTID, @CURRENTDATE;

                        if @INCLUDECREDITWITHOUTTYPE = 0 and not exists (select * from dbo.UFN_RECOGNITIONPROGRAM_GETCREDITTYPES(@ID))                            
                            raiserror('BBERR_RECOGNITIONPROGRAM_SPECIFYCREDITTYPEORNONE', 13, 1);

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

                return 0;