USP_SPONSORSHIPBATCH_GENERATECONSTITUENTACCOUNTS
Generates CONSTITUENTACCOUNT records for BATCHSPONSORSHIPCONSTITUENTACCOUNT belonging to the specified constituent.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHSPONSORSHIPCONSTITUENTID | uniqueidentifier | IN | |
@CONSTITUENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@BATCHSPONSORSHIPCONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | INOUT |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIPBATCH_GENERATECONSTITUENTACCOUNTS
(
@BATCHSPONSORSHIPCONSTITUENTID uniqueidentifier,
@CONSTITUENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null,
@BATCHSPONSORSHIPCONSTITUENTACCOUNTID uniqueidentifier = null,
@CONSTITUENTACCOUNTID uniqueidentifier = null output
)
as
set nocount on
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output
declare @CURRENTDATE datetime
set @CURRENTDATE = getdate()
-- Create CONSTITUENTACCOUNT records for any BATCHSPONSORSHIPCONSTITUENTACCOUNT records
-- that correspond to this constituent
-- Using @CONSTITUENTACCOUNTIDS so that we can update the dbo.BATCHSPONSORSHIP table
-- to point to the generated CONSTITUENTACCOUNT records
declare @CONSTITUENTACCOUNTIDS table
(
BATCHSPONSORSHIPCONSTITUENTACCOUNTID uniqueidentifier,
CONSTITUENTACCOUNTID uniqueidentifier
)
insert into @CONSTITUENTACCOUNTIDS
(
BATCHSPONSORSHIPCONSTITUENTACCOUNTID,
CONSTITUENTACCOUNTID
)
select
ID,
newid()
from dbo.BATCHSPONSORSHIPCONSTITUENTACCOUNT
where
CONSTITUENTID = @BATCHSPONSORSHIPCONSTITUENTID
insert into dbo.CONSTITUENTACCOUNT
(
ID,
CONSTITUENTID,
FINANCIALINSTITUTIONID,
ACCOUNTNUMBER,
ACCOUNTNUMBERINDEX,
ACCOUNTTYPECODE,
EFTSTATUSCODE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED,
ACCOUNTNAME
)
select
CA.CONSTITUENTACCOUNTID,
@CONSTITUENTID,
BRCA.FINANCIALINSTITUTIONID,
BRCA.ACCOUNTNUMBER,
dbo.UFN_GET_MAC_FOR_TEXT(BRCA.ACCOUNTNUMBER, 'dbo.CONSTITUENTACCOUNT'),
BRCA.ACCOUNTTYPECODE,
BRCA.EFTSTATUSCODE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE,
BRCA.ACCOUNTNAME
from dbo.BATCHSPONSORSHIPCONSTITUENTACCOUNT BRCA
inner join @CONSTITUENTACCOUNTIDS CA on BRCA.ID = CA.BATCHSPONSORSHIPCONSTITUENTACCOUNTID
where
CONSTITUENTID = @BATCHSPONSORSHIPCONSTITUENTID
update dbo.SEPAMANDATE
set
CONSTITUENTACCOUNTID = CA.CONSTITUENTACCOUNTID,
BATCHSPONSORSHIPCONSTITUENTACCOUNTID = null,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.SEPAMANDATE
inner join @CONSTITUENTACCOUNTIDS CA on SEPAMANDATE.BATCHSPONSORSHIPCONSTITUENTACCOUNTID = CA.BATCHSPONSORSHIPCONSTITUENTACCOUNTID;
update dbo.BATCHSPONSORSHIP
set
CONSTITUENTACCOUNTID = CA.CONSTITUENTACCOUNTID,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = @CURRENTDATE
from dbo.BATCHSPONSORSHIP BR
inner join @CONSTITUENTACCOUNTIDS CA on BR.CONSTITUENTACCOUNTID = CA.BATCHSPONSORSHIPCONSTITUENTACCOUNTID
select
@CONSTITUENTACCOUNTID = CONSTITUENTACCOUNTID
from @CONSTITUENTACCOUNTIDS
where BATCHSPONSORSHIPCONSTITUENTACCOUNTID = @BATCHSPONSORSHIPCONSTITUENTACCOUNTID