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