USE [BEA]
GO

/****** Object:  StoredProcedure [dbo].[update_personal_massenmutation]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[update_personal_massenmutation]
GO

/****** Object:  StoredProcedure [dbo].[update_personal_from_excel]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[update_personal_from_excel]
GO

/****** Object:  StoredProcedure [dbo].[update_merkmap]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[update_merkmap]
GO

/****** Object:  StoredProcedure [dbo].[update_massenmutation]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[update_massenmutation]
GO

/****** Object:  StoredProcedure [dbo].[update_massendaten]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[update_massendaten]
GO

/****** Object:  StoredProcedure [dbo].[sp_update_spalten]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_update_spalten]
GO

/****** Object:  StoredProcedure [dbo].[sp_tooltips]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_tooltips]
GO

/****** Object:  StoredProcedure [dbo].[sp_sysobjects_select]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_sysobjects_select]
GO

/****** Object:  StoredProcedure [dbo].[sp_set_Temporaerberechtigung]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_set_Temporaerberechtigung]
GO

/****** Object:  StoredProcedure [dbo].[sp_search_split]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_search_split]
GO

/****** Object:  StoredProcedure [dbo].[sp_rptparams_get_tgnummer]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rptparams_get_tgnummer]
GO

/****** Object:  StoredProcedure [dbo].[sp_rptparams_get_funktionsnummer]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rptparams_get_funktionsnummer]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_Vergleiche_differenz]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_Vergleiche_differenz]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_Vergleiche]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_Vergleiche]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_user]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_user]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_tgnummer_fnktstelle]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_tgnummer_fnktstelle]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_tgnummer_data-sik]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_tgnummer_data-sik]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_tgnummer]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_tgnummer]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_Logfile]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_Logfile]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_get_auswertungparameter]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_get_auswertungparameter]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionstelle_Vergleich_vollstaendig]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_funktionstelle_Vergleich_vollstaendig]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionstelle_Vergleich]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_funktionstelle_Vergleich]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionstelle]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_funktionstelle]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionsstellen_detail]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_funktionsstellen_detail]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionsstellen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_funktionsstellen]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_cid_detail]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_cid_detail]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_cid]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_cid]
GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_beziehungstyp]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_rpt_beziehungstyp]
GO

/****** Object:  StoredProcedure [dbo].[sp_mitarbeiter_auswertungparamter_selectall]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_mitarbeiter_auswertungparamter_selectall]
GO

/****** Object:  StoredProcedure [dbo].[sp_insert_journal]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_insert_journal]
GO

/****** Object:  StoredProcedure [dbo].[sp_getset_windowsize]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_getset_windowsize]
GO

/****** Object:  StoredProcedure [dbo].[sp_getSet_Verwaltung_Mit]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_getSet_Verwaltung_Mit]
GO

/****** Object:  StoredProcedure [dbo].[sp_getSet_Verwaltung_durch]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_getSet_Verwaltung_durch]
GO

/****** Object:  StoredProcedure [dbo].[sp_getSet_Dateneigentuemer]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_getSet_Dateneigentuemer]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_Verwaltung_mit_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_Verwaltung_mit_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_Verwaltung_durch_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_Verwaltung_durch_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_temporaetberechtigung]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_temporaetberechtigung]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_temporaerberechtigung]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_temporaerberechtigung]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_tempberechtigung]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_tempberechtigung]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_sysadmin_tree]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_sysadmin_tree]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_sysadmin_hierarchie_data]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_sysadmin_hierarchie_data]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_struktur]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_struktur]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_stammdaten]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_stammdaten]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_Server_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_Server_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_plattform_beziehungen_sik]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_plattform_beziehungen_sik]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_plattform_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_plattform_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_personal_funktionstelle]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_personal_funktionstelle]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_personal_by_tgnummer]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_personal_by_tgnummer]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_personal_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_personal_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_Parentvalues]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_Parentvalues]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_FunktionstelleMitarbeiter]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_FunktionstelleMitarbeiter]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_funktionstelle_by_funktionstelle]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_funktionstelle_by_funktionstelle]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_funktionstelle_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_funktionstelle_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_dbkey]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_dbkey]
GO

/****** Object:  StoredProcedure [dbo].[sp_get_berechtigung_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_get_berechtigung_beziehungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_delete_Tempberechtigung]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_delete_Tempberechtigung]
GO

/****** Object:  StoredProcedure [dbo].[sp_delete_childs]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_delete_childs]
GO

/****** Object:  StoredProcedure [dbo].[sp_Auswertung_Get_Auswertungen]    Script Date: 13.12.2014 15:01:05 ******/
DROP PROCEDURE [dbo].[sp_Auswertung_Get_Auswertungen]
GO

