USP_SIMPLEDATALIST_GENERATETRANSACTIONSPROCESSBATCHTEMPLATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@ISFORWEBSHELL | bit | IN | |
@PAYMENTTYPECODE | tinyint | IN | |
@EFTTYPECODE | tinyint | IN | |
@FILTERINACTIVE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_SIMPLEDATALIST_GENERATETRANSACTIONSPROCESSBATCHTEMPLATE
(
@CURRENTAPPUSERID uniqueidentifier,
@ISFORWEBSHELL bit = 0,
@PAYMENTTYPECODE tinyint = 0,
@EFTTYPECODE tinyint = 0,
@FILTERINACTIVE tinyint = 0
)
as
set nocount on;
declare @MULTICURRENCYENABLED as bit = dbo.UFN_CONDITIONSETTING_EVALUATEEXISTSCONDITION('Multicurrency');
declare @SQL nvarchar(max);
declare @WHERE nvarchar(max);
declare @WHEREOPTION nvarchar(500);
declare @ISSYSADMIN bit = 0;
select @ISSYSADMIN = ISSYSADMIN from dbo.APPUSER where ID = @CURRENTAPPUSERID;
declare @GRANTEDBATCHTEMPLATEXML xml;
set @SQL = '
--return all batch templates with the required fields.
with xmlnamespaces (
''bb_appfx_commontypes'' as c
)
select @GRANTEDBATCHTEMPLATEXML =
(select distinct
BATCHTEMPLATE.ID as VALUE,
BATCHTEMPLATE.NAME as LABEL,
BATCHTEMPLATE.SITEID as SITEID
from
dbo.BATCHTEMPLATE
left join dbo.BATCHTYPECATALOG on BATCHTEMPLATE.BATCHTYPECATALOGID = BATCHTYPECATALOG.ID ';
if @FILTERINACTIVE = 1
begin
set @WHEREOPTION = ' and BATCHTEMPLATE.ACTIVE = 1 '
end
else
begin
set @WHEREOPTION = ' '
end
set @WHERE = '
where
BATCHTEMPLATE.CUSTOM = 0' +
@WHEREOPTION +
'and BATCHTEMPLATE.TEMPLATEUSECODE in (0,1)
and 1 = dbo.UFN_INSTALLEDPRODUCTS_OPTIONALPRODUCTSINSTALLED
(
BATCHTYPECATALOG.SPECXML.query
(
''declare namespace common="bb_appfx_commontypes";
/*/common:InstalledProductList''
)
)
and
(
isnull(@ISFORWEBSHELL, 0) = 0
--Exclude batch types that have handlers but no web shell conversion when the list is loaded for web shell
or 0 = BATCHTYPECATALOG.SPECXML.value
(
''declare namespace batch="bb_appfx_batchtype";
empty(/batch:BatchTypeSpec/batch:WebEventHandlers/batch:BatchEventHandler)
and not(empty(/batch:BatchTypeSpec/batch:EventHandlers/batch:BatchEventHandler))'',
''bit''
)
)
--Fields required by all EFT processes
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="DATE"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="PAYMENTMETHODCODE"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="POSTSTATUSCODE"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="SEQUENCE"])'') = 1';
--ERB
if @PAYMENTTYPECODE = 0
begin
set @WHERE = @WHERE + '
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="AMOUNT"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="TYPECODE"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="GIVENANONYMOUSLY"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="REVENUESTREAMS"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="RECEIPTAMOUNT"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="CONSTITUENTID"])'') = 1 '
end
--MDB
if @PAYMENTTYPECODE = 1
begin
set @WHERE = @WHERE + '
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="WHATPAYINGFOR"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="MEMBERSHIPPROGRAMID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="MEMBERSHIPLEVELID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="BILLTOCONSTITUENTID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="MEMBERSHIPLEVELTERMID"])'') = 1 '
end
if @EFTTYPECODE = 2 or @EFTTYPECODE = 0
begin
set @WHERE = @WHERE + '
--Fields required specifically by the credit card processing process
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="CARDHOLDERNAME"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="CREDITCARDNUMBER"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="CREDITCARDTOKEN"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="CREDITTYPECODEID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="EXPIRESON"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="AUTHORIZATIONCODE"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="REJECTIONMESSAGE"])'') = 1 '
end
if @EFTTYPECODE = 1 or @EFTTYPECODE = 0
begin
set @WHERE = @WHERE + '
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="CONSTITUENTACCOUNTID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="REFERENCENUMBER"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="REFERENCEDATE"])'') = 1 '
end
set @WHERE = @WHERE + '
and (
( --if not enhanced revenue batch, then multicurrency must be turned off
(BATCHTYPECATALOG.ID <> ''326c43a6-d162-4fd4-8d61-fef9a0ee8c5e'' --Enhanced revenue batch
or BATCHTYPECATALOG.ID <> ''196A2540-005A-4547-91A7-B301C464E28C'' --Membership Dues Batch)
and @MULTICURRENCYENABLED = 0
)
or
( --if enhanced revenue batch, the fields below are required
(BATCHTYPECATALOG.ID = ''326c43a6-d162-4fd4-8d61-fef9a0ee8c5e'' --Enhanced revenue batch
or BATCHTYPECATALOG.ID = ''196A2540-005A-4547-91A7-B301C464E28C'' --Membership Dues Batch)
and
BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="PDACCOUNTSYSTEMID"])'') = 1
and (
@MULTICURRENCYENABLED = 0
or (
BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="TRANSACTIONCURRENCYID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="BASECURRENCYID"])'') = 1
and BATCHTEMPLATE.FORMDEFINITIONXML.exist(''(c:FormMetaData/c:FormFields/c:FormField[upper-case(@FieldID)="BASEEXCHANGERATEID"])'') = 1
)
)
)
)
)
)
for xml raw(''GRANTEDBATCHTEMPLATE''),root(''GRANTEDBATCHTEMPLATES'')); ';
set @SQL = @SQL + @WHERE;
exec sp_executesql @SQL, N'@CURRENTAPPUSERID uniqueidentifier, @ISFORWEBSHELL bit, @PAYMENTTYPECODE tinyint, @EFTTYPECODE tinyint, @MULTICURRENCYENABLED bit,@GRANTEDBATCHTEMPLATEXML xml output',
@CURRENTAPPUSERID = @CURRENTAPPUSERID, @ISFORWEBSHELL=@ISFORWEBSHELL,@PAYMENTTYPECODE=@PAYMENTTYPECODE,@EFTTYPECODE=@EFTTYPECODE,@MULTICURRENCYENABLED=@MULTICURRENCYENABLED,@GRANTEDBATCHTEMPLATEXML=@GRANTEDBATCHTEMPLATEXML output
if @ISSYSADMIN = 1
begin
select
GRANTEDBATCHTEMPLATE.NODE.value('@VALUE', 'uniqueidentifier') as VALUE,
GRANTEDBATCHTEMPLATE.NODE.value('@LABEL', 'nvarchar(120)') as LABEL
from @GRANTEDBATCHTEMPLATEXML.nodes('/GRANTEDBATCHTEMPLATES/GRANTEDBATCHTEMPLATE') GRANTEDBATCHTEMPLATE(NODE)
order by GRANTEDBATCHTEMPLATE.NODE.value('@LABEL', 'nvarchar(120)');
end
else
begin
declare @USP_SIMPLEDATALIST_GENERATETRANSACTIONSPROCESSBATCHTEMPLATE table (
VALUE uniqueidentifier,
LABEL varchar(1000),
GRANTED bit
);
insert into @USP_SIMPLEDATALIST_GENERATETRANSACTIONSPROCESSBATCHTEMPLATE
exec dbo.USP_SECURITY_APPUSER_GRANTED_BATCHPROCESSOR_BULK @GRANTEDBATCHTEMPLATEXML, @CURRENTAPPUSERID;
select
VALUE,
LABEL
from @USP_SIMPLEDATALIST_GENERATETRANSACTIONSPROCESSBATCHTEMPLATE
where GRANTED = 1
order by LABEL;
end