Tip: TRIGGER · Şema: Uretim · Modül: MOD-URETIM · Temizlik sınıfı: INDIRECTLY_USED (kategori C, güven 0) · Kapsam: ERPGOLD_CORE / ALL
BASE künyesi ve kullanım haritası (v1.5 · 13.09.2026)
| BASE Durumu | BASE'e dahil — BASE Status: CANDIDATE_CANONICAL |
| BASE Sınıfı | BASE-DEPENDENCY (BASE MASTER) · Wiki önerisi: BASE-DEPENDENCY · Action: INCLUDE_IN_BASE · Güven: HIGH |
| Runtime Certification | PENDING — BASE ile açılış/işlem testi yapılmadı; otomatik PASS yazılmadı |
| Kodda Kullanılıyor mu? | DOLAYLI — yalnız bağımlılık zinciriyle |
| Kod Referans Sayısı | BASE taraması: 0 (uygulama kodunda string literal referansı yok) · Kullanım Haritası kanıtı: 0 kayıt |
| Kullanan Ekranlar | — |
| Kullanan Class/Method | — |
| Incoming Dependency (bunu kullanan nesneler) | Uretim.UretimIslemleri |
| Outgoing Dependency (bunun kullandığı nesneler) | Sistem.Birimler, Sistem.Kasalar, Sistem.Settings, Stok.StokHaraketleri, Uretim.BakiyeDetay, Uretim.UretimIslemleri |
| Trigger İlişkisi | Tetikleyici → bağlı tablo: Uretim.UretimIslemleri |
| Ticket Problem Aileleri | PF-030 |
| Bilinen Hatalar | ERR-POT-129, ERR-SIL-072 (Hata Bilgi Bankası; Gözlemlendi durumu kayıtta) |
| Bilinen SQL Riskleri | SQLR-067 |
| Health Check Kuralı | TRG-03 |
| Müşteri Özel mi? | HAYIR |
| Opsiyonel Modül mü? | HAYIR |
| Legacy mi? | HAYIR |
| Son Doğrulama Tarihi | 13.09.2026 — statik analiz (katalog 2026-09-10 + kaynak kod taraması). Çalışma zamanı doğrulaması: PENDING |
Kullanım haritası
| Kullanım Haritası kategorisi | B — INDIRECT DEPENDENCY · B-TRIGGER · güven 95 |
| Derinlik / kök | 1 · Uretim.UretimIslemleri |
| DependencyPath | ERPGOLD → Uretim.Islem → Uretim.UretimIslemleri → Uretim.TrBakiyeHesapla |
Bkz. ERPGOLD BASE · Uzlaştırma · Database Usage Map · Kullanım Haritası Core · Hata Bilgi Bankası. BASE Status: CANDIDATE_CANONICAL · Runtime Certification: PENDING · 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_modulestanımı (salt okunur); gizli sabitler[REDACTED_SECRET]ile değiştirildi.
Bilinmeyenler
- Hangi sürümde eklendiği:
createdDB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).
