ALTER TRIGGER [CDN].[Towar_z_kwota_zerowa] on [CDN].[TraNag]
AFTER UPDATE
AS
SET NOCOUNT ON
IF UPDATE( TrN_stan )
BEGIN
IF EXISTS(SELECT CDN.TraElem.TrE_KsiegowaNetto
FROM CDN.TraNag INNER JOIN CDN.TraElem ON CDN.TraNag.TrN_GIDNumer = CDN.TraElem.TrE_GIDNumer AND CDN.TraNag.TrN_GIDTyp = CDN.TraElem.TrE_GIDTyp
WHERE (CDN.TraNag.TrN_GIDTyp IN (2033, 2001, 2034)) AND (CDN.TraElem.TrE_KsiegowaNetto = 0))
Raiserror('#CDN_BLAD/# #CDN_1=Nie można wystawić dokumentu - zawiera towar z wartością zerową /# #CDN_2= Nie można wystawić dokumnetu - zawiera towar z wartością zerową /# #CDN_3=Skontaktuj sie z administratorem /# ',16,0)
ROLLBACK TRAN
SET NOCOUNT ON
RETURN
END
Ale niestety czy towar ma cene rozna od 0 czy rowno 0 - triger blokuje zatwierdzenei dokumentu.
USE [CDNXL_Szkolenia]
GO
/****** Object: Trigger [CDN].[Towar_z_kwota_zerowa] Script Date: 02/13/2013 10:14:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [CDN].[Towar_z_kwota_zerowa] on [CDN].[TraNag]
AFTER UPDATE
AS
SET NOCOUNT ON
IF UPDATE( TrN_stan )
BEGIN
IF EXISTS(SELECT *
FROM inserted INNER JOIN CDN.TraElem ON TrN_GIDNumer = TrE_GIDNumer
WHERE (TrN_GIDTyp IN (2033, 2001, 2034)) AND (TrE_KsiegowaNetto = 0))
Raiserror('#CDN_BLAD/# #CDN_1=Nie można wystawić dokumentu - zawiera towar z wartością zerową /# #CDN_2= Nie można wystawić dokumnetu - zawiera towar z wartością zerową /# #CDN_3=Skontaktuj sie z administratorem /# ',16,0)
ROLLBACK TRAN
SET NOCOUNT ON
RETURN
END
Szczegóły operacji:
Operacja zmiany obiektu TraNag o identyfikatorze (2033:5:1316620:0).
Identyfikator operacji: Zapisz_TraNag-14.
Błąd: The transaction ended in the trigger. The batch has been aborted. (37000), The transaction ended in the trigger. The batch has been aborted..
Szczegóły operacji:
Operacja zmiany obiektu TraNag o identyfikatorze (2033:5:1316624:0).
Identyfikator operacji: Zapisz_TraNag-14.
Błąd: The transaction ended in the trigger. The batch has been aborted. (37000), The transaction ended in the trigger. The batch has been aborted..
Trigger ma ograniczenia tylko WZ i PA a np na fakturze wyrzuca ten blad.
USE [CDNXL_Szkolenia]
GO
/****** Object: Trigger [CDN].[Towar_z_kwota_zerowa] Script Date: 02/13/2013 10:14:41 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [CDN].[Towar_z_kwota_zerowa] on [CDN].[TraNag]
AFTER UPDATE
AS
SET NOCOUNT ON
IF UPDATE( TrN_stan )
BEGIN
IF EXISTS(SELECT *
FROM inserted INNER JOIN CDN.TraElem ON inserted.TrN_GIDNumer = TrE_GIDNumer
WHERE (inserted.TrN_GIDTyp IN (2001, 2034)))
Raiserror('#CDN_BLAD/# #CDN_1=Nie można wystawić dokumentu - zawiera towar z wartością zerową /# #CDN_2= Nie można wystawić dokumnetu - zawiera towar z wartością zerową /# #CDN_3=Skontaktuj sie z administratorem /# ',16,0)
ROLLBACK TRAN
SET NOCOUNT ON
RETURN
END
Wiem ze mialo zostac i docelowo tak staram sie zrobic, abe chcialem ograniczyc sie tylko do rodzaju dokumentu - tak zeby to chociaz na tym warunku ruszylo - ale niestety nie dziala poprawnie
IF UPDATE( TrN_stan )
BEGIN
IF EXISTS(SELECT * FROM inserted INNER JOIN CDN.TraElem ON inserted.TrN_GIDNumer = TrE_GIDNumer WHERE (inserted.TrN_GIDTyp IN (2033, 2001, 2034)) AND (TrE_KsiegowaNetto = 0))
BEGIN
Raiserror('#CDN_BLAD/# #CDN_1=Nie można wystawić dokumentu - zawiera towar z wartością zerową /# #CDN_2= Nie można wystawić dokumnetu - zawiera towar z wartością zerową /# #CDN_3=Skontaktuj sie z administratorem /# ',16,0)
ROLLBACK TRAN
SET NOCOUNT ON
RETURN
END
END