USP_BATCHMEMBERSHIPDUES_CONTROLREPORT_SUMMARY
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_BATCHMEMBERSHIPDUES_CONTROLREPORT_SUMMARY
(
@BATCHID uniqueidentifier
)
with execute as owner
as
begin
set nocount on;
declare @MULTICURRENCYENABLED bit = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
declare
@ORGANIZATIONISO4217 nvarchar(3),
@ORGANIZATIONDECIMALDIGITS tinyint,
@ORGANIZATIONCURRENCYSYMBOL nvarchar(5),
@ORGANIZATIONSYMBOLDISPLAYSETTINGCODE tinyint;
declare @BATCHNUMBER nvarchar(100);
select @BATCHNUMBER = BATCH.BATCHNUMBER
from dbo.BATCH
where BATCH.ID = @BATCHID;
select
@ORGANIZATIONISO4217 = ISO4217,
@ORGANIZATIONDECIMALDIGITS = DECIMALDIGITS,
@ORGANIZATIONCURRENCYSYMBOL = CURRENCYSYMBOL,
@ORGANIZATIONSYMBOLDISPLAYSETTINGCODE = SYMBOLDISPLAYSETTINGCODE
from dbo.CURRENCY
where ISORGANIZATIONCURRENCY = 1;
declare @BATCHTABLE nvarchar(128)
set @BATCHTABLE = dbo.UFN_BATCH_GETREPORTTABLENAME(@BATCHID, 0);
declare @COUNT as integer = 0;
declare @SQL as nvarchar(max) ='
set nocount on;
select @COUNT = COUNT(ID)
from ' + @BATCHTABLE
exec sp_executesql @SQL, N'@COUNT integer output', @COUNT = @COUNT output;
declare @SQLTOEXEC nvarchar(max) = N'set nocount on;
with FT_CTE as (
select
FT.ID
, S.ISPLEDGE
, S.ISRECURRINGGIFT
, S.ISPAYMENT
from dbo.FINANCIALTRANSACTION FT
inner join (
select
O.ID as ID
, case O.TYPECODE when 15 then 1 else 0 end as ISPLEDGE
, case O.TYPECODE when 2 then 1 else 0 end as ISRECURRINGGIFT
, case O.TYPECODE when 0 then 1 else 0 end as ISPAYMENT
from ' + @BATCHTABLE + ' O
union
select
o.PARENTID as ID
, case O.PARENTTYPECODE when 15 then 1 else 0 end as ISPLEDGE
, case O.PARENTTYPECODE when 2 then 1 else 0 end as ISRECURRINGGIFT
, 0 ISPAYMENT
from ' + @BATCHTABLE + ' O
inner join dbo.REVENUE_EXT on O.PARENTID = REVENUE_EXT.ID
where o.PARENTID is not null and REVENUE_EXT.BATCHNUMBER = @BATCHNUMBER
) S on FT.ID = S.ID
)
select
b.BATCHNUMBER
, b.STATUS
, EXCEPTIONBATCH.BATCHNUMBER EXCEPTIONBATCHNAME
, a.USERNAME as OWNER
, B.PROJECTEDNUMBEROFRECORDS
, B.PROJECTEDTOTALAMOUNT
, @COUNT as CURRENTNUMBEROFRECORDS
, sum(T.ISPAYMENT) as TOTALPAYMENTCOUNT
, sum(T.ISPLEDGE) as TOTALPLEDGECOUNT
, sum(T.ISRECURRINGGIFT) as TOTALRECURRINGGIFTCOUNT
, @MULTICURRENCYENABLED MULTICURRENCYENABLED
, @ORGANIZATIONISO4217 ORGANIZATIONISO4217
, @ORGANIZATIONDECIMALDIGITS ORGANIZATIONDECIMALDIGITS
, @ORGANIZATIONCURRENCYSYMBOL ORGANIZATIONCURRENCYSYMBOL
, @ORGANIZATIONSYMBOLDISPLAYSETTINGCODE ORGANIZATIONSYMBOLDISPLAYSETTINGCODE
from FT_CTE T
inner join dbo.FINANCIALTRANSACTION FT on T.ID = FT.ID
inner join dbo.BATCH B on B.ID = @BATCHID
inner join dbo.APPUSER A on B.APPUSERID = A.ID
/* JamesWill WI200374 2012-07-20 The BATCH.EXCEPTIONBATCHNAME field is only used when overriding the default exception batch number.
So we need to actually look up the exception bathc using the exception batch change data. */
left join
(
select top 1
EXCEPTIONBATCH.ID,
EXCEPTIONBATCH.ORIGINATINGBATCHID,
EXCEPTIONBATCH.BATCHNUMBER
from dbo.BATCH EXCEPTIONBATCH
where EXCEPTIONBATCH.ORIGINATINGBATCHID = @BATCHID
) EXCEPTIONBATCH on EXCEPTIONBATCH.ORIGINATINGBATCHID = B.ID
group by
b.BATCHNUMBER
, b.STATUS
, EXCEPTIONBATCH.BATCHNUMBER
, a.USERNAME
, B.PROJECTEDNUMBEROFRECORDS
, B.PROJECTEDTOTALAMOUNT';
exec sp_executesql @SQLTOEXEC,
N'@COUNT integer,
@BATCHID uniqueidentifier,
@MULTICURRENCYENABLED bit,
@ORGANIZATIONISO4217 nvarchar(3),
@ORGANIZATIONDECIMALDIGITS tinyint,
@ORGANIZATIONCURRENCYSYMBOL nvarchar(5),
@ORGANIZATIONSYMBOLDISPLAYSETTINGCODE tinyint,
@BATCHNUMBER nvarchar(100)',
@COUNT = @COUNT,
@BATCHID = @BATCHID,
@MULTICURRENCYENABLED = @MULTICURRENCYENABLED,
@ORGANIZATIONISO4217 = @ORGANIZATIONISO4217,
@ORGANIZATIONDECIMALDIGITS = @ORGANIZATIONDECIMALDIGITS,
@ORGANIZATIONCURRENCYSYMBOL = @ORGANIZATIONCURRENCYSYMBOL,
@ORGANIZATIONSYMBOLDISPLAYSETTINGCODE = @ORGANIZATIONSYMBOLDISPLAYSETTINGCODE,
@BATCHNUMBER = @BATCHNUMBER
;
end