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

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

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