USP_BATCHMEMBERSHIPDUES_VALIDATIONREPORT

Parameters

Parameter Parameter Type Mode Description
@BATCHID uniqueidentifier IN

Definition

Copy


CREATE procedure dbo.USP_BATCHMEMBERSHIPDUES_VALIDATIONREPORT
(
    @BATCHID uniqueidentifier
)
as
begin
    set nocount on;

    select
        NAME
        , LOOKUPID
        , DATE
        , TOTALAMOUNT
        , PAYMENTMETHOD
        , REVENUETYPE
        , PROGRAMNAME
        , LEVELNAME
        , ISO4217
        , DECIMALDIGITS
        , CURRENCYSYMBOL
        , SYMBOLDISPLAYSETTINGCODE
    from 
    (
        select 
            coalesce(CONSTITUENT_NF.NAME, BATCHREVENUECONSTITUENT.NAME) NAME
            , coalesce(c.LOOKUPID, '') as LOOKUPID
            , BMD.DATE
            , BMD.TOTALAMOUNT
            , BMD.PAYMENTMETHOD
            , 'Payment' as REVENUETYPE
            , MP.NAME PROGRAMNAME
            , ML.NAME LEVELNAME
            , CURRENCY.ISO4217
            , CURRENCY.DECIMALDIGITS
            , CURRENCY.CURRENCYSYMBOL
            , CURRENCY.SYMBOLDISPLAYSETTINGCODE
            , BMD.SEQUENCE
        from dbo.BATCHMEMBERSHIPDUES BMD
            inner join dbo.MEMBERSHIPPROGRAM MP on MP.ID = BMD.MEMBERSHIPPROGRAMID
            inner join dbo.MEMBERSHIPLEVEL ML on ML.ID = BMD.MEMBERSHIPLEVELID
            left join dbo.CONSTITUENT C on C.ID = BMD.BILLTOCONSTITUENTID
            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(c.ID) CONSTITUENT_NF
            left join dbo.BATCHREVENUECONSTITUENT on BATCHREVENUECONSTITUENT.ID = BMD.BILLTOCONSTITUENTID
            inner join dbo.CURRENCY on CURRENCY.ID = BMD.TRANSACTIONCURRENCYID
        where 
            BMD.REVENUETYPECODE <> 2 -- not pledge only

            and BMD.BATCHID = @BATCHID
        union all
        select 
            coalesce(CONSTITUENT_NF.NAME, BATCHREVENUECONSTITUENT.NAME) NAME
            , coalesce(c.LOOKUPID, '') as LOOKUPID
            , BMD.DATE
            , case MP.PROGRAMTYPECODE
                when 1 then BMD.TOTALAMOUNT
                else BMD.MEMBERSHIPPLEDGEAMOUNT
            end as TOTALAMOUNT
            , BMD.PAYMENTMETHOD 
            , case MP.PROGRAMTYPECODE
                when 1 then 'Recurring Gift'
                else 'Installment Plan' 
            end as REVENUETYPE
            , MP.NAME PROGRAMNAME
            , ML.NAME LEVELNAME
            , CURRENCY.ISO4217
            , CURRENCY.DECIMALDIGITS
            , CURRENCY.CURRENCYSYMBOL
            , CURRENCY.SYMBOLDISPLAYSETTINGCODE
            , BMD.SEQUENCE
        from dbo.BATCHMEMBERSHIPDUES BMD
            inner join dbo.MEMBERSHIPPROGRAM MP on MP.ID = BMD.MEMBERSHIPPROGRAMID
            inner join dbo.MEMBERSHIPLEVEL ML on ML.ID = BMD.MEMBERSHIPLEVELID
            left join dbo.CONSTITUENT C on C.ID = BMD.BILLTOCONSTITUENTID
            outer apply dbo.UFN_CONSTITUENT_DISPLAYNAME(c.ID) CONSTITUENT_NF
            left join dbo.BATCHREVENUECONSTITUENT on BATCHREVENUECONSTITUENT.ID = BMD.BILLTOCONSTITUENTID
            inner join dbo.CURRENCY on CURRENCY.ID = BMD.TRANSACTIONCURRENCYID
        where 
            (BMD.REVENUETYPECODE <> 0 or MP.PROGRAMTYPECODE = 1) -- not pay in full or is a recurring program

            and BMD.MEMBERSHIPTRANSACTIONTYPECODE <> 2 -- not pay membership

            and BMD.BATCHID = @BATCHID
    ) S
    order by S.SEQUENCE;
end;