USP_REPORT_APPEALPROFILE_SOLICITORS
Returns all solicitors tied to an appeal.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPEALID | uniqueidentifier | IN | |
@SHOW | bit | IN | |
@CURRENTAPPUSERID | uniqueidentifier | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@CURRENCYCODE | tinyint | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN |
Definition
Copy
CREATE procedure dbo.USP_REPORT_APPEALPROFILE_SOLICITORS
(
@APPEALID uniqueidentifier = null,
@SHOW bit = null,
@CURRENTAPPUSERID uniqueidentifier = null,
@REPORTUSERID nvarchar(128) = null,
@CURRENCYCODE tinyint = null,
@ALTREPORTUSERID nvarchar(128) = null
)
as
set nocount on;
declare @ORGANIZATIONCURRENCYID uniqueidentifier;
if coalesce(@CURRENCYCODE, 1) = 1
begin
set @CURRENCYCODE = 1;
set @ORGANIZATIONCURRENCYID = dbo.UFN_CURRENCY_GETORGANIZATIONCURRENCY();
end
else begin
set @CURRENCYCODE = 0;
end
if @CURRENTAPPUSERID is null
set @CURRENTAPPUSERID = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
declare @ISADMIN bit;
declare @APPUSER_IN_NONRACROLE bit;
declare @APPUSER_IN_NOSECGROUPROLE bit;
set @ISADMIN = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
set @APPUSER_IN_NONRACROLE = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
set @APPUSER_IN_NOSECGROUPROLE = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
begin try
if @SHOW = 1
begin
-- NOTE: Be sure to update AppealProfileReportSectionsHaveData.View.xml if you modify
-- the joins/constraints of the below query.
-- Determine the sum of the solicitor goals here since each solicitor only contributes
-- once, no matter how many teams they are on.
declare @SOLICITORGOALSUM as money
select @SOLICITORGOALSUM = sum(
case @CURRENCYCODE
when 0 then TEAMFUNDRAISER.GOAL
else TEAMFUNDRAISER.ORGANIZATIONGOAL
end )
from dbo.TEAMFUNDRAISER where APPEALID = @APPEALID
select
'' as [CONSTITUENTID],
TEAMFUNDRAISINGTEAM.ID,
case
when count(CONSTITUENT.ID) > 0 then TEAMFUNDRAISINGTEAM.NAME + ' (' + dbo.UDA_BUILDLIST(CONSTITUENT.NAME) + ')'
else TEAMFUNDRAISINGTEAM.NAME
end as NAME,
TEAMFUNDRAISINGTEAM.PARENTTEAMID,
0 as [TYPE],
case @CURRENCYCODE
when 0 then TEAMFUNDRAISINGTEAM.GOAL
else TEAMFUNDRAISINGTEAM.ORGANIZATIONGOAL
end as TEAMGOAL,
0 as SOLICITORGOAL,
@SOLICITORGOALSUM,
CURRENCYPROPERTIES.ID as CURRENCYID,
CURRENCYPROPERTIES.ISO4217 as CURRENCYISO,
CURRENCYPROPERTIES.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
CURRENCYPROPERTIES.CURRENCYSYMBOL as CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from dbo.TEAMFUNDRAISINGTEAM
left join dbo.TEAMFUNDRAISINGTEAMCAPTAIN
on TEAMFUNDRAISINGTEAM.ID = TEAMFUNDRAISINGTEAMCAPTAIN.TEAMFUNDRAISINGTEAMID
left join dbo.CONSTITUENT
on CONSTITUENT.ID = TEAMFUNDRAISINGTEAMCAPTAIN.CONSTITUENTID
and (@ISADMIN = 1 or
@APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, CONSTITUENT.ID, @APPUSER_IN_NOSECGROUPROLE) = 1
)
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(coalesce(@ORGANIZATIONCURRENCYID, TEAMFUNDRAISINGTEAM.BASECURRENCYID)) CURRENCYPROPERTIES
where TEAMFUNDRAISINGTEAM.APPEALID = @APPEALID
group by
TEAMFUNDRAISINGTEAM.ID,
TEAMFUNDRAISINGTEAM.NAME,
TEAMFUNDRAISINGTEAM.PARENTTEAMID,
TEAMFUNDRAISINGTEAM.GOAL,
TEAMFUNDRAISINGTEAM.ORGANIZATIONGOAL,
CURRENCYPROPERTIES.ID,
CURRENCYPROPERTIES.ISO4217,
CURRENCYPROPERTIES.DECIMALDIGITS,
CURRENCYPROPERTIES.CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE
union all
select
-- Use the TEAMFUNDRAISINGTEAMMEMBER if it's set. We try to
-- use this since the report groups based on the ID and if
-- TEAMFUNDRAISER.ID were always used and the same constituent
-- was a member of a different team, they wouldn't show up twice.
'http://www.blackbaud.com/CONSTITUENTID?CONSTITUENTID=' + CONVERT(nvarchar(36),CONSTITUENT.ID) as [CONSTITUENTID],
case
when TEAMFUNDRAISINGTEAMMEMBER.ID is not null then TEAMFUNDRAISINGTEAMMEMBER.ID
else TEAMFUNDRAISER.ID
end 'ID',
CONSTITUENT.NAME,
TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISINGTEAMID as PARENTTEAMID,
1 as [TYPE],
0 as TEAMGOAL,
case @CURRENCYCODE
when 0 then TEAMFUNDRAISER.GOAL
else TEAMFUNDRAISER.ORGANIZATIONGOAL
end as SOLICITORGOAL,
@SOLICITORGOALSUM,
CURRENCYPROPERTIES.ID as CURRENCYID,
CURRENCYPROPERTIES.ISO4217 as CURRENCYISO,
CURRENCYPROPERTIES.DECIMALDIGITS as CURRENCYDECIMALDIGITS,
CURRENCYPROPERTIES.CURRENCYSYMBOL as CURRENCYSYMBOL,
CURRENCYPROPERTIES.SYMBOLDISPLAYSETTINGCODE as CURRENCYSYMBOLDISPLAYSETTINGCODE
from dbo.TEAMFUNDRAISER
inner join dbo.CONSTITUENT
on TEAMFUNDRAISER.CONSTITUENTID = CONSTITUENT.ID
left join TEAMFUNDRAISINGTEAMMEMBER
on TEAMFUNDRAISER.ID = TEAMFUNDRAISINGTEAMMEMBER.TEAMFUNDRAISERID
outer apply dbo.UFN_CURRENCY_GETPROPERTIES(coalesce(@ORGANIZATIONCURRENCYID, TEAMFUNDRAISER.BASECURRENCYID)) CURRENCYPROPERTIES
where TEAMFUNDRAISER.APPEALID = @APPEALID
and (@ISADMIN = 1 or
@APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, CONSTITUENT.ID, @APPUSER_IN_NOSECGROUPROLE) = 1)
order by TYPE, NAME
end
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch
return 0;