V_QUERY_GIFTSTATUS
Provides information about the status of ongoing recurring gifts and pledges.
Fields
Field | Field Type | Null | Description |
---|---|---|---|
ID | uniqueidentifier | System record ID | |
PLEDGEMISSEDPAYMENTS | int | yes | Pledge missed payments |
PLEDGEMISSEDFIRSTINSTALLMENT | int | yes | Pledge missed first payment |
PLEDGEDURATION | int | yes | Pledge duration |
PLEDGEREMAININGDURATION | int | yes | Pledge remaining duration |
RECURRINGGIFTMISSEDFIRSTPAYMENT | int | yes | Recurring gift missed first payment |
MISSEDPAYMENTS | int | yes | Recurring gift missed payments |
LASTDIRECTDEBITRESULTCODE | nvarchar(10) | yes | Last revenue result code |
LASTDIRECTDEBITISREJECTED | bit | yes | Last revenue is rejected |
Definition
Copy
/*
Generated by Blackbaud AppFx Platform
Date: 8/17/2011 2:35:44 PM
Assembly Version: Blackbaud.AppFx.Platform.SqlClr, Version=2.91.1535.0, Culture=neutral, PublicKeyToken=null
Copyright Blackbaud
*/
CREATE VIEW dbo.V_QUERY_GIFTSTATUS AS
select
REVENUE.ID as ID,
case
when REVENUE.TRANSACTIONTYPECODE = 1 then
dbo.UFN_PLEDGE_GETMISSEDTRANSACTIONCOUNT(REVENUE.ID, getdate())
else
null end as [PLEDGEMISSEDPAYMENTS],
case
when REVENUE.TRANSACTIONTYPECODE = 1 then
(select top 1 case when INSTALLMENTPAYMENT.INSTALLMENTID is null and INSTALLMENT.DATE < getdate() then 1 else 0 end
from dbo.INSTALLMENT
left join dbo.INSTALLMENTPAYMENT
on INSTALLMENT.ID = INSTALLMENTPAYMENT.INSTALLMENTID
where INSTALLMENT.REVENUEID = REVENUE.ID
order by DATE asc)
else
null end as [PLEDGEMISSEDFIRSTINSTALLMENT],
case
when REVENUE.TRANSACTIONTYPECODE = 1 then
datediff(day,coalesce((select min(INSTALLMENT.DATE)
from dbo.INSTALLMENT
where INSTALLMENT.REVENUEID = REVENUE.ID),getdate()),
coalesce((select max(INSTALLMENT.DATE)
from dbo.INSTALLMENT
where INSTALLMENT.REVENUEID = REVENUE.ID),getdate()))
else
null end as [PLEDGEDURATION],
case
when REVENUE.TRANSACTIONTYPECODE = 1 then
datediff(day,coalesce((select case when min(INSTALLMENT.DATE) > getdate() then min(INSTALLMENT.DATE) else getdate() end
from dbo.INSTALLMENT
where INSTALLMENT.REVENUEID = REVENUE.ID),getdate()),
coalesce((select max(INSTALLMENT.DATE)
from dbo.INSTALLMENT
where INSTALLMENT.REVENUEID = REVENUE.ID
and INSTALLMENT.DATE > getdate()),getdate()))
else
null end as [PLEDGEREMAININGDURATION],
case
when REVENUE.TRANSACTIONTYPECODE = 2 then
(select top 1 case when RGA.ID is null then 1 else 0 end
from dbo.REVENUESCHEDULE
left join dbo.RECURRINGGIFTACTIVITY as [RGA]
on REVENUESCHEDULE.ID = [RGA].SOURCEREVENUEID
and REVENUESCHEDULE.STARTDATE = RGA.SCHEDULEDATE
where REVENUESCHEDULE.ID = REVENUE.ID)
else
null end as [RECURRINGGIFTMISSEDFIRSTPAYMENT],
case
when REVENUE.TRANSACTIONTYPECODE = 2 then
dbo.UFN_REVENUE_GETMISSEDTRANSACTIONCOUNT(REVENUE.ID, getdate())
+
dbo.UFN_REVENUE_GETSKIPPEDTRANSACTIONCOUNT(REVENUE.ID, getdate())
else
null end as [MISSEDPAYMENTS],
case
when REVENUE.TRANSACTIONTYPECODE = 1 then
(select top 1 [DIRECTDEBIT].DIRECTDEBITRESULTCODE from
dbo.INSTALLMENT
inner join dbo.INSTALLMENTPAYMENT
on INSTALLMENT.ID = INSTALLMENTPAYMENT.INSTALLMENTID
inner join dbo.REVENUESPLIT
on INSTALLMENTPAYMENT.PAYMENTID = REVENUESPLIT.ID
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUEPAYMENTMETHOD.REVENUEID = REVENUESPLIT.REVENUEID
inner join dbo.DIRECTDEBITPAYMENTMETHODDETAIL as [DIRECTDEBIT]
on [DIRECTDEBIT].ID = REVENUEPAYMENTMETHOD.ID
where INSTALLMENT.REVENUEID = REVENUE.ID
order by INSTALLMENT.DATE desc)
when REVENUE.TRANSACTIONTYPECODE = 2 then
(select top 1 [DIRECTDEBIT].DIRECTDEBITRESULTCODE
from dbo.RECURRINGGIFTACTIVITY as [RGA]
inner join dbo.REVENUESPLIT as [PAYMENT]
on [PAYMENT].ID = [RGA].PAYMENTREVENUEID
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUEPAYMENTMETHOD.REVENUEID = [PAYMENT].REVENUEID
inner join dbo.DIRECTDEBITPAYMENTMETHODDETAIL as [DIRECTDEBIT]
on [DIRECTDEBIT].ID = REVENUEPAYMENTMETHOD.ID
where SOURCEREVENUEID = REVENUE.ID
order by [RGA].SCHEDULEDATE desc)
when REVENUE.TRANSACTIONTYPECODE = 0 then
(select top 1 [DIRECTDEBIT].DIRECTDEBITRESULTCODE
from dbo.REVENUEPAYMENTMETHOD
inner join dbo.DIRECTDEBITPAYMENTMETHODDETAIL as [DIRECTDEBIT]
on [DIRECTDEBIT].ID = REVENUEPAYMENTMETHOD.ID
where REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID)
else
null end as [LASTDIRECTDEBITRESULTCODE],
cast(case
when REVENUE.TRANSACTIONTYPECODE = 1 then
(select top 1 [DIRECTDEBIT].ISREJECTED from
dbo.INSTALLMENT
inner join dbo.INSTALLMENTPAYMENT
on INSTALLMENT.ID = INSTALLMENTPAYMENT.INSTALLMENTID
inner join dbo.REVENUESPLIT
on INSTALLMENTPAYMENT.PAYMENTID = REVENUESPLIT.ID
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUEPAYMENTMETHOD.REVENUEID = REVENUESPLIT.REVENUEID
inner join dbo.DIRECTDEBITPAYMENTMETHODDETAIL as [DIRECTDEBIT]
on [DIRECTDEBIT].ID = REVENUEPAYMENTMETHOD.ID
where INSTALLMENT.REVENUEID = REVENUE.ID
order by INSTALLMENT.DATE desc)
when REVENUE.TRANSACTIONTYPECODE = 2 then
(select top 1 [DIRECTDEBIT].ISREJECTED
from dbo.RECURRINGGIFTACTIVITY as [RGA]
inner join dbo.REVENUESPLIT as [PAYMENT]
on [PAYMENT].ID = [RGA].PAYMENTREVENUEID
inner join dbo.REVENUEPAYMENTMETHOD
on REVENUEPAYMENTMETHOD.REVENUEID = [PAYMENT].REVENUEID
inner join dbo.DIRECTDEBITPAYMENTMETHODDETAIL as [DIRECTDEBIT]
on [DIRECTDEBIT].ID = REVENUEPAYMENTMETHOD.ID
where SOURCEREVENUEID = REVENUE.ID
order by [RGA].SCHEDULEDATE desc)
when REVENUE.TRANSACTIONTYPECODE = 0 then
(select top 1 [DIRECTDEBIT].ISREJECTED
from dbo.REVENUEPAYMENTMETHOD
inner join dbo.DIRECTDEBITPAYMENTMETHODDETAIL as [DIRECTDEBIT]
on [DIRECTDEBIT].ID = REVENUEPAYMENTMETHOD.ID
where REVENUEPAYMENTMETHOD.REVENUEID = REVENUE.ID)
else
0 end as bit) as [LASTDIRECTDEBITISREJECTED]
/*#EXTENSION*/
from dbo.REVENUE