You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ITSM/.svn/pristine/b3/b344e16a84aff6b4893ffab7a29...

83 lines
5.6 KiB

USE [Vertragsverwaltung_20160404]
GO
/****** Object: StoredProcedure [dbo].[sp_get_sysadmin_tree] Script Date: 02.12.2016 09:08:53 ******/
DROP PROCEDURE [dbo].[sp_get_sysadmin_tree]
GO
/****** Object: StoredProcedure [dbo].[sp_get_sysadmin_tree] Script Date: 02.12.2016 09:08:55 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE proc [dbo].[sp_get_sysadmin_tree]
--------------------------------------------------------------------------------------------------------------
-- Liest die Dokumentart-Hierarchie, Knoten Root in der entsprechenden Sprache, für den entsprechenden Mandanten
--
-- Autor: Stefan Hutter
--------------------------------------------------------------
@imitarbeiternr int,
@iSprache int,
@iMandant int,
@iRoot int,
@iErrorcode int output
AS
CREATE TABLE #tmph(
[sysadminfnktnr] [int] NULL ,
[bezeichnung] [varchar] (255) null,
[imageindex] [int] NULL ,
[imageindexopen] [int] NULL,
[parentid] [int] null,
[sort] [int] null
) ON [DEFAULT]
declare @sfnkt int
declare xcursor cursor for
SELECT dbo.rolle_sysadminfunktion.sysadminfnktnr
FROM dbo.mitarbeiter_funktionsgruppe INNER JOIN
dbo.funktionsgruppe_rolle ON dbo.mitarbeiter_funktionsgruppe.funktionsgruppenr = dbo.funktionsgruppe_rolle.funktionsgruppenr INNER JOIN
dbo.rolle_sysadminfunktion ON dbo.funktionsgruppe_rolle.rollenr = dbo.rolle_sysadminfunktion.rollenr INNER JOIN
dbo.funktionsgruppe ON dbo.mitarbeiter_funktionsgruppe.funktionsgruppenr = dbo.funktionsgruppe.funktionsgruppenr
WHERE (dbo.rolle_sysadminfunktion.aktiv = 1) AND (dbo.funktionsgruppe_rolle.aktiv = 1) AND (dbo.mitarbeiter_funktionsgruppe.aktiv = 1) AND
(dbo.funktionsgruppe.aktiv = 1) AND (dbo.mitarbeiter_funktionsgruppe.mitarbeiternr = @imitarbeiternr)
/*
SELECT dbo.rolle_sysadminfunktion.sysadminfnktnr
FROM dbo.rolle INNER JOIN
dbo.mitarbeiterrolle ON dbo.rolle.rollenr = dbo.mitarbeiterrolle.rollenr INNER JOIN
dbo.rolle_sysadminfunktion ON dbo.rolle.rollenr = dbo.rolle_sysadminfunktion.rollenr
WHERE dbo.mitarbeiterrolle.mitarbeiternr = @imitarbeiternr and
rolle_sysadminfunktion.aktiv=1 and
dbo.rolle.aktiv=1 and
dbo.mitarbeiterrolle.aktiv=1
*/
open xcursor
FETCH NEXT FROM xcursor into @sfnkt
WHILE @@FETCH_STATUS = 0 BEGIN
execute sp_get_sysadmin_hierarchie_data @sfnkt, @isprache, @imandant
FETCH NEXT FROM xcursor into @sfnkt
end
close xcursor
deallocate xcursor
delete #tmph where parentid is null
update #tmph set parentid=0, imageindex=2, imageindexopen=2 where sysadminfnktnr=@iroot
select distinct * from #tmph order by sort
drop table #tmph
select @iErrorcode=@@error
GO