USP_DATAFORMTEMPLATE_EDIT_PAYMENTGIFTFEEOVERRIDE_ADJUST_2

The save procedure used by the edit dataform template "Payment Gift Fee Override Adjust Form 2".

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN The input ID parameter indicating the ID of the record being edited.
@GIFTFEES xml IN Gift fees
@REASONCODEID uniqueidentifier IN Reason code
@COMMENTS nvarchar(255) IN Details
@CHANGEAGENTID uniqueidentifier IN Input parameter indicating the ID of the change agent invoking the procedure.
@ADJUSTMENTDATE datetime IN Adjustment date
@ADJUSTMENTPOSTDATE datetime IN Adjustment post date
@ADJUSTMENTREASON nvarchar(300) IN Adjustment details
@ADJUSTMENTREASONCODEID uniqueidentifier IN Adjustment reason

Definition

Copy


                CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PAYMENTGIFTFEEOVERRIDE_ADJUST_2
                    (
                        @ID uniqueidentifier,
                        @GIFTFEES xml,
                        @REASONCODEID uniqueidentifier,
                        @COMMENTS nvarchar(255),
                        @CHANGEAGENTID uniqueidentifier = null,
                        @ADJUSTMENTDATE datetime,
                        @ADJUSTMENTPOSTDATE datetime,
                        @ADJUSTMENTREASON nvarchar(300),
                        @ADJUSTMENTREASONCODEID uniqueidentifier
                    )
                as
                    begin try
                        set nocount on;

                        -- Ensure that the gift fee isn't greater than the application amount

                        if exists (    select 1
                                    from dbo.UFN_REVENUE_GETGIFTFEES_2_FROMITEMLISTXML(@GIFTFEES)
                                    where TRANSACTIONFEE > AMOUNT)
                            raiserror('BBERR_FEEGREATERTHANAMOUNT', 13, 1);

                        declare @CHANGEDATE datetime
                        set @CHANGEDATE = getdate()

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

                        declare @ADJUST bit;
                        declare @CLEARGIFTFEESGLDISTRIBUTION bit;

                        if dbo.UFN_REVENUE_GIFTFEE_CHANGED_2(@GIFTFEES) = 1 
                        begin
                            set @ADJUST = 1;
                            set @CLEARGIFTFEESGLDISTRIBUTION = 1;
                        end

                        if exists (select 1 from dbo.GIFTFEEADJUSTMENT where REVENUEID = @ID and POSTSTATUSCODE = 1)
                        begin
                            set @ADJUST = 1;
                        end

                        --we need to save the adjustment before we save the gift fees so that the previous value will be correct

                        --in the adjustment

                        if @ADJUST = 1
                        begin
                            if @ADJUSTMENTREASONCODEID is null
                                raiserror('BBERR_ADJUSTMENTREASONCODEIDREQUIRED', 13, 1)

                            exec dbo.USP_SAVE_GIFTFEEADJUSTMENT @ID, null, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE
                                  @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON, default, @ADJUSTMENTREASONCODEID;




                        end


                        exec dbo.USP_REVENUE_PAYMENTGIFTFEE_SAVE_2 @ID, @GIFTFEES, @REASONCODEID, @COMMENTS, @CHANGEAGENTID;

                        --update gl distributions 

                        if @ADJUST = 1
                        begin
                            if @CLEARGIFTFEESGLDISTRIBUTION = 1
                            begin
                                --update gl distributions 

                                declare @contextCache varbinary(128);
                                set @contextCache = CONTEXT_INFO();
                                if not @CHANGEAGENTID is null
                                    set CONTEXT_INFO @CHANGEAGENTID;

                                delete from dbo.GIFTFEEGLDISTRIBUTION where REVENUEID = @ID and OUTDATED = 0;

                                if not @contextCache is null
                                    set CONTEXT_INFO @contextCache;

                                -- Check GL business rule for this account system and set to 'Do not post' if needed.

                                declare @PDACCOUNTSYSTEMID uniqueidentifier;
                                declare @DONOTPOST tinyint = 0;
                                select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID from dbo.PDACCOUNTSYSTEMFORREVENUE where ID = @ID;
                                if dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID) = 0
                                begin
                                    set @DONOTPOST = 1;
                                end


                                if @DONOTPOST = 0
                                    exec dbo.USP_SAVE_GIFTFEEGLDISTRIBUTION @ID, @CHANGEAGENTID                            

                                --update the adjustment ftli to have the appropriate post status, post date, and financialtransactionlineitemadjustmentid

                                update FTLI
                                set
                                    FTLI.POSTDATE = case when @DONOTPOST = 1 then null else GIFTFEEADJUSTMENT.POSTDATE end,
                                    FTLI.POSTSTATUSCODE = case when @DONOTPOST = 1 then 3 else GIFTFEEADJUSTMENT.POSTSTATUSCODE end,
                                    FTLI.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID = GIFTFEEADJUSTMENT.ID
                                from dbo.FINANCIALTRANSACTIONLINEITEM PAYMENTFTLI with (nolock)
                                inner join dbo.REVENUESPLITGIFTFEE with (nolock) on REVENUESPLITGIFTFEE.ID = PAYMENTFTLI.ID
                                inner join dbo.GIFTFEEADJUSTMENT with (nolock) on PAYMENTFTLI.FINANCIALTRANSACTIONID = GIFTFEEADJUSTMENT.REVENUEID
                                inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI with (nolock) --gift fee ftli

                                    on FTLI.FINANCIALTRANSACTIONID = PAYMENTFTLI.FINANCIALTRANSACTIONID
                                    and FTLI.SOURCELINEITEMID = PAYMENTFTLI.ID
                                where FTLI.FINANCIALTRANSACTIONID = @ID
                                    and FTLI.TYPECODE = 7 --gift fee

                                    and FTLI.DELETEDON is null
                                    and GIFTFEEADJUSTMENT.POSTSTATUSCODE <> 0
                                    and REVENUESPLITGIFTFEE.WAIVED = 0

                            end
                        end
                    end try

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

                    return 0;