AIFA AKADEMI · Kurumsal Wiki
4.310 makale
Ana sayfa Kurumsal Wiki › Veritabanı › Triggers › TRG-URETIM.TRBAKIYEHESAPLA

Uretim.TrBakiyeHesapla

TRIGGERMOD-URETIMERPGOLD_COREINDIRECTLY_USEDVERY_HIGH[SOURCE_IMPLEMENTED]
Kanonik kaynak: markdown · bu sayfa üretilmiş görünümdür

Tip: TRIGGER · Şema: Uretim · Modül: MOD-URETIM · Temizlik sınıfı: INDIRECTLY_USED (kategori C, güven 0) · Kapsam: ERPGOLD_CORE / ALL

Kullanım haritası (13.09.2026)

KategoriB — INDIRECT DEPENDENCY · B-TRIGGER
Güven95
Derinlik / kök1 · Uretim.UretimIslemleri
DependencyPathERPGOLD → Uretim.Islem → Uretim.UretimIslemleri → Uretim.TrBakiyeHesapla
Bağlı tabloUretim.UretimIslemleri

Bkz. Database Usage Map · Core Database Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.

Temizlik kanıtı

Kontrol Sonuç
app NO
report NO
config NO
dynamic NO
db_in YES
db_out YES
trigger YES
fk NO
computed NO
crossdb NO
runtime UNKNOWN
external NO

Gerekçe: Uretim.UretimIslemleri → Uretim.TrBakiyeHesapla (trigger (tablo→tetikleyici))

KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)

Tür: TRIGGER (TR) · Modül: MOD-URETIM · Uzunluk: 107 satır

Tablo: Uretim.UretimIslemleri · Olay: INSERT,UPDATE,DELETE

Özet

Uretim.UretimIslemleri üzerinde INSERT/UPDATE/DELETE sonrası çalışır; üretim işleminin türüne (Islem 1-7) göre Uretim.BakiyeDetay ve gerektiğinde Stok.StokHaraketleri (Bolum=1) satırlarını IslemId bazında sil-yeniden-yaz eder.

Bağımlılıklar (bu nesne → hedef)

İlişki Hedef Tip
READS Sistem.Birimler TABLE
READS Sistem.Kasalar TABLE
READS Sistem.Settings TABLE
WRITES Stok.StokHaraketleri TABLE
WRITES Uretim.BakiyeDetay TABLE

Ürettiği hata mesajları

  • "ISLEMLERI DIREK SILEMEZSINIZ ?."

İlgili iş kuralları

  • IslemId için önce Stok.StokHaraketleri (Bolum=1) ve Uretim.BakiyeDetay eski satırlarını siler (Uretim.TrBakiyeHesapla.md)
  • Islem: 1 TRANSFER, 2 ÜRETİM GİRİŞ, 3 ÜRETİM ÇIKIŞ, 4 FİRE, 5 RAMAT, 6 DİĞER, 7 ÇEVİRME olarak dallanır (Uretim.TrBakiyeHesapla.md)
  • ÜRETİM GİRİŞ/ÇIKIŞ ayrıca Stok.StokHaraketleri'ne Bolum=1 satırı yazar; global UrtIslemCur cursor kullanır (Uretim.TrBakiyeHesapla.md)

SQL tanımı (AS-IMPLEMENTED, örnek DB)

