UFN_GIFTAIDREVENUESPLIT_CALCULATERECURRINGGIFTTAXCLAIMAMOUNT_INLINE

Calculates tax claim amounts for recurring gifts.

Return

Return Type
table

Definition

Copy


            -- NOTE:  Any changes here should also be made in UFN_GIFTAIDREVENUESPLIT_CALCULATENEXTCLAIMAMOUNT_2.

            CREATE function dbo.UFN_GIFTAIDREVENUESPLIT_CALCULATERECURRINGGIFTTAXCLAIMAMOUNT_INLINE()
            returns table
            as
            return
            (
                select
                    cast(AMOUNT * (TAXRATE / (100 - TAXRATE)) as money) as TAXCLAIMAMOUNT,
                    cast(TRANSACTIONAMOUNT * (TAXRATE / (100 - TAXRATE)) as money) as TRANSACTIONTAXCLAIMAMOUNT,
                    cast(ORGANIZATIONAMOUNT * (TAXRATE / (100 - TAXRATE)) as money) as ORGANIZATIONTAXCLAIMAMOUNT,
                    ID as REVENUESPLITID
                from
                (
                    select
                        (select top 1 coalesce(RATE,0) + coalesce(TRANSITIONALRATE, 0) from dbo.GIFTAIDTAXRATE where EFFECTIVEDATE <= SCHEDULEDATE order by EFFECTIVEDATE desc) as TAXRATE,
                        AMOUNT,
                        TRANSACTIONAMOUNT,
                        ORGANIZATIONAMOUNT,
                        ID
                    from
                    (
                        select 
                            case REVENUESCHEDULE.STATUSCODE
                                when 0 then 
                                    case
                                        when REVENUESCHEDULE.NEXTTRANSACTIONDATE > REVENUESCHEDULE.ENDDATE then REVENUESCHEDULE.ENDDATE 
                                        else REVENUESCHEDULE.NEXTTRANSACTIONDATE
                                    end
                                    else
                                        coalesce((select DATE from dbo.UFN_RECURRINGGIFT_GETNEXTINSTALLMENTINFO(REVENUESPLIT.FINANCIALTRANSACTIONID, null)), getdate())
                            end as SCHEDULEDATE,
                            REVENUESPLIT.BASEAMOUNT as AMOUNT,
                            REVENUESPLIT.TRANSACTIONAMOUNT,
                            REVENUESPLIT.ORGAMOUNT as ORGANIZATIONAMOUNT,
                            REVENUESPLIT.ID
                        from dbo.FINANCIALTRANSACTIONLINEITEM REVENUESPLIT 
                                inner join dbo.REVENUESPLIT_EXT on REVENUESPLIT.ID = REVENUESPLIT_EXT.ID
                                inner join dbo.FINANCIALTRANSACTION REVENUE on REVENUESPLIT.FINANCIALTRANSACTIONID = REVENUE.ID
                                inner join dbo.REVENUE_EXT on REVENUE.ID = REVENUE_EXT.ID
                                inner join dbo.REVENUESCHEDULE on REVENUESCHEDULE.ID = REVENUE.ID
                        where
                            REVENUE.TYPECODE = 2
                                and REVENUESPLIT.DELETEDON is null
                                and REVENUESPLIT.TYPECODE <> 1
                                and REVENUE.DELETEDON is null
                    ) as SCHEDULEDATE
                ) as SCHEDULEWITHTAXRATE
            )