USP_BATCHMEMBERSHIPDUES_VALIDATIONREPORT_SUMMARY
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_BATCHMEMBERSHIPDUES_VALIDATIONREPORT_SUMMARY
(
@BATCHID uniqueidentifier
)
as
begin
set nocount on;
declare @MULTICURRENCYENABLED bit = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
declare
@ORGANIZATIONISO4217 nvarchar(3),
@ORGANIZATIONDECIMALDIGITS tinyint,
@ORGANIZATIONCURRENCYSYMBOL nvarchar(5),
@ORGANIZATIONSYMBOLDISPLAYSETTINGCODE tinyint;
select
@ORGANIZATIONISO4217 = ISO4217,
@ORGANIZATIONDECIMALDIGITS = DECIMALDIGITS,
@ORGANIZATIONCURRENCYSYMBOL = CURRENCYSYMBOL,
@ORGANIZATIONSYMBOLDISPLAYSETTINGCODE = SYMBOLDISPLAYSETTINGCODE
from dbo.CURRENCY
where ISORGANIZATIONCURRENCY = 1
select
BATCH.BATCHNUMBER
, BATCH.STATUS
, APPUSER.USERNAME as [OWNER]
, BATCH.PROJECTEDNUMBEROFRECORDS
, BATCH.PROJECTEDTOTALAMOUNT
, coalesce((select count(ID) from dbo.BATCHMEMBERSHIPDUES where BATCHID = @BATCHID),0) as [CURRENTNUMBEROFRECORDS]
, coalesce((select sum(TOTALAMOUNT) from dbo.BATCHMEMBERSHIPDUES where BATCHID = @BATCHID),0) as [CURRENTTOTALAMOUNT]
, coalesce((select count(ID) from dbo.BATCHMEMBERSHIPDUES where BATCHID = @BATCHID and REVENUETYPECODE <> 2), 0) AS TOTALPAYMENTCOUNT
, coalesce((select
count(BMD.ID)
from dbo.BATCHMEMBERSHIPDUES BMD
inner join dbo.MEMBERSHIPPROGRAM MP on BMD.MEMBERSHIPPROGRAMID = MP.ID
where
BMD.BATCHID = @BATCHID
and MP.PROGRAMTYPECODE <> 1
and BMD.MEMBERSHIPTRANSACTIONTYPECODE <> 2
and BMD.REVENUETYPECODE <> 0), 0) AS TOTALPLEDGECOUNT
, coalesce((select
count(BMD.ID)
from dbo.BATCHMEMBERSHIPDUES BMD
inner join dbo.MEMBERSHIPPROGRAM MP on BMD.MEMBERSHIPPROGRAMID = MP.ID
where
BMD.BATCHID = @BATCHID
and MP.PROGRAMTYPECODE = 1
and BMD.MEMBERSHIPTRANSACTIONTYPECODE <> 2
), 0) AS TOTALRECURRINGGIFTCOUNT
, coalesce((
select sum(S.ADDONAMOUNT / S.INSTALLMENTS)
from (
select
BMD.ID
, case
when BMD.BASECURRENCYID = BMD.TRANSACTIONCURRENCYID then
sum(MPA.PRICE * BMDA.NUMBEROFADDONS)
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))
end as ADDONAMOUNT
, case BMD.REVENUETYPECODE
when 0 then 1
else I.INSTALLMENTCOUNT
end as INSTALLMENTS
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
where BMD.BATCHID = @BATCHID
group by BMD.ID
) I on I.ID = BMD.ID
where
BMD.BATCHID = @BATCHID
and BMD.REVENUETYPECODE <> 2 -- no pledge only
group by
BMD.BASECURRENCYID
, BMD.TRANSACTIONCURRENCYID
, BMD.ID
, BMD.REVENUETYPECODE
, I.INSTALLMENTCOUNT) S), 0) as TOTALADDONAMOUNT
, coalesce((select SUM(DONATIONAMOUNT) from dbo.BATCHMEMBERSHIPDUES where BATCHID = @BATCHID), 0) as TOTALDONATIONAMOUNT
, @MULTICURRENCYENABLED MULTICURRENCYENABLED
, @ORGANIZATIONISO4217 ORGANIZATIONISO4217
, @ORGANIZATIONDECIMALDIGITS ORGANIZATIONDECIMALDIGITS
, @ORGANIZATIONCURRENCYSYMBOL ORGANIZATIONCURRENCYSYMBOL
, @ORGANIZATIONSYMBOLDISPLAYSETTINGCODE ORGANIZATIONSYMBOLDISPLAYSETTINGCODE
from dbo.BATCH
inner join dbo.BATCHTEMPLATE on BATCHTEMPLATE.ID = BATCH.BATCHTEMPLATEID
inner join dbo.APPUSER on BATCH.APPUSERID = APPUSER.ID
where BATCH.ID = @BATCHID
end