Trigger, który aktualizuje atrybut na ZS po dodaniu faktury końcowej
: 11 wrz 2023, 14:58
Cześć, chcę zrobić mój pierwszy trigger który aktualizuje atrybut na ZS, kiedy zostanie wystawiona faktura końcowa (S)FS. Ścieżka dokumentów ZS->FSL->WZ->(S)FS. Co robię nie tak?
USE [TEST]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [CDN].[StatusSync_Tranag]
ON [CDN].[Tranag]
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @GidNumer INT;
DECLARE @stan VARCHAR(255);
SET @GidNumer = (SELECT WZ.TrN_ZaNNumer FROM CDN.Tranag WZ
LEFT JOIN inserted fs ON fs.trn_gidnumer = WZ.Trn_spinumer
LEFT JOIN CDN.Zamnag ON ZaN_GIDNumer = WZ.TrN_ZaNNumer
WHERE WZ.TrN_GIDTyp = 2001);
IF UPDATE(TrN_Stan)
BEGIN
SET @GidNumer = (SELECT WZ.TrN_ZaNNumer FROM CDN.Tranag WZ
LEFT JOIN inserted ON fs.trn_gidnumer = WZ.Trn_spinumer
LEFT JOIN CDN.Zamnag ON ZaN_GIDNumer = WZ.TrN_ZaNNumer
WHERE WZ.TrN_GIDTyp = 2001);
BEGIN
UPDATE CDN.Atrybuty
SET Atr_Wartosc = 'zrealizowane'
FROM CDN.Atrybuty
JOIN inserted ON TrN_GIDNumer = Atr_ObiNumer AND TrN_GIDTyp = Atr_ObiTyp
JOIN CDN.AtrybutyKlasy a ON Atr_AtkId = Atr_Id
JOIN CDN.Zamnag ON ZaN_GIDNumer = Atr_ObiNumer
WHERE Atr_Nazwa = 'Status zamówienia';
END
END
END;
USE [TEST]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [CDN].[StatusSync_Tranag]
ON [CDN].[Tranag]
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @GidNumer INT;
DECLARE @stan VARCHAR(255);
SET @GidNumer = (SELECT WZ.TrN_ZaNNumer FROM CDN.Tranag WZ
LEFT JOIN inserted fs ON fs.trn_gidnumer = WZ.Trn_spinumer
LEFT JOIN CDN.Zamnag ON ZaN_GIDNumer = WZ.TrN_ZaNNumer
WHERE WZ.TrN_GIDTyp = 2001);
IF UPDATE(TrN_Stan)
BEGIN
SET @GidNumer = (SELECT WZ.TrN_ZaNNumer FROM CDN.Tranag WZ
LEFT JOIN inserted ON fs.trn_gidnumer = WZ.Trn_spinumer
LEFT JOIN CDN.Zamnag ON ZaN_GIDNumer = WZ.TrN_ZaNNumer
WHERE WZ.TrN_GIDTyp = 2001);
BEGIN
UPDATE CDN.Atrybuty
SET Atr_Wartosc = 'zrealizowane'
FROM CDN.Atrybuty
JOIN inserted ON TrN_GIDNumer = Atr_ObiNumer AND TrN_GIDTyp = Atr_ObiTyp
JOIN CDN.AtrybutyKlasy a ON Atr_AtkId = Atr_Id
JOIN CDN.Zamnag ON ZaN_GIDNumer = Atr_ObiNumer
WHERE Atr_Nazwa = 'Status zamówienia';
END
END
END;