/****** Object:  StoredProcedure [dbo].[sp_Auswertung_Get_Auswertungen]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create proc  [dbo].[sp_Auswertung_Get_Auswertungen] 
@mitarbeiternr int
as
CREATE TABLE #tmpd(
	[ID] [int]  ,
	[bezeichnung] [varchar] (255) null,
	[parentid] [int] null,
	[Auswertungnr] [int],
    [beschreibung] [varchar] (1024) null
) ON [PRIMARY]

declare @id int
declare @gnr int
declare @anr int
declare @bez varchar(255)
declare @pid int
declare @gnr1 int
declare @gbez varchar(255)
declare @cnt int
declare @besch varchar(1024)
set @id=1000
declare xc cursor for
   SELECT DISTINCT   dbo.auswertunggruppeauswertung.auswertunggruppenr as auswertunggruppenr, dbo.auswertung.auswertungnr,
                     dbo.auswertung.bezeichnung as auswertung, dbo.auswertung.beschreibung
   FROM         dbo.AuswertungGruppe INNER JOIN
                      dbo.funktionsgruppe_auswertungGruppe ON dbo.AuswertungGruppe.AuswertungGruppeNr = dbo.funktionsgruppe_auswertungGruppe.AuswertungGruppeNr INNER JOIN
                      dbo.funktionsgruppe ON dbo.funktionsgruppe_auswertungGruppe.funktionsgruppenr = dbo.funktionsgruppe.funktionsgruppenr INNER JOIN
                      dbo.mitarbeiter_funktionsgruppe ON dbo.funktionsgruppe.funktionsgruppenr = dbo.mitarbeiter_funktionsgruppe.funktionsgruppenr INNER JOIN
                      dbo.AuswertungGruppeAuswertung ON dbo.AuswertungGruppe.AuswertungGruppeNr = dbo.AuswertungGruppeAuswertung.AuswertungGruppeNr INNER JOIN
                      dbo.Auswertung ON dbo.AuswertungGruppeAuswertung.AuswertungNr = dbo.Auswertung.AuswertungNr
   WHERE     (dbo.AuswertungGruppe.Aktiv = 1) AND (dbo.funktionsgruppe_auswertungGruppe.Aktiv = 1) AND (dbo.funktionsgruppe.aktiv = 1) AND 
                      (dbo.mitarbeiter_funktionsgruppe.aktiv = 1) AND (dbo.AuswertungGruppeAuswertung.Aktiv = 1) AND (dbo.Auswertung.Aktiv = 1) AND 
                      (dbo.mitarbeiter_funktionsgruppe.mitarbeiternr = @mitarbeiternr)
open xc
fetch next from xc into @gnr, @anr, @bez, @besch
while @@fetch_status=0 begin
   set @id=@id+1
   insert #tmpd(id, bezeichnung, parentid, auswertungnr, beschreibung) values (@id, @bez, @gnr, @anr, @besch)
   
   set @pid=@gnr
   while @pid>0 begin
      select @gnr1=auswertunggruppenr, @gbez=bezeichnung, @pid=parentid from auswertunggruppe where auswertunggruppenr=@gnr
      select @cnt=count(*) from #tmpd where id=@gnr1
      if @cnt=0  insert #tmpd(id, bezeichnung, parentid, auswertungnr, beschreibung) values (@gnr1,@gbez,@pid,0,'')
      set @gnr=@pid
   end
   fetch next from xc into @gnr, @anr, @bez, @besch
end
close xc
deallocate xc
insert #tmpd (id, bezeichnung, parentid, auswertungnr, beschreibung) values (0, 'root',null,null,null)
select * from #tmpd order by bezeichnung
drop table #tmpd 

return


   




GO

/****** Object:  StoredProcedure [dbo].[sp_delete_childs]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_delete_childs]
   @keyvalue INT,
   @mutierer INT,
   @table VARCHAR(255)
AS
BEGIN
   DECLARE @key int
   IF @table='Berechtigung' BEGIN
      DECLARE xc CURSOR FOR SELECT berechtigung_plattformnr FROM dbo.Berechtigung_Plattform WHERE berechtigungnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Berechtigung_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Berechtigung_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Berechtigung_Servernr FROM dbo.Berechtigung_Server WHERE berechtigungnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Berechtigung_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Berechtigung_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
      DECLARE xc CURSOR FOR SELECT Funktionstelle_Berechtigungnr FROM dbo.Funktionstelle_Berechtigung WHERE berechtigungnr=@keyvalue  AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Funktionstelle_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Funktionstelle_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
      DECLARE xc CURSOR FOR SELECT Personal_BerechtigungNr FROM dbo.Personal_Berechtigung WHERE berechtigungnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Personal_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
      DECLARE xc CURSOR FOR SELECT Plattform_BerechtigungNr FROM dbo.Plattform_Berechtigung WHERE berechtigungnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Plattform_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Plattform_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
      DECLARE xc CURSOR FOR SELECT Verwaltung_Durch_BerechtigungNr FROM dbo.Verwaltung_Durch_Berechtigung WHERE berechtigungnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Durch_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Durch_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
      DECLARE xc CURSOR FOR SELECT Verwaltung_mit_BerechtigungNr FROM dbo.Verwaltung_mit_Berechtigung WHERE berechtigungnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_mit_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_mit_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
      --UPDATE dbo.Berechtigung_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE BerechtigungNr=@keyvalue
      --UPDATE dbo.Funktionstelle_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE BerechtigungNr=@keyvalue
      --UPDATE dbo.Personal_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE BerechtigungNr=@keyvalue
      --UPDATE dbo.Plattform_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE BerechtigungNr=@keyvalue
      --UPDATE dbo.Verwaltung_Durch_Berechtigung SET Aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE BerechtigungNr=@keyvalue
      --UPDATE dbo.Verwaltung_mit_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE BerechtigungNr=@keyvalue
   END   
   IF @table='Funktionstelle' BEGIN
      DECLARE xc CURSOR FOR SELECT Funktionstelle_BerechtigungNr FROM dbo.Funktionstelle_Berechtigung WHERE FunktionstelleNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Funktionstelle_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Funktionstelle_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT FunktionStelle_PlattformNr FROM dbo.FunktionStelle_Plattform WHERE FunktionstelleNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.FunktionStelle_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE FunktionStelle_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT FunktionStelle_ServerNr FROM dbo.FunktionStelle_Server WHERE FunktionstelleNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.FunktionStelle_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE FunktionStelle_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Personal_FunktionStelleNr FROM dbo.Personal_FunktionStelle WHERE FunktionstelleNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Personal_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_FunktionStelleNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Mit_FunktionStelleNr FROM dbo.Verwaltung_Mit_FunktionStelle WHERE FunktionstelleNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Mit_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Mit_FunktionStelleNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

 
 
      --UPDATE dbo.Funktionstelle_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE FunktionstelleNr=@keyvalue
      --UPDATE dbo.FunktionStelle_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE FunktionstelleNr=@keyvalue
      --UPDATE dbo.FunktionStelle_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE FunktionstelleNr=@keyvalue
      --UPDATE dbo.Personal_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE FunktionstelleNr=@keyvalue
      --UPDATE dbo.Verwaltung_Mit_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE FunktionstelleNr=@keyvalue
   END   
   IF @table='Personal' BEGIN
      DECLARE xc CURSOR FOR SELECT Personal_BerechtigungNr FROM dbo.Personal_Berechtigung WHERE PersonalNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Personal_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
     
      DECLARE xc CURSOR FOR SELECT Personal_FunktionStelleNr FROM dbo.Personal_FunktionStelle WHERE PersonalNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Personal_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_FunktionStelleNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Personal_PlattformNr FROM dbo.Personal_Plattform WHERE PersonalNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Personal_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Personal_ServerNr FROM dbo.Personal_Server WHERE PersonalNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Personal_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc
     
     
     
      --UPDATE dbo.Personal_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PersonalNr=@keyvalue
      --UPDATE dbo.Personal_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PersonalNr=@keyvalue
      --UPDATE dbo.Personal_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PersonalNr=@keyvalue
      --UPDATE dbo.Personal_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PersonalNr=@keyvalue
   END   
   IF @table='Plattform' BEGIN
      DECLARE xc CURSOR FOR SELECT Plattform_BerechtigungNr FROM dbo.Plattform_Berechtigung WHERE Plattformnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Plattform_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Plattform_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Plattform_ServerNr FROM dbo.Plattform_Server WHERE Plattformnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Plattform_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Plattform_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc


      DECLARE xc CURSOR FOR SELECT FunktionStelle_PlattformNr FROM dbo.FunktionStelle_Plattform WHERE Plattformnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.FunktionStelle_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE FunktionStelle_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Durch_PlattformNr FROM dbo.Verwaltung_Durch_Plattform WHERE Plattformnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Durch_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Durch_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Mit_PlattformNr FROM dbo.Verwaltung_Mit_Plattform WHERE Plattformnr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Mit_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Mit_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

     --UPDATE dbo.Plattform_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Plattform_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Berechtigung_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.FunktionStelle_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Verwaltung_Durch_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Verwaltung_Mit_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
   END   
   IF @table='Verwaltung_durch' BEGIN
      DECLARE xc CURSOR FOR SELECT Verwaltung_Durch_BerechtigungNr FROM dbo.Verwaltung_Durch_Berechtigung WHERE Verwaltung_DurchNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Durch_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Durch_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Durch_PlattformNr FROM dbo.Verwaltung_Durch_Plattform WHERE Verwaltung_DurchNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Durch_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Durch_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc


      DECLARE xc CURSOR FOR SELECT Verwaltung_Durch_ServerNr FROM dbo.Verwaltung_Durch_Server WHERE Verwaltung_DurchNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Durch_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Durch_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc


      --UPDATE dbo.Verwaltung_Durch_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_durchnr=@keyvalue
      --UPDATE dbo.Verwaltung_Durch_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_durchnr=@keyvalue
      --UPDATE dbo.Verwaltung_Durch_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_durchnr=@keyvalue
   END   
   IF @table='Verwaltung_mit' BEGIN
      DECLARE xc CURSOR FOR SELECT Verwaltung_mit_BerechtigungNr FROM dbo.Verwaltung_mit_Berechtigung WHERE Verwaltung_mitNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_mit_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_mit_BerechtigungNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Mit_FunktionStelleNr FROM dbo.Verwaltung_Mit_FunktionStelle WHERE Verwaltung_mitNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Mit_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Mit_FunktionStelleNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Mit_PlattformNr FROM dbo.Verwaltung_Mit_Plattform WHERE Verwaltung_mitNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Mit_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Mit_PlattformNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Mit_ServerNr FROM dbo.Verwaltung_Mit_Server WHERE Verwaltung_mitNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Mit_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Mit_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

     --UPDATE dbo.Verwaltung_mit_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_mitnr=@keyvalue
     -- UPDATE dbo.Verwaltung_Mit_FunktionStelle SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_mitnr=@keyvalue
     -- UPDATE dbo.Verwaltung_Mit_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_mitnr=@keyvalue
     -- UPDATE dbo.Verwaltung_Mit_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE Verwaltung_mitnr=@keyvalue
   END   

      IF @table='Server' BEGIN
      DECLARE xc CURSOR FOR SELECT Personal_Servernr FROM dbo.Personal_Server WHERE servernr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.personal_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Personal_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Plattform_ServerNr FROM dbo.Plattform_Server WHERE Servernr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Plattform_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Plattform_ServerNr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc


      DECLARE xc CURSOR FOR SELECT Verwaltung_Durch_servernr FROM dbo.Verwaltung_Durch_server WHERE ServerNr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Durch_server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Durch_servernr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

      DECLARE xc CURSOR FOR SELECT Verwaltung_Mit_servernr FROM dbo.Verwaltung_Mit_server WHERE servernr=@keyvalue AND aktiv=1
      OPEN xc
      FETCH NEXT FROM xc INTO @key
      WHILE @@FETCH_STATUS=0 BEGIN
         UPDATE dbo.Verwaltung_Mit_server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE() WHERE Verwaltung_Mit_servernr=@key
         FETCH NEXT FROM xc INTO @key
      END
      CLOSE xc
      DEALLOCATE xc

     --UPDATE dbo.Plattform_Berechtigung SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Plattform_Server SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Berechtigung_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.FunktionStelle_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Verwaltung_Durch_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
     -- UPDATE dbo.Verwaltung_Mit_Plattform SET aktiv=0, mutierer=@mutierer, mutiert_am = GETDATE()  WHERE PlattformNr=@keyvalue
   END   



END


GO

/****** Object:  StoredProcedure [dbo].[sp_delete_Tempberechtigung]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [dbo].[sp_delete_Tempberechtigung]
@keyvalue int,
@mitarbeiternr int
AS
BEGIN
	SET NOCOUNT ON;
	UPDATE dbo.Temporaer_Berechtigung SET aktiv=0, mutierer=@mitarbeiternr, mutiert_am=GETDATE() WHERE [NrTempBerechtigung] = @keyvalue
END


GO

/****** Object:  StoredProcedure [dbo].[sp_get_berechtigung_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_berechtigung_beziehungen]
    @keyvalue INT ,
    @typ INT = 0
AS 
    BEGIN
        DECLARE @tmp1 TABLE
            (
              ID INT ,
              Bezeichnung VARCHAR(255) ,
              Zusatz 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
            )   
  
        SET NOCOUNT ON;    

        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                  cid  
                )
                SELECT TOP ( 100 ) PERCENT
                        dbo.Berechtigung_Plattform.Berechtigung_PlattformNr ,
                        dbo.Plattform.Bezeichnung ,
                        dbo.Berechtigung_Plattform.Sequenz ,
                        dbo.Berechtigung_Plattform.Beschreibung ,
                        dbo.Berechtigung_Plattform.Aktiv ,
                        dbo.Berechtigung_Plattform.Erstellt_am ,
                        dbo.Berechtigung_Plattform.Mutiert_am ,
                        dbo.Berechtigung_Plattform.Mutierer ,
                        dbo.fnkt_get_bezeichnung(3) AS Typ ,
                        Berechtigung_Plattform.PlattformNr ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                        dbo.Plattform.cid
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Berechtigung_Plattform ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Plattform.berechtigungNr
                        INNER JOIN dbo.Plattform ON dbo.Berechtigung_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Berechtigung_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   ( dbo.Berechtigung.BerechtigungNr = @keyvalue )

        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                             cid
                )
                SELECT  dbo.Plattform_Berechtigung.Plattform_BerechtigungNr ,
                        dbo.Plattform.Bezeichnung ,
                        dbo.Plattform_Berechtigung.Sequenz ,
                        dbo.Plattform_Berechtigung.Beschreibung ,
                        dbo.Plattform_Berechtigung.Aktiv ,
                        dbo.Plattform_Berechtigung.Erstellt_am ,
                        dbo.Plattform_Berechtigung.Mutiert_am ,
                        dbo.Plattform_Berechtigung.Mutierer ,
                        dbo.fnkt_get_bezeichnung(3) AS Typ ,
                        dbo.plattform.Plattformnr AS MKEY ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp,
                                        plattform.cid 
                FROM    dbo.Plattform_Berechtigung
                        INNER JOIN dbo.Plattform ON dbo.Plattform_Berechtigung.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Berechtigung ON dbo.Plattform_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Plattform_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   dbo.Berechtigung.BerechtigungNr = @keyvalue 

        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp,
                             cid  
                )
                SELECT TOP ( 100 ) PERCENT
                        dbo.Berechtigung_Server.Berechtigung_ServerNr ,
                        dbo.Server.Bezeichnung ,
                        dbo.Berechtigung_Server.Sequenz ,
                        dbo.Berechtigung_Server.Beschreibung ,
                        dbo.Berechtigung_Server.Aktiv ,
                        dbo.Berechtigung_Server.Erstellt_am ,
                        dbo.Berechtigung_Server.Mutiert_am ,
                        dbo.Berechtigung_Server.Mutierer ,
                        dbo.fnkt_get_bezeichnung(4) AS Typ ,
                        Berechtigung_Server.ServerNr ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp,
                                        server.cid
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Berechtigung_Server ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Server.berechtigungNr
                        INNER JOIN dbo.Server ON dbo.Berechtigung_Server.ServerNr = dbo.Server.ServerNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Berechtigung_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   ( dbo.Berechtigung.BerechtigungNr = @keyvalue )


        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Zusatz ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                  cid  
                )
                SELECT  dbo.Funktionstelle_Berechtigung.Funktionstelle_BerechtigungNr ,
                        dbo.Funktionstelle.Bezeichnung ,
                        ISNULL(dbo.Funktionstelle.Funktionsstelle, '') ,
                        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(1) AS Typ ,
                        dbo.Funktionstelle_Berechtigung.FunktionstelleNr ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                        dbo.funktionstelle.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_Berechtigung.BerechtigungNr = @keyvalue )


        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                  temp  
                )
                SELECT  dbo.Personal_Berechtigung.Personal_BerechtigungNr ,
                        dbo.Personal.Bezeichnung + ' ' + dbo.Personal.Name ,
                        dbo.Personal_Berechtigung.Sequenz ,
                        dbo.Personal_Berechtigung.Beschreibung ,
                        dbo.Personal_Berechtigung.Aktiv ,
                        dbo.Personal_Berechtigung.Erstellt_am ,
                        dbo.Personal_Berechtigung.Mutiert_am ,
                        dbo.Personal_Berechtigung.Mutierer ,
                        dbo.fnkt_get_bezeichnung(2) AS Typ ,
                        dbo.Personal.Personalnr ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                        dbo.fnkt_get_temporaer(dbo.Personal_Berechtigung.Personal_BerechtigungNr)
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Personal_Berechtigung ON dbo.Berechtigung.BerechtigungNr = dbo.Personal_Berechtigung.BerechtigungNr
                        INNER JOIN dbo.Personal ON dbo.Personal_Berechtigung.PersonalNr = dbo.Personal.Personalnr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Personal_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   ( dbo.Personal_Berechtigung.BerechtigungNr = @keyvalue )
				and dbo.personal_berechtigung.Beziehungstypnr > -25
        IF @typ = 1 
            BEGIN
                INSERT  @tmp1
                        ( ID ,
                          Bezeichnung ,
                          Sequenz ,
                          Beschreibung ,
                          aktiv ,
                          erstellt_am ,
                          mutiert_am ,
                          mutierer ,
                          typ ,
                          mkey ,
                          beziehungstyp  
                        )
                        SELECT  dbo.Personal_Berechtigung.Personal_BerechtigungNr ,
                                dbo.Personal.Bezeichnung + ' '
                                + dbo.Personal.Name ,
                                dbo.Personal_Berechtigung.Sequenz ,
                                dbo.Personal_Berechtigung.Beschreibung ,
                                dbo.Personal_Berechtigung.Aktiv ,
                                dbo.Personal_Berechtigung.Erstellt_am ,
                                dbo.Personal_Berechtigung.Mutiert_am ,
                                dbo.Personal_Berechtigung.Mutierer ,
                                dbo.fnkt_get_bezeichnung(2) AS Typ ,
                                dbo.Personal.Personalnr ,
                                dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                        FROM    dbo.Berechtigung
                                INNER JOIN dbo.Personal_Berechtigung ON dbo.Berechtigung.BerechtigungNr = dbo.Personal_Berechtigung.BerechtigungNr
                                INNER JOIN dbo.Personal ON dbo.Personal_Berechtigung.PersonalNr = dbo.Personal.Personalnr
                                INNER JOIN dbo.Beziehungstyp ON dbo.Personal_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                        WHERE   ( dbo.Personal_Berechtigung.BerechtigungNr = @keyvalue )
                      
                INSERT  @tmp1
                        ( ID ,
                          Bezeichnung ,
                          Sequenz ,
                          Beschreibung ,
                          aktiv ,
                          erstellt_am ,
                          mutiert_am ,
                          mutierer ,
                          typ ,
                          mkey ,
                          beziehungstyp  
                        )
                        SELECT  dbo.Verwaltung_Durch_Berechtigung.Verwaltung_Durch_BerechtigungNr ,
                                dbo.Verwaltung_durch.Bezeichnung ,
                                dbo.Verwaltung_Durch_Berechtigung.Sequenz ,
                                dbo.Verwaltung_Durch_Berechtigung.Beschreibung ,
                                dbo.Verwaltung_Durch_Berechtigung.Aktiv ,
                                dbo.Verwaltung_Durch_Berechtigung.Erstellt_am ,
                                dbo.Verwaltung_Durch_Berechtigung.Mutiert_am ,
                                dbo.Verwaltung_Durch_Berechtigung.Mutierer ,
                                dbo.fnkt_get_bezeichnung(5) AS Typ ,
                                dbo.Verwaltung_Durch_Berechtigung.Verwaltung_DurchNr AS MKEY ,
                                dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                        FROM    dbo.Verwaltung_durch
                                INNER JOIN dbo.Verwaltung_Durch_Berechtigung ON dbo.Verwaltung_durch.Verwaltung_durchNr = dbo.Verwaltung_Durch_Berechtigung.Verwaltung_DurchNr
                                INNER JOIN dbo.Berechtigung ON dbo.Verwaltung_Durch_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                                INNER JOIN dbo.Beziehungstyp ON dbo.Verwaltung_Durch_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                        WHERE   Verwaltung_Durch_Berechtigung.BerechtigungNr = @keyvalue


                INSERT  @tmp1
                        ( ID ,
                          Bezeichnung ,
                          Sequenz ,
                          Beschreibung ,
                          aktiv ,
                          erstellt_am ,
                          mutiert_am ,
                          mutierer ,
                          typ ,
                          mkey ,
                          beziehungstyp  
                        )
                        SELECT  dbo.Verwaltung_mit_Berechtigung.Verwaltung_mit_BerechtigungNr ,
                                dbo.Verwaltung_mit.Bezeichnung ,
                                dbo.Verwaltung_mit_Berechtigung.Sequenz ,
                                dbo.Verwaltung_mit_Berechtigung.Beschreibung ,
                                dbo.Verwaltung_mit_Berechtigung.Aktiv ,
                                dbo.Verwaltung_mit_Berechtigung.Erstellt_am ,
                                dbo.Verwaltung_mit_Berechtigung.Mutiert_am ,
                                dbo.Verwaltung_mit_Berechtigung.Mutierer ,
                                dbo.fnkt_get_bezeichnung(6) AS Typ ,
                                dbo.Verwaltung_mit_Berechtigung.Verwaltung_mitNr AS MKEY ,
                                dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                        FROM    dbo.Verwaltung_mit
                                INNER JOIN dbo.Verwaltung_mit_Berechtigung ON dbo.Verwaltung_mit.Verwaltung_mitNr = dbo.Verwaltung_mit_Berechtigung.Verwaltung_mitNr
                                INNER JOIN dbo.Berechtigung ON dbo.Verwaltung_mit_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                                INNER JOIN dbo.Beziehungstyp ON dbo.Verwaltung_mit_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                        WHERE   Verwaltung_mit_Berechtigung.BerechtigungNr = @keyvalue
            END
        UPDATE  @tmp1
        SET     cid = 0
        WHERE   cid IS NULL
        
        SELECT  *
        FROM    @tmp1
        ORDER BY typ ,
                Sequenz ,
                Bezeichnung


     
     -- DECLARE @sql VARCHAR(1024)
      
     -- select @sql = dbo.fnkt_get_beziehung_sql('Berechtigung','Plattform',3,@keyvalue,'dbo.Berechtigung.BerechtigungNr',0,0) 
     -- INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
     -- EXEC (@sql)
     -- PRINT @sql
      
     -- select @sql = dbo.fnkt_get_beziehung_sql('Berechtigung','Server',4,@keyvalue,'dbo.Berechtigung.BerechtigungNr',0,0) 
     -- INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
     -- EXEC (@sql)
     -- PRINT @sql
      
     -- select @sql = dbo.fnkt_get_beziehung_sql('FunktionStelle','Berechtigung',1,@keyvalue,'dbo.Berechtigung.BerechtigungNr',0,0) 
     -- INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
     -- EXEC (@sql)
     -- PRINT @sql

     -- select @sql = dbo.fnkt_get_beziehung_sql('Personal','Berechtigung',2,@keyvalue,'dbo.Berechtigung.BerechtigungNr',0,0) 
     -- INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
     -- EXEC (@sql)
     -- PRINT @sql

     -- select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Durch','Berechtigung',5,@keyvalue,'dbo.Berechtigung.BerechtigungNr',0,0) 
     -- INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
     -- EXEC (@sql)
     -- PRINT @sql

     -- select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Mit','Berechtigung',6,@keyvalue,'dbo.Berechtigung.BerechtigungNr',0,0) 
     -- INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
     -- EXEC (@sql)
     -- PRINT @sql
    
     --SELECT    *
     -- FROM      @tmp1
     -- ORDER BY  typ, Sequenz, Bezeichnung
     -- return
      
    END





GO

/****** Object:  StoredProcedure [dbo].[sp_get_dbkey]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_dbkey]
       @tablename VARCHAR(255) ,
       @dbkey INT OUTPUT ,
       @iErrorcode INT OUTPUT
AS 
BEGIN
     DECLARE @rc INT
     SELECT @rc=COUNT(*) FROM dbo.key_tabelle WHERE beschreibung=@tablename
     IF @rc=0 SET @tablename='Schluessel'
     declare @zwkey int
	select @zwkey = key_wert from key_tabelle where beschreibung = @tablename
	set @zwkey = @zwkey + 1
	update key_tabelle set key_wert = @zwkey where beschreibung=@tablename
	select @dbkey = @zwkey
	select @iErrorCode=@@Error
END






GO

/****** Object:  StoredProcedure [dbo].[sp_get_funktionstelle_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_funktionstelle_beziehungen] @keyvalue INT, @typ INT = 0
AS 
BEGIN
      DECLARE @tmp1 TABLE
(
  ID INT ,
  Bezeichnung VARCHAR(255) ,
  Zusatz VARCHAR(255),
  Beschreibung VARCHAR(255) ,
  Sequenz INT ,
  aktiv BIT ,
  erstellt_am DATETIME ,
  mutiert_am DATETIME ,
  mutierer INT ,
  typ VARCHAR(255) ,
  MKey INT,
  CID INT,
  Temp int
)   
      SET NOCOUNT ON;
       
      
      SELECT * FROM dbo.fnkt_funktionstelle_beziehung(@keyvalue) ORDER BY typ, Sequenz,Bezeichnung
      RETURN

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,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.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
                WHERE   ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue )


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,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.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
                WHERE   ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue )


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,cid )
                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.server.cid

                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
                WHERE   ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue )


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,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.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
                WHERE   ( dbo.Funktionstelle.FunktionstelleNr = @keyvalue )
   
 UPDATE @tmp1 SET cid=0 WHERE cid IS NULL
      SELECT    *
      FROM      @tmp1
      ORDER BY  typ, Sequenz, Bezeichnung

END



GO

/****** Object:  StoredProcedure [dbo].[sp_get_funktionstelle_by_funktionstelle]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_funktionstelle_by_funktionstelle]
       @FunktionStelle VARCHAR(255) ,
       @resultat VARCHAR(1024) OUTPUT
AS 
BEGIN
      SELECT    @resultat = funktionstellenr
      FROM      dbo.Funktionstelle
      WHERE     Funktionsstelle = @FunktionStelle
END



GO

/****** Object:  StoredProcedure [dbo].[sp_get_FunktionstelleMitarbeiter]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_FunktionstelleMitarbeiter]
       @funktionstellenr INT
AS 
BEGIN
      SET NOCOUNT ON;
      SELECT TOP ( 100 ) PERCENT
                dbo.Personal.Personalnr, dbo.Personal.ParentID, dbo.Personal.Bezeichnung, dbo.Personal.Beschreibung, dbo.personal.name, dbo.Personal.TGNummer,
                dbo.Personal.Aktiv, dbo.Personal.Erstellt_am, dbo.Personal.Mutiert_am, dbo.Personal.Mutierer
      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     ( dbo.Funktionstelle.FunktionstelleNr = @funktionstellenr )
      ORDER BY  dbo.Personal.TGNummer
END



GO

/****** Object:  StoredProcedure [dbo].[sp_get_Parentvalues]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_Parentvalues]
    @objekt VARCHAR(255),
	@parentid INT
AS
BEGIN
    DECLARE @parent_vm int
	DECLARE @parent_vd INT
    DECLARE @parent_DE INT
	  
    IF @objekt='Berechtigung' BEGIN
       SELECT @parent_vd=ISNULL(verwaltung_durchnr,0) FROM verwaltung_durch_berechtigung WHERE berechtigungnr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_vd=0
       SELECT @parent_vm=ISNULL(verwaltung_mitnr,0) FROM verwaltung_mit_berechtigung WHERE berechtigungnr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_vm=0
	   SELECT @parent_de=ISNULL(PersonalNr,0) FROM dbo.Personal_Berechtigung where berechtigungnr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_de=0
	   SELECT @parent_vm, @parent_vd,@parent_DE
    END

	IF @objekt='Plattform' BEGIN
       SELECT @parent_vd=ISNULL(verwaltung_durchnr,0) FROM verwaltung_durch_Plattform WHERE Plattformnr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_vd=0
       SELECT @parent_vm=ISNULL(verwaltung_mitnr,0) FROM verwaltung_mit_Plattform WHERE Plattformnr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_vm=0
	   SELECT @parent_de=ISNULL(PersonalNr,0) FROM dbo.Personal_Plattform where Plattformnr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_de=0   
	   SELECT @parent_vm, @parent_vd,@parent_DE
    END
	   
    IF @objekt='Server' BEGIN
       SELECT @parent_vd=ISNULL(verwaltung_durchnr,0) FROM verwaltung_durch_Server WHERE Servernr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_vd=0
       SELECT @parent_vm=ISNULL(verwaltung_mitnr,0) FROM verwaltung_mit_Server WHERE Servernr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_vm=0
	   SELECT @parent_de=ISNULL(PersonalNr,0) FROM dbo.Personal_Server where Servernr=@parentid AND Aktiv=1
	   IF @@ROWCOUNT=0 SET @parent_de=0   
	   SELECT @parent_vm, @parent_vd,@parent_DE
    END      
END


GO

/****** Object:  StoredProcedure [dbo].[sp_get_personal_beziehungen]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_personal_beziehungen] @keyvalue INT, @typ INT = 0
AS 
BEGIN
      DECLARE @tmp1 TABLE
(
  ID INT ,
  Bezeichnung VARCHAR(255) ,
  Zusatz 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

)   
      SET NOCOUNT ON;
      DECLARE @sql VARCHAR(1024)



      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,temp,cid  )
                SELECT  dbo.Personal_Berechtigung.Personal_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Personal_Berechtigung.Sequenz,
                        dbo.Personal_Berechtigung.Beschreibung, dbo.Personal_Berechtigung.Aktiv, dbo.Personal_Berechtigung.Erstellt_am,
                        dbo.Personal_Berechtigung.Mutiert_am, dbo.Personal_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
                        dbo.Berechtigung.BerechtigungNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp,
                                         dbo.fnkt_get_temporaer(dbo.Personal_Berechtigung.Personal_BerechtigungNr), berechtigung.CID
                                        
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Personal_Berechtigung ON dbo.Berechtigung.BerechtigungNr = dbo.Personal_Berechtigung.BerechtigungNr
                        INNER JOIN dbo.Personal ON dbo.Personal_Berechtigung.PersonalNr = dbo.Personal.Personalnr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Personal_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                      WHERE   Personal.personalnr = @keyvalue 

      INSERT    @tmp1 ( ID, Bezeichnung, Zusatz, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp, temp, cid  )
                SELECT  dbo.Personal_FunktionStelle.Personal_FunktionStelleNr, dbo.Funktionstelle.Bezeichnung, ISNULL(dbo.Funktionstelle.Funktionsstelle,''), 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(1) AS Typ,
                        dbo.Funktionstelle.FunktionstelleNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp, dbo.fnkt_get_temporaer(dbo.Personal_FunktionStelle.Personal_FunktionStelleNr)
                                        , dbo.fnkt_get_personalcid(dbo.funktionstelle.funktionstellenr)
                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
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Personal_FunktionStelle.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                      WHERE   Personal.personalnr = @keyvalue                      

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,temp,cid  )
                SELECT  dbo.Personal_Plattform.Personal_PlattformNr, dbo.Plattform.Bezeichnung, dbo.Personal_Plattform.Sequenz,
                        dbo.Personal_Plattform.Beschreibung, dbo.Personal_Plattform.Aktiv, dbo.Personal_Plattform.Erstellt_am, dbo.Personal_Plattform.Mutiert_am,
                        dbo.Personal_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ, dbo.Plattform.PlattformNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp,
                        dbo.fnkt_get_temporaer(dbo.Personal_Plattform.Personal_Plattformnr)                                                          

                                        ,plattform.cid
                FROM    dbo.Personal
                        INNER JOIN dbo.Personal_Plattform ON dbo.Personal.Personalnr = dbo.Personal_Plattform.PersonalNr
                        INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Personal_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                      WHERE   Personal.personalnr = @keyvalue                      
				and dbo.Personal_Plattform.Beziehungstypnr > -25

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,cid )
                SELECT  dbo.Personal_Server.Personal_ServerNr, dbo.Server.Bezeichnung, dbo.Personal_Server.Sequenz, dbo.Personal_Server.Beschreibung,
                        dbo.Personal_Server.Aktiv, dbo.Personal_Server.Erstellt_am, dbo.Personal_Server.Mutiert_am, dbo.Personal_Server.Mutierer,
                        dbo.fnkt_get_bezeichnung(4) AS Typ, dbo.Server.ServerNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        ,server.cid
                FROM    dbo.Personal
                        INNER JOIN dbo.Personal_Server ON dbo.Personal.Personalnr = dbo.Personal_Server.PersonalNr
                        INNER JOIN dbo.Server ON dbo.Personal_Server.ServerNr = dbo.Server.ServerNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Personal_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                      WHERE   Personal.personalnr = @keyvalue                      

  UPDATE @tmp1 SET cid=0 WHERE cid IS NULL
   
      SELECT    *
      FROM      @tmp1
      ORDER BY  typ, Sequenz, Bezeichnung


      
      --select @sql = dbo.fnkt_get_beziehung_sql('Personal','Berechtigung',0,@keyvalue,'dbo.Personal.personalnr') 
      --INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
      --EXEC (@sql)

      --select @sql = dbo.fnkt_get_beziehung_sql('Personal','Funktionstelle',1,@keyvalue,'dbo.Personal.personalnr') 
      --INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
      --EXEC (@sql)

      --select @sql = dbo.fnkt_get_beziehung_sql('Personal','Plattform',3,@keyvalue,'dbo.Personal.personalnr') 
      --INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
      --EXEC (@sql)

      --select @sql = dbo.fnkt_get_beziehung_sql('Personal','Server',4,@keyvalue,'dbo.Personal.personalnr') 
      --INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
      --EXEC (@sql)
END





GO

/****** Object:  StoredProcedure [dbo].[sp_get_personal_by_tgnummer]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_personal_by_tgnummer]
       @tgnummer VARCHAR(255) ,
       @resultat VARCHAR(1024) OUTPUT
AS 
BEGIN
      SELECT    @resultat = ISNULL(personalnr, -1)
      FROM      dbo.Personal
      WHERE     TGNummer = @tgnummer
END



GO

/****** Object:  StoredProcedure [dbo].[sp_get_personal_funktionstelle]    Script Date: 13.12.2014 15:01:05 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE PROCEDURE [dbo].[sp_get_personal_funktionstelle] @personalnr INT
AS 
BEGIN
      SELECT    dbo.Personal_FunktionStelle.Personal_FunktionStelleNr, dbo.Funktionstelle.Funktionstellenr, dbo.Funktionstelle.Funktionsstelle,
                dbo.Funktionstelle.Bezeichnung
      FROM      dbo.Personal_FunktionStelle
                INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr
      WHERE     ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                AND ( dbo.Personal_FunktionStelle.PersonalNr = @personalnr )
END


GO

/****** Object:  StoredProcedure [dbo].[sp_get_plattform_beziehungen]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_plattform_beziehungen]
    @keyvalue INT ,
    @typ INT = 0
AS 
    BEGIN
        DECLARE @tmp1 TABLE
            (
              ID INT ,
              Bezeichnung VARCHAR(255) ,
              Zusatz 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
            )   
        SET NOCOUNT ON;
      
        SET NOCOUNT ON;

        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                  CID 
                )
                SELECT  dbo.Plattform_Berechtigung.Plattform_BerechtigungNr ,
                        dbo.Berechtigung.Bezeichnung ,
                        dbo.Plattform_Berechtigung.Sequenz ,
                        dbo.Plattform_Berechtigung.Beschreibung ,
                        dbo.Plattform_Berechtigung.Aktiv ,
                        dbo.Plattform_Berechtigung.Erstellt_am ,
                        dbo.Plattform_Berechtigung.Mutiert_am ,
                        dbo.Plattform_Berechtigung.Mutierer ,
                        dbo.fnkt_get_bezeichnung(0) AS Typ ,
                        dbo.Berechtigung.BerechtigungNr AS MKEY ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                        dbo.berechtigung.cid 
                FROM    dbo.Plattform_Berechtigung
                        INNER JOIN dbo.Plattform ON dbo.Plattform_Berechtigung.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Berechtigung ON dbo.Plattform_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Plattform_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   plattform.plattformnr = @keyvalue 
                
        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,cid
                  
                )
                SELECT  dbo.Berechtigung_Plattform.Berechtigung_PlattformNr ,
                        dbo.Berechtigung.Bezeichnung ,
                        dbo.Berechtigung_Plattform.Sequenz ,
                        dbo.Berechtigung_Plattform.Beschreibung ,
                        dbo.Berechtigung_Plattform.Aktiv ,
                        dbo.Berechtigung_Plattform.Erstellt_am ,
                        dbo.Berechtigung_Plattform.Mutiert_am ,
                        dbo.Berechtigung_Plattform.Mutierer ,
                        dbo.fnkt_get_bezeichnung(0) AS Typ ,
                        Berechtigung_Plattform.BerechtigungNr ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                        ,dbo.berechtigung.cid
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Berechtigung_Plattform ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Plattform.berechtigungNr
                        INNER JOIN dbo.Plattform ON dbo.Berechtigung_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Berechtigung_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   plattform.plattformnr = @keyvalue                      

        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp 
                )
                SELECT  dbo.Plattform_Server.Plattform_ServerNr ,
                        dbo.Server.Bezeichnung ,
                        dbo.Plattform_Server.Sequenz ,
                        dbo.Plattform_Server.Beschreibung ,
                        dbo.Plattform_Server.Aktiv ,
                       dbo.Plattform_Server.Erstellt_am ,
                        dbo.Plattform_Server.Mutiert_am ,
                        dbo.Plattform_Server.Mutierer ,
                        dbo.fnkt_get_bezeichnung(4) AS Typ ,
                        dbo.Server.ServerNr AS MKEY ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Plattform
                        INNER JOIN dbo.Plattform_Server ON dbo.Plattform.PlattformNr = dbo.Plattform_Server.PlattformNr
                        INNER JOIN dbo.Server ON dbo.Plattform_Server.ServerNr = dbo.Server.ServerNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Plattform_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   plattform.plattformnr = @keyvalue        
                           
        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                  temp ,
                             cid
                )
                SELECT  dbo.Personal_Plattform.Personal_PlattformNr ,
                        dbo.Personal.TGNummer + ' ' + dbo.Personal.Name AS Bezeichnung ,
                        dbo.Personal_Plattform.Sequenz ,
                        dbo.Personal_Plattform.Beschreibung ,
                        dbo.Personal_Plattform.Aktiv ,
                        dbo.Personal_Plattform.Erstellt_am ,
                        dbo.Personal_Plattform.Mutiert_am ,
                        dbo.Personal_Plattform.Mutierer ,
                        dbo.fnkt_get_bezeichnung(7) AS Typ ,
                        dbo.Personal.Personalnr AS MKEY ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                        dbo.fnkt_get_temporaer(dbo.Personal_Plattform.Personal_Plattformnr),
                                        plattform.cid
                FROM    dbo.Personal_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Personal_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   ( dbo.Plattform.PlattformNr = @keyvalue ) 
				and dbo.Personal_Plattform.Beziehungstypnr>-25
				                                  

        IF @typ = 1 
            BEGIN
                INSERT  @tmp1
                        ( ID ,
                          Bezeichnung ,
                          Sequenz ,
                          Beschreibung ,
                          aktiv ,
                          erstellt_am ,
                          mutiert_am ,
                          mutierer ,
                          typ ,
                          mkey ,
                          beziehungstyp 
                        )
                        SELECT  dbo.Verwaltung_Durch_Plattform.Verwaltung_Durch_PlattformNr ,
                                dbo.Verwaltung_Durch.Bezeichnung ,
                                dbo.Verwaltung_Durch_Plattform.Sequenz ,
                                dbo.Verwaltung_Durch_Plattform.Beschreibung ,
                                dbo.Verwaltung_Durch_Plattform.Aktiv ,
                                dbo.Verwaltung_Durch_Plattform.Erstellt_am ,
                                dbo.Verwaltung_Durch_Plattform.Mutiert_am ,
                                dbo.Verwaltung_Durch_Plattform.Mutierer ,
                                dbo.fnkt_get_bezeichnung(5) AS Typ ,
                                dbo.Verwaltung_Durch.Verwaltung_DurchNr AS MKEY ,
                                dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                        FROM    dbo.Verwaltung_Durch_Plattform
                                INNER JOIN dbo.Plattform ON dbo.Verwaltung_Durch_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                                INNER JOIN dbo.Verwaltung_Durch ON dbo.Verwaltung_Durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_Durch.Verwaltung_DurchNr
                                INNER JOIN dbo.Beziehungstyp ON dbo.Verwaltung_Durch_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                        WHERE   plattform.plattformnr = @keyvalue          


                INSERT  @tmp1
                        ( ID ,
                          Bezeichnung ,
                          Sequenz ,
                          Beschreibung ,
                          aktiv ,
                          erstellt_am ,
                          mutiert_am ,
                          mutierer ,
                          typ ,
                          mkey ,
                          beziehungstyp 
                        )
                        SELECT  dbo.Verwaltung_mit_Plattform.Verwaltung_mit_PlattformNr ,
                                dbo.Verwaltung_mit.Bezeichnung ,
                                dbo.Verwaltung_mit_Plattform.Sequenz ,
                                dbo.Verwaltung_mit_Plattform.Beschreibung ,
                                dbo.Verwaltung_mit_Plattform.Aktiv ,
                                dbo.Verwaltung_mit_Plattform.Erstellt_am ,
                                dbo.Verwaltung_mit_Plattform.Mutiert_am ,
                                dbo.Verwaltung_mit_Plattform.Mutierer ,
                                dbo.fnkt_get_bezeichnung(6) AS Typ ,
                                dbo.Verwaltung_mit.Verwaltung_mitNr AS MKEY ,
                                dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                        FROM    dbo.Verwaltung_mit_Plattform
                                INNER JOIN dbo.Plattform ON dbo.Verwaltung_mit_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                                INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_mit_Plattform.Verwaltung_mitNr = dbo.Verwaltung_mit.Verwaltung_mitNr
                                INNER JOIN dbo.Beziehungstyp ON dbo.Verwaltung_mit_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                        WHERE   plattform.plattformnr = @keyvalue   

                INSERT  @tmp1
                        ( ID ,
                          Bezeichnung ,
                          Sequenz ,
                          Beschreibung ,
                          aktiv ,
                          erstellt_am ,
                          mutiert_am ,
                          mutierer ,
                          typ ,
                          mkey ,
                          beziehungstyp ,
                          temp ,
                                          cid
                        )
                        SELECT  dbo.Personal_Plattform.Personal_PlattformNr ,
                                dbo.Personal.TGNummer + ' '
                                + dbo.Personal.Name AS Bezeichnung ,
                                dbo.Personal_Plattform.Sequenz ,
                                dbo.Personal_Plattform.Beschreibung ,
                                dbo.Personal_Plattform.Aktiv ,
                                dbo.Personal_Plattform.Erstellt_am ,
                                dbo.Personal_Plattform.Mutiert_am ,
                                dbo.Personal_Plattform.Mutierer ,
                                dbo.fnkt_get_bezeichnung(7) AS Typ ,
                                dbo.Personal.Personalnr AS MKEY ,
                                dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                                dbo.fnkt_get_temporaer(dbo.Personal_Plattform.Personal_Plattformnr)
                                                      ,plattform.cid      
                        FROM    dbo.Personal_Plattform
                                INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                                INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
                                INNER JOIN dbo.Beziehungstyp ON dbo.Personal_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                        WHERE   ( dbo.Plattform.PlattformNr = @keyvalue )

            END

        INSERT  @tmp1
                ( ID ,
                  Bezeichnung ,
                  Zusatz ,
                  Sequenz ,
                  Beschreibung ,
                  aktiv ,
                  erstellt_am ,
                  mutiert_am ,
                  mutierer ,
                  typ ,
                  mkey ,
                  beziehungstyp ,
                  cid 
                )
                SELECT  dbo.Funktionstelle_Plattform.Funktionstelle_PlattformNr ,
                        dbo.Funktionstelle.Bezeichnung ,
                        ISNULL(dbo.Funktionstelle.Funktionsstelle, '') ,
                        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(1) AS Typ ,
                        dbo.Funktionstelle.FunktionstelleNr AS MKEY ,
                        dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp ,
                        plattform.cid
                FROM    dbo.Funktionstelle_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Funktionstelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Funktionstelle ON dbo.Funktionstelle_Plattform.FunktionstelleNr = dbo.Funktionstelle.FunktionstelleNr
                        INNER JOIN dbo.Beziehungstyp ON dbo.Funktionstelle_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   plattform.plattformnr = @keyvalue   

        UPDATE  @tmp1
        SET     cid = 0
        WHERE   cid IS NULL

        SELECT  *
        FROM    @tmp1
        ORDER BY typ ,
                Sequenz ,
                Bezeichnung
--      DECLARE @sql VARCHAR(1024)
      
--      select @sql = dbo.fnkt_get_beziehung_sql('Plattform','Berechtigung',0,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--      select @sql = dbo.fnkt_get_beziehung_sql('Berechtigung','Plattform',0,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--      select @sql = dbo.fnkt_get_beziehung_sql('Plattform','Server',4,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)
      
--      select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Durch','Plattform',5,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--      select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_mit','Plattform',6,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--       select @sql = dbo.fnkt_get_beziehung_sql('Funktionstelle','Plattform',1,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)
--PRINT @sql
--      select @sql = dbo.fnkt_get_beziehung_sql('Personal','Plattform',7,@keyvalue,'dbo.plattform.plattformnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)
--PRINT @sql 
--      SELECT    *
--      FROM      @tmp1
--      ORDER BY  typ, Sequenz, Bezeichnung

    END





GO

/****** Object:  StoredProcedure [dbo].[sp_get_plattform_beziehungen_sik]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_plattform_beziehungen_sik] @keyvalue INT
AS 
BEGIN
      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
)   
      SET NOCOUNT ON;

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Plattform_Berechtigung.Plattform_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Plattform_Berechtigung.Sequenz,
                        dbo.Plattform_Berechtigung.Beschreibung, dbo.Plattform_Berechtigung.Aktiv, dbo.Plattform_Berechtigung.Erstellt_am,
                        dbo.Plattform_Berechtigung.Mutiert_am, dbo.Plattform_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
                        dbo.Berechtigung.BerechtigungNr AS MKEY
                FROM    dbo.Plattform_Berechtigung
                        INNER JOIN dbo.Plattform ON dbo.Plattform_Berechtigung.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Berechtigung ON dbo.Plattform_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                WHERE   plattform.plattformnr = @keyvalue 
                
      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Berechtigung_Plattform.Berechtigung_PlattformNr, dbo.Berechtigung.Bezeichnung, dbo.Berechtigung_Plattform.Sequenz,
                        dbo.Berechtigung_Plattform.Beschreibung, dbo.Berechtigung_Plattform.Aktiv, dbo.Berechtigung_Plattform.Erstellt_am,
                        dbo.Berechtigung_Plattform.Mutiert_am, dbo.Berechtigung_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
                        Berechtigung_Plattform.BerechtigungNr
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Berechtigung_Plattform ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Plattform.berechtigungNr
                        INNER JOIN dbo.Plattform ON dbo.Berechtigung_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                WHERE   plattform.plattformnr = @keyvalue                      

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Plattform_Server.Plattform_ServerNr, dbo.Server.Bezeichnung, dbo.Plattform_Server.Sequenz, dbo.Plattform_Server.Beschreibung,
                        dbo.Plattform_Server.Aktiv, dbo.Plattform_Server.Erstellt_am, dbo.Plattform_Server.Mutiert_am, dbo.Plattform_Server.Mutierer,
                        dbo.fnkt_get_bezeichnung(4) AS Typ, dbo.Server.ServerNr AS MKEY
                FROM    dbo.Plattform
                        INNER JOIN dbo.Plattform_Server ON dbo.Plattform.PlattformNr = dbo.Plattform_Server.PlattformNr
                        INNER JOIN dbo.Server ON dbo.Plattform_Server.ServerNr = dbo.Server.ServerNr
                WHERE   plattform.plattformnr = @keyvalue                      


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Verwaltung_Durch_Plattform.Verwaltung_Durch_PlattformNr, dbo.Verwaltung_Durch.Bezeichnung, dbo.Verwaltung_Durch_Plattform.Sequenz,
                        dbo.Verwaltung_Durch_Plattform.Beschreibung, dbo.Verwaltung_Durch_Plattform.Aktiv, dbo.Verwaltung_Durch_Plattform.Erstellt_am,
                        dbo.Verwaltung_Durch_Plattform.Mutiert_am, dbo.Verwaltung_Durch_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(5) AS Typ,
                        dbo.Verwaltung_Durch.Verwaltung_DurchNr AS MKEY
                FROM    dbo.Verwaltung_Durch_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Verwaltung_Durch_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Verwaltung_Durch ON dbo.Verwaltung_Durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_Durch.Verwaltung_DurchNr
                WHERE   plattform.plattformnr = @keyvalue          


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Verwaltung_mit_Plattform.Verwaltung_mit_PlattformNr, dbo.Verwaltung_mit.Bezeichnung, dbo.Verwaltung_mit_Plattform.Sequenz,
                        dbo.Verwaltung_mit_Plattform.Beschreibung, dbo.Verwaltung_mit_Plattform.Aktiv, dbo.Verwaltung_mit_Plattform.Erstellt_am,
                        dbo.Verwaltung_mit_Plattform.Mutiert_am, dbo.Verwaltung_mit_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(6) AS Typ,
                        dbo.Verwaltung_mit.Verwaltung_mitNr AS MKEY
                FROM    dbo.Verwaltung_mit_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Verwaltung_mit_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Verwaltung_mit ON dbo.Verwaltung_mit_Plattform.Verwaltung_mitNr = dbo.Verwaltung_mit.Verwaltung_mitNr
                WHERE   plattform.plattformnr = @keyvalue   


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Funktionstelle_Plattform.Funktionstelle_PlattformNr, dbo.Funktionstelle.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(1) AS Typ,
                        dbo.Funktionstelle.FunktionstelleNr AS MKEY
                FROM    dbo.Funktionstelle_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Funktionstelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Funktionstelle ON dbo.Funktionstelle_Plattform.FunktionstelleNr = dbo.Funktionstelle.FunktionstelleNr
                WHERE   plattform.plattformnr = @keyvalue   

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey )
                SELECT  dbo.Personal_Plattform.Personal_PlattformNr, dbo.Personal.TGNummer + ' ' + dbo.Personal.Name AS Bezeichnung,
                        dbo.Personal_Plattform.Sequenz, dbo.Personal_Plattform.Beschreibung, dbo.Personal_Plattform.Aktiv, dbo.Personal_Plattform.Erstellt_am,
                        dbo.Personal_Plattform.Mutiert_am, dbo.Personal_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(7) AS Typ, dbo.Personal.Personalnr AS MKEY
                FROM    dbo.Personal_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
                WHERE   ( dbo.Plattform.PlattformNr = @keyvalue )
      SELECT    *
      FROM      @tmp1
      ORDER BY  typ, Sequenz, Bezeichnung

END



GO

/****** Object:  StoredProcedure [dbo].[sp_get_Server_beziehungen]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_Server_beziehungen] @keyvalue INT, @typ INT=0
AS 
BEGIN
      DECLARE @tmp1 TABLE
(
  ID INT ,
  Bezeichnung VARCHAR(255) ,
  Zusatz 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
)   
      SET NOCOUNT ON;




      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Plattform_Server.Plattform_ServerNr, dbo.Plattform.Bezeichnung, dbo.Plattform_Server.Sequenz, dbo.Plattform_Server.Beschreibung,
                        dbo.Plattform_Server.Aktiv, dbo.Plattform_Server.Erstellt_am, dbo.Plattform_Server.Mutiert_am, dbo.Plattform_Server.Mutierer,
                        dbo.fnkt_get_bezeichnung(3) AS Typ, dbo.Plattform.PlattformNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Plattform
                        INNER JOIN dbo.Plattform_Server ON dbo.Plattform.PlattformNr = dbo.Plattform_Server.PlattformNr
                        INNER JOIN dbo.Server ON dbo.Plattform_Server.ServerNr = dbo.Server.ServerNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Plattform_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   Server.servernr = @keyvalue                      


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Berechtigung_Server.Berechtigung_ServerNr, dbo.Berechtigung.Bezeichnung, dbo.Berechtigung_Server.Sequenz,
                        dbo.Berechtigung_Server.Beschreibung, dbo.Berechtigung_Server.Aktiv, dbo.Berechtigung_Server.Erstellt_am,
                        dbo.Berechtigung_Server.Mutiert_am, dbo.Berechtigung_Server.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
                        dbo.Berechtigung.BerechtigungNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        
                FROM    dbo.Berechtigung
                        INNER JOIN dbo.Berechtigung_Server ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Server.BerechtigungNr
                        INNER JOIN dbo.Server ON dbo.Berechtigung_Server.ServerNr = dbo.Server.ServerNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Berechtigung_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   Server.servernr = @keyvalue 

      INSERT    @tmp1 ( ID, Bezeichnung, Zusatz, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,cid)
                SELECT  dbo.Funktionstelle_Server.Funktionstelle_ServerNr, dbo.Funktionstelle.Bezeichnung, ISNULL(dbo.Funktionstelle.Funktionsstelle,''),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(1) AS Typ,
                        dbo.Funktionstelle.FunktionstelleNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        ,server.cid
                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   Server.servernr = @keyvalue 
   IF @typ=1 begin
      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,cid )
                SELECT  dbo.Personal_Server.Personal_ServerNr, dbo.Personal.TGNummer + ' ' + dbo.Personal.Name, dbo.Personal_Server.Sequenz,
                        dbo.Personal_Server.Beschreibung, dbo.Personal_Server.Aktiv, dbo.Personal_Server.Erstellt_am, dbo.Personal_Server.Mutiert_am,
                        dbo.Personal_Server.Mutierer, dbo.fnkt_get_bezeichnung(2) AS Typ, dbo.Personal.PersonalNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        ,server.cid
                FROM    dbo.Personal
                           
                        INNER JOIN dbo.Personal_Server ON dbo.Personal.PersonalNr = dbo.Personal_Server.PersonalNr
                        INNER JOIN dbo.Server ON dbo.Personal_Server.ServerNr = dbo.Server.ServerNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Personal_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
               WHERE   Server.servernr = @keyvalue 
			   and personal_server.Beziehungstypnr>-25


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Verwaltung_Durch_Server.Verwaltung_Durch_ServerNr, dbo.Verwaltung_Durch.Bezeichnung, dbo.Verwaltung_Durch_Server.Sequenz,
                        dbo.Verwaltung_Durch_Server.Beschreibung, dbo.Verwaltung_Durch_Server.Aktiv, dbo.Verwaltung_Durch_Server.Erstellt_am,
                        dbo.Verwaltung_Durch_Server.Mutiert_am, dbo.Verwaltung_Durch_Server.Mutierer, dbo.fnkt_get_bezeichnung(5) AS Typ,
                        dbo.Verwaltung_Durch.Verwaltung_DurchNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Verwaltung_Durch
                        INNER JOIN dbo.Verwaltung_Durch_Server ON dbo.Verwaltung_Durch.Verwaltung_DurchNr = dbo.Verwaltung_Durch_Server.Verwaltung_DurchNr
                        INNER JOIN dbo.Server ON dbo.Verwaltung_Durch_Server.ServerNr = dbo.Server.ServerNr
                 INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Durch_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
               WHERE   Server.servernr = @keyvalue 
                
      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Verwaltung_Mit_Server.Verwaltung_Mit_ServerNr, dbo.Verwaltung_Mit.Bezeichnung, dbo.Verwaltung_Mit_Server.Sequenz,
                        dbo.Verwaltung_Mit_Server.Beschreibung, dbo.Verwaltung_Mit_Server.Aktiv, dbo.Verwaltung_Mit_Server.Erstellt_am,
                        dbo.Verwaltung_Mit_Server.Mutiert_am, dbo.Verwaltung_Mit_Server.Mutierer, dbo.fnkt_get_bezeichnung(6) AS Typ,
                        dbo.Verwaltung_Mit.Verwaltung_MitNr, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Verwaltung_Mit
                        INNER JOIN dbo.Verwaltung_Mit_Server ON dbo.Verwaltung_Mit.Verwaltung_MitNr = dbo.Verwaltung_Mit_Server.Verwaltung_MitNr
                        INNER JOIN dbo.Server ON dbo.Verwaltung_Mit_Server.ServerNr = dbo.Server.ServerNr
                 INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Mit_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
               WHERE   Server.servernr = @keyvalue                      
     end                 
              UPDATE @tmp1 SET cid=0 WHERE cid IS NULL
   
      SELECT    *
      FROM      @tmp1
      ORDER BY  typ, Sequenz, Bezeichnung
           
  --         DECLARE @sql VARCHAR(1024)
  --    select @sql = dbo.fnkt_get_beziehung_sql('Plattform','Server',3,@keyvalue,'dbo.Server.servernr') 
  --    INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
  --    EXEC (@sql)

  --    select @sql = dbo.fnkt_get_beziehung_sql('Berechtigung','Server',0,@keyvalue,'dbo.Server.servernr') 
  --    INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
  --    EXEC (@sql)

  --    select @sql = dbo.fnkt_get_beziehung_sql('Funktionstelle','Server',1,@keyvalue,'dbo.Server.servernr') 
  --    INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
  --    EXEC (@sql)

  --    select @sql = dbo.fnkt_get_beziehung_sql('Personal','Server',2,@keyvalue,'dbo.Server.servernr') 
  --    INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
  --    EXEC (@sql)

  --    select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Durch','Server',5,@keyvalue,'dbo.Server.servernr') 
  --    INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
  --    EXEC (@sql)

  --    select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Mit','Server',6,@keyvalue,'dbo.Server.servernr') 
  --    INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
  --    EXEC (@sql)

  --SELECT    *
  --    FROM      @tmp1
  --    ORDER BY  typ, Sequenz, Bezeichnung
      
  --    return           
END





GO

/****** Object:  StoredProcedure [dbo].[sp_get_stammdaten]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER OFF
GO








-- =============================================
-- Author:	Stefan Hutter
-- Create date:    14.4.2009
-- Description:	Liest die Stammdatentabellen
-- Changelog:
-- 15.4.09 Anpassung, dass nur die aktiven Datenelemente ausgelesen werden
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_stammdaten]
    @mitarbeiternr INT ,
    @tabelle VARCHAR(255) ,
    @orderby VARCHAR(255)
AS 
    BEGIN
        DECLARE @xsql VARCHAR(255)
      
        IF UPPER(@tabelle) = "BEZIEHUNGSTYP" 
            BEGIN
                SELECT  beziehungstypnr AS KEYValue ,
                        bezeichnung
                FROM    dbo.beziehungstyp
                WHERE   aktiv = 1 ORDER BY Bezeichnung
                RETURN
            END
        IF UPPER(@tabelle) = 'KOSTENART' 
            BEGIN
                SELECT  kostenartnr ,
                        bezeichnung + ' - ' + beschreibung AS Bezeichnung
                FROM    kostenart
                WHERE   aktiv = 1
                ORDER BY bezeichnung
                RETURN
            END

        IF UPPER(@tabelle) = 'KONTAKTTYP_GREMIUM' 
            BEGIN
                SELECT  kontakttypnr ,
                        bezeichnung ,
                        applikationsbereichnr
                FROM    kontakttyp
                WHERE   applikationsbereichnr = 3
                        AND aktiv = 1
                ORDER BY bezeichnung
                RETURN
            END

        IF UPPER(@tabelle) = 'RELEASEART' 
            BEGIN
                SELECT  Releaseartnr ,
                        bezeichnung AS Bezeichnung
                FROM    Releaseart
                WHERE   aktiv = 1
                ORDER BY bezeichnung
                RETURN
            END

        IF UPPER(@tabelle) = 'PERSON' 
            BEGIN
                SELECT  personnr ,
                        Name + ' ' + Vorname AS Bezeichnung
                FROM    Person
                WHERE   Vertragspartnernr = 1
                        AND Aktiv = 1
                ORDER BY Name ,
                        Vorname
                RETURN
            END
        IF UPPER(@tabelle) = 'PERSON1' 
            BEGIN
                SELECT  personnr ,
                        Name + ' ' + Vorname AS Bezeichnung
                FROM    Person
                WHERE   Vertragspartnernr = 1
                        AND Aktiv = 1
                ORDER BY Name ,
                        Vorname
                RETURN
            END
        IF UPPER(@tabelle) = 'PERSON2' 
            BEGIN
                SELECT  personnr ,
                        Name + ' ' + Vorname AS Bezeichnung
                FROM    Person
                WHERE   Vertragspartnernr = 1
                        AND Aktiv = 1
                ORDER BY Name ,
                        Vorname
                RETURN
            END
        IF UPPER(@tabelle) = 'VERWALTUNG_DURCH' 
            BEGIN
                SELECT  verwaltung_durchnr AS keyvalue ,
                        bezeichnung AS Bezeichnung
                FROM    Verwaltung_Durch
                WHERE   Aktiv = 1
                ORDER BY bezeichnung
                RETURN
            END
        IF UPPER(@tabelle) = 'VERWALTUNG_MIT' 
            BEGIN
                SELECT  verwaltung_mitnr AS keyvalue ,
                        bezeichnung AS Bezeichnung
                FROM    Verwaltung_mit
                WHERE   Aktiv = 1
                ORDER BY Bezeichnung
                RETURN
            END
        IF UPPER(@tabelle) = 'PERSONAL' 
            BEGIN
                SELECT  PERSONALNR AS keyvalue ,
                        name+', '+tgnummer as bezeichnung
                FROM    personal
                WHERE   Aktiv = 1 and LTRIM(rtrim(tgnummer+' ' +name))<>''
                ORDER BY name+', '+tgnummer
                RETURN
            END
        SET @xsql = 'Select * from ' + @tabelle + ' where aktiv=1 order by '
            + @orderby 
        EXEC(@xsql)
    END






GO

/****** Object:  StoredProcedure [dbo].[sp_get_struktur]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_struktur] @root VARCHAR(255)
AS 
BEGIN
      IF @root = 'Organisation' 
         BEGIN
               SELECT   FunktionStelleNr AS id, parentid AS parentid, bezeichnung, 0 AS imageindex, ISNULL(Funktionsstelle, '') AS ErweiterteSuche
               INTO     #tmp1
               FROM     FunktionStelle
               WHERE    Aktiv = 1
               
               INSERT   #tmp1 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 1, '                    ' )
               
               UPDATE   #tmp1
               SET      imageindex = 0
               
               UPDATE   #tmp1
               SET      imageindex = 1
               WHERE    id IN ( SELECT  parentid
                                FROM    FunktionStelle WHERE aktiv=1 )
               SELECT   *
               FROM     #tmp1
               ORDER BY bezeichnung
         END
    
      IF @root = 'Personal' 
         BEGIN
               SELECT   personalnr AS id, parentid AS parentid, bezeichnung + ' ' + name AS Bezeichnung, 0 AS imageindex, '' AS ErweiterteSuche
               INTO     #tmp2
               FROM     Personal
               WHERE    Aktiv = 1
               
               INSERT   #tmp2 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 3, '                    ' )
               
               UPDATE   #tmp2
               SET      imageindex = 2
               
               UPDATE   #tmp2
               SET      imageindex = 3
               WHERE    id IN ( SELECT  parentid
                                FROM    Personal WHERE aktiv=1 )
               UPDATE   #tmp2
               SET      id = ID, parentid = parentid 
       
               SELECT   *
               FROM     #tmp2
               ORDER BY bezeichnung
         END          
         
      IF @root = 'Berechtigung' 
         BEGIN
               SELECT   Berechtigungnr AS id, parentid AS parentid, bezeichnung, 0 AS imageindex, '' AS ErweiterteSuche
               INTO     #tmp3
               FROM     Berechtigung
               WHERE    Aktiv = 1
               
               INSERT   #tmp3 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 5, '                    ' )
               
               UPDATE   #tmp3
               SET      imageindex = 4
               
               UPDATE   #tmp3
               SET      imageindex = 5
               WHERE    id IN ( SELECT  parentid
                                FROM    Berechtigung WHERE aktiv=1 )
                                
               UPDATE   #tmp3
               SET      id = ID, parentid = parentid 
       
               SELECT   *
               FROM     #tmp3
               ORDER BY bezeichnung
         END          
      IF @root = 'Plattform' 
         BEGIN
               SELECT   PlattformNr AS id, parentid AS parentid, bezeichnung, 0 AS imageindex, '' AS ErweiterteSuche
               INTO     #tmp4
               FROM     Plattform
               WHERE    Aktiv = 1
               
               INSERT   #tmp4 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 1, '                    ' )
               
               UPDATE   #tmp4
               SET      imageindex = 6
               
               UPDATE   #tmp4
               SET      imageindex = 7
               WHERE    id IN ( SELECT  parentid
                                FROM    Plattform WHERE Aktiv=1 )
                                
               SELECT   *
               FROM     #tmp4
               ORDER BY bezeichnung
         END
      IF @root = 'Server' 
         BEGIN
               SELECT   ServerNr AS id, parentid AS parentid, bezeichnung, 0 AS imageindex, '' AS ErweiterteSuche
               INTO     #tmp5
               FROM     Server
               WHERE    Aktiv = 1
               
               INSERT   #tmp5 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 1, '                    ' )
               
               UPDATE   #tmp5
               SET      imageindex = 8
               
               UPDATE   #tmp5
               SET      imageindex = 9
               WHERE    id IN ( SELECT  parentid
                                FROM    Server  WHERE aktiv=1)
                                
               SELECT   *
               FROM     #tmp5
               ORDER BY bezeichnung
         END
 
      IF @root = 'VerwaltungDurch' 
         BEGIN
               SELECT   Verwaltung_durchnr AS id, parentid AS parentid, bezeichnung, 0 AS imageindex, '' AS ErweiterteSuche
               INTO     #tmp6
               FROM     Verwaltung_durch
               WHERE    Aktiv = 1
               
               INSERT   #tmp6 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 1, '                    ' )
               
               UPDATE   #tmp6
               SET      imageindex = 10
               
               UPDATE   #tmp6
               SET      imageindex = 11
               WHERE    id IN ( SELECT  parentid
                                FROM    Verwaltung_durch WHERE aktiv=1 )
                                
               SELECT   *
               FROM     #tmp6
               ORDER BY bezeichnung
         END
    
      IF @root = 'VerwaltungMit' 
         BEGIN
               SELECT   Verwaltung_mitnr AS id, parentid AS parentid, bezeichnung, 0 AS imageindex, '' AS ErweiterteSuche
               INTO     #tmp7
               FROM     Verwaltung_mit
               WHERE    Aktiv = 1
               
               INSERT   #tmp7 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche )
               VALUES   ( 0, NULL, 'Root', 1, '                    ' )
               
               UPDATE   #tmp7
               SET      imageindex = 12
               
               UPDATE   #tmp7
               SET      imageindex = 13
               WHERE    id IN ( SELECT  parentid
                                FROM    Verwaltung_mit WHERE aktiv=1 )
                                
               SELECT   *
               FROM     #tmp7
               ORDER BY bezeichnung
         END
END



GO

/****** Object:  StoredProcedure [dbo].[sp_get_sysadmin_hierarchie_data]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO










CREATE PROC [dbo].[sp_get_sysadmin_hierarchie_data]
       @Root INT ,
       @isprache INT ,
       @imandant INT
AS 
BEGIN
      SET NOCOUNT ON
      DECLARE @DokID INT ,
              @Dokname VARCHAR(30) ,
              @nr INT ,
              @pa INT ,
              @sort INT ,
              @i1 INT ,
              @i2 INT
      SET @DokName = ( SELECT   Bezeichnung
                       FROM     dbo.sysadminfunktion
                       WHERE    sysadminfnktnr = @Root
                                AND sprache = @isprache
                                AND mandantnr = @imandant )
      SET @nr = ( SELECT    sysadminfnktnr
                  FROM      dbo.sysadminfunktion
                  WHERE     sysadminfnktnr = @Root
                            AND sprache = @isprache
                            AND mandantnr = @imandant )
      SET @pa = ( SELECT    parentid
                  FROM      dbo.sysadminfunktion
                  WHERE     sysadminfnktnr = @Root
                            AND sprache = @isprache
                            AND mandantnr = @imandant )
      SET @sort = ( SELECT  ISNULL(sort, 0)
                    FROM    dbo.sysadminfunktion
                    WHERE   sysadminfnktnr = @Root
                            AND sprache = @isprache
                            AND mandantnr = @imandant )
      SET @i1 = ( SELECT    imageindex
                  FROM      dbo.sysadminfunktion
                  WHERE     sysadminfnktnr = @Root
                            AND sprache = @isprache
                            AND mandantnr = @imandant )
      SET @i2 = ( SELECT    imageindexopen
                  FROM      dbo.sysadminfunktion
                  WHERE     sysadminfnktnr = @Root
                            AND sprache = @isprache
                            AND mandantnr = @imandant )

      PRINT STR(@nr) + ' ' + @Dokname

      INSERT    INTO #tmph ( sysadminfnktnr, Bezeichnung, imageindex, imageindexopen, parentid, sort )
      VALUES    ( @nr, @dokname, @i1, @i2, @pa, @sort )
	
      SET @DokID = ( SELECT ( parentid )
                     FROM   dbo.sysadminfunktion
                     WHERE  sysadminfnktnr = @nr )
      WHILE ( @dokid IS NOT NULL )
            AND ( @dokid <> 0 ) 
            BEGIN
                  EXEC sp_get_sysadmin_hierarchie_data @DOkid, @isprache, @imandant
                  SET @DokID = ( SELECT ( parentid )
                                 FROM   dbo.sysadminfunktion
                                 WHERE  sysadminfnktnr = @nr
                                        AND parentid > @dokID )
            END
END

























GO

/****** Object:  StoredProcedure [dbo].[sp_get_sysadmin_tree]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
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
[PRIMARY]
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

/****** Object:  StoredProcedure [dbo].[sp_get_tempberechtigung]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_tempberechtigung]
AS 
    BEGIN
        SET NOCOUNT ON;

        SELECT  'Funktionstelle' AS Datatype ,
                dbo.Personal.Personalnr ,
                dbo.Personal.Bezeichnung ,
                dbo.Personal.Name ,
                dbo.Funktionstelle.FunktionstelleNr ,
                dbo.Funktionstelle.Bezeichnung AS Expr1 ,
                dbo.Temporaer_Berechtigung.Beschreibung ,
                dbo.Temporaer_Berechtigung.Unterlagen ,
                dbo.Temporaer_Berechtigung.Bearbeiter_ISI ,
                dbo.Temporaer_Berechtigung.Kontaktperson_FB ,
                dbo.Temporaer_Berechtigung.Termin ,
                dbo.Temporaer_Berechtigung.aktiv ,
                dbo.Temporaer_Berechtigung.erstellt_am ,
                dbo.Temporaer_Berechtigung.mutiert_am ,
                dbo.Temporaer_Berechtigung.mutierer ,
                dbo.Funktionstelle.Funktionsstelle ,
                dbo.Temporaer_Berechtigung.NrTempBerechtigung
        INTO    #tmp1
        FROM    dbo.Temporaer_Berechtigung
                INNER JOIN dbo.Personal_FunktionStelle ON dbo.Temporaer_Berechtigung.Personal_FunktionStelleNr = dbo.Personal_FunktionStelle.Personal_FunktionStelleNr
                INNER JOIN dbo.Personal ON dbo.Personal_FunktionStelle.PersonalNr = dbo.Personal.Personalnr
                INNER JOIN dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr
        WHERE   datatype = 0
        ORDER BY dbo.Temporaer_Berechtigung.Termin


        INSERT  #tmp1
                SELECT  'Berechtigung' AS Datatype ,
                        dbo.Personal.Personalnr ,
                        dbo.Personal.Bezeichnung ,
                        dbo.Personal.Name ,
                        dbo.Berechtigung.BerechtigungNr ,
                        dbo.Berechtigung.Bezeichnung AS Expr1 ,
                        dbo.Temporaer_Berechtigung.Beschreibung ,
                        dbo.Temporaer_Berechtigung.Unterlagen ,
                        dbo.Temporaer_Berechtigung.Bearbeiter_ISI ,
                        dbo.Temporaer_Berechtigung.Kontaktperson_FB ,
                        dbo.Temporaer_Berechtigung.Termin ,
                        dbo.Temporaer_Berechtigung.aktiv ,
                        dbo.Temporaer_Berechtigung.erstellt_am ,
                        dbo.Temporaer_Berechtigung.mutiert_am ,
                        dbo.Temporaer_Berechtigung.mutierer ,
                        '' ,
                        dbo.Temporaer_Berechtigung.NrTempBerechtigung
                FROM    dbo.Temporaer_Berechtigung
                        INNER JOIN dbo.Personal_Berechtigung ON dbo.Temporaer_Berechtigung.Personal_FunktionStelleNr = dbo.Personal_Berechtigung.Personal_BerechtigungNr
                        INNER JOIN dbo.Personal ON dbo.Personal_Berechtigung.PersonalNr = dbo.Personal.Personalnr
                        INNER JOIN dbo.Berechtigung ON dbo.Personal_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                WHERE   datatype = 1
                ORDER BY dbo.Temporaer_Berechtigung.Termin



        INSERT  #tmp1
                SELECT  'Plattform' AS Datatype ,
                        dbo.Personal.Personalnr ,
                        dbo.Personal.Bezeichnung ,
                        dbo.Personal.Name ,
                       dbo.Plattform.PlattformNr ,
                        dbo.Plattform.Bezeichnung AS Expr1 ,
                        dbo.Temporaer_Berechtigung.Beschreibung ,
                        dbo.Temporaer_Berechtigung.Unterlagen ,
                        dbo.Temporaer_Berechtigung.Bearbeiter_ISI ,
                        dbo.Temporaer_Berechtigung.Kontaktperson_FB ,
                        dbo.Temporaer_Berechtigung.Termin ,
                        dbo.Temporaer_Berechtigung.aktiv ,
                        dbo.Temporaer_Berechtigung.erstellt_am ,
                        dbo.Temporaer_Berechtigung.mutiert_am ,
                        dbo.Temporaer_Berechtigung.mutierer ,
                        '' ,
                        dbo.Temporaer_Berechtigung.NrTempBerechtigung
                FROM    dbo.Temporaer_Berechtigung
                        INNER JOIN dbo.Personal_Plattform ON dbo.Temporaer_Berechtigung.Personal_FunktionStelleNr = dbo.Personal_Plattform.Personal_PlattformNr
                        INNER JOIN dbo.Personal ON dbo.Personal_Plattform.PersonalNr = dbo.Personal.Personalnr
                        INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                WHERE   datatype = 2
                ORDER BY dbo.Temporaer_Berechtigung.Termin






        SELECT  *
        FROM    #tmp1
        ORDER BY Termin
    END


GO

/****** Object:  StoredProcedure [dbo].[sp_get_temporaerberechtigung]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_temporaerberechtigung]
@keyvalue int
AS
BEGIN
   SELECT * FROM dbo.Temporaer_Berechtigung WHERE Personal_FunktionStelleNr=@keyvalue AND aktiv=1
END


GO

/****** Object:  StoredProcedure [dbo].[sp_get_temporaetberechtigung]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_temporaetberechtigung]
@keyvalue int
AS
BEGIN
   SELECT * FROM dbo.Temporaer_Berechtigung WHERE Personal_FunktionStelleNr=@keyvalue AND aktiv=1
END


GO

/****** Object:  StoredProcedure [dbo].[sp_get_Verwaltung_durch_beziehungen]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_Verwaltung_durch_beziehungen] @keyvalue INT, @typ INT = 0
AS 
BEGIN
      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,
  Beziehungstyp VARCHAR(255),
  bcid INT,
  fcid int
)   
      SET NOCOUNT ON;


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,bcid )

                SELECT  dbo.Verwaltung_Durch_Berechtigung.Verwaltung_Durch_BerechtigungNr, dbo.Berechtigung.Bezeichnung,
                        dbo.Verwaltung_Durch_Berechtigung.Sequenz, dbo.Verwaltung_Durch_Berechtigung.Beschreibung, dbo.Verwaltung_Durch_Berechtigung.Aktiv,
                        dbo.Verwaltung_Durch_Berechtigung.Erstellt_am, dbo.Verwaltung_Durch_Berechtigung.Mutiert_am, dbo.Verwaltung_Durch_Berechtigung.Mutierer,
                        dbo.fnkt_get_bezeichnung(0) AS Typ, dbo.Berechtigung.BerechtigungNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        ,dbo.berechtigung.cid AS bcid
                FROM    dbo.Verwaltung_Durch_Berechtigung
                        INNER JOIN dbo.Verwaltung_Durch ON dbo.Verwaltung_Durch_Berechtigung.Verwaltung_DurchNr = dbo.Verwaltung_Durch.Verwaltung_DurchNr
                        INNER JOIN dbo.Berechtigung ON dbo.Verwaltung_Durch_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Durch_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   Verwaltung_Durch.Verwaltung_Durchnr = @keyvalue                      

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Verwaltung_Durch_Server.Verwaltung_Durch_ServerNr, dbo.Server.Bezeichnung, dbo.Verwaltung_Durch_Server.Sequenz,
                        dbo.Verwaltung_Durch_Server.Beschreibung, dbo.Verwaltung_Durch_Server.Aktiv, dbo.Verwaltung_Durch_Server.Erstellt_am,
                        dbo.Verwaltung_Durch_Server.Mutiert_am, dbo.Verwaltung_Durch_Server.Mutierer, dbo.fnkt_get_bezeichnung(4) AS Typ,
                        dbo.Server.ServerNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Verwaltung_Durch
                        INNER JOIN dbo.Verwaltung_Durch_Server ON dbo.Verwaltung_Durch.Verwaltung_DurchNr = dbo.Verwaltung_Durch_Server.Verwaltung_DurchNr
                        INNER JOIN dbo.Server ON dbo.Verwaltung_Durch_Server.ServerNr = dbo.Server.ServerNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Durch_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   Verwaltung_Durch.Verwaltung_Durchnr = @keyvalue                      


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Verwaltung_Durch_Plattform.Verwaltung_Durch_PlattformNr, dbo.Plattform.Bezeichnung, dbo.Verwaltung_Durch_Plattform.Sequenz,
                        dbo.Verwaltung_Durch_Plattform.Beschreibung, dbo.Verwaltung_Durch_Plattform.Aktiv, dbo.Verwaltung_Durch_Plattform.Erstellt_am,
                        dbo.Verwaltung_Durch_Plattform.Mutiert_am, dbo.Verwaltung_Durch_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ,
                        dbo.Plattform.PlattformNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Verwaltung_Durch_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Verwaltung_Durch_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Verwaltung_Durch ON dbo.Verwaltung_Durch_Plattform.Verwaltung_DurchNr = dbo.Verwaltung_Durch.Verwaltung_DurchNr
                 INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Durch_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
               WHERE   Verwaltung_Durch.Verwaltung_Durchnr = @keyvalue          

                                  UPDATE @tmp1 SET fcid=0 WHERE fcid IS NULL
      UPDATE @tmp1 SET bcid=0 WHERE bcid IS null    

      SELECT    *
      FROM      @tmp1
      ORDER BY  typ, Sequenz, Bezeichnung


END





GO

/****** Object:  StoredProcedure [dbo].[sp_get_Verwaltung_mit_beziehungen]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_get_Verwaltung_mit_beziehungen] @keyvalue INT, @typ INT = 0
AS 
BEGIN
      DECLARE @tmp1 TABLE
(
  ID INT ,
  Bezeichnung VARCHAR(255) ,
  Zusatz 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),
  fcid int,
  bcid int
)   
      SET NOCOUNT ON;


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,bcid )
                SELECT  dbo.Verwaltung_Mit_Berechtigung.Verwaltung_Mit_BerechtigungNr, dbo.Berechtigung.Bezeichnung, dbo.Verwaltung_Mit_Berechtigung.Sequenz,
                        dbo.Verwaltung_Mit_Berechtigung.Beschreibung, dbo.Verwaltung_Mit_Berechtigung.Aktiv, dbo.Verwaltung_Mit_Berechtigung.Erstellt_am,
                        dbo.Verwaltung_Mit_Berechtigung.Mutiert_am, dbo.Verwaltung_Mit_Berechtigung.Mutierer, dbo.fnkt_get_bezeichnung(0) AS Typ,
                        dbo.Berechtigung.BerechtigungNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        ,dbo.Berechtigung.cid AS bcid
                FROM    dbo.Verwaltung_Mit_Berechtigung
                        INNER JOIN dbo.Verwaltung_Mit ON dbo.Verwaltung_Mit_Berechtigung.Verwaltung_MitNr = dbo.Verwaltung_Mit.Verwaltung_MitNr
                        INNER JOIN dbo.Berechtigung ON dbo.Verwaltung_Mit_Berechtigung.BerechtigungNr = dbo.Berechtigung.BerechtigungNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Mit_Berechtigung.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   Verwaltung_Mit.Verwaltung_Mitnr = @keyvalue      
                
      INSERT    @tmp1 ( ID, Bezeichnung, Zusatz, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp,fcid )
                SELECT  dbo.Verwaltung_Mit_FunktionStelle.Verwaltung_Mit_FunktionStelleNr, dbo.FunktionStelle.Bezeichnung, ISNULL(dbo.Funktionstelle.Funktionsstelle,''),
                        dbo.Verwaltung_Mit_FunktionStelle.Sequenz, dbo.Verwaltung_Mit_FunktionStelle.Beschreibung, dbo.Verwaltung_Mit_FunktionStelle.Aktiv,
                        dbo.Verwaltung_Mit_FunktionStelle.Erstellt_am, dbo.Verwaltung_Mit_FunktionStelle.Mutiert_am, dbo.Verwaltung_Mit_FunktionStelle.Mutierer,
                        dbo.fnkt_get_bezeichnung(1) AS Typ, dbo.FunktionStelle.FunktionStelleNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                                        ,dbo.funktionstelle.cid AS fcid
                FROM    dbo.Verwaltung_Mit_FunktionStelle
                        INNER JOIN dbo.Verwaltung_Mit ON dbo.Verwaltung_Mit_FunktionStelle.Verwaltung_MitNr = dbo.Verwaltung_Mit.Verwaltung_MitNr
                        INNER JOIN dbo.FunktionStelle ON dbo.Verwaltung_Mit_FunktionStelle.FunktionStelleNr = dbo.FunktionStelle.FunktionStelleNr
                 INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Mit_FunktionStelle.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
               WHERE   Verwaltung_Mit.Verwaltung_Mitnr = @keyvalue                      
                

      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Verwaltung_Mit_Server.Verwaltung_Mit_ServerNr, dbo.Server.Bezeichnung, dbo.Verwaltung_Mit_Server.Sequenz,
                        dbo.Verwaltung_Mit_Server.Beschreibung, dbo.Verwaltung_Mit_Server.Aktiv, dbo.Verwaltung_Mit_Server.Erstellt_am,
                        dbo.Verwaltung_Mit_Server.Mutiert_am, dbo.Verwaltung_Mit_Server.Mutierer, dbo.fnkt_get_bezeichnung(4) AS Typ,
                        dbo.Server.ServerNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Verwaltung_Mit
                        INNER JOIN dbo.Verwaltung_Mit_Server ON dbo.Verwaltung_Mit.Verwaltung_MitNr = dbo.Verwaltung_Mit_Server.Verwaltung_MitNr
                        INNER JOIN dbo.Server ON dbo.Verwaltung_Mit_Server.ServerNr = dbo.Server.ServerNr
                 INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Mit_Server.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
               WHERE   Verwaltung_Mit.Verwaltung_Mitnr = @keyvalue                      


      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey,beziehungstyp )
                SELECT  dbo.Verwaltung_Mit_Plattform.Verwaltung_Mit_PlattformNr, dbo.Plattform.Bezeichnung, dbo.Verwaltung_Mit_Plattform.Sequenz,
                        dbo.Verwaltung_Mit_Plattform.Beschreibung, dbo.Verwaltung_Mit_Plattform.Aktiv, dbo.Verwaltung_Mit_Plattform.Erstellt_am,
                        dbo.Verwaltung_Mit_Plattform.Mutiert_am, dbo.Verwaltung_Mit_Plattform.Mutierer, dbo.fnkt_get_bezeichnung(3) AS Typ,
                        dbo.Plattform.PlattformNr AS MKEY, dbo.Beziehungstyp.Bezeichnung AS Beziehungstyp
                FROM    dbo.Verwaltung_Mit_Plattform
                        INNER JOIN dbo.Plattform ON dbo.Verwaltung_Mit_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                        INNER JOIN dbo.Verwaltung_Mit ON dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr = dbo.Verwaltung_Mit.Verwaltung_MitNr
                INNER JOIN
                      dbo.Beziehungstyp ON dbo.Verwaltung_Mit_Plattform.Beziehungstypnr = dbo.Beziehungstyp.BeziehungstypNr
                WHERE   Verwaltung_Mit.Verwaltung_Mitnr = @keyvalue          

                                         UPDATE @tmp1 SET fcid=0 WHERE fcid IS NULL
      UPDATE @tmp1 SET bcid=0 WHERE bcid IS null    

      SELECT    *
      FROM      @tmp1
      ORDER BY  typ, Sequenz, Bezeichnung

--DECLARE @sql VARCHAR(1024)
--      select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Mit','Berechtigung',0,@keyvalue,'dbo.Verwaltung_Mit.Verwaltung_Mitnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--      select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Mit','Funktionstelle',1,@keyvalue,'dbo.Verwaltung_Mit.Verwaltung_Mitnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--      select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Mit','Server',4,@keyvalue,'dbo.Verwaltung_Mit.Verwaltung_Mitnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

--      select @sql = dbo.fnkt_get_beziehung_sql('Verwaltung_Mit','Plattform',3,@keyvalue,'dbo.Verwaltung_Mit.Verwaltung_Mitnr') 
--      INSERT    @tmp1 ( ID, Bezeichnung, Sequenz, Beschreibung, aktiv, erstellt_am, mutiert_am, mutierer, typ, mkey, Beziehungstyp )
--      EXEC (@sql)

-- SELECT    *
--      FROM      @tmp1
--      ORDER BY  typ, Sequenz, Bezeichnung
      
--      return

END





GO

/****** Object:  StoredProcedure [dbo].[sp_getSet_Dateneigentuemer]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_getSet_Dateneigentuemer]
    @objekt VARCHAR(255) ,
    @objektnr INT ,
    @objektnr2 INT ,
    @objektnr3 INT ,
    @fnkt INT ,
    @mitarbeiternr INT
AS 
    DECLARE @rc INT
    BEGIN
        IF @objekt = 'Berechtigung' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Personal_Berechtigung.PersonalNr AS KeyValue ,
                                dbo.Personal.Bezeichnung ,
                                dbo.Personal_Berechtigung.BerechtigungNr
                        FROM    dbo.Personal
                                INNER JOIN dbo.Personal_Berechtigung ON dbo.Personal.PersonalNr = dbo.Personal_Berechtigung.PersonalNr
                        WHERE   ( dbo.Personal.Aktiv = 1 )
                                AND ( dbo.Personal_Berechtigung.Aktiv = 1 )
                                AND ( dbo.Personal_Berechtigung.BerechtigungNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Personal_Berechtigung
                        WHERE   BerechtigungNr = @objektnr
                                AND PersonalNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0 
                            BEGIN
                                INSERT  dbo.Personal_Berechtigung
                                        ( PersonalNr ,
                                          BerechtigungNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -31  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = Personal_berechtigung.Personal_BerechtigungNr
                                FROM    dbo.Personal_Berechtigung
                                WHERE   BerechtigungNr = @objektnr
                                        AND PersonalNr = @objektnr3
                                        AND Aktiv = 1         
										         
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Personal_Berechtigung
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Personal_BerechtigungNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Personal_Berechtigung
                                        SET     PersonalNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Personal_BerechtigungNr = @rc
                                    END
                            END
                    END
            END  
     
  
        IF @objekt = 'Plattform' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Personal_Plattform.PersonalNr AS KeyValue ,
                                dbo.Personal.Bezeichnung ,
                                dbo.Personal_Plattform.PlattformNr
                        FROM    dbo.Personal
                                INNER JOIN dbo.Personal_Plattform ON dbo.Personal.PersonalNr = dbo.Personal_Plattform.PersonalNr
                        WHERE   ( dbo.Personal.Aktiv = 1 )
                                AND ( dbo.Personal_Plattform.Aktiv = 1 )
                                AND ( dbo.Personal_Plattform.PlattformNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Personal_Plattform
                        WHERE   PlattformNr = @objektnr
                                AND PersonalNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0 
                            BEGIN
                                INSERT  dbo.Personal_Plattform
                                        ( PersonalNr ,
                                          PlattformNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -31  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = Personal_Plattform.Personal_PlattformNr
                                FROM    dbo.Personal_Plattform
                                WHERE   PlattformNr = @objektnr
                                        AND PersonalNr = @objektnr3
                                        AND Aktiv = 1               
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Personal_Plattform
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Personal_PlattformNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Personal_Plattform
                                        SET     PersonalNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Personal_PlattformNr = @rc
                                    END
                            END
                    END
            END  
        IF @objekt = 'Server' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Personal_Server.PersonalNr AS KeyValue ,
                                dbo.Personal.Bezeichnung ,
                                dbo.Personal_Server.ServerNr
                        FROM    dbo.Personal
                                INNER JOIN dbo.Personal_Server ON dbo.Personal.PersonalNr = dbo.Personal_Server.PersonalNr
                        WHERE   ( dbo.Personal.Aktiv = 1 )
                                AND ( dbo.Personal_Server.Aktiv = 1 )
                                AND ( dbo.Personal_Server.ServerNr = @objektnr )

                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Personal_Server
                        WHERE   ServerNr = @objektnr
                                AND PersonalNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0 
                            BEGIN
                                INSERT  dbo.Personal_Server
                                        ( PersonalNr ,
                                          ServerNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -31  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                IF @objektnr3 > 0 begin                          
                                SELECT  @rc = Personal_Server.Personal_ServerNr
                                FROM    dbo.Personal_Server
                                WHERE   ServerNr = @objektnr
                                        AND PersonalNr = @objektnr3
                                        AND Aktiv = 1                  
                                IF @objektnr2 = 0  
                                    BEGIN
                                        UPDATE  dbo.Personal_Server
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Personal_ServerNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Personal_Server
                                        SET     PersonalNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Personal_ServerNr = @rc
                                    END
  end                                  
                            END
                    END
            END  
    END


GO

/****** Object:  StoredProcedure [dbo].[sp_getSet_Verwaltung_durch]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_getSet_Verwaltung_durch]
    @objekt VARCHAR(255) ,
    @objektnr INT ,
    @objektnr2 INT ,
    @objektnr3 INT ,
    @fnkt INT ,
    @mitarbeiternr INT
AS 
    DECLARE @rc INT
    BEGIN
        IF @objekt = 'Berechtigung' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Verwaltung_Durch_Berechtigung.Verwaltung_DurchNr AS KeyValue ,
                                dbo.Verwaltung_durch.Bezeichnung ,
                                dbo.Verwaltung_Durch_Berechtigung.BerechtigungNr
                        FROM    dbo.Verwaltung_durch
                                INNER JOIN dbo.Verwaltung_Durch_Berechtigung ON dbo.Verwaltung_durch.Verwaltung_durchNr = dbo.Verwaltung_Durch_Berechtigung.Verwaltung_DurchNr
                        WHERE   ( dbo.Verwaltung_durch.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Berechtigung.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Berechtigung.BerechtigungNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Verwaltung_Durch_Berechtigung
                        WHERE   BerechtigungNr = @objektnr
                                AND Verwaltung_DurchNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0
                            BEGIN
                                INSERT  dbo.Verwaltung_Durch_Berechtigung
                                        ( Verwaltung_DurchNr ,
                                          BerechtigungNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -26  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = verwaltung_durch_berechtigung.Verwaltung_Durch_BerechtigungNr
                                FROM    dbo.Verwaltung_Durch_Berechtigung
                                WHERE   BerechtigungNr = @objektnr
                                        AND Verwaltung_DurchNr = @objektnr3
                                        AND Aktiv = 1                  
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Verwaltung_Durch_Berechtigung
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Durch_BerechtigungNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Verwaltung_Durch_Berechtigung
                                        SET     Verwaltung_DurchNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Durch_BerechtigungNr = @rc
                                    END
                            END
                    END
            END  
     
  
        IF @objekt = 'Plattform' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Verwaltung_Durch_Plattform.Verwaltung_DurchNr AS KeyValue ,
                                dbo.Verwaltung_durch.Bezeichnung ,
                                dbo.Verwaltung_Durch_Plattform.PlattformNr
                        FROM    dbo.Verwaltung_durch
                                INNER JOIN dbo.Verwaltung_Durch_Plattform ON dbo.Verwaltung_durch.Verwaltung_durchNr = dbo.Verwaltung_Durch_Plattform.Verwaltung_DurchNr
                        WHERE   ( dbo.Verwaltung_durch.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Plattform.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Plattform.PlattformNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Verwaltung_Durch_Plattform
                        WHERE   PlattformNr = @objektnr
                                AND Verwaltung_DurchNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0
                            BEGIN
                                INSERT  dbo.Verwaltung_Durch_Plattform
                                        ( Verwaltung_DurchNr ,
                                          PlattformNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -26  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = verwaltung_durch_Plattform.Verwaltung_Durch_PlattformNr
                                FROM    dbo.Verwaltung_Durch_Plattform
                                WHERE   PlattformNr = @objektnr
                                        AND Verwaltung_DurchNr = @objektnr3
                                        AND Aktiv = 1               
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Verwaltung_Durch_Plattform
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Durch_PlattformNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Verwaltung_Durch_Plattform
                                        SET     Verwaltung_DurchNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Durch_PlattformNr = @rc
                                    END
                            END
                    END
            END  
        IF @objekt = 'Server' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Verwaltung_Durch_Server.Verwaltung_DurchNr AS KeyValue ,
                                dbo.Verwaltung_durch.Bezeichnung ,
                                dbo.Verwaltung_Durch_Server.ServerNr
                        FROM    dbo.Verwaltung_durch
                                INNER JOIN dbo.Verwaltung_Durch_Server ON dbo.Verwaltung_durch.Verwaltung_durchNr = dbo.Verwaltung_Durch_Server.Verwaltung_DurchNr
                        WHERE   ( dbo.Verwaltung_durch.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Server.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Server.ServerNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Verwaltung_Durch_Server
                        WHERE   ServerNr = @objektnr
                                AND Verwaltung_DurchNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0
                            BEGIN
                                INSERT  dbo.Verwaltung_Durch_Server
                                        ( Verwaltung_DurchNr ,
                                          ServerNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -26  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = verwaltung_durch_Server.Verwaltung_Durch_ServerNr
                                FROM    dbo.Verwaltung_Durch_Server
                                WHERE   ServerNr = @objektnr
                                        AND Verwaltung_DurchNr = @objektnr3
                                        AND Aktiv = 1                  
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Verwaltung_Durch_Server
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Durch_ServerNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Verwaltung_Durch_Server
                                        SET     Verwaltung_DurchNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Durch_ServerNr = @rc
                                    END
                            END
                    END
            END  
    END


GO

/****** Object:  StoredProcedure [dbo].[sp_getSet_Verwaltung_Mit]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_getSet_Verwaltung_Mit]
    @objekt VARCHAR(255) ,
    @objektnr INT ,
    @objektnr2 INT ,
    @objektnr3 INT ,
    @fnkt INT ,
    @mitarbeiternr INT
AS 
    DECLARE @rc INT
    BEGIN
        IF @objekt = 'Berechtigung' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Verwaltung_Mit_Berechtigung.Verwaltung_MitNr AS KeyValue ,
                                dbo.Verwaltung_Mit.Bezeichnung ,
                                dbo.Verwaltung_Mit_Berechtigung.BerechtigungNr
                        FROM    dbo.Verwaltung_Mit
                                INNER JOIN dbo.Verwaltung_Mit_Berechtigung ON dbo.Verwaltung_Mit.Verwaltung_MitNr = dbo.Verwaltung_Mit_Berechtigung.Verwaltung_MitNr
                        WHERE   ( dbo.Verwaltung_Mit.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Mit_Berechtigung.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Mit_Berechtigung.BerechtigungNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Verwaltung_Mit_Berechtigung
                        WHERE   BerechtigungNr = @objektnr
                                AND Verwaltung_MitNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0
                            BEGIN
                                INSERT  dbo.Verwaltung_Mit_Berechtigung
                                        ( Verwaltung_MitNr ,
                                          BerechtigungNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -29  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = verwaltung_Mit_berechtigung.Verwaltung_Mit_BerechtigungNr
                                FROM    dbo.Verwaltung_Mit_Berechtigung
                                WHERE   BerechtigungNr = @objektnr
                                        AND Verwaltung_MitNr = @objektnr3
                                        AND aktiv = 1                
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Verwaltung_Mit_Berechtigung
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Mit_BerechtigungNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Verwaltung_Mit_Berechtigung
                                        SET     Verwaltung_MitNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Mit_BerechtigungNr = @rc
                                    END
                            END
                    END
            END  
     
  
        IF @objekt = 'Plattform' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr AS KeyValue ,
                                dbo.Verwaltung_Mit.Bezeichnung ,
                                dbo.Verwaltung_Mit_Plattform.PlattformNr
                        FROM    dbo.Verwaltung_Mit
                                INNER JOIN dbo.Verwaltung_Mit_Plattform ON dbo.Verwaltung_Mit.Verwaltung_MitNr = dbo.Verwaltung_Mit_Plattform.Verwaltung_MitNr
                        WHERE   ( dbo.Verwaltung_Mit.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Mit_Plattform.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Mit_Plattform.PlattformNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Verwaltung_Mit_Plattform
                        WHERE   PlattformNr = @objektnr
                                AND Verwaltung_MitNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0
                            BEGIN
                                INSERT  dbo.Verwaltung_Mit_Plattform
                                        ( Verwaltung_MitNr ,
                                          PlattformNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -29  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = verwaltung_Mit_Plattform.Verwaltung_Mit_PlattformNr
                                FROM    dbo.Verwaltung_Mit_Plattform
                                WHERE   PlattformNr = @objektnr
                                        AND Verwaltung_MitNr = @objektnr3
                                        AND aktiv = 1                
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Verwaltung_Mit_Plattform
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Mit_PlattformNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Verwaltung_Mit_Plattform
                                        SET     Verwaltung_MitNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Mit_PlattformNr = @rc
                                    END
                            END
                    END
            END  
        IF @objekt = 'Server' 
            BEGIN
                IF @fnkt = 1 
                    BEGIN
                        SELECT  dbo.Verwaltung_Mit_Server.Verwaltung_MitNr AS KeyValue ,
                                dbo.Verwaltung_Mit.Bezeichnung ,
                                dbo.Verwaltung_Mit_Server.ServerNr
                        FROM    dbo.Verwaltung_Mit
                                INNER JOIN dbo.Verwaltung_Mit_Server ON dbo.Verwaltung_Mit.Verwaltung_MitNr = dbo.Verwaltung_Mit_Server.Verwaltung_MitNr
                        WHERE   ( dbo.Verwaltung_Mit.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Mit_Server.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Mit_Server.ServerNr = @objektnr )  
                    END
                ELSE 
                    BEGIN
                        SELECT  @rc = COUNT(*)
                        FROM    dbo.Verwaltung_Mit_Server
                        WHERE   ServerNr = @objektnr
                                AND Verwaltung_MitNr = @objektnr3
                                AND aktiv = 1
                        IF @rc = 0 AND @objektnr2 > 0
                            BEGIN
                                INSERT  dbo.Verwaltung_Mit_Server
                                        ( Verwaltung_MitNr ,
                                          ServerNr ,
                                          Beschreibung ,
                                          Sequenz ,
                                          Aktiv ,
                                          Erstellt_am ,
                                          Mutiert_am ,
                                          Mutierer ,
                                          Beziehungstypnr
                                        )
                                VALUES  ( @objektnr2 ,
                                          @objektnr ,
                                          '' ,
                                          0 ,
                                          1 ,
                                          GETDATE() ,
                                          GETDATE() ,
                                          @mitarbeiternr ,
                                          -29  -- Beziehungstypnr - int
                                        )   
 
                            END
                        ELSE 
                            BEGIN
                                SELECT  @rc = verwaltung_Mit_Server.Verwaltung_Mit_ServerNr
                                FROM    dbo.Verwaltung_Mit_Server
                                WHERE   ServerNr = @objektnr
                                        AND Verwaltung_MitNr = @objektnr3
                                        AND aktiv = 1              
                                IF @objektnr2 = 0 
                                    BEGIN
                                        UPDATE  dbo.Verwaltung_Mit_Server
                                        SET     Aktiv = 0 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Mit_ServerNr = @rc
                                    END
                                ELSE 
                                    BEGIN                               
                                        UPDATE  dbo.Verwaltung_Mit_Server
                                        SET     Verwaltung_MitNr = @objektnr2 ,
                                                Mutiert_am = GETDATE() ,
                                                mutierer = @mitarbeiternr
                                        WHERE   Verwaltung_Mit_ServerNr = @rc
                                    END
                            END
                    END
            END  
    END



GO

/****** Object:  StoredProcedure [dbo].[sp_getset_windowsize]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_getset_windowsize]
@windowsnr INT,
@mitarbeiternr INT,
@fnkt INT,
@width INT,
@height int
AS
BEGIN
   IF @fnkt=1 BEGIN 
      SELECT * FROM windowsize WHERE mitarbeiternr=@mitarbeiternr AND window=@windowsnr
	  IF @@ROWCOUNT=0 BEGIN
         SELECT 0 AS width, 0 AS height
	  END
   END ELSE BEGIN  
      DELETE FROM windowsize WHERE mitarbeiternr=@mitarbeiternr AND window=@windowsnr	   
	  INSERT INTO [dbo].[WindowSize]
           ([Mitarbeiternr]
           ,[window]
           ,[width]
           ,[height]
           ,[erstellt_am]
           ,[mutiert_am]
           ,[mutierer])
     VALUES
           (@mitarbeiternr
           ,@windowsnr
           ,@width
           ,@height
           ,GETDATE()
           ,GETDATE()
           ,@mitarbeiternr)
   end
END


GO

/****** Object:  StoredProcedure [dbo].[sp_insert_journal]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_insert_journal]
   @DBObject VARCHAR(255),
   @Keyvalue VARCHAR(255),
   @bezeichnung VARCHAR(255),
   @beschreibung VARCHAR(1024),
   @mitarbeiternr INT

   
AS
BEGIN

IF @bezeichnung='0 - 0' SET @bezeichnung='Neu'
       IF @beschreibung='Neuer Eintrag' AND @bezeichnung='' SET @bezeichnung='Neu'
     IF @keyvalue IS NULL return
     DECLARE @ma VARCHAR(255)
     SELECT @ma = tgnummer+': ' + name +' '+vorname FROM dbo.mitarbeiter WHERE mitarbeiternr=@mitarbeiternr
     INSERT INTO dbo.journal 
           (dbobjekt, keyvalue,beschreibung,bezeichnung
           ,[Mutierer]
           ,[Erstellt_am])
     VALUES
           (@dbobject,@keyvalue, @beschreibung, @bezeichnung, @ma, GETDATE())

    
END


GO

/****** Object:  StoredProcedure [dbo].[sp_mitarbeiter_auswertungparamter_selectall]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[sp_mitarbeiter_auswertungparamter_selectall]
	@mitarbeiternr int,
    @Auswertungnr int
AS
BEGIN
	SET NOCOUNT ON;
    select * from Mitarbeiter_Auswertungsparameter where mitarbeiternr=@mitarbeiternr and auswertungnr=@auswertungnr order by Beschreibung
END






GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_beziehungstyp]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_beziehungstyp]
@sqlwhere varchar(255)
AS
BEGIN
	SET NOCOUNT ON;
	select * from beziehungstyp where aktiv=1
END

GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_cid]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_cid]
@sqlwhere varchar(255)
AS 
    BEGIN

        DECLARE @T1 TABLE
            (
              tgnummer VARCHAR(255) ,
              NAME VARCHAR(255) ,
              TYP VARCHAR(255) ,
              Bezeichnung VARCHAR(255) ,
              Bezeichnung1 VARCHAR(255) ,
              Bezeichnung2 VARCHAR(255) ,
              Bezeichnung3 VARCHAR(255) ,
              CID INT
            )
        SET NOCOUNT ON;
-- =============================================
-- Personal-Funktionstelle (direkt)
-- =============================================
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  Bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Funktionstelle' ,
                        '' ,
                        '' ,
                        '' ,
                        '' ,
                        funktionstelle.cid
                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   dbo.Funktionstelle.CID = 1
                        AND dbo.personal.aktiv = 1
                        AND dbo.Personal_FunktionStelle.Aktiv = 1
                        AND dbo.Funktionstelle.Aktiv = 1 


-- =============================================
-- Personal-Server
-- =============================================       
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  Bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Server' AS Type ,
                        dbo.Server.Bezeichnung ,
                        '' ,
                        '' ,
                        '' ,
                        dbo.Server.cid
                FROM    dbo.Personal
                       INNER JOIN dbo.Personal_Server ON dbo.Personal.Personalnr = dbo.Personal_Server.PersonalNr
                        INNER JOIN dbo.Server ON dbo.Personal_Server.ServerNr = dbo.Server.ServerNr
                WHERE   ( dbo.Personal_Server.Aktiv = 1 )
                        AND ( dbo.Server.Aktiv = 1 )
                        AND ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Server.CID = 1 )
-- =============================================
-- Personal-Plattform
-- =============================================       
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Plattform' AS Type ,
                        dbo.Plattform.Bezeichnung ,
                        '' ,
                        '' ,
                        '' ,
                        dbo.Plattform.cid
                FROM    dbo.Personal
                        INNER JOIN dbo.Personal_Plattform ON dbo.Personal.Personalnr = dbo.Personal_Plattform.PersonalNr
                        INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                WHERE   ( dbo.Personal_Plattform.Aktiv = 1 )
                        AND ( dbo.Plattform.Aktiv = 1 )
                        AND ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Plattform.CID = 1 )



-- =============================================
-- Personal-Berechtigung-Funktionstelle
-- =============================================       
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Berechtigung' AS Type ,
                        dbo.Funktionstelle.Funktionsstelle ,
                        dbo.Funktionstelle.Bezeichnung ,
                        dbo.Berechtigung.Bezeichnung ,
                        '' ,
                        dbo.berechtigung.cid
                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
                        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
                WHERE   ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Berechtigung.CID = 1 )
                        AND ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                       AND ( dbo.Funktionstelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle_Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung.Aktiv = 1 )
  
  
-- =============================================
-- Personal-Berechtigung-Plattfrom
-- =============================================       

        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Berechtigung-Plattform' AS Type ,
                        dbo.Funktionstelle.Funktionsstelle ,
                        dbo.Funktionstelle.Bezeichnung ,
                        dbo.Berechtigung.Bezeichnung AS Expr1 ,
                        dbo.Plattform.Bezeichnung AS Expr3 ,
                        dbo.Plattform.CID AS Expr2
                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
                        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.Berechtigung_Plattform ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Plattform.BerechtigungNr
                        INNER JOIN dbo.Plattform ON dbo.Berechtigung_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                WHERE   ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle_Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung_Plattform.Aktiv = 1 )
                        AND ( dbo.Plattform.Aktiv = 1 )
                        AND ( dbo.Plattform.CID = 1 )

-- =============================================
-- Personal-Berechtigung-Server
-- =============================================       

        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Berechtigung-Server' AS Type ,
                        dbo.Funktionstelle.Funktionsstelle ,
                        dbo.Funktionstelle.Bezeichnung ,
                        dbo.Berechtigung.Bezeichnung AS Expr1 ,
                        dbo.Server.Bezeichnung AS Expr3 ,
                        dbo.Server.CID AS Expr2
                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
                        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.Berechtigung_Server ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Server.BerechtigungNr
                        INNER JOIN dbo.Server ON dbo.Berechtigung_Server.ServerNr = dbo.Server.ServerNr
                WHERE   ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle_Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung_Server.Aktiv = 1 )
                        AND ( dbo.Server.Aktiv = 1 )
                        AND ( dbo.Server.CID = 1 )


        SELECT DISTINCT
                tgnummer ,
                NAME 
        FROM    @t1
        ORDER BY tgnummer
    END
  
    


GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_cid_detail]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_cid_detail]
@sqlwhere varchar(255)
AS 
    BEGIN

        DECLARE @T1 TABLE
            (
              tgnummer VARCHAR(255) ,
              NAME VARCHAR(255) ,
              TYP VARCHAR(255) ,
              Bezeichnung VARCHAR(255) ,
              Bezeichnung1 VARCHAR(255) ,
              Bezeichnung2 VARCHAR(255) ,
              Bezeichnung3 VARCHAR(255) ,
              CID INT
            )
        SET NOCOUNT ON;
-- =============================================
-- Personal-Funktionstelle (direkt)
-- =============================================
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  Bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Funktionstelle' ,
                        '' ,
                        '' ,
                        '' ,
                        '' ,
                        funktionstelle.cid
                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   dbo.Funktionstelle.CID = 1
                        AND dbo.personal.aktiv = 1
                        AND dbo.Personal_FunktionStelle.Aktiv = 1
                        AND dbo.Funktionstelle.Aktiv = 1 


-- =============================================
-- Personal-Server
-- =============================================       
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  Bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Server' AS Type ,
                        dbo.Server.Bezeichnung ,
                        '' ,
                        '' ,
                        '' ,
                        dbo.Server.cid
                FROM    dbo.Personal
                        INNER JOIN dbo.Personal_Server ON dbo.Personal.Personalnr = dbo.Personal_Server.PersonalNr
                        INNER JOIN dbo.Server ON dbo.Personal_Server.ServerNr = dbo.Server.ServerNr
                WHERE   ( dbo.Personal_Server.Aktiv = 1 )
                        AND ( dbo.Server.Aktiv = 1 )
                        AND ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Server.CID = 1 )
-- =============================================
-- Personal-Plattform
-- =============================================       
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Plattform' AS Type ,
                        dbo.Plattform.Bezeichnung ,
                        '' ,
                        '' ,
                        '' ,
                        dbo.Plattform.cid
                FROM    dbo.Personal
                        INNER JOIN dbo.Personal_Plattform ON dbo.Personal.Personalnr = dbo.Personal_Plattform.PersonalNr
                        INNER JOIN dbo.Plattform ON dbo.Personal_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                WHERE   ( dbo.Personal_Plattform.Aktiv = 1 )
                        AND ( dbo.Plattform.Aktiv = 1 )
                        AND ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Plattform.CID = 1 )



-- =============================================
-- Personal-Berechtigung-Funktionstelle
-- =============================================       
        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Berechtigung' AS Type ,
                        dbo.Funktionstelle.Funktionsstelle ,
                        dbo.Funktionstelle.Bezeichnung ,
                        dbo.Berechtigung.Bezeichnung ,
                        '' ,
                        dbo.berechtigung.cid
                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
                        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
                WHERE   ( dbo.Personal.Aktiv = 1 )
                       AND ( dbo.Berechtigung.CID = 1 )
                        AND ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle_Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung.Aktiv = 1 )
  
  
-- =============================================
-- Personal-Berechtigung-Plattfrom
-- =============================================       

        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Berechtigung-Plattform' AS Type ,
                        dbo.Funktionstelle.Funktionsstelle ,
                        dbo.Funktionstelle.Bezeichnung ,
                        dbo.Berechtigung.Bezeichnung AS Expr1 ,
                        dbo.Plattform.Bezeichnung AS Expr3 ,
                        dbo.Plattform.CID AS Expr2
                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
                        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.Berechtigung_Plattform ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Plattform.BerechtigungNr
                        INNER JOIN dbo.Plattform ON dbo.Berechtigung_Plattform.PlattformNr = dbo.Plattform.PlattformNr
                WHERE   ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle_Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung_Plattform.Aktiv = 1 )
                        AND ( dbo.Plattform.Aktiv = 1 )
                        AND ( dbo.Plattform.CID = 1 )

-- =============================================
-- Personal-Berechtigung-Server
-- =============================================       

        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID
                )
                SELECT  dbo.Personal.TGNummer ,
                        dbo.Personal.Name ,
                        'Berechtigung-Server' AS Type ,
                        dbo.Funktionstelle.Funktionsstelle ,
                        dbo.Funktionstelle.Bezeichnung ,
                        dbo.Berechtigung.Bezeichnung AS Expr1 ,
                        dbo.Server.Bezeichnung AS Expr3 ,
                        dbo.Server.CID AS Expr2
                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
                        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.Berechtigung_Server ON dbo.Berechtigung.BerechtigungNr = dbo.Berechtigung_Server.BerechtigungNr
                        INNER JOIN dbo.Server ON dbo.Berechtigung_Server.ServerNr = dbo.Server.ServerNr
                WHERE   ( dbo.Personal.Aktiv = 1 )
                        AND ( dbo.Personal_FunktionStelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle.Aktiv = 1 )
                        AND ( dbo.Funktionstelle_Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung.Aktiv = 1 )
                        AND ( dbo.Berechtigung_Server.Aktiv = 1 )
                        AND ( dbo.Server.Aktiv = 1 )
                        AND ( dbo.Server.CID = 1 )


-- =============================================
-- Personal-Funktionstelle-Plattform
-- =============================================       

        INSERT  @T1
                ( tgnummer ,
                  NAME ,
                  TYP ,
                  Bezeichnung ,
                  Bezeichnung1 ,
                  Bezeichnung2 ,
                  bezeichnung3 ,
                  CID)
				  SELECT     dbo.Personal.TGNummer, dbo.Personal.Name, 'Funktionstelle-Plattform' AS Type, dbo.Funktionstelle.Funktionsstelle, dbo.Funktionstelle.Bezeichnung, '' AS Expr1, 
                      dbo.Plattform.Bezeichnung AS Expr3, dbo.Plattform.cid AS Expr2
FROM         dbo.FunktionStelle_Plattform INNER JOIN
                      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 ON 
                      dbo.FunktionStelle_Plattform.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr INNER JOIN
                      dbo.Plattform ON dbo.FunktionStelle_Plattform.PlattformNr = dbo.Plattform.PlattformNr
WHERE     (dbo.Personal.Aktiv = 1) AND (dbo.Personal_FunktionStelle.Aktiv = 1) AND (dbo.Funktionstelle.Aktiv = 1) AND (dbo.Plattform.Aktiv = 1) AND (dbo.Plattform.cid = 1)

        SELECT DISTINCT
                tgnummer ,
                NAME ,
                TYP ,
                Bezeichnung ,
                Bezeichnung1 ,
                Bezeichnung2 ,
                bezeichnung3
        FROM    @t1
        ORDER BY tgnummer ,
                bezeichnung ,
                bezeichnung1
    END
  
    


GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionsstellen]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_funktionsstellen]
@sqlwhere VARCHAR(255)
AS
BEGIN
	SET NOCOUNT ON;
	SELECT        TOP (100) PERCENT  cast(Funktionsstelle as numeric(17,0)) as Funktionsstelle, Bezeichnung, Aktiv
FROM            dbo.Funktionstelle
WHERE        (Aktiv = 1) AND (Funktionsstelle <> '')
ORDER BY Funktionsstelle
END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionsstellen_detail]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[sp_rpt_funktionsstellen_detail] @sqlwhere VARCHAR(255)
AS 
    BEGIN
        SET nocount ON
        DECLARE @tmp1 TABLE
            (
              funktionstellenr INT ,
              funktionstelle VARCHAR(255) ,
              bezeichnung VARCHAR(255) ,
              beschreibung VARCHAR(255) ,
              typ VARCHAR(255) ,
              Bez_Bezeichnung VARCHAR(255) ,
              verwaltung_durch VARCHAR(255) ,
              verwaltung_mit VARCHAR(255) ,
              dateneigentuemer VARCHAR(255) ,
              sequenz VARCHAR(255) ,
              Bezbeschreibung VARCHAR(255) ,
              Beschreibung2 VARCHAR(255)
            )

        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)
            )

        DECLARE @t2 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)
            )
        
        DECLARE @keyvalue INT
        DECLARE @fnktstelle VARCHAR(255)
        DECLARE @bezeichnung VARCHAR(255)
        DECLARE @beschreibung VARCHAR(255)
        DECLARE @t2bez VARCHAR(255) ,
            @t2besch VARCHAR(255) ,
            @t2seq VARCHAR(255) ,
            @t2typ VARCHAR(255) ,
            @t2beztyp VARCHAR(255)
        DECLARE @vmit VARCHAR(255) ,
            @vdurch VARCHAR(255) ,
            @eigentuemer VARCHAR(255)

        DECLARE xc CURSOR
        FOR
            SELECT  funktionstellenr ,
                    funktionsstelle ,
                    bezeichnung ,
                    beschreibung
            FROM    dbo.funktionstelle
            WHERE   --funktionsstelle ='11584210' and
                    ( Aktiv = 1 )
                    AND ( Funktionsstelle <> '' )
            ORDER BY funktionsstelle
          -- and funktionstellenr=753
        OPEN xc
        FETCH NEXT FROM xc INTO @keyvalue, @fnktstelle, @bezeichnung,
            @beschreibung
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                DELETE  FROM @t1
                DELETE  FROM @t2
                INSERT  @t1
                        SELECT  *
                        FROM    dbo.fnkt_get_Report_Data(@keyvalue)
                INSERT  @t2
                        SELECT  ID ,
                                Bezeichnung ,
                                Beschreibung ,
                                Sequenz ,
                                aktiv ,
                                erstellt_am ,
                                mutiert_am ,
                                mutierer ,
                                typ ,
                                MKey ,
                                Beziehungstyp
                        FROM    fnkt_funktionstelle_beziehung(@keyvalue)

                DECLARE xx CURSOR
                FOR
                    SELECT  bezeichnung ,
                            beschreibung ,
                            sequenz ,
                            typ ,
                            beziehungstyp
                    FROM    @t2
                OPEN xx
                FETCH NEXT FROM xx INTO @t2bez, @t2besch, @t2seq, @t2typ,
                    @t2beztyp
                SELECT  @vmit = ISNULL(verwaltungmit, '') ,
                        @vdurch = ISNULL(verwaltungdurch, '') ,
                        @eigentuemer = ISNULL(eigentuemer, '')
                FROM    @t1
                WHERE   berechtigungfuer = @t2bez

                WHILE @@FETCH_STATUS = 0 
                    BEGIN
                        IF @keyvalue = 753 
                            PRINT 'hallo'

                        INSERT  @tmp1
                                ( funktionstellenr ,
                                  funktionstelle ,
                                  bezeichnung ,
                                  beschreibung ,
                                  typ ,
                                  Bez_Bezeichnung ,
                                  verwaltung_durch ,
                                  verwaltung_mit ,
                                  dateneigentuemer ,
                                  sequenz ,
                                  Bezbeschreibung ,
                                  beschreibung2
                                )
                        VALUES  ( @keyvalue ,
                                  @fnktstelle ,
                                  @bezeichnung ,
                                  @beschreibung ,
                                  @t2typ ,
                                  @t2bez ,
                                  @vdurch ,
                                  @vmit ,
                                  @eigentuemer ,
                                  @t2seq ,
                                  @t2beztyp ,
                                  @t2besch
                                )

 
                        FETCH NEXT FROM xx INTO @t2bez, @t2besch, @t2seq,
                            @t2typ, @t2beztyp
                    END
                CLOSE xx
                DEALLOCATE xx
                FETCH NEXT FROM xc INTO @keyvalue, @fnktstelle, @bezeichnung,
                    @beschreibung

            END
        CLOSE xc
        DEALLOCATE xc

             
             UPDATE @tmp1 SET dateneigentuemer='', Verwaltung_durch ='',  Verwaltung_mit = ''
             DECLARE @bez VARCHAR(255)
             DECLARE @typ VARCHAR(255)
             DECLARE @k INT
        DECLARE @b1 VARCHAR(255)
             DECLARE xc CURSOR FOR SELECT DISTINCT bez_bezeichnung, typ FROM @tmp1 WHERE typ='Berechtigung' OR typ='Plattform' OR typ='Server'
             OPEN xc
             FETCH NEXT FROM xc INTO @bez, @typ
             WHILE @@FETCH_STATUS=0 BEGIN
           IF @typ='Berechtigung' BEGIN
                           SELECT @k=berechtigungnr FROM berechtigung WHERE bezeichnung=@bez
                           SELECT @b1=ISNULL(dbo.Verwaltung_durch.Bezeichnung,'')
                        FROM    dbo.Verwaltung_durch
                                INNER JOIN dbo.Verwaltung_Durch_Berechtigung ON dbo.Verwaltung_durch.Verwaltung_durchNr = dbo.Verwaltung_Durch_Berechtigung.Verwaltung_DurchNr
                        WHERE   ( dbo.Verwaltung_durch.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Berechtigung.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Berechtigung.BerechtigungNr = @k )          
                UPDATE @tmp1 SET Verwaltung_durch  = @b1 WHERE bez_bezeichnung=@bez
                           SET @b1=''
                           SELECT @b1=ISNULL(dbo.verwaltung_mit.Bezeichnung,'')
                        FROM    dbo.verwaltung_mit
                                INNER JOIN dbo.verwaltung_mit_Berechtigung ON dbo.verwaltung_mit.verwaltung_mitNr = dbo.verwaltung_mit_Berechtigung.verwaltung_mitNr
                        WHERE   ( dbo.verwaltung_mit.Aktiv = 1 )
                                AND ( dbo.verwaltung_mit_Berechtigung.Aktiv = 1 )
                                AND ( dbo.verwaltung_mit_Berechtigung.BerechtigungNr = @k )          
                UPDATE @tmp1 SET verwaltung_mit  = @b1 WHERE bez_bezeichnung=@bez
                           SET @b1=''
                                  SELECT @b1=ISNULL(dbo.Personal.tgnummer+' '+dbo.personal.name,'')
                        FROM    dbo.Personal
                                INNER JOIN dbo.Personal_Berechtigung ON dbo.Personal.PersonalNr = dbo.Personal_Berechtigung.PersonalNr
                        WHERE   ( dbo.Personal.Aktiv = 1 )
                                AND ( dbo.Personal_Berechtigung.Aktiv = 1 )
                                AND  dbo.Personal_Berechtigung.BerechtigungNr = @k AND (dbo.Personal_Berechtigung.Beziehungstypnr=-30 or dbo.Personal_Berechtigung.Beziehungstypnr=-31 )  
                           UPDATE @tmp1 SET dateneigentuemer  = @b1 WHERE bez_bezeichnung=@bez
                           SET @b1=''
                    END
                    IF @typ='Plattform' begin
                           SELECT @k=plattformnr FROM plattform WHERE bezeichnung=@bez
                           SELECT  @b1=ISNULL(dbo.Verwaltung_durch.Bezeichnung,'')
                        FROM    dbo.Verwaltung_durch
                                INNER JOIN dbo.Verwaltung_Durch_Plattform ON dbo.Verwaltung_durch.Verwaltung_durchNr = dbo.Verwaltung_Durch_Plattform.Verwaltung_DurchNr
                        WHERE   ( dbo.Verwaltung_durch.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Plattform.Aktiv = 1 )
                                AND ( dbo.Verwaltung_Durch_Plattform.PlattformNr = @k)      
                           UPDATE @tmp1 SET Verwaltung_durch  = @b1 WHERE bez_bezeichnung=@bez
                           SET @b1=''      
                           SELECT  @b1=ISNULL(dbo.verwaltung_mit.Bezeichnung,'')
                        FROM    dbo.verwaltung_mit
                                INNER JOIN dbo.verwaltung_mit_Plattform ON dbo.verwaltung_mit.verwaltung_mitNr = dbo.verwaltung_mit_Plattform.verwaltung_mitNr
                        WHERE   ( dbo.verwaltung_mit.Aktiv = 1 )
                                AND ( dbo.verwaltung_mit_Plattform.Aktiv = 1 )
                                AND ( dbo.verwaltung_mit_Plattform.PlattformNr = @k)      
                           UPDATE @tmp1 SET Verwaltung_mit  = @b1 WHERE bez_bezeichnung=@bez
                           SET @b1=''

                           SELECT   @b1=ISNULL(dbo.Personal.tgnummer+' '+dbo.personal.name,'')
                        FROM    dbo.Personal
                                INNER JOIN dbo.Personal_Plattform ON dbo.Personal.PersonalNr = dbo.Personal_Plattform.PersonalNr
                        WHERE   ( dbo.Personal.Aktiv = 1 )
                                AND ( dbo.Personal_Plattform.Aktiv = 1 )
                                AND ( dbo.Personal_Plattform.PlattformNr = @k )  
                           UPDATE @tmp1 SET dateneigentuemer  = @b1 WHERE bez_bezeichnung=@bez
                           SET @b1=''
                    end
                    FETCH NEXT FROM xc INTO @bez, @typ
             END
             CLOSE xc
             DEALLOCATE xc      
                
          
        SELECT  CAST(funktionstelle AS NUMERIC(17, 0)) AS Funktionsnummer ,
                Bezeichnung ,
                Beschreibung ,
                Typ ,
                Bez_Bezeichnung ,
                Verwaltung_durch ,
                Verwaltung_mit ,
                Dateneigentuemer ,
                Bezbeschreibung AS Beziehungstyp ,
                Sequenz ,
                Beschreibung2 AS Beziehungsbeschreibung
        FROM    @tmp1
        ORDER BY funktionstelle
    END


GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionstelle]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_funktionstelle]
      @sqlwhere VARCHAR(255)
AS 
BEGIN

      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)
)   

      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)
)
   
   
   
      DECLARE @sql VARCHAR(4096)   
      SET @sql = 'SELECT    FunktionstelleNr, bezeichnung, funktionsstelle, Funktionsstelle, ParentID'
      SET @sql = @sql + ' FROM      Funktionstelle where aktiv=1'
      IF @sqlwhere <> '' 
         SET @sql = @sql + ' and ' + @sqlwhere
       
     
      DECLARE @tmp TABLE
(
  fnr INT ,
  fbezeichnung VARCHAR(255) ,
  fstelle VARCHAR(255) ,
  fnummer VARCHAR(255) ,
  parent INT
) 


      INSERT    @tmp
                EXEC ( @sql
                    )
      SELECT TOP 1
                @fnr = fnr, @fbezeichnung = fbezeichnung, @fstelle = fstelle, @fnummer = fnummer, @parent = parent
      FROM      @tmp

SELECT DISTINCT 
   cast(Funktionsnummer as numeric(17,0)) as Funktionsnummer,
  funktionsbezeichnung ,
  plattform  ,
  verwaltungmit  ,
  verwaltungdurch,
  berechtigungIn  ,
  berechtigungfuer ,
  eigentuemer

 FROM dbo.fnkt_get_Report_Data(@fnr)
ORDER BY plattform, verwaltungmit, berechtigungin, berechtigungfuer

    
END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionstelle_Vergleich]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_funktionstelle_Vergleich]
    @sqlwhere VARCHAR(1024)
AS 
    BEGIN
   --SELECT * INTO #tmp1 FROM  dbo.fnkt_split(@sqlwhere,'or',2)

        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)
            )
        DECLARE @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)
            )

        DECLARE @t3 TABLE
            (
              Zeile INT ,
              Funktionsnummer1 VARCHAR(255) ,
              Funktionsbezeichnung1 VARCHAR(255) ,
              Plattform1 VARCHAR(255) ,
              Verwaltungmit1 VARCHAR(255) ,
              Verwaltungdurch1 VARCHAR(255) ,
              BerechtigungIn1 VARCHAR(255) ,
              Berechtigungfuer1 VARCHAR(255) ,
              Eigentuemer1 VARCHAR(255) ,
              Funktionsnummer2 VARCHAR(255) ,
              Funktionsbezeichnung2 VARCHAR(255) ,
              Plattform2 VARCHAR(255) ,
              Verwaltungmit2 VARCHAR(255) ,
              Verwaltungdurch2 VARCHAR(255) ,
              BerechtigungIn2 VARCHAR(255) ,
              Berechtigungfuer2 VARCHAR(255) ,
              Eigentuemer2 VARCHAR(255)
            )


        DECLARE @tfnr TABLE ( fnnr INT )
        DECLARE @i INT
   
        DECLARE @sql VARCHAR(1024)
        SET @sql = 'select funktionstellenr from funktionstelle where '
            + @sqlwhere
			PRINT @sql
        INSERT  @tfnr
                EXEC ( @sql
                    )
   
        DECLARE @item VARCHAR(1024)
        DECLARE @res INT
        SET @i = 0
        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    @tfnr
        OPEN xc
        FETCH NEXT FROM xc INTO @item
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                IF @i = 0 
                    INSERT  @t1
                            SELECT DISTINCT
                                    *
                            FROM    dbo.fnkt_get_Report_Data(@item)
                IF @i = 1 
                    INSERT  @t2
                            SELECT DISTINCT
                                    *
                            FROM    dbo.fnkt_get_Report_Data(@item)
                SET @i = @i + 1
--      SET @sql = 'select funktionstellnr from funktionstelle where '+@item
--      SELECT @res=EXEC @sql 
                FETCH NEXT FROM xc INTO @item
            END
        CLOSE xc 
        DEALLOCATE xc
   --SELECT * FROM @t1
   --SELECT * FROM @t2
   
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        INTO    #tmp1
        FROM    @t1
        EXCEPT
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        FROM    @t2
   
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        INTO    #tmp2
        FROM    @t2
        EXCEPT
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        FROM    @t1



        ALTER TABLE #tmp1 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp1 ADD Funktionsbezeichnung VARCHAR(255)

        ALTER TABLE #tmp2 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp2 ADD Funktionsbezeichnung VARCHAR(255)

        DECLARE @fnr VARCHAR(255)
        DECLARE @fbe VARCHAR(255)

        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        UPDATE  #tmp1
        SET     Funktionsnummer = @fnr 
        UPDATE  #tmp1
        SET     funktionsbezeichnung = @fbe


        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        UPDATE  #tmp2
        SET     Funktionsnummer = @fnr
        UPDATE  #tmp2
        SET     funktionsbezeichnung = @fbe




        DECLARE @Zeile INT ,
            @Funktionsnummer1 VARCHAR(255) ,
            @Funktionsbezeichnung1 VARCHAR(255) ,
            @Plattform1 VARCHAR(255) ,
            @Verwaltungmit1 VARCHAR(255) ,
            @Verwaltungdurch1 VARCHAR(255) ,
            @BerechtigungIn1 VARCHAR(255) ,
            @Berechtigungfuer1 VARCHAR(255) ,
            @Eigentuemer1 VARCHAR(255)
  
        SET @zeile = 1
        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp1
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1 ,
                          @fnr ,
                          @fbe ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          ''
                        )
                SET @zeile = @zeile + 1
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp2
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @fnr ,
                          @fbe ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1
                        )
                SET @zeile = @zeile + 1
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

        SELECT  Zeile ,
                          cast(Funktionsnummer1 as numeric(17,0)) as Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          cast(Funktionsnummer2 as numeric(17,0)) as Funktionsnummer2  ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
        FROM    @t3

--INSERT 
--SELECT Funktionsnummer,
--  Funktionsbezeichnung,
--  Plattform,
--  verwaltungmit AS Verwaltung_Mit,
--  verwaltungdurch AS Verwaltung_Durch,
--  berechtigungIn AS Berechtigung_in,
--  berechtigungfuer AS Berechtigung_Fuer,
--  eigentuemer AS Eigentuemer
--FROM #tmp1 UNION ALL 
--SELECT 
--Funktionsnummer,
--  Funktionsbezeichnung,
--  Plattform,
--  verwaltungmit AS Verwaltung_Mit,
--  verwaltungdurch AS Verwaltung_Durch,
--  berechtigungIn AS Berechtigung_in,
--  berechtigungfuer AS Berechtigung_Fuer,
--  eigentuemer AS Eigentuemer
--   FROM #tmp2
   
        DROP TABLE #tmp1
        DROP TABLE #tmp2
   
   --DECLARE xc
   
   
    END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_funktionstelle_Vergleich_vollstaendig]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_funktionstelle_Vergleich_vollstaendig]
    @sqlwhere VARCHAR(1024)
AS 
    BEGIN
   --SELECT * INTO #tmp1 FROM  dbo.fnkt_split(@sqlwhere,'or',2)

        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)
            )
        DECLARE @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)
            )

        DECLARE @t3 TABLE
            (
              Zeile INT ,
              Funktionsnummer1 VARCHAR(255) ,
              Funktionsbezeichnung1 VARCHAR(255) ,
              Plattform1 VARCHAR(255) ,
              Verwaltungmit1 VARCHAR(255) ,
              Verwaltungdurch1 VARCHAR(255) ,
              BerechtigungIn1 VARCHAR(255) ,
              Berechtigungfuer1 VARCHAR(255) ,
              Eigentuemer1 VARCHAR(255) ,
              Funktionsnummer2 VARCHAR(255) ,
              Funktionsbezeichnung2 VARCHAR(255) ,
              Plattform2 VARCHAR(255) ,
              Verwaltungmit2 VARCHAR(255) ,
              Verwaltungdurch2 VARCHAR(255) ,
              BerechtigungIn2 VARCHAR(255) ,
              Berechtigungfuer2 VARCHAR(255) ,
              Eigentuemer2 VARCHAR(255)
            )

        DECLARE @t4 TABLE
            (
              Zeile INT ,
              Funktionsnummer1 VARCHAR(255) ,
              Funktionsbezeichnung1 VARCHAR(255) ,
              Plattform1 VARCHAR(255) ,
              Verwaltungmit1 VARCHAR(255) ,
              Verwaltungdurch1 VARCHAR(255) ,
              BerechtigungIn1 VARCHAR(255) ,
              Berechtigungfuer1 VARCHAR(255) ,
              Eigentuemer1 VARCHAR(255) ,
              Funktionsnummer2 VARCHAR(255) ,
              Funktionsbezeichnung2 VARCHAR(255) ,
              Plattform2 VARCHAR(255) ,
              Verwaltungmit2 VARCHAR(255) ,
              Verwaltungdurch2 VARCHAR(255) ,
              BerechtigungIn2 VARCHAR(255) ,
              Berechtigungfuer2 VARCHAR(255) ,
              Eigentuemer2 VARCHAR(255)
            )


        DECLARE @tfnr TABLE ( fnnr INT )
        DECLARE @i INT
   
        DECLARE @sql VARCHAR(1024)
        SET @sql = 'select funktionstellenr from funktionstelle where '
            + @sqlwhere
        INSERT  @tfnr
                EXEC ( @sql
                    )
   
        DECLARE @item VARCHAR(1024)
        DECLARE @res INT
        SET @i = 0
        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    @tfnr
        OPEN xc
        FETCH NEXT FROM xc INTO @item
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                IF @i = 0 
                    INSERT  @t1
                            SELECT DISTINCT
                                    *
                            FROM    dbo.fnkt_get_Report_Data(@item)
                IF @i = 1 
                    INSERT  @t2
                            SELECT DISTINCT
                                    *
                            FROM    dbo.fnkt_get_Report_Data(@item)
                SET @i = @i + 1
--      SET @sql = 'select funktionstellnr from funktionstelle where '+@item
--      SELECT @res=EXEC @sql 
                FETCH NEXT FROM xc INTO @item
            END
        CLOSE xc 
        DEALLOCATE xc
   --SELECT * FROM @t1
   --SELECT * FROM @t2
   
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        INTO    #tmp1
        FROM    @t1
        --EXCEPT
        --SELECT  plattform ,
        --        verwaltungmit ,
        --        verwaltungdurch ,
        --        berechtigungIn ,
        --        berechtigungfuer ,
        --        eigentuemer
        --FROM    @t2
   
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        INTO    #tmp2
        FROM    @t2
        --EXCEPT
        --SELECT  plattform ,
        --        verwaltungmit ,
        --        verwaltungdurch ,
        --        berechtigungIn ,
        --        berechtigungfuer ,
        --        eigentuemer
        --FROM    @t1



        ALTER TABLE #tmp1 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp1 ADD Funktionsbezeichnung VARCHAR(255)

        ALTER TABLE #tmp2 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp2 ADD Funktionsbezeichnung VARCHAR(255)

        DECLARE @fnr VARCHAR(255)
        DECLARE @fbe VARCHAR(255)

        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        UPDATE  #tmp1
        SET     Funktionsnummer = @fnr 
        UPDATE  #tmp1
        SET     funktionsbezeichnung = @fbe


        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        UPDATE  #tmp2
        SET     Funktionsnummer = @fnr
        UPDATE  #tmp2
        SET     funktionsbezeichnung = @fbe


        DECLARE @Zeile INT ,
		    @Zeile1 INT,
			@Zeile2 INT,
            @Funktionsnummer1 VARCHAR(255) ,
            @Funktionsbezeichnung1 VARCHAR(255) ,
            @Plattform1 VARCHAR(255) ,
            @Verwaltungmit1 VARCHAR(255) ,
            @Verwaltungdurch1 VARCHAR(255) ,
            @BerechtigungIn1 VARCHAR(255) ,
            @Berechtigungfuer1 VARCHAR(255) ,
            @Eigentuemer1 VARCHAR(255),
            @Funktionsnummer2 VARCHAR(255) ,
            @Funktionsbezeichnung2 VARCHAR(255) ,
            @Plattform2 VARCHAR(255) ,
            @Verwaltungmit2 VARCHAR(255) ,
            @Verwaltungdurch2 VARCHAR(255) ,
            @BerechtigungIn2 VARCHAR(255) ,
            @Berechtigungfuer2 VARCHAR(255) ,
            @Eigentuemer2 VARCHAR(255)
  
        SET @zeile = 10
        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp1
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1 ,
                          @fnr ,
                          @fbe ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          ''
                        )
                SET @zeile = @zeile + 10
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

		DECLARE @rc int        
        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

       SET @zeile = 10
       DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp2
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 
       WHILE @@FETCH_STATUS = 0 
            BEGIN
                SELECT @rc=COUNT(*) FROM @t3 WHERE zeile=@zeile
				IF @rc=0 BEGIN          
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @fnr ,
                          @fbe ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1
                        )
                END ELSE BEGIN
				   UPDATE @t3 SET Funktionsnummer2 = @funktionsnummer1,
                          Funktionsbezeichnung2 =@Funktionsbezeichnung1,
                          Plattform2=@plattform1,
                          Verwaltungmit2=@verwaltungmit1 ,
                          Verwaltungdurch2=@verwaltungdurch1 ,
                          BerechtigungIn2=@berechtigungin1,
                          Berechtigungfuer2=@berechtigungfuer1 ,
                          Eigentuemer2=@eigentuemer1
						  WHERE zeile=@zeile
						  end

                SET @zeile = @zeile + 10
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

        SELECT  *
        FROM    @t3
        DROP TABLE #tmp1
        DROP TABLE #tmp2
   
   
   
    END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_get_auswertungparameter]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
create PROCEDURE [dbo].[sp_rpt_get_auswertungparameter]
@auswertungnr int
as
BEGIN
	SET NOCOUNT ON;
SELECT      dbo.Auswertungsparameter.Auswertungparameternr, dbo.Auswertungsparameter.Bezeichnung, dbo.Auswertungsparameter.Operator, 
                      dbo.Auswertungsparameter.Feldbezug, dbo.Auswertungsparameter.Wert, dbo.Auswertungsparameter.ParamName, dbo.AuswertungAuswertungParameter.DBfeldname, 
                      dbo.Auswertungsparameter.ParamType, dbo.AuswertungAuswertungParameter.Auswertungnr, dbo.AuswertungAuswertungParameter.Reihenfolge
FROM         dbo.AuswertungAuswertungParameter INNER JOIN
                      dbo.Auswertungsparameter ON dbo.AuswertungAuswertungParameter.Auswertungparameternr = dbo.Auswertungsparameter.Auswertungparameternr
WHERE     (dbo.Auswertungsparameter.Aktiv = 1) AND (dbo.AuswertungAuswertungParameter.Aktiv = 1) AND (dbo.AuswertungAuswertungParameter.Auswertungnr = @auswertungnr)
ORDER BY dbo.AuswertungAuswertungParameter.Reihenfolge
END







GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_Logfile]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_Logfile]
      @sqlwhere VARCHAR(255)
AS 
BEGIN
      DECLARE @sql VARCHAR(4096)   
      SET @sql = 'SELECT * '
      SET @sql = @sql + ' FROM Journal'
      IF @sqlwhere <> '' SET @sql = @sql + ' WHERE ' + @sqlwhere
      SET @sql = @sql + ' order by erstellt_am desc '
          
      EXEC(@sql)
END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_tgnummer]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_tgnummer] @sqlwhere 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)
  --,
  --s1 INT,
  --s2 INT,
  --s3 INT,
  --s4 int
)

      DECLARE @sql VARCHAR(4096)   
      SET @sql = 'SELECT     dbo.Funktionstelle.Funktionsstelle '
      SET @sql = @sql + ' FROM         dbo.Personal INNER JOIN '
      SET @sql = @sql + ' dbo.Personal_FunktionStelle ON dbo.Personal.Personalnr = dbo.Personal_FunktionStelle.PersonalNr INNER JOIN '
      SET @sql = @sql + ' dbo.Funktionstelle ON dbo.Personal_FunktionStelle.FunktionStelleNr = dbo.Funktionstelle.FunktionstelleNr '
      SET @sql = @sql + ' WHERE funktionstelle.aktiv=1 and personal_funktionstelle.aktiv=1 and ' + @sqlwhere

      DECLARE @tgtmp TABLE ( fstelle VARCHAR(255) ) 

      INSERT    @tgtmp
                EXEC ( @sql
                    )


      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 AND aktiv=1
   
                  INSERT    @tgt1 SELECT DISTINCT 
				  
				   funktionsnummer,
  funktionsbezeichnung,
  plattform,
  verwaltungmit,
  verwaltungdurch,
  berechtigungIn ,
  berechtigungfuer,
  eigentuemer
     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)
) 

      SET @sql = 'SELECT     dbo.Personal.TGNummer, dbo.personal.name '
      SET @sql = @sql + ' FROM         dbo.Personal '
      SET @sql = @sql + ' WHERE ' + @sqlwhere

      INSERT    @tgtg
                EXECUTE ( @sql
                       )
      UPDATE    @tgt1
      SET       funktionsnummer = tgnummer, funktionsbezeichnung = name
      FROM      @tgtg
      SELECT    DISTINCT funktionsnummer,  funktionsbezeichnung,  plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer,
                eigentuemer
      FROM      @tgt1
      --ORDER BY  verwaltungdurch, plattform, verwaltungmit
	  ORDER BY plattform, verwaltungmit, berechtigungin, berechtigungfuer

END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_tgnummer_data-sik]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_tgnummer_data-sik] @ifnr INT
AS 
BEGIN
      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)
)   

      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)
)
   
  
  
      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(@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 @funktionsnummer VARCHAR(255) ,
              @funktionsbezeichnung VARCHAR(255) ,
              @verwaltungdurch VARCHAR(255) ,
              @plattform VARCHAR(255) ,
              @verwaltungmit VARCHAR(255) ,
              @berechtigungIn VARCHAR(255) ,
              @berechtigungfuer VARCHAR(255) ,
              @eigentuemer VARCHAR(255)
      
      DECLARE xc CURSOR
      FOR
      SELECT    bezeichnung, mkey, TYP
      FROM      @tmp1
      OPEN xc
      FETCH NEXT FROM xc INTO @bez, @key, @typ
      WHILE @@FETCH_STATUS = 0 
            BEGIN
                  SET @funktionsnummer = @fnummer
                  SET @funktionsbezeichnung = @fbezeichnung
                  SET @berechtigungfuer = @fbezeichnung

                  IF UPPER(@typ) = 'BERECHTIGUNG' 
                     BEGIN
                           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   

					   SET @eigentuemer=''
                           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
                           IF @@ROWCOUNT = 0 SET @eigentuemer=''
                     END
         
                  IF UPPER(@typ) = 'PLATTFORM' 
                     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    level = 2
                           --         AND parentid > 0
                           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
                                       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
                           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
            END   
      INSERT    @t1 ( funktionsnummer, funktionsbezeichnung, plattform, verwaltungmit, verwaltungdurch, berechtigungIn, berechtigungfuer, eigentuemer )
      VALUES    ( @funktionsnummer, @funktionsbezeichnung, @plattform, @verwaltungmit, @verwaltungdurch, @berechtigungIn, @berechtigungfuer, @eigentuemer )
                              
                 
           
      CLOSE xc
      DEALLOCATE xc

      SELECT    DISTINCT
                *
      FROM      @t1  
      
      
END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_tgnummer_fnktstelle]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_tgnummer_fnktstelle]
@sqlwhere VARCHAR(1024)
AS
BEGIN
	SET NOCOUNT ON;
SELECT        TOP (100) PERCENT dbo.Personal.TGNummer AS UserID, dbo.Personal.Name,dbo.Funktionstelle.Funktionsstelle as Funktionsstelle, dbo.Funktionstelle.Bezeichnung
into #tmp1
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        (dbo.Personal.TGNummer <> '') AND (dbo.Personal.Aktiv = 1) AND Personal_FunktionStelle.Aktiv=1 AND dbo.Funktionstelle.Aktiv=1
ORDER BY UserID, dbo.Funktionstelle.Funktionsstelle, dbo.Funktionstelle.Bezeichnung

--select userid, name, CAST(funktionsstelle as Numeric(17,0)) as Funktionsstelle,bezeichnung from #tmp1
select userid, name,cast(Funktionsstelle as numeric(17,0)) as Funktionsstelle,bezeichnung from #tmp1
drop table #tmp1

END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_user]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_user]
@sqlwhere VARCHAR(1024)
AS
BEGIN
	SET NOCOUNT ON;
SELECT        TOP (100) PERCENT TGNummer AS UserID, Name
FROM            dbo.Personal
WHERE        (TGNummer <> '') AND (Aktiv = 1)
ORDER BY UserID
END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_Vergleiche]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rpt_Vergleiche] @sqlwhere 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)
            )
        DECLARE @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)
            )

        DECLARE @param1 VARCHAR(255)
        DECLARE @param2 VARCHAR(255)
        DECLARE @paramtyp1 INT
        DECLARE @paramtyp2 INT          
        SET @paramtyp1 = 0
        SET @paramtyp2 = 0
        DECLARE @fnr VARCHAR(255)

        IF CHARINDEX('and', @sqlwhere, 0) > 1 
            BEGIN
                DECLARE @tw1 VARCHAR(255)
                DECLARE @tw2 VARCHAR(255)
                SET @tw1 = SUBSTRING(@sqlwhere, 0,
                                     CHARINDEX('and', @sqlwhere, 0))
                SET @tw2 = SUBSTRING(@sqlwhere, CHARINDEX('and', @sqlwhere, 0),
                                     LEN(@sqlwhere) - CHARINDEX('and',
                                                              @sqlwhere, 0))
	 --param1
                IF CHARINDEX('TGNUMMER', UPPER(@tw1), 0) > 0 
                    BEGIN
                        SET @paramtyp1 = 1
                        SELECT  @param1 = SUBSTRING(@tw1,
                                                    CHARINDEX('=', @tw1, 0)
                                                    + 3, 6)
                    END
                IF CHARINDEX('FUNKTIONSSTELLE', UPPER(@tw1), 0) > 0 
                    BEGIN
                        SET @paramtyp1 = 2
                        SELECT  @param1 = SUBSTRING(@tw1,
                                                    CHARINDEX('=', @tw1) + 3,
                                                    8)
                    END
     
     -- param2     
                IF CHARINDEX('TGNUMMER', UPPER(@tw2), 0) > 0 
                    BEGIN
                        SET @paramtyp2 = 1
                        SELECT  @param2 = SUBSTRING(@tw2,
                                                    CHARINDEX('=', @tw2, 0)
                                                    + 3, 6)
                    END
                IF CHARINDEX('FUNKTIONSSTELLE', UPPER(@tw2), 0) > 0 
                    BEGIN 
                        SET @paramtyp2 = 2
                        SELECT  @param2 = SUBSTRING(@tw2,
                                                    CHARINDEX('=', @tw2) + 3,
                                                    8)
                    END
	    

                IF @paramtyp1 = 1 
                    BEGIN
                        INSERT  @t1
                                SELECT  *
                                FROM    [dbo].[fnkt_get_tgdata_Data](@param1)
                    END
                IF @paramtyp1 = 2 
                    BEGIN
                        SELECT  @fnr = [FunktionstelleNr]
                        FROM    dbo.Funktionstelle
                        WHERE   [Funktionsstelle] = @param1 AND Aktiv=1
                        INSERT  @t1
                                SELECT DISTINCT
                                        *
                                FROM    dbo.fnkt_get_Report_Data(@fnr)     
                    END
    
                IF @paramtyp2 = 1 
                    BEGIN
                        INSERT  @t2
                                SELECT  *
                                FROM    [dbo].[fnkt_get_tgdata_Data](@param2)
                    END
                IF @paramtyp2 = 2 
                    BEGIN
                        SELECT  @fnr = [FunktionstelleNr]
                        FROM    dbo.Funktionstelle
                        WHERE   [Funktionsstelle] = @param2 AND aktiv=1
                        INSERT  @t2
                                SELECT DISTINCT
                                        *
                                FROM    dbo.fnkt_get_Report_Data(@fnr)     
                    END
            END

        IF CHARINDEX('DIFFERENZ', UPPER(@sqlwhere), 0) > 0 
            GOTO differenz
        ELSE 
            GOTO vollstaendig

        vollstaendig:
        DECLARE @t3 TABLE
            (
              Zeile INT ,
              Funktionsnummer1 VARCHAR(255) ,
              Funktionsbezeichnung1 VARCHAR(255) ,
              Plattform1 VARCHAR(255) ,
              Verwaltungmit1 VARCHAR(255) ,
              Verwaltungdurch1 VARCHAR(255) ,
              BerechtigungIn1 VARCHAR(255) ,
              Berechtigungfuer1 VARCHAR(255) ,
              Eigentuemer1 VARCHAR(255) ,
              Funktionsnummer2 VARCHAR(255) ,
              Funktionsbezeichnung2 VARCHAR(255) ,
              Plattform2 VARCHAR(255) ,
              Verwaltungmit2 VARCHAR(255) ,
              Verwaltungdurch2 VARCHAR(255) ,
              BerechtigungIn2 VARCHAR(255) ,
              Berechtigungfuer2 VARCHAR(255) ,
              Eigentuemer2 VARCHAR(255)
            )

        DECLARE @t4 TABLE
            (
              Zeile INT ,
              Funktionsnummer1 VARCHAR(255) ,
              Funktionsbezeichnung1 VARCHAR(255) ,
              Plattform1 VARCHAR(255) ,
              Verwaltungmit1 VARCHAR(255) ,
              Verwaltungdurch1 VARCHAR(255) ,
              BerechtigungIn1 VARCHAR(255) ,
              Berechtigungfuer1 VARCHAR(255) ,
              Eigentuemer1 VARCHAR(255) ,
              Funktionsnummer2 VARCHAR(255) ,
              Funktionsbezeichnung2 VARCHAR(255) ,
              Plattform2 VARCHAR(255) ,
              Verwaltungmit2 VARCHAR(255) ,
              Verwaltungdurch2 VARCHAR(255) ,
              BerechtigungIn2 VARCHAR(255) ,
              Berechtigungfuer2 VARCHAR(255) ,
              Eigentuemer2 VARCHAR(255)
            )

        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer ,
                plattform + verwaltungmit + verwaltungdurch + berechtigungin
                + berechtigungfuer AS sort
        INTO    #tmp1
        FROM    @t1
        --EXCEPT
        --SELECT  plattform ,
        --        verwaltungmit ,
        --        verwaltungdurch ,
        --        berechtigungIn ,
        --        berechtigungfuer ,
        --        eigentuemer
        --FROM    @t2

        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer ,
                plattform + verwaltungmit + verwaltungdurch + berechtigungin
                + berechtigungfuer AS sort
        INTO    #tmp2
        FROM    @t2
        --EXCEPT
        --SELECT  plattform ,
        --        verwaltungmit ,
        --        verwaltungdurch ,
        --        berechtigungIn ,
        --        berechtigungfuer ,
        --        eigentuemer
        --FROM    @t1



        ALTER TABLE #tmp1 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp1 ADD Funktionsbezeichnung VARCHAR(255)

        ALTER TABLE #tmp2 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp2 ADD Funktionsbezeichnung VARCHAR(255)


        DECLARE @fbe VARCHAR(255)

        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        UPDATE  #tmp1
        SET     Funktionsnummer = @fnr 
        UPDATE  #tmp1
        SET     funktionsbezeichnung = @fbe


        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        UPDATE  #tmp2
        SET     Funktionsnummer = @fnr
        UPDATE  #tmp2
        SET     funktionsbezeichnung = @fbe


        DECLARE @Zeile INT ,
            @Zeile1 INT ,
            @Zeile2 INT ,
            @Funktionsnummer1 VARCHAR(255) ,
            @Funktionsbezeichnung1 VARCHAR(255) ,
            @Plattform1 VARCHAR(255) ,
            @Verwaltungmit1 VARCHAR(255) ,
            @Verwaltungdurch1 VARCHAR(255) ,
            @BerechtigungIn1 VARCHAR(255) ,
            @Berechtigungfuer1 VARCHAR(255) ,
            @Eigentuemer1 VARCHAR(255) ,
            @Funktionsnummer2 VARCHAR(255) ,
            @Funktionsbezeichnung2 VARCHAR(255) ,
            @Plattform2 VARCHAR(255) ,
            @Verwaltungmit2 VARCHAR(255) ,
            @Verwaltungdurch2 VARCHAR(255) ,
            @BerechtigungIn2 VARCHAR(255) ,
            @Berechtigungfuer2 VARCHAR(255) ,
            @Eigentuemer2 VARCHAR(255) ,
            @sort1 VARCHAR(255) ,
            @sort2 VARCHAR(255),
  @inserted INT,
  @ssort varchar(255)
  SET @ssort=''

        
        SET @zeile = 10
        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp1
			ORDER BY sort
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @sort1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                DECLARE xx CURSOR
                FOR
                    SELECT  *
                    FROM    #tmp2
                    WHERE   sort < @sort1 AND sort > @ssort
					ORDER BY sort
                OPEN xx
                FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
                    @verwaltungdurch2, @berechtigungin2, @berechtigungfuer2,
                    @eigentuemer2, @sort2, @funktionsnummer2,
                    @funktionsbezeichnung2 
                WHILE @@FETCH_STATUS = 0 
                    BEGIN
                        INSERT  @t3
                                ( Zeile ,
                                  Funktionsnummer1 ,
                                  Funktionsbezeichnung1 ,
                                  Plattform1 ,
                                  Verwaltungmit1 ,
                                  Verwaltungdurch1 ,
                                  BerechtigungIn1 ,
                                  Berechtigungfuer1 ,
                                  Eigentuemer1 ,
                                  Funktionsnummer2 ,
                                  Funktionsbezeichnung2 ,
                                  Plattform2 ,
                                  Verwaltungmit2 ,
                                  Verwaltungdurch2 ,
                                  BerechtigungIn2 ,
                                  Berechtigungfuer2 ,
                                  Eigentuemer2
                                )
                        VALUES  ( @zeile ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  @funktionsnummer2 ,
                                  @Funktionsbezeichnung2 ,
                                  @Plattform2 ,
                                  @Verwaltungmit2 ,
                                  @Verwaltungdurch2 ,
                                  @BerechtigungIn2 ,
                                  @Berechtigungfuer2 ,
                                  @Eigentuemer2
                                )
							SET @ssort=@sort2
                        FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
                            @verwaltungdurch2, @berechtigungin2,
                            @berechtigungfuer2, @eigentuemer2, @sort2,
                            @funktionsnummer2, @funktionsbezeichnung2 
                    END
                CLOSE xx
                DEALLOCATE xx
				SET @inserted=0
                DECLARE xx CURSOR
                FOR
                    SELECT  *
                    FROM    #tmp2
                    WHERE   sort = @sort1
                OPEN xx
                FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
                    @verwaltungdurch2, @berechtigungin2, @berechtigungfuer2,
                    @eigentuemer2, @sort2, @funktionsnummer2,
                    @funktionsbezeichnung2 
                WHILE @@FETCH_STATUS = 0 
                    BEGIN
    SET @inserted=1                  
                        INSERT  @t3
                                ( Zeile ,
                                  Funktionsnummer1 ,
                                  Funktionsbezeichnung1 ,
                                  Plattform1 ,
                                  Verwaltungmit1 ,
                                  Verwaltungdurch1 ,
                                  BerechtigungIn1 ,
                                  Berechtigungfuer1 ,
                                  Eigentuemer1 ,
                                  Funktionsnummer2 ,
                                  Funktionsbezeichnung2 ,
                                  Plattform2 ,
                                  Verwaltungmit2 ,
                                  Verwaltungdurch2 ,
                                  BerechtigungIn2 ,
                                  Berechtigungfuer2 ,
                                  Eigentuemer2
                                )
                        VALUES  ( @zeile ,
                                  @funktionsnummer1 ,
                                  @Funktionsbezeichnung1 ,
                                  @Plattform1 ,
                                  @Verwaltungmit1 ,
                                  @Verwaltungdurch1 ,
                                  @BerechtigungIn1 ,
                                  @Berechtigungfuer1 ,
                                  @Eigentuemer1 ,
                                  @funktionsnummer2 ,
                                  @Funktionsbezeichnung2 ,
                                  @Plattform2 ,
                                  @Verwaltungmit2 ,
                                  @Verwaltungdurch2 ,
                                  @BerechtigungIn2 ,
                                  @Berechtigungfuer2 ,
                                  @Eigentuemer2
                                )
								SET @ssort=@sort1
                        FETCH NEXT FROM xx INTO @plattform2, @verwaltungmit2,
                            @verwaltungdurch2, @berechtigungin2,
                            @berechtigungfuer2, @eigentuemer2, @sort2,
                            @funktionsnummer2, @funktionsbezeichnung2 
                    END
                CLOSE xx
                DEALLOCATE xx
				IF @inserted=0 begin



			              
  
  
  
  
  
  
  
  
  
  
  
  
  
  
                
				          
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1 ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          ''
                        )
						end
                SET @zeile = @zeile + 10
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @sort1, @funktionsnummer1,
                    @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

		SELECT 
		                  * FROM @t3
		RETURN
  
  
  
        
        DECLARE @rc INT        
        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        SET @zeile = 10
        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp2
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @SORT1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                SELECT  @rc = COUNT(*)
                FROM    @t3
                WHERE   zeile = @zeile
                IF @rc = 0 
                    BEGIN          
                        INSERT  @t3
                                ( Zeile ,
                                  Funktionsnummer1 ,
                                  Funktionsbezeichnung1 ,
                                  Plattform1 ,
                                  Verwaltungmit1 ,
                                  Verwaltungdurch1 ,
                                  BerechtigungIn1 ,
                                  Berechtigungfuer1 ,
                                  Eigentuemer1 ,
                                  Funktionsnummer2 ,
                                  Funktionsbezeichnung2 ,
                                  Plattform2 ,
                                  Verwaltungmit2 ,
                                  Verwaltungdurch2 ,
                                  BerechtigungIn2 ,
                                  Berechtigungfuer2 ,
                                  Eigentuemer2
                                )
                        VALUES  ( @zeile ,
                                  @fnr ,
                                  @fbe ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  '' ,
                                  @funktionsnummer1 ,
                                  @Funktionsbezeichnung1 ,
                                  @Plattform1 ,
                                  @Verwaltungmit1 ,
                                  @Verwaltungdurch1 ,
                                  @BerechtigungIn1 ,
                                  @Berechtigungfuer1 ,
                                  @Eigentuemer1
                                )
                    END
                ELSE 
                    BEGIN
                        UPDATE  @t3
                        SET     Funktionsnummer2 = @funktionsnummer1 ,
                                Funktionsbezeichnung2 = @Funktionsbezeichnung1 ,
                                Plattform2 = @plattform1 ,
                                Verwaltungmit2 = @verwaltungmit1 ,
                                Verwaltungdurch2 = @verwaltungdurch1 ,
                                BerechtigungIn2 = @berechtigungin1 ,
                                Berechtigungfuer2 = @berechtigungfuer1 ,
                                Eigentuemer2 = @eigentuemer1
                        WHERE   zeile = @zeile
                    END

                SET @zeile = @zeile + 10
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @SORT1, @funktionsnummer1,
                    @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

        SELECT  *
        FROM    @t3
        DROP TABLE #tmp1
        DROP TABLE #tmp2
   
        RETURN

        differenz:
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        INTO    #tmp11
        FROM    @t1
        EXCEPT
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        FROM    @t2
   
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        INTO    #tmp21
        FROM    @t2
        EXCEPT
        SELECT  plattform ,
                verwaltungmit ,
                verwaltungdurch ,
                berechtigungIn ,
                berechtigungfuer ,
                eigentuemer
        FROM    @t1



        ALTER TABLE #tmp11 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp11 ADD Funktionsbezeichnung VARCHAR(255)

        ALTER TABLE #tmp21 ADD Funktionsnummer VARCHAR(255)
        ALTER TABLE #tmp21 ADD Funktionsbezeichnung VARCHAR(255)


        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        UPDATE  #tmp11
        SET     Funktionsnummer = @fnr 
        UPDATE  #tmp11
        SET     funktionsbezeichnung = @fbe


        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        UPDATE  #tmp21
        SET     Funktionsnummer = @fnr
        UPDATE  #tmp21
        SET     funktionsbezeichnung = @fbe




        SET @zeile = 1
        SELECT  @fnr = funktionsnummer
        FROM    @t2
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t2

        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp11
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1 ,
                          @fnr ,
                          @fbe ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          ''
                        )
                SET @zeile = @zeile + 1
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

        SELECT  @fnr = funktionsnummer
        FROM    @t1
        SELECT  @fbe = funktionsbezeichnung
        FROM    @t1

        DECLARE xc CURSOR
        FOR
            SELECT  *
            FROM    #tmp21
        OPEN xc
        FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
            @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
            @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 
        WHILE @@FETCH_STATUS = 0 
            BEGIN
                INSERT  @t3
                        ( Zeile ,
                          Funktionsnummer1 ,
                          Funktionsbezeichnung1 ,
                          Plattform1 ,
                          Verwaltungmit1 ,
                          Verwaltungdurch1 ,
                          BerechtigungIn1 ,
                          Berechtigungfuer1 ,
                          Eigentuemer1 ,
                          Funktionsnummer2 ,
                          Funktionsbezeichnung2 ,
                          Plattform2 ,
                          Verwaltungmit2 ,
                          Verwaltungdurch2 ,
                          BerechtigungIn2 ,
                          Berechtigungfuer2 ,
                          Eigentuemer2
                        )
                VALUES  ( @zeile ,
                          @fnr ,
                          @fbe ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          '' ,
                          @funktionsnummer1 ,
                          @Funktionsbezeichnung1 ,
                          @Plattform1 ,
                          @Verwaltungmit1 ,
                          @Verwaltungdurch1 ,
                          @BerechtigungIn1 ,
                          @Berechtigungfuer1 ,
                          @Eigentuemer1
                        )
                SET @zeile = @zeile + 1
                FETCH NEXT FROM xc INTO @plattform1, @verwaltungmit1,
                    @verwaltungdurch1, @berechtigungin1, @berechtigungfuer1,
                    @eigentuemer1, @funktionsnummer1, @funktionsbezeichnung1 

            END
        CLOSE xc   
        DEALLOCATE xc

		select
		cast(Funktionsnummer1 as numeric(17,0)) as Funktionsnummer1 ,
                                  Funktionsbezeichnung1 ,
                                  Plattform1 ,
                                  Verwaltungmit1 ,
                                  Verwaltungdurch1 ,
                                  BerechtigungIn1 ,
                                  Berechtigungfuer1 ,
                                  Eigentuemer1 ,
                                  cast(Funktionsnummer2 as numeric(17,0)) as Funktionsnummer2 ,
                                  Funktionsbezeichnung2 ,
                                  Plattform2 ,
                                  Verwaltungmit2 ,
                                  Verwaltungdurch2 ,
                                  BerechtigungIn2 ,
                                  Berechtigungfuer2 ,
                                  Eigentuemer2
        --SELECT  * 
        FROM    @t3

--INSERT 
--SELECT Funktionsnummer,
--  Funktionsbezeichnung,
--  Plattform,
--  verwaltungmit AS Verwaltung_Mit,
--  verwaltungdurch AS Verwaltung_Durch,
--  berechtigungIn AS Berechtigung_in,
--  berechtigungfuer AS Berechtigung_Fuer,
--  eigentuemer AS Eigentuemer
--FROM #tmp1 UNION ALL 
--SELECT 
--Funktionsnummer,
--  Funktionsbezeichnung,
--  Plattform,
--  verwaltungmit AS Verwaltung_Mit,
--  verwaltungdurch AS Verwaltung_Durch,
--  berechtigungIn AS Berechtigung_in,
--  berechtigungfuer AS Berechtigung_Fuer,
--  eigentuemer AS Eigentuemer
--   FROM #tmp2
   
        DROP TABLE #tmp11
        DROP TABLE #tmp21
   
   --DECLARE xc   
    END




GO

/****** Object:  StoredProcedure [dbo].[sp_rpt_Vergleiche_differenz]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
Create PROCEDURE [dbo].[sp_rpt_Vergleiche_differenz] @sqlwhere VARCHAR(255)
AS 
    BEGIN
       SET @sqlwhere = @sqlwhere + ' and Differenz=Ja'  
	   EXEC dbo.sp_rpt_vergleiche @sqlwhere
    END




GO

/****** Object:  StoredProcedure [dbo].[sp_rptparams_get_funktionsnummer]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rptparams_get_funktionsnummer]
AS
BEGIN
   SELECT Funktionsstelle AS KeyValue, Funktionsstelle AS Bezeichnung, Bezeichnung AS searchvalue1 FROM funktionstelle WHERE aktiv=1 AND funktionsstelle<>'' ORDER BY Funktionsstelle

END




GO

/****** Object:  StoredProcedure [dbo].[sp_rptparams_get_tgnummer]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_rptparams_get_tgnummer]
AS
BEGIN
   SELECT tgnummer AS KeyValue, tgnummer AS Bezeichnung, name AS searchvalue1 FROM personal WHERE aktiv=1 ORDER BY tgnummer,Name

END




GO

/****** Object:  StoredProcedure [dbo].[sp_search_split]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO








CREATE PROC [dbo].[sp_search_split]
(
  @sInputList VARCHAR(8000) -- List of delimited items
  ,
  @Delimiter CHAR(1) = ',' -- delimiter that separates items
)
AS 
BEGIN
      SET NOCOUNT ON
      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) + 1, LEN(@sInputList))))
                  IF LEN(@Item) > 0 
                     INSERT INTO #tmpdeli
                            SELECT  @Item
            END
      IF LEN(@sInputList) > 0 
         INSERT INTO #tmpdeli
                SELECT  @sInputList -- Put the last item in
      RETURN
END








GO

/****** Object:  StoredProcedure [dbo].[sp_set_Temporaerberechtigung]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_set_Temporaerberechtigung] 
@beschreibung VARCHAR(1024),
@unterlagen VARCHAR(1024),
@bearbeiter varchar(50),
@kontkat varchar(255),
@termin DATETIME,
@keyvalue INT,
@mitarbeiternr INT,
@datatype int

AS
BEGIN
       SET NOCOUNT ON;
    declare @rc int
       SELECT @rc=COUNT(*) FROM dbo.Temporaer_Berechtigung WHERE aktiv=1 AND Personal_FunktionStelleNr=@keyvalue
       IF @rc=0 BEGIN
  INSERT dbo.Temporaer_Berechtigung
          ( Personal_FunktionStelleNr ,
            Beschreibung ,
            Unterlagen ,
            Bearbeiter_ISI ,
            Kontaktperson_FB ,
            Termin ,
            aktiv ,
            erstellt_am ,
            mutiert_am ,
            mutierer,
                    datatype
          )
  VALUES  ( @keyvalue , -- Personal_FunktionStelleNr - int
            @beschreibung , -- Beschreibung - varchar(1024)
            @unterlagen , -- Unterlagen - varchar(1024)
            @bearbeiter , -- Bearbeite_ISI - varchar(50)
            @kontkat , -- Kontaktperson_FB - varchar(255)
            @termin , -- Termin - varchar(255)
            1, -- aktv - bit
            GETDATE() , -- erstellt_am - datetime
            GETDATE() , -- mutiert_am - datetime
            @mitarbeiternr,  -- mutierer - int
                    @datatype
          )  
  END ELSE BEGIN
  UPDATE dbo.Temporaer_Berechtigung SET Beschreibung=@beschreibung, Unterlagen=@unterlagen,Bearbeiter_ISI=@bearbeiter,Kontaktperson_FB=@kontkat,
  mutierer=@mitarbeiternr,Termin=@termin, mutiert_am=GETDATE()
  WHERE Personal_FunktionStelleNr=@keyvalue
  

  end  
END


GO

/****** Object:  StoredProcedure [dbo].[sp_sysobjects_select]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO





-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[sp_sysobjects_select]
AS 
SELECT  *
FROM    sysobjects
WHERE   xtype = 'U'
ORDER BY name




GO

/****** Object:  StoredProcedure [dbo].[sp_tooltips]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO







CREATE PROCEDURE [dbo].[sp_tooltips]
       @fnkt INT ,
       @formname VARCHAR(50) ,
       @controlname VARCHAR(50) ,
       @tooltip VARCHAR(1024) ,
       @mitarbeiternr INT ,
       @outToolTipNr INT OUTPUT ,
       @outFormName VARCHAR(50) OUTPUT ,
       @outControlname VARCHAR(50) OUTPUT ,
       @outToolTip VARCHAR(1024) OUTPUT
AS 
BEGIN

      IF @fnkt = 1 
         BEGIN
               SELECT   @outtooltipnr = ISNULL(tooltipnr, 0), @outformname = ISNULL(formularname, ''), @outcontrolname = ISNULL(controlname, ''),
                        @outtooltip = ISNULL(tooltip, '')
               FROM     dbo.tooltip
               WHERE    formularname = @formname
                        AND controlname = @controlname
                        AND aktiv = 1
         END
      IF @fnkt = 2 
         BEGIN
               DECLARE @tnr INT
               DECLARE @dbkey INT
       
               DECLARE @ierrorcode INT
               SELECT   @tnr = ISNULL(tooltipnr, -1)
               FROM     dbo.tooltip
               WHERE    formularname = @formname
                        AND controlname = @controlname
                        AND aktiv = 1
               IF @@rowcount = 0 
                  SET @tnr = -1
               IF @tnr = -1 
                  BEGIN
                        EXECUTE sp_get_dbkey 'tooltip', @dbkey OUTPUT, @ierrorcode OUTPUT
                        INSERT  dbo.tooltip ( tooltipnr, formularname, controlname, tooltip, aktiv, erstellt_am, mutiert_am, mutierer )
                        VALUES  ( @dbkey, @formname, @controlname, @tooltip, 1, GETDATE(), GETDATE(), @mitarbeiternr )
                  END
               ELSE 
                  BEGIN
                        UPDATE  dbo.tooltip
                        SET     tooltip = @tooltip, mutierer = @mitarbeiternr, mutiert_am = GETDATE()
                        WHERE   tooltipnr = @tnr
                  END
         END
          
END






GO

/****** Object:  StoredProcedure [dbo].[sp_update_spalten]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS OFF
GO

SET QUOTED_IDENTIFIER OFF
GO








CREATE PROCEDURE [dbo].[sp_update_spalten]
       @tablename VARCHAR(255)
AS 
BEGIN
      DECLARE @len INT
      DECLARE @inhalt VARCHAR(30)
      DECLARE @col VARCHAR(30)
      DECLARE @readonly INT
      DECLARE @dbkey INT
      DECLARE @alshacken INT
      DECLARE @ierrorcode INT
      DECLARE @spaltenkey INT
      DECLARE @aktiv INT
      DECLARE @tiptext VARCHAR(255)
      DECLARE xcursor CURSOR
      FOR
      SELECT    column_name
      FROM      INFORMATION_SCHEMA.Columns
      WHERE     table_name = @tablename
      OPEN xcursor
      FETCH NEXT FROM xcursor INTO @col
      WHILE @@FETCH_STATUS = 0 
            BEGIN
                  EXECUTE sp_get_dbkey 'spalten', @dbkey OUTPUT, @ierrorcode OUTPUT
                  SET @spaltenkey = @dbkey

                  SET @inhalt = @col
                  SET @readonly = 0
                  SET @aktiv = 1
                  SET @tiptext = ''
                  SET @len = 100
                  SET @alshacken = 0
                  IF UPPER(@col) = 'ERSTELLT_AM' 
                     BEGIN
                           SET @inhalt = 'Erstellungsdatum'
                           SET @len = 100
                           SET @readonly = 1
                     END
                  IF UPPER(@col) = 'MUTIERT_AM' 
                     BEGIN
                           SET @inhalt = 'Mutationsdatum'
                           SET @len = 100
                           SET @readonly = 1
                     END
                  IF UPPER(@col) = 'MUTIERER' 
                     BEGIN
                           SET @inhalt = 'Mutiert durch'
                           SET @len = 40
                           SET @readonly = 1
                     END
                  IF UPPER(@col) = 'AKTIV' 
                     BEGIN
                           SET @inhalt = 'Aktiv'
                           SET @len = 40
                           SET @alshacken = 0
                     END
	
                  INSERT    INTO spalten ( eintragnr, tabelle, tabellenspalte, spalte, readonly, aktiv, erstellt_am, mutiert_am, mutierer, mandantnr, alsHacken,
                                           tiptext, breite, reihenfolge )
                  VALUES    ( @spaltenkey, @tablename, @col, @inhalt, @readonly, @aktiv, GETDATE(), GETDATE(), -1, 1, @alshacken, @tiptext, @len, 0 )
                  FETCH NEXT FROM xcursor INTO @col
            END   
      CLOSE xcursor
      DEALLOCATE xcursor
END








GO

/****** Object:  StoredProcedure [dbo].[update_massendaten]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO



-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[update_massendaten]
   @cmd VARCHAR(255)='' ,
    @F1 VARCHAR(255) ='',
    @F2 VARCHAR(255) ='',
    @F3 VARCHAR(255) ='',
    @F4 VARCHAR(255) ='',
    @F5 VARCHAR(255) ='',
    @F6 VARCHAR(255) ='',
    @F7 VARCHAR(255) ='',
    @F8 VARCHAR(255) ='',
    @F9 VARCHAR(255) ='',
    @F10 VARCHAR(255) ='',
    @F11 VARCHAR(255) ='',
    @F12 VARCHAR(255) ='',
    @F13 VARCHAR(255) ='',
    @F14 VARCHAR(255) ='',
    @F15 VARCHAR(255) ='',
    @F16 VARCHAR(255) ='',
    @F17 VARCHAR(255) ='',
    @F18 VARCHAR(255) ='',
    @F19 VARCHAR(255) ='',
    @F20 VARCHAR(255) ='',
    @mutierer INT=0 ,
    @resultat VARCHAR(1024) OUTPUT

AS 
    BEGIN
		          
        DECLARE @pnr INT
        DECLARE @fnr INT
        DECLARE @rc INT
        DECLARE @ierrorcode INT      
             SET @fnr=-1
             SET @pnr=-1
        SET @resultat = 'CMD: ' + @cmd + '   F1: ' + @f1 + '   Status: '

		if @cmd<>'1' and @cmd<>'2' and @cmd<>'3' and @cmd<>'4' and @cmd<>'5' and @cmd<>'6' and @cmd<>'7' and @cmd<>'8' 
 		and @cmd<>'9' and @cmd<>'10' begin
			 SET @resultat='NOK: '+ @resultat+'Funktionscode ' + @cmd +' ungültig'
			 return
		end

---------------------------------------------------------------------------------------------------------------------------------------------
-- 01: Mitarbeiter Funktionsnummer hinzufügen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='1' begin
                    SELECT @pnr=ISNULL(personalnr,-1) FROM dbo.personal WHERE TGNummer=@F1
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'TGNummer nicht vorhanden'
                       RETURN
                    END
                    SELECT @fnr=ISNULL(funktionstellenr,-1) FROM funktionstelle WHERE Funktionsstelle=@F3
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Funktionstelle nicht vorhanden'
                       RETURN
                    END
                    INSERT dbo.Personal_funktionstelle
                            ( PersonalNr ,
                              funktionstellenr ,
                              Beschreibung ,
                              Sequenz ,
                              Aktiv ,
                              Erstellt_am ,
                              Mutiert_am ,
                              Mutierer ,
                              Beziehungstypnr
                            )
                    VALUES  ( @pnr , -- PersonalNr - int
                              @fnr , -- BerechtigungNr - int
                              '' , -- Beschreibung - varchar(255)
                              @f6 , -- Sequenz - int
                              1 , -- Aktiv - bit
                              GETDATE() , -- Erstellt_am - datetime
                              GETDATE() , -- Mutiert_am - datetime
                              @mutierer , -- Mutierer - int
                              @f5  -- Beziehungstypnr - int
                            )
                                  SET @resultat=@resultat+'Hinzufügen erfolgreich'
                                  return
       END
---------------------------------------------------------------------------------------------------------------------------------------------
-- 02: Funktionsstelle entfernen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='2' begin
                    SELECT @pnr=ISNULL(personalnr,-1) FROM dbo.personal WHERE TGNummer=@F1
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'TGNummer nicht vorhanden'
                       RETURN
                    END
                    SELECT @fnr=ISNULL(funktionstellenr,-1) FROM funktionstelle WHERE Funktionsstelle=@F3
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Funktionstelle nicht vorhanden'
                       RETURN
                    END    
            
                    UPDATE personal_funktionstelle SET aktiv=0, mutierer=@mutierer, Mutiert_am=GETDATE() WHERE aktiv=1 AND personalnr=@pnr AND funktionstellenr=@fnr          
                           SET @resultat=@resultat+'Löschung erfolgreich'
                    RETURN
        END







---------------------------------------------------------------------------------------------------------------------------------------------
-- 03: Berechtigung hinzufügen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='3' begin
                    SELECT @pnr=ISNULL(personalnr,-1) FROM dbo.personal WHERE TGNummer=@F1
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'TGNummer nicht vorhanden'
                       RETURN
                    END
                    SELECT @fnr=ISNULL(Berechtigungnr,-1) FROM Berechtigung WHERE Berechtigungnr=@F3
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Berechtigung nicht vorhanden'
                       RETURN
                    END
                    INSERT dbo.Personal_Berechtigung
                            ( PersonalNr ,
                              BerechtigungNr ,
                              Beschreibung ,
                              Sequenz ,
                              Aktiv ,
                              Erstellt_am ,
                              Mutiert_am ,
                              Mutierer ,
                              Beziehungstypnr
                            )
                    VALUES  ( @pnr , -- PersonalNr - int
                              @fnr , -- BerechtigungNr - int
                              '' , -- Beschreibung - varchar(255)
                              @f6 , -- Sequenz - int
                              1 , -- Aktiv - bit
                              GETDATE() , -- Erstellt_am - datetime
                              GETDATE() , -- Mutiert_am - datetime
                              @mutierer , -- Mutierer - int
                              @f5  -- Beziehungstypnr - int
                            )
                                  SET @resultat=@resultat+'Hinzufügen erfolgreich'
                                  return
        END
                       
     
---------------------------------------------------------------------------------------------------------------------------------------------
-- 04: Berechtigung entfernen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='4' begin
                    SELECT @pnr=ISNULL(personalnr,-1) FROM dbo.personal WHERE TGNummer=@F1
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'TGNummer nicht vorhanden'
                       RETURN
                    END
                    IF  ISNUMERIC(@f3) <> 1 BEGIN
               SET @resultat='NOK: '+ @resultat+'Berechtigungsnr ist nungültig'
                       RETURN
                    END          
            
                    UPDATE personal_berechtigung SET aktiv=0, mutierer=@mutierer, Mutiert_am=GETDATE() WHERE aktiv=1 AND personalnr=@pnr AND BerechtigungNr=@f3          
                                   SET @resultat=@resultat+'Löschung erfolgreich'

                    RETURN
        END

---------------------------------------------------------------------------------------------------------------------------------------------
-- 05: Plattform hinzufügen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='5' begin
                    SELECT @pnr=ISNULL(personalnr,-1) FROM dbo.personal WHERE TGNummer=@F1
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'TGNummer nicht vorhanden'
                       RETURN
                    END
                    SELECT @fnr=ISNULL(Plattformnr,-1) FROM Plattform WHERE Plattformnr=@F3
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Plattform nicht vorhanden'
                       RETURN
                    END
                    INSERT dbo.Personal_Plattform
                            ( PersonalNr ,
                              PlattformNr ,
                              Beschreibung ,
                              Sequenz ,
                              Aktiv ,
                              Erstellt_am ,
                              Mutiert_am ,
                              Mutierer ,
                              Beziehungstypnr
                            )
                    VALUES  ( @pnr , -- PersonalNr - int
                              @fnr , -- BerechtigungNr - int
                              '' , -- Beschreibung - varchar(255)
                              @f6 , -- Sequenz - int
                              1 , -- Aktiv - bit
                              GETDATE() , -- Erstellt_am - datetime
                              GETDATE() , -- Mutiert_am - datetime
                              @mutierer , -- Mutierer - int
                              @f5  -- Beziehungstypnr - int
                            )
                                  SET @resultat=@resultat+'Hinzufügen erfolgreich'
                                  return
        END
                       
     
---------------------------------------------------------------------------------------------------------------------------------------------
-- 06: Plattform entfernen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='6' begin
                    SELECT @pnr=ISNULL(personalnr,-1) FROM dbo.personal WHERE TGNummer=@F1
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'TGNummer nicht vorhanden'
                       RETURN
                    END
                    IF  ISNUMERIC(@f3) <> 1 BEGIN
               SET @resultat='NOK: '+ @resultat+'Plattformnr ist nungültig'
                       RETURN
                    END          
            
                    UPDATE personal_plattform SET aktiv=0, mutierer=@mutierer, Mutiert_am=GETDATE() WHERE aktiv=1 AND personalnr=@pnr AND plattformnr=@f3          
                                   SET @resultat=@resultat+'Löschung erfolgreich'

                    RETURN
        END

--------------------------------------------------------------------------------------------------------------------------------------------
-- 07: Funktionstelle - Berechtigung
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='7' begin
                    SELECT @fnr=ISNULL(funktionstellenr,-1) FROM funktionstelle WHERE Funktionsstelle=@F1
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Funktionstelle nicht vorhanden'
                       RETURN
                    END
                    SELECT @pnr=ISNULL(berechtigungnr,-1) FROM dbo.Berechtigung WHERE BerechtigungNr=@F3
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Berechtigung nicht vorhanden'
                       RETURN
                    END
          
               INSERT dbo.Funktionstelle_Berechtigung
                       ( FunktionstelleNr ,
                         BerechtigungNr ,
                         Beschreibung ,
                         Sequenz ,
                         Aktiv ,
                         Erstellt_am ,
                         Mutiert_am ,
                         Mutierer ,
                         Beziehungstypnr
                       )
               VALUES  ( @fnr , -- FunktionstelleNr - int
                         @pnr , -- BerechtigungNr - int
                         '' , -- Beschreibung - varchar(255)
                         @f6 , -- Sequenz - int
                         1 , -- Aktiv - bit
                         GETDATE() , -- Erstellt_am - datetime
                         GETDATE() , -- Mutiert_am - datetime
                         @mutierer , -- Mutierer - int
                         @f5  -- Beziehungstypnr - int
                       )
                    SET @resultat=@resultat+'Hinzufügen erfolgreich'
                    return
        END
---------------------------------------------------------------------------------------------------------------------------------------------
-- 08: Funktionsstelle entfernen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='8' begin
                    SELECT @fnr=ISNULL(funktionstellenr,-1) FROM funktionstelle WHERE Funktionsstelle=@F1
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Funktionstelle nicht vorhanden'
                       RETURN
                    END
                    SELECT @pnr=ISNULL(berechtigungnr,-1) FROM dbo.Berechtigung WHERE BerechtigungNr=@F3
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Berechtigung nicht vorhanden'
                       RETURN
                    END
            
                    UPDATE dbo.Funktionstelle_Berechtigung
                    SET aktiv=0, mutierer=@mutierer, Mutiert_am=GETDATE() WHERE aktiv=1 AND funktionstellenr=@fnr AND BerechtigungNr=@pnr
                           SET @resultat=@resultat+'Löschung erfolgreich'
                    RETURN
        END

--------------------------------------------------------------------------------------------------------------------------------------------
-- 09: Funktionstelle - Plattform
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='9' begin
                    SELECT @fnr=ISNULL(funktionstellenr,-1) FROM funktionstelle WHERE Funktionsstelle=@F1
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Funktionstelle nicht vorhanden'
                       RETURN
                    END
                    SELECT @pnr=ISNULL(Plattformnr,-1) FROM dbo.Plattform WHERE PlattformNr=@F3
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Plattform nicht vorhanden'
                       RETURN
                    END
          
               INSERT dbo.Funktionstelle_Plattform
                       ( FunktionstelleNr ,
                         PlattformNr ,
                         Beschreibung ,
                         Sequenz ,
                         Aktiv ,
                         Erstellt_am ,
                         Mutiert_am ,
                         Mutierer ,
                         Beziehungstypnr
                       )
               VALUES  ( @fnr , -- FunktionstelleNr - int
                         @pnr , -- PlattformNr - int
                         '' , -- Beschreibung - varchar(255)
                         @f6 , -- Sequenz - int
                         1 , -- Aktiv - bit
                         GETDATE() , -- Erstellt_am - datetime
                         GETDATE() , -- Mutiert_am - datetime
                         @mutierer , -- Mutierer - int
                         @f5  -- Beziehungstypnr - int
                       )
                    SET @resultat=@resultat+'Hinzufügen erfolgreich'
                    return
        END
---------------------------------------------------------------------------------------------------------------------------------------------
-- 10: Plattform entfernen
---------------------------------------------------------------------------------------------------------------------------------------------
             IF @cmd='10' begin
                    SELECT @fnr=ISNULL(funktionstellenr,-1) FROM funktionstelle WHERE Funktionsstelle=@F1
                    IF @fnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Funktionstelle nicht vorhanden'
                       RETURN
                    END
                    SELECT @pnr=ISNULL(Plattformnr,-1) FROM dbo.Plattform WHERE PlattformNr=@F3
                    iF @pnr=-1 BEGIN
                       SET @resultat='NOK: '+ @resultat+'Plattform nicht vorhanden'
                       RETURN
                    END
            
                    UPDATE dbo.Funktionstelle_Plattform
                    SET aktiv=0, mutierer=@mutierer, Mutiert_am=GETDATE() WHERE aktiv=1 AND funktionstellenr=@fnr AND PlattformNr=@pnr
                           SET @resultat=@resultat+'Löschung erfolgreich'
                    RETURN
        END



END




GO

/****** Object:  StoredProcedure [dbo].[update_massenmutation]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[update_massenmutation]
    @cmd VARCHAR(255) ,
    @F1 VARCHAR(255) ,
    @F2 VARCHAR(255) ,
    @F3 VARCHAR(255) ,
    @F4 VARCHAR(255) ,
    @F5 VARCHAR(255) ,
    @F6 VARCHAR(255) ,
    @F7 VARCHAR(255) ,
    @F8 VARCHAR(255) ,
    @F9 VARCHAR(255) ,
    @F10 VARCHAR(255) ,
    @mutierer INT ,
    @resultat VARCHAR(1024) OUTPUT
AS 
    BEGIN
          
        DECLARE @pnr INT
        DECLARE @fnr INT
        DECLARE @rc INT
        DECLARE @ierrorcode INT      
        SET @resultat = 'CMD: ' + @cmd + '   F1: ' + @f1 + '   Status: '
             RETURN
end        
    --        + @key + '  CMD: ' + @cmd + '   Status: '
    --    IF @tgnummer = 'Berechtigung' 
    --        BEGIN
    --            SELECT  1
    --        END
    --    IF @tgnummer = 'Funktionstelle' 
    --        BEGIN
    --            SELECT  2
    --        END
    --    IF @tgnummer = 'Plattform' 
    --        BEGIN
    --            SELECT  3
    --        END
                   
                   
    --    SELECT  @pnr = ISNULL(personalnr, -1)
    --    FROM    dbo.Personal
    --    WHERE   TGNummer = @tgnummer
    --            AND aktiv = 1

    --    IF @pnr = -1 
    --        BEGIN
    --            SET @resultat = 'NOK: ' + @resultat
    --                + ' TGNummer existiert nicht'
    --            RETURN
    --        END
                                              
    --    IF @type = 'F' 
    --        BEGIN
    --            SELECT  @fnr = ISNULL(funktionstellenr, -1)
    --            FROM    dbo.Funktionstelle
    --            WHERE   funktionstellenr = @key
    --            IF @pnr = -1 
    --                BEGIN
    --                    SET @resultat = 'NOK: ' + @resultat
    --                        + ' Funktionstelle existiert nicht'
    --                    RETURN
    --                END
    --        END      
  
    --    IF @type = 'B' 
    --        BEGIN
    --            SELECT  @fnr = ISNULL(berechtigungnr, -1)
    --            FROM    dbo.Berechtigung
    --            WHERE   berechtigungnr = @key
    --            IF @pnr = -1 
    --                BEGIN
    --                    SET @resultat = 'NOK: ' + @resultat
    --                        + ' Berechtigung existiert nicht'
    --                    RETURN
    --                END
    --        END
    --    IF @type = 'P' 
    --        BEGIN
    --            SELECT  @fnr = ISNULL(plattformnr, -1)
    --            FROM    dbo.plattform
    --            WHERE   Plattformnr = @key
    --            IF @pnr = -1 
    --                BEGIN
    --                    SET @resultat = 'NOK: ' + @resultat
    --                        + ' Plattform existiert nicht'
    --                    RETURN
    --                END
    --        END

    --    IF @cmd = 'ADD' 
    --        BEGIN 
    --            IF @type = 'F' 
    --                BEGIN
    --                    INSERT  dbo.Personal_FunktionStelle
    --                            ( PersonalNr ,
    --                              FunktionStelleNr ,
    --                              Beschreibung ,
    --                              Sequenz ,
    --                              Aktiv ,
    --                              Erstellt_am ,
    --                              Mutiert_am ,
    --                              Mutierer ,
    --                              Beziehungstypnr 
    --                            )
    --                    VALUES  ( @pnr , -- PersonalNr - int
    --                              @fnr , -- FunktionStelleNr - int
    --                              '' , -- Beschreibung - varchar(255)
    --                              0 , -- Sequenz - int
    --                              1 , -- Aktiv - bit
    --                              GETDATE() , -- Erstellt_am - datetime
    --                              GETDATE() , -- Mutiert_am - datetime
    --                              @mutierer ,  -- Mutierer - int
    --                              47
    --                            )
    --                END
                                          
    --            IF @type = 'B' 
    --                BEGIN
    --                    INSERT  dbo.Personal_Berechtigung
    --                            ( PersonalNr ,
    --                              BerechtigungNr ,
    --                              Beschreibung ,
    --                              Sequenz ,
    --                              Aktiv ,
    --                              Erstellt_am ,
    --                              Mutiert_am ,
    --                              Mutierer ,
    --                              Beziehungstypnr
          --                         )
    --                    VALUES  ( @pnr , -- PersonalNr - int
    --                              @fnr , -- BerechtigungNr - int
    --                              '' , -- Beschreibung - varchar(255)
    --                              0 , -- Sequenz - int
    --                              1 , -- Aktiv - bit
    --                              GETDATE() , -- Erstellt_am - datetime
    --                              GETDATE() , -- Mutiert_am - datetime
   --                              @mutierer , -- Mutierer - int
    --                              47  -- Beziehungstypnr - int
          --                         )
    --                END
   
    --            IF @type = 'P' 
    --                BEGIN
    --                    INSERT  dbo.Personal_Plattform
    --                            ( PersonalNr ,
    --                              PlattformNr ,
    --                              Beschreibung ,
    --                              Sequenz ,
    --                              Aktiv ,
    --                              Erstellt_am ,
    --                              Mutiert_am ,
    --                              Mutierer ,
    --                              Beziehungstypnr
          --                         )
    --                    VALUES  ( @pnr , -- PersonalNr - int
    --                              @fnr , -- PlattformNr - int
    --                              '' , -- Beschreibung - varchar(255)
    --                              0 , -- Sequenz - int
    --                              1 , -- Aktiv - bit
    --                              GETDATE() , -- Erstellt_am - datetime
    --                              GETDATE() , -- Mutiert_am - datetime
    --                              @mutierer , -- Mutierer - int
    --                              47  -- Beziehungstypnr - int
          --                         )
    --                END        


    --            SET @resultat = 'OK : ' + @resultat + 'Add erfolgreich'
    --        END 

    --END


GO

/****** Object:  StoredProcedure [dbo].[update_merkmap]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[update_merkmap]
       @table VARCHAR(255) ,
       @key INT
AS 
BEGIN
      DECLARE @tmp VARCHAR(255)
      DECLARE @bez VARCHAR(255)
      DECLARE @wert VARCHAR(255)
      DECLARE @id INT
      SET @id=@key
      SET @tmp = ''
      DECLARE xb CURSOR
      FOR
      SELECT    bezeichnung, wert
      FROM      baa_shu_extrakt_merkmale
      WHERE     id = @key
      OPEN xb
      FETCH NEXT FROM xb INTO @bez, @wert
      WHILE @@FETCH_STATUS = 0 
            BEGIN
                  IF @table = 'Personal' 
                     BEGIN
                           IF @bez = 'Name' 
                              BEGIN
                                    UPDATE  Personal
                                    SET     Name = @wert
                                    WHERE   Personalnr = @id
                              END
                           ELSE 
                              BEGIN
                                    SELECT  @tmp = ISNULL(beschreibung, '')
                                    FROM    Personal
                                    WHERE   Personalnr = @id
                                    SET @tmp = @tmp + ' ' + @wert
                                    UPDATE  Personal
                                    SET     beschreibung = @tmp
                                    WHERE   Personalnr = @id
                              END   
                     END
                  IF @table = 'Berechtigung' 
                     BEGIN
                           SELECT   @tmp = ISNULL(beschreibung, '')
                           FROM     Berechtigung
                           WHERE    Berechtigungnr = @id
                           SET @tmp = @tmp + ' ' + @wert
                           UPDATE   Berechtigung
                           SET      beschreibung = @tmp
                           WHERE    Berechtigungnr = @id
                     END            

                  IF @table = 'Funktionstelle' 
                     BEGIN
                           IF @bez = 'Funktionsstelle' 
                              BEGIN
                                    UPDATE  Funktionstelle
                                    SET     Funktionsnummer = @wert
                                    WHERE   FunktionstelleNr = @id
                              END
                           ELSE 
                              BEGIN
                                    IF @bez = 'Funktionsbegriff' 
                                       BEGIN
                                             UPDATE Funktionstelle
                                             SET    Funktionsstelle = @wert
                                             WHERE  FunktionstelleNr = @id
                                       END
                                    ELSE 
                                       BEGIN   
                                             SELECT @tmp = ISNULL(beschreibung, '')
                                             FROM   Funktionstelle
                                             WHERE  FunktionstelleNr = @id
                                             SET @tmp = @tmp + ' ' + @wert
                                             UPDATE Funktionstelle
                                             SET    beschreibung = @tmp
                                             WHERE  FunktionstelleNr = @id
                                       END   
                              END   

                     END

                  IF @table = 'Plattform' 
                     BEGIN
                           SELECT   @tmp = ISNULL(beschreibung, '')
                           FROM     Plattform
                           WHERE    Plattformnr = @id
                           SET @tmp = @tmp + ' ' + @wert
                           UPDATE   Plattform
                           SET      beschreibung = @tmp
                           WHERE    Plattformnr = @id
                                                
                     END
                  IF @table = 'Server' 
                     BEGIN
                           SELECT   @tmp = ISNULL(beschreibung, '')
                           FROM     Server
                           WHERE    Servernr = @id
                           SET @tmp = @tmp + ' ' + @wert
                           UPDATE   Server
                           SET      beschreibung = @tmp
                           WHERE    Servernr = @id
                     END
                  IF @table = 'Verwaltung_Durch' 
                     BEGIN
                           SELECT   @tmp = ISNULL(beschreibung, '')
                           FROM     verwaltung_durch
                           WHERE    verwaltung_durchnr = @id
                           SET @tmp = @tmp + ' ' + @wert
                           UPDATE   Verwaltung_durch
                           SET      beschreibung = @tmp
                           WHERE    verwaltung_durchnr = @id
                     END
                  IF @table = 'Verwaltung_Mit' 
                     BEGIN
                           SELECT   @tmp = ISNULL(beschreibung, '')
                           FROM     Verwaltung_mit
                           WHERE    Verwaltung_MitNr = @id
                           SET @tmp = @tmp + ' ' + @wert
                           UPDATE   Verwaltung_mit
                           SET      beschreibung = @tmp
                           WHERE    Verwaltung_mitnr = @id
                     END
                  FETCH NEXT FROM xb INTO @bez, @wert
            END
      CLOSE xb
      DEALLOCATE xb   
                                   
END


GO

/****** Object:  StoredProcedure [dbo].[update_personal_from_excel]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[update_personal_from_excel]
    @tgnummer VARCHAR(255) ,
    @funktionstelle VARCHAR(255) ,
    @mutart VARCHAR(255) ,
    @name VARCHAR(255) ,
    @mutierer INT ,
    @resultat VARCHAR(1024) OUTPUT
AS 
    BEGIN
        DECLARE @pnr INT
        DECLARE @fnr INT
        DECLARE @rc INT
        DECLARE @N VARCHAR(255)
        DECLARE @ierrorcode INT      
        SET @resultat = 'TG: ' + @tgnummer + '   FST: ' + @funktionstelle
            + '   Mutart: ' + @mutart + '   Status: '

        SELECT  @pnr = ISNULL(personalnr, -1)
        FROM    dbo.Personal
        WHERE   TGNummer = @tgnummer AND aktiv=1

        IF @mutart <> 'E' 
            BEGIN
                IF @pnr = -1
                    BEGIN
                        SET @resultat = 'NOK: ' + @resultat
                            + ' TGNummer existiert nicht'
                        RETURN
                    END
            END
            
        SELECT  @fnr = ISNULL(funktionstellenr, -1)
        FROM    dbo.Funktionstelle
        WHERE   funktionstelle.Funktionsstelle = @funktionstelle AND aktiv=1

        IF @fnr = -1
            OR @@ROWCOUNT = 0 
            BEGIN
                SET @resultat = 'NOK: ' + @resultat
                    + ' Funktionstelle existiert nicht'

                RETURN
            END

        SET @mutart = UPPER(@mutart)

        IF @mutart <> 'E'
            AND @mutart <> 'A'
            AND @mutart <> 'M' 
            BEGIN
                SET @resultat = 'NOK: ' + @resultat + ' Mutationsart ungültig'

                RETURN
            END
         
         
       -- Prüfungen i.O. - Update durchführen
        IF @mutart = 'E' 
            BEGIN
                SELECT @rc=COUNT(*) FROM dbo.Personal WHERE aktiv=1 AND TGNummer=@tgnummer
				IF @rc>0 BEGIN           
                SELECT  @pnr = ISNULL(personalnr, -1)
                FROM    dbo.Personal
                WHERE   TGNummer = @tgnummer AND aktiv=1
				END ELSE BEGIN
  SET @pnr=-1
  end              

                IF @pnr = -1
                    BEGIN
                        EXECUTE sp_get_dbkey 'Schluessel', @pnr OUTPUT,
                            @ierrorcode OUTPUT
                        INSERT  dbo.Personal
                                ( Personalnr ,
                                  ParentID ,
                                  Bezeichnung ,
                                  Beschreibung ,
                                  TGNummer ,
                                  Name ,
                                  Sequenz ,
                                  Aktiv ,
                                  Erstellt_am ,
                                  Mutiert_am ,
                                  Mutierer
                                )
                        VALUES  ( @pnr , -- Personalnr - int
                                  2404 , -- ParentID - int
                                  @tgnummer , -- Bezeichnung - varchar(255)
                                  '' , -- Beschreibung - varchar(255)
                                  @tgnummer , -- TGNummer - varchar(255)
                                  @name , -- Name - varchar(255)
                                  0 , -- Sequenz - int
                                  1 , -- Aktiv - bit
                                  GETDATE() , -- Erstellt_am - datetime
                                  GETDATE() , -- Mutiert_am - datetime
                                  @mutierer  -- Mutierer - int
                                )   
                    END
			    
                INSERT  dbo.Personal_FunktionStelle
                        ( PersonalNr ,
                          FunktionStelleNr ,
                          Beschreibung ,
                          Sequenz ,
                          Aktiv ,
                          Erstellt_am ,
                          Mutiert_am ,
                          Mutierer ,
                          Beziehungstypnr 
                        )
                VALUES  ( @pnr , -- PersonalNr - int
                          @fnr , -- FunktionStelleNr - int
                          '' , -- Beschreibung - varchar(255)
                          0 , -- Sequenz - int
                          1 , -- Aktiv - bit
                          GETDATE() , -- Erstellt_am - datetime
                          GETDATE() , -- Mutiert_am - datetime
                          @mutierer ,  -- Mutierer - int
                          47
                          
                        )
                SET @resultat = 'OK : ' + @resultat + 'Hinzufügen erfolgreich'
            END

        IF @mutart = 'A' 
            BEGIN
       
                UPDATE  dbo.Personal_FunktionStelle
                SET     Aktiv = 0 ,
                        Mutierer = @mutierer ,
                        Mutiert_am = GETDATE()
                WHERE   PersonalNr = @pnr
                        AND FunktionStelleNr = @fnr
                UPDATE  dbo.personal
                SET     aktiv = 0 ,
                        mutierer = @mutierer ,
                        Mutiert_am = GETDATE()
                WHERE   personalnr = @pnr

                SET @resultat = 'OK : ' + @resultat + 'Aufhebung erfolgreich'
            END 
        IF @mutart = 'M' 
            BEGIN
                SELECT  @rc = COUNT(*)
                FROM    dbo.Personal_FunktionStelle
                WHERE   personalnr = @pnr
                        AND aktiv = 1
                IF @rc > 1 
                    BEGIN
                        SET @resultat = 'Multiple::' + @resultat
                        RETURN
                    END   
               
       
                UPDATE  dbo.Personal_FunktionStelle
                SET     Aktiv = 0 ,
                        Mutierer = @mutierer ,
                        Mutiert_am = GETDATE()
                WHERE   PersonalNr = @pnr   
                INSERT  dbo.Personal_FunktionStelle
                        ( PersonalNr ,
                          FunktionStelleNr ,
                          Beschreibung ,
                          Sequenz ,
                          Aktiv ,
                          Erstellt_am ,
                          Mutiert_am ,
                          Mutierer ,
                          Beziehungstypnr 
                        )
                VALUES  ( @pnr , -- PersonalNr - int
                          @fnr , -- FunktionStelleNr - int
                          '' , -- Beschreibung - varchar(255)
                          0 , -- Sequenz - int
                          1 , -- Aktiv - bit
                          GETDATE() , -- Erstellt_am - datetime
                          GETDATE() , -- Mutiert_am - datetime
                          @mutierer ,  -- Mutierer - int
                          47
                          
                        )
                SELECT  @n = name
                FROM    personal
                WHERE   Personalnr = @pnr
                IF @n <> @name 
                    BEGIN
                        UPDATE  personal
                        SET     name = @name ,
                                Mutierer = @mutierer ,
                                Mutiert_am = GETDATE()
                        WHERE   personalnr = @pnr    
                    END          
 
                SET @resultat = 'OK : ' + @resultat + 'Update erfolgreich'
            END
    END



GO

/****** Object:  StoredProcedure [dbo].[update_personal_massenmutation]    Script Date: 13.12.2014 15:01:06 ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO




-- =============================================
-- Author:          <Author,,Name>
-- Create date: <Create Date,,>
-- Description:     <Description,,>
-- =============================================
Create PROCEDURE [dbo].[update_personal_massenmutation]
    @tgnummer VARCHAR(255) ,
    @name VARCHAR(255) ,
    @type VARCHAR(255) ,
    @key VARCHAR(255) ,
       @beschreibung VARCHAR(255),
       @cmd VARCHAR(255),
    @mutierer INT ,
    @resultat VARCHAR(1024) OUTPUT
AS 
    BEGIN
          
        DECLARE @pnr INT
        DECLARE @fnr INT
        DECLARE @rc INT
        DECLARE @ierrorcode INT      
        SET @resultat = 'TG: ' + @tgnummer + '   Type: ' + @Type + '   Key: ' + @key
            + '  CMD: ' + @cmd + '   Status: '
        IF @tgnummer='Berechtigung' BEGIN
                    SELECT 1
             END
             IF @tgnummer='Funktionstelle' BEGIN
            SELECT 2
             END
             IF @tgnummer='Plattform' BEGIN
           SELECT 3
             END
                   
                   
        SELECT  @pnr = ISNULL(personalnr, -1)
        FROM    dbo.Personal
        WHERE   TGNummer = @tgnummer AND aktiv=1

             IF @pnr=-1 BEGIN
                           SET @resultat = 'NOK: ' + @resultat
                            + ' TGNummer existiert nicht'
                        RETURN
             END
                                              
        IF @type='F' BEGIN
           SELECT @fnr=ISNULL(funktionstellenr,-1) FROM dbo.Funktionstelle WHERE funktionstellenr=@key
                    IF @pnr=-1 BEGIN
                           SET @resultat = 'NOK: ' + @resultat
                            + ' Funktionstelle existiert nicht'
                        RETURN
             END
  end      
  
        IF @type='B' BEGIN
           SELECT @fnr=ISNULL(berechtigungnr,-1) FROM dbo.Berechtigung WHERE berechtigungnr=@key
                    IF @pnr=-1 BEGIN
                           SET @resultat = 'NOK: ' + @resultat
                            + ' Berechtigung existiert nicht'
                        RETURN
             END
end
        IF @type='P' BEGIN
           SELECT @fnr=ISNULL(plattformnr,-1) FROM dbo.plattform WHERE Plattformnr=@key
                    IF @pnr=-1 BEGIN
                           SET @resultat = 'NOK: ' + @resultat
                            + ' Plattform existiert nicht'
                        RETURN
             END
        end

             IF @cmd='ADD' BEGIN 
                    IF @type='F' BEGIN
  INSERT  dbo.Personal_FunktionStelle
                        ( PersonalNr ,
                          FunktionStelleNr ,
                          Beschreibung ,
                          Sequenz ,
                          Aktiv ,
                          Erstellt_am ,
                          Mutiert_am ,
                          Mutierer ,
                          Beziehungstypnr 
                        )
                VALUES  ( @pnr , -- PersonalNr - int
                          @fnr , -- FunktionStelleNr - int
                          '' , -- Beschreibung - varchar(255)
                          0 , -- Sequenz - int
                          1 , -- Aktiv - bit
                          GETDATE() , -- Erstellt_am - datetime
                          GETDATE() , -- Mutiert_am - datetime
                          @mutierer ,  -- Mutierer - int
                          47)
                                          END
                                          
IF @type='B'
BEGIN
       INSERT dbo.Personal_Berechtigung
               ( PersonalNr ,
                 BerechtigungNr ,
                 Beschreibung ,
                 Sequenz ,
                 Aktiv ,
                 Erstellt_am ,
                 Mutiert_am ,
                 Mutierer ,
                 Beziehungstypnr
               )
       VALUES  (@pnr , -- PersonalNr - int
                @fnr , -- BerechtigungNr - int
                 '' , -- Beschreibung - varchar(255)
                 0 , -- Sequenz - int
                1 , -- Aktiv - bit
                 GETDATE() , -- Erstellt_am - datetime
                 GETDATE() , -- Mutiert_am - datetime
                 @mutierer , -- Mutierer - int
                 47  -- Beziehungstypnr - int
               )
END
   
IF @type='P'
BEGIN
       INSERT dbo.Personal_Plattform
               ( PersonalNr ,
                 PlattformNr ,
                 Beschreibung ,
                 Sequenz ,
                 Aktiv ,
                 Erstellt_am ,
                 Mutiert_am ,
                 Mutierer ,
                 Beziehungstypnr
               )
       VALUES  ( @pnr , -- PersonalNr - int
                 @fnr , -- PlattformNr - int
                 '' , -- Beschreibung - varchar(255)
                 0 , -- Sequenz - int
                 1 , -- Aktiv - bit
                 getdate() , -- Erstellt_am - datetime
                 GETDATE() , -- Mutiert_am - datetime
                 @mutierer , -- Mutierer - int
                 47  -- Beziehungstypnr - int
               )
END        


                SET @resultat = 'OK : ' + @resultat + 'Add erfolgreich'
            END 

                    end


GO

