USP_SPONSORSHIP_CREATECOMMITMENT
Create a new sponsorship commitment
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@REVENUECONSTITUENTID | uniqueidentifier | IN | |
@SPONSORSHIPCONSTITUENTID | uniqueidentifier | IN | |
@REASSIGNEDFROMSPONSORSHIPID | uniqueidentifier | IN | |
@SPONSORSHIPREASONID | uniqueidentifier | IN | |
@SPONSORSHIPPROGRAMID | uniqueidentifier | IN | |
@SPONSORSHIPLOCATIONID | uniqueidentifier | IN | |
@GENDERCODE | int | IN | |
@SPROPPAGERANGEID | uniqueidentifier | IN | |
@ISHIVPOSITIVECODE | int | IN | |
@HASCONDITIONCODE | int | IN | |
@ISORPHANEDCODE | int | IN | |
@SPROPPPROJECTCATEGORYCODEID | uniqueidentifier | IN | |
@SPONSORSHIPOPPORTUNITYID | uniqueidentifier | IN | |
@ISSOLESPONSORSHIP | bit | IN | |
@STARTDATE | date | IN | |
@AMOUNT | money | IN | |
@PAYMENTMETHODCODE | tinyint | IN | |
@REFERENCEDATE | UDT_FUZZYDATE | IN | |
@REFERENCENUMBER | nvarchar(20) | IN | |
@CARDHOLDERNAME | nvarchar(255) | IN | |
@CREDITCARDNUMBER | nvarchar(20) | IN | |
@CREDITTYPECODEID | uniqueidentifier | IN | |
@EXPIRESON | UDT_FUZZYDATE | IN | |
@CONSTITUENTACCOUNTID | uniqueidentifier | IN | |
@FREQUENCYCODE | tinyint | IN | |
@REVENUESCHEDULEENDDATE | datetime | IN | |
@REVENUESCHEDULESTARTDATE | datetime | IN | |
@AUTOPAY | bit | IN | |
@CREDITCARDTOKEN | uniqueidentifier | IN | |
@PLANNEDENDDATE | date | IN | |
@SENDREMINDER | bit | IN | |
@FINDERNUMBER | bigint | IN | |
@SOURCECODE | nvarchar(50) | IN | |
@APPEALID | uniqueidentifier | IN | |
@MAILINGID | uniqueidentifier | IN | |
@CHANNELCODEID | uniqueidentifier | IN | |
@REFERENCE | nvarchar(255) | IN | |
@CATEGORYCODEID | uniqueidentifier | IN | |
@EXPIRATIONREASONID | uniqueidentifier | IN | |
@TRANSACTIONCURRENCYID | uniqueidentifier | IN | |
@BASEEXCHANGERATEID | uniqueidentifier | IN | |
@EXCHANGERATE | decimal(20, 8) | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@BATCHNUMBER | nvarchar(100) | IN | |
@DONOTACKNOWLEDGE | bit | IN | |
@DATA | xml | IN | |
@BASECURRENCYID | uniqueidentifier | IN | |
@SEPAMANDATEID | uniqueidentifier | IN | |
@OTHERPAYMENTMETHODCODEID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIP_CREATECOMMITMENT
(
@ID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@REVENUECONSTITUENTID uniqueidentifier = null,
@SPONSORSHIPCONSTITUENTID uniqueidentifier = null,
@REASSIGNEDFROMSPONSORSHIPID uniqueidentifier = null,
@SPONSORSHIPREASONID uniqueidentifier = null,
@SPONSORSHIPPROGRAMID uniqueidentifier = null,
@SPONSORSHIPLOCATIONID uniqueidentifier = null,
@GENDERCODE int = 0,
@SPROPPAGERANGEID uniqueidentifier = null,
@ISHIVPOSITIVECODE int = 0,
@HASCONDITIONCODE int = 0,
@ISORPHANEDCODE int = 0,
@SPROPPPROJECTCATEGORYCODEID uniqueidentifier = null,
@SPONSORSHIPOPPORTUNITYID uniqueidentifier = null,
@ISSOLESPONSORSHIP bit = 0,
@STARTDATE date = null,
@AMOUNT money = 0,
@PAYMENTMETHODCODE tinyint = 2,
@REFERENCEDATE dbo.UDT_FUZZYDATE = '00000000',
@REFERENCENUMBER nvarchar(20) = '',
@CARDHOLDERNAME nvarchar(255) = '',
@CREDITCARDNUMBER nvarchar(20) = '',
@CREDITTYPECODEID uniqueidentifier = null,
@EXPIRESON dbo.UDT_FUZZYDATE = null,
@CONSTITUENTACCOUNTID uniqueidentifier = null,
@FREQUENCYCODE tinyint = 3,
@REVENUESCHEDULEENDDATE datetime = null,
@REVENUESCHEDULESTARTDATE datetime = null,
@AUTOPAY bit = 1,
@CREDITCARDTOKEN uniqueidentifier = null,
@PLANNEDENDDATE date = null,
@SENDREMINDER bit = 0,
@FINDERNUMBER bigint = null,
@SOURCECODE nvarchar(50) = null,
@APPEALID uniqueidentifier = null,
@MAILINGID uniqueidentifier = null,
@CHANNELCODEID uniqueidentifier = null,
@REFERENCE nvarchar(255) = null,
@CATEGORYCODEID uniqueidentifier = null,
@EXPIRATIONREASONID uniqueidentifier = null,
@TRANSACTIONCURRENCYID uniqueidentifier = null,
@BASEEXCHANGERATEID uniqueidentifier = null,
@EXCHANGERATE decimal(20,8) = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@BATCHNUMBER nvarchar(100) = '',
@DONOTACKNOWLEDGE bit = 0,
@DATA xml = null,
@BASECURRENCYID uniqueidentifier = null,
@SEPAMANDATEID uniqueidentifier = null,
@OTHERPAYMENTMETHODCODEID uniqueidentifier = null
)
as
begin
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @ID is null
set @ID = newid();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
if @BATCHNUMBER is null
set @BATCHNUMBER = '';
begin try
if @REVENUECONSTITUENTID = @SPONSORSHIPCONSTITUENTID
begin
--if we have a finder number make sure the constituent has been added to the tables
if isnull(@FINDERNUMBER, 0) > 0
begin
exec dbo.USP_DATAFORMTEMPLATE_ADD_ACQUISITIONLISTMEMBER @SPONSORSHIPCONSTITUENTID, @CHANGEAGENTID, @FINDERNUMBER;
end
exec dbo.USP_SPONSOR_MAKEACTIVE @SPONSORSHIPCONSTITUENTID, @STARTDATE, 0, @CHANGEAGENTID
end
else
begin
exec dbo.USP_SPONSOR_MAKEACTIVE @SPONSORSHIPCONSTITUENTID, @STARTDATE, 1, @CHANGEAGENTID
begin try
exec dbo.USP_SPONSOR_MAKEACTIVE @REVENUECONSTITUENTID, @STARTDATE, 2, @CHANGEAGENTID
end try
begin catch
raiserror('BBERR_INVALIDREVENUECONSTITUENTID',13,1);
end catch
end
--------------------------------------------------------------
-- Add affiliate constituency and relationship
--------------------------------------------------------------
declare @ISAFFILIATE bit
declare @CONSTITUENCYCODEID uniqueidentifier
declare @AFFILIATEID uniqueidentifier
declare @RELATIONSHIPTYPECODEID uniqueidentifier
declare @RECIPROCALTYPECODEID uniqueidentifier
select
@ISAFFILIATE = case when P.ID is not null then 1 else 0 end,
@CONSTITUENCYCODEID = P.CONSTITUENCYCODEID,
@AFFILIATEID = P.AFFILIATEID,
@RELATIONSHIPTYPECODEID = S.AFFILIATERELATIONSHIPTYPECODEID,
@RECIPROCALTYPECODEID = S.AFFILIATESPONSORRELATIONSHIPTYPECODEID
from dbo.SPONSORSHIPINFO S
inner join dbo.SPONSORSHIPAFFILIATEPROGRAM P on P.ID = @SPONSORSHIPPROGRAMID;
if @ISAFFILIATE = 1
begin
-- constituency
if @CONSTITUENCYCODEID is not null
begin
if not exists(select 'x' from dbo.CONSTITUENCY
where CONSTITUENTID = @SPONSORSHIPCONSTITUENTID
and CONSTITUENCYCODEID = @CONSTITUENCYCODEID)
exec dbo.USP_DATAFORMTEMPLATE_ADD_CONSTITUENCY
@CHANGEAGENTID = @CHANGEAGENTID,
@CONSTITUENTID = @SPONSORSHIPCONSTITUENTID,
@CONSTITUENCYCODEID = @CONSTITUENCYCODEID
end
-- relationship
if @RELATIONSHIPTYPECODEID is not null
begin
if not exists(select 'x' from dbo.RELATIONSHIP
where RELATIONSHIPCONSTITUENTID = @AFFILIATEID
and RECIPROCALCONSTITUENTID = @SPONSORSHIPCONSTITUENTID
and RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID
and RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID) and (@AFFILIATEID <> @SPONSORSHIPCONSTITUENTID)
exec dbo.USP_DATAFORMTEMPLATE_ADD_ORGTOIND_RELATIONSHIP
@CHANGEAGENTID = @CHANGEAGENTID,
@CONSTITUENTID = @AFFILIATEID,
@RECIPROCALCONSTITUENTID = @SPONSORSHIPCONSTITUENTID,
@RELATIONSHIPTYPECODEID = @RELATIONSHIPTYPECODEID,
@RECIPROCALTYPECODEID = @RECIPROCALTYPECODEID,
@STARTDATE = @STARTDATE
end
end
--------------------------------------------------------------
-- Acquire opportunity
--------------------------------------------------------------
if @SPONSORSHIPOPPORTUNITYID is null
exec dbo.USP_SPONSORSHIP_ACQUIREOPPORTUNITY
@SPONSORSHIPOPPORTUNITYID output,
@CHANGEAGENTID,
0,
@SPONSORSHIPCONSTITUENTID,
@SPONSORSHIPPROGRAMID,
@SPONSORSHIPLOCATIONID,
@GENDERCODE,
@SPROPPAGERANGEID,
@ISHIVPOSITIVECODE,
@HASCONDITIONCODE,
@ISORPHANEDCODE,
@SPROPPPROJECTCATEGORYCODEID,
@ISSOLESPONSORSHIP,
null,
null,
@REVENUECONSTITUENTID
--------------------------------------------------------------
-- REVENUE
--------------------------------------------------------------
declare @DOREVENUE bit
set @DOREVENUE = 1
select @DOREVENUE = 0
from dbo.SPONSORSHIPAFFILIATEPROGRAM
where ID = @SPONSORSHIPPROGRAMID;
if @DOREVENUE = 1
begin
declare @SPLITS xml;
declare @REVENUESPLITID uniqueidentifier;
declare @DESIGNATIONID uniqueidentifier;
set @DESIGNATIONID = dbo.UFN_SPONSORSHIPOPPORTUNITY_GETDESIGNATION(@SPONSORSHIPOPPORTUNITYID)
if @DESIGNATIONID is null
raiserror('BBERR_NODESIGNATIONFOUND',13,1)
set @REVENUESPLITID = newid()
set @SPLITS = (
select @REVENUESPLITID ID,
@DESIGNATIONID DESIGNATIONID,
@AMOUNT AMOUNT,
0 APPLICATIONCODE,
9 TYPECODE,
@TRANSACTIONCURRENCYID TRANSACTIONCURRENCYID
for xml raw('ITEM'),type,elements,root('SPLITS'),BINARY BASE64
)
if @REFERENCEDATE is null
set @REFERENCEDATE = '00000000'
declare @REVENUEID uniqueidentifier = @ID;
exec dbo.USP_DATAFORMTEMPLATE_ADD_RECURRINGGIFT
@REVENUEID output,
@CHANGEAGENTID,
@REVENUECONSTITUENTID,
@STARTDATE,
@AMOUNT,
@PAYMENTMETHODCODE,
@REFERENCEDATE,
@REFERENCENUMBER,
@CARDHOLDERNAME,
@CREDITCARDNUMBER,
@CREDITTYPECODEID,
@EXPIRESON,
@CONSTITUENTACCOUNTID,
@SPLITS,
@FREQUENCYCODE,
@REVENUESCHEDULEENDDATE,
@REVENUESCHEDULESTARTDATE,
@FINDERNUMBER,
@SOURCECODE,
@APPEALID,
0,
@MAILINGID,
@CHANNELCODEID,
@DONOTACKNOWLEDGE,
@AUTOPAY,
@REFERENCE,
@CATEGORYCODEID,
@CREDITCARDTOKEN,
0, --@STANDINGORDERSETUP,
null, --@STANDINGORDERSETUPDATE,
null, --@DDISOURCECODEID,
null, --@DDISOURCEDATE,
@SENDREMINDER,
@TRANSACTIONCURRENCYID,
@BASEEXCHANGERATEID,
@EXCHANGERATE,
@CURRENTAPPUSERID,
default, --BUSINESSUNITSAPPLIED
default, --@GENERATEREFERENCENUMBER,
default, --@STANDINGORDERREFERENCENUMBER,
default, --EVENTID
default, --LOCALCORPID
default, --ISMEMBERSHIPRECURRINGGIFT
default, --BATCHNUMBER
@BASECURRENCYID,
@SEPAMANDATEID,
@OTHERPAYMENTMETHODCODEID;
if len(@BATCHNUMBER) > 0
update dbo.REVENUE
set BATCHNUMBER = @BATCHNUMBER,
CHANGEDBYID = @CHANGEAGENTID,
DATECHANGED = DATEADDED
where ID = @REVENUEID;
declare @BBNCPAGENAME nvarchar(100);
declare @BBNCPAGEID int;
with xmlnamespaces('urn:blackbaud.RE7.XDATA' as bb)
select @BBNCPAGENAME = T.c.value('bb:PageName[1]','nvarchar(100)'),
@BBNCPAGEID = T.c.value('bb:PageID[1]','int')
from @DATA.nodes('/SponsorshipTransactionData/OriginInformation') T(c)
if isnull(@BBNCPAGENAME,'') <> '' and isnull(@BBNCPAGEID,0) <> 0
insert into dbo.REVENUEBBNC(ID, NETCOMMUNITYPAGENAME, NETCOMMUNITYPAGEID, ADDEDBYID, CHANGEDBYID, DATEADDED, DATECHANGED)
values(@REVENUEID, @BBNCPAGENAME, @BBNCPAGEID, @CHANGEAGENTID, @CHANGEAGENTID, @CURRENTDATE, @CURRENTDATE);
end
--------------------------------------------------------------
-- SPONSORSHIPCOMMITMENT
--------------------------------------------------------------
declare @COMMITMENTID uniqueidentifier
set @COMMITMENTID = newid()
declare @COMMITMENTSEQUENCE smallint
select @COMMITMENTSEQUENCE = isnull(max(COMMITMENTSEQUENCE),0)+1
from dbo.SPONSORSHIPCOMMITMENT
where CONSTITUENTID = @SPONSORSHIPCONSTITUENTID
insert into dbo.SPONSORSHIPCOMMITMENT
(
ID,
CONSTITUENTID,
COMMITMENTSEQUENCE,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@COMMITMENTID,
@SPONSORSHIPCONSTITUENTID,
@COMMITMENTSEQUENCE,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
--------------------------------------------------------------
-- SPONSORSHIP
--------------------------------------------------------------
insert into dbo.SPONSORSHIP
(
ID,
SPONSORSHIPCOMMITMENTID,
CONSTITUENTID,
SPONSORSHIPPROGRAMID,
SPONSORSHIPOPPORTUNITYID,
STATUSCODE,
STARTDATE,
SPONSORSHIPLOCATIONID,
CHILDGENDERCODE,
SPONSORSHIPOPPORTUNITYAGERANGEID,
ISHIVPOSITIVECODE,
HASCONDITIONCODE,
ISORPHANEDCODE,
SPROPPPROJECTCATEGORYCODEID,
ISSOLESPONSORSHIP,
REVENUESPLITID,
PLANNEDENDDATE,
EXPIRATIONREASONID,
ISMOSTRECENTFORCOMMITMENT,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
@ID,
@COMMITMENTID,
@SPONSORSHIPCONSTITUENTID,
@SPONSORSHIPPROGRAMID,
@SPONSORSHIPOPPORTUNITYID,
1,
@STARTDATE,
@SPONSORSHIPLOCATIONID,
@GENDERCODE,
@SPROPPAGERANGEID,
@ISHIVPOSITIVECODE,
@HASCONDITIONCODE,
@ISORPHANEDCODE,
@SPROPPPROJECTCATEGORYCODEID,
@ISSOLESPONSORSHIP,
@REVENUESPLITID,
@PLANNEDENDDATE,
@EXPIRATIONREASONID,
1,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
--------------------------------------------------------------
-- SPONSORSHIPTRANSACTION
--------------------------------------------------------------
insert into dbo.SPONSORSHIPTRANSACTION
(
ID,
SPONSORSHIPCOMMITMENTID,
TRANSACTIONSEQUENCE,
ACTIONCODE,
SPONSORSHIPREASONID,
CONTEXTSPONSORSHIPID,
TARGETSPONSORSHIPID,
TRANSACTIONDATE,
GIFTFINANCIALSPONSORID,
ADDEDBYID,
CHANGEDBYID,
DATEADDED,
DATECHANGED
)
values
(
newid(),
@COMMITMENTID,
1,
case when @REASSIGNEDFROMSPONSORSHIPID is null then 0 else 5 end,
@SPONSORSHIPREASONID,
@REASSIGNEDFROMSPONSORSHIPID,
@ID,
@STARTDATE,
case when @REVENUECONSTITUENTID <> @SPONSORSHIPCONSTITUENTID then @REVENUECONSTITUENTID end,
@CHANGEAGENTID,
@CHANGEAGENTID,
@CURRENTDATE,
@CURRENTDATE
)
--------------------------------------------------------------
-- Update and unlock opportunity.
--------------------------------------------------------------
if @REASSIGNEDFROMSPONSORSHIPID is null
exec dbo.USP_SPONSORSHIPOPPORTUNITY_SPONSORSHIPADDED
@SPONSORSHIPOPPORTUNITYID,
@ISSOLESPONSORSHIP,
@CHANGEAGENTID,
@CURRENTDATE,
1
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0
end