USP_SPONSORSHIPOPPORTUNITYPROJECT_SEARCH
Search for a project sponsorship opportunity
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@QUICKSEARCH | nvarchar(100) | IN | QUICKSEARCH |
@KEYNAME | nvarchar(100) | IN | Project name |
@LOOKUPID | nvarchar(100) | IN | Lookup ID |
@SPONSORSHIPOPPORTUNITYGROUPID | uniqueidentifier | IN | Project group |
@SPONSORSHIPPROGRAMID | uniqueidentifier | IN | Sponsorship program |
@SPONSORSHIPLOCATIONID | uniqueidentifier | IN | Location |
@ELIGIBILITYCODE | smallint | IN | Status |
@AVAILABILITYCODE | smallint | IN | Availability |
@RESTRICTFORSOLESPONSORSHIP | bit | IN | Only include unsponsored |
@EXCLUDEOPPORTUNITYID | uniqueidentifier | IN | EXCLUDEOPPORTUNITYID |
@CATEGORYID | uniqueidentifier | IN | Category |
@MAXROWS | smallint | IN | Input parameter indicating the maximum number of rows to return. |
@SPONSORSHIPOPPORTUNITYID | uniqueidentifier | IN | SPONSORSHIPOPPORTUNITYID |
@CORRESPONDINGSPONSORID | uniqueidentifier | IN | CORRESPONDINGSPONSORID |
@FINANCIALSPONSORID | uniqueidentifier | IN | FINANCIALSPONSORID |
Definition
Copy
CREATE procedure dbo.USP_SPONSORSHIPOPPORTUNITYPROJECT_SEARCH
(
@QUICKSEARCH nvarchar(100) = null,
@KEYNAME nvarchar(100) = null,
@LOOKUPID nvarchar(100)=null,
@SPONSORSHIPOPPORTUNITYGROUPID uniqueidentifier = null,
@SPONSORSHIPPROGRAMID uniqueidentifier = null,
@SPONSORSHIPLOCATIONID uniqueidentifier = null,
@ELIGIBILITYCODE smallint = -1,
@AVAILABILITYCODE smallint = -1,
@RESTRICTFORSOLESPONSORSHIP bit = 0,
@EXCLUDEOPPORTUNITYID uniqueidentifier = null,
@CATEGORYID uniqueidentifier = null,
@MAXROWS smallint = 500,
-- used by add sponsorship
@SPONSORSHIPOPPORTUNITYID uniqueidentifier = null,
@CORRESPONDINGSPONSORID uniqueidentifier = null,
@FINANCIALSPONSORID uniqueidentifier = null
)
as
declare @tempid uniqueidentifier = newid();
if ISNULL(@KEYNAME,'%') = '%' and ISNULL(@LOOKUPID,'%')='%' and ISNULL(@SPONSORSHIPLOCATIONID,@tempid)=@tempid
begin
set @KEYNAME = '%';
set @LOOKUPID='%';
end
else
begin
if @KEYNAME is not null
begin
set @KEYNAME = @KEYNAME + '%';
end
if @LOOKUPID is not null
begin
set @LOOKUPID = @LOOKUPID + '%';
end
end
select top(@MAXROWS)
SO.ID,
dbo.UFN_SPONSORSHIPOPPORTUNITY_TRANSLATIONFUNCTION(SO.ID) as NAME,
SO.LOOKUPID,
(select NAME from dbo.SPONSORSHIPOPPORTUNITYGROUP SPR WHERE SPR.ID = SO.SPONSORSHIPOPPORTUNITYGROUPID) OPPORTUNITYGROUP,
case SO.ELIGIBILITYCODE when 0 then 'Pending' when 1 then 'Open' when 2 then 'Closed' end ELIGIBILITY,
SO.AVAILABILITY,
CAT.DESCRIPTION AS CATEGORY,
dbo.UFN_SPONSORSHIPLOCATION_GETFULLNAME(OPPORTUNITYLOCATION.ID) LOCATION
from
SPONSORSHIPOPPORTUNITY SO
inner join SPONSORSHIPOPPORTUNITYPROJECT SP on SP.ID = SO.ID
left outer join dbo.SPONSORSHIPLOCATION SELECTEDLOCATION on SELECTEDLOCATION.ID = @SPONSORSHIPLOCATIONID
left outer join dbo.SPONSORSHIPLOCATION OPPORTUNITYLOCATION on OPPORTUNITYLOCATION.ID = SO.SPONSORSHIPLOCATIONID
left outer join dbo.SPONSORSHIPPROGRAM on SPONSORSHIPPROGRAM.ID = @SPONSORSHIPPROGRAMID
left outer join dbo.SPROPPPROJECTCATEGORYCODE CAT on CAT.ID = SP.SPROPPPROJECTCATEGORYCODEID
where (@SPONSORSHIPOPPORTUNITYID is null or SO.ID = @SPONSORSHIPOPPORTUNITYID)
and (SP.NAME LIKE @KEYNAME or @KEYNAME IS NULL)
and (SO.LOOKUPID LIKE @LOOKUPID or @LOOKUPID IS NULL)
and (@QUICKSEARCH is null or SP.NAME like '%'+@QUICKSEARCH+'%' or SO.LOOKUPID like @QUICKSEARCH)
and (@SPONSORSHIPLOCATIONID is null or OPPORTUNITYLOCATION.HIERARCHYPATH.IsDescendantOf(SELECTEDLOCATION.HIERARCHYPATH) = 1)
and SO.SPONSORSHIPOPPORTUNITYGROUPID = ISNULL(@SPONSORSHIPOPPORTUNITYGROUPID,SO.SPONSORSHIPOPPORTUNITYGROUPID)
and (@SPONSORSHIPPROGRAMID is null or
(SO.SPONSORSHIPOPPORTUNITYGROUPID = SPONSORSHIPPROGRAM.SPONSORSHIPOPPORTUNITYGROUPID and
(SPONSORSHIPPROGRAM.FILTERLOCATIONCODE = 0 or
(SPONSORSHIPPROGRAM.FILTERLOCATIONCODE = 1 and
exists(select 'x'
from dbo.UFN_SPONSORSHIPPROGRAM_FILTERLOCATIONS(SPONSORSHIPPROGRAM.FILTERLOCATIONS) X
inner join dbo.SPONSORSHIPLOCATION FILTERLOCATION on FILTERLOCATION.ID = X.SPONSORSHIPLOCATIONID
where OPPORTUNITYLOCATION.HIERARCHYPATH.IsDescendantOf(FILTERLOCATION.HIERARCHYPATH) = 1)) or
(SPONSORSHIPPROGRAM.FILTERLOCATIONCODE = 2 and
not exists(select 'x'
from dbo.UFN_SPONSORSHIPPROGRAM_FILTERLOCATIONS(SPONSORSHIPPROGRAM.FILTERLOCATIONS) X
inner join dbo.SPONSORSHIPLOCATION FILTERLOCATION on FILTERLOCATION.ID = X.SPONSORSHIPLOCATIONID
where OPPORTUNITYLOCATION.HIERARCHYPATH.IsDescendantOf(FILTERLOCATION.HIERARCHYPATH) = 1)))))
and (@ELIGIBILITYCODE = -1 or SO.ELIGIBILITYCODE = @ELIGIBILITYCODE)
and (@AVAILABILITYCODE = -1 or SO.AVAILABILITYCODE = @AVAILABILITYCODE)
and (@EXCLUDEOPPORTUNITYID is null or SO.ID <> @EXCLUDEOPPORTUNITYID)
and (@CATEGORYID is null or SP.SPROPPPROJECTCATEGORYCODEID = @CATEGORYID)
and (@RESTRICTFORSOLESPONSORSHIP = 0 or
not exists(select 'x'
from dbo.SPONSORSHIP S
where SO.ID = S.SPONSORSHIPOPPORTUNITYID
and S.STATUSCODE in(0,1)))
and (@CORRESPONDINGSPONSORID is null or
not exists(select 'x'
from dbo.SPONSORSHIP S
where S.SPONSORSHIPOPPORTUNITYID = SO.ID
and S.CONSTITUENTID = @CORRESPONDINGSPONSORID
and S.STATUSCODE in(0,1)))
and (@FINANCIALSPONSORID is null or
(select UNIQUEOPPORTUNITIESFORGIFTDONOR from dbo.SPONSOR where ID = @FINANCIALSPONSORID) = 0 or
not exists(select 'x'
from dbo.REVENUE
inner join dbo.REVENUESPLIT on REVENUESPLIT.REVENUEID = REVENUE.ID
inner join dbo.SPONSORSHIP on SPONSORSHIP.REVENUESPLITID = REVENUESPLIT.ID
where REVENUE.CONSTITUENTID = @FINANCIALSPONSORID
and SPONSORSHIP.SPONSORSHIPOPPORTUNITYID = SO.ID
and SPONSORSHIP.STATUSCODE in(0,1)));