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.

968 lines
38 KiB

USE [BEA]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_split_1] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_split_1]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_split] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_split]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_tgdata_Data] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_get_tgdata_Data]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_Report_Data] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_get_Report_Data]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_mig_hierarchie] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_get_mig_hierarchie]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_hierarchie] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_get_hierarchie]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung_reporting] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_funktionstelle_beziehung_reporting]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung] Script Date: 13.12.2014 15:01:46 ******/
DROP FUNCTION [dbo].[fnkt_funktionstelle_beziehung]
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnkt_funktionstelle_beziehung]
(
@keyvalue INT
)
RETURNS @tmp1 TABLE
(
ID INT ,
Bezeichnung VARCHAR(255) ,
Beschreibung VARCHAR(255) ,
Sequenz INT ,
aktiv BIT ,
erstellt_am DATETIME ,
mutiert_am DATETIME ,
mutierer INT ,
typ VARCHAR(255) ,
MKey INT,
Beziehungstyp VARCHAR(255),
CID INT,
Temp int
)
AS
BEGIN
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, CID )
SELECT dbo.Funktionstelle_Berechtigung.Funktionstelle_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Funktionstelle_Berechtigung.Sequenz,
dbo.Funktionstelle_Berechtigung.Beschreibung, dbo.Funktionstelle_Berechtigung.Aktiv, dbo.Funktionstelle_Berechtigung.Erstellt_am,
dbo.Funktionstelle_Berechtigung.Mutiert_am, dbo.Funktionstelle_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
Funktionstelle_Berechtigung.BerechtigungNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
,dbo.berechtigung.cid
FROM dbo.Funktionstelle
INNER JOIN dbo.Funktionstelle_Berechtigung ON dbo.Funktionstelle.FunktionstelleNr = dbo.Funktionstelle_Berechtigung.FunktionstelleNr
INNER JOIN dbo.Berechtigung ON dbo.Funktionstelle_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
INNER JOIN
dbo.Beziehungstyp ON dbo.Funktionstelle_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND Funktionstelle_Berechtigung.aktiv=1
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, cid )
SELECT TOP ( 100 ) PERCENT
dbo.FunktionStelle_Plattform.FunktionStelle_PlattformNr, dbo.Plattform.Bezeichnung, dbo.FunktionStelle_Plattform.Sequenz,
dbo.FunktionStelle_Plattform.Beschreibung, dbo.FunktionStelle_Plattform.Aktiv, dbo.FunktionStelle_Plattform.Erstellt_am,
dbo.FunktionStelle_Plattform.Mutiert_am, dbo.FunktionStelle_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ,
FunktionStelle_Plattform.PlattformNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp,
plattform.CID
FROM dbo.Funktionstelle
INNER JOIN dbo.FunktionStelle_Plattform ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Plattform.FunktionStelleNr
INNER JOIN dbo.Plattform ON dbo.FunktionStelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr
INNER JOIN
dbo.Beziehungstyp ON dbo.FunktionStelle_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND FunktionStelle_Plattform.Aktiv=1
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
SELECT TOP ( 100 ) PERCENT
dbo.FunktionStelle_Server.FunktionStelle_ServerNr, dbo.Server.Bezeichnung, dbo.FunktionStelle_Server.Sequenz,
dbo.FunktionStelle_Server.Beschreibung, dbo.FunktionStelle_Server.Aktiv, dbo.FunktionStelle_Server.Erstellt_am,
dbo.FunktionStelle_Server.Mutiert_am, dbo.FunktionStelle_Server.Mutierer, dbo.fnkt_get_bezeichnung(4) AS Typ,
Funktionstelle_Server.ServerNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
FROM dbo.Funktionstelle
INNER JOIN dbo.FunktionStelle_Server ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Server.FunktionStelleNr
INNER JOIN dbo.Server ON dbo.FunktionStelle_Server.ServerNr = dbo.Server.ServerNr
INNER JOIN
dbo.Beziehungstyp ON dbo.FunktionStelle_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND Funktionstelle_Server.Aktiv=1
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, temp )
SELECT dbo.Personal_FunktionStelle.Personal_FunktionStelleNr, dbo.Personal.TGNummer + ' ' + dbo.Personal.Name AS Bezeichnung,
dbo.Personal_FunktionStelle.Sequenz, dbo.Personal_FunktionStelle.Beschreibung, dbo.Personal_FunktionStelle.Aktiv,
dbo.Personal_FunktionStelle.Erstellt_am, dbo.Personal_FunktionStelle.Mutiert_am, dbo.Personal_FunktionStelle.Mutierer,
dbo.fnkt_get_bezeichnung(2) AS TYP, dbo.Personal.Personalnr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
,dbo.fnkt_get_temporaer(dbo.Personal_FunktionStelle.Personal_FunktionStelleNr)
FROM dbo.Personal_FunktionStelle
INNER JOIN dbo.Personal ON dbo.Personal_FunktionStelle.PersonalNr = dbo.Personal.Personalnr
INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr
INNER JOIN
dbo.Beziehungstyp ON dbo.Personal_FunktionStelle.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) --AND dbo.Personal_FunktionStelle.Aktiv=1
UPDATE @tmp1 SET cid=0 WHERE cid IS null
RETURN
END
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_funktionstelle_beziehung_reporting] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
Create FUNCTION [dbo].[fnkt_funktionstelle_beziehung_reporting]
(
@keyvalue INT
)
RETURNS @tmp1 TABLE
(
ID INT ,
Bezeichnung VARCHAR(255) ,
Beschreibung VARCHAR(255) ,
Sequenz INT ,
aktiv BIT ,
erstellt_am DATETIME ,
mutiert_am DATETIME ,
mutierer INT ,
typ VARCHAR(255) ,
MKey INT,
Beziehungstyp VARCHAR(255)
)
AS
BEGIN
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
SELECT dbo.Funktionstelle_Berechtigung.Funktionstelle_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Funktionstelle_Berechtigung.Sequenz,
dbo.Funktionstelle_Berechtigung.Beschreibung, dbo.Funktionstelle_Berechtigung.Aktiv, dbo.Funktionstelle_Berechtigung.Erstellt_am,
dbo.Funktionstelle_Berechtigung.Mutiert_am, dbo.Funktionstelle_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
Funktionstelle_Berechtigung.BerechtigungNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
FROM dbo.Funktionstelle
INNER JOIN dbo.Funktionstelle_Berechtigung ON dbo.Funktionstelle.FunktionstelleNr = dbo.Funktionstelle_Berechtigung.FunktionstelleNr
INNER JOIN dbo.Berechtigung ON dbo.Funktionstelle_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
INNER JOIN
dbo.Beziehungstyp ON dbo.Funktionstelle_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND Funktionstelle_Berechtigung.aktiv=1
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
SELECT TOP ( 100 ) PERCENT
dbo.FunktionStelle_Plattform.FunktionStelle_PlattformNr, dbo.Plattform.Bezeichnung, dbo.FunktionStelle_Plattform.Sequenz,
dbo.FunktionStelle_Plattform.Beschreibung, dbo.FunktionStelle_Plattform.Aktiv, dbo.FunktionStelle_Plattform.Erstellt_am,
dbo.FunktionStelle_Plattform.Mutiert_am, dbo.FunktionStelle_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ,
FunktionStelle_Plattform.PlattformNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
FROM dbo.Funktionstelle
INNER JOIN dbo.FunktionStelle_Plattform ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Plattform.FunktionStelleNr
INNER JOIN dbo.Plattform ON dbo.FunktionStelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr
INNER JOIN
dbo.Beziehungstyp ON dbo.FunktionStelle_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND FunktionStelle_Plattform.Aktiv=1
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
SELECT TOP ( 100 ) PERCENT
dbo.FunktionStelle_Server.FunktionStelle_ServerNr, dbo.Server.Bezeichnung, dbo.FunktionStelle_Server.Sequenz,
dbo.FunktionStelle_Server.Beschreibung, dbo.FunktionStelle_Server.Aktiv, dbo.FunktionStelle_Server.Erstellt_am,
dbo.FunktionStelle_Server.Mutiert_am, dbo.FunktionStelle_Server.Mutierer, dbo.fnkt_get_bezeichnung(4) AS Typ,
Funktionstelle_Server.ServerNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
FROM dbo.Funktionstelle
INNER JOIN dbo.FunktionStelle_Server ON dbo.Funktionstelle.FunktionstelleNr = dbo.FunktionStelle_Server.FunktionStelleNr
INNER JOIN dbo.Server ON dbo.FunktionStelle_Server.ServerNr = dbo.Server.ServerNr
INNER JOIN
dbo.Beziehungstyp ON dbo.FunktionStelle_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND Funktionstelle_Server.Aktiv=1
INSERT @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
SELECT dbo.Personal_FunktionStelle.Personal_FunktionStelleNr, dbo.Personal.TGNummer + ' ' + dbo.Personal.Name AS Bezeichnung,
dbo.Personal_FunktionStelle.Sequenz, dbo.Personal_FunktionStelle.Beschreibung, dbo.Personal_FunktionStelle.Aktiv,
dbo.Personal_FunktionStelle.Erstellt_am, dbo.Personal_FunktionStelle.Mutiert_am, dbo.Personal_FunktionStelle.Mutierer,
dbo.fnkt_get_bezeichnung(2) AS TYP, dbo.Personal.Personalnr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
FROM dbo.Personal_FunktionStelle
INNER JOIN dbo.Personal ON dbo.Personal_FunktionStelle.PersonalNr = dbo.Personal.Personalnr
INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr
INNER JOIN
dbo.Beziehungstyp ON dbo.Personal_FunktionStelle.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
WHERE ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue ) AND dbo.Personal_FunktionStelle.Aktiv=1
RETURN
END
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_hierarchie] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnkt_get_hierarchie]
(
@startkey int
)
RETURNS @tmp1 TABLE
(
ID INT ,
Bezeichnung VARCHAR(255) ,
parentid INT,
LEVel INT
)
AS
begin
DECLARE @i INT
SET @i=0
DECLARE @pid INT
--INSERT @tmp1 (id, Bezeichnung, parentid,level) SELECT plattformnr, bezeichnung, parentid,@i FROM dbo.Plattform WHERE plattformnr=@startkey
SET @pid=@startkey
WHILE @pid>0 BEGIN
SET @i=@i+1
INSERT @tmp1 (id, Bezeichnung, parentid,level) SELECT plattformnr, bezeichnung, parentid,@i FROM dbo.Plattform WHERE plattformnr=@pid
SELECT @pid=parentid FROM dbo.Plattform WHERE plattformnr=@pid
END
INSERT @tmp1 (id, Bezeichnung, parentid,level) SELECT plattformnr, bezeichnung, parentid,@i FROM dbo.Plattform WHERE plattformnr=@pid
SELECT @pid=plattformnr FROM dbo.Plattform WHERE plattformnr=@pid
RETURN
end
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_mig_hierarchie] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnkt_get_mig_hierarchie]
(
@startkey int
)
RETURNS @tmp1 TABLE
(
[Parent] [int] NULL,
[Parent_Bezeichnung] [nvarchar](50) NULL,
[Parent_Typ] [nvarchar](50) NULL,
[Sequenz] [int] NULL,
[ID] [int] NULL,
[Bezeichnung] [nvarchar](50) NULL,
[Typ] [nvarchar](50) NULL,
[TypNr] [int] NULL,
[Typ_Bezeichung] [nvarchar](50) NULL,
LEVEL int
)
AS
begin
DECLARE @i INT
SET @i=1
DECLARE @pid INT
DECLARE @rc INT
INSERT @tmp1 SELECT *,1 FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@startkey AND typnr=-1
SELECT @pid = parent FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@startkey AND typnr=-1
WHILE @pid>0 BEGIN
SET @i=@i+1
SELECT @rc=COUNT(*) FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@pid AND typnr=-1
IF @rc>0 BEGIN
INSERT @tmp1 SELECT *, @i FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@pid AND typnr=-1
SELECT @pid=parent FROM dbo.BAA_SHU_Extrakt_Beziehungen WHERE id=@pid AND typnr=-1
END ELSE BEGIN
SET @pid=0
end
end
RETURN
end
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_Report_Data] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnkt_get_Report_Data]
(
@ifnr int
)
RETURNS
@t2 TABLE
(
funktionsnummer VARCHAR(255) ,
funktionsbezeichnung VARCHAR(255) ,
plattform VARCHAR(255) ,
verwaltungmit VARCHAR(255) ,
verwaltungdurch VARCHAR(255) ,
berechtigungIn VARCHAR(255) ,
berechtigungfuer VARCHAR(255) ,
eigentuemer VARCHAR(255)
)
AS
BEGIN
declare @t1 TABLE
(
funktionsnummer VARCHAR(255) ,
funktionsbezeichnung VARCHAR(255) ,
plattform VARCHAR(255) ,
verwaltungmit VARCHAR(255) ,
verwaltungdurch VARCHAR(255) ,
berechtigungIn VARCHAR(255) ,
berechtigungfuer VARCHAR(255) ,
eigentuemer VARCHAR(255),
skey int identity
)
DECLARE @fstelle VARCHAR(255)
DECLARE @fnr INT
DECLARE @fbezeichnung VARCHAR(255)
DECLARE @fnummer VARCHAR(255)
DECLARE @parent INT
DECLARE @tmp1 TABLE
(
ID INT ,
Bezeichnung VARCHAR(255) ,
Beschreibung VARCHAR(255) ,
Sequenz INT ,
aktiv BIT ,
erstellt_am DATETIME ,
mutiert_am DATETIME ,
mutierer INT ,
typ VARCHAR(255) ,
MKey INT,
Berechtigungstyp VARCHAR(255)
)
SELECT TOP 1
@fnr = FunktionstelleNr, @fbezeichnung = bezeichnung, @fstelle = funktionsstelle, @fnummer = Funktionsstelle, @parent = ParentID
FROM funktionstelle
WHERE funktionstellenr = @ifnr
INSERT @tmp1
SELECT *
FROM dbo.fnkt_funktionstelle_beziehung_reporting(@fnr)
DELETE FROM @tmp1
WHERE typ <> 'Berechtigung'
AND typ <> 'Plattform'
DECLARE @bez VARCHAR(255)
DECLARE @key INT
DECLARE @typ VARCHAR(255)
DECLARE @key1 INT
DECLARE @bez1 VARCHAR(255)
DECLARE @btyp VARCHAR(255)
DECLARE @skey int
DECLARE @funktionsnummer VARCHAR(255) ,
@funktionsbezeichnung VARCHAR(255) ,
@verwaltungdurch VARCHAR(255) ,
@plattform VARCHAR(255) ,
@verwaltungmit VARCHAR(255) ,
@berechtigungIn VARCHAR(255) ,
@berechtigungfuer VARCHAR(255) ,
@eigentuemer VARCHAR(255),
@seq int
DECLARE xc CURSOR
FOR
SELECT bezeichnung, mkey, TYP, Berechtigungstyp
FROM @tmp1
OPEN xc
FETCH NEXT FROM xc INTO @bez, @key, @typ, @btyp
WHILE @@FETCH_STATUS = 0
BEGIN
SET @funktionsnummer = @fnummer
SET @funktionsbezeichnung = @fbezeichnung
SET @berechtigungfuer = @fbezeichnung
-- Rollenberechtigung
IF UPPER(@typ) = 'BERECHTIGUNG' AND UPPER(@btyp) = 'ROLLENBERECHTIGUNG' BEGIN
SET @plattform=''
SET @berechtigungfuer=''
SET @berechtigungin=''
DECLARE xx CURSOR FOR
SELECT plattformnr FROM dbo.Berechtigung_Plattform WHERE BerechtigungNr=@key
OPEN xx
FETCH NEXT FROM xx INTO @key
WHILE @@FETCH_STATUS=0 begin
SELECT TOP 1
@plattform = bezeichnung
FROM dbo.fnkt_get_hierarchie(@key)
WHERE level > 0
ORDER BY LEVEL DESC
SELECT TOP 1
@berechtigungfuer = bezeichnung
FROM dbo.fnkt_get_hierarchie(@key)
WHERE level = 1
SELECT TOP 1
@berechtigungin = bezeichnung
FROM dbo.fnkt_get_hierarchie(@key)
WHERE parentid > 0 ORDER BY level desc
IF @@ROWCOUNT = 0
SET @berechtigungin = @berechtigungfuer
DECLARE xa CURSOR
FOR
SELECT dbo.Verwaltung_durch_Plattform.Verwaltung_durch_plattformNr, Sequenz
FROM dbo.Verwaltung_durch_Plattform
WHERE aktiv = 1
AND plattformnr = @key
OPEN xa
FETCH NEXT FROM xa INTO @key1,@seq
WHILE @@fetch_status = 0
BEGIN
SET @verwaltungdurch=''
SET @verwaltungmit=''
SET @eigentuemer=''
SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung
FROM dbo.Verwaltung_durch_Plattform
INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr
WHERE Verwaltung_Durch_PlattformNr=@key1
SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung
FROM dbo.Verwaltung_Mit_Plattform
INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr
WHERE PlattformNr = @key
SELECT @eigentuemer = ISNULL(dbo.Personal.TGNummer + ' ' + dbo.Personal.Name,'')
FROM dbo.Personal_Plattform
INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
WHERE plattformnr = @key AND (dbo.Personal_Plattform.beziehungstypnr=-31 OR dbo.Personal_Plattform.beziehungstypnr=-30)
IF @@ROWCOUNT=0 SET @eigentuemer=''
INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn,
berechtigungfuer, eigentuemer )
VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn,
@berechtigungfuer, @eigentuemer )
FETCH NEXT FROM xa INTO @key1,@seq
END
CLOSE xa
DEALLOCATE xa
FETCH NEXT FROM xx INTO @key
END
CLOSE xx
DEALLOCATE xx
END
IF UPPER(@typ) = 'BERECHTIGUNG' AND UPPER(@btyp) <> 'ROLLENBERECHTIGUNG'
BEGIN
SET @plattform=''
SET @berechtigungfuer=''
SET @berechtigungin=''
SET @verwaltungmit=''
SET @verwaltungdurch=''
SET @eigentuemer=''
SELECT @key1 = ParentID, @berechtigungfuer = bezeichnung
FROM dbo.Berechtigung
WHERE berechtigungnr = @key
SELECT @key1 = ParentID, @berechtigungIn = bezeichnung
FROM dbo.Berechtigung
WHERE berechtigungnr = @key1
SELECT @plattform = bezeichnung
FROM dbo.Berechtigung
WHERE Berechtigungnr = @key1
SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung
FROM dbo.Verwaltung_durch_Berechtigung
INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Berechtigung.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr
WHERE BerechtigungNr = @key
SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung
FROM dbo.Verwaltung_Mit_Berechtigung
INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Berechtigung.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr
WHERE Berechtigungnr = @key
SELECT @eigentuemer = ISNULL(dbo.Personal.TGNummer + ' ' + dbo.Personal.Name,'')
FROM dbo.Personal_berechtigung
INNER JOIN dbo.Personal ON dbo.Personal_berechtigung.PersonalNr = dbo.Personal.Personalnr
WHERE berechtigungnr = @key AND (dbo.Personal_Berechtigung.beziehungstypnr=-31 OR dbo.Personal_Berechtigung.beziehungstypnr=-30)
IF @@ROWCOUNT = 0 SET @eigentuemer=''
END
IF UPPER(@typ) = 'PLATTFORM'
BEGIN
SET @plattform=''
SET @berechtigungfuer=''
SET @berechtigungin=''
SELECT TOP 1
@plattform = bezeichnung
FROM dbo.fnkt_get_hierarchie(@key)
WHERE level > 0
ORDER BY LEVEL DESC
SELECT TOP 1
@berechtigungfuer = bezeichnung
FROM dbo.fnkt_get_hierarchie(@key)
WHERE level = 1
SELECT TOP 1
@berechtigungin = bezeichnung
FROM dbo.fnkt_get_hierarchie(@key)
WHERE level = 2 ORDER BY level asc
--WHERE parentid > 0 ORDER BY level desc
IF @@ROWCOUNT = 0
SET @berechtigungin = @berechtigungfuer
DECLARE xa CURSOR
FOR
SELECT dbo.Verwaltung_durch_Plattform.Verwaltung_durch_plattformNr
FROM dbo.Verwaltung_durch_Plattform
WHERE aktiv = 1
AND plattformnr = @key
OPEN xa
FETCH NEXT FROM xa INTO @key1
WHILE @@fetch_status = 0
BEGIN
SET @verwaltungmit=''
SET @verwaltungdurch=''
SET @eigentuemer=''
SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung
FROM dbo.Verwaltung_durch_Plattform
INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr
WHERE Verwaltung_Durch_PlattformNr=@key1
SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung
FROM dbo.Verwaltung_Mit_Plattform
INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr
WHERE PlattformNr = @key
SELECT @eigentuemer = ISNULL(dbo.Personal.TGNummer + ' ' + dbo.Personal.Name,'')
FROM dbo.Personal_Plattform
INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
WHERE plattformnr = @key AND (dbo.Personal_Plattform.beziehungstypnr=-31 OR dbo.Personal_Plattform.beziehungstypnr=-30)
IF @@ROWCOUNT=0 SET @eigentuemer=''
INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn,
berechtigungfuer, eigentuemer )
VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn,
@berechtigungfuer, @eigentuemer )
FETCH NEXT FROM xa INTO @key1
END
CLOSE xa
DEALLOCATE xa
END
IF UPPER(@typ) = 'ORGANISATION'
BEGIN
SET @plattform=''
SET @verwaltungdurch=''
SET @eigentuemer=''
SELECT @key1 = ParentID, @berechtigungfuer = bezeichnung
FROM dbo.Funktionstelle
WHERE Funktionstellenr = @key
SELECT @key1 = ParentID, @berechtigungIn = bezeichnung
FROM dbo.Funktionstelle
WHERE Funktionstellenr = @key1
SELECT @plattform = bezeichnung
FROM dbo.Funktionstelle
WHERE funktionstellenr = @key1
SELECT @verwaltungdurch = dbo.Verwaltung_durch.Bezeichnung
FROM dbo.Verwaltung_durch_Plattform
INNER JOIN dbo.Verwaltung_durch ON dbo.Verwaltung_durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_durch.Verwaltung_durchNr
WHERE PlattformNr = @key
SET @verwaltungmit = ''
SET @verwaltungdurch = ''
--SELECT @verwaltungmit = dbo.Verwaltung_mit.Bezeichnung
--FROM dbo.Verwaltung_Mit_Plattform
-- INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_mit.Verwaltung_mitNr
--WHERE PlattformNr = @key
--SELECT @eigentuemer = dbo.Personal.TGNummer + ' ' + dbo.Personal.Name
--FROM dbo.Personal_Plattform
-- INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
--WHERE plattformnr = @key
END
INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer,
eigentuemer )
VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer,
@eigentuemer )
FETCH NEXT FROM xc INTO @bez, @key, @typ, @btyp
END
INSERT @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer, eigentuemer )
VALUES ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer, @eigentuemer )
CLOSE xc
DEALLOCATE xc
DECLARE @b VARCHAR(255)
DECLARE @s VARCHAR(255)
DECLARE @x VARCHAR(255)
DECLARE xc CURSOR for
select berechtigungfuer, skey FROM @t1
OPEN xc
FETCH NEXT FROM xc INTO @b,@s
WHILE @@FETCH_STATUS=0 BEGIN
SELECT @x=dbo.fnkt_get_parent(@b,'Plattform')
IF @x<>'' BEGIN
UPDATE @t1 SET berechtigungin=@x WHERE skey=@s
end
FETCH NEXT FROM xc INTO @b,@s
END
CLOSE xc
DEALLOCATE xc
insert @t2 select
funktionsnummer,
funktionsbezeichnung,
plattform ,
verwaltungmit ,
verwaltungdurch ,
berechtigungIn,
berechtigungfuer ,
eigentuemer
from @t1 order by skey
RETURN
END
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_get_tgdata_Data] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnkt_get_tgdata_Data]
(
@itgnummer VARCHAR(255)
)
RETURNS
@t1 TABLE
(
funktionsnummer VARCHAR(255) ,
funktionsbezeichnung VARCHAR(255) ,
plattform VARCHAR(255) ,
verwaltungmit VARCHAR(255) ,
verwaltungdurch VARCHAR(255) ,
berechtigungIn VARCHAR(255) ,
berechtigungfuer VARCHAR(255) ,
eigentuemer VARCHAR(255)
)
AS
BEGIN
DECLARE @fstelle VARCHAR(255)
DECLARE @fnr INT
DECLARE @fbezeichnung VARCHAR(255)
DECLARE @fnummer VARCHAR(255)
DECLARE @parent INT
DECLARE @tgtmp1 TABLE
(
ID INT ,
Bezeichnung VARCHAR(255) ,
Beschreibung VARCHAR(255) ,
Sequenz INT ,
aktiv BIT ,
erstellt_am DATETIME ,
mutiert_am DATETIME ,
mutierer INT ,
typ VARCHAR(255) ,
MKey INT,
Berechtigungstyp VARCHAR(255)
)
DECLARE @tgt1 TABLE
(
funktionsnummer VARCHAR(255) ,
funktionsbezeichnung VARCHAR(255) ,
plattform VARCHAR(255) ,
verwaltungmit VARCHAR(255) ,
verwaltungdurch VARCHAR(255) ,
berechtigungIn VARCHAR(255) ,
berechtigungfuer VARCHAR(255) ,
eigentuemer VARCHAR(255)
)
DECLARE @sql VARCHAR(4096)
DECLARE @tgtmp TABLE ( fstelle VARCHAR(255) )
INSERT @tgtmp
SELECT dbo.Funktionstelle.Funktionsstelle
FROM dbo.Personal INNER JOIN
dbo.Personal_FunktionStelle ON dbo.Personal.Personalnr = dbo.Personal_FunktionStelle.PersonalNr INNER JOIN
dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr
WHERE funktionstelle.aktiv=1 and personal_funktionstelle.aktiv=1 and tgnummer = @itgnummer
DECLARE xx CURSOR
FOR
SELECT fstelle
FROM @tgtmp
OPEN xx
FETCH NEXT FROM xx INTO @fnummer
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @fnr = funktionstellenr
FROM funktionstelle
WHERE funktionsstelle = @fnummer
INSERT @tgt1 SELECT DISTINCT * FROM dbo.fnkt_get_Report_Data(@fnr)
FETCH NEXT FROM xx INTO @fnummer
END
CLOSE xx
DEALLOCATE xx
DECLARE @tg VARCHAR(255)
DECLARE @name VARCHAR(255)
DECLARE @tgtg TABLE
(
tgnummer VARCHAR(255) ,
NAME VARCHAR(255)
)
INSERT @tgtg
SELECT dbo.Personal.TGNummer, dbo.personal.name
FROM dbo.Personal
WHERE tgnummer=@itgnummer
UPDATE @tgt1
SET funktionsnummer = tgnummer, funktionsbezeichnung = name
FROM @tgtg
INSERT @t1
SELECT DISTINCT *
FROM @tgt1
ORDER BY verwaltungdurch, plattform, verwaltungmit
RETURN
END
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_split] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
CREATE FUNCTION [dbo].[fnkt_split]
(
@sInputList varchar(8000) -- List of delimited items
, @Delimiter char(2) = ',' -- delimiter that separates items
, @Delimiterlength INT = 1
)
RETURNS @tmp1 TABLE (item varchar(8000))
AS
begin
DECLARE @Item VARCHAR(8000)
WHILE CHARINDEX(@Delimiter, @sInputList, 0) <> 0
BEGIN
SELECT @Item = RTRIM(LTRIM(SUBSTRING(@sInputList, 1, CHARINDEX(@Delimiter, @sInputList, 0) - 1))),
@sInputList = RTRIM(LTRIM(SUBSTRING(@sInputList, CHARINDEX(@Delimiter, @sInputList, 0) + @Delimiterlength, LEN(@sInputList))))
IF LEN(@Item) > 0
INSERT INTO @tmp1
SELECT @Item
END
IF LEN(@sInputList) > 0
INSERT INTO @tmp1
SELECT @sInputList
RETURN
end
GO
/****** Object: UserDefinedFunction [dbo].[fnkt_split_1] Script Date: 13.12.2014 15:01:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
Create FUNCTION [dbo].[fnkt_split_1]
(
@sInputList varchar(8000) -- List of delimited items
, @Delimiter char(1) = ',' -- delimiter that separates items
, @Delimiterlength INT = 1
)
RETURNS @tmp1 TABLE (item varchar(8000))
AS
begin
DECLARE @Item VARCHAR(8000)
WHILE CHARINDEX(@Delimiter, @sInputList, 0) <> 0
BEGIN
SELECT @Item = RTRIM(LTRIM(SUBSTRING(@sInputList, 1, CHARINDEX(@Delimiter, @sInputList, 0) - 1))),
@sInputList = RTRIM(LTRIM(SUBSTRING(@sInputList, CHARINDEX(@Delimiter, @sInputList, 0) + @Delimiterlength, LEN(@sInputList))))
IF LEN(@Item) > 0
INSERT INTO @tmp1
SELECT @Item
END
IF LEN(@sInputList) > 0
INSERT INTO @tmp1
SELECT @sInputList
RETURN
end
GO