CREATE Trigger [Uretim].[TrBakiyeHesapla]  ON [Uretim].[UretimIslemleri] AFTER INSERT,UPDATE,DELETE
    AS 
    BEGIN
           Declare @IslemId int
           Declare @SubeId int
           Declare @Tarih date
           Declare @Islem int
           Declare @CikanBolumId int
           Declare @GirenBolumId int
           Declare @StokId int
           Declare @Kodu nvarchar(max)
           Declare @Adet int
           Declare @Miktar decimal(18,2)
           Declare @Milyem decimal(18,5)
           Declare @Has decimal(18,2)
           Declare @Fiyat decimal(18,5)
           Declare @FTipi int
           Declare @Tutar decimal(18,2)
           Declare @Birim nvarchar(50)
           Declare @BirimId int
           Declare @GrupKodu nvarchar(50)
           Declare @Kategori nvarchar(50)
           Declare @Aciklama nvarchar(max)
           Declare @UserId int
           Declare @InsertDate datetime
           Declare @IsDeleted bit
        if (Select count(*) From Inserted) = 0  and (Select count(*) From deleted) > 0  
            BEGIN
            RAISERROR('ISLEMLERI DIREK SILEMEZSINIZ ?. ',16,1)
            ROLLBACK
        END
                    Declare @HasBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select HasSymbol From Sistem.Settings))
                    Declare @GumBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select GumSymbol From Sistem.Settings))
                    Declare @PltBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select PltSymbol From Sistem.Settings))
                    Declare @PldBirimId int = (Select Id From Sistem.Birimler Where IsDeleted='False' And Kodu = (Select PldSymbol From Sistem.Settings))
            DECLARE UrtIslemCur CURSOR FOR Select Id,[SubeId],[Tarih],[Islem],[CikanBolumId],[GirenBolumId],[StokId],[Kodu],[Adet],[Miktar],[Milyem],[Has],[Fiyat],[FTipi],[Tutar],[Birim],[BirimId],[GrupKodu],[Kategori],[Aciklama],[UserId],[InsertDate],[IsDeleted] From Inserted I 
            OPEN UrtIslemCur 
            FETCH NEXT FROM UrtIslemCur  INTO  @IslemId,@SubeId,@Tarih,@Islem,@CikanBolumId,@GirenBolumId,@StokId,@Kodu,@Adet,@Miktar,@Milyem,@Has,@Fiyat,@FTipi,@Tutar,@Birim,@BirimId,@GrupKodu,@Kategori,@Aciklama,@UserId,@InsertDate,@IsDeleted 
            WHILE @@FETCH_STATUS =0
            BEGIN 
            Declare @KasaId int = (Select Top 1 Id From Sistem.Kasalar  Where IsDeleted ='False' And SubeId =@SubeId)

            Delete From Stok.StokHaraketleri Where IslemId =@IslemId and Bolum=1
            Delete From Uretim.BakiyeDetay Where IslemId=@IslemId 

            if @IsDeleted='False'
            BEGIN
                if @Islem = 1 ---TRANSFER 
                BEGIN
                Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                                        Values(0,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet *-1 ,@Miktar *-1) 
                Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                                        Values(0,@IslemId,@Tarih,@GirenBolumId ,@BirimId ,@Adet  ,@Tutar) 
                END
                if @Islem = 2 ---URETIMGIRIS 
                BEGIN
                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                                Values(0,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet *-1 ,@Miktar *-1) 

                    Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet)
                    Values(1,@IslemId,0,@Tarih,@SubeId,@KasaId,1,@BirimId  ,@Adet ,@Tutar,@Fiyat,@Tutar * @Fiyat ,0)
                END
                if @Islem = 3 ---URETIMCIKIS 
                BEGIN
                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,IslemId,[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                    Values(0,@IslemId,@Tarih,@CikanBolumId ,@BirimId ,@Adet  ,@Tutar) 


                    Insert Into Stok.StokHaraketleri(Bolum,IslemId,IslemTuru,Tarih,SubeId,KasaId,StokTipi,StokId,Adet,Miktar,Milyem,Has,Maliyet)
                    Values(1,@IslemId,1,@Tarih,@SubeId,@KasaId,1,@StokId ,@Adet *-1,@Miktar*-1,@Milyem,@Has *-1,0)
                END
                if @Islem = 4 ---FİRE
                BEGIN
                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                    Values(0,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet *-1 ,@Miktar *-1) 

                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                    Values(1,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet ,@Miktar ) 
                END
                if @Islem = 5 ---RAMAT
                BEGIN
                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                    Values(0,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet  ,@Miktar ) 

                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                    Values(1,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet*-1  ,@Miktar *-1) 
                END
                if @Islem = 6 ---DİGER
                BEGIN
                    Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                    Values(0,@IslemId,@Tarih,@CikanBolumId,@BirimId,@Adet ,@Miktar ) 
                END
                if @Islem = 7 ---CEVIRME
                BEGIN
                Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                                        Values(0,@IslemId,@Tarih,@CikanBolumId,@StokId,@Adet *-1 ,@Miktar *-1) 
                Insert Into Uretim.BakiyeDetay(BakiyeTipi,[IslemId],[Tarih],[BolumId],[BirimId],[Adet],[Miktar])
                                        Values(0,@IslemId,@Tarih,@CikanBolumId ,@BirimId ,@Adet  ,@Tutar) 

                END
            END
            FETCH NEXT FROM UrtIslemCur  INTO  @IslemId,@SubeId,@Tarih,@Islem,@CikanBolumId,@GirenBolumId,@StokId,@Kodu,@Adet,@Miktar,@Milyem,@Has,@Fiyat,@FTipi,@Tutar,@Birim,@BirimId,@GrupKodu,@Kategori,@Aciklama,@UserId,@InsertDate,@IsDeleted 
            END
    CLOSE UrtIslemCur 
    DEALLOCATE UrtIslemCur 
END

Kaynaklar

  • SRC-DB-MODULES — sys.sql_modules tanımı (salt okunur); gizli sabitler [REDACTED_SECRET] ile değiştirildi.

Bilinmeyenler

  • Hangi sürümde eklendiği: created DB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).