USP_REVENUE_PAYMENTGIFTFEE_SAVE_2
Stored proc to update the gift fees on a payment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@GIFTFEES | xml | IN | |
@REASONCODEID | uniqueidentifier | IN | |
@COMMENTS | nvarchar(255) | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_REVENUE_PAYMENTGIFTFEE_SAVE_2
(
@ID uniqueidentifier,
@GIFTFEES xml,
@REASONCODEID uniqueidentifier,
@COMMENTS nvarchar(255),
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @BASECURRENCYID uniqueidentifier
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier
declare @TRANSACTIONCURRENCYID uniqueidentifier
declare @BASEEXCHANGERATEID uniqueidentifier
select
@BASECURRENCYID = BASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID,
@TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID = BASEEXCHANGERATEID
from
dbo.REVENUE
where
ID = @ID
select @GIFTFEES = dbo.UFN_GIFTFEE_CONVERTAMOUNTSINXML
(
@GIFTFEES,
@BASECURRENCYID,
@ORGANIZATIONEXCHANGERATEID,
@TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID
)
--Rows are not allowed to be removed so update and insert are all we need
update dbo.REVENUESPLITGIFTFEE
set REVENUESPLITGIFTFEE.FEE = FEES.FEE,
REVENUESPLITGIFTFEE.TRANSACTIONAMOUNT = FEES.TRANSACTIONFEE,
REVENUESPLITGIFTFEE.ORGANIZATIONAMOUNT = FEES.ORGANIZATIONFEE,
REVENUESPLITGIFTFEE.WAIVED = FEES.WAIVED,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.REVENUESPLITGIFTFEE
inner join dbo.UFN_REVENUE_GETGIFTFEES_2_FROMITEMLISTXML(@GIFTFEES) FEES
on FEES.ID = REVENUESPLITGIFTFEE.ID
where FEES.FEE <> REVENUESPLITGIFTFEE.FEE
or FEES.WAIVED <> REVENUESPLITGIFTFEE.WAIVED
insert into dbo.REVENUESPLITGIFTFEE(ID, FEE, WAIVED, BASECURRENCYID, ORGANIZATIONAMOUNT, ORGANIZATIONEXCHANGERATEID, TRANSACTIONAMOUNT, TRANSACTIONCURRENCYID, BASEEXCHANGERATEID, CHANGEDBYID, ADDEDBYID, DATECHANGED, DATEADDED)
select ID, FEE, WAIVED, @BASECURRENCYID, ORGANIZATIONFEE, @ORGANIZATIONEXCHANGERATEID, TRANSACTIONFEE, @TRANSACTIONCURRENCYID, @BASEEXCHANGERATEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE
from dbo.UFN_REVENUE_GETGIFTFEES_2_FROMITEMLISTXML(@GIFTFEES) FEES
where not exists(select top 1 ID from REVENUESPLITGIFTFEE where REVENUESPLITGIFTFEE.ID = FEES.ID)
and (FEE > 0 or WAIVED = 1)
update dbo.PAYMENTGIFTFEEOVERRIDE
set
REASONCODEID = @REASONCODEID,
COMMENTS = @COMMENTS,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from
dbo.PAYMENTGIFTFEEOVERRIDE
where
ID = @ID;
--if new then insert data
if @@ROWCOUNT = 0
insert into dbo.PAYMENTGIFTFEEOVERRIDE(ID, REASONCODEID, COMMENTS, ADDEDBYID, CHANGEDBYID, DATECHANGED, DATEADDED)
values(@ID, @REASONCODEID, @COMMENTS, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE)