Witam,
Musze napisać triggera, który uniemożliwi wystawianie faktury sprzedaży w której conajmniej na jednej pozycji w RKZ jest towar w którym marża jest mniejsza niż 8%.
Doszedłem do tego (choć mogę się mylić), że pola marży nie ma w tabelach SQL i to pole jest obliczane. Wyglądałoby to tak:
if update(TrN_Bufor)
if exists(
select
tre.TrE_TrNId,
tre.TrE_TypDokumentu,
isnull(cast(((sum(tre.TrE_WartoscNetto)-sum(tre.TrE_WartoscZakupu))/nullif(sum(tre.TrE_WartoscNetto),0))*100 as decimal(15,2)),0) as Marza
from
inserted trn
left join CDN.TraElem tre
on tre.TrE_TrNId=trn.TrN_TrNID
and tre.TrE_TypDokumentu=trn.TrN_TypDokumentu
where
trn.TrN_Bufor=0
and trn.TrN_TypDokumentu=302
group by
tre.TrE_TrNId,
tre.TrE_TypDokumentu
having isnull(cast(((sum(tre.TrE_WartoscNetto)-sum(tre.TrE_WartoscZakupu))/nullif(sum(tre.TrE_WartoscNetto),0))*100 as decimal(15,2)),0)<8)
BEGIN
RAISERROR('Nie posiadasz uprawnień do zatwierdzenia dokumentu z marżą poniżej 8 procent.', 16, 1)
ROLLBACK TRAN
SET NOCOUNT OFF
RETURN
END
Spróbuj, do tego mam jeszcze warunek określający operatorów którzy mogą wystawiać takie dokumenty.