USP_RECONCILEMATCHINGGIFTPAYMENT_ADJUST

stored procedure to add a adjustment to a matching gift payment.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@CHANGEAGENTID uniqueidentifier IN
@ADJUSTMENTDATE datetime IN
@ADJUSTMENTPOSTDATE datetime IN
@ADJUSTMENTREASON nvarchar(300) IN
@CLEARGLDISTRIBUTION bit IN
@CLEARWRITEOFFDISTRIBUTION bit IN

Definition

Copy


            CREATE procedure dbo.USP_RECONCILEMATCHINGGIFTPAYMENT_ADJUST
                    (
                        @ID uniqueidentifier,
                        @CHANGEAGENTID uniqueidentifier = null,
                        @ADJUSTMENTDATE datetime,
                        @ADJUSTMENTPOSTDATE datetime,
                        @ADJUSTMENTREASON nvarchar(300),
                        @CLEARGLDISTRIBUTION bit,
                        @CLEARWRITEOFFDISTRIBUTION bit
                    )
                    as
                    set nocount on;

                    declare @CURRENTDATE datetime;
                    declare @ADJUSTMENTID uniqueidentifier;
                    set @CURRENTDATE = GetDate();

                    begin try

                        set @ADJUSTMENTID = null;

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


                        /* If there was a change to GL related data log an adjustment */

                        exec dbo.USP_SAVE_ADJUSTMENT @ID, @ADJUSTMENTID output, @CHANGEAGENTID, @CURRENTDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON;

                        -- if the designations or amount has changed, clear any user-defined gl distributions for this revenue record

                        if @CLEARGLDISTRIBUTION = 1
                        begin
                            --Clear GL

                            --Cache CONTEXT INFO

                            declare @contextCache varbinary(128);
                            set @contextCache = CONTEXT_INFO();

                            if not @CHANGEAGENTID is null
                                set CONTEXT_INFO @CHANGEAGENTID;

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

                            exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @ID, @CHANGEAGENTID, @CURRENTDATE;

                            if @CLEARWRITEOFFDISTRIBUTION = 1 
                                delete from dbo.WRITEOFFGLDISTRIBUTION where WRITEOFFID in (select WO.ID from dbo.WRITEOFF WO where WO.REVENUEID = @ID) and OUTDATED = 0;

                            --Restore CONTEXT_INFO

                            if not @contextCache is null
                                set CONTEXT_INFO @contextCache;

              declare @DEPOSITID uniqueidentifier;
              select @DEPOSITID = DEPOSITID
              from dbo.BANKACCOUNTDEPOSITPAYMENT
              where ID = @ID;
              if @DEPOSITID is not null
                exec dbo.USP_BANKACCOUNTDEPOSIT_OVERWRITEPAYMENTDEBITACCOUNTS @ID, @DEPOSITID, @CHANGEAGENTID, @CURRENTDATE;
                        end


                        update 
                            dbo.REVENUE
                        set
                            CHANGEDBYID = @CHANGEAGENTID,
                            DATECHANGED = @CURRENTDATE
                        where 
                            ID = @ID;

                         /*call USP_ADJUSTMENTHISTORY_REVENUE_SAVEHISTORY after the revenue tables are updated */
                        exec dbo.USP_ADJUSTMENTHISTORY_REVENUE_SAVEHISTORY @ID, @CHANGEAGENTID, null, @ADJUSTMENTID;
                    end try

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

                    return 0;