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/9c/9c54a992a5bcf9dfa4ae5641cf3...

92 lines
7.1 KiB

USE [Vertragsverwaltung_20160404]
GO
/****** Object: StoredProcedure [dbo].[sp_vertragsuebersicht_get_Struktur_Vertragstyp_sik] Script Date: 02.12.2016 09:08:53 ******/
DROP PROCEDURE [dbo].[sp_vertragsuebersicht_get_Struktur_Vertragstyp_sik]
GO
/****** Object: StoredProcedure [dbo].[sp_vertragsuebersicht_get_Struktur_Vertragstyp_sik] Script Date: 02.12.2016 09:08:55 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE proc [dbo].[sp_vertragsuebersicht_get_Struktur_Vertragstyp_sik]
@vertragstypnr int,
@mitarbeiternr int,
@details int,
@suchstring varchar(255)
as
CREATE TABLE #tmpd(
[vertragselementnr] [int] ,
[bezeichnung] [varchar] (255) null,
[parentid] [int] null,
[Vertragstypnr] [int],
[aktiv] [bit] null
) ON [DEFAULT]
set @suchstring='%'+@suchstring+'%'
declare @vnr int
declare @vtype varchar(255)
declare @tmpid int
declare @tmpid_base int
declare @aktiv bit
set @tmpid=-100
----------------------------------------------------------------------------------------------------------
-- Struktur nach Vertragstyp
----------------------------------------------------------------------------------------------------------
insert #tmpd (vertragselementnr, bezeichnung, parentid, vertragstypnr, aktiv) values(0,'Root',null,0,1)
select * from #tmpd
-- S„mtliche relevanten Root-Strukturen auslesen - nur diejenigen, bei welchen Vertragselemente vorhanden sind und der User berechtigt ist
declare firstloop cursor for
SELECT distinct dbo.Vertragselement.VertragspartnerNr,
dbo.Vertragspartner.NameZ1 + ' ' + dbo.Vertragspartner.NameZ2 + ', ' + dbo.Vertragspartner.PLZ + ' ' + dbo.Vertragspartner.Ort AS Partner,
dbo.Vertragspartner.aktiv
--,dbo.Vertragselement.Vertragselementnr
FROM dbo.Vertragselement INNER JOIN
dbo.Vertragspartner ON dbo.Vertragselement.VertragspartnerNr = dbo.Vertragspartner.VertragspartnerNr
WHERE (dbo.Vertragselement.Aktiv = 1) AND (dbo.Vertragselement.VertragstypNr = @vertragstypnr) and (dbo.Vertragselement.SecurityLevelNr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr)))
open firstloop
fetch next from firstloop into @vnr, @vtype, @aktiv
while @@fetch_status=0 begin
-- Je Root-Struktur die untergerordneten Vertragselemente auslesen
insert #tmpd (vertragselementnr, bezeichnung, parentid, vertragstypnr, aktiv) values(@tmpid,@vtype,0,@vnr, @aktiv)
declare @tmp int
declare xc cursor for
select Vertragselementnr from vertragselement
where vertragspartnernr=@vnr and
parentid =0 and
securitylevelnr in (select SecurityLevelNr from dbo.Get_SecurityLevelTab(@mitarbeiternr))
and vertragselement.vertragstypnr=@vertragstypnr
open xc
fetch next from xc into @tmp
while @@fetch_status=0 begin
execute dbo.sp_vertragsuebersicht_get_struktur_down @tmp,1, @vertragstypnr, @tmpid
fetch next from xc into @tmp
end
close xc
deallocate xc
set @tmpid=@tmpid-1
fetch next from firstloop into @vnr, @vtype, @aktiv
end
close firstloop
deallocate firstloop
if @details=0 begin
delete from #tmpd where parentid > 0
end
select distinct * from #tmpd order by bezeichnung
return
SELECT distinct dbo.vertragstyp.vertragstypnr,dbo.Vertragstyp.Vertragstyp, #tmpd.*
FROM dbo.Vertragselement INNER JOIN
#tmpd ON dbo.Vertragselement.Vertragselementnr = #tmpd.vertragselementnr INNER JOIN
dbo.Vertragstyp ON dbo.Vertragselement.VertragstypNr = dbo.Vertragstyp.Vertragstypnr
order by #tmpd.bezeichnung ,vertragstyp, #tmpd.parentid
return
GO