UFN_REVENUEBATCH_PAYMENTSPLIT_CONVERTAMOUNTSINXML
Fills in multicurrency fields in the given splits XML.
Return
Return Type |
---|
xml |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@PAYMENTREVENUESPLITS | xml | IN | |
@BASECURRENCYID | uniqueidentifier | IN | |
@ORGANIZATIONEXCHANGERATEID | uniqueidentifier | IN | |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | |
@BASEEXCHANGERATEID | uniqueidentifier | IN |
Definition
Copy
create function dbo.UFN_REVENUEBATCH_PAYMENTSPLIT_CONVERTAMOUNTSINXML(
@PAYMENTREVENUESPLITS xml,
@BASECURRENCYID uniqueidentifier,
@ORGANIZATIONEXCHANGERATEID uniqueidentifier,
@TRANSACTIONCURRENCYID uniqueidentifier,
@BASEEXCHANGERATEID uniqueidentifier
)
returns xml
as
begin
--This function is a copy of UFN_REVENUESPLIT_CONVERTAMOUNTSINXML, but it returns all of the columns found in the
--@PAYMENTREVENUESPLITS variable in USP_REVENUEBATCHCOMMIT_SPLITSWITHCHILDREN_ADDFROMXML
declare @ORGANIZATIONCURRENCYID uniqueidentifier = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
declare @ORGANIZATIONAMOUNTORIGINCODE tinyint = 0;
select @ORGANIZATIONAMOUNTORIGINCODE = coalesce(ORGANIZATIONAMOUNTORIGINCODE,0) from dbo.MULTICURRENCYCONFIGURATION;
declare @SPLITS table
(
ID uniqueidentifier,
APPLICATIONCODE tinyint,
TYPECODE tinyint,
AMOUNT money,
DESIGNATIONID uniqueidentifier,
CATEGORYCODEID uniqueidentifier,
OTHERTYPECODEID uniqueidentifier,
DECLINESGIFTAID bit,
OPPORTUNITYID uniqueidentifier,
ISGIFTAIDSPONSORSHIP bit,
CAMPAIGNS xml
);
insert into @SPLITS
select
T.c.value('(ID)[1]','uniqueidentifier') ID,
T.c.value('(APPLICATIONCODE)[1]','tinyint') APPLICATIONCODE,
T.c.value('(TYPECODE)[1]','tinyint') TYPECODE,
T.c.value('(AMOUNT)[1]','money') AMOUNT,
T.c.value('(DESIGNATIONID)[1]','uniqueidentifier') DESIGNATIONID,
T.c.value('(CATEGORYCODEID)[1]','uniqueidentifier') CATEGORYCODEID,
T.c.value('(OTHERTYPECODEID)[1]','uniqueidentifier') OTHERTYPECODEID,
T.c.value('(DECLINESGIFTAID)[1]','bit') DECLINESGIFTAID,
coalesce(T.c.value('(OPPORTUNITYID)[1]','uniqueidentifier'), null) OPPORTUNITYID,
T.c.value('(ISGIFTAIDSPONSORSHIP)[1]','bit') ISGIFTAIDSPONSORSHIP,
case when T.c.exist('./CAMPAIGNS/ITEM') = 1 then T.c.query('(CAMPAIGNS/ITEM)') else null end as CAMPAIGNS
from @PAYMENTREVENUESPLITS.nodes('/SPLITS/ITEM') T(c)
return (
select
ID,
APPLICATIONCODE,
TYPECODE,
BASEAMOUNT AMOUNT,
DESIGNATIONID,
CATEGORYCODEID,
CAMPAIGNS,
OPPORTUNITYID,
OTHERTYPECODEID,
DECLINESGIFTAID,
ISGIFTAIDSPONSORSHIP,
@BASECURRENCYID BASECURRENCYID,
case
when @ORGANIZATIONAMOUNTORIGINCODE = 1
then case
when @TRANSACTIONCURRENCYID <> @ORGANIZATIONCURRENCYID
then dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(BASEAMOUNT, @ORGANIZATIONEXCHANGERATEID, AMOUNT)
else AMOUNT
end
else
case
when @BASECURRENCYID <> @ORGANIZATIONCURRENCYID
then dbo.UFN_CURRENCY_CONVERTTOORGANIZATIONCURRENCY(BASEAMOUNT, @ORGANIZATIONEXCHANGERATEID, AMOUNT)
else BASEAMOUNT
end
end ORGANIZATIONAMOUNT,
@ORGANIZATIONEXCHANGERATEID ORGANIZATIONEXCHANGERATEID,
AMOUNT TRANSACTIONAMOUNT,
@TRANSACTIONCURRENCYID TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID BASEEXCHANGERATEID
from(
select
ID,
APPLICATIONCODE,
TYPECODE,
AMOUNT,
DESIGNATIONID,
CATEGORYCODEID,
OTHERTYPECODEID,
DECLINESGIFTAID,
OPPORTUNITYID,
ISGIFTAIDSPONSORSHIP,
CAMPAIGNS,
case
when @TRANSACTIONCURRENCYID <> @BASECURRENCYID
then dbo.UFN_CURRENCY_CONVERT(AMOUNT, @BASEEXCHANGERATEID)
else AMOUNT
end BASEAMOUNT
from @SPLITS
) SPLITS
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
)
end