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.
92 lines
7.1 KiB
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
|