USP_DATALIST_MEMBERSHIPTRANSACTION

Displays a list of membership transactions.

Parameters

Parameter Parameter Type Mode Description
@MEMBERSHIPID uniqueidentifier IN Input parameter indicating the context ID for the data list.
@CURRENCYCODE tinyint IN Currency

Definition

Copy


                CREATE procedure dbo.USP_DATALIST_MEMBERSHIPTRANSACTION
                (
                    @MEMBERSHIPID uniqueidentifier,
                    @CURRENCYCODE tinyint = 1
                )
                as
                    set nocount on;

                    declare @SELECTEDCURRENCYID uniqueidentifier;
                    declare @REVENUEISTRACKEDINANOTHERSYSTEM smallint = 1;

                    if coalesce(@CURRENCYCODE, 2) = 2
                    begin
                        set @SELECTEDCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
                    end

                    select
                        MT.ID,
                        cast(MT.TRANSACTIONDATE as date) as TRANSACTIONDATE,
                        MT.ACTION,
                        case
                            when MT.ACTIONCODE not in (4,6) then
                                case
                                    when ML.OBTAINLEVELCODE = 1 then (select SUM(AMOUNT)
                                                                      from dbo.MEMBERSHIPPROGRAMCONTRIBUTIONREVENUE
                                                                      where (ORIGINALMEMBERSHIPTRANSACTIONID = MT.ID))
                                    else MEMBERSHIPTRANSACTIONAMOUNT.AMOUNT + MEMBERSHIPTRANSACTIONAMOUNT.ADDONAMOUNT
                                end
                            else null
                        end as AMOUNT,
                        ML.NAME,
                        case MP.PROGRAMTYPECODE
                            when 0 then cast(TERM.TERMTIMELENGTH as nvarchar(5)) + ' ' + TERM.TERMLENGTH
                            when 1 then TERM.RECURRINGPAYMENTOPTION
                            when 2 then case when TERM.LIFETIMEPAYMENTOPTIONCODE = 0 then TERM.LIFETIMEPAYMENTOPTION
                                else cast((select count(ID) from dbo.INSTALLMENT where REVENUEID = FT.ID) as nvarchar(5)) + ' ' + RSC.FREQUENCY
                                end
                            end as TERM,
                        cast(MT.EXPIRATIONDATE as date) as EXPIRATIONDATE,
                        case FT.TYPECODE
                            when 5 then dbo.UFN_SALESORDER_GETPAYMENTMETHODLIST(SALESORDER.ID)
                            else REVENUEPAYMENTMETHOD.PAYMENTMETHOD
                        end as DESCRIPTION,
                        MT.ISGIFT,
                        GIVENBYID_NF.NAME GIVENBYID,
                        FTL.ID as REVENUESPLITID,
                        case @CURRENCYCODE
                            when 0 then FT.TRANSACTIONCURRENCYID
                            else
                            case MP.WHEREISREVENUETRACKEDCODE
                                        when @REVENUEISTRACKEDINANOTHERSYSTEM then TERM.BASECURRENCYID
                                        else coalesce(@SELECTEDCURRENCYID, isnull(R.NONPOSTABLEBASECURRENCYID, CURRENCYSET.BASECURRENCYID))
                                end
                        end as SELECTEDCURRENCYID,
                        TIER.DESCRIPTION as TIER,
                        CONSTITUENTID_NF.NAME CONSTITUENT,
                        dbo.UFN_DESIGNATION_BUILDNAME(RS.DESIGNATIONID) as DESIGNATION,
                        dbo.UFN_APPEAL_GETNAME(R.APPEALID) as APPEAL,
                        FT.CONSTITUENTID,
                        FT.ID as REVENUEID,
                        case when FTL.ID is null
                            then (select SALESORDERID from dbo.SALESORDERITEMMEMBERSHIP inner join dbo.SALESORDERITEM on SALESORDERITEM.ID = SALESORDERITEMMEMBERSHIP.ID where SALESORDERITEMMEMBERSHIP.MEMBERSHIPTRANSACTIONID = MT.ID)
                        else
                            null
                        end as ZERODOLLARSALESORDERID,
                        MT.ACTIONCODE
                    from dbo.MEMBERSHIPTRANSACTION MT
                        inner join dbo.MEMBERSHIPLEVELTERM TERM on TERM.ID = MT.MEMBERSHIPLEVELTERMID
                        inner join dbo.MEMBERSHIPLEVEL ML on ML.ID = MT.MEMBERSHIPLEVELID 
                        inner join dbo.MEMBERSHIPPROGRAM MP on MP.ID = ML.MEMBERSHIPPROGRAMID
                        inner join dbo.MEMBERSHIP M on M.ID = MT.MEMBERSHIPID
                        left join dbo.FINANCIALTRANSACTIONLINEITEM FTL on MT.REVENUESPLITID = FTL.ID
                        left join dbo.REVENUESPLIT_EXT RS on RS.ID = FTL.ID
                        left join dbo.FINANCIALTRANSACTION FT on FTL.FINANCIALTRANSACTIONID = FT.ID
                        left join dbo.REVENUESCHEDULE RSC on FT.ID = RSC.ID
                        left join dbo.REVENUE_EXT R on R.ID = FT.ID
                        left join dbo.PDACCOUNTSYSTEM on FT.PDACCOUNTSYSTEMID = PDACCOUNTSYSTEM.ID
                        left join dbo.CURRENCYSET on PDACCOUNTSYSTEM.CURRENCYSETID = CURRENCYSET.ID
                        left join dbo.TIERCODE TIER on ML.TIERCODEID = TIER.ID
                        left join dbo.REVENUEPAYMENTMETHOD on FT.ID = REVENUEPAYMENTMETHOD.REVENUEID
                        left join dbo.SALESORDER on SALESORDER.REVENUEID = FT.ID
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(MT.DONORID) GIVENBYID_NF
                        outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(FT.CONSTITUENTID) CONSTITUENTID_NF
                        outer apply dbo.UFN_MEMBERSHIPTRANSACTION_AMOUNT(MT.ID, @CURRENCYCODE) as MEMBERSHIPTRANSACTIONAMOUNT
                    where
                        MT.MEMBERSHIPID = @MEMBERSHIPID
                        and FT.DELETEDON is null
                        and FTL.DELETEDON is null
                        and coalesce(FTL.TYPECODE,0) <> 1
                    order by MT.TRANSACTIONDATE, MT.DATEADDED asc