4.0.2 ile birlikte seri takibinde bakiye kontrolü saglayan trigger sorun yaratiyordu. Örnek durum asagidaki gibi olup ekteki dosya ve cümle (dbupdate verilemedigi için) ile sorun çözülmüstür. 4.0.6 sürümünde ise Istek numarasi : 20695 için dbupdate ile çözülmüstür.
Konu ile ilgili bilgi bekleyen is ortaklari ve müsterilerimize gerekli bilgiyi iletmemiz gerekiyor.
Sorun ile ilgili durum:
Serisi takibi ve seride bakiye takibi olan bir stok için alis irsaliyesi / faturasi ile giris yapilsin. Daha sonra bu girise ait herhangi bir seriden çikis yapilirsa daha önce yapilan giris hareketinde herhangi bir degisiklik (fiyat/isk./vade vb) yapilamiyordu. “Çikis yapilan seride silme yapamazsiniz” benzeri bir açiklama geliyordu.
ÇALISTIRILMASI GEREKEN TRIGGER
CREATE TRIGGER NTR_SERITRAD ON TBLSERITRA FOR DELETE AS BEGIN IF (SELECT COUNT(*) FROM (SELECT (ISNULL(SUM(MIKTAR), 0) - ISNULL((SELECT SUM(MIKTAR) FROM DELETED WHERE ISNULL(YEDEK8, 'A') = 'X'), 0) - ISNULL((SELECT SUM(MIKTAR) FROM SERITRA GIRIS WHERE GIRIS.STOK_KODU = CIKIS.STOK_KODU AND GIRIS.SERI_NO = CIKIS.SERI_NO AND GIRIS.DEPOKOD = CIKIS.DEPOKOD AND GCKOD = 'G' GROUP BY SERI_NO, STOK_KODU, DEPOKOD), 0)) BAKCOL FROM SERITRA CIKIS WHERE GCKOD = 'C' AND STOK_KODU + SERI_NO + CAST(DEPOKOD AS VARCHAR(5)) + 'G' IN (SELECT STOK_KODU + SERI_NO + CAST(DEPOKOD AS VARCHAR(5)) + GCKOD FROM DELETED) AND STOK_KODU IN (SELECT MAS.STOK_KODU FROM STSABIT MAS, DELETED WHERE MAS.STOK_KODU = DELETED.STOK_KODU AND SERI_BAK = 'E') GROUP BY SERI_NO, STOK_KODU, DEPOKOD) BAKTABLE WHERE BAKCOL > 0) > 0 BEGIN PRINT 'CIKIS HAREKETI BULUNAN GIRIS SERI KAYITLARI SILINEMEZ' ROLLBACK RAISERROR( 'CIKIS HAREKETI BULUNAN GIRIS SERI KAYITLARI SILINEMEZ', 18, 1) END END ----------------------------
FATURA.DLL SÜRÜMÜ : 4.0.4.6893
------------- burda verilecek bir cevap vardi, onuda ben yazdim...
|