Forum Użytkownikow Subiekt GT
InsERT GT => Subiekt GT => Wątek zaczęty przez: jajacek w Luty 28, 2012, 12:12:45
-
Witam
Chciałbym naprawić ułomność Subiekta przy wystawianiu faktur Vat RR. Stawka przy takiej fakturze wynosi 7% a przy normalnej fakturze zakupu jest inna i taka sama jak przy sprzedaży. Postanowiłem wykorzystać triggery. Problem w tym, ze nie ma triggera before w ms sql. Czym to zastąpić?
CREATE TRIGGER przedRR
ON dok__Dokument
BEFORE INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
UPDATE tw__Towar
SET tw_JakPrzySp = 0, tw_IdVatZak = 2
END;
GO
CREATE TRIGGER poRR
ON dok__Dokument
AFTER INSERT
AS
IF (SELECT dok_Typ FROM inserted) = 1 AND (SELECT dok_Podtyp FROM inserted) = 1
BEGIN
UPDATE tw__Towar
SET tw_JakPrzySp = 1
END;
GO
-
W mssql masz jeszcze do dyspozycji triggery typu "instead of", ale nimi też nic nie zdziałasz w tym przypadku. Insert bardzo dużo rzeczy trzyma i oblicza w kliencie (aplikacji). Przy wystawianiu dokumentu wszystkie dane o pozycjach są pobierane przed zapisem (insertem) nagłówka do bazy danych.
-
Czyli niestety w ten sposób nic nie zdziałam. A może w inny sposób dałoby radę wymusić tę stawkę Vat dla faktur RR? Bo nie wierzę, że sam Insert ten błąd poprawi. Już kilka lat o to walczę z nimi.
-
Jak masz czas i ochotę to możesz powalczyć. Ja bym spróbował założyć trigger na dok__dokument i przeliczał cały dokument, czyli najpierw zmienił stawkę vat na pozycjach, przeliczył ich wartości i przeliczył nagłówek. Wygląda też na to, że tabelka vat też jest liczona w kliencie i będzie wymagała przeliczenia. Jest duża szansa, że to by wystarczyło, ale nie koniecznie, gdyż tworzone są jeszcze dokumenty finansowe - do sprawdzenia.
-
Odświeżę kotleta, czy coś zostało zmienione w tej sprawie bo chciałbym ustawić te 7% vat ale w opcjach tego nie ma...
-
Nie.