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/d5/d55dc6b55d486080a16476b033e...

181 lines
12 KiB

USE [Vertragsverwaltung_20160404]
GO
/****** Object: StoredProcedure [dbo].[sp_lc_get_Struktur_Auswahl] Script Date: 02.12.2016 09:08:53 ******/
DROP PROCEDURE [dbo].[sp_lc_get_Struktur_Auswahl]
GO
/****** Object: StoredProcedure [dbo].[sp_lc_get_Struktur_Auswahl] 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_lc_get_Struktur_Auswahl]
@selectiontype AS integer
AS
BEGIN
DECLARE @tmp1 TABLE
(
id INT ,
parentid INT ,
bezeichnung VARCHAR(255) ,
imageindex INT ,
beschreibung VARCHAR(1024) ,
IstStruktur BIT ,
verweisnr INT ,
copy INT ,
originalid INT,
eingesetzt INT,
sort int
)
SET NOCOUNT ON;
-- Alle Produkte
INSERT @tmp1
SELECT lc_produktnr AS id ,
lc_produktnr_parent AS parentid ,
bezeichnung ,
imageindex AS imageindex ,
ISNULL(Beschreibung, '') AS Beschreibung ,
IstStruktur ,
ISNULL(verweisnr, 0) AS Verweisnr ,
0 AS copy ,
LC_ProduktNr,
ISNULL(StatusNr,0),
ISNULL(sort,0) AS sort
FROM dbo.LC_Produkt
WHERE aktiv = 1
INSERT @tmp1
( id ,
parentid ,
bezeichnung ,
imageindex ,
beschreibung ,
IstStruktur ,
verweisnr ,
copy,
eingesetzt,sort
)
VALUES ( 0 ,
NULL ,
'Root' ,
1 ,
'' ,
1 ,
0 ,
0,
0,
-1
)
UPDATE @tmp1
SET imageindex = imageindex + 0
WHERE id IN ( SELECT lc_produktnr
FROM lc_produkt
WHERE IstStruktur = 1 )
INSERT @tmp1
( id ,
parentid ,
bezeichnung ,
imageindex ,
beschreibung ,
IstStruktur ,
verweisnr ,
copy ,
Originalid,
eingesetzt,
sort
)
SELECT dbo.LC_Produkt_Copy.lc_produkt_copynr AS id ,
dbo.LC_Produkt_Copy.lc_produkt_parentnr AS parentid ,
dbo.LC_Produkt.Bezeichnung ,
dbo.LC_Produkt.Imageindex ,
dbo.LC_Produkt.Beschreibung ,
0 ,
0 ,
1 ,
lc_produkt.LC_ProduktNr,
ISNULL(lc_produkt.StatusNr,0), 0
FROM dbo.LC_Produkt_Copy
INNER JOIN dbo.LC_Produkt ON dbo.LC_Produkt_Copy.lc_produktnr = dbo.LC_Produkt.LC_ProduktNr
WHERE ( dbo.LC_Produkt_Copy.aktiv = 1 )
AND ( dbo.LC_Produkt.Aktiv = 1 )
IF @selectiontype=1 BEGIN
DELETE FROM @tmp1 WHERE IstStruktur=0 AND eingesetzt=0
INSERT @tmp1
( id ,
parentid ,
bezeichnung ,
imageindex ,
beschreibung ,
IstStruktur ,
verweisnr ,
copy ,
Originalid,
eingesetzt,sort
)
SELECT lc_produktnr AS id ,
lc_produktnr_parent AS parentid ,
bezeichnung ,
imageindex AS imageindex ,
ISNULL(Beschreibung, '') AS Beschreibung ,
IstStruktur ,
ISNULL(verweisnr, 0) AS Verweisnr ,
0 AS copy ,
LC_ProduktNr,
ISNULL(StatusNr,0),
ISNULL(sort,0)
FROM dbo.LC_Produkt
WHERE aktiv = 1 AND lc_produktnr NOT IN (SELECT id FROM @tmp1) AND lc_produktnr IN (SELECT parentid FROM @tmp1)
END
IF @selectiontype=2 BEGIN
DELETE FROM @tmp1 WHERE IstStruktur=0 AND eingesetzt=1
INSERT @tmp1
( id ,
parentid ,
bezeichnung ,
imageindex ,
beschreibung ,
IstStruktur ,
verweisnr ,
copy ,
Originalid,
eingesetzt,
sort
)
SELECT lc_produktnr AS id ,
lc_produktnr_parent AS parentid ,
bezeichnung ,
imageindex AS imageindex ,
ISNULL(Beschreibung, '') AS Beschreibung ,
IstStruktur ,
ISNULL(verweisnr, 0) AS Verweisnr ,
0 AS copy ,
LC_ProduktNr,
ISNULL(StatusNr,0),
ISNULL(sort,0) AS sort
FROM dbo.LC_Produkt
WHERE aktiv = 1 AND lc_produktnr NOT IN (SELECT id FROM @tmp1) AND lc_produktnr IN (SELECT parentid FROM @tmp1)
end
SELECT *
FROM @tmp1
ORDER BY sort,bezeichnung
end
GO