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