8
0

Anlage des Repos

This commit is contained in:
2024-01-24 16:42:38 +01:00
commit 38d6a271c4
1785 changed files with 3051496 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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