USP_SAVE_GIFTAID_ADJUSTMENT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUESPLITGIFTAIDID | uniqueidentifier | IN | |
@POSTSTATUSCODE | tinyint | IN | |
@POSTDATE | date | IN | |
@ADJUSTMENTREASONCODEID | uniqueidentifier | IN | |
@PAYMENTADJUSTMENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@CHANGEDATE | datetime | IN |
Definition
Copy
create procedure dbo.USP_SAVE_GIFTAID_ADJUSTMENT(
@REVENUESPLITGIFTAIDID uniqueidentifier,
@POSTSTATUSCODE tinyint = null,
@POSTDATE date = null,
@ADJUSTMENTREASONCODEID uniqueidentifier = null,
@PAYMENTADJUSTMENTID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null,
@CHANGEDATE datetime = null
)
as
begin
set nocount on;
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @CHANGEDATE is null
set @CHANGEDATE = getdate();
declare @ADJUSTMENTID uniqueidentifier
select top 1
@ADJUSTMENTID = FINANCIALTRANSACTIONLINEITEMADJUSTMENTID,
@POSTDATE = LIA.DATE
from
dbo.FINANCIALTRANSACTIONLINEITEM LI
inner join dbo.FINANCIALTRANSACTIONLINEITEMADJUSTMENT LIA on LIA.ID = LI.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID
inner join dbo.JOURNALENTRY JE on JE.FINANCIALTRANSACTIONLINEITEMID = LI.ID
inner join dbo.JOURNALENTRY_EXT JEX on JEX.ID = JE.ID
where
JEX.REVENUESPLITGIFTAIDID = @REVENUESPLITGIFTAIDID
and LI.POSTSTATUSCODE = 1
if @ADJUSTMENTID is null and @PAYMENTADJUSTMENTID is not null
begin
set @ADJUSTMENTID = @PAYMENTADJUSTMENTID
end
if @POSTDATE is null
set @POSTDATE = getdate()
if @POSTSTATUSCODE is null
set @POSTSTATUSCODE = 1
if @ADJUSTMENTID is null
begin
set @ADJUSTMENTID = NEWID()
insert into dbo.FINANCIALTRANSACTIONLINEITEMADJUSTMENT
(ID, ADJUSTMENTREASONCODEID, DATE, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values
(
@ADJUSTMENTID,
@ADJUSTMENTREASONCODEID,
@POSTDATE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CHANGEDATE,
@CHANGEDATE
);
end
-- Gift Aid line items to reverse
declare @LINEITEMS UDT_GENERICID
insert into @LINEITEMS (ID)
select distinct
GIFTAIDLI.ID
from
dbo.FINANCIALTRANSACTIONLINEITEM PAYMENTLI
left join dbo.FINANCIALTRANSACTIONLINEITEM REVERSEDPAYMENTLI on REVERSEDPAYMENTLI.REVERSEDLINEITEMID = PAYMENTLI.ID
inner join dbo.FINANCIALTRANSACTIONLINEITEM GIFTAIDLI on GIFTAIDLI.SOURCELINEITEMID = PAYMENTLI.ID or GIFTAIDLI.SOURCELINEITEMID = REVERSEDPAYMENTLI.ID
where
PAYMENTLI.ID = @REVENUESPLITGIFTAIDID
and GIFTAIDLI.TYPECODE = 8
and GIFTAIDLI.DELETEDON is null
--create reversals if none exist for this adjustment
if not exists (
select
1
from
@LINEITEMS L
inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on LI.REVERSEDLINEITEMID = L.ID
where
LI.TYPECODE = 1
and LI.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID = @ADJUSTMENTID)
begin
exec dbo.USP_SAVE_REVERSAL_LINEITEM @LINEITEMS, @ADJUSTMENTID, @CHANGEAGENTID, @CHANGEDATE, @POSTDATE, @POSTSTATUSCODE
exec dbo.USP_SAVE_HISTORICAL_LINEITEM @LINEITEMS, @ADJUSTMENTID, @CHANGEAGENTID, @CHANGEDATE, @POSTDATE, @POSTSTATUSCODE
end
update LI set
SOURCELINEITEMID = @REVENUESPLITGIFTAIDID
from
@LINEITEMS L
inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on LI.ID = L.ID
end