Mikro SQL Stok Hareketlerinde Fiyat Kontrol Trigger
Mikro SQL Stok Hareketlerinde Fiyat Kontrol Trigger
Sizlere Mikro içerisinde STOK_HAREKETLERI tablosuna nasıl Fiyat Kontrol Trigger yazılarak Kullanıcıların trigger ile kontrol etmeyi
anlatmaya çalıştım arkadaşlar umarım siz Mikro kullanıcıları için faydalı olur lütfen sizlerin düşüncülerinizi öğrenmem için iyi yada kötü
yorum bırakmayı unutmayınız.
CREATE TRIGGER [dbo].[Fiyat_Kontrol] ON [dbo].[STOK_HAREKETLERI] FOR INSERT, update AS DECLARE @CariKod varchar(25), @CariRecid int, @StokKodu varchar(25), @CDate date, @ListeNo int, @FiyatKodu int, @CariFiyati float, @GirilenFiyat float, @Dovizi int, @Miktar float, @KullanıcıID int, @Protip tinyint, @Mesaj nvarchar(max), @HamFiyat float, @EnIyiFiyat float set @CariKod='' Select @CariKod=sth_cari_kodu from inserted set @CariRecid=0 select @CariRecid=(select cari_RECid_RECno from CARI_HESAPLAR where cari_kod=@CariKod) set @StokKodu='' Select @StokKodu=sth_stok_kod from inserted set @CDate='' select @CDate=sth_create_date from inserted set @ListeNo=0 select @ListeNo=sth_fiyat_liste_no from inserted set @FiyatKodu=1 select @FiyatKodu=( select cari_satis_fk from CARI_HESAPLAR WHERE cari_kod=@CariKod) set @CariFiyati=0 select @CariFiyati=(select sfiyat_fiyati from STOK_SATIS_FIYAT_LISTELERI where sfiyat_stokkod=@StokKodu and sfiyat_listesirano=@FiyatKodu) set @Miktar=0 select @Miktar=sth_miktar from inserted set @GirilenFiyat=0 Select @GirilenFiyat=(sth_tutar/sth_miktar) from inserted set @KullanıcıID=0 Select @KullanıcıID=sth_lastup_user from inserted set @Protip=1 Select @Protip=sth_tip from inserted set @EnIyiFiyat=0 select @EnIyiFiyat=(case when @KullanıcıID in (1) then @CariFiyati * 0.60 when @KullanıcıID in (2,3,4) then @CariFiyati * 0.70 end) set @Mesaj='Evrağa Girilen Satış Fiyatı; ' + @StokKodu + ' stok kodlu ürün için Cariye Tanımlanmış en iyi satış fiyatı olan ' + CAST(@EnIyiFiyat AS nvarchar(10)) + ' fiyatından daha düşük olamaz! Lütfen Satış Yöneticisi ile görüşünüz! ' if @Protip!=0 IF @GirilenFiyat<@EnIyiFiyat BEGIN RAISERROR(@Mesaj, 16, 1) ROLLBACK RETURN END