USP_KPIINSTANCE_FINDBYNAME
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@APPUSERID | uniqueidentifier | IN | |
@KPIINSTANCENAME | nvarchar(100) | IN |
Definition
Copy
create procedure dbo.[USP_KPIINSTANCE_FINDBYNAME](@APPUSERID uniqueidentifier, @KPIINSTANCENAME nvarchar(100))
as
set nocount on;
declare @ISSYSADMIN bit;
select @ISSYSADMIN = [ISSYSADMIN] from dbo.[APPUSER] where [ID] = @APPUSERID;
declare @SITEPRODUCTINSTALLED bit;
set @SITEPRODUCTINSTALLED = dbo.[UFN_INSTALLEDPRODUCTS_PRODUCTIS]('133f9bca-00f1-4007-9792-586b931340c6');
select [KPIINSTANCE].[ID],
[KPIINSTANCE].[NAME]
from dbo.[KPIINSTANCE]
left join dbo.[KPICATALOG] on [KPIINSTANCE].[KPICATALOGID] = [KPICATALOG].[ID]
where [KPIINSTANCE].[NAME] like '%' + @KPIINSTANCENAME + '%'
and dbo.[UFN_SECURITY_APPUSER_GRANTED_KPIINSTANCE](@APPUSERID, [KPIINSTANCE].[ID]) = 1
and
(
[KPICATALOG].[HASSITEFILTER] = 0
or [KPIINSTANCE].[SITEFILTERENABLEDFORINSTANCE] = 0
or @SITEPRODUCTINSTALLED = 0
or @ISSYSADMIN = 1
or exists
(
select top 1 1
from dbo.[SYSTEMROLEAPPUSER]
where [SYSTEMROLEAPPUSER].[APPUSERID] = @APPUSERID
-- make sure the kpi instance is permissioned for this role
and exists
(
select top 1 1
from dbo.[SYSTEMROLEKPIINSTANCE]
where [SYSTEMROLEKPIINSTANCE].[SYSTEMROLEID] = [SYSTEMROLEAPPUSER].[SYSTEMROLEID]
and [SYSTEMROLEKPIINSTANCE].[KPIINSTANCEID] = [KPIINSTANCE].[ID]
)
and
(
[SYSTEMROLEAPPUSER].[SECURITYMODECODE] = 0 -- all sites
or
(
[SYSTEMROLEAPPUSER].[SECURITYMODECODE] = 1 -- no site
and not exists (select top 1 1 from dbo.[KPIINSTANCESITE] where [KPIINSTANCEID] = [KPIINSTANCE].[ID])
)
or
(
[SYSTEMROLEAPPUSER].[SECURITYMODECODE] in (2, 3) -- records with one of these sites assigned or within a branch
and exists
(
select top 1 1
from dbo.[SITEPERMISSION]
inner join dbo.[KPIINSTANCESITE] on [SITEPERMISSION].[SITEID] = [KPIINSTANCESITE].[SITEID]
where [SITEPERMISSION].[SYSTEMROLEID] = [SYSTEMROLEAPPUSER].[SYSTEMROLEID]
and [SITEPERMISSION].[APPUSERID] = [SYSTEMROLEAPPUSER].[APPUSERID]
and [KPIINSTANCESITE].[KPIINSTANCEID] = [KPIINSTANCE].[ID]
)
)
)
)
)
order by [KPIINSTANCE].[NAME];