Anlage des Repos
This commit is contained in:
@@ -0,0 +1,148 @@
|
||||
/****** Object: UserDefinedFunction [dbo].[FNDD_GET_ALL_MACROSUBARTICLE] Script Date: 08.06.2021 13:03:32 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
-- =================================================================
|
||||
-- FNDD_GET_ALL_MACROSUBARTICLE
|
||||
-- =================================================================
|
||||
-- Die Funktion läd für einen Makro-Artikel alle im VK-Makro enthaltenen
|
||||
-- Makro-Sub-Artikel inklusive Menge und dem Bundlepreis.
|
||||
--
|
||||
-- Die Funktion soll aus einem Web-Shop aufgerufen werden können.
|
||||
--
|
||||
-- Returns: Tabelle mit den Spalten
|
||||
-- LaufendeNummer INT Wert aus t326.c009 Expl: 1
|
||||
-- MakroSubArtikelnummer VARCHAR(30) Wert aus t326.c006 Expl: 'GT0674001'
|
||||
-- MakroMenge INT Berechneter Wert aus Aktion, Wert und Expl: 1
|
||||
-- Bestellter Menge
|
||||
-- MakroPreis FLOAT Der Bundlepreis für diesen Sub-Artikel Expl: 123.45
|
||||
--
|
||||
-- Hinweise:
|
||||
-- - Wenn der Preis = -999.00 ist, dann wurde kein Bundlepreis gefunden
|
||||
-- - Wenn die Menge = 0 ist, dann konnte keine menge berchnet werden, z.B. weil es sich um einen Textbaustein handelt!
|
||||
--
|
||||
-- =================================================================
|
||||
-- Copyright (c) 2021 by Digital Data GmbH
|
||||
--
|
||||
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
|
||||
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
|
||||
-- =================================================================
|
||||
-- Creation Date / Author: 26.05.2021 / MP
|
||||
-- Version Date / Editor: 27.05.2021 / MP
|
||||
-- Version Number: 1.0.0.1
|
||||
-- =================================================================
|
||||
-- History:
|
||||
-- 01.01.202X / XX - DESCRIPTION
|
||||
|
||||
CREATE FUNCTION [dbo].[FNDD_GET_ALL_MACROSUBARTICLE]
|
||||
(
|
||||
-- Add the parameters for the function here
|
||||
@WinLineYear INT -- Mandatory Parameter, for the WinLine Year (yyyy) Expl: 1440 (= 2020)
|
||||
,@WinLineMandator VARCHAR(4) -- Mandatory Parameter, for the WinLine Mandator (~~~~) Expl: '500M'
|
||||
,@MakroArtikelnummer VARCHAR(30) -- Hauptartikelnummer des Makro-Artikels (T026.C003) Expl: 'XX1000001'
|
||||
,@BestellteMenge INT -- Die bestellte Menge, als Basis für die Anzahl der Sub-Artikel Expl: 1
|
||||
)
|
||||
RETURNS @Table TABLE
|
||||
(
|
||||
-- Add the column definitions for the TABLE variable here
|
||||
LaufendeNummer INT
|
||||
,MakroSubArtikelnummer VARCHAR(30) NOT NULL DEFAULT ''
|
||||
,MakroMenge INT NOT NULL DEFAULT 0
|
||||
,MakroPreis FLOAT NOT NULL DEFAULT 0.00
|
||||
)
|
||||
AS
|
||||
BEGIN
|
||||
DECLARE
|
||||
@LaufendeNummer INT
|
||||
,@MakroSubArtikelnummer VARCHAR(30)
|
||||
,@MakroMenge INT
|
||||
,@MakroPreis FLOAT
|
||||
,@MakroWert INT
|
||||
,@MakroAktion INT
|
||||
,@VKMakroName VARCHAR(20)
|
||||
,@LastMengeKonstante INT
|
||||
|
||||
SELECT DISTINCT
|
||||
@VKMakroName = t.c037
|
||||
FROM v021 t
|
||||
WHERE t.c002 = @MakroArtikelnummer
|
||||
AND t.mesocomp = @WinLineMandator
|
||||
AND t.mesoyear = @WinLineYear
|
||||
|
||||
IF Len(@VKMakroName) <= 0
|
||||
BEGIN
|
||||
-- Kein VKMakroName definiert, dann gibt es auch keine Sub-Artikel
|
||||
RETURN
|
||||
END
|
||||
|
||||
DECLARE cursMacroSubArticles CURSOR FOR
|
||||
SELECT
|
||||
t.c009 -- Zeile
|
||||
,t.c006 -- Artikelnummer
|
||||
,t.c008 -- Wert
|
||||
,t.c007 -- Aktion
|
||||
FROM t326 t
|
||||
WHERE t.c002 like @VKMakroName + '%'
|
||||
AND t.mesocomp = @WinLineMandator
|
||||
AND t.mesoyear = @WinLineYear
|
||||
OPEN cursMacroSubArticles
|
||||
FETCH NEXT FROM cursMacroSubArticles INTO @LaufendeNummer, @MakroSubArtikelnummer, @MakroWert, @MakroAktion
|
||||
WHILE @@FETCH_STATUS = 0
|
||||
BEGIN
|
||||
-- Hole MakroPreis über die Skalarfunktion FNDD_GET_MACROSUBARTICLE_PRICE
|
||||
Select @MakroPreis = [dbo].[FNDD_GET_MACROSUBARTICLE_PRICE] (@WinLineYear, @WinLineMandator, @MakroArtikelnummer, @MakroSubArtikelnummer)
|
||||
|
||||
-- Berechne die MakroMenge anhand der Aktion, des Wert und der bestellten Menge
|
||||
IF @MakroAktion = 1
|
||||
BEGIN
|
||||
-- Mengeneingabe
|
||||
SET @MakroMenge = @BestellteMenge
|
||||
SET @LastMengeKonstante = @BestellteMenge
|
||||
END
|
||||
ELSE IF @MakroAktion = 2
|
||||
BEGIN
|
||||
-- Mengenkonstante
|
||||
SET @MakroMenge = @MakroWert
|
||||
SET @LastMengeKonstante = @MakroWert
|
||||
END
|
||||
ELSE IF @MakroAktion = 3
|
||||
BEGIN
|
||||
-- Mengenmutliplikation
|
||||
SET @MakroMenge = @BestellteMenge * @MakroWert
|
||||
END
|
||||
ELSE IF @MakroAktion = 4
|
||||
BEGIN
|
||||
-- Mengenaddition = Addition des Werts zur letzten Konstante
|
||||
SET @MakroMenge = @LastMengeKonstante + @MakroWert
|
||||
END
|
||||
ELSE
|
||||
BEGIN
|
||||
SET @MakroMenge = 0
|
||||
END
|
||||
|
||||
|
||||
INSERT INTO @Table (
|
||||
LaufendeNummer
|
||||
,MakroSubArtikelnummer
|
||||
,MakroMenge
|
||||
,MakroPreis
|
||||
) VALUES (
|
||||
@LaufendeNummer
|
||||
,@MakroSubArtikelnummer
|
||||
,@MakroMenge
|
||||
,@MakroPreis
|
||||
)
|
||||
FETCH NEXT FROM cursMacroSubArticles INTO @LaufendeNummer, @MakroSubArtikelnummer, @MakroWert, @MakroAktion
|
||||
END
|
||||
CLOSE cursMacroSubArticles
|
||||
DEALLOCATE cursMacroSubArticles
|
||||
|
||||
RETURN
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
|
||||
/****** Object: UserDefinedFunction [dbo].[FNDD_GET_MACROSUBARTICLE_PRICE] Script Date: 08.06.2021 13:04:22 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
|
||||
-- FNDD_GET_MACROSUBARTICLE_PRICE
|
||||
-- =================================================================
|
||||
-- Die Funktion ermittelt für Makro-Sub-Artikel den Bundlepreis für
|
||||
-- einen definierten Makro-Artikel.
|
||||
-- Voraussetzung ist, dass es eine "Bundlepreisliste" gibt, und dass
|
||||
-- es für diese Preisliste und den Makroartikel einen speziellen Preis
|
||||
-- gibt.
|
||||
-- Wurde kein solcher Preis gefunden, gibt die Funktion -999 zurück.
|
||||
--
|
||||
-- Returns: Bundlepreis : FLOAT
|
||||
-- =================================================================
|
||||
-- Copyright (c) 2021 by Digital Data GmbH
|
||||
--
|
||||
-- Digital Data GmbH • Ludwig-Rinn-Strasse 16 • D-35452 Heuchelheim
|
||||
-- Tel.: 0641/202360 • E-Mail: info-flow@digitaldata.works
|
||||
-- =================================================================
|
||||
-- Creation Date / Author: 26.05.2021 / MP
|
||||
-- Version Date / Editor: 10.08.2021 / MP/VF
|
||||
-- Version Number: 1.0.0.2
|
||||
-- =================================================================
|
||||
-- History:
|
||||
-- 10.08.2021 / MP/VF - Rückgabewert auf Float geändert
|
||||
-- 08.06.2021 / MP - Bundlepreisliste aus dem Mandantenstamm ziehen
|
||||
|
||||
ALTER FUNCTION [dbo].[FNDD_GET_MACROSUBARTICLE_PRICE]
|
||||
(
|
||||
-- Parameters for this function
|
||||
@WinLineYear INT -- Mandatory Parameter, for the WinLine Year (yyyy) Expl: 1440 (= 2020)
|
||||
,@WinLineMandator VARCHAR(4) -- Mandatory Parameter, for the WinLine Mandator (~~~~) Expl: '500M'
|
||||
,@MakroArtikelnummer VARCHAR(30) -- Hauptartikelnummer des Makro-Artikels (T026.C003) Expl: 'XX1000001'
|
||||
,@MakroSubArtikelnummer VARCHAR(30) -- Hauptartikelnummer (T026.C003) Expl: 'AC0101001'
|
||||
)
|
||||
RETURNS FLOAT
|
||||
AS
|
||||
BEGIN
|
||||
-- Declare the return variable here
|
||||
DECLARE
|
||||
@RESULT FLOAT
|
||||
,@T044_PREISLISTENR INT
|
||||
,@T043_PREIS FLOAT
|
||||
|
||||
-- 1. Finde die Nummer der Bundlepreisliste in den Zusatzfeldern im Mandantenstamm
|
||||
SELECT TOP 1
|
||||
@T044_PREISLISTENR = t.c014
|
||||
FROM t057 t
|
||||
WHERE t.c031 = '001' -- Zusatzfelder aus dem Mandantenstamm
|
||||
AND t.mesocomp = @WinLineMandator
|
||||
AND t.mesoyear = @WinLineYear
|
||||
|
||||
-- 2. Finde einen Preis in der Preisliste für den Artikel (t043)
|
||||
IF (@T044_PREISLISTENR > 0)
|
||||
BEGIN
|
||||
SELECT TOP 1
|
||||
@RESULT = t.c013
|
||||
FROM T043 t WITH(NOLOCK)
|
||||
WHERE t.c000 = @MakroSubArtikelnummer
|
||||
AND t.c002 = @T044_PREISLISTENR
|
||||
AND t.c014 LIKE @MakroArtikelnummer
|
||||
AND t.mesocomp = @WinLineMandator
|
||||
AND t.mesoyear = @WinLineYear
|
||||
END
|
||||
|
||||
-- Failsafe
|
||||
SET @RESULT = ISNULL(@RESULT, -999)
|
||||
|
||||
RETURN @RESULT
|
||||
END
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
|
||||
/****** Object: Table [dbo].[IM_Beleg_PacktischLieferschein_VK_Kopf] Script Date: 17.06.2021 14:03:08 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[IM_Beleg_PacktischLieferschein_VK_Kopf](
|
||||
[BELEGKEY] [int] NULL,
|
||||
[Kontonummer] [nvarchar](20) NULL,
|
||||
[Laufnummer] [nvarchar](20) NULL,
|
||||
[Auftragsnummer] [nvarchar](20) NULL,
|
||||
[Belegdatum] [datetime] NULL,
|
||||
[ts] [timestamp] NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
/****** Object: Table [dbo].[IM_Beleg_PacktischLieferschein_VK_Mitte] Script Date: 17.06.2021 14:03:57 ******/
|
||||
SET ANSI_NULLS ON
|
||||
GO
|
||||
|
||||
SET QUOTED_IDENTIFIER ON
|
||||
GO
|
||||
|
||||
CREATE TABLE [dbo].[IM_Beleg_PacktischLieferschein_VK_Mitte](
|
||||
[BELEGKEY] [int] NULL,
|
||||
[Artikelnummer] [nvarchar](30) NULL,
|
||||
[Hauptartikelnummer] [nvarchar](30) NULL,
|
||||
[Zeilennummer] [int] NULL,
|
||||
[Datentyp] [nvarchar](1) NULL,
|
||||
[Mengegeliefert] [float] NULL,
|
||||
[ChargeIdentnummer] [nvarchar](30) NULL,
|
||||
[Auspr1] [nvarchar](30) NULL,
|
||||
[Auspr2] [nvarchar](30) NULL,
|
||||
[Lagerort] [int] NULL,
|
||||
[ts] [timestamp] NULL,
|
||||
[Einzelpreis] [float] NULL
|
||||
) ON [PRIMARY]
|
||||
GO
|
||||
|
||||
ALTER TABLE [dbo].[IM_Beleg_PacktischLieferschein_VK_Mitte] ADD CONSTRAINT [DF_IM_Beleg_PacktischLieferschein_VK_Mitte_Einzelpreis] DEFAULT ((0.00)) FOR [Einzelpreis]
|
||||
GO
|
||||
|
||||
|
||||
Reference in New Issue
Block a user