UFN_REVENUE_GENERATEDEFAULTGIFTFEES
Returns all default gift fees for a given revenue transaction.
Return
Return Type |
---|
table |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUEID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_GENERATEDEFAULTGIFTFEES(
@REVENUEID uniqueidentifier,
@CONSTITUENTID uniqueidentifier)
returns @GIFTFEES table
(ID uniqueidentifier,
FEE money,
WAIVED bit,
SPLITRECEIPTAMOUNT money,
BASECURRENCYID uniqueidentifier,
ORGANIZATIONAMOUNT money,
ORGANIZATIONEXCHANGERATEID uniqueidentifier,
TRANSACTIONAMOUNT money,
TRANSACTIONCURRENCYID uniqueidentifier,
BASEEXCHANGERATEID uniqueidentifier)
AS
begin
--Do nothing if this is turned off.
if dbo.UFN_GIFTFEE_ENABLED() = 0
return;
declare @LINEITEMAMOUNTSTOTALWITHGIFTFEES money;
declare @TOTALAMOUNT money;
declare @RECEIPTAMOUNT money;
declare @BASECURRENCYID uniqueidentifier;
declare @ORGANIZATIONAMOUNT money;
declare @TRANSACTIONCURRENCYID uniqueidentifier;
declare @BASEEXCHANGERATEID uniqueidentifier;
declare @ORGANIZATIONEXCHANGERATEID uniqueidentifier;
declare @SPLITSXML xml = null;
declare @SPLITS table
(
ID uniqueidentifier,
TRANSACTIONAMOUNT money,
APPLICATIONCODE int,
DESIGNATIONLEVELID uniqueidentifier,
AMOUNT money,
RECEIPTAMOUNT money,
ORGANIZATIONAMOUNT money,
BASECURRENCYID uniqueidentifier,
TRANSACTIONCURRENCYID uniqueidentifier,
BASEEXCHANGERATEID uniqueidentifier,
ORGANIZATIONEXCHANGERATEID uniqueidentifier
);
insert into @SPLITS
select
REVENUESPLIT.ID,
REVENUESPLIT.TRANSACTIONAMOUNT,
REVENUESPLIT.APPLICATIONCODE,
coalesce(DESIGNATION.DESIGNATIONLEVEL5ID, DESIGNATION.DESIGNATIONLEVEL4ID, DESIGNATION.DESIGNATIONLEVEL3ID, DESIGNATION.DESIGNATIONLEVEL2ID, DESIGNATION.DESIGNATIONLEVEL2ID, DESIGNATION.DESIGNATIONLEVEL1ID) AS DESIGNATIONLEVELID,
REVENUE.AMOUNT,
REVENUE.RECEIPTAMOUNT,
REVENUE.ORGANIZATIONAMOUNT,
REVENUE.BASECURRENCYID,
REVENUE.TRANSACTIONCURRENCYID,
REVENUE.BASEEXCHANGERATEID,
REVENUE.ORGANIZATIONEXCHANGERATEID
from dbo.REVENUESPLIT
inner join dbo.REVENUE on REVENUESPLIT.REVENUEID = REVENUE.ID
left outer join dbo.DESIGNATION on REVENUESPLIT.DESIGNATIONID = DESIGNATION.ID
where REVENUE.ID = @REVENUEID and
( (REVENUESPLIT.APPLICATIONCODE <> 10 and exists (select APPLICATIONCODE from dbo.GIFTFEEAPPLICATIONTYPE where APPLICATIONCODE = REVENUESPLIT.APPLICATIONCODE)) or
(REVENUESPLIT.APPLICATIONCODE = 10 and exists (select APPLICATIONCODE from dbo.GIFTFEEAPPLICATIONTYPE where APPLICATIONCODE = case REVENUESPLIT.TYPECODE
when 0 then 0 -- Donation
when 1 then 1 -- Event registration
when 2 then 5 -- Membership
end))
)
select @LINEITEMAMOUNTSTOTALWITHGIFTFEES = sum(TRANSACTIONAMOUNT) from @SPLITS;
select @TOTALAMOUNT = AMOUNT from @SPLITS;
select @RECEIPTAMOUNT = RECEIPTAMOUNT from @SPLITS;
select @ORGANIZATIONAMOUNT = ORGANIZATIONAMOUNT from @SPLITS;
select @BASECURRENCYID = BASECURRENCYID from @SPLITS;
select @TRANSACTIONCURRENCYID = TRANSACTIONCURRENCYID from @SPLITS;
select @BASEEXCHANGERATEID = BASEEXCHANGERATEID from @SPLITS;
select @ORGANIZATIONEXCHANGERATEID = ORGANIZATIONEXCHANGERATEID from @SPLITS;
set @SPLITSXML = (select
ID,
TRANSACTIONAMOUNT,
APPLICATIONCODE,
DESIGNATIONLEVELID
from @SPLITS order by ID
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64);
insert into @GIFTFEES
select
ID,
FEE,
WAIVED,
SPLITRECEIPTAMOUNT,
BASECURRENCYID,
ORGANIZATIONAMOUNT,
ORGANIZATIONEXCHANGERATEID,
TRANSACTIONAMOUNT,
TRANSACTIONCURRENCYID,
BASEEXCHANGERATEID
from dbo.UFN_REVENUE_GENERATEDEFAULTGIFTFEESWITHTRANSACTIONAMOUNT_3(@REVENUEID,
@CONSTITUENTID,
null, --PAYMENTMETHOD
@TOTALAMOUNT,
@RECEIPTAMOUNT,
@BASECURRENCYID,
@TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID,
@ORGANIZATIONEXCHANGERATEID,
@SPLITSXML,
@ORGANIZATIONAMOUNT);
return;
end