V_QUERY_BATCHMEMBERSHIPDUES_EXCEPTIONREPORT

Fields

Field Field Type Null Description
ID uniqueidentifier
ORIGINALBATCHNUMBER nvarchar(100)
BATCHNUMBER nvarchar(100) yes
OWNER nvarchar(128) yes
NAME nvarchar(154) yes
LOOKUPID nvarchar(100) yes
DATE date yes
PAYMENTMETHOD nvarchar(11) yes
MEMBERSHIPTRANSACTIONTYPECODE tinyint
PROGRAMTYPECODE tinyint
REVENUETYPECODE tinyint
TOTALAMOUNT money
DONATIONAMOUNT money
MEMBERSHIPPLEDGEAMOUNT money
ADDONAMOUNT money yes
BATCHID uniqueidentifier
SEQUENCE int
CURRENCYNAME nvarchar(100)
ISO4217 nvarchar(3)
DECIMALDIGITS tinyint
CURRENCYSYMBOL nvarchar(5)
SYMBOLDISPLAYSETTINGCODE tinyint
TRANSACTIONCURRENCYID uniqueidentifier yes

Definition

Copy
/*
Generated by Blackbaud AppFx Platform
Date:  11/11/2014 4:08:33 PM
Assembly Version:  Blackbaud.AppFx.Platform.SqlClr, Version=4.0.2.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE VIEW dbo.V_QUERY_BATCHMEMBERSHIPDUES_EXCEPTIONREPORT AS



select
    BMD.ID
    , [ORIGINAL].BATCHNUMBER as [ORIGINALBATCHNUMBER]
    , BATCH.BATCHNUMBER as [BATCHNUMBER]
    , APPUSER.USERNAME as OWNER
    ,(
            -- There should never be more than 1 row returned from the union but just in case an ID was reused,

            -- in the two tables, "top 1" is used

            select top 1 U.NAME from
            (
                select NAME from dbo.UFN_CONSTITUENT_DISPLAYNAME(BMD.BILLTOCONSTITUENTID) NF
                union
                select NAME from dbo.BATCHREVENUECONSTITUENT where BATCHREVENUECONSTITUENT.ID = BMD.BILLTOCONSTITUENTID
            ) as U
        ) as NAME
    , (select LOOKUPID from dbo.CONSTITUENT where CONSTITUENT.ID = BMD.BILLTOCONSTITUENTID) as LOOKUPID

    , BMD.DATE
    , BMD.PAYMENTMETHOD
    , BMD.MEMBERSHIPTRANSACTIONTYPECODE
    , MP.PROGRAMTYPECODE
    , BMD.REVENUETYPECODE
    , BMD.TOTALAMOUNT
    , BMD.DONATIONAMOUNT
    , BMD.MEMBERSHIPPLEDGEAMOUNT
    , coalesce(S.ADDONAMOUNT, 0) as ADDONAMOUNT 

    , BMD.BATCHID
    , BMD.SEQUENCE

    , CURRENCY.NAME as CURRENCYNAME
    , CURRENCY.ISO4217
    , CURRENCY.DECIMALDIGITS
    , CURRENCY.CURRENCYSYMBOL
    , CURRENCY.SYMBOLDISPLAYSETTINGCODE
    , BMD.TRANSACTIONCURRENCYID
from dbo.BATCHMEMBERSHIPDUES BMD
    inner join dbo.MEMBERSHIPPROGRAM MP on MP.ID = BMD.MEMBERSHIPPROGRAMID
    inner join dbo.CURRENCY on CURRENCY.ID = BMD.TRANSACTIONCURRENCYID   
    inner join dbo.BATCH as ORIGINAL on ORIGINAL.ID = BMD.BATCHID
    inner join dbo.APPUSER on ORIGINAL.APPUSERID = APPUSER.ID
    left join dbo.BATCH on BATCH.ORIGINATINGBATCHID = ORIGINAL.ID
    left join (
        select 
            BMD.ID
            , case
                when BMD.BASECURRENCYID = BMD.TRANSACTIONCURRENCYID then 
                    sum(MPA.PRICE * BMDA.NUMBEROFADDONS) / coalesce(I.INSTALLMENTCOUNT, 1)
                else
                    -- get the exchange rate and then do an immediate conversion. We never look at a rate from the row, even if there is one.

                    dbo.UFN_CURRENCY_CONVERT(sum(MPA.PRICE * BMDA.NUMBEROFADDONS), dbo.UFN_CURRENCYEXCHANGERATE_GETLATEST(BMD.BASECURRENCYID, BMD.TRANSACTIONCURRENCYID, null, 1, null)) / coalesce(I.INSTALLMENTCOUNT, 1)
            end as ADDONAMOUNT
        from dbo.BATCHMEMBERSHIPDUES BMD
            inner join dbo.BATCHMEMBERSHIPDUESMEMBERSHIPROGRAMADDON BMDA on BMD.ID = BMDA.BATCHMEMBERSHIPDUESID
            inner join dbo.MEMBERSHIPPROGRAMADDON MPA on MPA.ADDONID = BMDA.ADDONID and BMD.MEMBERSHIPPROGRAMID = MPA.MEMBERSHIPPROGRAMID
            left join (
                select
                    BMD.ID
                    , COUNT(BPI.ID) as INSTALLMENTCOUNT
                from dbo.BATCHMEMBERSHIPDUES BMD
                    inner join dbo.BATCHMEMBERSHIPDUESPLEDGEINSTALLMENT BPI on BMD.ID = BPI.BATCHMEMBERSHIPDUESID
                group by BMD.ID
            ) I on I.ID = BMD.ID
        where BMD.REVENUETYPECODE <> 2 -- no pledge only

        group by 
            BMD.ID
            , BMD.BASECURRENCYID
            , BMD.TRANSACTIONCURRENCYID
            , I.INSTALLMENTCOUNT
    ) as S on S.ID = BMD.ID