UFN_REVENUE_BUILDSPLITLIST_FORBATCHREVENUEID

Returns a text-list of all of the splits for a row in a revenue batch.

Return

Return Type
nvarchar(max)

Parameters

Parameter Parameter Type Mode Description
@BATCHREVENUEID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_REVENUE_BUILDSPLITLIST_FORBATCHREVENUEID
            (
                @BATCHREVENUEID uniqueidentifier
            )
            returns nvarchar(max)
            as
            begin
                --Designations for a batch row can come from three places: 

                --The BATCHREVENUESPLIT table for the 'Payment' portion of the batch row

                --The REVENUESPLIT table for the REVENUEID from the BATCHREVENUEAPPLICATION table for the pledge/etc. splits

                --The EVENT table for the REGISTRANT for from the BATCHREVENUEAPPLICATION table for the event.


                declare @DESIGNATIONS table
                (
                    DESIGNATIONID uniqueidentifier,
                    DESIGNATION nvarchar(512)
                );

                insert into @DESIGNATIONS(DESIGNATIONID, DESIGNATION)
                select D.DESIGNATIONID, isnull(D.NAME, dbo.UFN_DESIGNATION_BUILDNAME(D.DESIGNATIONID)) [DESIGNATION]
                from (
                    select SINGLEDESIGNATIONID [DESIGNATIONID], null [NAME]
                    from dbo.BATCHREVENUE where BATCHREVENUE.ID = @BATCHREVENUEID
                    and BATCHREVENUE.AMOUNT > (select coalesce(sum(APPLIED), 0) from dbo.BATCHREVENUEAPPLICATION where BATCHREVENUEID = @BATCHREVENUEID)

                    union all

                    select [SPLIT].DESIGNATIONID, null
                    from dbo.BATCHREVENUESPLIT as [SPLIT] where [SPLIT].BATCHREVENUEID = @BATCHREVENUEID

                    union all

                    select SPLIT.DESIGNATIONID, null
                    from dbo.BATCHREVENUEADDITIONALAPPLICATIONS SPLIT
                    where SPLIT.BATCHREVENUEID = @BATCHREVENUEID and SPLIT.APPLIED > 0

                    union all

                    select REVENUESPLIT_EXT.DESIGNATIONID, null
                    from dbo.BATCHREVENUEAPPLICATION APP
                    inner join dbo.FINANCIALTRANSACTIONLINEITEM LI on LI.FINANCIALTRANSACTIONID = APP.REVENUEID
                    inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT_EXT.ID = LI.ID
                    where APP.BATCHREVENUEID = @BATCHREVENUEID and LI.DELETEDON is null and LI.TYPECODE != 1 and APP.APPLICATIONTYPECODE = 0
                        and APP.APPLIED > 0

                    union all

                    select EVENT.ID, EVENT.NAME
                    from dbo.BATCHREVENUEAPPLICATION APP
                    inner join dbo.REGISTRANT on REGISTRANT.ID = APP.REGISTRANTID
                    inner join dbo.EVENT on EVENT.ID = REGISTRANT.EVENTID
                    where APP.BATCHREVENUEID = @BATCHREVENUEID and APP.APPLICATIONTYPECODE = 1
                        and APP.APPLIED > 0

                    union all

                    select SPLIT.DESIGNATIONID, null
                    from dbo.BATCHREVENUEAPPLICATION APP
                    inner join dbo.BATCHREVENUEAPPLICATIONPLEDGESPLIT SPLIT on SPLIT.BATCHREVENUEAPPLICATIONPLEDGEID = APP.BATCHREVENUEAPPLICATIONPLEDGEID
                    where APP.BATCHREVENUEID = @BATCHREVENUEID and APP.APPLICATIONTYPECODE = 2
                        and APP.APPLIED > 0
                ) D
                group by D.DESIGNATIONID, D.NAME

                return coalesce((select dbo.UDA_BUILDLIST(DESIGNATION) from @DESIGNATIONS), N'');
            end