UFN_SITEID_MAPFROM_REVENUESPLITID

Maps a REVENUESPLITID to a SITEID

Return

Return Type
table

Parameters

Parameter Parameter Type Mode Description
@REVENUESPLITID uniqueidentifier IN

Definition

Copy


            CREATE function dbo.UFN_SITEID_MAPFROM_REVENUESPLITID
            (
                @REVENUESPLITID uniqueidentifier
            )
            returns table
            as
            return 
            (

                /*This has been purposely condensed to one sql statement so that it will be an inline function*/
                /*Note that the joins short circuit based on application code*/

                select case 
                        when REVENUESPLIT_EXT.APPLICATIONCODE=1 then EVENTSITE.SITEID
                        when REVENUESPLIT_EXT.APPLICATIONCODE=5 then MEMBERSHIPPROGRAM.SITEID
            when REVENUESPLIT_EXT.APPLICATIONCODE=3 and REVENUESPLIT_EXT.TYPECODE = 2 then  (select top 1 MEMBERSHIPPROGRAM.SITEID 
                                                                                             from dbo.RECURRINGGIFTACTIVITY 
                                                                                             inner join dbo.FINANCIALTRANSACTION on FINANCIALTRANSACTION.ID = RECURRINGGIFTACTIVITY.SOURCEREVENUEID
                                                                                             inner join dbo.FINANCIALTRANSACTIONLINEITEM on FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID = FINANCIALTRANSACTION.ID
                                                                                             inner join dbo.MEMBERSHIPTRANSACTION on FINANCIALTRANSACTIONLINEITEM.ID = MEMBERSHIPTRANSACTION.REVENUESPLITID
                                                                                             inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                                                                                                       inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
                                                                                             where RECURRINGGIFTACTIVITY.PAYMENTREVENUEID = @REVENUESPLITID)
            when REVENUESPLIT_EXT.APPLICATIONCODE=18 then (select top 1 MEMBERSHIPPROGRAM.SITEID 
                                                           from dbo.MEMBERSHIPADDON
                                                                     inner join dbo.MEMBERSHIP on MEMBERSHIP.ID = MEMBERSHIPADDON.MEMBERSHIPID
                                                           inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPLEVEL.ID = MEMBERSHIP.MEMBERSHIPLEVELID
                                                           inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
                                                           where MEMBERSHIPADDON.REVENUESPLITID = @REVENUESPLITID)
                        when REVENUESPLIT_EXT.APPLICATIONCODE = 19 then (select top 1 MEMBERSHIPPROGRAM.SITEID
                                                                            from dbo.INSTALLMENTSPLITPAYMENT
                                                                            inner join dbo.FINANCIALTRANSACTIONLINEITEM on INSTALLMENTSPLITPAYMENT.PLEDGEID = FINANCIALTRANSACTIONLINEITEM.FINANCIALTRANSACTIONID
                                                                            inner join dbo.MEMBERSHIPTRANSACTION on FINANCIALTRANSACTIONLINEITEM.ID = MEMBERSHIPTRANSACTION.REVENUESPLITID
                                                                            inner join dbo.MEMBERSHIPLEVEL on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                                                                            inner join dbo.MEMBERSHIPPROGRAM on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
                                                                            where INSTALLMENTSPLITPAYMENT.PAYMENTID = @REVENUESPLITID)
                        when REVENUESPLIT_EXT.APPLICATIONCODE=11 then null    
                        else    
                        (    
                            -- Note: Update UFN_SITEID_MAPFROM_DESIGNATIONID if the below logic is changed

                            select top 1 coalesce(DL5.SITEID, DL4.SITEID, DL3.SITEID, DL2.SITEID, DL1.SITEID)    
                            from dbo.DESIGNATION     
                            left join dbo.DESIGNATIONLEVEL DL1 on DL1.ID = DESIGNATION.DESIGNATIONLEVEL1ID    
                            left join dbo.DESIGNATIONLEVEL DL2 on DL2.ID = DESIGNATION.DESIGNATIONLEVEL2ID    
                            left join dbo.DESIGNATIONLEVEL DL3 on DL3.ID = DESIGNATION.DESIGNATIONLEVEL3ID    
                            left join dbo.DESIGNATIONLEVEL DL4 on DL4.ID = DESIGNATION.DESIGNATIONLEVEL4ID    
                            left join dbo.DESIGNATIONLEVEL DL5 on DL5.ID = DESIGNATION.DESIGNATIONLEVEL5ID    
                            where DESIGNATION.ID = REVENUESPLIT_EXT.DESIGNATIONID          
                        )    
                        end as [SITEID]
                from dbo.FINANCIALTRANSACTIONLINEITEM
                inner join dbo.REVENUESPLIT_EXT on FINANCIALTRANSACTIONLINEITEM.ID = REVENUESPLIT_EXT.ID
                    left outer join dbo.EVENTREGISTRANTPAYMENT on REVENUESPLIT_EXT.APPLICATIONCODE = 1 and EVENTREGISTRANTPAYMENT.PAYMENTID = FINANCIALTRANSACTIONLINEITEM.ID
                    left outer join dbo.REGISTRANT on EVENTREGISTRANTPAYMENT.REGISTRANTID = REGISTRANT.ID
                    left outer join dbo.EVENTSITE on REGISTRANT.EVENTID = EVENTSITE.EVENTID
                    left outer join dbo.MEMBERSHIPTRANSACTION on REVENUESPLIT_EXT.APPLICATIONCODE = 5 and FINANCIALTRANSACTIONLINEITEM.ID = MEMBERSHIPTRANSACTION.REVENUESPLITID
                    left outer join dbo.MEMBERSHIPLEVEL on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELID = MEMBERSHIPLEVEL.ID
                    left outer join dbo.MEMBERSHIPPROGRAM on MEMBERSHIPLEVEL.MEMBERSHIPPROGRAMID = MEMBERSHIPPROGRAM.ID
                where FINANCIALTRANSACTIONLINEITEM.ID = @REVENUESPLITID

                union all

                --Return all sites assigned to the account system for misc payments.

                select S.SITEID
                from dbo.FINANCIALTRANSACTIONLINEITEM LI
                inner join dbo.REVENUESPLIT_EXT EXT on EXT.ID = LI.ID
                inner join dbo.FINANCIALTRANSACTION FT on FT.ID = LI.FINANCIALTRANSACTIONID
                inner join dbo.PDACCOUNTSYSTEMSITE S on S.PDACCOUNTSYSTEMID = FT.PDACCOUNTSYSTEMID
                where EXT.APPLICATIONCODE = 11 and LI.ID = @REVENUESPLITID

            )