USP_PAYMENT_ADJUST_PRE

Stored procedure to save an adjustment prior to changing revenue.

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN
@ADJUSTMENTPOSTDATE datetime IN
@ADJUSTMENTDATE datetime IN
@ADJUSTMENTREASON nvarchar(100) IN
@ADJUSTMENTID uniqueidentifier INOUT
@STOCKSALEADJUSTMENTIDS xml INOUT
@PROPERTYDETAILADJUSTMENTID uniqueidentifier INOUT
@ORIGINALPAYMENTMETHODCODE tinyint INOUT
@ORIGINALREVENUEPAYMENTMETHODID uniqueidentifier INOUT
@CHANGEAGENTID uniqueidentifier IN
@CHANGEDATE datetime IN
@ADJUSTMENTREASONCODEID uniqueidentifier IN

Definition

Copy


            CREATE procedure dbo.USP_PAYMENT_ADJUST_PRE
            (
                @ID uniqueidentifier,
                @ADJUSTMENTPOSTDATE datetime,
                @ADJUSTMENTDATE datetime,
                @ADJUSTMENTREASON nvarchar(100),
                @ADJUSTMENTID uniqueidentifier output,
                @STOCKSALEADJUSTMENTIDS xml output,
                @PROPERTYDETAILADJUSTMENTID uniqueidentifier output,
                @ORIGINALPAYMENTMETHODCODE tinyint output,
                @ORIGINALREVENUEPAYMENTMETHODID uniqueidentifier output,
                @CHANGEAGENTID uniqueidentifier,
                @CHANGEDATE datetime = null,
                @ADJUSTMENTREASONCODEID uniqueidentifier = null
            )
            as
            set nocount on;

            -- Get payment code

            declare @PAYMENTMETHODCODE tinyint;
            declare @REVENUEPAYMENTMETHODID uniqueidentifier;

            select 
              @ORIGINALPAYMENTMETHODCODE = PAYMENTMETHODCODE,
              @ORIGINALREVENUEPAYMENTMETHODID = ID 
            from 
              dbo.REVENUEPAYMENTMETHOD 
            where
              REVENUEID = @ID;

            -- Verify the transaction has already been posted

            declare @ISPOSTED bit
            select
                @ISPOSTED = 
                case 
                    when exists (select 1 from dbo.REVENUEPOSTED RP where RP.ID = @ID) then 1
                    else 0
                end

            if @ISPOSTED = 0
            begin
                raiserror('TRANSACTIONMUSTBEPOSTED', 13, 1)
                return 1                        
            end

            declare @PROPERTYDETAILCOUNT int;

            select @PROPERTYDETAILCOUNT = count(PROPERTYDETAIL.ID)
            from dbo.PROPERTYDETAIL 
            where PROPERTYDETAIL.ID = @ORIGINALREVENUEPAYMENTMETHODID and SALEPOSTSTATUSCODE = 0;

            exec dbo.USP_SAVE_ADJUSTMENT @ID, @ADJUSTMENTID output, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON,
                default, @ADJUSTMENTREASONCODEID;

            /* If sold stock has been posted, log stock detail adjustment */
            if @ORIGINALPAYMENTMETHODCODE = 4 and exists(select ID from dbo.STOCKSALE where STOCKDETAILID = @ORIGINALREVENUEPAYMENTMETHODID)
            begin
                exec dbo.USP_SAVE_STOCKDETAILADJUSTMENT @ORIGINALREVENUEPAYMENTMETHODID, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE
                    @ADJUSTMENTREASON, @STOCKSALEADJUSTMENTIDS output, @ADJUSTMENTREASONCODEID;
            end

            /* If sold property has been posted, log property detail adjustment */
            else if (@ORIGINALPAYMENTMETHODCODE = 8) and (@PROPERTYDETAILCOUNT > 0
            begin
                exec dbo.USP_SAVE_PROPERTYDETAILADJUSTMENT @ORIGINALREVENUEPAYMENTMETHODID, @PROPERTYDETAILADJUSTMENTID output, @CHANGEAGENTID
                    @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON, @ADJUSTMENTREASONCODEID;
            end