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

142 lines
14 KiB

USE [Vertragsverwaltung_20160404]
GO
/****** Object: StoredProcedure [dbo].[sp_vertragsuebersicht_get_details] Script Date: 02.12.2016 09:08:53 ******/
DROP PROCEDURE [dbo].[sp_vertragsuebersicht_get_details]
GO
/****** Object: StoredProcedure [dbo].[sp_vertragsuebersicht_get_details] Script Date: 02.12.2016 09:08:55 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
CREATE proc [dbo].[sp_vertragsuebersicht_get_details] @Elementtyp varchar(255),
@EntryRoot int,
@Vertragspartnernr int,
@mitarbeiternr int,
@suchstring varchar(255)
as
CREATE TABLE #tmpd(
[vertragselementnr] [int] ,
[bezeichnung] [varchar] (255) null,
[parentid] [int] null,
[vertragstypnr] [int],
[aktiv] [bit] null,
[vertragselementnrursprung] [int] null ,
[basevertragstypnr] [int] null,
[key] [int] IDENTITY(1,1) NOT NULL,
[level] int null,
[loopcnt] int null,
) ON [DEFAULT]
declare @tmp int
-- Alle untergeordneten Elemente eines Vertragselementes
if @Elementtyp = "Vertragselement" begin
declare xc cursor for
select Vertragselementnr from vertragselement
where
(vertragselementnr=@EntryRoot
and securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
and dbo.search_vertragselement(vertragselementnr, @suchstring)=1 )
-- 2009-06-26 - Erweiterung, dass auch das angewählte Element mit den Details angezeigt wird
or
vertragselementnr=@EntryRoot
open xc
fetch next from xc into @tmp
while @@fetch_status=0 begin
execute dbo.sp_vertragsuebersicht_get_struktur_down @tmp,1, 0, 0,0
fetch next from xc into @tmp
end
close xc
deallocate xc
end
if @Elementtyp="Vertragstyp" begin
-- Elemente eines ausgew„hlten Partner
if @Vertragspartnernr<>0 begin
declare xctyp cursor for
select Vertragselementnr from vertragselement
where vertragstypnr=@entryroot and vertragspartnernr=@vertragspartnernr
and securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
and dbo.search_vertragselement(vertragselementnr, @suchstring)=1
open xctyp
fetch next from xctyp into @tmp
while @@fetch_status=0 begin
execute dbo.sp_vertragsuebersicht_get_struktur_down @tmp,1, 0, 0,0
fetch next from xctyp into @tmp
end
close xctyp
deallocate xctyp
end else begin
-- Elemente aller Partner
declare xctyp1 cursor for
select Vertragselementnr from vertragselement
where vertragstypnr=@entryroot
and securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
and dbo.search_vertragselement(vertragselementnr, @suchstring)=1
open xctyp1
fetch next from xctyp1 into @tmp
while @@fetch_status=0 begin
execute dbo.sp_vertragsuebersicht_get_struktur_down @tmp,1, 0, 0,0
fetch next from xctyp1 into @tmp
end
close xctyp1
deallocate xctyp1
end
end
if @elementtyp="Vertragspartner" begin
insert #tmpd (vertragselementnr, bezeichnung, parentid, vertragstypnr)
select Vertragselementnr, '',0,0 from
vertragselement
where dbo.vertragselement.vertragspartnernr=@vertragspartnernr
and securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
and dbo.search_vertragselement(vertragselementnr, @suchstring)=1
end
if @suchstring='' begin
SELECT distinct dbo.Vertragspartner.NameZ1 + ' ' + dbo.Vertragspartner.NameZ2 + ', ' + dbo.Vertragspartner.PLZ + ' ' + dbo.Vertragspartner.Ort AS Partner,
dbo.Vertragstyp.Vertragstyp, dbo.view_vertragselement.*, dbo.view_vertragselement.Mutierer AS Expr1,
dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname + ', ' + dbo.mitarbeiter.tgnummer AS Mutierername
FROM #tmpd INNER JOIN
dbo.view_vertragselement INNER JOIN
dbo.Vertragspartner ON dbo.view_vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN
dbo.Vertragstyp ON dbo.view_vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ON
#tmpd.vertragselementnr = dbo.view_vertragselement.Vertragselementnr INNER JOIN
dbo.mitarbeiter ON dbo.view_vertragselement.Mutierer = dbo.mitarbeiter.mitarbeiternr
--20091008 - nur berechtigte Objekte zurückgeben
and dbo.view_vertragselement.securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
-- SELECT distinct dbo.Vertragspartner.NameZ1 + ' ' + dbo.Vertragspartner.NameZ2 + ', ' + dbo.Vertragspartner.PLZ + ' ' + dbo.Vertragspartner.Ort AS Partner,
-- dbo.Vertragstyp.Vertragstyp, dbo.Vertragselement.*, dbo.Vertragselement.Mutierer AS Expr1,
-- dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname + ', ' + dbo.mitarbeiter.tgnummer AS Mutierername
-- FROM #tmpd INNER JOIN
-- dbo.Vertragselement INNER JOIN
-- dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN
-- dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ON
-- #tmpd.vertragselementnr = dbo.Vertragselement.Vertragselementnr INNER JOIN
-- dbo.mitarbeiter ON dbo.Vertragselement.Mutierer = dbo.mitarbeiter.mitarbeiternr
end else begin
SELECT distinct dbo.Vertragspartner.NameZ1 + ' ' + dbo.Vertragspartner.NameZ2 + ', ' + dbo.Vertragspartner.PLZ + ' ' + dbo.Vertragspartner.Ort AS Partner,
dbo.Vertragstyp.Vertragstyp, dbo.view_vertragselement.*, dbo.view_vertragselement.Mutierer AS Expr1,
dbo.mitarbeiter.name + ' ' + dbo.mitarbeiter.vorname + ', ' + dbo.mitarbeiter.tgnummer AS Mutierername
FROM #tmpd INNER JOIN
dbo.view_vertragselement INNER JOIN
dbo.Vertragspartner ON dbo.view_vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr INNER JOIN
dbo.Vertragstyp ON dbo.view_vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr ON
#tmpd.vertragselementnr = dbo.view_vertragselement.Vertragselementnr INNER JOIN
dbo.mitarbeiter ON dbo.view_vertragselement.Mutierer = dbo.mitarbeiter.mitarbeiternr
where (dbo.search_vertragselement(dbo.view_vertragselement.vertragselementnr, @suchstring)=1
-- 2009-06-26 - Erweiterung, dass auch das angewählte Element mit den Details angezeigt wird
or dbo.view_vertragselement.vertragselementnr = @entryroot)
--20091008 - nur berechtigte Objekte zurückgeben
and dbo.view_vertragselement.securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
end
GO