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.

83 lines
5.6 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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