USP_DATAFORMTEMPLATE_EDIT_PAYMENTGIFTFEEOVERRIDE_ADJUST_2
The save procedure used by the edit dataform template "Payment Gift Fee Override Adjust Form 2".
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | The input ID parameter indicating the ID of the record being edited. |
@GIFTFEES | xml | IN | Gift fees |
@REASONCODEID | uniqueidentifier | IN | Reason code |
@COMMENTS | nvarchar(255) | IN | Details |
@CHANGEAGENTID | uniqueidentifier | IN | Input parameter indicating the ID of the change agent invoking the procedure. |
@ADJUSTMENTDATE | datetime | IN | Adjustment date |
@ADJUSTMENTPOSTDATE | datetime | IN | Adjustment post date |
@ADJUSTMENTREASON | nvarchar(300) | IN | Adjustment details |
@ADJUSTMENTREASONCODEID | uniqueidentifier | IN | Adjustment reason |
Definition
Copy
CREATE procedure dbo.USP_DATAFORMTEMPLATE_EDIT_PAYMENTGIFTFEEOVERRIDE_ADJUST_2
(
@ID uniqueidentifier,
@GIFTFEES xml,
@REASONCODEID uniqueidentifier,
@COMMENTS nvarchar(255),
@CHANGEAGENTID uniqueidentifier = null,
@ADJUSTMENTDATE datetime,
@ADJUSTMENTPOSTDATE datetime,
@ADJUSTMENTREASON nvarchar(300),
@ADJUSTMENTREASONCODEID uniqueidentifier
)
as
begin try
set nocount on;
-- Ensure that the gift fee isn't greater than the application amount
if exists ( select 1
from dbo.UFN_REVENUE_GETGIFTFEES_2_FROMITEMLISTXML(@GIFTFEES)
where TRANSACTIONFEE > AMOUNT)
raiserror('BBERR_FEEGREATERTHANAMOUNT', 13, 1);
declare @CHANGEDATE datetime
set @CHANGEDATE = getdate()
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @ADJUST bit;
declare @CLEARGIFTFEESGLDISTRIBUTION bit;
if dbo.UFN_REVENUE_GIFTFEE_CHANGED_2(@GIFTFEES) = 1
begin
set @ADJUST = 1;
set @CLEARGIFTFEESGLDISTRIBUTION = 1;
end
if exists (select 1 from dbo.GIFTFEEADJUSTMENT where REVENUEID = @ID and POSTSTATUSCODE = 1)
begin
set @ADJUST = 1;
end
--we need to save the adjustment before we save the gift fees so that the previous value will be correct
--in the adjustment
if @ADJUST = 1
begin
if @ADJUSTMENTREASONCODEID is null
raiserror('BBERR_ADJUSTMENTREASONCODEIDREQUIRED', 13, 1)
exec dbo.USP_SAVE_GIFTFEEADJUSTMENT @ID, null, @CHANGEAGENTID, @CHANGEDATE, @ADJUSTMENTDATE,
@ADJUSTMENTPOSTDATE, @ADJUSTMENTREASON, default, @ADJUSTMENTREASONCODEID;
end
exec dbo.USP_REVENUE_PAYMENTGIFTFEE_SAVE_2 @ID, @GIFTFEES, @REASONCODEID, @COMMENTS, @CHANGEAGENTID;
--update gl distributions
if @ADJUST = 1
begin
if @CLEARGIFTFEESGLDISTRIBUTION = 1
begin
--update gl distributions
declare @contextCache varbinary(128);
set @contextCache = CONTEXT_INFO();
if not @CHANGEAGENTID is null
set CONTEXT_INFO @CHANGEAGENTID;
delete from dbo.GIFTFEEGLDISTRIBUTION where REVENUEID = @ID and OUTDATED = 0;
if not @contextCache is null
set CONTEXT_INFO @contextCache;
-- Check GL business rule for this account system and set to 'Do not post' if needed.
declare @PDACCOUNTSYSTEMID uniqueidentifier;
declare @DONOTPOST tinyint = 0;
select @PDACCOUNTSYSTEMID = PDACCOUNTSYSTEMID from dbo.PDACCOUNTSYSTEMFORREVENUE where ID = @ID;
if dbo.UFN_PDACCOUNTSYSTEM_ALLOWGLDISTRIBUTIONS(@PDACCOUNTSYSTEMID) = 0
begin
set @DONOTPOST = 1;
end
if @DONOTPOST = 0
exec dbo.USP_SAVE_GIFTFEEGLDISTRIBUTION @ID, @CHANGEAGENTID
--update the adjustment ftli to have the appropriate post status, post date, and financialtransactionlineitemadjustmentid
update FTLI
set
FTLI.POSTDATE = case when @DONOTPOST = 1 then null else GIFTFEEADJUSTMENT.POSTDATE end,
FTLI.POSTSTATUSCODE = case when @DONOTPOST = 1 then 3 else GIFTFEEADJUSTMENT.POSTSTATUSCODE end,
FTLI.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID = GIFTFEEADJUSTMENT.ID
from dbo.FINANCIALTRANSACTIONLINEITEM PAYMENTFTLI with (nolock)
inner join dbo.REVENUESPLITGIFTFEE with (nolock) on REVENUESPLITGIFTFEE.ID = PAYMENTFTLI.ID
inner join dbo.GIFTFEEADJUSTMENT with (nolock) on PAYMENTFTLI.FINANCIALTRANSACTIONID = GIFTFEEADJUSTMENT.REVENUEID
inner join dbo.FINANCIALTRANSACTIONLINEITEM FTLI with (nolock) --gift fee ftli
on FTLI.FINANCIALTRANSACTIONID = PAYMENTFTLI.FINANCIALTRANSACTIONID
and FTLI.SOURCELINEITEMID = PAYMENTFTLI.ID
where FTLI.FINANCIALTRANSACTIONID = @ID
and FTLI.TYPECODE = 7 --gift fee
and FTLI.DELETEDON is null
and GIFTFEEADJUSTMENT.POSTSTATUSCODE <> 0
and REVENUESPLITGIFTFEE.WAIVED = 0
end
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;