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
6.8 KiB
92 lines
6.8 KiB
USE [Vertragsverwaltung_20160404]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_get_struktur] Script Date: 02.12.2016 09:08:53 ******/
|
|
DROP PROCEDURE [dbo].[sp_get_struktur]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[sp_get_struktur] Script Date: 02.12.2016 09:08:55 ******/
|
|
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] @per DATETIME
|
|
AS
|
|
BEGIN
|
|
SET NOCOUNT ON;
|
|
SELECT 'OE_' + LTRIM(RTRIM(STR(OeNr))) AS ID, 'OE_' + LTRIM(RTRIM(STR(ParentId))) AS ParentID, Bezeichnung, 0 AS ImageIndex,
|
|
Beschreibung AS ErweiterteSuche, sortierung AS sort
|
|
INTO #tmp1
|
|
FROM dbo.OE WHERE aktiv=1
|
|
ORDER BY Sortierung
|
|
|
|
|
|
INSERT #tmp1 ( id, parentid, bezeichnung, imageindex, ErweiterteSuche, sort )
|
|
VALUES ( 'OE_0', NULL, 'Root', 0, ' ',1 )
|
|
|
|
INSERT #tmp1
|
|
SELECT 'MA_' + LTRIM(RTRIM(STR(dbo.MA.MANr))) AS ID, 'OE_-1' AS ParentID,
|
|
dbo.MA.Name + ' ' + dbo.MA.Vorname AS Bezeichnung, 1 AS ImageIndex, dbo.MA.Name + ' ' + dbo.MA.Vorname AS ErweiterteSuche, 0 AS sort
|
|
FROM dbo.MA
|
|
LEFT OUTER JOIN dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr
|
|
WHERE ma.aktiv=1 AND dbo.ma.manr NOT IN ( SELECT manr
|
|
FROM dbo.MADetails
|
|
WHERE aktiv = 1 )
|
|
|
|
DECLARE @mnr INT
|
|
DECLARE @rc INT
|
|
DECLARE xc CURSOR
|
|
FOR
|
|
SELECT manr
|
|
FROM ma
|
|
WHERE aktiv = 1 AND gueltig_bis >=@per
|
|
OPEN xc
|
|
FETCH NEXT FROM xc INTO @mnr
|
|
WHILE @@FETCH_STATUS = 0
|
|
BEGIN
|
|
|
|
SELECT @rc = COUNT(*)
|
|
FROM dbo.MADetails
|
|
WHERE manr = @mnr AND aktiv=1
|
|
AND Gueltig_ab <= @per
|
|
|
|
IF @rc > 0
|
|
BEGIN
|
|
INSERT #tmp1
|
|
SELECT TOP 1
|
|
'MA_' + LTRIM(RTRIM(STR(dbo.MA.MANr))) AS ID,
|
|
'OE_' + ISNULL(LTRIM(RTRIM(STR(dbo.MADetails.OENr))), '-1') AS ParentID,
|
|
+dbo.MA.Name + ' ' + dbo.MA.Vorname AS Bezeichnung, 1 AS ImageIndex,
|
|
dbo.MA.Name + ' ' + dbo.MA.Vorname AS ErweiterteSuche, dbo.ma.sortierung AS sort
|
|
FROM dbo.MA
|
|
LEFT OUTER JOIN dbo.MADetails ON dbo.MA.MANr = dbo.MADetails.MANr
|
|
WHERE dbo.MADetails.manr = @mnr AND dbo.MADetails.Aktiv=1
|
|
AND Gueltig_ab <= @per
|
|
ORDER BY Gueltig_ab desc
|
|
|
|
END
|
|
FETCH NEXT FROM xc INTO @mnr
|
|
END
|
|
CLOSE xc
|
|
DEALLOCATE xc
|
|
|
|
|
|
|
|
SELECT *
|
|
FROM #tmp1
|
|
ORDER BY parentid,sort, Bezeichnung
|
|
|
|
DROP TABLE #tmp1
|
|
END
|
|
|
|
|
|
|
|
|
|
GO
|