USP_SPONSORSHIP_ACQUIREOPPORTUNITY
Acquires an opportunity for a sponsorship.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SPONSORSHIPOPPORTUNITYID | uniqueidentifier | INOUT | |
@CHANGEAGENTID | uniqueidentifier | IN | |
@MATCHRULE | tinyint | IN | |
@CONSTITUENTID | 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 | |
@ISSOLESPONSORSHIP | bit | IN | |
@EXCLUDEOPPORTUNITYID | uniqueidentifier | IN | |
@ORIGINALLOCATIONID | uniqueidentifier | IN | |
@REVENUECONSTITUENTID | uniqueidentifier | IN | |
@LOCKTYPE | tinyint | IN |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIP_ACQUIREOPPORTUNITY
(
@SPONSORSHIPOPPORTUNITYID uniqueidentifier = null output,
@CHANGEAGENTID uniqueidentifier = null,
@MATCHRULE tinyint = 0,
@CONSTITUENTID 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,
@ISSOLESPONSORSHIP bit = 0,
@EXCLUDEOPPORTUNITYID uniqueidentifier = null,
@ORIGINALLOCATIONID uniqueidentifier = null,
@REVENUECONSTITUENTID uniqueidentifier = null,
@LOCKTYPE tinyint = null
)
as
-- This stored procedure will do the following:
-- Match an opportunity based on the sponsor's criteria.
-- Attempt to lock the opportunity, retry matching if necessary.
-- Throw an error if no opportunity can be matched and locked.
begin
set nocount on;
declare @CURRENTDATE datetime;
set @CURRENTDATE = getdate();
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
begin try
-- choose opportunity based on greatest need/preferences
exec dbo.USP_SPONSORSHIP_MATCHOPPORTUNITY
@SPONSORSHIPOPPORTUNITYID output,
@SPONSORSHIPPROGRAMID,
@MATCHRULE,
@SPONSORSHIPLOCATIONID,
@GENDERCODE,
@SPROPPAGERANGEID,
@ISHIVPOSITIVECODE,
@HASCONDITIONCODE,
@ISORPHANEDCODE,
@SPROPPPROJECTCATEGORYCODEID,
@CONSTITUENTID,
@ISSOLESPONSORSHIP,
@EXCLUDEOPPORTUNITYID,
@ORIGINALLOCATIONID,
@REVENUECONSTITUENTID
if @SPONSORSHIPOPPORTUNITYID is not null
begin
begin try
if @LOCKTYPE is null
set @LOCKTYPE = @ISSOLESPONSORSHIP;
exec dbo.USP_SPONSORSHIPOPPORTUNITY_LOCK @SPONSORSHIPOPPORTUNITYID, @LOCKTYPE, @CHANGEAGENTID;
end try
begin catch
if error_message() = 'BBERR_NOLOCK'
begin
-- Lock could not be acquired, try matching again.
set @SPONSORSHIPOPPORTUNITYID = null;
exec dbo.USP_SPONSORSHIP_ACQUIREOPPORTUNITY
@SPONSORSHIPOPPORTUNITYID output,
@CHANGEAGENTID,
@MATCHRULE,
@CONSTITUENTID,
@SPONSORSHIPPROGRAMID,
@SPONSORSHIPLOCATIONID,
@GENDERCODE,
@SPROPPAGERANGEID,
@ISHIVPOSITIVECODE,
@HASCONDITIONCODE,
@ISORPHANEDCODE,
@SPROPPPROJECTCATEGORYCODEID,
@ISSOLESPONSORSHIP,
@EXCLUDEOPPORTUNITYID,
@ORIGINALLOCATIONID,
@REVENUECONSTITUENTID
end
else
begin
exec dbo.USP_RAISE_ERROR
return 1;
end
end catch
end
else
begin
raiserror('BBERR_NOMATCHINGOPPORTUNITY', 13, 1);
return 1;
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;
end