UFN_REVENUE_BUILDSPLITLIST_FORTRANSACTIONID
Builds a semicolon separated list of the splits for a revenue transaction.
Return
Return Type |
---|
nvarchar(max) |
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@REVENUETRANSACTIONID | uniqueidentifier | IN |
Definition
Copy
CREATE function dbo.UFN_REVENUE_BUILDSPLITLIST_FORTRANSACTIONID
(
@REVENUETRANSACTIONID uniqueidentifier
)
returns nvarchar(max)
as
begin
declare @DESIGNATIONS table
(
DESIGNATIONID uniqueidentifier,
DESIGNATION nvarchar(512)
);
declare @REVENUESPLITID uniqueidentifier;
declare @APPLICATIONCODE tinyint;
declare @DESIGNATIONID uniqueidentifier;
declare @DESIGNATION nvarchar(512);
declare REVENUECURSOR cursor local fast_forward for
select ID, APPLICATIONCODE, DESIGNATIONID, dbo.UFN_DESIGNATION_BUILDNAME(REVENUESPLIT.DESIGNATIONID) from dbo.REVENUESPLIT
where REVENUEID = @REVENUETRANSACTIONID;
open REVENUECURSOR;
fetch next from REVENUECURSOR into @REVENUESPLITID, @APPLICATIONCODE, @DESIGNATIONID, @DESIGNATION;
while @@FETCH_STATUS = 0
begin
if @APPLICATIONCODE <> 1 --Not an event registration fee
begin
if (select count(DESIGNATIONID) from @DESIGNATIONS where DESIGNATIONID = @DESIGNATIONID) = 0
insert into @DESIGNATIONS(DESIGNATIONID, DESIGNATION)
values(@DESIGNATIONID, @DESIGNATION);
end
else
begin
--Event registration fee: use the event as the designation
insert into @DESIGNATIONS(DESIGNATIONID, DESIGNATION)
select
[EVENT].ID,
[EVENT].[NAME]
from dbo.EVENTREGISTRANTPAYMENT
inner join dbo.REGISTRANT on REGISTRANT.ID = EVENTREGISTRANTPAYMENT.REGISTRANTID
inner join dbo.[EVENT] on [EVENT].ID = REGISTRANT.EVENTID
where EVENTREGISTRANTPAYMENT.PAYMENTID = @REVENUESPLITID
end
fetch next from REVENUECURSOR into @REVENUESPLITID, @APPLICATIONCODE, @DESIGNATIONID, @DESIGNATION;
end
close REVENUECURSOR;
deallocate REVENUECURSOR;
return coalesce((select dbo.UDA_BUILDLIST(DESIGNATION) from @DESIGNATIONS), N'');
end