USP_REPORT_PHONEFINDERUPDATE
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@BATCHID | uniqueidentifier | IN | |
@REPORTUSERID | nvarchar(128) | IN | |
@ALTREPORTUSERID | nvarchar(128) | IN |
Definition
Copy
create procedure dbo.USP_REPORT_PHONEFINDERUPDATE
(
@BATCHID uniqueidentifier,
@REPORTUSERID nvarchar(128) = null,
@ALTREPORTUSERID nvarchar(128) = null
)
as
set nocount on;
declare @CURRENTAPPUSERID uniqueidentifier = dbo.UFN_APPUSER_GETREPORTAPPUSERID(@REPORTUSERID, @ALTREPORTUSERID);
declare @ISADMIN bit = dbo.UFN_APPUSER_ISSYSADMIN(@CURRENTAPPUSERID);
declare @APPUSER_IN_NONRACROLE bit = dbo.UFN_SECURITY_APPUSER_IN_NONRACROLE(@CURRENTAPPUSERID);
declare @APPUSER_IN_NOSECGROUPROLE bit = dbo.UFN_SECURITY_APPUSER_IN_NO_SECURITY_GROUP_ROLE(@CURRENTAPPUSERID);
declare @APPUSER_IN_NONSITEROLE bit = dbo.UFN_SECURITY_APPUSER_IN_NONSITEROLE(@CURRENTAPPUSERID);
declare @APPUSER_IN_NOSITEROLE bit = dbo.UFN_SECURITY_APPUSER_IN_NO_SITE_ROLE(@CURRENTAPPUSERID);
declare @TOTALCOUNT integer;
declare @VERIFIEDCOUNT integer;
declare @PHONEFORMAT nvarchar(20);
select @PHONEFORMAT = dbo.UFN_PHONEFORMATCODE_GETFORMAT(COUNTRY.[PHONEFORMATCODE])
from dbo.COUNTRY where COUNTRY.[ID] = dbo.UFN_COUNTRY_GETDEFAULT();
/* Select out counts separately so that they aren't calculated for every row: */
select
@TOTALCOUNT = count(BATCHPHONEFINDER.[ID]),
@VERIFIEDCOUNT =
(
select count(BATCHPHONEFINDER.[ID])
from dbo.BATCHPHONEFINDER
where BATCHPHONEFINDER.[BATCHID] = @BATCHID and
BATCHPHONEFINDER.[PHONEVERIFIED] = 1
)
from
dbo.BATCHPHONEFINDER
where
BATCHPHONEFINDER.[BATCHID] = @BATCHID;
select
N'http://www.blackbaud.com?CONSTITUENTID=' + convert(nvarchar(36), BATCHPHONEFINDER.[CONSTITUENTID]) as [CONSTITUENTID],
CONSTITUENT.[NAME] as [CONSTITUENTNAME],
coalesce(PHONE.[NUMBER], N'N/A') as [PREVIOUSPHONENUMBER],
BATCHPHONEFINDER.[PHONENUMBER] as [UPDATEDPHONENUMBER],
case when BATCHPHONEFINDER.[DONOTCALLSTATUS] in (N'', N'H', N'D') then 0 else 1 end as [DONOTCALL],
BATCHPHONEFINDER.[PHONEVERIFIED],
@TOTALCOUNT as [TOTALCOUNT],
@VERIFIEDCOUNT as [VERIFIEDCOUNT],
PHONEFINDERGETPROCESS.[DATELASTRUN],
@PHONEFORMAT as [PHONEFORMAT]
from
dbo.BATCHPHONEFINDER
inner join dbo.PHONEFINDERGETPROCESS on PHONEFINDERGETPROCESS.[PHONEFINDERID] = BATCHPHONEFINDER.[PHONEFINDERID]
inner join dbo.CONSTITUENT on CONSTITUENT.[ID] = BATCHPHONEFINDER.[CONSTITUENTID]
left outer join dbo.PHONE on PHONE.[CONSTITUENTID] = BATCHPHONEFINDER.[CONSTITUENTID]
where
BATCHPHONEFINDER.[BATCHID] = @BATCHID and
(PHONE.[ISPRIMARY] = 1 or PHONE.[ID] is null) and
(@ISADMIN = 1 or
(
(@APPUSER_IN_NONRACROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT(@CURRENTAPPUSERID, CONSTITUENT.[ID], @APPUSER_IN_NOSECGROUPROLE) = 1)
and
(@APPUSER_IN_NONSITEROLE = 1 or
dbo.UFN_SECURITY_APPUSER_GRANTED_CONSTITID_FORREPORT_BYSITE(@CURRENTAPPUSERID, CONSTITUENT.[ID], @APPUSER_IN_NOSITEROLE) = 1)
)
)
order by CONSTITUENT.[NAME];
return 0;