UFN_REVENUEUPDATEBATCH_GETAPPLICATIONINFO

Returns the application info for revenue update batch

Return

Return Type
nvarchar(60)

Parameters

Parameter Parameter Type Mode Description
@ID uniqueidentifier IN

Definition

Copy


  CREATE function dbo.UFN_REVENUEUPDATEBATCH_GETAPPLICATIONINFO
    (
     @ID uniqueidentifier
    )
    returns nvarchar(60)
    with execute as caller
    as
        begin

        declare @REVENUESPLITID uniqueidentifier;
        declare @APPLICATIONINFO nvarchar(60);

        select @REVENUESPLITID = case when (select count(*) from dbo.REVENUESPLIT where REVENUESPLIT.REVENUEID = R.ID) <> 1  then null
                                 else (select ID from dbo.REVENUESPLIT where REVENUESPLIT.REVENUEID = R.ID) end
        from dbo.REVENUE R 
        where R.ID = @ID
        and R.TRANSACTIONTYPECODE = 0

        if @REVENUESPLITID is null 
            begin
                return null;
            end
        else  --look at the split table for the type of payment

            begin
                select @APPLICATIONINFO = 
                    case 
                        when REVENUESPLIT.APPLICATIONCODE = 0 and REVENUESPLIT.TYPECODE = 0 then '0:0' --Donation

                        when REVENUESPLIT.APPLICATIONCODE = 4 and REVENUESPLIT.TYPECODE = 4 then '0:1' --Other

                        when REVENUESPLIT.APPLICATIONCODE = 7 and REVENUESPLIT.TYPECODE = 0 then 
                        isnull (
                            (
                                select top 1 cast(INSTALLMENTSPLITPAYMENT.PLEDGEID as varchar(36))
                                from dbo.INSTALLMENTSPLITPAYMENT where PAYMENTID = REVENUESPLIT.ID
                            ), '0:2' 
                        ) --Applied/Unapplied MG Payment 

                        when REVENUESPLIT.APPLICATIONCODE = 0 and REVENUESPLIT.TYPECODE = 17 then '0:3'--Sponsorship additional donation

                        when REVENUESPLIT.APPLICATIONCODE in (2, 6, 8, 13) and REVENUESPLIT.TYPECODE in (0, 3) then (
                            select top 1 cast(INSTALLMENTSPLITPAYMENT.PLEDGEID as varchar(36))
                            from dbo.INSTALLMENTSPLITPAYMENT where PAYMENTID = REVENUESPLIT.ID
                        ) --Pledge, planned gift, grant award                                                                                                                          

                        when REVENUESPLIT.APPLICATIONCODE = 3 and REVENUESPLIT.TYPECODE in (0,9,17) then (
                            select cast(REVENUE.ID as varchar(36)) 
                            from dbo.REVENUE                                                                                                                              
                                inner join dbo.RECURRINGGIFTACTIVITY on REVENUE.ID = RECURRINGGIFTACTIVITY.SOURCEREVENUEID                                                                                                
                            where RECURRINGGIFTACTIVITY.PAYMENTREVENUEID = REVENUESPLIT.ID) --RG/Sponsorship RG/ Sponsorship recurring additional gift                                                                                                                

                        when REVENUESPLIT.APPLICATIONCODE = 5 and REVENUESPLIT.TYPECODE = 2 then (
                            select cast(MEMBERSHIPTRANSACTION.MEMBERSHIPID as varchar(36))
                            from dbo.MEMBERSHIPTRANSACTION 
                                inner join dbo.MEMBERSHIPLEVELTERM on MEMBERSHIPTRANSACTION.MEMBERSHIPLEVELTERMID = MEMBERSHIPLEVELTERM.ID
                            where REVENUESPLITID = REVENUESPLIT.ID
                        )                                         
                        when REVENUESPLIT.APPLICATIONCODE = 1 and REVENUESPLIT.TYPECODE = 1 then (
                            select cast(EVENTREGISTRANTPAYMENT.REGISTRANTID as varchar(36))
                            from dbo.EVENTREGISTRANTPAYMENT
                            where EVENTREGISTRANTPAYMENT.PAYMENTID = REVENUESPLIT.ID
                        )                                                                                                                                                      
                    end
                from REVENUESPLIT
                where ID = @REVENUESPLITID            
            end

        return @APPLICATIONINFO    
    end