Inhalt: 
Dieser Dokumentationsartikel erklärt die Ursachenbeschreibung, wenn in JTL-Wawi kein Storno ausgeführt werden kann ab Version 1.7.x

THEMENVERZEICHNIS



Lesezeit: ca. 5 Minuten

Einleitung


Du hast JTL-Wawi upgedated auf 1.7.x und kannst nun in JTL-Wawi keinen Storno mehr durchführen. 



Ursache


Wenn Du in JTL-Wawi keinen Storno durchführen kannst nach deinem Update auf die 1.7.x liegt das daran, dass JTL Änderungen an der Prozedur vorgenommen hat, wie Stornos getriggert werden. Bislang haben wir den Trigger angepasst, damit der Storno korrekt ausgelöst werden kann, dies wurde nun seitens JTL optimiert. 



Fehlerbehebung


Bitte achte darauf, dass du die aktuelle unicorn 2 Version einsetzt. Eine Anleitung zum Updaten findest du wie immer hier: Wie spiele ich ein Update ein?

Ab der unicorn 2 Version 2.3.0.8 und der JTL-Wawi Version 1.7.11.x ist die Optimierung bereits beiderseits implementiert. Es ist jedoch nötig, entweder die JTL-Wawi noch einmal zu updaten oder den nachfolgenden Fix auf der JTL-Wawi Datenbank auszuführen:


WICHTIG: Bevor du Arbeiten auf der SQL-Datenbank durchführst, lege bitte immer im Vorfeld ein Backup an und lass die Query optimalerweise von jemandem mit guten SQL-Kenntnissen ausführen.

Alternativ melde dich gerne beim Support, die Kolleg*innen helfen dir gerne.



DROP FUNCTION [Verkauf].[ifStorno]
GO

CREATE FUNCTION [Verkauf].[ifStorno] (@kAuftrag INT, @ignoreIstExterneRechnung BIT = 0, @ignorePendingStatus BIT = 0)
RETURNS INT
AS
BEGIN
--Lieferscheine
IF(EXISTS(SELECT 1
FROM dbo.tLieferschein
WHERE tLieferschein.kBestellung = @kAuftrag))
RETURN 4;
--Pickliste
IF(EXISTS(SELECT 1
FROM dbo.tPicklistePos
WHERE tPicklistePos.kbestellung = @kAuftrag AND tPicklistePos.nStatus <> 40))
RETURN 5;
--Rechnung
IF(EXISTS(SELECT 1
FROM Rechnung.tRechnungPosition
JOIN Rechnung.tRechnung ON tRechnung.kRechnung = tRechnungPosition.kRechnung
WHERE tRechnungPosition.kAuftrag = @kAuftrag AND tRechnung.nStorno = 0))
RETURN 7;
--LS-Pos
IF(EXISTS(SELECT 1
FROM Verkauf.tAuftrag
JOIN tPlattform ON tPlattform.nPlattform = tAuftrag.kPlattform
WHERE tAuftrag.kAuftrag = @kAuftrag AND tPlattform.nTyp = 9))
RETURN 12;

--StornoSperre
IF(EXISTS(SELECT 1
FROM Verkauf.tAuftragStornoSperre
WHERE tAuftragStornoSperre.kAuftrag = @kAuftrag))
RETURN 13;

RETURN
(
SELECT
CASE
WHEN tAuftrag.nStorno = 1
THEN 1
--WAWI-58059 WHEN tAuftrag.nIstExterneRechnung > 0 AND @ignoreIstExterneRechnung = 0 THEN 6
WHEN tAuftrag.nPending = 1 AND @ignorePendingStatus = 0
THEN 14
ELSE 0
END
FROM Verkauf.tAuftrag
WHERE tAuftrag.kAuftrag = @kAuftrag
);
END;
GO