USP_DATAFORMTEMPLATE_ADJUSTEDIT_REVENUEDETAIL
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@AMOUNT | money | IN | |
@RECEIPTAMOUNT | money | IN | |
@SPLITS | xml | IN | |
@SOURCECODE | nvarchar(50) | IN | |
@APPEALID | uniqueidentifier | IN | |
@BENEFITS | xml | IN | |
@BENEFITSWAIVED | bit | IN | |
@MAILINGID | uniqueidentifier | IN | |
@CHANNELCODEID | uniqueidentifier | IN | |
@DONOTACKNOWLEDGE | bit | IN | |
@ADJUSTMENTDATE | datetime | IN | |
@ADJUSTMENTPOSTDATE | datetime | IN | |
@ADJUSTMENTREASON | nvarchar(300) | IN |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_ADJUSTEDIT_REVENUEDETAIL
(
@ID uniqueidentifier,
@CURRENTAPPUSERID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@AMOUNT money,
@RECEIPTAMOUNT money,
@SPLITS xml,
@SOURCECODE nvarchar(50),
@APPEALID uniqueidentifier,
@BENEFITS xml,
@BENEFITSWAIVED bit,
@MAILINGID uniqueidentifier,
@CHANNELCODEID uniqueidentifier,
@DONOTACKNOWLEDGE bit,
@ADJUSTMENTDATE datetime,
@ADJUSTMENTPOSTDATE datetime,
@ADJUSTMENTREASON nvarchar(300)
)
as
set nocount on;
declare @CHANGEDATE datetime;
declare @TYPECODE tinyint;
declare @PAYMENTMETHODCODE tinyint;
declare @ADJUSTMENTID uniqueidentifier;
declare @STOCKDETAILADJUSTMENTID uniqueidentifier;
declare @PROPERTYDETAILADJUSTMENTID uniqueidentifier;
declare @ADJUST bit;
declare @CLEARGLDISTRIBUTION bit;
declare @PROPERTYDETAILCOUNT int;
declare @STOCKDETAILCOUNT int;
set @ADJUST = 0
set @PROPERTYDETAILCOUNT = 0;
set @STOCKDETAILCOUNT = 0;
begin try
set @CHANGEDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
select top 1
@TYPECODE = TRANSACTIONTYPECODE,
@PAYMENTMETHODCODE = PAYMENTMETHODCODE
from dbo.REVENUE
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID
where REVENUE.ID = @ID;
if not exists(select top 1 1 from dbo.REVENUE where ID = @ID and AMOUNT = @AMOUNT)
set @ADJUST = 1;
/* Check if designations changed */
if @ADJUST = 0 and not (@TYPECODE in (6, 4, 8)) --Event Fee\Pledge\MG payment cannot change splits on form
if dbo.UFN_CHECKDETAIL_SPLITSCHANGED(@ID, @SPLITS) = 1
begin
set @ADJUST = 1;
set @CLEARGLDISTRIBUTION = 1;
end
/* Already adjusted */
if @ADJUST = 0
if (select COUNT(ADJUSTMENT.ID)
from dbo.ADJUSTMENT
where ADJUSTMENT.REVENUEID = @ID and ADJUSTMENT.POSTSTATUSCODE = 1) > 0
set @ADJUST = 1;
/* If there was a change to GL related data log an adjustment for each revenue in the transaction */
if @ADJUST = 1
begin
declare @REVENUEPAYMENTMETHODID uniqueidentifier;
select @REVENUEPAYMENTMETHODID = ID from dbo.REVENUEPAYMENTMETHOD where REVENUEID = @ID;
set @ADJUSTMENTID = null;
exec dbo.USP_SAVE_ADJUSTMENT @ID, @ADJUSTMENTID output, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON;
select @STOCKDETAILCOUNT = count(STOCKDETAIL.ID)
from dbo.STOCKSALE
inner join dbo.STOCKDETAIL on STOCKSALE.STOCKDETAILID = STOCKDETAIL.ID
where STOCKDETAIL.ID = @REVENUEPAYMENTMETHODID and SALEPOSTSTATUSCODE = 0;
select @PROPERTYDETAILCOUNT = count(PROPERTYDETAIL.ID)
from dbo.PROPERTYDETAIL
where PROPERTYDETAIL.ID = @REVENUEPAYMENTMETHODID and SALEPOSTSTATUSCODE = 0;
/* If sold stock has been posted, log stock detail adjustment */
if (@PAYMENTMETHODCODE = 4) and (@STOCKDETAILCOUNT > 0)
begin
exec dbo.USP_SAVE_STOCKDETAILADJUSTMENT @REVENUEPAYMENTMETHODID, @STOCKDETAILADJUSTMENTID output, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON;
end
/* If sold property has been posted, log property detail adjustment */
else if (@PAYMENTMETHODCODE = 5) and (@PROPERTYDETAILCOUNT > 0)
begin
exec dbo.USP_SAVE_PROPERTYDETAILADJUSTMENT @REVENUEPAYMENTMETHODID, @PROPERTYDETAILADJUSTMENTID output, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE, @ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON;
end
end
/* Save payment information */
exec dbo.USP_REVENUEDETAIL_EDIT @ID, @CURRENTAPPUSERID, @CHANGEAGENTID, @TYPECODE,
@AMOUNT, @RECEIPTAMOUNT, @SPLITS, @SOURCECODE, @APPEALID, @BENEFITS, @BENEFITSWAIVED,
@MAILINGID, @CHANNELCODEID, @DONOTACKNOWLEDGE, @CHANGEDATE;
-- if the payment method has changed, clear any user-defined gl distributions for all revenue records
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;
delete from dbo.STOCKDETAILGLDISTRIBUTION where REVENUEID = @ID and OUTDATED = 0;;
delete from dbo.PROPERTYDETAILGLDISTRIBUTION where REVENUEID = @ID and OUTDATED = 0;;
--Restore CONTEXT_INFO
if not @contextCache is null
set CONTEXT_INFO @contextCache;
-- Add new GL distributions
exec dbo.USP_SAVE_REVENUEGLDISTRIBUTION @ID;
-- Add new stock detail GL distributions
exec dbo.USP_SAVE_STOCKDETAILGLDISTRIBUTION @ID;
-- Add new property detail GL distributions
exec dbo.USP_SAVE_PROPERTYDETAILGLDISTRIBUTION @ID;
end
/* add adjustment history information */
if @ADJUST = 1
begin
/*call USP_ADJUSTMENTHISTORY_*_SAVEHISTORY after the revenue tables are updated */
if exists(select top 1 ID from dbo.REVENUE where ID = @ID)
begin
if @ADJUSTMENTID is not null
exec dbo.USP_ADJUSTMENTHISTORY_REVENUE_SAVEHISTORY @ID, @CHANGEAGENTID, null, @ADJUSTMENTID;
if @STOCKDETAILADJUSTMENTID is not null
exec dbo.USP_ADJUSTMENTHISTORY_STOCK_SAVEHISTORY @ID, @CHANGEAGENTID, null, @STOCKDETAILADJUSTMENTID;
if @PROPERTYDETAILADJUSTMENTID is not null
exec dbo.USP_ADJUSTMENTHISTORY_PROPERTY_SAVEHISTORY @ID, @CHANGEAGENTID, null, @PROPERTYDETAILADJUSTMENTID;
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
end catch
return 0;