USP_REVENUEBATCH_GETCONSTITUENTACCOUNT
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@CONSTITUENTACCOUNTID | uniqueidentifier | INOUT | |
@FINANCIALINSTITUTIONID | uniqueidentifier | INOUT | |
@BANKINGSYSTEMID | uniqueidentifier | INOUT | |
@ROUTINGNUMBER | nvarchar(9) | INOUT | |
@SORTCODE | nvarchar(6) | INOUT | |
@BIC | nvarchar(11) | INOUT | |
@BANKCODE | nvarchar(25) | INOUT | |
@CONSTITUENTID | uniqueidentifier | IN | |
@ACCOUNTNUMBER | nvarchar(max) | IN | |
@FINANCIALINSTITUTIONNAME | nvarchar(100) | INOUT | |
@BRANCHNAME | nvarchar(100) | IN |
Definition
Copy
CREATE procedure dbo.USP_REVENUEBATCH_GETCONSTITUENTACCOUNT
(
@CONSTITUENTACCOUNTID uniqueidentifier = null output,
@FINANCIALINSTITUTIONID uniqueidentifier = null output,
@BANKINGSYSTEMID uniqueidentifier = null output,
@ROUTINGNUMBER nvarchar(9) = '' output,
@SORTCODE nvarchar(6) = '' output,
@BIC nvarchar(11) = '' output,
@BANKCODE nvarchar(25) = '' output,
@CONSTITUENTID uniqueidentifier = null,
@ACCOUNTNUMBER nvarchar(max) = '',
@FINANCIALINSTITUTIONNAME nvarchar(100) = '' output,
@BRANCHNAME nvarchar(100) = ''
)
as
begin
-- Open the symmetric key for decryption
exec dbo.USP_GET_KEY_ACCESS;
if @BANKINGSYSTEMID is null
begin
exec dbo.USP_BANKINGSYSTEM_GETDEFAULT @DEFAULTBANKINGSYSTEMID = @BANKINGSYSTEMID output
if @BANKINGSYSTEMID is null
begin
if @ROUTINGNUMBER <> '' and @SORTCODE = '' and @BIC = '' and @BANKCODE = ''
begin
select
@BANKINGSYSTEMID = BANKINGSYSTEM.ID
from
dbo.BANKINGSYSTEM
where
BANKINGSYSTEM.CONDITIONSETTINGNAME = 'BankingSystem-ACH'
end
if @ROUTINGNUMBER = '' and @SORTCODE <> '' and @BIC = '' and @BANKCODE = ''
begin
select
@BANKINGSYSTEMID = BANKINGSYSTEM.ID
from
dbo.BANKINGSYSTEM
where
BANKINGSYSTEM.CONDITIONSETTINGNAME = 'BankingSystem-BACS'
end
if @ROUTINGNUMBER = '' and @SORTCODE = '' and @BIC <> '' and @BANKCODE = ''
begin
select
@BANKINGSYSTEMID = BANKINGSYSTEM.ID
from
dbo.BANKINGSYSTEM
where
BANKINGSYSTEM.CONDITIONSETTINGNAME = 'BankingSystem-SEPA'
end
if @ROUTINGNUMBER = '' and @SORTCODE = '' and @BIC = '' and @BANKCODE <> ''
begin
select
@BANKINGSYSTEMID = BANKINGSYSTEM.ID
from
dbo.BANKINGSYSTEM
where
BANKINGSYSTEM.CONDITIONSETTINGNAME = 'BankingSystem-Other'
end
end
end
--This is the value from one of the four columns {Routing number, Sort code, BIC, or Bank code} dependent on the banking system id being used
--It is used later to create a financial institution name when a name is not specified
declare @BANKNUMBER nvarchar(25)
declare @CONDITIONSETTINGNAME nvarchar(50)
select
@CONDITIONSETTINGNAME = BANKINGSYSTEM.CONDITIONSETTINGNAME
from
BANKINGSYSTEM
where
BANKINGSYSTEM.ID = @BANKINGSYSTEMID
declare @FINANCIALINSTITUTIONS table
(
FINANCIALINSTITUTIONID uniqueidentifier,
FINANCIALINSTITUTIONNAME nvarchar(100),
BRANCHNAME nvarchar(100)
)
if @CONDITIONSETTINGNAME = 'BankingSystem-ACH'
begin
set @BANKNUMBER = @ROUTINGNUMBER
if @ROUTINGNUMBER = ''
raiserror('BBERR_ROUTINGNUMBERREQUIRED', 13, 1)
set @SORTCODE = ''
set @BIC = ''
set @BANKCODE = ''
insert into @FINANCIALINSTITUTIONS (FINANCIALINSTITUTIONID, FINANCIALINSTITUTIONNAME, BRANCHNAME)
select
FINANCIALINSTITUTION.ID,
FINANCIALINSTITUTION.FINANCIALINSTITUTION,
FINANCIALINSTITUTION.BRANCHNAME
from
FINANCIALINSTITUTION
where
FINANCIALINSTITUTION.BANKINGSYSTEMID = @BANKINGSYSTEMID
and FINANCIALINSTITUTION.ROUTINGNUMBER = @ROUTINGNUMBER
end
else if @CONDITIONSETTINGNAME = 'BankingSystem-BACS'
begin
set @BANKNUMBER = @SORTCODE
if @SORTCODE = ''
raiserror('BBERR_SORTCODEREQUIRED', 13, 1)
set @ROUTINGNUMBER = ''
set @BIC = ''
set @BANKCODE = ''
insert into @FINANCIALINSTITUTIONS (FINANCIALINSTITUTIONID, FINANCIALINSTITUTIONNAME, BRANCHNAME)
select
FINANCIALINSTITUTION.ID,
FINANCIALINSTITUTION.FINANCIALINSTITUTION,
FINANCIALINSTITUTION.BRANCHNAME
from
FINANCIALINSTITUTION
where
FINANCIALINSTITUTION.BANKINGSYSTEMID = @BANKINGSYSTEMID
and FINANCIALINSTITUTION.SORTCODE = @SORTCODE
end
else if @CONDITIONSETTINGNAME = 'BankingSystem-SEPA'
begin
set @BANKNUMBER = @BIC
if @BIC = ''
raiserror('BBERR_BICREQUIRED', 13, 1)
set @ROUTINGNUMBER = ''
set @SORTCODE = ''
set @BANKCODE = ''
insert into @FINANCIALINSTITUTIONS (FINANCIALINSTITUTIONID, FINANCIALINSTITUTIONNAME, BRANCHNAME)
select
FINANCIALINSTITUTION.ID,
FINANCIALINSTITUTION.FINANCIALINSTITUTION,
FINANCIALINSTITUTION.BRANCHNAME
from
FINANCIALINSTITUTION
where
FINANCIALINSTITUTION.BANKINGSYSTEMID = @BANKINGSYSTEMID
and FINANCIALINSTITUTION.BIC = @BIC
end
else if @CONDITIONSETTINGNAME = 'BankingSystem-Other'
begin
set @BANKNUMBER = @BANKCODE
if @BANKCODE = ''
raiserror('BBERR_BANKCODEREQUIRED', 13, 1)
set @ROUTINGNUMBER = ''
set @SORTCODE = ''
set @BIC = ''
insert into @FINANCIALINSTITUTIONS (FINANCIALINSTITUTIONID, FINANCIALINSTITUTIONNAME, BRANCHNAME)
select
FINANCIALINSTITUTION.ID,
FINANCIALINSTITUTION.FINANCIALINSTITUTION,
FINANCIALINSTITUTION.BRANCHNAME
from
FINANCIALINSTITUTION
where
FINANCIALINSTITUTION.BANKINGSYSTEMID = @BANKINGSYSTEMID
and FINANCIALINSTITUTION.BANKCODE = @BANKCODE
end
else if coalesce(@CONDITIONSETTINGNAME, '') = ''
raiserror('BBERR_BANKINGSYSTEM_INVALIDCONDITIONSETTINGNAME', 13, 1)
if (
select
count(CONSTITUENTACCOUNT.ID)
from
dbo.CONSTITUENTACCOUNT
inner join @FINANCIALINSTITUTIONS as FINANCIALINSTITUTIONS on CONSTITUENTACCOUNT.FINANCIALINSTITUTIONID = FINANCIALINSTITUTIONS.FINANCIALINSTITUTIONID
where
CONSTITUENTACCOUNT.CONSTITUENTID = @CONSTITUENTID
and coalesce(convert(nvarchar(50), DecryptByKey(CONSTITUENTACCOUNT.ACCOUNTNUMBER)),'') = @ACCOUNTNUMBER
) = 1
begin
select
@CONSTITUENTACCOUNTID = CONSTITUENTACCOUNT.ID
from
dbo.CONSTITUENTACCOUNT
inner join @FINANCIALINSTITUTIONS as FINANCIALINSTITUTIONS on CONSTITUENTACCOUNT.FINANCIALINSTITUTIONID = FINANCIALINSTITUTIONS.FINANCIALINSTITUTIONID
where
CONSTITUENTACCOUNT.CONSTITUENTID = @CONSTITUENTID
and coalesce(convert(nvarchar(50), DecryptByKey(CONSTITUENTACCOUNT.ACCOUNTNUMBER)),'') = @ACCOUNTNUMBER
end
else
begin
declare @NUMBEROFFINANCIALINSTITUTIONS int
select
@NUMBEROFFINANCIALINSTITUTIONS = count(FINANCIALINSTITUTIONS.FINANCIALINSTITUTIONID)
from
@FINANCIALINSTITUTIONS as FINANCIALINSTITUTIONS
if @NUMBEROFFINANCIALINSTITUTIONS > 1
begin
if @FINANCIALINSTITUTIONNAME = ''
set @FINANCIALINSTITUTIONNAME = @BANKNUMBER
select
@FINANCIALINSTITUTIONID = FINANCIALINSTITUTIONS.FINANCIALINSTITUTIONID
from
@FINANCIALINSTITUTIONS as FINANCIALINSTITUTIONS
where
FINANCIALINSTITUTIONS.FINANCIALINSTITUTIONNAME = @FINANCIALINSTITUTIONNAME
and FINANCIALINSTITUTIONS.BRANCHNAME = @BRANCHNAME
end
else if @NUMBEROFFINANCIALINSTITUTIONS = 1
begin
select
@FINANCIALINSTITUTIONID = FINANCIALINSTITUTIONS.FINANCIALINSTITUTIONID
from
@FINANCIALINSTITUTIONS as FINANCIALINSTITUTIONS
end
else
begin
if @FINANCIALINSTITUTIONNAME = ''
set @FINANCIALINSTITUTIONNAME = @BANKNUMBER
end
end
end