USP_PLEDGE_PAYMENT_ADDGIFTFEES
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@SPLITS | xml | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@DATECHANGED | datetime | IN | |
@ADJUSTMENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_PLEDGE_PAYMENT_ADDGIFTFEES(
@REVENUEID uniqueidentifier,
@SPLITS xml,
@CONSTITUENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier,
@DATECHANGED datetime,
@ADJUSTMENTID uniqueidentifier
)
as
begin
set nocount on;
--Do nothing if this is turned off.
if dbo.UFN_GIFTFEE_ENABLED() = 0
return;
declare @GIFTFEES table(
ID uniqueidentifier,
FEE money,
WAIVED bit,
TRANSACTIONAMOUNT money,
ORGANIZATIONAMOUNT money,
BASECURRENCYID uniqueidentifier,
BASEEXCHANGERATEID uniqueidentifier,
TRANSACTIONCURRENCYID uniqueidentifier,
ORGANIZATIONEXCHANGERATEID uniqueidentifier
)
insert into @GIFTFEES
select
GIFTFEES.ID
,GIFTFEES.FEE
,GIFTFEES.WAIVED
,GIFTFEES.TRANSACTIONAMOUNT
,GIFTFEES.ORGANIZATIONAMOUNT
,GIFTFEES.BASECURRENCYID
,GIFTFEES.BASEEXCHANGERATEID
,GIFTFEES.TRANSACTIONCURRENCYID
,GIFTFEES.ORGANIZATIONEXCHANGERATEID
from dbo.UFN_REVENUE_GENERATEDEFAULTGIFTFEES(@REVENUEID, @CONSTITUENTID) GIFTFEES
inner join UFN_REVENUE_GETSPLITS_2_FROMITEMLISTXML(@SPLITS) SPLITS on GIFTFEES.ID = SPLITS.ID
merge dbo.FINANCIALTRANSACTIONLINEITEM as target
using
(select
GIFTFEES.ID as FINANCIALTRANSACTIONLINEITEMID,
@REVENUEID as FINANCIALTRANSACTIONID,
GIFTFEES.FEE BASEAMOUNT,
GIFTFEES.TRANSACTIONAMOUNT,
GIFTFEES.ORGANIZATIONAMOUNT,
FINANCIALTRANSACTIONLINEITEM.POSTSTATUSCODE,
FINANCIALTRANSACTIONLINEITEM.POSTDATE,
GIFTFEES.ID as SOURCELINEITEMID
from @GIFTFEES GIFTFEES
inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.ID = GIFTFEES.ID
) as source
on (source.FINANCIALTRANSACTIONLINEITEMID = target.SOURCELINEITEMID)
when matched and target.TYPECODE = 7 and target.DELETEDON is null then update
set
target.BASEAMOUNT = source.BASEAMOUNT,
target.TRANSACTIONAMOUNT = source.TRANSACTIONAMOUNT,
target.ORGAMOUNT = source.ORGANIZATIONAMOUNT,
target.POSTSTATUSCODE = source.POSTSTATUSCODE,
target.POSTDATE = source.POSTDATE,
target.DATEADDED = @DATECHANGED,
target.DATECHANGED = @DATECHANGED,
target.ADDEDBYID = @CHANGEAGENTID,
target.CHANGEDBYID = @CHANGEAGENTID,
target.FINANCIALTRANSACTIONLINEITEMADJUSTMENTID = @ADJUSTMENTID,
target.SOURCELINEITEMID = source.SOURCELINEITEMID,
target.TYPECODE = 7
when not matched by target then insert
(ID, FINANCIALTRANSACTIONID, BASEAMOUNT, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED, TRANSACTIONAMOUNT, ORGAMOUNT, POSTSTATUSCODE, POSTDATE, FINANCIALTRANSACTIONLINEITEMADJUSTMENTID, SOURCELINEITEMID, TYPECODE)
values
(newid(), source.FINANCIALTRANSACTIONID, source.BASEAMOUNT, @CHANGEAGENTID, @CHANGEAGENTID, @DATECHANGED, @DATECHANGED, source.TRANSACTIONAMOUNT, source.ORGANIZATIONAMOUNT, source.POSTSTATUSCODE, source.POSTDATE, @ADJUSTMENTID, source.SOURCELINEITEMID, 7);
merge dbo.REVENUESPLITGIFTFEE as target
using (
select
GIFTFEES.ID, GIFTFEES.FEE, GIFTFEES.WAIVED, GIFTFEES.BASECURRENCYID, GIFTFEES.ORGANIZATIONAMOUNT, GIFTFEES.ORGANIZATIONEXCHANGERATEID, GIFTFEES.TRANSACTIONAMOUNT, GIFTFEES.TRANSACTIONCURRENCYID, GIFTFEES.BASEEXCHANGERATEID
from @GIFTFEES GIFTFEES
) as source (ID, FEE, WAIVED, BASECURRENCYID, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, TRANSACTIONAMOUNT, TRANSACTIONCURRENCYID, BASEEXCHANGERATEID)
on (target.id = source.id)
when matched then
update set
FEE = source.FEE
,WAIVED = source.WAIVED
,BASECURRENCYID = source.BASECURRENCYID
,ORGANIZATIONAMOUNT = source.ORGANIZATIONAMOUNT
,ORGANIZATIONEXCHANGERATEID = source.ORGANIZATIONEXCHANGERATEID
,TRANSACTIONAMOUNT = source.TRANSACTIONAMOUNT
,TRANSACTIONCURRENCYID = source.TRANSACTIONCURRENCYID
,BASEEXCHANGERATEID = source.BASEEXCHANGERATEID
,CHANGEDBYID = @CHANGEAGENTID
,DATECHANGED = @DATECHANGED
when not matched then
insert (ID, FEE, WAIVED, BASECURRENCYID, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, TRANSACTIONAMOUNT, TRANSACTIONCURRENCYID, BASEEXCHANGERATEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values (source.ID, source.FEE, source.WAIVED, source.BASECURRENCYID, source.ORGANIZATIONAMOUNT, source.ORGANIZATIONEXCHANGERATEID, source.TRANSACTIONAMOUNT, source.TRANSACTIONCURRENCYID, source.BASEEXCHANGERATEID, @CHANGEAGENTID, @CHANGEAGENTID, @DATECHANGED, @DATECHANGED);
end