Tip: TABLE · Şema: Cari · Modül: MOD-CARI · Temizlik sınıfı: CRITICAL (kategori A, güven 0) · Kapsam: ERPGOLD_CORE / ALL
Kurulum karşılaştırması
| Kurulum | Var mı | Satır |
|---|---|---|
| INST-ERPGOLDV2 (döviz, 2023-12) | ● | 1580655 |
| INST-KUYUMCU (kuyumcu/rafineri, 2025-01) | ● | 677183 |
İş anlamı
Tüm sistemin tek yazma noktası. Kullanıcı hangi ekranı kullanırsa kullansın (alım, satım, tahsilat, virman, vadeli, arbitraj, perakende) fiş buraya bir veya iki satır olarak düşer. Bakiye defteri, stok defteri ve değişiklik izi bu tablodaki satırlardan tetikleyici ile türetilir; kullanıcı onları asla doğrudan yazmaz. Bir fişin iki tarafı (mal tarafı ve para tarafı) aynı FisNo altında ayrı satırlardır.
Hangi ekranlar yazıyor / okuyor
- Yazan: FrmBankaOperasyonSkorGirisi, FrmProvizyonKabul, FrmSeriTakozCikis, FrmStokIslem, FrmTakozCikisi, FrmTakozGiris, iFBorc, iFCesni, iFCevir, iFEmtia, iFGenel, iFHizmet
- Okuyan (form doldurma): FrmStokIslem, FrmTakozCikisi, FrmTakozGiris, ParakendeSatis, StokIslem, iFBorc, iFHizmet, iFHurda
İlişkiler (JOIN kanıtı ≥ 2 sorgu — FK değil)
HesapId→Cari.Hesaplar.Id63×KasaId→Sistem.Kasalar.Id25×UserId→Sistem.Users.Id17×SubeId→Sistem.Subeler.Id17×StokId→Stok.Maden.Id8×HesapId→Sistem.Subeler.Id5×ProjeId→Genel.Projeler.Id4×Tarih→dbo.OrtalamaKurlar.TARIH3×IslemKodu→Sistem.CariIslemKodu.Id3×VaryantId→Stok.Varyant.Id2×- ←
Cari.IslemDetaylari.IslemId50× - ←
Cari.BakiyeIslem.IslemId8× - ←
Stok.StokHaraketleri.IslemId7× - ←
Cari.AnaBakiyeIslem.IslemId5× - ←
Cari.BakiyeSummary.HesapId2× - ←
Cari.BakiyeSummary.IslemId2×
Kullanım haritası (13.09.2026)
| Kategori | A — ERPGOLD CORE · A-APP_CODE |
| Güven | 100 |
| Derinlik / kök | 0 · bu nesne (Seviye-0) |
| DependencyPath | ERPGOLD → Cari.Hesap → Cari.Islemler |
| Uygulama kullanımı | APP_CODE+REPORT_SQL+CONFIG_SQL · Cari.Hesap, Cari.Islem, Cari.Kart, Cari.MutabakatDetay, Finans.BankaAltinOperasyonu |
Bkz. Database Usage Map · Direct Application Objects. Hiçbir DB değişikliği yapılmadı; SAFETY > CLEANUP.
Temizlik kanıtı
| Kontrol | Sonuç |
|---|---|
| app | YES |
| report | YES |
| config | YES |
| dynamic | NO |
| db_in | YES |
| db_out | YES |
| trigger | YES |
| fk | NO |
| computed | NO |
| crossdb | NO |
| runtime | YES |
| external | NO |
Gerekçe: APP
KB-v1 gövdesi (2026-09-10 · kısmi kod kapsamı — kaynağı kadar güvenilir)
Modül: MOD-CARI · Satır (örnek DB): 1,580,655 · Kolon: 90 · İndeks: 26 · Tetikleyici: var · DB'de oluşturma/değişiklik: 2022-04-23 / 2026-09-10
Özet
Sistemdeki her mali işlemin tek satır olarak tutulduğu ana tablo (kuyumcu/döviz). Bakiye defteri (Cari.BakiyeIslem) ve stok defteri (Stok.StokHaraketleri) bu tablodan Cari.AcceptTransaction tetikleyicisiyle otomatik türetilir; tek gerçek kaynak burasıdır.
Ayrıntı
90 kolon, 14'ü hesaplanan (INSERT/UPDATE'e konursa hata verir). Her F2-KAYIT'ta bir fiş oluşur; fişteki her kalem ayrı Id alır ama aynı FisNo'yu taşır. Tabloya yalnız uygulama (Dao) yazar; türetilmiş defterlere elle yazılmaz. IslemTipi 11 (FATURA) ve 12 (MAHSUP) satırları ne bakiye ne stok üretir (yalnız fatura kaydı). Raporlarda daima IsDeleted=0 ve genelde HesapType=0 süzülür.
Kolonlar
| # | Kolon | Tip | Null | Özellik | Varsayılan | Anlam |
|---|---|---|---|---|---|---|
| 1 | Id | int | identity | Birincil anahtar. Tabloya özgü otomatik artan kayıt numarası. | ||
| 2 | IslemYonu | varchar(5) | ✔ | hesaplanan: (case when [IslemTuru]=(0) OR [IslemTuru]=(4) then 'ALIS' when [IslemTuru]=(1) OR [IslemTuru]=(5) then 'SATIS' end) | hesaplanan: IslemTuru 0/4 -> 'ALIS', 1/5 -> 'SATIS', diğer NULL | |
| 3 | ProjeId | int | ✔ | Proje kaydına işaret eden numara. → Genel.Projeler.Id (4 kanıt) |
||
| 4 | HesapType | int | ✔ | Hesap türü ayrımı için ayrılmış; bu veritabanında tüm satırlarda 0 — kullanılmıyor. | ||
| 5 | Type | varchar(8) | hesaplanan: (case when [HesapType]=(0) then 'Islem' else 'Transfer' end) | hesaplanan: HesapType 0 -> 'Islem', değilse 'Transfer' | ||
| 6 | OwnerRefNo | nvarchar(72) | ✔ | iki bacaklı işlemlerde (virman/parite/vadeli/çevir) ortak referans | ||
| 7 | RefNo | nvarchar(72) | ✔ | Kayıt için üretilen GUID. Karşı kayıt/transfer eşleştirmesi bunun üzerinden yapılır. | ||
| 8 | SubeId | int | ✔ | şube (Sistem.Subeler.Id); rapor parametresi @SubeId buraya bağlanır | ||
| 9 | KasaId | int | ✔ | Kasa (vezne/gişe). Stok kasa seviyesinde tutulur; cari bakiye kasaya bölünmez. → Sistem.Kasalar.Id (25 kanıt) |
||
| 10 | HesapId | int | ✔ | Cari hesap (müşteri/tedarikçi/banka). → Cari.Hesaplar.Id (63 kanıt) · Sistem.Subeler.Id (5 kanıt) |
||
| 11 | FisNo | int | ✔ | fiş numarası; benzersiz değil, bir fiş çok satırı gruplar; global sayaç MAX(FisNo)+1 (kilitsiz, yarış koşulu) | ||
| 12 | Tarih | date | ✔ | İşlem tarihi (muhasebe günü). Oluşturma anından farklı olabilir. → dbo.OrtalamaKurlar.TARIH (3 kanıt) |
||
| 13 | IslemKodu | tislemkodu | ✔ | İşlem grubu: 0 TAKOZ · 1 MADEN · 2 HURDA · 3 NAKİT · 4 ÇEVİR · 5 HİZMET · 6 VADELİ · 7 TAŞ · 8 PIRLANTA · 9 MODEL · 10 GENEL · 11 VİRMAN · 12 FATURA · 13 EMTİA · 999 DEVİR/BORÇ. → Sistem.CariIslemKodu.Id (3 kanıt) |
||
| 14 | IslemTuru | tislemturu | ✔ | Yön: 0 GİRİŞ(+) · 1 ÇIKIŞ(−) · 2 ALACAK(+) · 3 BORÇ(−) · 4 ALIŞ(+) · 5 SATIŞ(−). Veride yalnız 0,1,4,5 kullanılıyor. → Sistem.CariIslemTuru.Id (1 kanıt) |
||
| 15 | IslemTipi | tislemtipi | ✔ | İşlem tipi: 0 NORMAL · 1 PEŞİN · 2 BEDELLİ · 3 İADE · 4 EMANET · 5 MİKTAR · 6-9 metal · 10 PARİTE · 11 RESMİ. VADELİ/ÇEVİR'de −1, devir kayıtlarında −2 (tip gerekmiyor işareti). | ||
| 16 | Yon | varchar(1) | hesaplanan: (case when [IslemTuru]=(0) OR [IslemTuru]=(2) OR [IslemTuru]=(4) then '+' else '-' end) | hesaplanan: IslemTuru 0/2/4 -> '+', değilse '-' (stok bakış açısı) | ||
| 17 | Vade | date | ✔ | Vade tarihi — vadeli işlemlerde kapanış günü. | ||
| 18 | StokId | int | ✔ | İşlemin ürünü. Hangi tabloya işaret ettiği IslemKodu'na bağlıdır: 1/2 → Stok.Maden, 3 → Stok.Nakit, 5 → Stok.Hizmet, 6 → Sistem.Vadeli. → Stok.Maden.Id (8 kanıt) · Stok.Hizmet.Id (1 kanıt) |
||
| 19 | AyarEviId | int | ✔ | AyarEvi kaydına işaret eden numara. → Sistem.AyarEvi.Id (1 kanıt) |
||
| 20 | RaporNo | nvarchar(max) | ✔ | İlgili rapor/belge numarası. | ||
| 21 | IsRapor | bit | ✔ | Evet/hayır bayrağı: Rapor. | ||
| 22 | IsExtra | bit | ✔ | Evet/hayır bayrağı: Extra. | ||
| 23 | Kodu | nvarchar(100) | ✔ | stok/birim/hizmet kodu; rapor için en pratik alan, join gerektirmez | ||
| 24 | BakiyeId | int | ✔ | Malın tarafı. İşlem peşin ise 0 — mal cari hesaba yazılmaz. Peşin değilse ilgili stoğun AnaBirimId'si (Sistem.Birimler). → Sistem.Birimler.Id (1 kanıt) |
||
| 25 | Adet | int | ✔ | Parça sayısı. Yalnız sayılarak alınıp satılan ürünlerde anlamlı (çeyrek, yarım, ata). | ||
| 26 | Miktar | decimal(18,2) | ✔ | Ürünün kendi birimindeki miktarı: dövizde nominal tutar, madende gram. | ||
| 27 | CesniMiktar | decimal(18,2) | ✔ | ((0)) | çeşni gramı; takoz girişinde bakiye hesabına eklenir | |
| 28 | AuMilyem | decimal(18,5) | ✔ | Altın saflık çarpanı. Adetli üründe bir adedin has gram karşılığı (ör. yarım altın 3,21). | ||
| 29 | AgMilyem | decimal(18,5) | ✔ | Gümüş saflık çarpanı. | ||
| 30 | PldMilyem | decimal(18,5) | ✔ | Paladyum saflık çarpanı. | ||
| 31 | PltMilyem | decimal(18,5) | ✔ | Platin saflık çarpanı. | ||
| 32 | HasIsc | decimal(18,5) | ✔ | Sayısal değer. | ||
| 33 | HasIscBirimId | int | ✔ | HasIscBirim kaydına işaret eden numara. |
||
| 34 | HasIscBirimKur | decimal(18,5) | ✔ | İşlem anındaki kur değeri. | ||
| 35 | GumIsc | decimal(18,5) | ✔ | Sayısal değer. | ||
| 36 | GumIscBirimId | int | ✔ | GumIscBirim kaydına işaret eden numara. |
||
| 37 | GumIscBirimKur | decimal(18,5) | ✔ | İşlem anındaki kur değeri. | ||
| 38 | IscilikDurumu | int | ✔ | Sayı alanı. | ||
| 39 | GumusDurumu | int | ✔ | Sayı alanı. | ||
| 40 | PlatinDurumu | int | ✔ | Sayı alanı. | ||
| 41 | PalladiumDurumu | int | ✔ | Sayı alanı. | ||
| 42 | Fiyat | decimal(18,8) | ✔ | Birim fiyat. Tutar ÷ Miktar ile geri hesaplanabilir. | ||
| 43 | FiyatTipi | tfiyattipi | Fiyatın neye göre verildiği: 0 adet başına · 1 miktar/gram başına · 2 ons · 3 has üzerinden. | |||
| 44 | Tutar | decimal(18,2) | ✔ | İşlemin karşılık tutarı, Birim alanındaki para biriminde. |
||
| 45 | BirimId | int | ✔ | Paranın tarafı. Peşin işlemde karşılığında alınan/verilen nakit stoğu; cari işlemde karşılık birimi. → Sistem.Birimler.Id (2 kanıt) · Stok.Maden.Id (2 kanıt) |
||
| 46 | Birim | nvarchar(100) | ✔ | para tarafı birim kodu | ||
| 47 | BirimKur | decimal(18,5) | ✔ | İşlem anında Birim para biriminin TL kuru. |
||
| 48 | Aciklama | nvarchar(max) | ✔ | Serbest açıklama metni. | ||
| 49 | Aciklama2 | nvarchar(max) | ✔ | hesaplanan: (case when [IslemKodu]=(5) then ([tag]+'-')+isnull([Aciklama],'') else [Aciklama] end) | hesaplanan: IslemKodu=5(HİZMET) -> Tag+'-'+Aciklama, değilse Aciklama | |
| 50 | Kategori | nvarchar(100) | ✔ | Kategori — raporlarda kırılım için (serbest metin). | ||
| 51 | Kategori2 | nvarchar(100) | ✔ | İkinci kategori kırılımı. | ||
| 52 | Maliyet | decimal(18,2) | ✔ | İşlemin maliyet karşılığı (ana birim fiyatıyla hesaplanmış). | ||
| 53 | Satis | decimal(18,2) | ✔ | Satış kuru/fiyatı. | ||
| 54 | IscilikTL | decimal(18,2) | ✔ | hesaplanan: (CONVERT(decimal,[Iscilik]*[IscilikBirimKur],(0))) | hesaplanan: Iscilik*IscilikBirimKur | |
| 55 | Iscilik | decimal(18,2) | ✔ | İşçilik payı. Girişte maliyet farkından, çıkışta detay birim fiyatından hesaplanır. | ||
| 56 | IscilikBirim | nvarchar(100) | ✔ | Metin alanı. | ||
| 57 | IscilikBirimKur | decimal(18,5) | ✔ | İşlem anındaki kur değeri. | ||
| 58 | Kar | decimal(19,2) | ✔ | hesaplanan: (case when [IslemTuru]=(0) OR [IslemTuru]=(2) OR [IslemTuru]=(4) then [Maliyet]-[Satis] else [Satis]-[Maliyet] end) | hesaplanan: IslemTuru 0/2/4 -> Maliyet-Satis, değilse Satis-Maliyet | |
| 59 | IscilikBirimId | int | ✔ | IscilikBirim kaydına işaret eden numara. |
||
| 60 | HasKur | decimal(18,5) | ✔ | işlem anı HAS alış kuru (fotoğraf) | ||
| 61 | GumKur | decimal(18,5) | ✔ | İşlem anındaki gümüş kuru. | ||
| 62 | PltKur | decimal(18,5) | ✔ | Platin kuru. | ||
| 63 | PldKur | decimal(18,5) | ✔ | Paladyum kuru. | ||
| 64 | UsdKur | decimal(18,5) | ✔ | İşlem anındaki USD kuru (satır içi anlık görüntü — denetim için). | ||
| 65 | EurKur | decimal(18,5) | ✔ | İşlem anındaki EUR kuru. | ||
| 66 | Tag | nvarchar(max) | ✔ | Serbest etiket alanı. | ||
| 67 | Locked | bit | ✔ | ((0)) | Kayıt kilitli mi — düzeltmeye kapalı. | |
| 68 | UserId | int | ✔ | İşlemi yapan kullanıcı. → Sistem.Users.Id (17 kanıt) |
||
| 69 | InsertDate | datetime | ✔ | (getdate()) | Kaydın oluşturulma anı. | |
| 70 | IsDeleted | bit | ✔ | ((0)) | Yumuşak silme işareti. Silinen kayıt fiziksel olarak durur, sorgular IsDeleted='False' filtreler. |
|
| 71 | Status | int | ✔ | Durum alanı; bu veritabanında tüm satırlarda 0 — kullanılmıyor. | ||
| 72 | Durum | varchar(5) | hesaplanan: (case when [RSAktar]='False' then 'HAYIR' else 'EVET' end) | hesaplanan: RSAktar=False -> 'HAYIR', değilse 'EVET' | ||
| 73 | SAdet | int | ✔ | hesaplanan: (case when [IslemTuru]=(0) then [Adet] else (0)-[Adet] end) | hesaplanan işaretli adet: IslemTuru=0 -> Adet, değilse -Adet | |
| 74 | SMiktar | decimal(19,2) | ✔ | hesaplanan: (case when [IslemTuru]=(0) then [Miktar] else (0)-[Miktar] end) | hesaplanan işaretli miktar (GİRİŞ +, diğer -); net stok için SUM(SMiktar) | |
| 75 | SHas | decimal(18,2) | ✔ | hesaplanan: (CONVERT(decimal,case when [IslemTuru]=(0) then [AuMilyem][Miktar] else (0)-[AuMilyem][Miktar] end,(0))) | hesaplanan işaretli has: IslemTuru=0 -> Miktar*AuMilyem, değilse negatifi | |
| 76 | SIscilik | decimal(18,2) | ✔ | hesaplanan: (case when [IslemTuru]=(0) then [Iscilik] else (0) end) | hesaplanan: IslemTuru=0 -> Iscilik, değilse 0 | |
| 77 | LoginId | int | ✔ | Oturum kaydı — işlemin hangi oturumda yapıldığı. | ||
| 78 | MUser | nvarchar(100) | ✔ | İşlemi değiştiren kullanıcının adı (denormalize metin). | ||
| 79 | MTarih | date | ✔ | Mutabakat tarihi. | ||
| 80 | Mutabakat | bit | ✔ | ((0)) | Mutabakat işareti — hesabın karşı tarafla teyit edildiği. | |
| 81 | VaryantId | int | ✔ | ((0)) | Arbitraj/karşı kayıt eşleştirmesi. İki bağlı satırdan ilkinde −1, ikincisinde ilk satırın Id'si. → Stok.Varyant.Id (2 kanıt) |
|
| 82 | OzelKodId | int | ✔ | ((0)) | OzelKod kaydına işaret eden numara. |
|
| 83 | LastModify | datetime | ✔ | son düzeltme | ||
| 84 | Olcu | nvarchar(100) | ✔ | Metin alanı. | ||
| 85 | RsAktar | bit | ✔ | ((0)) | dış muhasebeye aktarım işareti | |
| 86 | FaturaIscilikTL | decimal(18,2) | ✔ | Sayısal değer. | ||
| 87 | BSMV | decimal(18,2) | ✔ | döviz satışında ayrılan vergi tutarı | ||
| 88 | USDTutar | decimal(18,2) | ✔ | hesaplanan: (case when [Kodu]='USD' then [Miktar] when [Birim]='USD' then [Tutar] else case when isnull([UsdKur],(0))<>(0) AND isnull([Tutar],(0))<>(0) AND isnull([BirimKur],(0))<>(0) then CONVERT(decimal,([Tutar]*[BirimKur])/isnull([UsdKur],[USDkur]),(0)) end end) | hesaplanan: tutarın USD karşılığı | |
| 89 | TLTutar | decimal(18,2) | ✔ | hesaplanan: (case when [Kodu]='TL' then [Miktar] when [Birim]='TL' then [Tutar] else CONVERT(decimal,[Tutar]*[BirimKur],(0)) end) | hesaplanan: tutarın TL karşılığı | |
| 90 | IsArbitiraj | int | hesaplanan: (case when ([IslemKodu]=(6) OR [IslemKodu]=(3)) AND isnull([VaryantId],(0))<>(0) then (1) else (0) end) | hesaplanan: IslemKodu 3 veya 6 ve VaryantId<>0 -> 1 |
İndeksler
| İndeks | Tip | PK | Tekil | Kolonlar | Dahil |
|---|---|---|---|---|---|
| IX_1 | NONCLUSTERED | SubeId,IsDeleted,Tarih,IslemKodu,IslemTipi,Fiyat | IslemYonu,HesapId,Kodu,Miktar,Tutar,Birim,BirimKur,UsdKur | ||
| IX_BTRANS01 | NONCLUSTERED | SubeId,IsDeleted,Tarih,IslemKodu | Id,HesapId,BirimKur,UsdKur,IslemTuru,IslemTipi,Kodu,Miktar,Tutar,Birim | ||
| IX_BtransDoviz | NONCLUSTERED | SubeId,IsDeleted,Tarih,IslemKodu,IslemTipi | Id,BirimKur,UsdKur,HesapId,IslemTuru,Kodu,Miktar,Tutar,Birim | ||
| IX_CI | NONCLUSTERED | IsDeleted | Id,SubeId,KasaId,HesapId,Tarih,UsdKur,FaturaIscilikTL,BSMV,Miktar,Fiyat,Tutar,Birim,BirimKur,Kategori,IslemKodu,IslemTuru,IslemTipi,Kodu,Adet | ||
| IX_Duzeltilmis | NONCLUSTERED | LastModify | Id | ||
| IX_FATURABILGILERI | NONCLUSTERED | IsDeleted | Id,SubeId,KasaId,HesapId,Tarih,FaturaIscilikTL,BSMV,Miktar,Fiyat,Tutar,Birim,BirimKur,UsdKur,IslemKodu,IslemTuru,IslemTipi,Kodu,Adet | ||
| IX_FAturaBilgileri | NONCLUSTERED | IsDeleted | Id,SubeId,KasaId,HesapId,Tarih,FaturaIscilikTL,BSMV,Miktar,Fiyat,Tutar,Birim,BirimKur,UsdKur,IslemKodu,IslemTuru,IslemTipi,Kodu,Adet | ||
| IX_FisNo | NONCLUSTERED | FisNo | |||
| IX_FnBol | NONCLUSTERED | IsDeleted,Tarih,IslemKodu,IslemTipi,Fiyat | HesapId,Maliyet,UsdKur | ||
| IX_FTH_Muhasebe | NONCLUSTERED | SubeId,IsDeleted,IslemKodu | Id,Tarih,IslemTuru,IslemTipi,StokId,Miktar,Tutar,BirimId,USDTutar | ||
| IX_HesapNo | NONCLUSTERED | HesapId | |||
| IX_IPTALKONTROL | NONCLUSTERED | HesapId,IsDeleted,Mutabakat | Id | ||
| IX_ISLEMKARSIIPTAL | NONCLUSTERED | RefNo,IslemKodu,IsDeleted,Id | |||
| IX_IslemKodu | NONCLUSTERED | IslemKodu | |||
| IX_MuhasebeIslemler | NONCLUSTERED | SubeId,IsDeleted,IslemKodu | Id,Tarih,IslemTuru,IslemTipi,StokId,Miktar,Tutar,BirimId | ||
| IX_MuhasebeIslemler01 | NONCLUSTERED | IsDeleted,IslemKodu | Id,SubeId,Tarih,IslemTuru,BirimKur,UsdKur,IslemTipi,Kodu,Miktar,AuMilyem,Tutar,Birim | ||
| IX_MuhIslemler | NONCLUSTERED | IsDeleted,IslemKodu | Id,SubeId,KasaId,HesapId,BirimKur,UsdKur,BSMV,Adet,Miktar,AuMilyem,Fiyat,Tutar,Birim,FisNo,Tarih,IslemTuru,IslemTipi,StokId,Kodu | ||
| IX_MuhIslemler02 | NONCLUSTERED | IsDeleted,IslemKodu | Id,SubeId,KasaId,HesapId,BirimKur,UsdKur,BSMV,Adet,Miktar,AuMilyem,Fiyat,Tutar,Birim,FisNo,Tarih,IslemTuru,IslemTipi,StokId,Kodu | ||
| IX_MuhIslemler03 | NONCLUSTERED | IsDeleted,IslemKodu | Id,SubeId,KasaId,HesapId,BirimKur,UsdKur,BSMV,Adet,Miktar,AuMilyem,Fiyat,Tutar,Birim,FisNo,Tarih,IslemTuru,IslemTipi,StokId,Kodu | ||
| IX_MuhStokIndex | NONCLUSTERED | SubeId,IsDeleted,IslemKodu | Id,Tarih,IslemTuru,IslemTipi,StokId,Miktar,Tutar,BirimId | ||
| IX_MusteriCiro | NONCLUSTERED | IsDeleted,Tarih,IslemKodu,IslemTipi,Fiyat | HesapId,Maliyet,UsdKur | ||
| IX_MUTABAKAT | NONCLUSTERED | HesapId,IsDeleted | Id,InsertDate,MTarih | ||
| IX_Mutabakatx | NONCLUSTERED | IsDeleted | Id,HesapId,InsertDate,MTarih | ||
| IX_SubeNo | NONCLUSTERED | SubeId | |||
| IX_VADELIISLEMRAPORU | NONCLUSTERED | SubeId,IslemKodu,IsDeleted | HesapId,Tarih,IslemTuru,Vade,BakiyeId,Miktar,AuMilyem,Tutar,Birim | ||
| PK_Islemler | CLUSTERED | ✔ | ✔ | Id |
BİLGİ — Bu tabloda tanımlı yabancı anahtar yok; bütünlük uygulama katmanında (Dao sınıfları) ve tetikleyicilerde sağlanır.
Bu tabloyu kullanan SQL nesneleri
İlgili iş kuralları
- Bakiye ve stok defterlerini yalnız Cari.AcceptTransaction tetikleyicisi üretir; InsertTransaction/UpdateTransaction/DeleteTransaction sadece Cari.History'ye yazar (Cari.AcceptTransaction.md; Cari.InsertTransaction.md)
- Yön '+' = IslemTuru 0/2/4 (GİRİŞ/ALACAK/ALIŞ), '-' = 1/3/5 (ÇIKIŞ/BORÇ/SATIŞ) — hesaplanan kolon (Cari.Islemler.md kolon 16; kitapcik/02-islem-modeli.md 2.1)
- NORMAL (IslemTipi 0): bakiye + stok üretir, kasa etkilenmez; PEŞİN (1): bakiye üretmez, stok+kasa üretir, BakiyeId=0 olur (az/02-hesaplama.md 2.4; kitapcik 2.3)
- IslemTipi 11 (FATURA) ve 12 (MAHSUP) satırları bakiye ve stok üretmez; trigger IslemTipi<>11 AND <>12 ile dışlar (Cari.AcceptTransaction.md satır 323; kitapcik 2.3)
- PEŞİN maden satışı iki stok satırı üretir: StokTipi 1 mal çıkışı (-) ve StokTipi 2 para girişi (+) (az/08-teknik.md 8.3.4)
- StokId polimorfiktir: IslemKodu 0->Takoz,1/2->Maden,3->Nakit,4->Birimler,5->Hizmet,6->Vadeli,7->Tas,8->Pirlanta,9->Model,10->Genel,11->Hesaplar,13->Emtia,14->sabit1,999->0 (az 8.4; kitapcik 4.4)
- BirimId: IslemTipi=PEŞİN -> Stok.Nakit.Id, değilse Sistem.Birimler.Id, 0 -> para tarafı yok (Cari.IslemEx.vb TutarBirim, satır 340-353; kitapcik 2.2)
- BakiyeId: MADEN/HURDA -> IslemTipi PEŞİN/BEDELLİ/MİKTAR değilse Maden.AnaBirimId, değilse 0; MODEL -> BEDELLİ/PEŞİN değilse AnaBirim.Id; VADELİ -> koşulsuz VadeliKod.AnaBirim.Id; NAKİT -> her zaman 0; ÇEVİR -> Birim.Id (Cari.IslemEx.vb BakiyeId, satır 270-316)
- Kur fotoğrafı kayıt anında alış kurlarıyla doldurulur (Has/Gum/Plt/Pld/Eur); USD, FATURA/MAHSUP tipinde TCMB kuru olur (Cari.Islem.vb GetUSDKur satır 548-562, Insert satır 607-612)
- FisNo -1 ise GetNewFisNo = MAX(FisNo)+1 (IsDeleted=False), kilitsiz (Cari.IslemEx.vb:256)
- Kayıtta Sube/Kasa/Hesap zorunlu; Miktar=0 yasak (HİZMET/BORÇ/PIRLANTA/VİRMAN hariç), HİZMET'te Tutar=0 yasak (Cari.Islem.vb Save satır 508-517)
- Limit kontrolü: IslemKodu 1/2/3 + ÇIKIŞ + PEŞİN değil + Sube.IsLimitControl açık ise Satis/HAS kuru > FN.GetCariLimit ise reddedilir (Cari.Islem.vb satır 519-528)
- Silme fizikseldir değil işaretlemedir: IslemDEL/Delete IsDeleted='True' yapar (Cari.IslemDEL.md; Cari.Islem.vb Delete satır 1096)
Bilinen boşluklar
- [GAP] Provizyon/Status alanının tam davranışı kaynakta doğrulanmadı
Kaynaklar
- SRC-DB-TABLES / SRC-DB-COLUMNS / SRC-DB-INDEXES —
sys.tables,sys.columns,sys.indexes(salt okunur katalog sorgusu) - SRC-DRV-AZ — az/08-teknik.md
- SRC-DRV-AZ — az/02-hesaplama.md
- SRC-DRV-KIT — kitapcik/02-islem-modeli.md
- SRC-DB-MODULES — KnowledgeBase/04_Database/Triggers/Cari.AcceptTransaction.md
- SRC-CODE-DAO — dao/Dao/Islem/Cari.Islem.vb :506
- SRC-CODE-DAO — ext/Ext/Cari.IslemEx.vb :270
- SRC-DB-COLUMNS — Cari.Islemler
Bilinmeyenler
- Hangi sürümde eklendiği:
createdDB tarihi bir kurulumun tarihidir, ürün sürümü değil (GAP-VERSION-02).
