AIFA AKADEMI · Eğitim Kitabı
9 bölüm
❓ PEKİ NEDEN⚠ BUNU KARIŞTIRMA🏪 ÖRNEK ALTIN A.Ş.SEVİYE 4 = daha teknik gösternoktalı altı çizili = terim (üzerine gel)

1. Sıfırdan Sektör ve ERPGOLD Eğitimi — Kitabın Kullanım Kılavuzu

KAYNAK Bu bölüm kitabın nasıl okunacağını anlatır; içerik iddiaları _tools/BOOK_BRIEF.md (kitap sözleşmesi), ../ERPGOLD_WIKI/_tools/AGENT_BRIEF.md (kanıt ve gizlilik kuralları), ../ERPGOLD_WIKI/13_Training/Tracks/INDEX.md (rol bazlı eğitim programı L0–L5) ve ../ERPGOLD_WIKI/01_AIFASOFT/HEDEF_KITLELER.md (11 hedef kitle) üzerine kuruludur.

1.1 Bu kitap kime ve neden var

Bu kitap, kuyumculuk, döviz, finans ve ERPGOLD hakkında hiçbir şey bilmeyen bir okur için yazıldı. Ölçü olarak 15 yaşındaki zeki bir öğrenciyi aldık: hiçbir kavramı bilmediğini varsayıyoruz ama zekâsını küçümsemiyoruz. Kitap bittiğinde aynı okur, bir kuyumcunun ya da döviz bürosunun neden böyle çalıştığını, ERPGOLD'un bu işi nasıl kayda geçirdiğini ve bir sorun çıktığında nereden başlanacağını anlayan bir çalışan olmalı.

Neden böyle bir kitap gerekiyor? AIFASOFT'a katılan yeni bir çalışan üç ayrı dünyayı aynı anda öğrenmek zorunda:

Dünya Ne öğrenilecek Öğrenilmezse ne olur
Sektör Altın has ile ölçülür, döviz iki kurla alınıp satılır, müşteriyle "cari" çalışılır Müşterinin "36 gram borcum var" demesini anlayamazsınız
Ürün (ERPGOLD) Hangi ekran neyi kaydeder, stok ve bakiye nasıl türetilir Doğru işlemi yanlış ekrana girer, "bakiye tutmuyor" dersiniz
Şirket (AIFASOFT) Destek nasıl çalışır, hangi kaynağa güvenilir, ürün ailesi nedir Müşteriye yanlış ürünü, yanlış süreci anlatırsınız

Mevcut kaynaklar (kurumsal wiki, eğitim kitapçığı, A-Z el kitabı) bilgiyi doğru ama parça parça tutuyor: bir ekranın makalesi ekranı, bir tetikleyicinin makalesi tetikleyiciyi anlatıyor. Bu kitap parçaları tek bir hikâyeye diziyor. Kaynak olmayı değil, kaynaklara köprü olmayı hedefliyor; her önemli iddianın yanında hangi wiki makalesinden geldiği yazıyor.

BUNU KARIŞTIRMA Kitap ≠ Wiki. Wiki (../ERPGOLD_WIKI/) kanonik gerçektir: 337 ekran, 220 tablo, 13.681 çağrı, 195 sözlük maddesi. Kitap ise o gerçeğin öğrenme sırasına dizilmiş anlatımıdır. İkisi çelişirse wiki kazanır; kitaptaki cümle düzeltilir.

1.2 İlke: önce NEDEN, sonra NASIL

Kitabın tek öğretim ilkesi budur. Bir düğmeye basmayı ezberleyen kişi, düğme yerinden oynayınca kaybolur; düğmenin neden orada olduğunu anlayan kişi yeni düğmeyi kendisi bulur. Bu yüzden her kavram aynı zincirle anlatılır:

Bu nedir?
  → Neden vardır?
    → Gerçek hayatta hangi problemi çözer?
      → Olmasaydı ne olurdu?
        → Kim kullanır?
          → Nasıl kullanılır?
            → İşletmede sonucu ne olur?
              → ERPGOLD'da karşılığı nedir?
                → Hangi ekran?
                  → Hangi kayıtlar (tablo/satır)?
                    → Hangi stok / bakiye / rapor etkilenir?

Örnek: "Milyem" kavramını "saflık oranı, binde cinsinden" diye ezberletmek yerine kitap şunu sorar: Bileziğin içinde ne kadar altın var? Bileziğin tamamı altın değildir; 22 ayar bilezikte altının payı yaklaşık 0,916'dır. Kuyumcu 100 gram bilezik alırken 100 gram altın almış olmaz, 91,6 gram "has" almış olur. Milyem olmasaydı kuyumcu her bileziği ayrı fiyatlamak zorunda kalırdı; ortak payda olmadan iki bilezik bile karşılaştırılamazdı. ERPGOLD'da bu, maden kartındaki Milyem alanı ve işlem satırındaki Has = Miktar × Milyem hesabıdır (../ERPGOLD_WIKI/02_Sector/Concepts/SEC-MILYEM.md, ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md). Bölüm 2 bu zinciri her kavram için kurar.

PEKİ NEDEN? Neden "önce nasıl" ile başlamıyoruz? Çünkü ERPGOLD'un davranışlarının çoğu ekranda görünmez: kullanıcı bir işlem satırı yazar, stok defteri ve bakiye defteri bir tetikleyici tarafından üretilir. "Nasıl" düzeyinde kalan kişi bu türetmeyi göremez ve "stok azaldı ama bakiye artmadı" sorusuna cevap veremez. "Neden"i bilen kişi, sorunun cevabının işlem tipinde (peşin / cari / resmi) olduğunu bilir (Bölüm 5–6).

1.3 Dört katmanlı anlatım modeli

Her önemli konu dört seviyede anlatılır. Aynı olay dört kez, dört farklı gözle okunur; okur kendi seviyesinde durabilir ya da bir üst katmana geçebilir. Aşağıda modelin kendisi, gerçek bir olayla gösteriliyor.

Seviye 1 — Çok basit

Ali'nin 100 doları var, Mehmet'in 2 gram altını var. Ali altın istiyor, Mehmet dolar istiyor. Takas yapıyorlar: Ali 100 doları veriyor, Mehmet 2 gram altını veriyor. Ali'nin cebinde artık dolar yok, altın var; Mehmet'in cebinde altın yok, dolar var. Kimse kimseye borçlu değil, iş o anda bitti. Buna peşin iş denir.

Şimdi aynı olayı değiştirelim: Mehmet altını verdi ama Ali "doları yarın getiririm" dedi. Mehmet'in cebinde artık altın yok, dolar da yok; elinde bir söz var: "Ali bana 100 dolar borçlu." İşte bu söz cari hesaptır. Mehmet bu sözü unutmamak için bir deftere yazar.

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN A.Ş.'nin gişesinde Mehmet Kaya (kasiyer) oturuyor; müşteri Döviz Nuri geliyor. Nuri 100 dolar verip karşılığında 2 gram has almak istiyor. Firma gözüyle bu iki harekettir: kasaya 100 dolar girdi (nakit stoğu arttı), kasadan 2 gram has çıktı (maden stoğu azaldı). Nuri parayı hemen verdiği için firmanın Nuri'den ne alacağı ne borcu var; bakiye değişmez. Ama Nuri "doları yarın getiririm" deseydi, has çıkardı ve firma defterine "Nuri 100 USD borçlu" yazardı; nakit stoğu değişmezdi.

Döviz bürosu tarafında olay aynıdır, yalnız mal cinsi farklıdır: Nuri 100 dolar verip TL alır; büro için dolar girdi, TL çıktı. Kur, büronun alış kurudur (müşteri satıyor, büro alıyor).

Seviye 3 — ERPGOLD

Mehmet, ANA MENÜ ▸ Hesap Yonetimi ▸ Cari İşlemler ekranında Döviz Nuri hesabını seçer, kasa ve tarihi kontrol eder, TAMAM der. Peşin takas için işlem ekranında NAKİT ile 100 USD GİRİŞ (tip PEŞİN) ve MADEN ile 2 g has ÇIKIŞ (tip PEŞİN) girer; F2 ile kaydeder. Kasa nakit stoğu +100 USD, maden stoğu −2 g olur; Nuri'nin bakiye kartı değişmez. "Yarın getiririm" senaryosunda ise MADEN ÇIKIŞ NORMAL tiple girilir: maden stoğu düşer, bakiye kartında Nuri 100 USD borçlu görünür. Ayrıntı: Bölüm 5 (işlem ekranı) ve Bölüm 6 (işlemler ve varyantları).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Her iki işlem de Cari.Islemler tablosuna birer satır olarak yazılır (IslemKodu 3 NAKİT / 1 MADEN, IslemTuru 0 GİRİŞ / 1 ÇIKIŞ, IslemTipi 1 PEŞİN ya da 0 NORMAL). Kaydın ardından Cari.AcceptTransaction tetikleyicisi çalışır: StokId dolu ve miktar sıfırdan farklıysa Stok.StokHaraketleri'ne stok satırı, IslemTipi <> 1 ve Tutar <> 0 ise Cari.BakiyeIslem'e bakiye satırı yazar; her durumda Cari.History'ye iz düşer. Peşin (tip 1) satır bakiye defteri üretmez. Kural ve ölçümü: ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md, tetikleyici: ../ERPGOLD_WIKI/08_Database/Triggers/TRG-CARI.ACCEPTTRANSACTION.md, gerçek işlem matrisi: TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md.

Seviyelerin kullanımı:

Seviye Kim için Ne beklenir
1 — Çok basit Sektörü hiç bilmeyen herkes Günlük hayat benzetmesi; Ali/Mehmet örneği
2 — İşletme mantığı Yeni çalışan, eğitim personeli, müşteri Kuyumcu / döviz bürosu gözüyle aynı olay; kâr, risk, bakiye
3 — ERPGOLD Yeni çalışan, destek, müşteri Ekran ve alan adları kullanıcı diliyle; hangi kayıt, hangi liste etkilenir
4 — Teknik (katlanır) Kıdemli destek, geliştirici, rapor yazan Sınıf, DAO, tablo, kolon, tetikleyici, fonksiyon; kanonik wiki bağlantıları

Seviye 4 kutuları atlanabilir; kitabın hiçbir sınavı Seviye 4 bilgisi olmadan çözülemeyecek şekilde kurulmadı (teknik sorular ayrıca işaretlidir).

1.4 Kutuların anlamı

Kitapta yedi tür kutu vardır. Kutunun ilk satırı kalın bir etikettir; HTML derleyici etikete göre renklendirir.

Kutu Ne zaman görürsün Nasıl okunur
PEKİ NEDEN? Bir davranış şaşırtıcı göründüğünde ("Neden stok azalırken bakiye artıyor?") Cevap ERPGOLD'un gerçek davranışından (işlem matrisi, tetikleyici) gelir; tahmin değildir
BUNU KARIŞTIRMA Birbirine benzeyen ama farklı iki kavram Stok ≠ Bakiye, Kasa ≠ Cari, İşlem ≠ Stok hareketi, Kur ≠ Parite, Has ≠ Gram, Ayar ≠ Milyem, Alış ≠ Giriş, Satış ≠ Çıkış — ezberle değil, farkı anla
ÖRNEK ALTIN A.Ş. Kavram örnek işletmede canlandırılırken Sayılar örnektir, güncel değildir; aynı işletme bütün bölümlerde kullanılır
UYARI Sık yapılan hata ya da risk Ticket temalarından ve bilinen sorunlardan gelir
KAYNAK İddianın kanıtı Wiki makale id'si (SCR-, BR-, SCN-, TERM-…), veritabanı nesnesi ya da doküman; bağlantıya gidip doğrulayabilirsin
GAP Bilinmeyen Kaynaklarda cevap yok; kitap uydurmaz, boşluğu adıyla söyler
CTR Çelişki İki kaynak farklı şey söylüyor; kitap iki tarafı da kaynağıyla verir, sessizce birini seçmez

Ayrıca her ana bölümde SIK YAPILAN HATALAR kutusu dört alt başlıkla gelir: Yeni çalışan · Müşteri · Destek personeli · Geliştirici. Bu kutular 13.681 destek çağrısının 22 temasından türetilmiştir (../ERPGOLD_WIKI/12_Support/Problems/INDEX.md, ../ERPGOLD_WIKI/12_Support/SymptomChains/).

1.5 ÖRNEK ALTIN A.Ş. — kitabın tek örnek işletmesi

Kitap boyunca tek bir hayali işletme kullanılır; böylece Bölüm 2'de öğrendiğin kavramı Bölüm 7'de aynı kasada, aynı müşterilerle görürsün.

ÖRNEK ALTIN A.Ş. İstanbul Kapalıçarşı'da toptancı + perakende kuyumcu; içinde bir döviz gişesi de var. Böylece hem kuyumcu hem döviz bürosu senaryoları aynı firmada işlenir. AIFASOFT müşterisidir; ERPGOLD'u iki şubeyle (MERKEZ, ŞUBE-2) kullanır.

Kişiler: Ayşe Demir (firma sahibi) · Mehmet Kaya (kasiyer/gişe) · Zeynep Aksoy (satış) · Ali Çelik (muhasebe) · Deniz Yılmaz (AIFASOFT destek personeli). Müşteri ve tedarikçiler (hayali): Kuyumcu Selim (perakendeci müşteri, cari çalışır) · Döviz Nuri (döviz müşterisi) · Toptancı Yusuf (tedarikçi) · Atölye Kemal (üretici) · Rafineri Kuzey (rafineri).

Pazartesi sabahı başlangıç durumu (MERKEZ kasası):

NAKİT       500.000 TL · 100.000 USD · 20.000 EUR
STOK        2.000 g HAS (24 ayar, milyem 0,995 → kitapta "has")
            1.500 g 22 ayar bilezik (milyem 0,916 → 1.374 g has)
              800 g 14 ayar        (milyem 0,585 →   468 g has)
              300 g karışık hurda  (ort. 0,700   →   210 g has)
CARİ        Kuyumcu Selim    150 g HAS  borçlu   (bize)
            Döviz Nuri     5.000 USD    alacaklı (bizden)
            Toptancı Yusuf   400 g HAS  alacaklı (bizden)

Örnek kurlar (sabit; gerçek ve güncel kur DEĞİLDİR):

Kalem Alış Satış
USD/TL 40,00 40,20
EUR/TL 46,00 46,30
Has altın (gram, TL) 4.000 4.030
Ons (USD) 3.100 — (1 ons = 31,1035 g)
22 ayar işçilik gram başına 150 TL

Haftalık hikâye (Bölüm 7 tam anlatır, diğer bölümler yalnız atıf yapar): Pazartesi 1.000 g has satın aldı (Toptancı Yusuf, cari) · Salı 600 g 22 ayar sattı (Kuyumcu Selim, cari) · Çarşamba 200 g hurda aldı (perakende müşteri, peşin TL) · Perşembe Kuyumcu Selim'in USD borcunu altına çevirdi · Cuma mutabakat + gün sonu pozisyon.

UYARI Bu firma ve kişiler tamamen hayalidir. Gerçek AIFASOFT müşterilerinin adı kitapta geçmez; iki gerçek kurulum yalnız "döviz bürosu kurulumu (V2)" ve "kuyumcu/rafineri kurulumu (KUYUMCU)" olarak, müşteri-özel şemalar ise MüşteriŞemasıA–D olarak anılır.

1.6 Öğrenme yolu

Kitap 15 halkalık bir zincir izler. Her halka bir öncekine dayanır; halkayı atlarsan bir sonraki bölümdeki "neden" boşta kalır.

 1 Para nedir?
 2 → Döviz nedir, kur nedir?
 3 → Altın nedir, has ve milyem nedir?
 4 → Kuyumcu ne iş yapar?
 5 → Döviz bürosu ne iş yapar?
 6 → Piyasa ve fiyat nasıl oluşur?
 7 → Risk nedir, hedge nedir?
 8 → AIFASOFT kimdir?
 9 → ERPGOLD nedir?
10 → ERPGOLD'u kim kullanır?
11 → Bir işlem neden yapılır?
12 → Aynı işlem ERPGOLD'da nasıl kaydedilir?
13 → Stok, bakiye ve kasa nasıl değişir?
14 → Veritabanında ne olur?
15 → Sorun çıkarsa nereden başlanır?

Her halkanın hangi bölümde olduğu:

# Halka Bölüm Kaynak ağırlığı
1 Para nedir? 02 Para / Döviz / Altın / Piyasalar SECTOR_KNOWLEDGE, 02_Sector/Concepts/SEC-NAKIT
2 Döviz ve kur 02 SEC-DOVIZ, SEC-KUR, SEC-PARITE, TERM-ALIS-SATIS-KURU
3 Altın, has, milyem, ayar 02 SEC-HAS, SEC-MILYEM, SEC-AYAR, SEC-ONS
4 Kuyumcu 03 Sektör 02_Sector/BusinessTypes/SEC-KUYUMCU ve alt türleri
5 Döviz bürosu 03 SEC-DOVIZ-BUROSU
6 Piyasa ve fiyat 02 SEC-KUR, SEC-ONS, TERM-KUR-LISTESI
7 Risk ve hedge 02–03 SEC-POZISYON, SEC-ARBITRAJ, SEC-VADELI; AIFASOFT tarafı _data/aifasoft_web.md (FX Trader)
8 AIFASOFT 04 AIFASOFT ve ERPGOLD 01_AIFASOFT/*, web notları
9 ERPGOLD 04 03_ERPGOLD_Product/SYSTEM_OVERVIEW, MENU_TREE, 04_Modules/INDEX
10 Kim kullanır 04 VARIANT_MATRIX, iki kurulum profili, 02_Sector/BusinessTypes
11 İşlem neden 05 İşlem ekranı, 06 İşlemler ve varyantları SEC-GIRIS/CIKIS/ALIS/SATIS, SEC-PESIN, SEC-CARI
12 ERPGOLD'da nasıl 05, 06 05_Screens/SCR-ISCREEN, SCR-IFTRANSACTION, SCR-IF*; 06_Workflows/
13 Stok / bakiye / kasa 06, 07 İşletme senaryoları BR-DEFTER-URETIMI, TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI, 13_Training/Scenarios/
14 Veritabanı TECHNICAL_WIKI (+ her bölümdeki Seviye 4) TECHNICAL_WIKI/TABLES, FIELDS, FLOWS; 08_Database/
15 Sorun çıkarsa 06–07 SIK YAPILAN HATALAR kutuları, 09 Bilmen gereken 100 şey 12_Support/SymptomChains/, Playbooks/, KnownIssues/

Destek bölümler: 08 Sözlük (kitapta geçen terimler, 18_Glossary/ maddelerine bağlı) ve 09 Bilmen gereken 100 şey (kitabın tamamının kontrol listesi).

1.7 Roller için okuma sırası

Wiki'nin eğitim programı altı seviye tanımlar (L0–L5, ../ERPGOLD_WIKI/13_Training/Tracks/INDEX.md). Kitap bölümleri bu seviyelere şöyle oturur:

Rol Okuma sırası Wiki karşılığı Ne zaman "yeter"
Yeni çalışan (ilk hafta) 01 → 02 → 03 → 04 → 08 (sözlük yanında açık) L0, L1 Bölüm 2–4 sınavlarında Kolay + Orta tam
Yeni çalışan (ikinci hafta) 05 → 06 → 07 → 09 L2, L3 Bölüm 7 senaryo sorularını kendi kelimelerinle anlatabiliyorsan
Eğitim personeli Tüm bölümler, Seviye 1–3 odaklı; sınav ve cevap anahtarları eğitim materyalidir L0–L3
Destek personeli 04 (§17 destek nasıl çalışır) → 05 → 06 → 07 → her bölümün SIK YAPILAN HATALAR kutusu → 09 L3, L4 Semptom zincirlerini (12_Support/SymptomChains/) ekranla eşleyebiliyorsan
Kıdemli destek Destek sırası + bütün Seviye 4 kutuları + TECHNICAL_WIKI/FLOWS L4 İşlem matrisini okuyup "bu satır neden bakiye üretmedi" diyebiliyorsan
Geliştirici / rapor yazan 04 (§17 mimari) → 05–06 Seviye 4 → TECHNICAL_WIKI (TABLES, FIELDS, FLOWS, IMPACT) → wiki 08_Database, 09_CodeArchitecture L5 Kanonik wiki'yi doğrudan kullanmaya geçtiğinde
Müşteri / son kullanıcı 02 → 03 → 05 → 06 → 07 (Seviye 1–3) CUSTOMER_SAFE içerik

UYARI Geliştirici için kitap bir giriştir, kaynak değildir. Kod ve veritabanı düzeyinde tek kanonik yer wiki'nin 08_Database/, 09_CodeArchitecture/, 07_BusinessRules/ bölümleri ve türetilmiş TECHNICAL_WIKI/dir. Kitaptaki Seviye 4 kutusu ile wiki çelişirse wiki doğrudur.

1.8 Kaynak hiyerarşisi ve GAP / CTR ne demek

Kitaptaki her somut iddia (ekran adı, işlem tipi kodu, kolon, oran, tarih) bir kaynağa dayanır. Kaynaklar birbirine eşit değildir; çelişki olduğunda üstteki kazanır (kitap sözleşmesi §49):

Sıra Kaynak Örnek Kanıt biçimi
1 Çalışan kod Cari.AcceptTransaction tetikleyicisi, iFBorc.vb SOURCE_CODE:path:line, DB_OBJECT:Schema.Name
2 Veritabanı tanımı Cari.Islemler kolon listesi, Sistem.CariIslemKodu kod tablosu DB_OBJECT
3 Gerçek veri İki kurulumun işlem sayımları (V2 1,5 M, KUYUMCU 655 bin satır) DB_QUERY:<açıklama> (tarih)
4 AIFASOFT resmi doküman / web Süreç dokümanları (PROC-), aifasoft.com DOCUMENT:path#bölüm, PROCESS:PROC-
5 Destek / ticket 13.681 çağrı, playbook'lar, bilinen sorunlar TICKET_THEME:PRB-, SUPPORT_OBSERVED
6 Önceki AI analizleri Eğitim kitapçığı, KB-v1 DERIVED:<yol>

Sektör ve finans bilgisi için genel kabul (SECTOR_KNOWLEDGE) yeterlidir; ama güncel kur, oran ve mevzuat rakamı kitapta yazılmaz. Kitaptaki her sayı örnektir; mevzuat için kaynak ve tarih yoksa GAP-MEVZUAT yazılır, kesin hüküm verilmez.

GAP görürsen: kaynaklarda o bilgi yok demektir. Örneğin AIFASOFT'un kuruluş yılı, çalışan sayısı ve organizasyon şeması hiçbir iç kaynakta yer almıyor (GAP-AIFA-01); web sitesi "2000'den beri" diyor ama bu iç kaynakla doğrulanamadığından kitap "web sitesi böyle diyor" der, "AIFASOFT 2000'de kuruldu" demez. GAP bir eksiklik itirafıdır; sorunun cevabını bilen kişi wiki'nin governance dosyasına (../ERPGOLD_WIKI/00_Governance/KNOWN_GAPS.md) ekletmelidir.

CTR görürsen: iki güvenilir kaynak farklı şey söylüyor demektir. Örneğin doküman "MAHSUP tipli işlem yalnız stok üretir" der, tetikleyici ise MAHSUP için operasyonel stok/bakiye kaydı üretmez ve 1.581 gerçek MAHSUP satırının sıfır stok hareketi vardır (CTR-004, ../ERPGOLD_WIKI/00_Governance/CONTRADICTIONS.md). Kitap böyle bir yerde iki tarafı da yazar ve hiyerarşiye göre hangisinin muhtemelen doğru olduğunu belirtir (kod > doküman). CTR'yi gördüğün yerde müşteriye kesin cümle kurma; önce kaynağı oku.

BUNU KARIŞTIRMA GAP ≠ CTR. GAP "bilmiyoruz", CTR "iki farklı şey biliyoruz" demektir. GAP'te cevap aranır; CTR'de hangi kaynağın doğru olduğu kanıtlanır.

1.9 Kitabı nasıl okumalı

  1. Sırayla oku. Bölümler zincirdir; Bölüm 6'daki "peşin bakiye üretmez" cümlesi Bölüm 2'deki "cari nedir" olmadan anlamsızdır.
  2. Seviye 4'ü atlayabilirsin. Katlanmış "Seviye 4 — Teknik" kutuları ilk okumada kapalı kalabilir. Destek ya da geliştirici olduğunda geri dön.
  3. Kutuları atlama. PEKİ NEDEN ve BUNU KARIŞTIRMA kutuları sınavların yarısını taşır.
  4. Sözlüğü yanında tut. Bilmediğin terimi Bölüm 8'de ara; oradan wiki 18_Glossary/ maddesine gidebilirsin.
  5. Her bölüm sonunda üç şey var: Bölüm sonu sınavı (Kolay 5 / Orta 5 / Senaryo 5), Cevap anahtarı (her cevap 1–3 cümle + kaynak) ve "Bunu anladıysan devam et" onay listesi. Onay listesinde işaretleyemediğin madde varsa o başlığa dön.
  6. Sayıları ezberleme. Kitaptaki kurlar, gram ve tutarlar örnek işletmeye aittir; ezberlenecek olan hesabın yoludur (has = miktar × milyem, tutar = has × kur…).
  7. Bağlantıları kullan. Bir cümlenin kaynağını merak edersen KAYNAK kutusundaki makaleye git; göreli yollar kitabın kökünden (`) verilmiştir: wiki../ERPGOLD_WIKI/..., teknik wikiTECHNICAL_WIKI/...`.

1.10 Kendini sına — ön test

Bu test kitaptan önce çözülür. Amaç not vermek değil, hangi bölüme daha çok zaman ayıracağını göstermektir. Her sorunun altında, cevabı bilmiyorsan hangi bölüme gideceğin yazıyor. Cevaplar §1.11'de.

  1. Bir kuyumcu "Selim bana 150 gram borçlu" diyor. Bu 150 gram, bilezik gramı mı, has gramı mı? Neden fark eder? → Bilmiyorsan: Bölüm 2 (has, milyem, ayar).
  2. Döviz bürosunun tabelasında "USD alış 40,00 / satış 40,20" yazıyor. Sen 100 dolar bozdurmak istiyorsun; büro sana kaç TL verir? → Bölüm 2 (alış/satış kuru, kimin bakışından).
  3. Perakende kuyumcu ile toptancının çalışma biçimi arasındaki temel fark nedir? ("peşin" ve "cari" kelimelerini kullan.) → Bölüm 3 (sektör iş türleri).
  4. "Stok" ile "bakiye" aynı şey midir? Bir müşteriye veresiye 10 gram has satınca hangisi değişir, hangisi değişmez? → Bölüm 6 (defter üretimi), giriş için Bölüm 1 §1.3.
  5. AIFASOFT ne üretir? ERPGOLD üçüncü taraf bir program mıdır? → Bölüm 4 §16.
  6. ERPGOLD'u hangi tür işletmeler kullanır? En az üç tür say. → Bölüm 4 §17.
  7. ERPGOLD'da bir işlem yapmak için ekranda sırasıyla ne seçilir? (İpucu: hesap, kasa, tarih…) → Bölüm 5 (işlem ekranı), önizleme Bölüm 4 §17 "Nasıl".
  8. Kullanıcı "işlemi kaydettim ama bakiye kartında görünmüyor" diyor. İlk aklına gelmesi gereken soru hangisi: (a) tetikleyici bozuk, (b) işlem tipi peşin mi, (c) yedek alınmamış? → Bölüm 6 (işlem tipleri), Bölüm 4 §17 "Destek nasıl çalışır".
  9. Bir işletme ERPGOLD'a Pazartesi sabahı ilk kez başlıyor; kasasında 500.000 TL ve 2.000 g has var. Bu başlangıç durumu programa hangi hesap üzerinden girilir? → Bölüm 4 §18 (açılış / DEVİR).
  10. Kitapta bir cümlenin yanında CTR-004 yazıyor. Bu ne anlama gelir; o cümleyi müşteriye olduğu gibi söyler misin? → Bu bölüm §1.8.

1.11 Ön test cevap anahtarı

  1. Has gramıdır. Kuyumcu borcu saf altın cinsinden tutar; bilezik gramı milyemle çarpılarak hasa çevrilir (150 g 22 ayar bilezik ≈ 137,4 g has). Kaynak: ../ERPGOLD_WIKI/02_Sector/Concepts/SEC-HAS.md, SEC-MILYEM.md.
  2. 4.000 TL. Sen satıyorsun, büro alıyor; büronun alış kuru geçerlidir (100 × 40,00). ERPGOLD'da yön her zaman işletmenin bakışıyla yazılır. Kaynak: ../ERPGOLD_WIKI/02_Sector/BusinessTypes/SEC-DOVIZ-BUROSU.md, 18_Glossary/TERM-ALIS-SATIS-KURU.md.
  3. Perakendeci son tüketiciye peşin satar (para o anda el değiştirir, ilişki biter); toptancı başka kuyumculara cari hesapla satar (bakiye birikir, ay sonu mutabakat). Kaynak: SEC-PERAKENDE-KUYUMCU.md, SEC-TOPTANCI.md.
  4. Hayır. Stok, kasadaki fiziksel mal; bakiye, bir hesabın bize borcu/alacağı. Veresiye 10 g has satışta stok 10 g azalır ve müşteri bakiyesi 10 g borçlu olur; peşin satışta stok azalır, bakiye değişmez. Kaynak: ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md.
  5. AIFASOFT, ERPGOLD'un üreticisidir; ERPGOLD üçüncü taraf değil, şirketin kendi ürünüdür. Kaynak: ../ERPGOLD_WIKI/01_AIFASOFT/AIFASOFT.md.
  6. Kuyumcu (perakende, toptancı, sarraf, üretici/atölye), rafineri/ayar evi, döviz bürosu (yetkili müessese), kıymetli maden ticareti yapan firma. İki canlı kurulum profili: döviz bürosu ve kuyumcu/rafineri. Kaynak: ../ERPGOLD_WIKI/02_Sector/BusinessTypes/, 03_ERPGOLD_Product/VARIANT_MATRIX.md.
  7. Cari İşlemler ekranında Hesap Adı seçilir, Kasa ve Tarih kontrol edilir, TAMAM; sonra şeritten işlem türü (MADEN, NAKİT…) seçilir, alanlar doldurulur, F2 ile kaydedilir. Kaynak: ../ERPGOLD_WIKI/05_Screens/SCR-IFTRANSACTION.md.
  8. (b). Peşin (tip 1) işlem bakiye defteri üretmez; bu bir hata değil kuraldır. Tetikleyici şüphesi en sona kalır; toptan bakiye onarım aracı hiçbir koşulda çalıştırılmaz. Kaynak: BR-DEFTER-URETIMI.md, ../ERPGOLD_WIKI/12_Support/Playbooks/PB-028.md.
  9. DEVİR adlı özel cari hesap üzerinden (hesap türü Devir). Stoklar MADEN/NAKİT giriş ile, cari açılış bakiyeleri BORÇ İŞLEMLERİ (KODU DEVİR) ile girilir; işlem tipi konusunda doküman ile kod çelişir (CTR-004), Bölüm 4 §18 iki tarafı da anlatır. Kaynak: ../ERPGOLD_WIKI/13_Training/Scenarios/SCN-DEVIR.md.
  10. CTR = çelişki. Doküman ile kod/veri farklı şey söylüyor; kitap iki tarafı da verir. Müşteriye kesin cümle kurmadan önce 00_Governance/CONTRADICTIONS.md'deki CTR-004 okunur ve kaynak hiyerarşisi (kod > doküman) uygulanır.

Değerlendirme: 8–10 doğru → Bölüm 2–3'ü hızlı geç, Bölüm 4'ten dikkatle başla. 5–7 doğru → sırayla oku. 0–4 doğru → tam olarak bu kitabın yazıldığı okursun; Bölüm 2'den başla, Seviye 4 kutularını kapalı tut.

Bunu anladıysan devam et

2. Para, Döviz, Altın ve Piyasalar

Bu bölüm iki yarımdan oluşur: §3–5 para, döviz ve altın; §8–12 piyasalar, uluslararası piyasalar, borsa, hedge ve pozisyon. Her yarımın kendi sınavı vardır.

§3 Para nedir?

Bu bölüm, kitabın geri kalanının üzerine kurulduğu üç temeli anlatır: para, döviz ve altın. ERPGOLD bir kuyumcu ve döviz bürosu programıdır; ekranlarındaki her rakam bu üç şeyden birini ölçer. Önce paranın kendisiyle başlıyoruz — çünkü kuyumcunun altını da, döviz bürosunun doları da aslında birer "para"dır ve ERPGOLD ikisini aynı listede tutar.

KAYNAK — Bu bölümdeki sektör anlatımı SECTOR_KNOWLEDGE (genel kabul) niteliğindedir; ERPGOLD'a ilişkin her somut iddia (tablo, ekran, kolon, satır sayısı) kanonik wiki makalelerine bağlanmıştır. Bölümdeki bütün kurlar ve fiyatlar ÖRNEK ALTIN A.Ş. örnek kurlarıdır, güncel değildir: USD/TL 40,00 alış / 40,20 satış · EUR/TL 46,00 / 46,30 · Has altın gramı 4.000 TL alış / 4.030 TL satış · Ons 3.100 USD (1 ons = 31,1035 g) · 22 ayar işçilik 150 TL/g.

3.1 Takas dünyasından paraya

Seviye 1 — Çok basit

Bir köy düşün. Ali çiftçi, buğday yetiştiriyor. Mehmet ayakkabıcı. Ali'nin ayakkabıya ihtiyacı var; Mehmet'in de ekmeğe. İkisi anlaşır: bir çuval buğday, bir çift ayakkabı. Buna takas denir.

Takas üç yerde tıkanır:

  1. İstek uyuşmazlığı: Mehmet o hafta buğday istemiyorsa Ali ayakkabısız kalır. Ali'nin önce "buğday isteyen bir ayakkabıcı" bulması gerekir.
  2. Bölünemezlik: Bir çift ayakkabı yarım çuval buğday ediyorsa Mehmet ayakkabının yarısını veremez.
  3. Saklanamazlık: Ali hasadını bugün satmalı; buğday çürür. Kışın ayakkabı almak için "değeri" bir yerde biriktiremez.

Köy bir gün şunu keşfeder: herkesin kabul ettiği, bozulmayan, bölünebilen, taşınabilen tek bir şey seçilirse bu üç sorun ortadan kalkar. Ali buğdayını o şeye çevirir, o şeyle ayakkabı alır; artanı saklar. O şey paradır. Tarih boyunca bu rolü tuz, deniz kabuğu, gümüş ve en çok da altın oynadı — çünkü altın paslanmaz, kolay bölünür, az bulunur ve her yerde tanınır.

Seviye 2 — İşletme mantığı

Kapalıçarşı'daki bir kuyumcu için takas hâlâ yaşıyor: müşteri eski bileziğini getirip yerine yeni bir kolye ister. İki mal birbirine benzemez: biri 22 ayar 18 gram, öteki 14 ayar 30 gram. Kuyumcu bu takası nasıl adil yapar? İkisini de ortak bir paydaya çevirerek: has altın gramı (§5'te anlatılacak). Yani kuyumcu, köyün yaptığı şeyi tezgâhta her gün yapar: farklı malları tek bir ölçüye indirir.

Döviz gişesinde de aynı şey vardır: müşteri euro verir, dolar ister. Büro ikisini ortak bir paydada (TL veya doğrudan bir oran, parite) karşılaştırır (§4.4).

3.2 Paranın üç görevi

Ekonomi kitapları paranın üç görevini sayar. Üçünü de kuyumcu diliyle okuyalım:

Görev Ne demek? Ali–Mehmet örneği Kuyumcu / döviz bürosu örneği
Değişim aracı Alışverişte aracı olur; iki tarafın birbirinin malını istemesi gerekmez. Ali buğdayı paraya çevirir, parayla ayakkabı alır. Müşteri TL verir, çeyrek altın alır.
Hesap birimi Her şeyin fiyatı onunla söylenir; farklı malları karşılaştırmayı sağlar. Ayakkabı 500, buğday 300 — hangisi pahalı belli. Bilezik 76.000 TL, kolye 58.000 TL. Ama dikkat: kuyumcu çoğu zaman has gramı hesap birimi olarak kullanır ("bu bilezik 18,3 has eder").
Değer saklama Bugünkü emeği yarına taşır. Ali hasadın parasını kışa saklar. Müşteri düğünde altın takar; kuyumcu kârını has olarak biriktirir.

PEKİ NEDEN? Neden kuyumcu fiyatı TL yerine has gramla düşünür? Çünkü altının TL fiyatı her gün değişir ama 1 gram has her gün 1 gram has'tır. Kuyumcunun stoğu, borcu ve alacağı altın cinsinden olduğu için "kaç TL" sorusu her sabah değişir, "kaç gram has" sorusu değişmez. ERPGOLD bu yüzden bakiyeyi HAS biriminde tutabilir ve müşteri hesabında "150 g HAS borçlu" yazabilir (bkz. §5.8 ve Bölüm 4 bakiye). TL, kuyumcu için sadece birimlerden biridir; altın da bir "para"dır.

3.3 Paranın biçimleri

Biçim Tanım Örnek ERPGOLD'da yeri
Emtia para Kendisi de değerli olan bir mal para olarak kullanılır. Altın sikke, gümüş akçe. Ziynet altını (çeyrek, yarım) hem mal hem ödeme aracıdır; has bakiyesi "altınla ödeme" demektir.
İtibari para (fiat) Devletin "bu paradır" dediği, kendi değeri olmayan kâğıt/madenî para. TL, USD, EUR banknotları. Sistem.Birimler listesindeki para birimleri; kasadaki nakit kartları.
Nakit (efektif) Elde tutulan fiziksel banknot ve bozukluk. Kasadaki 500.000 TL. NAKİT ekranı; Stok.Nakit kartları (kasa).
Banka parası (kaydi para) Banka hesabındaki bakiye; fiziksel değil, kayıttır. Havale, EFT. Banka hesapları ayrı modülde (Bölüm 5); döviz bürosu efektif ile kaydiyi ayrı fiyatlar.
Dijital para Elektronik ödeme sistemleri, kripto varlıklar. Kart ödemesi, dijital cüzdan. Bu kitabın kapsamı dışında; ERPGOLD'un çekirdeğinde kripto birimi yoktur (GAP — ileride bir "birim" olarak tanımlanabilir mi, doğrulanmadı).

Emtia para ile itibari paranın farkı kuyumcu için hayatidir: TL'nin değeri devletin ve piyasanın güvenine bağlıdır; altının değeri kendisindedir. Bu yüzden enflasyon dönemlerinde insanlar TL'yi altına çevirir; kuyumcunun işi de tam bu iki dünya arasındaki köprüdür.

Seviye 3 — ERPGOLD (nakit ve kasa)

ERPGOLD'da "nakit", kasadaki fiziksel paradır ve her para birimi için ayrı bir nakit kartı açılır: MERKEZ kasası TL, MERKEZ kasası USD, ŞUBE-2 kasası TL… Nakit hareketleri NAKİT ekranından yapılır (SCR-IFNAKIT; kavram: SEC-NAKIT): tahsilat, ödeme, döviz alış-satışı. Banka hesabı ise nakit değildir; ayrı bir modülde (banka hesapları) izlenir ve kasa sayımına girmez. Döviz kurulumu işlemlerinin %83'ü NAKİT ekranından geçer (BOOK_BRIEF çekirdek gerçeği); kuyumcu kurulumunda bu oran çok daha düşüktür, çünkü kuyumcunun "parası" çoğunlukla altındır.

BUNU KARIŞTIRMAKasa ≠ Cari. Kasa, işletmenin kendi elindeki paradır (nakit kartı); cari, müşteriyle arasındaki borç-alacaktır (bakiye). Döviz Nuri'ye 5.000 USD borçlu olmamız kasada 5.000 USD eksik olduğu anlamına gelmez; kasada 100.000 USD durabilir. Bu ayrım Bölüm 4'te (bakiye) ve Bölüm 5'te (kasa) derinleşir.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Nakit kartları Stok.Nakit (TBL-STOK.NAKIT): her kart bir kasa (KasaIdSistem.Kasalar) ve bir birim (AnaBirimIdSistem.Birimler) taşır; tanım ekranı SCR-FRMNAKITEKLE. Peşin işlemde Cari.Islemler.BirimId bu kartın Id'sidir; tetikleyici nakit stoğunu Stok.StokHaraketleri (StokTipi 2) ile günceller. Kasa tanımı: TBL-SISTEM.KASALAR, SCR-FRMKASAEKLE. Nakit raporları: Nakit Stok Hareket (RPT-9), Nakit Stok Özet (RPT-10) — SEC-DOVIZ rapor listesi.

3.4 Altının tarihsel rolü

Altın binlerce yıl doğrudan para oldu (sikke). Sonra kâğıt para çıktı ama uzun süre "altına çevrilebilir" kaldı: bankaya kâğıdı götürüp altın alabiliyordunuz (altın standardı). 20. yüzyılın ikinci yarısında bu bağ koptu; bugün paralar itibaridir, altın ise "para gibi davranan bir mal"dır: merkez bankaları rezerv olarak tutar, uluslararası piyasada ons başına USD olarak fiyatlanır ve Türkiye'de tezgâhta gram başına TL olarak alınıp satılır.

Kuyumcu için sonuç şudur: altının fiyatı iki kurun çarpımıdır — dünya ons fiyatı (USD) ve USD/TL kuru. Bu yüzden döviz bilmeden altın fiyatı anlaşılamaz; §4 ve §5 bu zinciri kurar.

GAP-MEVZUAT — Altın standardının kalkış tarihi, TCMB rezerv politikası ve Darphane'nin sikke basım kuralları bu kitapta kaynak+tarih ile doğrulanmamıştır; tarihsel anlatım genel bilgi düzeyindedir, hüküm içermez.

3.5 ERPGOLD'da "birim": TL, USD, EUR ve ALTIN aynı listede

Seviye 1 — Çok basit

Ali'nin cüzdanında TL, dolar ve bir çeyrek altın var. Hepsi ayrı "cins"tir; birini ötekiyle toplayamazsın ("100 TL + 100 USD = 200" diyemezsin). Ama hepsi Ali'nin "parası"dır. ERPGOLD, kuyumcunun cüzdanını tam böyle görür: TL bir cins, USD bir cins, EUR bir cins, HAS (altın) bir cins. Her cinsin ayrı bir sayacı vardır.

Seviye 2 — İşletme mantığı

Kuyumcu her sabah kasasına baktığında dört ayrı soru sorar: "Kaç TL var? Kaç USD? Kaç EUR? Kaç gram has?" Cevaplar birbirine çevrilebilir (kurla) ama toplanmaz. Müşteri borçları da böyledir: Kuyumcu Selim bize 150 g HAS borçluysa bu "150 g has"tır; TL'ye çevirisi her gün değişir, borç değişmez.

Döviz bürosunda cinsler daha çoktur (döviz kurulumunda 131 para birimi kartı — kitapçık §9.1) ama mantık aynıdır: her para birimi ayrı sayaç.

Seviye 3 — ERPGOLD

ERPGOLD'da bu cinslere birim denir. Birim listesi ANA MENÜ ▸ Tanımlamalar ▸ Sistem Tanımları ▸ Birim Listesi ekranından açılır (Birim Tanımlama Ekranı). Bir birimin ekranda görünen alanları: Kodu (TL, USD, EUR, HAS, GUM…), Açıklama, Sıra No, Çarpan, Metal (bu birim kıymetli maden mi), Sabit (bakiyesi sıfır olsa da listede görünsün), Computed (başka birimden hesaplanan türev birim).

Kritik nokta: para ile maden aynı listededir. HAS (altın), GUM (gümüş), PLT (platin), PLD (paladyum) birer birimdir; onları TL ve USD'den ayıran tek şey "Metal" işaretidir. Bu tasarım sayesinde:

  • Müşteri bakiyesi TL'de de HAS'ta da tutulabilir (aynı hesapta birden çok birim).
  • Kur listesinde HAS'ın da bir alış/satış kuru vardır ("has kuru" — §4.5).
  • Bir işlemin "paranın tarafı" (BİRİM alanı) TL olabildiği gibi HAS da olabilir: "600 g 22 ayar bilezik sattım, karşılığı HAS bakiyesine yazılsın" mümkündür.

BUNU KARIŞTIRMABirim ≠ Nakit kartı. Birim bir cinstir (USD); nakit kartı o cinsin bir kasadaki stoğudur (MERKEZ kasası USD). Peşin işlemde işlem satırındaki BİRİM alanı bir nakit kartına, cari işlemde ise birim listesine bağlanır (TERM-BIRIM). Aynı şekilde Para ≠ Nakit: TL bir birimdir, kasadaki TL nakittir; banka hesabındaki TL de aynı birimdir ama nakit değildir.

ÖRNEK ALTIN A.Ş. — Pazartesi sabahı MERKEZ kasasında dört birim var: TL 500.000 · USD 100.000 · EUR 20.000 · HAS (stoktaki altının has karşılığı) 2.000 + 1.374 + 468 + 210 = 4.052 g. Ayşe Hanım "kasada ne var?" diye sorduğunda Mehmet dört sayı söyler, tek sayı değil. Ali Bey (muhasebe) bunları TL'ye çevirmek isterse örnek kurlarla: 500.000 + 100.000 × 40,00 + 20.000 × 46,00 + 4.052 × 4.000 = 500.000 + 4.000.000 + 920.000 + 16.208.000 = 21.628.000 TL (örnek kur, güncel değil). Yarın kur değişince bu toplam değişir; dört sayaç değişmez.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Birim tanımları Sistem.Birimler tablosundadır: V2 örnek DB'de 133 satır (TBL-SISTEM.BIRIMLER). Önemli kolonlar: Kodu (nvarchar(15), ekrandaki kısa kod), IsMetal (bit — altın/gümüş/platin/paladyum), Carpan (decimal(18,5) — ana birime çevirme çarpanı), IsComputed/ComputedBirimId/ComputedCarpan (türev birim, ör. ons), IsStatic (bakiye sıfırken de görünsün), AnaBirimId, AlisFormul/SatisFormul (türev birim formülü; kullanım skoru düşük).

Örnek kimlikler (TERM-BIRIM-KODLARI): 1 HAS (metal), 2 GUM, 3 USD, 4 EUR, 5 TL, 11 GBP, 20 PLT, 21 PLD. Program ayarları (HasSymbol, GumSymbol, UsdSymbol, EurSymbol…) bu kodları sembol olarak eşler (CONFIGURATION).

Ekran → DAO → tablo zinciri: FrmBirimEkleAIO.Sistem.Birim (Insert/Update/DeleteAt) → Sistem.Birimler; silme yumuşaktır (IsDeleted). Tabloyu 7 görünüm, 80 fonksiyon ve 10 prosedür okur; Cari.AcceptTransaction tetikleyicisi de birim bilgisine bakar (TBL-SISTEM.BIRIMLER bağımlılık kataloğu).

İşlem satırındaki Cari.Islemler.BirimId "paranın tarafı"dır: peşin işlemde bir Stok.Nakit Id'si (kasa stoğu), cari işlemde bir Sistem.Birimler Id'si; 0 = para tarafı yok (FIELD-CARI-ISLEMLER-BIRIMID, TERM-BIRIMID-PARA-TARAFI). Bakiye defteri Cari.BakiyeIslem.BirimId her zaman Sistem.Birimler'e bakar.

Gerçek veri (2026-09-12 matris, _data/islem_matrisi.json birim_dagilimi): döviz kurulumunda NAKİT satırlarının birimi TL 788.454 · USD 295.298 · EUR 146.062 · GBP 9.373 · CHF 3.484 · 30'dan fazla başka para birimi 8.000; kuyumcu kurulumunda MADEN satırlarının birimi HAS 152.349 · GUM 577 — yani kuyumcuda altın işleminin "para tarafı" çoğunlukla yine altındır.


§4 Para birimleri ve döviz

4.1 Para birimleri

Her ülkenin (veya bölgenin) kendi itibari parası vardır: Türkiye'de TL (Türk lirası), ABD'de USD (dolar), Avro bölgesinde EUR, Birleşik Krallık'ta GBP (sterlin), İsviçre'de CHF (frank), Körfez'de SAR, AED… Üç harfli kodlar uluslararası standarttır (ISO 4217; kitap bunu kaynak+tarih ile doğrulamadı, genel bilgi).

Kuyumcu/döviz bürosu için para birimlerinin önemi şudur: her biri ayrı sayaçtır (§3.5) ve her birinin TL cinsinden bir fiyatı vardır. O fiyata kur denir.

Hangi para birimleri gerçekten iş görür? Döviz kurulumunun NAKİT satırları (2026-09-12 matris, birim_dagilimi) cevabı verir:

Birim NAKİT satırı (V2) Pay Yorum
TL 788.454 %63 Her döviz işleminin karşı tarafı çoğunlukla TL'dir
USD 295.298 %24 Ana döviz
EUR 146.062 %12 İkinci döviz
GBP 9.373 %0,7
CHF 3.484 %0,3
Diğer (30+ birim) 8.000 %0,6 SAR, AED, AUD, CAD, JPY, NOK… — kart var, hacim küçük

Yani "131 para birimi kartı" tanımlı olsa da hacmin %99'u dört birimdedir. Kuyumcu kurulumunda NAKİT satırlarında TL 78.409, USD 26.904, EUR 22.673, GBP 3.243, CHF 2.101, SAR 1.049 görülür — kuyumcu da döviz kabul eder ama ana parası altındır (MADEN satırlarının birimi HAS 152.349).

4.2 Döviz nedir?

Seviye 1 — Çok basit

Ali yurt dışına gidecek; cebinde TL var ama orada TL geçmez. Bir dükkâna girer, TL verir, dolar alır. O dükkân bir döviz bürosu, aldığı dolar döviztir. Döviz = yabancı para.

Seviye 2 — İşletme mantığı

Döviz bürosu iki şey yapar: müşteriden döviz alır, müşteriye döviz satar. Kazancı, alırken verdiği fiyat ile satarken aldığı fiyat arasındaki farktır (§4.3). Sektörde "döviz" çoğunlukla efektif (banknot) anlamındadır; banka hesabındaki döviz kaydi dövizdir ve fiyatı ile mevzuatı ayrıdır (SEC-DOVIZ).

En çok karıştırılan nokta bakış açısıdır: müşteri "dolar aldım" der; büro için bu bir satıştır. ERPGOLD ekranları her zaman işletmenin bakışıyla yazar. Bu kitapta da öyle: "alış" = işletme alıyor, "satış" = işletme satıyor.

BUNU KARIŞTIRMAMüşterinin alışı ≠ İşletmenin alışı. Döviz Nuri gişeye gelip 1.000 USD alırsa, Mehmet ERPGOLD'a bunu USD SATIŞ olarak girer. Yönü ters yazan yeni çalışan, kasadaki USD'yi azaltacağına artırır; gün sonu sayımı tutmaz.

ÖRNEK ALTIN A.Ş.'de döviz işi gişede döner: Döviz Nuri düzenli müşteridir ve bize 5.000 USD alacaklıdır (yani biz ona borçluyuz); bu bakiye §3.5'teki "USD sayacı"nın müşteri hesabındaki karşılığıdır.

4.3 Kur, alış kuru, satış kuru ve spread

Seviye 1 — Çok basit

Kur, bir paranın başka bir para cinsinden fiyatıdır. "USD/TL 40,00" demek, 1 doların 40 TL ettiği demektir. Elma kilosu 40 TL gibi; burada mal dolardır.

Ama döviz bürosunun vitrininde tek sayı yoktur, iki sayı vardır: "USD alış 40,00 — satış 40,20". Büro senden doları 40,00'a alır, sana doları 40,20'ye satar. Aradaki 0,20 TL'ye spread (makas, marj) denir.

Seviye 2 — İşletme mantığı

Neden iki kur? Çünkü büro bir aracıdır; malı (doları) ucuza alıp pahalıya satarak yaşar. Manav elmayı toptancıdan 30'a alıp 40'a satar; büro da doları 40,00'a alıp 40,20'ye satar. Fark, büronun kirasını, personelini, riskini ve kârını karşılar.

Spread neden değişir? - Risk: Kur hızlı oynuyorsa büro makası açar; elindeki dolar bir saat sonra değer kaybedebilir. - Hacim: Sık işlem gören para (USD, EUR) dar makasla, nadir para (ör. NOK) geniş makasla satılır. - Rekabet: Kapalıçarşı'da yan yana beş büro varsa makas daralır. - Miktar: Toptan (büyük) işlemde makas daralır; bu yüzden ERPGOLD'da sistem kuru (toptan) ile pano kuru (perakende, marjlı) ayrıdır (§4.5).

Spread aynı zamanda büronun pozisyon riskiyle ilgilidir: gün içinde çok dolar alıp az sattıysa elinde fazla dolar kalır; kur düşerse zarar eder. Bu konu Bölüm 6'da (pozisyon) açılır.

PEKİ NEDEN? Neden alış kuru her zaman satış kurunun altındadır? Tersi olsaydı büro her işlemde zarar ederdi: 40,20'ye alıp 40,00'a satmak, her dolarda 0,20 TL kaybetmektir. Bu yüzden ekranda "alış > satış" görürsen ya kur girişinde hata vardır ya da kur listesi bozuktur (destek teması PRB-KUR-000: "pano/fiyat" çağrıları — PRB-KUR-000).

BUNU KARIŞTIRMAAlış kuru ≠ Satış kuru. İşletme alırken alış kurunu, satarken satış kurunu uygular. Müşteri 1.000 USD satıyorsa işletme alıyordur → 40,00 → müşteriye 40.000 TL ödenir. Müşteri 1.000 USD alıyorsa işletme satıyordur → 40,20 → müşteriden 40.200 TL alınır. İkisi arasındaki 200 TL büronun brüt kazancıdır.

ÖRNEK ALTIN A.Ş. — Salı öğlen gişeye iki müşteri gelir (örnek kur, güncel değil): 1. Döviz Nuri 1.000 USD alır → işletme USD satar → 1.000 × 40,20 = 40.200 TL tahsil. Kasa: USD −1.000, TL +40.200. 2. Bir turist 1.000 USD bozdurur → işletme USD alır → 1.000 × 40,00 = 40.000 TL öder. Kasa: USD +1.000, TL −40.000. Gün sonunda USD sayacı başladığı yerdedir (100.000), TL sayacı +200 TL: bu, iki işlemin spread kazancıdır. Mehmet ikinci işlemi yanlışlıkla 40,20'den yazsaydı kazanç sıfır çıkardı — bu yüzden ERPGOLD, girilen fiyat sistem kurundan belli bir yüzdeden fazla saparsa uyarır (BR-KUR-007, §4.5).

Satış tutarı (işletme satıyor)  = Miktar × Satış kuru   = 1.000 × 40,20 = 40.200 TL
Alış tutarı  (işletme alıyor)   = Miktar × Alış kuru    = 1.000 × 40,00 = 40.000 TL
Spread kazancı (çift yön)       = Miktar × (Satış − Alış) = 1.000 × 0,20 = 200 TL
Spread oranı                    = (40,20 − 40,00) ÷ 40,00 = %0,5

Seviye 3 — ERPGOLD

Kur, ERPGOLD'da günlük kur listesidir: her birim için tarihli ALIŞ / SATIŞ çifti. İşlem ekranlarındaki FİYAT alanı bu listeden dolar; kullanıcı fiyatı değiştirebilir ama sapma eşiği aşılırsa "fiyat kurdan farklı" uyarısı çıkar. Ayrıntı §4.5'te.

Döviz Nuri'nin 1.000 USD alışı NAKİT ekranında şöyle kaydedilir (SCR-IFNAKIT):

Alan Değer Açıklama
KODU USD Nakit kartı (MERKEZ kasası USD)
TÜR SATIŞ İşletme satıyor (müşteri alıyor)
TİP PEŞİN Para kasadan geçiyor; cari bakiye yazılmaz
MİKTAR 1.000 Dövizin nominal tutarı
FİYAT 40,20 Kur listesinden satış kuru gelir; değiştirilebilir
TUTAR 40.200 MİKTAR × FİYAT, TL
BİRİM TL Karşılığın alındığı nakit kartı

Kayıt sonrası: USD nakit stoğu −1.000, TL nakit stoğu +40.200; satıra kur fotoğrafı (§4.5) yazılır; kâr satırda saklanır: satış değeri 40.200 − maliyet (1.000 × alış 40,00 = 40.000) = 200 TL (SEC-MALIYET; kitapçık §5.2 gerçek fişi aynı deseni gösterir). Aynı işlem müşteri hesabına cari yazılsaydı (TİP NORMAL): kasadan para çıkmaz, Döviz Nuri'nin USD bakiyesi 1.000 artar, TL bakiyesi 40.200 azalır — bkz. Bölüm 4.

Perakende ekranında (SCR-PARAKENDESATIS) FİYAT yöne göre alış/satış kurundan gelir (BR-KUR-005); isimsiz hesaba 7.000 TL üstü ve 3.000 USD üstü işlemlerde onay/kimlik kuralları vardır (BR-PERAKENDE-001, BR-PERAKENDE-002) — eşikler kodda sabittir, güncel mevzuatla uyumu doğrulanmadı (GAP-MEVZUAT). Döviz satışında BSMV hesaplanır (TERM-BSMV; oran ve dayanak tarihi doğrulanmadı — GAP-MEVZUAT).

BUNU KARIŞTIRMAKur ≠ Fiyat. Kur, listedeki gün değeridir; FİYAT ise o işlemde gerçekten uygulanan değerdir. Mehmet iyi müşteriye 40,15 verebilir; kur 40,20 kalır, fiyat 40,15 yazılır. Sapma "İşlem Kur Farkı (%)" eşiğini aşarsa program sorar, ama engellemez (BR-KUR-007).

4.4 Çapraz kur ve parite

Seviye 1 — Çok basit

Ali'nin elinde euro var, dolar istiyor. İki yol var: - Uzun yol: Euroyu TL'ye boz, TL ile dolar al. İki işlem, iki makas. - Kısa yol: Euroyu doğrudan dolara çevir. Bunun için "1 euro kaç dolar?" sorusunun cevabı gerekir. O cevaba parite (çapraz kur) denir: EUR/USD 1,15 → 1 euro 1,15 dolar.

Seviye 2 — İşletme mantığı

Parite, iki yabancı paranın birbirine oranıdır; TL'ye uğramaz. Ama büro kendi paritesini kendi kurlarından türetir: euroyu alış kurundan alır, doları satış kurundan verir. Bu yüzden büronun paritesi piyasa paritesinden biraz "kötü"dür — makas iki bacağa gömülüdür (SEC-PARITE).

Büro EUR alıyor (alış 46,00), USD veriyor (satış 40,20):
  Parite (EUR/USD) = 46,00 ÷ 40,20 = 1,1443
  Müşteri 1.500 EUR verir → 1.500 × 1,1443 = 1.716,42 → 1.716 USD alır (tam sayıya yuvarlama — BR-KUR-010)
  TL pivotu = 1.500 × 46,00 = 69.000 TL  =  1.716,42 × 40,20  ✓  (TL kasadan geçmez, yalnız hesap köprüsüdür)

Ters yön — büro USD alıyor (40,00), EUR veriyor (46,30):
  1.716 USD × 40,00 = 68.640 TL → ÷ 46,30 = 1.482,5 EUR
  Müşteri 1.500 EUR verip geri 1.482,5 EUR alabilir: 17,5 EUR fark = iki bacağın makası.

Sektörde bu işleme arbitraj denir (finans literatüründeki "risksiz kâr" anlamı değil; tezgâh dilinde arbitraj = döviz-döviz takas — SEC-ARBITRAJ).

BUNU KARIŞTIRMAKur ≠ Parite. Kur bir birimin TL (ana birim) fiyatıdır: USD/TL 40,00. Parite iki yabancı paranın birbirine oranıdır: EUR/USD 1,1443. Kurdan parite türetilir (46,00 ÷ 40,20), ama parite tek başına TL söylemez. Parite ≠ Arbitraj: parite orandır, arbitraj o oranla yapılan işlemdir.

BUNU KARIŞTIRMAÇarp ≠ Böl. Bazı çiftler ters yazılır (EUR/USD ile USD/JPY gibi). EUR/USD'de euro miktarı pariteyle çarpılır; USD/JPY'de dolar miktarı bölünmez, yen miktarı bulunmak için çarpılır ama JPY'den USD'ye giderken bölünür. ERPGOLD parite tanımında bu yüzden Yön (Çarp/Böl) alanı vardır (ENUM-PARITE-YON).

Seviye 3 — ERPGOLD

ERPGOLD'da parite üç şeydir: 1. Tanım tablosu: Parite Tanımlama ekranı (SCR-FRMPARITEEKLE) — BİRİM 1, BİRİM 2, YÖN (Çarp/Böl), değer. 2. NAKİT ekranında bir işlem tipi: tip listesinde PARİTE (X) seçilir; program iki nakit satırı yazar — verilen döviz ve alınan döviz, ikisi de TL karşılığıyla, ikincisi birincisine bağlı (SCR-IFNAKIT, BR-TIP-011). Karşı dövizin nakit stoğu (kasa kartı) yoksa kayıt reddedilir. 3. Ayrı bir ekran: PARİTE ekranı (sınıf adı "döviz" olsa da işlevi iki döviz arası takastır — SCR-IFDOVIZ); ALINACAK / VERİLECEK etiketleri yöne göre değişir.

UYARI — Hacim raporunda arbitrajı tek işlem mi iki işlem mi saydığın raporu ikiye katlar. Tek saymak için ana kayıt satırları (bağ alanı −1) sayılır; döviz hacmi istenirse iki bacak da (kitapçık §5.4; MET-ISLEM-HACMI).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Parite tanımı Sistem.Pariteler (TBL-SISTEM.PARITELER). NAKİT ekranında PARİTE seçimi kod enum'unda IslemTipi = 10'dur (TERM-PARITE-ISLEM-TIPI-10) ama yazılan iki satır NORMAL tiplidir; ikinci satırın VaryantId'si birincinin Id'si, ana satırda −1 (FIELD-CARI-ISLEMLER-VARYANTID, TERM-VARYANT). Formül (BR-TIP-011): TutarTL = Miktar × AnaBirim.Price; Bacak1.Fiyat = TutarTL ÷ Miktar; Bacak2.Miktar = TxtTutar; Bacak2.Fiyat = TutarTL ÷ Miktar2. Hesaplanan kolon IsArbitiraj = (IslemKodu IN (3,6) AND VaryantId<>0).

PARİTE ekranı formülü (BR-KUR-010): TUTAR = Round(FİYAT × MİKTAR ÷ FİYAT2, 0); yön Böl ise (Miktar ÷ Fiyat) ÷ Fiyat2. Veri akışı: FLOW-IFDOVIZ, FLOW-IFNAKIT. Tetikleyici iki bacağı bağımsız işler; nakit PARİTE tipinde tutar bakiyesi × −1 ile yazılır (TRG-CARI.ACCEPTTRANSACTION satır 580–584, "sonradan eklendi" notu).

CTR-02A-02 — Gerçek veride (_data/islem_matrisi.json, 2026-09-12) IslemTipi = 10 satırı iki kurulumda da yoktur (0 satır). NAKİT ekranındaki PARİTE seçimi BR-TIP-011 gereği iki NORMAL (tip 0) satır ürettiği için tip 10 satırda saklanmaz; gözlenen döviz-döviz çiftleri VADELİ ekranından tip −2 ile yazılmıştır (V2: 6/ALIŞ −2 13.001 + 4.535 satır, 6/SATIŞ −2 13.029 + 4.532 satır; KUYUMCU'da yalnız 5 satır). TERM-PARITE-ISLEM-TIPI-10 "tip 10" ifadesini saklanan değer gibi okumak yanıltır; GAP-SEC-PARITE-01 ile aynı konu. Kitap "PARİTE tipi = ekran seçimi, satırda tip 0 + bağ" der.

Kod enum'undaki ARBITIRAJ = 13 tipi veride 0 satırdır (CTR-002/044). Vadeli arbitraj: BR-VADELI-004.

4.5 ERPGOLD'da kur: kur tablosu, kur giriş ekranı, EDS/pano, TCMB ve kur fotoğrafı

Seviye 1 — Çok basit

Ali'nin dükkânında bir kara tahta var; her sabah üstüne "USD 40,00 / 40,20" yazıyor. Gün içinde kur değişirse siliyor, yeniden yazıyor. Ama akşam "sabahki satışı kaçtan yapmıştım?" diye sorarsa tahta cevap veremez — tahtada artık yeni kur var. Bu yüzden Ali her satış fişine o anki kuru da yazar. ERPGOLD'un kur tablosu kara tahtadır; fişe yazılan kur ise kur fotoğrafıdır.

Seviye 2 — İşletme mantığı

İşletmenin üç ayrı kur ihtiyacı vardır ve üçü ERPGOLD'da ayrı yerde durur (SEC-KUR):

Kur türü Ne için? Nereden gelir?
Sistem kuru (toptan / gün kuru) İşlem ekranı fiyatı, has/TL karşılıkları, bakiye ve bilanço çevrimi Elle giriş (Kur Giriş Ekranı) veya EDS akışı
Pano kuru (perakende, marjlı) Vitrin/şube panosundaki müşteri fiyatı Pano ayarları; sistem kuru + marj
TCMB kuru (resmi) Fatura, e-döviz belgesi gibi resmi belgelerde USD karşılığı TCMB servisi

Kur fotoğrafı ise dördüncü kavramdır: her işlem satırına, kayıt anındaki kurlar yazılır; böylece "işlem günkü kur" ile "bugünkü kur" ayrılır. Raporlar geçmiş kârı işlem günkü kurla, bugünkü pozisyonu bugünkü kurla değerler.

PEKİ NEDEN? Neden kur her satıra ayrıca yazılır, tablodan bakılmaz? Çünkü kur tablosu değişir (düzeltilir, kopyalanır, EDS yeniden yazar); işlem ise o anki kurla yapılmış bitmiştir. Satırdaki HAS/USD/EUR kurları olmasa, üç ay sonra "o gün 65 USD'yi kaçtan sattım?" sorusuna cevap veren bir kayıt kalmazdı; kâr raporu bugünkü kurla yeniden hesaplanır ve yanlış çıkardı. Kural: BR-KUR-001 kayıt anında kur fotoğrafı; BR-KUR-003 düzeltmede kur yeniden çekilmez.

Seviye 3 — ERPGOLD

Kur Giriş Ekranı (ANA MENÜ ▸ Hesap Yönetimi ▸ Ayarlar ▸ Kur Giriş Ekranı — SCR-FRMKURGIRISEKRANI): 1. Soldaki tarih gezgininden gün seçilir; başlık "gg.aa.yyyy TARİHLİ KUR LİSTESİ" olur. 2. Kırmızı satırlar o gün için henüz kuru girilmemiş birimlerdir. 3. Satırda Alış yazılır, Enter → Satış, Enter → alt satır. Yalnız bu iki sütun düzenlenir. 4. Liste dünle aynıysa Kopyala dünkü kurları bugüne kopyalar. 5. Bir tarihte kur yoksa ERPGOLD sessizce en son kuru kullanır (TERM-KUR-LISTESI) — yani "kur girmeyi unuttum" hatası ekranda görünmez, fiyat eski kurdan gelir.

EDS / pano akışı: Elektronik Döviz Sistemi (pano yazılımı), belirli aralıkla (≈5 sn) her ürünün alış/satışını doğrudan ERPGOLD'a yazar; pano ürününün Alias'ı ERPGOLD birim koduyla (USD, EUR, HAS…) aynı olmalıdır, değilse kur sessizce yazılmaz (INT-KUR-EDS). Pano ekranları: Döviz Panosu.

TCMB kuru: Yalnız resmi (faturalı) ve mahsup tipli işlemlerde USD karşılığı TCMB'den alınır (girişte alış, çıkışta satış); TCMB'ye erişilemezse sistem kuru sessizce kullanılır (INT-TCMB, BR-KUR-002). Ekran: TCMB kur ekranı; rapor: Merkez Bankası Raporu (RPT-72).

Kur fotoğrafı ekranda: işlem satırında görünmez ama kayıtta durur; Perakende ekranında DÖVİZ KURU alanı bunun USD karşılığını gösterir. İşlem Kur Farkı (%) ayarı: girilen FİYAT sistem kurundan bu yüzdeden fazla saparsa "fiyat kurdan farklı, devam?" sorusu çıkar (BR-KUR-007). Kur listesi raporu: RPT-86.

ÖRNEK ALTIN A.Ş. — Pazartesi sabahı Mehmet kur giriş ekranını açar; USD ve EUR satırları kırmızıdır (EDS gece durmuş). Elle girer: USD 40,00 / 40,20, EUR 46,00 / 46,30, HAS 4.000 / 4.030 (örnek kur, güncel değil). Öğlen Döviz Nuri'ye 1.000 USD satılır; satıra UsdKur 40,00, EurKur 46,00, HasKur 4.000 fotoğraf olarak yazılır. Salı kur 41,00'e çıkar; Pazartesi işlemi raporda hâlâ 40,00 ile görünür — doğru olan da budur. Deniz (destek) Salı "fiyat neden eski?" çağrısı alırsa ilk baktığı yer: EDS Alias eşleşmesi ve kırmızı satırlar.

UYARI — Kur fotoğrafı alış kurlarıyla yazılır (TERM-KUR-FOTOGRAFI); SQL tarafındaki kur fonksiyonu da daima alış döndürür (BR-KUR-008). Program tarafındaki kur okuma fonksiyonunun alış mı satış mı döndürdüğü koddan doğrulanamadı (BR-KUR-001 GAP; kitapçık §4.3 "daima alış" der). Rapor yazarken kur yönünü elle seç.

SIK YAPILAN HATALAR (kur) - Yeni çalışan: Müşterinin alışını işletmenin alışı sanıp yönü ters girmek; sabah kur girmeyi unutup dünkü kurla satmak (ekran uyarmaz). - Müşteri: "Panoda başka fiyat, fişte başka" — pano kuru marjlı perakende fiyatı, fişteki kur sistem kuru; ikisi aynı olmak zorunda değil (TERM-PANO-KURU; GAP-SEC-KUR-01: pano tablosunu tüketen ekran kodda bulunamadı, perakende fiyatı sistem kurundan alıyor — doğrulanmalı). - Destek personeli: EDS Alias ≠ birim kodu → kur sessizce yazılmaz; Sistem.Kurlar'da yılların birikmiş kaydı → EDS yavaşlığı (H-160; PRB-KUR-000 "EDS" 44 çağrı, "Pano" 24). - Geliştirici: Kur fotoğrafını düzeltme ekranında yeniden çekmek (BR-KUR-003 yasaklar); raporda bugünkü kurla geçmiş kârı hesaplamak (CTR-SEC-MALIYET-01 ile ilişkili).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Kur tablosu Sistem.Kurlar (TBL-SISTEM.KURLAR): kolonlar Tarih (date), BirimId (→ Sistem.Birimler.Id), Alis, Satis (decimal(18,5)), LastModify, UserId, IsDeleted. V2'de 22.575, kuyumcuda 8.735 satır (tarih-birim başına bir satır). Yazanlar: FrmKurGirisEkrani.VwKurListesi_ValidateRow (INSERT/UPDATE — ERPPRO/Form/Genel/FrmKurGirisEkrani.vb:70), FrmPano aynı yordam, EDS → Sistem.KurEkle(@Symbol,@Alis,@Satis) prosedürü (SP-SISTEM.KUREKLE; sembol → Sistem.GetBirimToId, 0 dönerse yazmaz). Kopyala → Sistem.KurKopyala (Sistem.GetLastKur görünümünden). Okuma: Sistem.GetKurListesi(tarih) (FN-SISTEM.GETKURLISTESI), Fn.GetKur (FN-FN.GETKUR — alış döndürür, BR-KUR-008), Bilanco.GetKurFarki. Veri akışı: FLOW-FRMKURGIRISEKRANI. Tetikleyici yoktur.

Kur fotoğrafı kolonları Cari.Islemler'de: HasKur, GumKur, PltKur, PldKur, UsdKur, EurKur (decimal(18,5)) — FIELD-CARI-ISLEMLER-HASKUR, FIELD-CARI-ISLEMLER-USDKUR, FIELD-CARI-ISLEMLER-EURKUR. Ek olarak BirimKur = işlem anında Birim para biriminin TL kuru (FIELD-CARI-ISLEMLER-BIRIMKUR) ve IscilikBirimKur = işçilik biriminin kuru (FIELD-CARI-ISLEMLER-ISCILIKBIRIMKUR). Yazılış: DAO Cari.Islem.InsertHasKur = GetKur(HasSymbol) …; UsdKur = (UsdKur=0 ? GetUSDKur() : UsdKur) (BR-KUR-001); resmi/mahsup tipte TCMB.Currency.GetUSDCurrency(Tarih) (dao/Dao/Islem/Cari.Islem.vb:548-611), Catch → Program.GetKur(UsdSymbol). UsdKur BTrans, muhasebe ve müşteri ciro indekslerinde INCLUDE kolonudur (IX_BTRANS01, IX_MuhIslemler*, IX_MusteriCiro) — raporların "işlem günkü USD" için bu kolona yaslandığının kanıtı.

GAP-02A-01 — Bölüm şartnamesi Cari.Islemler.Kur kolonundan söz eder; tabloda Kur adlı kolon yoktur. En yakın karşılık BirimKur (Birim'in TL kuru) ve IscilikBirimKur'dur. Kitap BirimKur der.

Ayarlar: CFG-KURREFRESHINTERVAL (kur yenileme aralığı, 15 sn), CFG-EDS-SQLPROCNAME (CONFIGURATION). Destek playbook'ları: PB-036 (yeni birimde kur yok → FİYAT 0), PB-061 (EDS kesilince elle kur). Süreç: WF-KUR-LISTESI-GUNCELLEME.


§5 Altın ve kıymetli madenler

5.1 Altın nedir, neden değerlidir?

Seviye 1 — Çok basit

Altın sarı, parlak, yumuşak bir metaldir. Paslanmaz, kararmaz, binlerce yıl toprak altında kalsa bile aynı çıkar. Az bulunur: bugüne kadar çıkarılan tüm altın birkaç yüzme havuzunu ancak doldurur. Kolay işlenir: bir gramı ince tel veya yaprak yapılabilir. Bu dört özellik (dayanıklı, nadir, bölünebilir, herkesçe tanınan) onu binlerce yıl para yaptı (§3.4).

Seviye 2 — İşletme mantığı

Kuyumcu için altın üç şeydir aynı anda: 1. Hammadde: bilezik, kolye, yüzük ondan yapılır. 2. Ticaret malı: külçe ve ziynet olarak alınıp satılır; kâr alış-satış makasından gelir. 3. Para: müşteriyle ve toptancıyla hesap "has gram" üzerinden görülür; borç altınla ödenir.

Altının TL fiyatı her gün değişir, bu yüzden kuyumcu elindeki altını "pozisyon" olarak görür: fiyat yükselirse kazanır, düşerse kaybeder (Bölüm 6). Bu riskten kurtulmanın yolu, stoğu ve borcu has cinsinden tutup TL'yi yalnızca ödeme aracı olarak görmektir.

5.2 Ölçü birimleri: gram, kilogram, ons

Birim Değer Nerede kullanılır
Gram (g) Temel birim Tezgâh, vitrin, ERPGOLD MİKTAR alanı
Kilogram (kg) 1.000 g Toptan, rafineri, standart külçe (1 kg)
Ons (troy ons, oz) 31,1035 g Uluslararası fiyat (ons başına USD), vadeli/toptan anlaşmalar
Miskal / dirhem Eski birimler Bazı bölgelerde hâlâ konuşulur; ERPGOLD'da yoktur (GAP: bu birimlerin ERPGOLD'da tanımlı olup olmadığı doğrulanmadı)

Dikkat: kıymetli madende troy ons kullanılır (31,1035 g); mutfaktaki ons (28,35 g) değil (SEC-ONS).

Türkiye'de gram konuşulur ama dünya fiyatı ons ile gelir. Bu yüzden her sabah şu zincir kurulur:

Ons fiyatı (USD)     : 3.100 USD                         (örnek, güncel değil)
Has gram (USD)       = 3.100 ÷ 31,1035  = 99,667 USD
Has gram (TL, alış)  = 99,667 × 40,00   = 3.986,7 TL
Has gram (TL, satış) = 99,667 × 40,20   = 4.006,6 TL

ÖRNEK ALTIN A.Ş.'nin has kuru 4.000 / 4.030 TL'dir; ons×kur hesabından biraz farklıdır — bu normaldir, yerel has fiyatı piyasada (arz-talep, İstanbul primi) oluşur; ons×kur yalnızca "olması gereken"in yaklaşık değeridir.

PEKİ NEDEN? Neden ons Türkiye'de tezgâhta hiç konuşulmaz ama kuyumcu her sabah onu izler? Çünkü ons, fiyatın kaynağıdır ama ölçünün değil. Müşteri gram alır, gram satar; rafineri ve toptancı ile ise ons üzerinden anlaşılabilir. Döviz kurulumu verisinde fiyat tipi dağılımı bunu gösterir: 1.564.551 satır gram başına, 13.621 adet başına, 2.483 has başına, ons başına 0 satır (kitapçık §6; SEC-ONS). Ons, ERPGOLD'da bir fiyat tipi (F.TİPİ Oz) olarak vardır ama günlük işlemde değil, vadeli/toptan tarafta anlamlıdır.

Seviye 3 — ERPGOLD (ons)

VADELİ ekranında (SCR-IFVADELI) F.TİPİ Oz seçilince tutar, girilen gramın ons karşılığı üzerinden hesaplanır; dönüşüm için ons çarpanı kullanılır — önce hesap kartındaki "Ons Çarpan", o 0 ise genel ayarlardaki değer (BR-VADELI-002, BR-VADELI-003; Genel ayarlar). Birim listesinde ons, Computed işaretli türev bir birim olarak da tanımlanabilir (Carpan ile HAS'tan hesaplanır — §3.5 Seviye 4).

GAP — Genel ayardaki ons çarpanının canlı kurulumlarda 31,1035 mi yoksa başka bir değer mi olduğu veriden doğrulanmadı (GAP-SEC-ONS-01); doküman sabit 31,1035 anlatır, kod çarpanı ayardan okur. Kitapta 31,1035 sektör sabiti olarak kullanılır.

5.3 Saflık: ayar, milyem, has — ve neden has hesabı yaparız

Seviye 1 — Çok basit

Saf altın çok yumuşaktır; bilezik yapsan bükülür. Bu yüzden içine biraz bakır, gümüş katılır — buna alaşım denir. Ama o zaman "100 gramlık bilezik" 100 gram altın değildir; içinde belki 91,6 gram altın, 8,4 gram bakır vardır.

Şimdi Ali'nin sorusu: elinde bir 22 ayar bilezik, bir 14 ayar yüzük, bir de saf külçe var. "Toplam kaç gram altınım var?" Terazi "180 gram" der ama bu yanlış cevaptır; bakırı da altın saymış olur. Doğru cevap için her parçanın içindeki saf altını bulup toplamak gerekir. İşte o toplam hastır.

Seviye 2 — İşletme mantığı

Neden has hesabı yaparız? Üç sebep:

  1. Tek payda: Farklı ayarlardaki mallar gram olarak toplanamaz; has olarak toplanır. Stok raporu, müşteri borcu, rafineriye giden mal — hepsi has'la konuşulur.
  2. Fiyat has üzerinden oluşur: Piyasada "gram has" fiyatı vardır (4.000/4.030 örnek). 22 ayarın, 14 ayarın fiyatı bundan türetilir: 22 ayar gram = has fiyatı × 0,916. Yani kuyumcu ayara göre ayrı ayrı fiyat ezberlemez; tek has fiyatı ve milyem bilir.
  3. Pozisyon: Kuyumcunun altın riski, elindeki has miktarıdır. 1.500 g 22 ayar bilezik stokta durduğu sürece kuyumcu 1.374 g has "uzun"dur; fiyat 100 TL artarsa 137.400 TL değer kazanır, bilezik sayısı kadar değil.

Saflık üç dilde söylenir:

Dil Ölçek Örnek Kim kullanır
Ayar 24'lük 22 ayar, 14 ayar Müşteri, vitrin, damga
Milyem 1.000'lik (binde) 916, 585 Kuyumcu tezgâhı, ayar evi raporu
Milyem (ondalık) 0–1 çarpan 0,916; 0,585 ERPGOLD alanları

Üçü aynı şeydir: milyem = ayar ÷ 24; 22 ÷ 24 = 0,9167 → sektör yuvarlaması 0,916. Standart tablo (sektör genel kabulü, SEC-AYAR):

Ayar Teorik milyem Sektör kabulü Nerede görülür
24 1,000 995 / 999 / 999,9 Külçe, gram altın, "has"
22 0,9167 916 Bilezik, ziynet (çeyrek, yarım, tam)
18 0,7500 750 Avrupa tarzı takı, pırlantalı ürün
14 0,5833 585 Ekonomik takı, yüzük, zincir
8 0,3333 333 Ucuz takı

Saflık nasıl ölçülür? Damga (bileziğin içindeki "916" yazısı) üreticinin beyanıdır; kuyumcu hurda alırken ona değil ölçüme güvenir (SEC-AYAR):

Yöntem Nasıl? Kesinlik Nerede
Mihenk taşı Parça taşa sürtülür, ize asit damlatılır; renk tepkisi ayarı gösterir Kaba (yaklaşık ayar) Tezgâh, hurda alımı
XRF cihazı Röntgen floresans; numune almadan yüzeyi okur Orta; kaplama yanıltabilir Tezgâh, takoz ön tahmini (TERM-XRF)
Ayar evi raporu Takozdan çeşni kesilir, kimyasal analiz (küpelasyon) Kesin, ticari kabul Takoz, rafinasyon (SEC-AYAR-EVI)

Kuyumcu kurulumunda 10.618 takozun %99,9'u raporludur; XRF yalnız 7 takozda kullanılmıştır (kitapçık §9.5). Yani sektörde "ayar", cihaz tahminiyle değil raporla kesinleşir. Ayar evi tanımı: Ayar Evi Tanımlama.

Formül ve örnekler:

Has (g) = Miktar (g) × Milyem (ondalık)

100 g, 0,916  →  100 × 0,916 = 91,60 g has        (22 ayar bilezik)
100 g, 0,585  →  100 × 0,585 = 58,50 g has        (14 ayar zincir)
100 g, 0,995  →  100 × 0,995 = 99,50 g has        (995 külçe — dikkat: külçenin bile hası brüt gramından küçüktür)
 50 g, 0,750  →   50 × 0,750 = 37,50 g has        (18 ayar kolye)

Tersine: 60 g parçanın hası 35,1 g ise milyem = 35,1 ÷ 60 = 0,585 → 14 ayar

ÖRNEK ALTIN A.Ş. — Pazartesi sabahı MERKEZ stoğu (brief'teki başlangıç durumu):

Kalem Brüt gram Milyem Has
Has altın (24 ayar) 2.000 0,995 (kitapta "has" olarak sayılır) 2.000
22 ayar bilezik 1.500 0,916 1.374
14 ayar 800 0,585 468
Karışık hurda 300 0,700 (ortalama) 210
Toplam 4.600 4.052

Ayşe Hanım'a "ne kadar altınımız var?" sorusunun tek doğru cevabı 4.052 g hastır; 4.600 g demek 548 g bakırı altın saymaktır. TL değeri: 4.052 × 4.000 = 16.208.000 TL (alış kuru, örnek); ons karşılığı 4.052 ÷ 31,1035 = 130,3 ons ≈ 403.800 USD.

BUNU KARIŞTIRMAHas ≠ Gram. Gram terazinin gösterdiği toplam ağırlıktır (alaşım dahil); has yalnız içindeki saf altındır. Raporda toplanabilir olan yalnız hastır; gram toplamı sadece aynı ayardaki mallar için anlamlıdır. Brüt ile has karıştırılırsa %8–%40 hata (MET-HAS).

BUNU KARIŞTIRMAAyar ≠ Milyem. Aynı saflığın iki ölçeği: ayar 24'lük, milyem 1.000'lik. ERPGOLD'da "AYAR" adlı giriş alanı yoktur; ayar bilgisi kartın MİLYEM alanı ve kart adıyla ("22 AYAR BİLEZİK") taşınır. Ayrıca "ayar"ın ikinci anlamı ölçme işidir: "takozu ayara göndermek", "ayar evi", "ayar raporu".

BUNU KARIŞTIRMAMilyem (binde) ≠ Milyem (ondalık). 916 ile 0,916 aynı değerdir; ERPGOLD alanları ondalık bekler. Takoz ekranında XRF milyemi binde girilir ve program ÷1000 yapar (BR-TAKOZ-009). Yeni çalışanın MİLYEM alanına "916" yazması hası 916 kat büyütür — ekranda üst sınır kontrolü olup olmadığı doğrulanmadı (GAP-SEC-MILYEM-01); kuyumcu verisinde hurda milyemi 1,01'e kadar çıkmış (GAP-SEC-HURDA-01).

Seviye 3 — ERPGOLD

MADEN ve HURDA ekranlarında üç alan birlikte çalışır: MİKTAR (terazi gramı), MİLYEM (karttan gelir, değiştirilebilir), HAS (otomatik = MİKTAR × MİLYEM). HAS elle değiştirilirse milyem geri hesaplanır (SCR-IFMADEN). Hurdada milyem karttan değil ölçümden gelir (mihenk, XRF, ayar evi) ve kart değerini ezer (SCR-IFHURDA).

Adetli üründe (ziynet) MİKTAR adettir ve milyem alanı bir adedin has karşılığını taşır: 1 adet yarım altın, milyem 3,21 → has 3,21 g (kitapçık §5.1, Ek C.1). Yani milyem alanı bazen 1'den büyüktür; bu hata değil, adetli kartın tasarımıdır (§5.5).

Fiyat tipi (F.TİPİ) hangi gramın fiyatlandığını söyler: Miktar (brüt gram başına, ayara özgü fiyat), Has (has gram başına), Ad (adet başına), Oz (ons başına — veride kullanılmamış) — TERM-FIYAT-TIPI. Aynı bilezik iki yolla da fiyatlanır ve yaklaşık aynı tutara çıkar:

22 ayar 25,00 g bilezik, has satış kuru 4.030 TL (örnek):
  F.TİPİ Has   : has = 25,00 × 0,916 = 22,90 g → 22,90 × 4.030 = 92.287 TL
  F.TİPİ Miktar: 22 ayar gram fiyatı = 4.030 × 0,916 = 3.691,48 → 25,00 × 3.691,48 = 92.287 TL   (işçilik hariç)
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler.Miktar decimal(18,2) — dövizde nominal tutar, madende gram (FIELD-CARI-ISLEMLER-MIKTAR); AuMilyem decimal(18,5) — ondalık çarpan; adetli üründe adet başı has (FIELD-CARI-ISLEMLER-AUMILYEM); AgMilyem, PltMilyem, PldMilyem diğer metaller. Adet int; FiyatTipi (Ad=0, Miktar=1, Oz=2, Has=3 — ENUM-ISLEM-TFIYATTIPI). Hesaplanan kolon SHas = IslemTuru=0 ? AuMilyem×Miktar : −AuMilyem×Miktar (FIELD-CARI-ISLEMLER-SHAS).

Tetikleyici Cari.AcceptTransaction (TRG-CARI.ACCEPTTRANSACTION) satır 177: I.Miktar * Case When AuMilyem=0 Then 1 else AuMilyem end as HasAuMilyem 0 ise 1 kabul (has = miktar). Bu @Has değişkeni bakiye defterine (Cari.BakiyeIslem.Bakiye, satır 453/490) yazılır. Stok defteri satırında (satır 378, MADEN/HURDA; 405) ise Has = @AuMilyem * @Miktar doğrudan yazılır — 0 milyemde has 0.

CTR-02A-01 — "AuMilyem = 0 → 1 kabul" kuralı (AGENT_BRIEF/BOOK_BRIEF çekirdek gerçeği) tetikleyicide yalnız bakiye defteri için geçerlidir; stok defteri (Stok.StokHaraketleri.Has, satır 378/405) ve hesaplanan SHas kolonu ham AuMilyem × Miktar kullanır. Sonuç: milyemi 0 girilen bir maden/hurda satırı bakiyeye Miktar kadar has yazar, stoğa 0 has yazar; stok has toplamı ile bakiye has toplamı ayrışır. Kaynak: TRG satır 177 vs 378/405/418; FIELD-CARI-ISLEMLER-SHAS. Canlı veride kaç satırın AuMilyem=0 olduğu ölçülmedi (GAP-02A-03).

Has metrik tanımı: MET-HAS Miktar × Milyem / 1000 yazar; DB ondalık sakladığından "/1000" yalnız binde yazım için geçerlidir (CTR-SEC-HAS-01). Milyem ↔ ayar dönüşümü için yardımcı ekran: Ayar çevirici (işlev açıklaması GAP-SEC-AYAR-01). Kart milyemi: Stok.Maden.Milyem (TBL-STOK.MADEN); ortalama milyem fonksiyonu LIFO davranır (Stok.GetOrtMilyem, CTR-SEC-MALIYET-01).

5.4 Fiyat zinciri: ons → has gram → ayarlı gram → vitrin

Buraya kadar öğrendiklerimizi tek zincirde birleştirelim (örnek kurlar, güncel değil):

1. Ons (USD)         3.100 USD
2. Has gram (USD)    3.100 ÷ 31,1035               =   99,667 USD
3. Has gram (TL)     99,667 × 40,20 (USD satış)    = 4.006,6 TL  → piyasa has satış 4.030 TL (örnek)
4. 22 ayar gram      4.030 × 0,916                 = 3.691,48 TL
5. Vitrin (22 ayar)  3.691,48 + 150 işçilik        = 3.841,48 TL / g
6. 14 ayar gram      4.030 × 0,585                 = 2.357,55 TL  (+ kendi işçiliği)

Her halka bir ayrı kavramdır: (1) dünya fiyatı, (2) ons→gram, (3) döviz kuru, (4) milyem, (5) işçilik. Kuyumcu "altın yükseldi" dediğinde 1 veya 3 değişmiştir; "işçilik arttı" dediğinde 5. ERPGOLD bunları ayrı tutar: has kuru kur listesinde, milyem kartta, işçilik kartta/işlemde.

5.5 Altının biçimleri: külçe, gram altın, ziynet, takı, hurda, takoz, çeşni

Tezgâhta altın yedi ayrı kılıkta dolaşır. Hepsi altındır ama ölçüsü, fiyatı ve ERPGOLD ekranı farklıdır:

Biçim Nedir? Ölçü İşçilik var mı? ERPGOLD ekranı / kodu Kanonik
Külçe Rafineri/darphane damgalı, standart saflık (995/999,9) ve gramajda saf bar gram (1 g–1 kg+) yok HURDA (kod 995) veya MADEN kartı SEC-KULCE
Gram altın 1–100 g sertifikalı küçük külçe (yatırım ürünü) gram yok MADEN kartı SEC-KULCE
Ziynet / sarrafiye Darphane basımı 22 ayar altın para: çeyrek, yarım, tam, Ata, gremse adet basım işçiliği (küçük) MADEN (adetli kart) SEC-ZIYNET, SEC-SARRAFIYE
Takı (mamul) Bilezik, kolye, yüzük; 22/18/14 ayar gram (bazen adet) var MADEN, MODEL SEC-ISCILIK
Hurda Müşterinin bozdurduğu kullanılmış/kırık takı gram + ölçülen milyem yok (ödenmez) HURDA (IslemKodu 2) SEC-HURDA
Takoz Hurdanın eritilip dökülmüş, ayarı raporla belirlenen kütlesi gram + rapor no rafinasyon işçiliği TAKOZ GİRİŞİ/ÇIKIŞI (IslemKodu 0) SEC-TAKOZ
Çeşni Ayar evinin takozdan kestiği numune gram ÇEŞNİ ÇIKIŞI (IslemKodu 14) SEC-CESNI

Seviye 1 — Çok basit

Ali'nin annesinin eski bileziği hurdadır: kuyumcu ona takı değil, içindeki altın kadar para verir. Kuyumcu yüz tane böyle bilezik biriktirip eritince ortaya bir kütle çıkar: takoz. Takozun içinde ne kadar altın olduğu belli değildir; bir laboratuvar (ayar evi) küçük bir parça keser (çeşni), ölçer, "binde 640 altın" der. Takoz rafineriye gider, saf altın (külçe) olarak geri gelir. Külçe atölyeye gider, yeni bilezik (takı) olur; vitrine çıkar. Bir gün o bilezik de hurda olur. Döngü budur.

Seviye 2 — İşletme mantığı

Ziynet (çeyrek, yarım, tam) özel bir yerdedir: adetle satılır, her adedin gramı sabittir (çeyrek 1,754 g, yarım 3,508 g, tam 7,016 g; Ata 7,216 g — sektör genel kabulü), 22 ayardır. Vitrinde "çeyrek satış" adet fiyatıyla yazılır; has hesabı arka planda döner: çeyrek hası 1,754 × 0,916 = 1,607 g. Toptan/sarraf dilinde aynı ürün grubuna sarrafiye denir.

Ziynet has tablosu (sektör genel kabulü; çeyrek değeri TERM-PARCA-GRAMI ile uyumlu):
  Çeyrek  1,754 g × 0,916 = 1,607 g has
  Yarım   3,508 g × 0,916 = 3,213 g has     (kitapçık §5.1 gerçek fişindeki 3,21 ile uyuşur)
  Tam     7,016 g × 0,916 = 6,427 g has
  Ata     7,216 g × 0,916 = 6,610 g has

5 adet çeyrek satışı, has satış kuru 4.030 TL, satış primi %3, basım işçiliği yok (örnek):
  Toplam has      = 5 × 1,607 = 8,035 g
  Adet fiyatı     = 1,607 × 4.030 × 1,03 = 6.670,3 TL
  Tutar           = 5 × 6.670,3 = 33.351,5 TL

Ziynet ERPGOLD'da adetle işlem gören bir maden kartıdır: kartta "adetle" bayrağı ve parça gramı; MADEN ekranında ADET girilir, MİKTAR ve HAS karttan türer ("Lütfen Adet Giriniz" doğrulaması). Kitapçık §5.1 gerçek fişinde 1 adet eski yarım için ADET 1, MİKTAR 1, milyem alanı 3,21 (adet başı has) yazılmıştır — yani adetli kartta milyem alanı saflık değil bir adedin hasıdır (Ek C.1). Ziynet işçilik tarifesi ayrı ekrandadır (Ziynet işçilikleri; işlev açıklaması wiki'de GAP). Yeni basım ile eski (ikinci el) ziynet ayrı kartla izlenir; fiyat farkı basım işçiliği ve kondisyondan gelir.

CTR (mevcut, CTR-SEC-GRAM-01 / CTR-SEC-ZIYNET-01) — TERM-PARCA-GRAMI "MİKTAR = ADET × parça gramı (çeyrek 1,754)" der; gerçek fişte MİKTAR 1 ve milyem 3,21 görülür. İki model de kartın tanımına bağlıdır (parça gramı 1 + milyem 3,21 ya da parça gramı 3,508 + milyem 0,916); has toplamı ikisinde de doğru çıkar, gram toplamı ise kartlar tutarsızsa anlamsızlaşır. Hangi kartların hangi modeli kullandığı veriden doğrulanmadı.

Hurda alımında iki şey ölçülür: terazi gramı ve milyem (damgaya değil ölçüme güvenilir). Kuyumcu hurdayı has fiyatının biraz altında bir "hurda alış has fiyatı"yla alır; fark marjıdır. İşçilik ödenmez — müşterinin yıllar önce ödediği işçilik burada kaybolur.

Takoz kuyumcu/rafineri kurulumunun kalbidir: kuyumcu kurulumunda 13 ayda 10.870 takoz kartı, 16,4 ton brüt / 5,6 ton has, ortalama milyem 0,702 (kitapçık §9.5). Her takoz iki işlem üretir: GİRİŞ (atölyeden alındı) ve ÇIKIŞ (rafineriye verildi). Döviz bürosunda bu akış hiç yoktur (takoz kartı boş).

BUNU KARIŞTIRMAKülçe ≠ Takoz. Külçe standart saflık ve gramajda sertifikalı bardır (995, 1 kg); takoz ayarı belirsiz, raporla ölçülen dökme kütledir (691,73 g, 0,638). Sözlük TERM-TAKOZ ikisini eş anlamlı verir; kitapçık §2.3 ve ekranlar ayırır (CTR-SEC-TAKOZ-01 / CTR-SEC-KULCE-01). Hurda ≠ Takoz: hurda henüz eritilmemiş takıdır; eritilince takoz olur. Ziynet ≠ Gram altın: ziynet 22 ayar adetli para, gram altın 995/999 gramlı küçük külçedir. Çeşni ≠ Fire: çeşni ölçülmüş, kodlanmış (CS + numara) ve bir hesaba yazılan numunedir; fire üretimde kaybolan ve hesabı olmayan gramdır.

ÖRNEK ALTIN A.Ş. — Çarşamba, perakende müşteri 200 g karışık hurda getirir (haftalık hikâye; ayrıntı Bölüm 7). Zeynep mihenkle bakar: ortalama milyem 0,700 → has 140 g. Firma hurdayı has alış kuru 4.000 TL'den öder: 140 × 4.000 = 560.000 TL peşin TL (örnek kur, güncel değil). Stok: hurda +200 g brüt, +140 g has. Ertesi hafta bu hurda 300 g'lık eski stokla birlikte eritilip takoz olur; Rafineri Kuzey'e gider; ayar raporu "Au 0,700, Ag 0,050" derse 500 g takozdan 350 g has altın + 25 g gümüş bakiyesi doğar, rafineri işçiliği has olarak kesilir.

5.6 İşçilik, fire, rafinasyon

Seviye 1 — Çok basit

Mehmet ayakkabı yaparken deri parası ayrı, emek parası ayrıdır. Kuyumcu da öyle: bileziğin fiyatı = altın değeri + işçilik. Altın değeri has × has kuru; işçilik ustanın emeğidir. Bileziği bozdurunca yalnız altın geri alınır; emek parası gider.

Seviye 2 — İşletme mantığı

İşçilik iki dilde söylenir (SEC-ISCILIK): - Para cinsinden: "gramı 150 TL işçilik" (ÖRNEK ALTIN A.Ş. 22 ayar örneği). - Milyem (altın) cinsinden: "916 + 40 milyem" → gram başına 0,040 g has fazladan ödenir. Toptan ve atölye dilinde yaygındır; işçilik altınla ödenir, para el değiştirmez.

Kuyumcunun gerçek kârı işçilik ve makastadır; altının kendisi piyasa fiyatına alınıp satılır. Bu yüzden ERPGOLD maliyeti ikiye ayırır: metal değeri günün kuruyla, işçilik stoktan (son giren ilk çıkar).

Fire, eritme, döküm, cila sırasında kaybolan gramdır (toz, buhar, tezgâh dibi). Ölçülemez, hesabı yoktur; atölye bunu işçiliğe gömer. Rafinasyonda "rafinasyon payı" olarak konuşulur. Rafinasyon, takozdaki altını kimyasal yolla ayırıp 995/999,9 saflığa çıkarmaktır; rafineri karşılığında has bakiyesi yazar ve işçiliğini altınla keser (kuyumcu kurulumunda 691,73 g takoz için 0,45 g has — kitapçık §9.5).

22 ayar 20,00 g bilezik satışı, has satış kuru 4.030 TL, işçilik 150 TL/g (örnek):
  Has            = 20,00 × 0,916          = 18,32 g
  Altın değeri   = 18,32 × 4.030          = 73.829,60 TL
  İşçilik (TL)   = 20,00 × 150            =  3.000,00 TL
  Satış tutarı   = 73.829,60 + 3.000      = 76.829,60 TL
  İşçilik (has)  = 3.000 ÷ 4.030          = 0,744 g → gram başına 0,744 ÷ 20 = 0,037 → "37 milyem işçilik"
Müşteri aynı bileziği yarın bozdurursa: 18,32 × 4.000 (alış) = 73.280 TL alır; 3.549,60 TL fark = işçilik + makas kaybı.

Seviye 3 — ERPGOLD

MADEN ekranında işçilik ayrı kutuya girilmez: kullanıcı TUTAR'ı girer, program TUTAR − altın değeri farkını işçilik olarak hesaplayıp kayda yazar (BR-MALIYET-001); negatif çıkarsa 0 yapılır ("işçilik neden sıfır göründü?" destek teması). Kart tanımında GİRİŞ İŞÇİLİĞİ / ÇIKIŞ İŞÇİLİĞİ ve birimleri vardır (Maden kartı tanımlama). Takozda İŞÇİLİK DURUMU (Altından Düş / Para İle), HAS İŞÇİLİK, AG İŞÇİLİK alanları ayrıdır (SCR-IFTAKOZCIKIS). Hurda ve külçede işçilik yoktur (BR-MALIYET-002).

PEKİ NEDEN? Neden ERPGOLD'un "Maliyet" kolonu bileziğin altınını içermez? Çünkü altın para gibidir: geçen ay 3.800'den alınan hası bugün 4.000'den satınca aradaki fark kâr değil, kur farkı/pozisyon kazancıdır. Kâr raporuna karışmasın diye metal değeri her zaman günün kuruyla hesaplanır, tarihî alış fiyatı tutulmaz. Kalıcı olarak saklanan tek maliyet işçilik TL'sidir; stok defterindeki Maliyet kolonu girişte "işçilik × işçilik kuru" yazar, çıkışta 0 (CTR-SEC-MALIYET-01 — SEC-MALIYET). Bilanço bu kolonu İŞÇİLİK kalemi olarak toplar.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler.Iscilik decimal(18,2) — girişte maliyet farkından, çıkışta detay birim fiyatından (FIELD-CARI-ISLEMLER-ISCILIK); IscilikBirimId, IscilikBirimKur (işçilik biriminin işlem anındaki kuru; HİZMET ekranında "KUR(HAS)" etiketi), IscilikDurumu (FIELD-CARI-ISLEMLER-ISCILIKDURUMU; enum ENUM-ISLEM-TISCILIKDURUMU); takozda HasIsc, HasIscBirimId, GumIsc. Cari.Islemler.Maliyet decimal(18,2) uygulama tarafından (Cari.IslemEx.MaliyetHesapla) yazılır; metal değerini içermez (FIELD-CARI-ISLEMLER-MALIYET).

Tetikleyici satır 378/405: Stok.StokHaraketleri.Maliyet = IslemTuru=0 ? Convert(dec(18,2), @StokIsc × @StokIscKur) : 0 — yalnız işçilik TL (TBL-STOK.STOKHARAKETLERI). Çıkış işçiliği LIFO: Stok.GetMadenMaliyeti son 50 giriş partisinden geriye biriktirir (TOP 50 sessiz kesme — kitapçık Ek C.3). Takoz işçiliği: (Au has × işçilik fiyatı ÷ 1000) × birim kuru (BR-TAKOZ-006); kitapçık §9.5 çıkış kaydında işçilik alanı 942,13 HAS iken tutar 0,31 has — 942,13'ün ne olduğu belgelenmemiş (GAP-SEC-ISCILIK-02).

Firenin ERPGOLD'da adlandırılmış bir alanı yoktur; takoz girişinde bakiyeye yazılan has ile ölçülen has arasındaki ortalama +%0,27 pay (takozların %29'u) kodda bulunamadı (GAP-SEC-TAKOZ-01) — bu payın fire/rafinasyon anlaşması olup olmadığı doğrulanmadı (GAP-02A-04).

5.7 Gümüş, platin, paladyum — kısaca

Altın dışındaki üç kıymetli maden de aynı mantıkla izlenir: brüt gram × milyem = has; her metalin kendi kuru vardır; altın hasıyla toplanmaz.

Metal Kod (birim) Nerede karşına çıkar ERPGOLD
Gümüş (Ag) GUM Takozun ikinci metali (Ag milyemi), gümüş takı, gümüş külçe Takoz tipi GÜMÜŞ (IslemTipi 7); EMTİA kartı; kuyumcu verisinde MADEN satırı GUM 577
Platin (Pt) PLT Platin takı, takozda PLT milyemi Takoz tipi PLATİN (8); kur listesi PLT
Paladyum (Pd) PLD Beyaz altın alaşımı, takozda PLD milyemi Takoz tipi PALADYUM (9); kur listesi PLD

Takoz kartı dört metalin milyemini birlikte taşır (Au/Ag/Plt/Pld) ve rafinasyon sonunda iki bakiye birden doğabilir (has + gümüş — kitapçık §9.5 kural 1). Kuyumcu kurulumunda takoz işlemlerinin tipi ALTIN (6) ve GÜMÜŞ (7) olarak ikiye ayrılır; matriste 0/6 ve 0/7 satırları bunlardır (§5.8 Seviye 4).

5.8 ERPGOLD'da altın: miktar, milyem, has, takoz, çeşni, hurda — bir arada

Seviye 3 — ERPGOLD

Ekran Ne için Girilen ana alanlar Has nasıl bulunur Stok / bakiye etkisi
MADEN (SCR-IFMADEN) Takı, ziynet, gram altın alış/satış STOK KODU, MİKTAR (veya ADET), MİLYEM, F.TİPİ, FİYAT, TUTAR MİKTAR × MİLYEM (adetli kartta ADET × adet başı has) Stok defteri: gram, adet, has; bakiye: cari ise tutar birimi veya HAS
HURDA (SCR-IFHURDA) Bozdurma alımı, külçe/has teslimi STOK KODU (yalnız "hurda" işaretli kartlar; açılışta 995), MİKTAR, MİLYEM (ölçülen), HAS MİKTAR × ölçülen MİLYEM Müşteri getirdi → GİRİŞ; külçe/has verildi → ÇIKIŞ. NORMAL tipte fiyat paneli yok, has bakiyesi yazılır (BR-HURDA-002)
TAKOZ GİRİŞİ (SCR-IFTAKOZGIRIS) Atölyeden takoz alma TAKOZ TİPİ, AYAR EVİ, RAPOR NO, MİKTAR, ÇEŞNİ, Au/Ag/Plt/Pld MİLYEM (rapor yoksa XRF), İŞÇİLİK DURUMU MİKTAR × Au MİLYEM (çeşni hariç) Önce takoz kartı, sonra işlem (BR-STOK-013); stok defteri takozu adet izler (+1), gram kartta durur (BR-STOK-002)
TAKOZ ÇIKIŞI (SCR-IFTAKOZCIKIS) Rafineriye teslim TAKOZ KODU (listeden), yalnız işçilik Karttan salt okunur Stok −1; rafineri hesabına +has ve +gümüş bakiyesi; stokta olmayan takoz çıkılamaz (BR-STOK-007)
ÇEŞNİ ÇIKIŞI (SCR-IFCESNI) Birikmiş numuneyi bir hesaba yazma MİKTAR, MİLYEM(AU), MİLYEM(AG) MİKTAR × milyemler Stok defterine yazılmaz, yalnız bakiye (BR-STOK-011)

UYARI — HURDA ekranı açılışta tür ÇIKIŞ getirir (BR-HURDA-001) ama müşterinin en sık yaptığı iş hurda getirmek, yani GİRİŞ'tir (CTR-SEC-HURDA-01). Yeni çalışan yönü kontrol etmeden kaydederse müşteriden alınan hurda stoktan düşer.

ÖRNEK ALTIN A.Ş. — Cuma günü Ali Bey (muhasebe) haftalık has hareketini toplar (haftalık hikâyenin ayrıntısı Bölüm 7'de):

Gün İşlem Ekran Brüt g Milyem Has g
Pzt Toptancı Yusuf'tan has alımı (cari) MADEN / HURDA (995) 1.000 0,995→has +1.000
Sal Kuyumcu Selim'e 22 ayar satışı (cari) MADEN 600 0,916 −549,6
Çar Perakende hurda alımı (peşin TL) HURDA 200 0,700 +140

Has stoğu: 4.052 + 1.000 − 549,6 + 140 = 4.642,4 g. Brüt gram toplamak (4.600 + 1.000 − 600 + 200 = 5.200) Ayşe Hanım'a yanlış resim verirdi. Cari tarafta Toptancı Yusuf'un alacağı 400 → 1.400 g HAS'a çıkar, Kuyumcu Selim'in borcu 150 g HAS + 549,6 has karşılığı (satış tutarı hangi birimdeyse o birimde) artar — bakiye ayrıntısı Bölüm 4.

SIK YAPILAN HATALAR (altın) - Yeni çalışan: MİLYEM'e binde değer (916) yazmak; hurdada damga ayarını ölçmeden kabul etmek; ziynette ADET yerine gram girmek; HURDA'da varsayılan ÇIKIŞ yönünü fark etmemek. - Müşteri: "100 gram bilezik verdim, 91 gram yazdınız" — brüt gram ile has farkı; "geçen ay ödediğim işçiliği neden geri vermiyorsunuz" — hurda alımında işçilik ödenmez. - Destek personeli: Stok has toplamı ile bakiye has toplamı uyuşmuyorsa milyemi 0 girilmiş satırlara bak (CTR-02A-01); takoz rapor gelince milyem düzeltilmiş mi (raporlu/raporsuz — BR-TAKOZ-003); "Maden Stok Sıralama" alt teması PRB-MADEN-000'da 13 çağrı. - Geliştirici: Has'ı Miktar × Milyem / 1000 diye hesaplamak (DB ondalık saklar — CTR-SEC-HAS-01); metal maliyetini tarihî fiyatla raporlamak (kodda yok — CTR-SEC-MALIYET-01); adetli kartta milyem alanını "saflık" sanıp 1 ile sınırlamak (adet başı has taşır).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

İşlem kodları: MADEN 1, HURDA 2, TAKOZ 0, ÇEŞNİ 14 (kod enum'unda var, DB kod tablosunda yok — CTR-039) — ENUM-ISLEMKODU. Takoz metal tipi IslemTipi: 6 ALTIN, 7 GÜMÜŞ, 8 PLATİN, 9 PALADYUM (BR-TAKOZ-002).

Gerçek matris (2026-09-12, _data/islem_matrisi.json, FLOW-ISLEM-MATRISI):

Kurulum Kod/Tür/Tip Cari Fatura Stok Bakiye n
KUYUMCU 2 HURDA / GİRİŞ / NORMAL 1 1 1 1 21.822
KUYUMCU 2 HURDA / GİRİŞ / NORMAL 1 0 1 1 18.640
KUYUMCU 2 HURDA / ÇIKIŞ / NORMAL 1 1 1 1 15.057
KUYUMCU 0 TAKOZ / GİRİŞ / ALTIN(6) 0 0 1 1 4.135
KUYUMCU 0 TAKOZ / ÇIKIŞ / ALTIN(6) 0 0 1 1 4.131
KUYUMCU 0 TAKOZ / GİRİŞ / GÜMÜŞ(7) 0 0 1 1 2.924
KUYUMCU 14 ÇEŞNİ / ÇIKIŞ / NORMAL 0 1 0 1 69
KUYUMCU 14 ÇEŞNİ / ÇIKIŞ / NORMAL 0 0 0 1 51
V2 2 HURDA / ÇIKIŞ / NORMAL 1 0 1 1 696
V2 2 HURDA / GİRİŞ / PEŞİN 0 0 1 0 685
V2 2 HURDA / ÇIKIŞ / RESMİ(11) 1 1 0 0 471

Okuma: ÇEŞNİ (14) yalnız kuyumcu verisinde, 120 satır, stok defteri yazmaz (BR-STOK-011 doğrulandı). TAKOZ satırlarının Cari=0 (BakiyeId=0) olması peşin demek değildir — bakiye yine yazılır (BOOK_BRIEF çekirdek gerçeği). Peşin hurda (V2 685 satır) bakiye yazmaz; resmi hurda (471) operasyonel stok/bakiye kaydı üretmez. Kuyumcu HURDA'nın birimi tümüyle null (66.578) — hurda satırı para tarafı taşımaz, has bakiyesi yazar (BR-HURDA-002).

Takoz kartı Stok.Takoz (TBL-STOK.TAKOZ; KUYUMCU 10.870 satır, 40 kolon): Kodu (TK+5 hane), Miktar (çeşni hariç brüt), CesniMiktar, CesniKodu (CS+numara), AuMilyem/AgMilyem/PltMilyem/PldMilyem, XRFAuMilyem, hesaplanan AuHas/AgHas (FIELD-STOK-TAKOZ-AUHAS), AyarEviId, RaporNo, IsRapor, giriş anındaki metal kurları (BR-KUR-011). Tetikleyici takozda raporsuz ise XRFAuMilyem'i okur (satır 558) ve @IsRapor=1 OR (@AuMilyem<>0 or @AgMilyem<>0) koşuluyla bakiye yazar (satır 620). Çeşni bakiyesi: Cari.BakiyeIslem iki satır — @Miktar × @AuMilyem HAS birimine, @Miktar × @AgMilyem GUM birimine (satır 416–420). Çeşni stoğunu listeleyen mekanizma belgelenmemiş (GAP-SEC-CESNI-01). Veri akışları: FLOW-IFMADEN, FLOW-IFHURDA, FLOW-IFTAKOZGIRIS, FLOW-IFCESNI. Raporlar: RPT-7 Maden Stok Hareket, RPT-8 Maden Stok Özet, Takoz kâr raporu, Pozisyon.

GAP-MEVZUAT — Bu bölümde adı geçen kurumlar ve kurallar (TCMB kur ilanı, yetkili müessese mevzuatı, BSMV oranı, MASAK kimlik tespiti eşikleri, Darphane ziynet standartları, BİST Kıymetli Madenler Piyasası külçe/rafineri standartları, KDV istisnası, VUK değerleme) kaynak + tarih ile doğrulanmamıştır; kitap bunlar hakkında hüküm vermez, yalnız "böyle bir düzenleme alanı var" der. Güncel oran ve eşikler için resmî kaynağa bakılmalıdır.


Bölüm sonu sınavı — Para, Döviz, Altın (§3–5)

(Bu sınav §3–§5'i kapsar. Bölüm 2'nin ikinci yarısı — 02b — kendi sınavını getirir.)

Kolay (5)

  1. Paranın üç görevi nedir? Kuyumcu için "hesap birimi" görevini hangi birim üstlenir?
  2. "USD alış 40,00 — satış 40,20" panosunda müşteri 1.000 USD alırsa kaç TL öder? İşletme için bu işlem alış mı satış mı?
  3. 100 gram 22 ayar bileziğin hası kaç gramdır? Milyemi ondalık ve binde olarak yaz.
  4. 1 ons kaç gramdır? Ons 3.100 USD ve USD/TL 40,00 iken 1 gram has kaç TL'dir (örnek kur)?
  5. ERPGOLD'da TL, USD ve HAS aynı listede mi tutulur? Bu listenin adı ve onları ayıran işaret nedir?

Orta (5)

  1. Spread (alış-satış farkı) neden vardır? Hangi durumlarda genişler? (En az üç sebep.)
  2. EUR alış 46,00, USD satış 40,20 iken işletmenin EUR→USD paritesi nedir? Müşteri 1.500 EUR verirse kaç USD alır ve TL kasadan geçer mi?
  3. "Kur fotoğrafı" nedir? İşlem düzeltilince yeniden çekilir mi? Bu neden önemlidir?
  4. 24 ayar 2.000 g, 22 ayar 1.500 g, 14 ayar 800 g, hurda 300 g (0,700) stoğunun has toplamı nedir? Neden brüt gram toplamı (4.600) yanlış cevaptır?
  5. Külçe, takoz, hurda ve çeşni arasındaki farkı birer cümleyle yaz; her biri ERPGOLD'da hangi ekrandan geçer?

Senaryo (5)

  1. Mehmet sabah kur girmeyi unuttu; EDS de gece durmuş. Öğlen Döviz Nuri'ye 1.000 USD satıldı. ERPGOLD hangi kuru kullandı, ekranda uyarı çıktı mı, satıra hangi kur fotoğrafı yazıldı? Deniz (destek) neye bakmalı?
  2. Zeynep 22 ayar 20 g bilezik sattı: TUTAR 76.829,60 TL girdi (has satış 4.030, işçilik 150 TL/g). ERPGOLD işçiliği nasıl bulur? Stok defterindeki "Maliyet" kolonuna ne yazılır, altının değeri neden yazılmaz?
  3. Yeni çalışan HURDA ekranında müşteriden 24 g 18 ayar kolye aldı ama MİLYEM alanına "750" yazdı ve varsayılan yönü değiştirmedi. Stok ve bakiye açısından ne olur? İki hatayı da açıkla.
  4. Atölye Kemal 500 g takoz getirdi; ayar raporu Au 0,700, Ag 0,050, çeşni 4 g. Takoz girişinde hangi alanlar dolar, has ve gümüş kaç gramdır, çeşninin hası kime yazılır? Takoz Rafineri Kuzey'e çıkıldığında rafinerinin bakiyesinde ne doğar?
  5. Ali Bey rapor yazıyor: "haftalık döviz-döviz (arbitraj) hacmi". Veride IslemTipi = 10 satırı bulamıyor. Neden? Arbitraj satırlarını nasıl tanır ve tek işlem mi iki işlem mi sayacağına nasıl karar verir?

Cevap anahtarı (§3–5)

  1. Değişim aracı, hesap birimi, değer saklama. Kuyumcu hesap birimi olarak çoğu zaman TL yerine has gramı kullanır; stok ve bakiye has'la tutulur (§3.2; SEC-HAS).
  2. 1.000 × 40,20 = 40.200 TL. Müşterinin alışı işletmenin satışıdır; ERPGOLD yönü işletme bakışıyla yazar (§4.2–4.3; SEC-DOVIZ, SEC-KUR).
  3. 100 × 0,916 = 91,6 g has. Ondalık 0,916, binde 916 (§5.3; SEC-MILYEM).
  4. 31,1035 g. 3.100 ÷ 31,1035 = 99,667 USD → × 40,00 = 3.986,7 TL (örnek kur; yerel has fiyatı piyasada oluşur, 4.000 TL örneğiyle küçük fark normaldir) (§5.2; SEC-ONS).
  5. Evet; Birim Listesi (Sistem.Birimler, 133 satır). Madeni paradan ayıran işaret Metal (IsMetal) bayrağıdır (§3.5; TBL-SISTEM.BIRIMLER, SCR-FRMBIRIMEKLE).
  6. Spread büronun aracılık kazancıdır (ucuza al, pahalıya sat). Genişler: kur oynaklığı yüksekse, para birimi az işlem görüyorsa, rekabet azsa, işlem perakende/küçükse (sistem kuru vs pano kuru) (§4.3; SEC-KUR, TERM-MARJ).
  7. 46,00 ÷ 40,20 = 1,1443; 1.500 × 1,1443 = 1.716,42 → 1.716 USD (tam sayıya yuvarlama). TL kasadan geçmez; 69.000 TL yalnız iki bacağı eşitleyen hesap pivotudur (§4.4; SEC-PARITE, BR-KUR-010).
  8. Kayıt anındaki HAS/USD/EUR… kurlarının işlem satırına yazılmasıdır (BR-KUR-001). Düzeltmede yeniden çekilmez (BR-KUR-003). Kur tablosu değişse de "işlem günkü kur" korunur; geçmiş kâr doğru hesaplanır (§4.5; TERM-KUR-FOTOGRAFI).
  9. 2.000 + 1.374 + 468 + 210 = 4.052 g has. Brüt toplam 548 g alaşım metalini altın sayar; farklı ayarlar ancak has'ta toplanır (§5.3; SEC-HAS, MET-HAS).
  10. Külçe: standart saflık/gramajda sertifikalı bar — HURDA (995) veya MADEN. Takoz: eritilmiş, ayarı raporla belirlenen dökme kütle — TAKOZ GİRİŞİ/ÇIKIŞI. Hurda: bozdurulan kullanılmış takı, milyemi ölçülür — HURDA. Çeşni: ayar evinin kestiği numune — ÇEŞNİ ÇIKIŞI (§5.5; SEC-KULCE, SEC-TAKOZ, SEC-HURDA, SEC-CESNI).
  11. O tarihte kur yoksa ERPGOLD sessizce en son kuru (dünkü) kullanır; uyarı çıkmaz (TERM-KUR-LISTESI). Satıra dünkü kur fotoğraf olarak yazılır (BR-KUR-001). Deniz: Kur Giriş Ekranında kırmızı satırlar, EDS Products Alias ↔ birim kodu eşleşmesi, Sistem.KurEkle akışı (§4.5; INT-KUR-EDS, PB-061).
  12. Has 18,32 g; altın değeri 18,32 × 4.030 = 73.829,60; işçilik = TUTAR − altın değeri = 3.000 TL (BR-MALIYET-001). Stok defteri Maliyet = işçilik × işçilik kuru = 3.000 TL; altın değeri yazılmaz çünkü metal her zaman günün kuruyla değerlenir, tarihî fiyat tutulmaz (CTR-SEC-MALIYET-01) (§5.6; SEC-MALIYET, SEC-ISCILIK).
  13. (a) Milyem 750 (binde) girilince has = 24 × 750 = 18.000 g olur — 18 g yerine; ERPGOLD ondalık (0,750) bekler. (b) HURDA açılışta ÇIKIŞ gelir (BR-HURDA-001); değiştirilmezse müşteriden alınan kolye stoktan düşer ve müşteri has bakiyesi ters yönde yazılır. Doğrusu: GİRİŞ, milyem 0,750, has 18,00 g (§5.3, §5.8; SEC-MILYEM, CTR-SEC-HURDA-01).
  14. TAKOZ TİPİ, AYAR EVİ, RAPOR NO, MİKTAR 500 (çeşni hariç), ÇEŞNİ 4, Au MİLYEM 0,700, Ag MİLYEM 0,050. Au has 350 g, Ag has 25 g; çeşni hası 4 × 0,700 = 2,8 g çeşni stoğuna gider, anlaşmaya göre ÇEŞNİ ÇIKIŞI ile müşteri/ayar evi hesabına yazılır. Çıkışta rafineri hesabına +350 HAS ve +25 GUM bakiyesi doğar, işçilik has olarak kesilir; stok defteri takozu adet (+1/−1) izler (§5.8; SEC-TAKOZ, SEC-CESNI, BR-STOK-002, BR-STOK-011).
  15. NAKİT ekranındaki PARİTE seçimi iki NORMAL satır yazar (BR-TIP-011); tip 10 satırda saklanmaz — gerçek veride 0 satır (CTR-02A-02). Arbitraj satırları bağ alanından (VaryantId: ana −1, bağlı satır ana Id) ve VADELİ tip −2 çiftlerinden tanınır. Tek işlem sayılacaksa ana kayıtlar (−1), döviz hacmi istenirse iki bacak da sayılır (§4.4; SEC-ARBITRAJ, MET-ISLEM-HACMI).

Bunu anladıysan devam et (§3–5)


8. Finansal piyasalar — fiyat nereden gelir?

Bu yarı bölüm, 2. bölümün ilk yarısında öğrendiğin kur, parite, has, milyem, ayar kavramlarının üstüne kurulur. Oradaki tanımları burada tekrar etmiyoruz; gerektiğinde "bkz. Bölüm 2 ilk yarısı" diyeceğiz. Bütün rakamlar ÖRNEK ALTIN A.Ş.'nin sabit örnek kurlarıdır (USD/TL 40,00 / 40,20 · has gram 4.000 / 4.030 TL · ons 3.100 USD); güncel kur değildir.

8.1 Piyasa nedir? Fiyat nasıl oluşur?

Seviye 1 — Çok basit

Okul kantininde tek bir tost satıcısı var: Ali. Tostun fiyatını Ali koyar. Bir gün Mehmet de tost satmaya başlarsa Ali fiyatı düşürmek zorunda kalır, çünkü öğrenciler ucuz olana gider. Sınav haftası herkes acıkır ve tost isteyenler artarsa fiyat tekrar yükselir. İşte piyasa, alıcılarla satıcıların buluştuğu yerdir; fiyat ise o an "kaç kişi almak istiyor" (talep) ile "kaç kişi satmak istiyor" (arz) arasındaki çekişmeden doğar.

Kimse fiyatı tek başına belirlemez; fiyat, binlerce alıcı ve satıcının aynı anda verdiği kararların ortak sonucudur. Bu yüzden piyasa fiyatı sürekli kıpırdar: her yeni alıcı fiyatı biraz yukarı, her yeni satıcı biraz aşağı iter.

Seviye 2 — İşletme mantığı

Kapalıçarşı'daki ÖRNEK ALTIN A.Ş. sabah has altın için "4.000 alış / 4.030 satış" yazar. Bu fiyatı Ayşe Demir keyfine göre koymaz: dünyada ons fiyatı (§9), USD/TL kuru ve o gün çarşıda kaç kişinin altın alıp kaç kişinin sattığı belirler. Çarşıda talep patlarsa (düğün mevsimi, kur şoku) Ayşe fiyatı yukarı çeker; hurda getiren çoksa (bayram öncesi nakit ihtiyacı) alış fiyatını düşürür.

İşletme için piyasa fiyatı iki şeyi söyler: 1. Elimdeki malın bugünkü değeri — stok, bakiye ve pozisyon bu fiyatla TL'ye çevrilir. 2. Bir sonraki işlemin fiyatı — tezgâhtaki alış/satış fiyatı bu piyasa fiyatının etrafına kurulur (bkz. Bölüm 2 ilk yarısı: alış/satış makası).

Seviye 3 — ERPGOLD

ERPGOLD'un "piyasa" diye bir ekranı yoktur; piyasa fiyatı ERPGOLD'a kur listesi olarak girer. Kur Giriş Ekranı (Hesap Yönetimi ▸ Ayarlar ▸ Kur Giriş Ekranı) her birim için tarihli alış ve satış tutar; bu liste elle girilebilir, önceki günden KOPYALA ile taşınabilir ya da EDS uygulamasından otomatik akar (§9.5). İşlem kaydedilirken o anki kur, işlemin üstüne "fotoğraf" olarak yapışır — sonradan kur değişse de o işlemin kuru değişmez.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Kur listesi Sistem.Kurlar tablosudur (V2'de 22.575 satır); ekran FrmKurGirisEkrani (SCR-FRMKURGIRISEKRANI, FLOW-FRMKURGIRISEKRANI). Okuma: Sistem.GetKurListesi, Sistem.GetLastKur, FN.GetKur (TERM-SISTEM-GETKURLISTESI-GETLASTKUR-FN-GETKUR). Kayıt anında kur fotoğrafı: Cari.Islemler.HasKur/UsdKur/EurKur/... kolonları (BR-KUR-001, TERM-KUR-FOTOGRAFI). Uyarı: Program.GetKur her zaman alış kurunu döner (TD-21); veritabanı tarafındaki kur okuması da alıştır (BR-KUR-008).

KAYNAK — SECTOR_KNOWLEDGE (piyasa/arz/talep); SEC-KUR; TBL-SISTEM.KURLAR; BR-KUR-001.

8.2 Spot ve vadeli

Seviye 1 — Çok basit

Ali, Mehmet'ten bisiklet alıyor. İki yol var: - Spot: "Al parayı, ver bisikleti" — şimdi, hemen, bugünkü fiyattan. - Vadeli: "Fiyatı bugün 3.000 TL'ye anlaşalım; bisikleti ve parayı gelecek ay değiş tokuş edelim." Gelecek ay bisiklet 3.500 TL olsa da Ali 3.000 öder; 2.500 olsa da 3.000 öder. Fiyat bugün kilitlendi, teslim sonra.

"Spot" İngilizce "yerinde, anında" demektir; spot fiyat = şu an teslim için fiyat. Vadeli fiyat = ileri tarihte teslim için bugün anlaşılan fiyat.

Seviye 2 — İşletme mantığı

Kuyumcu tezgâhı neredeyse tamamen spot çalışır: müşteri bileziği alır, parayı verir, biter. Vadeli ise toptancı, rafineri ve banka ile yapılan büyük işlerin dilidir: "1 kg hası bugünkü ons fiyatından aldım, teslim ay sonu." Vadeli işlem, işletmeye iki şey verir: fiyat kesinliği (ne ödeyeceğimi bugünden biliyorum) ve zaman (malı ya da parayı bulmak için). Karşılığında bir taahhüt doğar: anlaşılan gün, anlaşılan fiyattan teslim etmek zorundasın.

Seviye 3 — ERPGOLD

ERPGOLD'da bu ayrım doğrudan ekrandadır: - Spot işlem: MADEN, NAKİT, HURDA… ekranlarındaki normal alış/satış; kasa o an hareket eder. - Vadeli işlem: VADELİ ekranı (İşlem kodu 6, listede V harfi). Kasa hiç hareket etmez; cari hesaba iki birimde birden bakiye yazılır — müşterinin teslim edeceği kalem bir yana, alacağı kalem öbür yana. Teslim günü ilgili MADEN/NAKİT işlemi ayrıca girilir ve vadeli bakiye kapanır. Ayrıntı §11.6.

BUNU KARIŞTIRMASpot fiyat ≠ Tezgâh fiyatı. Spot, piyasanın o anki referans fiyatıdır (ons × kur); tezgâh fiyatı onun üstüne işletmenin alış/satış makasını ve yerel arz-talebi ekler. ÖRNEK ALTIN A.Ş.'nin 4.000/4.030 yazması, dünyada hasın tam 4.000 TL olduğu anlamına gelmez (§9.3'te hesaplayacağız).

KAYNAK — SEC-VADELI (sade tanım), SCR-IFVADELI, BR-STOK-011 (vadeli stok üretmez), SECTOR_KNOWLEDGE.

8.3 Borsa ve tezgâh üstü (OTC)

Seviye 1 — Çok basit

İki tür pazar düşün: - Borsa: Kapalı, kuralları olan büyük bir salon. Herkes aynı tahtaya bakar, aynı fiyatı görür, alım-satım salonun kurallarına göre yapılır; salon yönetimi tarafların sözünü tutmasını garanti eder. - Tezgâh üstü (OTC — over the counter): Mahalle pazarı. Alıcı ile satıcı tezgâhta baş başa pazarlık eder; fiyat ikisinin arasında kalır, başka tezgâhta başka fiyat olabilir. Kural az, esneklik çok; ama karşındakinin sözünü tutacağına sen güvenmek zorundasın.

Seviye 2 — İşletme mantığı

Altın ve dövizin dünyadaki en büyük hacmi OTC'de döner: bankalar, rafineriler, büyük toptancılar birbiriyle doğrudan (telefon, elektronik platform) anlaşır. Londra altın piyasası (§9.1) OTC'dir. Borsa tarafında ise standart vadeli kontratlar işlem görür (New York COMEX, §9.1). Türkiye'de kıymetli maden ve döviz için de organize bir borsa yapısı vardır (Borsa İstanbul çatısı altında Kıymetli Madenler Piyasası); bu piyasanın kimin işlem yapabileceği, hangi standartta külçe kabul ettiği gibi kuralları mevzuata bağlıdır.

GAP-MEVZUAT — BİST Kıymetli Madenler Piyasası'na üyelik şartları, aracı kuruluş yükümlülükleri ve ilgili tebliğ madde/tarihleri bu kitapta doğrulanmadı; kesin hüküm verilmemiştir. Bu kitap için önemli olan mekanizmadır: kuyumcu borsaya doğrudan değil, genellikle bir aracı kuruluş üzerinden ulaşır.

Kuyumcu için pratik sonuç: tezgâh işi OTC'dir (müşteriyle pazarlık), büyük has alımı/satımı ise ya rafineri/toptancı ile OTC ya da aracı kuruluş üzerinden borsadır. İkisinde de fiyatın referansı aynı dünya fiyatıdır.

Seviye 3 — ERPGOLD

ERPGOLD, borsa ile konuşmaz; borsa ya da OTC'de yapılmış bir işlemin sonucunu kaydeder: "Rafineri Kuzey'den 1.000 g has, 3.100 USD/ons'tan vadeli alındı" → VADELİ ekranı, F.TİPİ Oz. Fiyatın nereden (borsa mı, telefonla pazarlık mı) geldiği ERPGOLD için fark etmez; önemli olan fiyat, miktar, birim, vade ve karşı taraf (cari hesap)'tır.

KAYNAK — SECTOR_KNOWLEDGE; SEC-ONS ("Toptan ve vadeli işlem"); SCR-IFVADELI.

8.4 Emtia, döviz ve altın piyasası

Seviye 1 — Çok basit

Emtia (commodity), "her yerde aynı olan, kim üretirse üretsin birbirinin yerine geçebilen mal" demektir: buğday, petrol, bakır, altın. Bir kilo 995 saflıkta altın külçe, Zürih'te de İstanbul'da da aynı şeydir; bu yüzden dünya çapında tek bir fiyatı olabilir. Bir bilezik ise emtia değildir — işçiliği, modeli, markası vardır; fiyatı "altın değeri + işçilik"tir.

Döviz piyasası, paraların birbiriyle takas edildiği piyasadır: USD/TL, EUR/USD. Dünyanın en büyük piyasasıdır; 7/24'e yakın açıktır.

Altın piyasası ikisinin ortasında durur: altın hem bir emtiadır (madenden çıkar, rafine edilir, külçe olur) hem de yüzyıllardır para gibi davranır (merkez bankaları rezerv olarak tutar). Bu yüzden altının fiyatı hem emtia haberlerinden hem para/faiz haberlerinden etkilenir (§9.4).

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN A.Ş. üç piyasada birden yaşar: | Piyasa | Firmadaki karşılığı | Fiyatın kaynağı | |---|---|---| | Altın (emtia) | 2.000 g has, bilezikler, hurda | Ons USD × USD/TL (§9.3) | | Döviz | Gişedeki 100.000 USD, 20.000 EUR | Bankalararası kur, EDS/pano | | Emtia dışı (işçilik, hizmet) | Bilezik işçiliği 150 TL/g | Piyasa değil, işletme belirler |

İşletmenin zor tarafı şudur: aynı anda iki piyasa riskine açıktır. Altın fiyatı ons olarak USD'de değişir, USD de TL'ye karşı değişir. Ons sabit kalsa bile USD/TL değişince gram fiyatı TL'de değişir. Pozisyon (§12) bu yüzden birim birim tutulur: HAS ayrı, USD ayrı, EUR ayrı, TL ayrı.

Seviye 3 — ERPGOLD

ERPGOLD her birimi ayrı birim kartı olarak tanır (HAS, TL, USD, EUR, GÜMÜŞ…) ve her birimin kendi kuru vardır. Maden işlemleri has üzerinden (miktar × milyem), döviz işlemleri nakit birimi üzerinden yürür. Bilezikteki işçilik ayrı bir kalemdir ve TL'de tutulur: "Maliyet" kolonu yalnız işçiliktir, metal maliyeti günün kuruyla hesaplanır (bkz. Bölüm 2 ilk yarısı, CTR-SEC-MALIYET-01).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Birimler Sistem.Birimler (V2'de 133 satır; TBL-SISTEM.BIRIMLER, ekran SCR-FRMBIRIMEKLE). Maden kartı Stok.Maden, nakit/döviz kartı Stok.Nakit (TBL-STOK.NAKIT, V2 132 / KUYUMCU 25 satır) — nakit kartının AnaBirimId'si birime bağlanır. Hangi kurulumun hangi birimde çalıştığı _data/islem_matrisi.json birim dağılımında: V2 NAKİT ağırlıklı (TL 788 bin, USD 295 bin, EUR 146 bin satır), KUYUMCU MADEN/HAS ağırlıklı (HAS 152 bin satır) — FLOW-ISLEM-MATRISI.

KAYNAK — SECTOR_KNOWLEDGE; TBL-STOK.NAKIT; FLOW-ISLEM-MATRISI (birim dağılımı, DB_QUERY 2026-09-12).

8.5 Likidite, hacim, volatilite

Seviye 1 — Çok basit

  • Likidite: "Ne kadar kolay alıp satabilirim?" Su gibi akan şey likittir. Yüz liralık banknotu her yerde bozdurursun (çok likit); nadir bir pulu satmak için haftalarca alıcı ararsın (az likit). Altın ve USD dünyanın en likit varlıklarındandır: her an bir alıcı vardır.
  • Hacim: "Bugün toplam ne kadar alınıp satıldı?" Kantinde 200 tost satıldıysa hacim 200'dür. Hacim yüksekse fiyat daha güvenilirdir — çok kişi o fiyatta anlaşmıştır.
  • Volatilite: "Fiyat ne kadar hızlı ve sert oynuyor?" Sakin bir gölde su seviyesi az değişir (düşük volatilite); fırtınalı denizde dalgalar büyüktür (yüksek volatilite). Volatilite yükseldiğinde risk de yükselir: sabah aldığını akşam çok farklı fiyattan satabilirsin.

Seviye 2 — İşletme mantığı

Bu üçü, kuyumcunun makasını (alış-satış farkı) belirler. Likit ve sakin bir piyasada makas dardır: has için 4.000/4.030 gibi. Volatilite artınca işletme makası açar: "Fiyat saatte %2 oynuyorsa, dar makasla satarsam bir saat sonra zararına yerine koyarım." Hacim ise işletmenin gün sonu pozisyonunu doğrudan etkiler: bugün 80.000 USD sattıysan ama 20.000 USD aldıysan, 60.000 USD'lik bir açık oluştu (§12.5).

ÖRNEK ALTIN A.Ş. — Sakin bir salı günü: has 4.000/4.030 (makas 30 TL). Perşembe gece dünyada büyük bir haber çıkıyor, ons bir saatte %3 oynuyor. Ayşe Demir sabah makası 3.980/4.060'a açıyor (makas 80 TL). Mehmet Kaya gişede "neden bugün pahalı" diye soran müşteriye şunu der: "Fiyat çok oynuyor; sattığım altını yerine koyarken kaç TL ödeyeceğimi bilmiyorum." Rakamlar örnektir.

Seviye 3 — ERPGOLD

  • Hacim, ERPGOLD'un doğrudan raporladığı bir şeydir: Hacim Raporu (RPT-28) dönemdeki alış/satış toplamlarını adet, has ve USD/TL karşılığıyla verir; Durum Raporu (Pozisyon Hacim) ekranı canlı gösterir.
  • Volatilite ERPGOLD'da bir sayı olarak yoktur; ama etkisi vardır: kur farkı uyarısı — kayıt anındaki fiyat kur listesinden belli bir oranda sapıyorsa program sorar ("kur sapması, devam edilsin mi?"). Bu, volatil günde yanlış fiyatla satmayı önleyen bir emniyet kemeridir.
  • Likidite ERPGOLD'un konusu değildir; işletmenin karşı taraf (rafineri, toptancı, banka) ilişkisidir.
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Hacim: RPT-28 → Reports.GetPozisyonDetayV2(@SubeId,@HesapId,@BasTarih,@SonTarih) (RFN-REPORTS.GETPOZISYONDETAYV2); Cari.Islemler alış (IslemTuru 0/4) ve satış (1/5) toplamı; USD karşılığı işlem anındaki HasKur/Kur ile. Metrik MET-ISLEM-HACMI — arbitraj/çevir iki bacaklı sayılırsa hacim ikiye katlanır (double-count notu). Kur sapma uyarısı: BR-KUR-007. Ekranlar: SCR-FRMPOZISYONHACIM, SCR-FRMPOZISYONDURUMRAPORU.

KAYNAK — SECTOR_KNOWLEDGE; RPT-28; BR-KUR-007; MET-ISLEM-HACMI.

8.6 Fiyat sağlayıcı, broker, dealer, piyasa yapıcı

Seviye 1 — Çok basit

Mahalle pazarında dört tip insan var: - Fiyat sağlayıcı: Pazarın girişindeki büyük tabelayı yazan kişi. "Bugün domates 40 TL." Kendisi satmaz, sadece herkesin baktığı fiyatı yayınlar. (Finansta: Reuters/Bloomberg gibi veri servisleri, bankaların fiyat akışları.) - Broker (aracı): Senin adına alıcı/satıcı bulan komisyoncu. Malı kendi eline almaz, seni karşı tarafla buluşturur, komisyon alır. - Dealer (satıcı/tüccar): Malı kendi alır, kendi satar; kâr farkını (makası) cebine koyar. Kuyumcu bir dealer'dır. - Piyasa yapıcı (market maker): Özel bir dealer: "Ben her zaman buradayım; şu fiyattan alırım, şu fiyattan satarım" diye sürekli çift fiyat verir. Pazarda kimse olmasa bile ondan alıp ona satabilirsin; piyasaya likidite (§8.5) verir.

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN A.Ş. müşterisine karşı piyasa yapıcı gibi davranır: tezgâhta her an "4.000 alırım / 4.030 satarım" der. Ama kendisi de birine karşı müşteridir: Rafineri Kuzey ya da bir banka ona ons fiyatı verir; o fiyat da bir fiyat sağlayıcıdan gelir. Zincir şöyledir:

Dünya piyasası (Londra/New York, §9)
   → fiyat sağlayıcı (veri akışı, banka/aracı kotasyonu)
      → toptancı / rafineri / aracı kuruluş (ÖRNEK ALTIN'a fiyat verir)
         → ÖRNEK ALTIN A.Ş. (tezgâhta müşteriye fiyat verir)
            → Kuyumcu Selim, Döviz Nuri, perakende müşteri

Her halkada bir makas vardır; her halka bir alttakine karşı "piyasa yapıcı", bir üsttekine karşı "müşteri"dir.

Seviye 3 — ERPGOLD

ERPGOLD bu zincirde en alt halkadadır: tezgâhtaki işlemi kaydeder. Üst halkalardan fiyat, ERPGOLD'a iki yoldan girer: 1. Elle: Kur Giriş Ekranı'na sabah kurlar yazılır (küçük işletme). 2. Otomatik: AIFASOFT'un EDS (Elektronik Döviz Sistemi) uygulaması bir fiyat sağlayıcıya bağlanır, kurları alır ve ERPGOLD'un kur listesine birkaç saniyede bir yazar; aynı kurlar vitrindeki panoya ve web sitesine de gider. Ayrıntı §9.5.

BUNU KARIŞTIRMAFiyat sağlayıcı ≠ Karşı taraf. Fiyat sağlayıcı sana fiyatı gösterir; karşı taraf (rafineri, banka, aracı) o fiyattan seninle işlem yapar. EDS'nin gösterdiği kurdan ERPGOLD'da işlem kaydetmen, o kurdan dünyadan altın aldığın anlamına gelmez; almak için ayrı bir karşı işlem gerekir (§11).

KAYNAK — SECTOR_KNOWLEDGE; INT-KUR-EDS; INT-TICKDATA (UNVERIFIED — sunucu adları kurulum dokümanında, ERP kodunda doğrudan çağrı yok); aifasoft_web.md (FX TRADER "birden fazla sağlayıcıdan likidite").


9. Uluslararası piyasalar — altının fiyatı dünyada nasıl oluşur?

9.1 Londra, New York, Asya

Seviye 1 — Çok basit

Dünya bir top gibi döndüğü için güneş önce Asya'ya, sonra Avrupa'ya, sonra Amerika'ya doğar. Altın piyasası da güneşi takip eder: sabah Asya (Şangay, Hong Kong, Tokyo) açıkken fiyat orada oluşur; öğlen Londra devralır; akşam New York. Bu yüzden altının fiyatı neredeyse 24 saat değişir — sen uyurken New York açıktır.

Seviye 2 — İşletme mantığı

Merkez Ne yapar Kuyumcu için anlamı
Londra (LBMA) Dünyanın en büyük fiziksel/OTC külçe piyasası; günde iki kez referans fiyat ("fixing") açıklanır; külçe standardını (LBMA "Good Delivery") belirler "Dünya fiyatı" denince çoğu zaman Londra kastedilir; rafineri sertifikaları buna göre
New York (COMEX) Vadeli kontrat borsası; kâğıt üstünde en yüksek hacim; ABD saatinde fiyatı en çok oynatan yer Akşam saatlerinde (TR saati) gelen sert hareketlerin çoğu buradan
Asya (Şangay, Hong Kong, Dubai, Tokyo) Fiziksel talep merkezleri (Çin ve Hindistan dünyanın en büyük altın tüketicileri); Türkiye saatiyle sabah açık Sabah çarşı açılırken "gece ne oldu" sorusunun cevabı

Pratik sonuç: ÖRNEK ALTIN A.Ş. akşam kapanıp sabah açıldığında dünya fiyatı çoktan değişmiştir. Gece boyunca elindeki 2.000 g has ya da müşteriye teslim etmesi gereken 1 kg, bu değişime açıktır — §11'in çıkış noktası budur.

KAYNAK — SECTOR_KNOWLEDGE (genel kabul; LBMA fixing saatleri, COMEX kontrat büyüklükleri gibi güncel ayrıntılar bu kitapta yazılmadı). "Fixing indirimi" ERPGOLD'da bir terimdir: TERM-FIXING-INDIRIMI.

9.2 Ons ve XAU/USD

Seviye 1 — Çok basit

Dünya altın konuşurken gram değil ons der. Ama dikkat: bu "troy ons"tur ve 1 ons = 31,1035 gramdır (mutfaktaki ons değil). Fiyat da TL değil USD ile söylenir: "Ons 3.100 dolar" (örnek). Finans kodunda altının adı XAU'dur (Latince aurum = altın); "XAU/USD 3.100" demek, 1 ons altın = 3.100 USD demektir.

Neden ons ve USD? Çünkü dünya piyasası tarihsel olarak Londra ve New York'ta kuruldu; ölçü ve para onların ölçüsü ve parası oldu. Türkiye'de tezgâh gram ve TL konuştuğu için her sabah bir çeviri yapılır (§9.3).

Seviye 2 — İşletme mantığı

Ons fiyatı saf (has) altın içindir. Kuyumcu için iki uyarı: 1. Ons fiyatını grama çevirince has gram fiyatı bulunur; 22 ayar bilezik gramı için ayrıca milyemle (0,916) çarpmak gerekir (bkz. Bölüm 2 ilk yarısı: has = miktar × milyem). 2. Rafineri, banka ve toptancı ile fiyat ons üzerinden anlaşılır; ERPGOLD'un VADELİ ekranı bu yüzden F.TİPİ = Oz seçeneğini ve ons çarpanını bilir.

Seviye 3 — ERPGOLD

Döviz kurulumu verisinde işlem satırlarının fiyat tipi dağılımı: 1.564.551 satır gram başına, 13.621 adet, 2.483 has, ons (Oz) ile kayıtlı satır yok. Yani ons, tezgâhın değil fiyat oluşturmanın ve vadeli/toptan tarafın kavramıdır. Ons çarpanı önce hesap kartındaki ONS CARPAN alanından, o 0 ise Genel Ayarlar ▸ Ons çarpan'dan alınır — aynı vadeli kod iki müşteride farklı tutar veriyorsa ilk bakılacak yer burasıdır (destek teması H-062).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler.FiyatTipi (Ad=0, Miktar=1, Oz=2, Has=3; ENUM-ISLEM-TFIYATTIPI); Cari.Hesaplar.OnsCarpan; Sistem.Settings.OnsCarpan. Kural BR-VADELI-002: doküman sabit 31,1035 anlatır, kodda çarpan ayardan gelir — GAP-SEC-ONS-01: canlı kurulumlardaki değer doğrulanmadı. Oz tutar formülü BR-VADELI-003: Tutar = (Miktar × Carpan × Fiyat) ÷ Ons (Kod.Carpan > Ons ise). Kavram makalesi: SEC-ONS.

KAYNAK — TERM-ONS; SEC-ONS (fiyat tipi dağılımı DERIVED, kitapçık §6); BR-VADELI-002/003; H-062.

9.3 Ons → gram altın: çevirinin mantığı

Seviye 1 — Çok basit

Elinde dünyanın fiyatı var: 1 ons = 3.100 USD (örnek). Kapalıçarşı'da müşteri "1 gram has kaç TL?" diye soruyor. Üç adım:

  1. Ons'u grama böl: 1 ons 31,1035 gram olduğuna göre 1 gram = 3.100 ÷ 31,1035 = 99,67 USD.
  2. Doları TL'ye çevir: 1 USD = 40,00 TL (örnek alış kuru) → 99,67 × 40,00 = 3.986,7 TL.
  3. Has'tan ayara in (gerekirse): 22 ayar bilezik gramı = 3.986,7 × 0,916 = 3.651,8 TL (+ işçilik).

Tek formül:

Has gram (TL) = Ons fiyatı (USD) × USD/TL kuru ÷ 31,1035
              = 3.100 × 40,00 ÷ 31,1035
              = 3.986,7 TL            ← ÖRNEK; güncel kur değildir

Bunu ezberleme, mantığını anla: ons pahalanırsa gram pahalanır; dolar pahalanırsa (USD/TL yükselirse) gram yine pahalanır. İki ayrı musluk aynı kovayı dolduruyor.

Seviye 2 — İşletme mantığı

Aynı formülü iki yöne çalıştırabilmelisin:

Değişen Sabit Sonuç
Ons 3.100 → 3.200 (+%3,2) USD/TL 40,00 Has gram 3.986,7 → 4.115,3 TL
USD/TL 40,00 → 41,00 (+%2,5) Ons 3.100 Has gram 3.986,7 → 4.086,4 TL
Ons 3.100 → 3.000 (−%3,2) ve USD/TL 40 → 41,3 (+%3,2) Has gram ≈ 3.983 TL — neredeyse hiç değişmedi

Üçüncü satır çok önemlidir: dünyada altın düşer, dolar yükselir, Türkiye'de gram fiyatı yerinde sayar. Bu yüzden Türk kuyumcusu iki riski birden taşır ve bunları ayrı ayrı izlemek zorundadır: HAS pozisyonu ve USD pozisyonu (§12).

ÖRNEK ALTIN A.Ş. — Piyasa hesabı 3.986,7 TL verirken Ayşe Demir tezgâha 4.000 alış / 4.030 satış yazıyor. Fark nereden? (a) İşletmenin makası; (b) çarşıdaki yerel arz-talep (bazı günler İstanbul dünya fiyatının üstünde, bazı günler altında işlem görür); (c) USD/TL için alış mı satış mı kullanıldığı (40,00 yerine 40,20 ile hesap 4.006,6 TL eder). Hepsi örnek sayılardır. Ders: "tezgâh fiyatı = formül" değildir; formül referans, tezgâh karardır.

Seviye 3 — ERPGOLD

ERPGOLD bu çeviriyi her işlemde otomatik yapmaz; kur listesinde HAS birimi için doğrudan bir TL alış/satış tutulur (EDS ya da elle). Yani ERPGOLD "ons × kur ÷ 31,1035" hesabını değil, onun sonucunu (has kuru) bilir. Ons hesabı yalnız VADELİ ekranında F.TİPİ = Oz seçilince devreye girer: miktar (lot × çarpan) × ons fiyatı ÷ ons çarpanı = tutar (USD).

VADELİ, F.TİPİ Oz, 1 lot has (çarpan 1.000 g), ons 3.100 USD:
Emtia = 1 × 1.000 = 1.000 g
Tutar = 1.000 × 3.100 ÷ 31,1035 = 99.667 USD      ← örnek; ons çarpanı ayardan gelir
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Kur listesinde HAS satırı: Sistem.Kurlar (Birim=HAS, Alis, Satis). EDS'de ürün Alias'ı ERP birim koduna (HAS) eşlenmezse Sistem.GetBirimToId 0 döner ve kur sessizce yazılmaz (TD-22, INT-KUR-EDS). Oz hesabı iFVadeli.TutarHesapla (BR-VADELI-003, ekran/Ekran/iFVadeli.vb satır 820–852). Vadeli fiyat çaprazı BR-KUR-004: ALIŞ = ana birim alış ÷ karşı birim satış; SATIŞ = ana birim satış ÷ karşı birim alış. Kur farkı metriği MET-KUR-FARKI = pozisyon × (kapanış kuru − maliyet kuru).

KAYNAK — SEC-ONS (hesaplama örneği, aynı formül); BR-VADELI-003; BR-KUR-004; INT-KUR-EDS. Sayılar BOOK_BRIEF örnek kurlarıdır.

9.4 Fiyatı ne oynatır? Faiz, merkez bankası, enflasyon, jeopolitik

Seviye 1 — Çok basit

Altın faiz ödemez; kasada durur, durduğu yerde para kazandırmaz. Banka mevduatı ise faiz öder. Şimdi düşün: - Banka faizi yükselirse, "altın tutmak yerine parayı bankaya koyayım" diyenler artar → altına talep düşer → altın düşer. - Faiz düşerse, banka az kazandırır → "altın alayım" → altın yükselir.

Enflasyon (paranın alım gücünün erimesi) yükselince insanlar "kâğıt para eriyor, altın erimez" diye altına kaçar → altın yükselir. Savaş, kriz, belirsizlik (jeopolitik risk) çıkınca da aynı: altın "güvenli liman"dır, herkes oraya sığınır → yükselir.

Bu yüzden altının fiyatı, dünyanın korkusu ve faizi ile oynar.

Seviye 2 — İşletme mantığı

Kimin kararı, hangi fiyatı oynatır?

Kurum Ne yapar Doğrudan etkisi ÖRNEK ALTIN'a etkisi
FED (ABD Merkez Bankası) USD faizini belirler Ons (XAU/USD) — faiz artarsa ons genelde baskılanır HAS pozisyonunun USD değeri
TCMB (Türkiye Cumhuriyet Merkez Bankası) TL faizini belirler, döviz rezervini yönetir, resmi kur ilan eder USD/TL USD/EUR pozisyonunun TL değeri; gram altının TL fiyatı
Enflasyon (her iki ülkede) Paranın değerini eritir Uzun vadede altına talep; TL enflasyonu USD/TL'yi yukarı iter Tüm pozisyonların TL değeri
Jeopolitik risk Belirsizlik Ons ani sıçrar; volatilite (§8.5) artar Makas açılır, gece riski büyür

Kural: FED ons'u, TCMB kuru oynatır; Türk kuyumcusu ikisinin çarpımıyla yaşar (§9.3 formülü). Bu kitap hiçbir güncel faiz, kur veya enflasyon oranı yazmaz; oranlar her gün değişir, mantık değişmez.

PEKİ NEDEN?Neden altın "güvenli liman" ama fiyatı bu kadar oynak? Çünkü güvenli liman uzun vadeli bir sıfattır (yüzyıllar boyunca değerini korumuştur); oynaklık ise kısa vadelidir (bugün ile yarın arasında %3 oynayabilir). Kuyumcu için tehlike kısa vadedir: malı bugün alıp yarın satar. Yıl sonunda altın yükselmiş olsa bile, arada bir gece düşüşü zarar yazdırabilir. §11 bunun çaresidir.

Seviye 3 — ERPGOLD

ERPGOLD bu haberleri bilmez; sonucunu kur listesinde görür. İki resmi kaynak ERPGOLD'a dokunur: - TCMB kuru: RESMİ (faturalı) ve MAHSUP tipli işlemlerde USD karşılığı TCMB'nin günlük kurundan alınır (giriş: alış, çıkış: satış); TCMB servisi yanıt vermezse sistem kuru kullanılır. - Piyasa kuru: EDS akışı ya da elle giriş — serbest işlemlerin kuru.

Bu yüzden aynı gün için ERPGOLD'da iki farklı USD kuru olabilir: belge kontrol tipli (RESMİ) işlem TCMB kuruyla, diğer işlemler piyasa kuruyla. Bu bir hata değil, mevzuat ile piyasanın ayrımıdır.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

TCMB: TCMB.Currency.GetUSDCurrency(Tarih) harici kütüphane; dao/Dao/Islem/Cari.Islem.vb satır 548, 611; taşıma protokolü UNVERIFIED (INT-TCMB, TERM-TCMB-KURU). Resmi/mahsup (tip 11/12) işlemler operasyonel stok/bakiye kaydı üretmez (BR-TIP-004); dolayısıyla TCMB kuruyla değerlenen resmi işlem pozisyona girmez — resmi pozisyon ayrı fonksiyonla (RPT-38, GAP-SEC-POZISYON-02).

KAYNAK — SECTOR_KNOWLEDGE (faiz/altın ilişkisi genel kabul); INT-TCMB; BR-TIP-004. Güncel oran yazılmadı (BOOK_BRIEF kuralı).

9.5 Fiyatın ERPGOLD'a yolculuğu: EDS, kur listesi, pano

Seviye 1 — Çok basit

Dünya fiyatının vitrindeki ekrana gelmesi, suyun barajdan musluğa gelmesine benzer: baraj (dünya piyasası) → ana boru (fiyat sağlayıcı) → mahalle deposu (EDS) → evdeki musluk (ERPGOLD kur listesi ve vitrin panosu). Musluktan su gelmiyorsa sorun barajda mı, boruda mı, depoda mı diye sırayla bakılır.

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN A.Ş.'de sabah 09:00: EDS sunucuda çalışır, fiyat sağlayıcısından USD, EUR, HAS ve ons fiyatlarını alır, işletmenin belirlediği marjı ekler (alış biraz aşağı, satış biraz yukarı), ERPGOLD kur listesine yazar ve vitrin panosunda gösterir. Mehmet Kaya gişede NAKİT ekranını açtığında fiyat hazırdır. Ayşe Demir "bugün makası açalım" derse EDS'deki marjı değiştirir; elle kur da girebilir (elle giriş EDS'nin bir sonraki güncellemesinde ezilir — bilinen davranış).

Seviye 3 — ERPGOLD

  • Kur Giriş Ekranı: EDS'nin yazdığı kurları gösterir; elle düzeltilir; KOPYALA ile dünden taşınır.
  • Döviz Panosu: vitrin ekranı; pano formatı ve satırları tanımlanır.
  • Fiyat akışı durursa ERPGOLD en son kurla devam eder ve uyarı vermez — en sık destek temasıdır ("kur gelmiyor", 160 çağrı).

UYARI — EDS'de ürün adı (Alias) ERPGOLD birim koduyla (USD, EUR, HAS…) birebir aynı değilse kur sessizce yazılmaz; ekranda hata çıkmaz, sadece kur eski kalır. Sabah ilk iş: kur listesinin tarihine bak.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

EDS → Sistem.KurEkle(@Symbol,@Alis,@Satis) her UpdateInterval (≈5000 ms) — SP-SISTEM.KUREKLE, INT-KUR-EDS (HIGH). Alias → birim: Sistem.GetBirimToId (0 → yazılmaz, TD-22). Pano: Sistem.DovizPanosu, Sistem.PanoFormat, INT-EDS-DISPLAY. Sağlayıcı sunucuları: INT-TICKDATA (UNVERIFIED). Yavaşlık: Sistem.Kurlar'da yılların birikmiş kaydı (H-160). Playbook: PB-061 "EDS kur akışı durdu"; süreçler PROC-29 (sağlayıcıya bağlama), PROC-53 (fiyat akışı sorunu). Modül: MOD-FX — EDS/FX Trader kaynak kodu wiki kapsamında yok, reality: DOCUMENTED.

KAYNAK — INT-KUR-EDS; MOD-FX; PRB-KUR-000 (160 çağrı); TD-22.


10. Borsa — temel seviye

Bu başlık bilerek kısa tutuldu. ERPGOLD bir borsa yazılımı değildir; kuyumcunun borsa ile teması aracı kuruluş üzerinden ve sınırlıdır. Aşağıdaki kadarını bil, fazlasına ERPGOLD için ihtiyaç yok.

10.1 Borsada ne alınıp satılır?

Seviye 1 — Çok basit

Borsa, §8.3'teki "kurallı büyük salon"dur. Salonda dört tür şey alınıp satılır: - Hisse senedi: Bir şirketin küçücük bir parçası. Alırsan şirketin ortağı olursun; şirket kazanırsa hissen değerlenir. - Tahvil: Bir devlete ya da şirkete verilen borç senedi. "Sana 100 TL veriyorum, bir yıl sonra 100 TL + faiz ver." Faiz demek tahvil demektir; §9.4'teki "faiz yükselince altın düşer" cümlesinin kahramanı budur. - Emtia: Altın, gümüş, petrol, buğday (§8.4). - Vadeli kontrat (futures): "Şu emtiayı, şu tarihte, şu fiyattan al/sat" diyen standart bir sözleşme. §8.2'deki bisiklet anlaşmasının borsa versiyonu; miktarı, teslim günü ve kalitesi borsa tarafından standartlaştırılmıştır (New York COMEX'te altın vadeli kontratı gibi).

Seviye 2 — İşletme mantığı

Kuyumcu için borsanın anlamı iki cümledir: 1. Fiyat referansı oradan gelir (COMEX vadeli fiyatı ile Londra spot fiyatı dünya fiyatını oluşturur). 2. Büyük miktar ve hedge (§11) için borsa kontratı bir araç olabilir — ama doğrudan değil, aracı kuruluş üzerinden ve teminat (marj) yatırarak.

Kuyumcunun yatırımcıdan farkı: yatırımcı fiyat yükselsin diye alır; kuyumcu iş yapmak için alır ve fiyatın değişmemesini ister. Bu fark §11'in özüdür.

10.2 Alış/satış emri, fiyat, yatırımcı

Seviye 1 — Çok basit

Borsada "almak istiyorum" demeye emir denir. İki temel emir: - Piyasa emri: "Şu an kaçsa ondan al." Hızlı ama fiyatı sen seçmezsin. - Limit emri: "3.100'den fazla ödemem; o fiyata gelirse al." Fiyatı sen seçersin ama gelmezse işlem olmaz.

Her an ekranda iki fiyat görürsün: alış (bid) — birinin şu an sana ödemeye razı olduğu en yüksek fiyat; satış (ask) — birinin sana satmaya razı olduğu en düşük fiyat. Aradaki fark makastır (spread). Tezgâhtaki "4.000 alış / 4.030 satış" ile aynı mantık; kuyumcu da müşterisine bid/ask verir (§8.6).

Yatırımcı, borsada kendi parasıyla (ya da aracı kuruluş hesabıyla) emir veren kişi ya da kurumdur.

Seviye 3 — ERPGOLD

ERPGOLD'da "emir" kavramı yoktur; işlem yapıldıktan sonra kaydedilir. Tek istisna AIFASOFT'un FX Trader ürünüdür: orada müşteri emir verir, emir MetaTrader platformuna gider, gerçekleşen emir köprü üzerinden ERPGOLD'a vadeli işlem olarak düşer (§11.4). Yani emir FX Trader'da, kayıt ERPGOLD'dadır.

BUNU KARIŞTIRMAKaldıraç (borsa) ≠ Kredi limiti (cari). FX Trader tarafında hesabın "kaldıraç" ve "marj" alanları vardır (küçük teminatla büyük pozisyon); ERPGOLD cari hesabındaki "limit" ise müşteriye tanınan borç sınırıdır. Aynı hesap kartında yan yana durabilirler ama farklı şeylerdir (TERM-MARJ, SCR-FRMMARGINLIST).

KAYNAK — SECTOR_KNOWLEDGE (borsa temel kavramları); MOD-FX; TERM-MARJ; Cari.Hesaplar.Kaldirac/Margin* (CFG-HESAP-MARGIN).


11. Hedge — fiyat riskini kilitlemek

11.1 Hikâye: 1 kg altın sattı, yarın teslim edecek

Seviye 1 — Çok basit

Salı akşamı, saat 17:30. Kuyumcu Selim, ÖRNEK ALTIN A.Ş.'ye geliyor: "Bana 1 kg has lazım, yarın sabah alayım." Zeynep Aksoy fiyatı bugünkü satış fiyatından veriyor: 1.000 g × 4.030 = 4.030.000 TL. Selim kaparo bırakıyor, yarın kalanı ödeyip altını alacak. Anlaşma tamam, fiyat kilitlendi: Selim yarın ne olursa olsun 4.030.000 TL ödeyecek.

Ama ÖRNEK ALTIN'ın kasasında 2.000 g has var; 1.000'ini yarın Selim'e verecek. Şimdi düşün: gece New York açık (§9.1). Sabah ons %3 yükseldi, has gram 4.030'dan 4.150'ye çıktı.

  • Selim 4.030.000 TL ödeyip altını alıyor — onun için harika, çünkü şimdi 4.150.000 TL eder.
  • ÖRNEK ALTIN, kasasından çıkan 1.000 g'ı yerine koymak istediğinde 4.150.000 TL ödeyecek. Dün 4.030.000'e sattığı şeyi bugün 4.150.000'e geri alıyor: 120.000 TL zarar.

Peki fiyat düşseydi? Has 3.900'e inseydi ÖRNEK ALTIN 4.030'a sattığını 3.900'e yerine koyar, 130.000 TL kazanırdı. Yani firma, farkında olmadan altın fiyatına bahis oynadı. Oysa Ayşe Demir'in işi bahis değil, bilezik satıp işçilik ve makas kazanmak. Bu istenmeyen bahse açık pozisyon denir; bahsi kapatmaya hedge.

Seviye 2 — İşletme mantığı

Zincirle gidelim:

Adım Ne oldu Terim
1 Fiyatı bugün sabitledik, teslim yarın Fiyat kilitleme — müşteriye karşı bir taahhüt
2 Yarın vereceğimiz 1.000 g'ın yerine koyma fiyatı belli değil Fiyat riski
3 Bu riske açığız: fiyat yükselirse zarar Açık pozisyon (has cinsinden "short" yöndeyiz — bkz. §12)
4 Riski kapatmak için aynı anda ters işlem yaparız: bugün akşam 1.000 g hası bugünkü fiyattan biz de alırız (Rafineri Kuzey'den, bankadan, borsa kontratıyla) Karşı işlem = hedge
5 Artık ne olursa olsun: Selim'e 4.030'dan sattık, Kuzey'den ~4.000'den aldık. Fark makastır, garantidir Risk kapandı

Hedge'in amacı daha çok kazanmak değil, istenmeyen fiyat riskini azaltmaktır. Hedge yapan kuyumcu fiyat düşünce "keşke hedge yapmasaydım" der — bu doğaldır. Ama hedge yapmayan kuyumcu bir gece bir yıllık işçilik kârını kaybedebilir. Hedge sigortadır; sigorta pahalı göründüğü gün, aslında kaza olmadığı gündür.

Seviye 3 — ERPGOLD

Salı akşamı ERPGOLD'da ne var? 1. Selim'e satış: fiyat kilitlendiği ama teslim yarın olduğu için VADELİ ekranı, İŞLEM SATIŞ, kod HAS, miktar 1.000, fiyat 4.030 TL/g, TARİH (vade) = yarın. Sonuç: kasa değişmez; Selim'in bakiyesi HAS −1.000 (alacaklı: biz ona altın vereceğiz), TL +4.030.000 (borçlu: bize para verecek). 2. Hedge (karşı işlem): Rafineri Kuzey'den vadeli ALIŞ 1.000 g (fiyat ons üzerinden, F.TİPİ Oz ya da gram TL). Sonuç: Kuzey'in bakiyesi HAS +1.000 (borçlu: bize altın verecek), USD/TL (alacaklı). 3. Çarşamba: Selim altını alır (MADEN ÇIKIŞ cari), parayı öder (NAKİT GİRİŞ cari) → vadeli bakiyeleri sıfırlanır. Kuzey altını teslim eder (MADEN GİRİŞ cari), ödeme yapılır → onun bakiyesi de sıfırlanır.

Pozisyon raporunda (§12) HAS satırı: satıştan −1.000, hedge alımından +1.000 → net değişim sıfır. İşte "fiyat riski kapandı" demenin ERPGOLD dili budur.

ÖRNEK ALTIN A.Ş. — Ali Çelik (muhasebe) çarşamba sabahı iki rapora bakar: Selim'in ekstresinde TL borç ve HAS alacak sıfırlanmış mı; Pozisyon Raporu'nda HAS net pozisyonu salı sabahkiyle aynı mı (2.000 g civarı). İkisi de tamamsa hedge tam kapanmıştır. HAS pozisyonu 1.000 g düşük çıkıyorsa hedge alımı ya girilmemiş ya yanlış birimde girilmiştir.

KAYNAK — SECTOR_KNOWLEDGE (hedge tanımı, genel kabul); SEC-VADELI ("Vadeli işlem 'kasadan çıkmadan hesaba yazılan' tipik örnektir"); SEC-POZISYON ("Aynı gün büro 23.328 USD alıp stoğa koyarsa pozisyon tekrar sıfırlanır — vadeli satışın hedge'i budur").

11.2 Risk, açık pozisyon, karşı işlem — kavramları ayrıştıralım

Seviye 1 — Çok basit

  • Risk: Sonucun ne olacağını bilmemek. Yağmur yağacak mı bilmiyorsun; şemsiye almazsan ıslanabilirsin. Islanmak "zarar", şemsiye "hedge", şemsiye taşımanın zahmeti "hedge maliyeti".
  • Açık pozisyon: Şemsiyesiz dışarıda olmak. Yağmur (fiyat) ne yaparsa sen de onu yaşarsın.
  • Karşı işlem: Islanma riskini sıfırlayan şey. Altın sattıysan altın almak; altın aldıysan altın satmak. Aynı miktar, ters yön.
  • Fiyat kilitleme: Karşı işlemi yaptığın an, alış-satış farkın (makasın) ne olursa olsun aynı kalır. Kilit budur.

Seviye 2 — İşletme mantığı

Hedge'in üç kuralı:

  1. Aynı birimde olmalı. HAS açığını USD alarak kapatamazsın; ons yükselir, dolar düşer, ikisi ayrı oynar (§9.3 tablosu). HAS açığı HAS ile, USD açığı USD ile kapanır.
  2. Aynı miktarda olmalı. 1.000 g açığı 500 g alarak kapatırsan yarısı hâlâ açıktır (kısmi hedge). Fazlasını alırsan (1.500 g) bu kez ters yönde açık oluşur (fazla hedge).
  3. Zamanında olmalı. Hedge, açık pozisyonun doğduğu anda (satışı yaptığın dakika) yapılır; "sabah bakarız" demek, geceyi açık geçirmektir.

Fiziksel işlem mi, finansal işlem mi? Hedge iki şekilde yapılabilir:

Yol Ne yaparsın Artı Eksi
Fiziksel Rafineri/toptancıdan gerçekten 1 kg has alır, kasana koyarsın Basit, anlaşılır; malın elinde Nakit bağlar; geceleyin rafineri kapalı olabilir; küçük miktarlar için zahmetli
Finansal Bir aracı/banka/platformda 1 kg'lık alış pozisyonu açarsın (vadeli kontrat, spot ons işlemi); mal gelmez, fiyat farkı hesaba yazılır 7/24 (§9.1); az nakit (teminat); küçük büyük her miktar Aracı ilişkisi, teminat, karşı taraf riski; ayrı bir hesap ve mutabakat gerektirir

Kuyumcunun fiziksel tarafı elinden çıkarken (Selim'e 1 kg) açığı finansal tarafla kapatması, sektörde en yaygın hedge biçimidir; mal sonra rafineriden fiziksel olarak alınıp finansal pozisyon kapatılır.

BUNU KARIŞTIRMAHedge ≠ Spekülasyon. İkisi de "altın alış pozisyonu açmak" olabilir; farkı niyet ve karşılıktır. Spekülatör, elinde karşılığı olmayan bir pozisyon açar ve fiyatın lehine gitmesini bekler (bahis). Hedge yapan, elinde zaten var olan bir riski (Selim'e borçlu olduğu 1 kg) ters bir işlemle sıfırlar; fiyat ne yöne giderse gitsin sonucu aynıdır. Aynı ekran, aynı emir; ama biri risk alır, öbürü risk kapatır. ERPGOLD ikisini ayırt edemez; ayırt eden Pozisyon Raporu'ndaki net rakamdır: hedge sonrası net sıfıra yaklaşır, spekülasyon sonrası net büyür.

PEKİ NEDEN?Neden bir kuyumcu altın fiyatı düşünce de kaybedebilir? Altın yükselince kazanmaz mı? Kuyumcunun elinde stok var (2.000 g has): fiyat düşerse bu stok değer kaybeder — bu long (uzun) pozisyonun riskidir. Öte yandan Selim'e 1 kg borçluysa ve elinde karşılığı yoksa, fiyat yükselince kaybeder — bu short (kısa) pozisyonun riskidir. Yani "kuyumcu altın yükselince kazanır" cümlesi ancak net long iken doğrudur; net short iken tam tersi. ERPGOLD'da hangisinde olduğunu Pozisyon Raporu'nun işareti söyler: + long, − short (stok + alacak − borç, MET-NET-POZISYON). Neden bu formül? Çünkü tetikleyici stoğu stok defterine, alacak/borcu bakiye defterine yazar; ikisinin birim bazında toplamı fiyata açık net varlıktır.

11.3 Hedge'in maliyeti ve hedge yapmamanın maliyeti

Seviye 2 — İşletme mantığı

Hedge bedava değildir: karşı işlemin de bir makası vardır (Kuzey de bize alışından pahalıya satar), finansal yolda teminat ve komisyon vardır. Ama bunu sigorta primi gibi düşün:

Salı satışı (Selim)      : 1.000 g × 4.030 = 4.030.000 TL  (kilitli)
Hedge yapılmazsa, çarşamba yerine koyma:
   fiyat 4.150 → 4.150.000 TL  → −120.000 TL
   fiyat 3.900 → 3.900.000 TL  → +130.000 TL
   → sonuç: piyango; ortalama sıfır, sapma büyük

Hedge yapılırsa (salı akşam Kuzey'den 1.000 g ~4.000):
   çarşamba fiyat ne olursa olsun kâr = 4.030.000 − 4.000.000 = +30.000 TL
   → sonuç: küçük ama kesin (makas)          ← örnek rakamlar

İşletme ikinci satırı seçmelidir; çünkü işletmenin sermayesi "piyango" için değil "makas × hacim" için vardır. Bir kuyumcu ayda 100 kg has çevirirse hedge'siz oynaklık, yılın tüm işçilik kârından büyük olabilir.

11.4 AIFASOFT'ta hedge: FX TRADER

Seviye 2 — İşletme mantığı

AIFASOFT'un web sitesi FX TRADER ürününü şöyle tanımlar (kaynak: aifasoft.com, 2026-09-12 çekimi; pazarlama metnidir, ürün özelliği iddiası olarak değil "site böyle diyor" olarak okunmalı): - "Fiziki işlem platformu"; MetaTrader 4/5 veya çalışılan fiyat sağlayıcılarla entegre; 7/24 işlem. - Birden fazla sağlayıcıdan likidite; müşteri grupları, marj tanımı; PC/tablet/mobil. - Hedge: "Yapılan her işlem otomatik olarak fiyat sağlayıcınızdan da hedge edilsin" seçeneği. - MULTIBRIDGE: birden fazla MT platformu/fiyat sağlayıcı entegrasyonuyla likidite akışı; MT4/MT5/FIX API ile "saniyede binlerce işlem paralel".

Bunun iş anlamı, §11.1'deki hikâyeyi otomatikleştirmektir: müşteri FX Trader'da 1 kg altın alış emri verir → platform aynı anda fiyat sağlayıcıda (banka/likidite sağlayıcı) ters işlemi açar → işletme hiç açık pozisyon taşımaz, yalnız makası kazanır. Destek süreç dokümanlarından bilinen ayrıntılar: - Her birim (ör. XAUUSD) için Bid Hedge / Ask Hedge açık-kapalı işaretlenir (FX Bridge kurulumu). - Unhedged Amount (hedge edilmeyecek tutar): belirli bir miktarın (örnekte 10 gram) altındaki işlemler firmanın kendi üstünde kalır, üstündekiler MetaTrader'a ya da bridge ile fiyat çekilen firmaya hedge edilir — yani küçük işlemler için işletme bilerek açık pozisyon taşır (hedge maliyetinden tasarruf), büyükleri kapatır.

Seviye 3 — ERPGOLD

ERPGOLD'un kendisinde otomatik hedge yoktur. Bunu net söyleyelim, çünkü müşteri sık karıştırır: - ERPGOLD'un ana menüsünde FX/EDS'ye ait düğme yoktur; FX Trader ve EDS ayrı uygulamalar olarak sunucuda (RDP) çalışır. - FX Trader'da gerçekleşen emirler bir köprü (Meta2ERP / Mt5ToErp_Sync / FX Sync) ile ERPGOLD veritabanına aktarılır ve ERPGOLD'da vadeli işlem (kod 6, tip −1) olarak görünür. - Yani ERPGOLD hedge'i yapmaz, hedge'in sonucunu kaydeder ve Pozisyon Raporu'nda gösterir. Hedge kararı ve icrası FX Trader'da ya da insan elindedir.

GAP — FX Trader, EDS, META2ERP ve Mt5ToErp_Sync'in kaynak kodu wiki kapsamında yoktur; davranışları yalnız 52 süreç dokümanından ve ERPGOLD tarafındaki tablo/SP'lerden bilinir (reality: DOCUMENTED). "Otomatik hedge" ifadesi web sitesi ve PROC-62/PROC-205'ten gelir; hedge'in fiyat sağlayıcı tarafında nasıl eşlendiği (emir tipi, gecikme, kısmi dolum) doğrulanamadı. MT4 emrinin ERPGOLD'a düşerken hangi kasa/hesapla eşlendiği kuralı da doğrulanmadı (MOD-FX GAP; PROC-167 bir SP'yi elle düzenleyerek KasaId sabitlemeyi anlatır — riskli bir uygulama, §11.6 teknik notu).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Köprü: MT5TOFILENEW.ex5 (MetaTrader uzman danışmanı) → MQL5/FilesMt5ToErp_Sync.exe / META2ERP.exe → SQL; ERP hesap Id eşlemesi ve saat farkı ayarı; ERPSyncMode=SaveAndSendOrder (INT-FXTRADER-MT4, PROC-70, PROC-62, PROC-205). ERP tarafı tablolar: MT4.Orders / Terminal / Swap, FX.Syncornization, Cari.FXOrders (emir ↔ ERP işlemi eşlemesi), UserForm.FXAccounts; Cari.Hesaplar.FXServerID/FXTerminalNo/FXPassword (gizli), Kaldirac, Margin*. SP: FX.StartSync, MT4.AddTicket, Sistem.MT4OrdersSync/MT4TicketsSync, Cari.VadeliIslem (IslemKodu=6, IslemTipi=−1 üretir). Kurulum farkı: V2 (döviz) kurulumunda MT4.*, FX.Syncornization, Cari.FXOrders 0 satır — köprü orada kullanılmıyor; KUYUMCU kurulumunda FXSync/SyncOrders/SyncTickets ≈26 bin kayıt (DB_QUERY 2026-09-11, MOD-FX). Marj izleme ekranı SCR-FRMMARGINLISTCari.GetMarginKontrol.

KAYNAK — DOCUMENT:_data/aifasoft_web.md#FX TRADER; PROC-62; PROC-205; INT-FXTRADER-MT4; MOD-FX (DOCUMENTED); DB_QUERY MT4/FX satır sayıları (2026-09-11).

11.5 Hedge'i insan yaparsa: ERPGOLD'da elle pozisyon kilitleme

Seviye 2 — İşletme mantığı

FX Trader kullanmayan bir kuyumcu (ÖRNEK ALTIN A.Ş. gibi) hedge'i elle yapar: gün içinde Pozisyon Raporu'na bakar, HAS ya da USD açığı büyüdüyse rafineri/banka/aracıyı arar, karşı işlemi yapar ve ERPGOLD'a vadeli ya da spot işlem olarak girer. Bu döngü:

[İşlem girildi] → [Pozisyon Raporu'nda net değişti] → [Açık, limiti aştı mı?]
      → evet → [Karşı işlem: rafineri/aracı] → [ERPGOLD'a VADELİ/MADEN/NAKİT kaydı] → [net tekrar dengede]
      → hayır → [gün sonuna kadar izle]

ERPGOLD'un bu döngüye katkısı iki yerdedir: (1) net pozisyonu canlı göstermek (Pozisyon ekranı kendini birkaç saniyede bir yeniler), (2) birim başına pozisyon limiti tanımlayıp aşımı göstermek. Karşı işlemi yapmak ve girmek insanın işidir.

UYARI — Vadeli ekranındaki ÇARPAN yanlışsa (lot × 1.000 yerine × 1) hedge miktarı 1.000 kat yanlış girilir ve pozisyon "kapandı" sanılırken açık kalır. Destek çağrılarının klasik teması: "vadeli tutar 1000 kat farklı" (H-030, PB-043). Hedge kaydından sonra mutlaka Pozisyon Raporu'nda net değişimi kontrol et.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Pozisyon limitleri: TBL-POZISYON.POZISYONLAR (tanım/limit); canlı hesaplama Pozisyon.Write (SP-POZISYON.WRITE) yalnız Sistem.Activity'de aktivite varsa yeniden hesaplar (INT-ERPBOOSTER; zamanlayıcı UNVERIFIED). GAP-SEC-POZISYON-01: limit aşım uyarısının kod yolu doğrulanmadı. Vadeli çarpan: Sistem.Vadeli.Carpan (TBL-SISTEM.VADELI, BR-VADELI-001, H-030, PB-043).

11.6 Vadeli işlem ile pozisyon kilitleme ilişkisi (kod 6, tip −1 / −2)

Seviye 2 — İşletme mantığı

Vadeli işlem hedge'in kayıt aracıdır, hedge'in kendisi değildir. Aynı VADELİ ekranıyla üç farklı şey yapılabilir:

Amaç Kayıt Pozisyona etkisi
Müşteriye ileri tarihli satış (taahhüt) VADELİ SATIŞ, HAS 1.000 HAS net −1.000 (açık doğdu)
Bu taahhüdün hedge'i VADELİ ALIŞ, HAS 1.000 (rafineri) HAS net +1.000 (açık kapandı)
Döviz-döviz ileri tarihli takas (vadeli arbitraj) VADELİ, tip ARBİTRAJ → iki bağlı bacak (EUR sat / USD al) EUR net −, USD net + (bir açık kapanır, öbürü açılır)

Üçüncü satır önemlidir: vadeli arbitraj bir hedge aracı olabilir — büro fazla EUR pozisyonunu USD'ye çevirerek EUR riskini kapatır — ama USD riskini açar. Arbitraj riski taşır, yok etmez; risk yok etmek için ters yönlü aynı birim gerekir.

Seviye 3 — ERPGOLD

VADELİ ekranında: KODU (vadeli kod kartı: ana birim, karşı birim, lot çarpanı), İŞLEM ALIŞ/SATIŞ, ÇARPAN, F.TİPİ Miktar/Oz, TARİH (vade), DÖVİZ KURU (satış ve arbitrajda görünür), tip listesi NORMAL / ARBİTRAJ / FATURA. Kayıt sonucu: - Kasa hareket etmez (stok defteri satırı yok). - Cari hesaba iki zıt işaretli bakiye satırı yazılır (mal birimi ve tutar birimi). - Teslim günü: gerçek MADEN/NAKİT işlemi girilir; vadeli bakiye sıfırlanır. Vadeli satır ile teslim satırı arasında bağ alanı yoktur; kapanış yalnız bakiyenin sıfırlanmasıyla izlenir.

Gerçek veriden (döviz kurulumu, 2026-09-12 sorgusu): vadeli-normal (tip −1) 203.549 satır, vadeli-arbitraj (tip −2) 35.097 satır; kuyumcu kurulumunda tip −1 144.378, tip −2 yalnız 5 satır. Yani döviz bürosu vadeli arbitrajı günlük iş olarak kullanır; kuyumcu neredeyse hiç kullanmaz — kuyumcunun hedge'i aynı birimde ters vadeli ya da fiziksel alımdır.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

IslemKodu = 6, IslemTuru ∈ {4 ALIŞ, 5 SATIŞ}, IslemTipi = −1 (NORMAL) / −2 (ARBİTRAJ bacağı), Vade = TARİH, BakiyeId = kodun ana birimi, HasIsc = döviz kuru, Tag = ons çarpanı (BR-VADELI-005, BR-VADELI-004). Tip −1/−2 DB kod tablosunda yoktur; koddaki tIslemTipi.VADELI = 14 ve ARBITIRAJ = 13 ile karıştırılmamalı (CTR-002/044; TERM-ARBITIRAJ-VADELI-TRANSFER-ISLEM-TIPI-13-14-15). Tetikleyici çevir/vadeli dalı (IslemKodu IN (4,5,6)): IslemTuru IN (0,2,4)Has=+|Has|, Tutar=−|Tutar|; (1,3,5) → tersi (TRG-CARI.ACCEPTTRANSACTION; BR-YON-003); stok hareketi yok (BR-STOK-011). Matris satırları: FLOW-ISLEM-MATRISI (VADELI −1/−2: Stok 0, Bakiye 100). Arbitraj bağı: VaryantId (ana −1, bağlıda ana satırın Id'si), hesaplanan IsArbitiraj (SEC-ARBITRAJ). Bakiye kartındaki "Vadeli Bakiye" sekmesi boş döner — sorgu yorum satırında (BR-BAKIYE-019); vadeli bakiye RPT-3 ile izlenir. GAP-SEC-VADELI-01: teslim işlemi ↔ vadeli satır bağ alanı yok. PROC-167 notu: "işlem pozisyona etki etmiyor" sürecinde Cari.VadeliIslem SP'sine 7 as KasaId gibi sabit değer yazılarak düzeltme anlatılır — kurulum-özel elle SP düzenlemesi; kalıcı çözüm değil, teknik borç adayı (bu kitabın bulgu dosyasında GAP olarak işaretlendi).

KAYNAK — SEC-VADELI; SEC-ARBITRAJ; BR-VADELI-001..005; FLOW-ISLEM-MATRISI (DB_QUERY 2026-09-12: V2 −1 203.549 / −2 35.097; KUYUMCU −1 144.378 / −2 5); TRG-CARI.ACCEPTTRANSACTION; PROC-167.

SIK YAPILAN HATALAR — Hedge ve vadeli

Yeni çalışan: Vadeli satışı MADEN ekranından "cari satış" olarak girmek — stok düşer, müşteri has borçlu görünür; oysa mal daha teslim edilmedi ve sayım tutmaz. Vade varsa VADELİ ekranı. · Hedge alımını TL biriminde kaydedip HAS açığını kapattığını sanmak — pozisyon HAS'ta açık kalır.

Müşteri: "ERPGOLD'a girdim, otomatik hedge oldu mu?" — hayır; ERPGOLD kaydeder, hedge FX Trader'da ya da elle yapılır. · Unhedged Amount'un altındaki küçük işlemlerin firmada kaldığını unutup "hedge çalışmıyor" demek (PROC-205).

Destek personeli: "Vadeli tutar 1000 kat yanlış" çağrısında kodun ÇARPAN'ına bakmadan ons çarpanını değiştirmek (H-030 vs H-062 farkı). · "İşlem pozisyona etki etmiyor" için önce işlem tipinin PEŞİN/RESMİ olup olmadığına, tetikleyicinin açık olduğuna (H-006) ve kasaya bakmadan SP düzenlemeye gitmek (PROC-167).

Geliştirici: Tip −1/−2'yi tIslemTipi enum'unda aramak (yok; −1 "tip gerekmiyor", −2 arbitraj bacağı). · −2'yi "devir ayracı" sanıp arbitraj hacmini raporlardan düşürmek (SEC-ARBITRAJ CTR notu). · Pozisyon fonksiyonlarının V1/V2/V3 sürümlerinde vadeli dahil/hariç farkını bilmeden rapor değiştirmek (MET-NET-POZISYON).


12. Pozisyon — firma neye açık?

12.1 Kasa örneği: 500.000 TL, 100.000 USD, 2.000 g altın

Seviye 1 — Çok basit

Ali'nin odasında üç kumbara var: birinde 500 TL, birinde 100 dolar, birinde de 2 gram altın (küçük bir kolye). Bir hafta sonra Ali'nin "serveti" değişti mi? Kumbaralara dokunmadı ama: - 500 TL hâlâ 500 TL (Türkiye'de yaşıyor, TL onun ölçüsü). - 100 dolar, kur 40'tan 42'ye çıktıysa 4.000 TL'den 4.200 TL'ye kendiliğinden çıktı. - 2 gram altın, gram 4.000'den 3.900'e düştüyse 8.000'den 7.800'e kendiliğinden indi.

Ali hiçbir şey yapmadan +200 − 200 = 0 TL. Şanslı; ama dolar düşüp altın da düşseydi iki taraftan kaybederdi. Ali'nin pozisyonu şudur: TL'de 500, USD'de 100, HAS'ta 2 g. Pozisyon, "hangi birimde ne kadar varlığım fiyata açık" sorusunun cevabıdır.

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN A.Ş., pazartesi sabahı, MERKEZ kasası (bkz. BOOK_BRIEF başlangıç durumu; sayılar örnek):

Birim Kasa (fiziksel) Müşteriden alacak Müşteriye borç Net pozisyon Yön
TL 500.000 +500.000 (bilanço birimi; kur riski yok)
USD 100.000 Döviz Nuri 5.000 +95.000 long
EUR 20.000 +20.000 long
HAS 2.000 + 1.374 + 468 + 210 = 4.052 (tüm ayarların has karşılığı) Kuyumcu Selim 150 Toptancı Yusuf 400 +3.802 long

Okuma: Firma her şeyde long; yani dolar, euro ve altın düşerse kaybeder, yükselirse kazanır. Bu yüzden Ayşe Demir "altın yükselsin" ister — ama §11'de gördük ki bu, işletmenin seçtiği değil, doğal olarak içine düştüğü bir bahistir. Sayıların sağlaması: has karşılıkları 22 ayar 1.500 × 0,916 = 1.374; 14 ayar 800 × 0,585 = 468; hurda 300 × 0,700 = 210.

TL'ye çevirirsek (örnek alış kurları: USD 40,00 · EUR 46,00 · has 4.000):

USD  +95.000 × 40,00 =  3.800.000 TL
EUR  +20.000 × 46,00 =    920.000 TL
HAS   +3.802 × 4.000 = 15.208.000 TL
TL   +500.000        =    500.000 TL
                       ------------
Toplam varlık (örnek)  20.428.000 TL  → bunun 19.928.000 TL'si kur/altın fiyatına AÇIK

Has 100 TL düşerse (4.000 → 3.900): 3.802 × 100 = 380.200 TL buharlaşır — hiçbir işlem yapılmadan. Bir bileziğin işçiliği 150 TL/g ise bu, 2.535 g bilezik satmanın işçilik kârıdır. Pozisyonu bilmemek, bunu görmemektir.

Seviye 3 — ERPGOLD

Bu tablo ERPGOLD'da Pozisyon ekranıdır (Hesap Yönetimi ▸ Rapor ▸ Pozisyon): her satır bir birim; sütunlar Bakiye (birimdeki net durum), Kur1 (birimin alış kuru), Kur2 (bilanço biriminin kuru), Pozisyon (TL karşılığı = Bakiye × Kur1 ÷ Kur2), BBirim (bilanço birimi). En altta DURUM satırı TL dışındaki pozisyonların toplamıdır. Artı yeşil, eksi kırmızı. Tarih kutusuyla geçmiş günün pozisyonu görülür. Aynı bilgi menü raporu olarak Pozisyon Raporu (RPT-18)'dir.

UYARI — Kur listesi boşsa (o gün kur girilmemiş/EDS durmuş) Pozisyon ekranındaki TL karşılıkları 0 görünür; "pozisyon sıfır" değildir, kur yoktur (PB-036, H-124).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

SCR-FRMPOZISYON (FrmPozisyon, RefreshFormBase, ABS(Bakiye) > 1 filtresi) → Pozisyon.GetPozisyon(Şube) → TBL-POZISYON.POZISYONLAR, servis Pozisyon.Write yeniden hesaplar; geçmiş gün Pozisyon.GetOldPozisyon(Şube,Tarih) (RFN-POZISYON.GETOLDPOZISYON) — RPT-18 aynı fonksiyonu çağırır. Pozisyon.Write bakiye hesabı: Cari.BakiyeIslem kasa/birim toplamı + nakit stokları + maden stokları (Miktar × StabilMilyem) + takoz (raporlu AuHas/AgHas; raporsuz takoz 0) — bilançoda ise raporsuz takoz 0,6 ile değerlenir (BR-BAKIYE-009); aynı takoz iki raporda iki değer — CTR (SYM-POZISYON #9). Bilanço birimi Sistem.Subeler.BilancoBirimId; bakiyeler alış kuruyla çevrilir (BR-BAKIYE-018).

KAYNAK — BOOK_BRIEF başlangıç durumu (örnek); SCR-FRMPOZISYON; RPT-18; MET-NET-POZISYON; PB-036.

12.2 Bir işlem sonrası pozisyon nasıl değişir?

Seviye 1 — Çok basit

Ali kolyesini (2 g) arkadaşı Mehmet'e 8.000 TL'ye satarsa: altın kumbarası boşalır, TL kumbarasına 8.000 girer. Artık altın düşse de yükselse de Ali'yi ilgilendirmez; pozisyonu TL'ye kaydı.

Ama Ali kolyeyi verip parayı haftaya alacaksa? Kolye gitti, para gelmedi; elinde Mehmet'ten 8.000 TL alacak var. Pozisyon yine TL'ye kaydı (alacak TL cinsinden). Peki Mehmet "sana haftaya 2 gram altın vereceğim" deseydi? Kolye gitti ama 2 g altın alacağı geldi: altın pozisyonu değişmedi. Fark, borcun hangi birimde olduğudur.

Seviye 2 — İşletme mantığı

Salı: Kuyumcu Selim'e 600 g 22 ayar bilezik satıldı (has 600 × 0,916 = 549,6 g), işçilik 600 × 150 = 90.000 TL. Üç farklı anlaşma, üç farklı pozisyon:

Anlaşma Stok (HAS) Selim bakiyesi HAS net TL net
A. Peşin TL (549,6 × 4.030 + 90.000 = 2.304.888 TL nakit) −549,6 değişmez −549,6 +2.304.888
B. Cari, has bazlı ("hası has olarak borçlan, işçiliği TL") −549,6 HAS +549,6 borçlu; TL +90.000 borçlu 0 +90.000
C. Cari, TL bazlı (tüm tutar TL borç) −549,6 TL +2.304.888 borçlu −549,6 +2.304.888

Okuma: - A ve C aynı pozisyon etkisini yapar: HAS azaldı, TL arttı. Firma altında daha az long (hatta başka satışlarla short'a düşebilir); has yükselirse kaybeder, çünkü Selim'e verdiği altını yerine koymak pahalanır. - B'de has pozisyonu hiç değişmedi: mal gitti ama has alacağı geldi. Kuyumcular arasında "has hesabı" çalışmanın sebebi budur — fiyat riski taşınmaz, yalnız işçilik konuşulur.

PEKİ NEDEN?Neden stok azalırken pozisyon değişmiyor (B senaryosu)? Çünkü pozisyon = stok + alacak − borç. Tetikleyici cari has satışında iki kayıt (stok/bakiye) yazar: stok defterine −549,6 (mal çıktı), bakiye defterine +549,6 (Selim has borçlu). Toplam 0. ERPGOLD'un stok ve bakiye kayıtlarını ayrı tutmasının sebebi tam olarak budur: "nerede" (stok) ile "kime ait" (bakiye) ayrılınca, ikisinin toplamı "riske açık net"i verir.

Seviye 3 — ERPGOLD

  • A: MADEN ekranı, ÇIKIŞ/SATIŞ, tip PEŞİN (kuyumcu kurulumunda genelde NORMAL + kasa nakit satırıyla) → stok defterine maden −600 g / −549,6 has ve nakit +2.304.888 TL; bakiye satırı yok (peşin bakiye yazmaz — ama dikkat: BakiyeId=0 peşin demek değildir, bkz. Bölüm 2 ilk yarısı).
  • B: MADEN ekranı, cari hesap Selim, birim HAS → stok −549,6 has; bakiye HAS +549,6, TL +90.000.
  • C: MADEN ekranı, cari hesap Selim, tutar birimi TL → stok −549,6 has; bakiye TL +2.304.888.

Pozisyon ekranında HAS satırı: A ve C'de düşer, B'de yerinde kalır. Haftalık hikâyenin tamamı için bkz. Bölüm 7.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Defter üretim kuralı BR-DEFTER-URETIMI: bakiye defteri @IslemTipi<>1 and @BakiyeId>0 and @Miktar<>0 → mal satırı; @IslemTipi<>1 and @Tutar<>0 → para satırı (TRG satır 406–416). Kuyumcu kurulumunda cari işlemlerin %60,3'ü stok da üretir (fiziksel mal gerçekten çıkar). Has = Miktar × Milyem; AuMilyem 0 ise 1 (TRG-CARI.ACCEPTTRANSACTION). Pozisyon fonksiyonu Pozisyon.GetPozisyonV3 = Bilanco.OzetBilanco satırlarının GELIR/GIDER hariç SUM(Bakiye) (RFN-POZISYON.GETPOZISYONV3); devir satırları (IslemId=−1) dahil. Peşin tip (1) bakiye yazmaz (BR-TIP-002); BakiyeId=0 ile eş anlamlı değildir (CTR-SEC-BAKIYE-01).

KAYNAK — BR-DEFTER-URETIMI; TRG-CARI.ACCEPTTRANSACTION; SEC-POZISYON ("Sık karıştırılan: Pozisyon ↔ Stok"); FLOW-ISLEM-MATRISI.

12.3 Kasa ≠ Stok ≠ Bakiye — üçlüyü kesin ayır

Seviye 1 — Çok basit

Bir bakkal düşün: - Kasa: Çekmecedeki para. Sayarsın, o kadardır. - Stok: Raftaki mal. Sayarsın, o kadardır. - Bakiye: Veresiye defteri. "Ahmet 300 TL borçlu, Ayşe'ye 50 TL borçluyum." Sayılmaz, yazılır; elinde değil, hesaptadır.

Üçü de "bakkalın varlığı"dır ama üçü de ayrı yerde durur ve ayrı sayılır. Kuyumcuda para (TL, USD, EUR) ve mal (altın) ikisi de fiyata açık olduğu için üçlü daha da önemlidir.

Seviye 2 — İşletme mantığı

Kavram Nedir Kim sayar / nasıl kanıtlanır Fiyata açık mı ERPGOLD defteri
Kasa Vezneye fiziksel nakit: TL, USD, EUR banknot Mehmet Kaya akşam sayar (kasa sayımı) Döviz kısmı evet, TL hayır Nakit stok defteri (nakit hareketleri)
Stok Vezne/kasada fiziksel maden: has, bilezik, hurda, takoz Zeynep/Mehmet tartar (stok sayımı, mutabakat) Evet Maden stok defteri
Bakiye Cari hesabın birim bazında alacak/borç durumu: Selim 150 g has borçlu, Nuri 5.000 USD alacaklı Ali Çelik ekstre ile müşteriyle mutabakat yapar Evet (has/USD alacak fiyata açık) Bakiye defteri
Pozisyon Üçünün birim bazında toplamı: stok + alacak − borç Rapor; kimse "sayamaz", hesaplanır Evet — tam da bunu ölçer Pozisyon raporu (stok ve bakiye kayıtlarının toplamı)

ERPGOLD'un dilinde kasa kelimesi bir tuzak taşır: "kasa" hem paranın kendisi (kasa sayımı) hem de vezne/banko (MERKEZ kasası, ŞUBE-2 kasası — her işlemin yazıldığı yer) anlamına gelir. Nakit para ERPGOLD'da ayrı bir "kasa defteri"nde değil, stok defterinin nakit satırlarında tutulur: "kasada 100.000 USD var" = "nakit stoğu USD 100.000".

BUNU KARIŞTIRMA — dört çift: - Kasa ≠ Cari: Kasa fiziksel paradır; cari hesap bir kişi/firma ile ilişkidir. "Selim'in kasası" diye bir şey yoktur; Selim'in bakiyesi vardır. Kasadan Selim'e 10.000 TL verdiysen kasa −10.000 (stok defteri, nakit), Selim +10.000 borçlu (bakiye defteri) — iki ayrı defter, iki ayrı satır. - Stok ≠ Bakiye: Stok "nerede duruyor" (elimde 549,6 g has), bakiye "kime ait" (Selim bana 549,6 g borçlu). Peşin işlem stok yazar bakiye yazmaz; cari işlem bakiye yazar, kuyumcuda çoğu zaman stok da yazar. İkisi toplanmaz, ikisi karşılaştırılmaz; ikisi pozisyonda buluşur. - Pozisyon ≠ Bakiye: Bakiye tek hesabın durumu; pozisyon tüm hesaplar + tüm stok, şirket düzeyi. "Pozisyon + bakiye" toplamı anlamsızdır — aynı defter iki kez sayılır. - Kasa (para) ≠ Kasa (vezne): "MERKEZ kasası" bir yerdir; içindeki TL/USD/EUR nakit stoğudur. Şubede kasa (vezne) tanımlı değilse hiç işlem yapılamaz ("Sube, Kasa veya Hesap Seçili Değil").

Seviye 3 — ERPGOLD

Üçlünün ekranları: - Kasa (nakit): Nakit Stokları (Kasa Durum Raporu) ekranı; raporlar Nakit Stok Hareket (RPT-9) ve Nakit Stok Özet (RPT-10). - Stok (maden): Maden Stokları (Maden Durum Raporu); RPT-7/RPT-8; sayım: Sayım Ekranı ve Mutabakat (dikkat: ERPGOLD'daki Mutabakat/MutabakatOnay ekranları stok sayım mutabakatıdır, cari mutabakat değil). - Bakiye (cari): CARİ İŞLEMLER ekranının sol altındaki BAKİYE kartı; ekstre raporları (RPT-1 vb.); cari mutabakat işlem satırındaki Mutabakat/MTarih alanlarıyla. - Pozisyon: Pozisyon ekranı ve RPT-18; hacim için RPT-28.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
Kavram Kart / tanım Defter (tetikleyici üretir) Okuyucu
Kasa (nakit) Stok.Nakit (nakit/döviz kartı, AnaBirimId); vezne: Sistem.Kasalar (KasaId) Stok.StokHaraketleri nakit satırları (V2'de stok defterinin %98'i nakit: 1.593.961 satır) Stok.GetNakitStoklari, SCR-FRMNAKITSTOKLARI
Stok (maden) Stok.Maden, Stok.Takoz Stok.StokHaraketleri maden satırları (Miktar, Has = Miktar × Milyem) Stok.GetMadenStoklari, SCR-FRMMADENSTOKLARI
Bakiye Cari.Hesaplar Cari.BakiyeIslem (Bakiye + borçlu / − alacaklı; KasaId var ama GetBakiye kullanmaz — bakiye kasaya bölünmez) Bakiye.GetBakiye, Cari.ToplamBakiye
Pozisyon Pozisyon.Pozisyonlar (tanım/limit + ön hesap) — (türetilir: SUM(StokHaraketleri.Miktar) + SUM(BakiyeIslem.NetBakiye), MET-NET-POZISYON) Pozisyon.GetPozisyon/V1–V3/GetOldPozisyon, MüşteriŞemasıD.GetPozisyon (müşteri-özel)

Tek yazma noktası Cari.Islemler; üç defteri Cari.AcceptTransaction üretir, her kayıt/düzeltmede sil-yeniden-yaz (BR-STOK-006). Elle BakiyeIslem düzeltmesi yapılmaz (BalanceRepair riski). Stok sayım mutabakatı FLOW-MUTABAKAT; kavramlar SEC-STOK, SEC-BAKIYE, SEC-POZISYON, TERM-KASA.

KAYNAK — SEC-STOK; SEC-BAKIYE; SEC-POZISYON; TERM-KASA; MET-NET-POZISYON; BOOK_BRIEF "ERPGOLD gerçekleri".

12.4 Pozisyon = stok + alacak − borç: raporlar

Seviye 2 — İşletme mantığı

Formülü bir kez daha, bu kez işaretleriyle:

Net pozisyon (birim) = Stok (kasadaki fiziksel)
                     + Alacak (müşteriler bize borçlu; bakiye defterinde +)
                     − Borç   (müşteriler bizden alacaklı; bakiye defterinde −)

Pazartesi HAS: 4.052 + 150 (Selim) − 400 (Yusuf) = +3.802 g → long
Pazartesi USD: 100.000 + 0 − 5.000 (Nuri) = +95.000 → long

İki rapor, iki soru: - Pozisyon Raporu (RPT-18): "Şu an neye açığım?" — tarih kesiti, birim bazında net. Yönetim ve hazine kullanır; kur riski yönetiminin ana raporudur. - Hacim Raporu (RPT-28): "Dönemde ne kadar alıp sattım?" — alış toplamı, satış toplamı, adet/has/USD/TL karşılığı; müşteri veya ürün kırılımı. Satış ve yönetim kullanır.

Hacim pozisyonu açıklar: bugün 80.000 USD sattım, 20.000 aldım (hacim) → pozisyon 60.000 USD düştü (pozisyon). Hacim büyük, pozisyon küçük olabilir (çok alıp çok satan, dengeli büro); hacim küçük, pozisyon büyük olabilir (az işlem ama hep aynı yöne).

BUNU KARIŞTIRMAHacim ≠ Pozisyon. Hacim alış + satış toplamıdır (akış), pozisyon alış − satış farkıdır (durum). Arbitraj/çevir iki bacaklı sayılırsa hacim ikiye katlanır; pozisyon değişmez.

Seviye 3 — ERPGOLD

RPT-18 parametresi tek: Tarih. RPT-28 parametreleri: Başlangıç/Bitiş tarihi, Hesap (boşsa tümü). Resmi (faturalı) işlemler her iki serbest rapora girmez; resmi pozisyon için Resmi Pozisyon (RPT-38) ayrıdır. Vadeli işlemlerin pozisyona dahil edilip edilmediği rapor fonksiyonunun sürümüne göre değişir — aynı gün iki farklı pozisyon rakamı görürsen ilk soru "hangi fonksiyon, vadeli dahil mi?" olmalıdır.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

RPT-18: Select * from Pozisyon.GetOldPozisyon(@SubeId,@Tarih) (AifaDev.Reports.Id=18, 2017). RPT-28: Reports.GetPozisyonDetayV2(@SubeId,@HesapId,@BasTarih,@SonTarih) (Id=28, 2018) — Cari.Islemler IslemTuru 0/4 alış, 1/5 satış; USD karşılığı işlem anındaki HasKur/Kur. Diğer: RPT-38 resmi pozisyon, RPT-80, RFN-POZISYON.GETHACIMRAPORU. Vadeli dahil/hariç: MET-NET-POZISYON "fonksiyona göre (V1/V2/V3)" — GAP-SEC-POZISYON-01 satır bazında belgelenmemiş. Double-count: pozisyon + bakiye toplanmaz; arbitraj bacakları (MET-ISLEM-HACMI). Aynı birim iki kez tanımlıysa pozisyonda çift satır (H-131, PB-040). Belirti zinciri: SYM-POZISYON (68 çağrı: "pozisyon yanlış", "pozisyonda aynı birim iki kez", "işlem pozisyona etki etmiyor").

KAYNAK — RPT-18; RPT-28; MET-NET-POZISYON; MET-ISLEM-HACMI; SYM-POZISYON; PRB-POZISYON-000 (68 çağrı).

12.5 Gün sonu örneği: sabah 100.000 USD, gün içinde 80.000 sattı, 20.000 aldı

Seviye 1 — Çok basit

Sabah kumbarada 100 dolar. Gün boyunca 80 dolar sattın, 20 dolar aldın. Akşam kumbarada 100 − 80 + 20 = 40 dolar. Bu 40 dolar gece boyunca kurun insafına kalır. 100 dolarla başladığın için sabah "çok dolarım var, kur yükselse iyi" diyordun; akşam 40 dolarla aynı cümle daha az doğru. Ve dikkat: sattığın 80 doların karşılığında aldığın TL, artık kurdan etkilenmiyor — pozisyonun bir kısmı USD'den TL'ye kaydı.

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN A.Ş. döviz gişesi, Mehmet Kaya, cuma (tüm işlemler peşin; kurlar örnek: alış 40,00 / satış 40,20):

Sabah:   USD kasa 100.000  ·  TL kasa 500.000  ·  Nuri'ye USD borç 5.000
Gün içi: 80.000 USD SATIŞ  × 40,20 = 3.216.000 TL kasaya girdi, 80.000 USD çıktı
         20.000 USD ALIŞ   × 40,00 =   800.000 TL kasadan çıktı, 20.000 USD girdi

Akşam:   USD kasa = 100.000 − 80.000 + 20.000 =  40.000
         TL kasa  = 500.000 + 3.216.000 − 800.000 = 2.916.000
         USD net pozisyon = 40.000 (stok) − 5.000 (Nuri borç) = +35.000 → long
         Gün içi gerçekleşen makas kârı: 20.000 × (40,20 − 40,00) = 4.000 TL
           (yalnız birbirini karşılayan 20.000 USD'lik alış-satış çifti için)

Şimdi pozisyon riski: sabah 95.000 USD long'dan akşam 35.000 USD long'a indi. İyi mi kötü mü? Ne iyi ne kötü — daha az açık. Ama şunu gör: gün içinde 60.000 USD net sattı. Bu 60.000 USD'yi yarın müşteriler yeniden isteyecek; Mehmet yarın sabah bankadan/toptancıdan USD almak zorunda. Gece kur 40,20'den 41,00'e çıkarsa, bugün 40,20'ye sattığı 60.000 USD'yi 41,00'e yerine koyar: 60.000 × 0,80 = 48.000 TL yerine koyma zararı — bugünkü 4.000 TL makas kârının 12 katı.

Kur düşerse tersi: 39,50'ye yerine koyar, 42.000 TL kazanır. Yine aynı ders: makas kesin, pozisyon piyango. Ayşe Demir'in cuma akşamı iki seçeneği var: 1. Kapat: Bankadan 60.000 USD alıp pozisyonu sabahki seviyeye getir (hedge, §11). Yarın ne olursa olsun tezgâh makasla çalışır. 2. Taşı: "Kur düşer" diye açık bırak. Bu artık spekülasyondur; bilinçli yapılıyorsa ve limit içindeyse yönetim kararıdır, farkında değilse hatadır.

ÖRNEK ALTIN A.Ş. — Cuma 18:00, gün sonu. Ali Çelik Pozisyon ekranını açar: USD satırı Bakiye +35.000, Kur1 40,00, Pozisyon 1.400.000 TL. Sabahki 95.000'e göre 60.000 düşük. Ayşe Demir'e sorar: "60.000 USD net sattık, gece kapatalım mı?" Ayşe: "20.000'ini bankadan al, 40.000'i hafta sonuna taşıyalım; limitimiz 50.000." Mehmet bankadan 20.000 USD alır (NAKİT ALIŞ, peşin) → USD net +55.000. Pazartesi bakılır. Rakamlar örnek.

Seviye 3 — ERPGOLD

Gün içindeki her işlem NAKİT ekranından girilir (döviz kurulumu %83 NAKİT çalışır): SATIŞ 80.000 USD → stok defteri USD −80.000 / TL +3.216.000; ALIŞ 20.000 USD → USD +20.000 / TL −800.000. Peşin işlemlerde bakiye satırı yoktur; Nuri'nin 5.000 USD alacağı önceki cari işlemden bakiye defterindedir. Gün sonu: - Nakit Stokları ekranı: USD 40.000, TL 2.916.000 (kasa sayımıyla tutmalı). - Pozisyon ekranı: USD Bakiye +35.000 (40.000 stok − 5.000 Nuri). - Hacim Raporu (RPT-28) bugün için: USD satış 80.000, alış 20.000. - Kur farkı: dönem sonunda açık pozisyon × (kapanış kuru − maliyet kuru) ayrı bir kalem olarak bilançoda görünür; makas kârı ile toplanabilir ama karıştırılmaz.

PEKİ NEDEN?Neden Pozisyon ekranı 40.000 değil 35.000 gösteriyor, kasada 40.000 var? Çünkü Nuri'ye 5.000 USD borçluyuz; o 5.000 kasada duruyor ama bizim değil. Nuri yarın gelip alırsa kasada 35.000 kalır. Pozisyon "kasada ne var"ı değil "gerçekten benim olan ve fiyata açık olan ne"yi ölçer. Tetikleyici Nuri'nin işlemini bakiye defterine −5.000 yazmıştı; pozisyon fonksiyonu stok (+40.000) ile bakiyeyi (−5.000) toplar.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

NAKİT peşin satırı: IslemKodu=3, IslemTuru 0/1 (GİRİŞ/ÇIKIŞ), IslemTipi 0 ya da 1; V2'de en büyük hacim (255.876 + 255.511 satır NORMAL, FLOW-ISLEM-MATRISI). Stok defteri nakit satırı: mal satırı ± miktar, para satırı ∓ tutar (BR-TIP-003); FLOW-IFNAKIT, SCR-IFNAKIT. NAKİT satırlarında BakiyeId=0'dır ve yine de cari işlemde bakiye yazar (CTR-SEC-BAKIYE-01) — "BakiyeId=0 → peşin" çıkarımı yapma. Kur farkı: MET-KUR-FARKI, Bilanco.GetKurFarki; bilanço kalemleri BR-BILANCO-001. Pozisyon limitleri: Pozisyon.Pozisyonlar tanım satırları; aşım uyarısı kod yolu GAP. Kur değişince bilançonun değişmesi hata değildir (H-129).

KAYNAK — BOOK_BRIEF örnek durum ve kurlar; BR-TIP-003; FLOW-ISLEM-MATRISI; MET-KUR-FARKI; H-129; SEC-POZISYON (hesaplama örneği aynı mantık).

SIK YAPILAN HATALAR — Pozisyon, kasa, stok, bakiye

Yeni çalışan: Kasadaki USD'yi pozisyon sanmak (Nuri'nin 5.000'ini unutmak). · Bakiye kartındaki artıyı "müşteri alacaklı" okumak — ERPGOLD'da artı = müşteri borçlu. · "Pozisyon sıfır" görüp sevinmek — kur listesi boş olabilir (PB-036). · Stok sayım mutabakatı (Mutabakat ekranı) ile cari mutabakatı (ekstre) karıştırmak.

Müşteri: "Pozisyon tutmuyor" derken hacimle pozisyonu karıştırmak; aynı birimi iki kez tanımlayıp çift satır görmek (H-131); işlem girip pozisyonun değişmemesine şaşırmak — işlem PEŞİN/RESMİ olabilir ya da has bazlı cari satış pozisyonu değiştirmez (B senaryosu).

Destek personeli: "Pozisyon yanlış" çağrısında hangi rapor/fonksiyon (GetPozisyon, V1–V3, GetOldPozisyon, MüşteriŞemasıD.GetPozisyon) olduğunu sormadan teşhise başlamak; raporsuz takozun pozisyonda 0, bilançoda 0,6 milyemle değerlendiğini bilmemek (CTR); tetikleyici kapalıyken (H-006) defter üretilmediğini atlamak.

Geliştirici: Cari.BakiyeIslem'i elle düzeltmek (BalanceRepair riski); pozisyon + bakiye toplayan rapor yazmak (aynı defter iki kez); hacim raporunu stok kaydından yazıp belge kontrol satırlarını (V2'de tutarın %25'i) kaybetmek; Pozisyon.GetPozisyon (tanım tablosunu okur) ile GetPozisyonV3 (hesaplar) adlarını aynı sanmak.


Bölüm sonu sınavı — Piyasalar, Hedge, Pozisyon (§8–12)

§8–§12 için. Sayılar ÖRNEK ALTIN A.Ş.'nin örnek kurlarıdır.

Kolay (5)

  1. Piyasada fiyat kim tarafından belirlenir: satıcı mı, alıcı mı, başka bir şey mi?
  2. "Spot" ile "vadeli" işlemin farkı nedir? Bir cümleyle.
  3. 1 troy ons kaç gramdır ve dünya altın fiyatı hangi birim ve para ile söylenir?
  4. Hedge'in amacı nedir? "Daha çok kazanmak" cevabı neden yanlıştır?
  5. Pozisyon formülünü yaz: net pozisyon = ? + ? − ?

Orta (5)

  1. Ons 3.100 USD, USD/TL 40,00 iken has gram TL fiyatını hesapla; sonra 22 ayar gram fiyatını (milyem 0,916) bul. (Örnek kurlar.)
  2. Ons %3 düşerken USD/TL %3 yükselirse Türkiye'de gram altın fiyatına ne olur? Bu, kuyumcunun pozisyonu neden birim birim izlemesi gerektiğini nasıl açıklar?
  3. Kasa, stok ve bakiye arasındaki farkı; her birinin ERPGOLD'da hangi defterde tutulduğunu yaz.
  4. FX TRADER'daki "otomatik hedge" ile ERPGOLD arasındaki ilişkiyi açıkla: hedge nerede yapılır, ERPGOLD ne yapar?
  5. VADELİ ekranındaki tip −1 ile −2 ne anlama gelir; hangi kurulum −2'yi çok kullanır, hangisi neredeyse hiç?

Senaryo (5)

  1. ÖRNEK ALTIN A.Ş. salı 17:30'da Kuyumcu Selim'e 1.000 g has sattı, teslim çarşamba sabahı, fiyat 4.030 TL/g. Hedge yapılmadı; gece has 4.150'ye çıktı. Firma ne kaybetti, neden? Ayşe Demir salı akşamı ne yapmalıydı ve bunu ERPGOLD'a hangi ekranla, ne olarak kaydederdi?
  2. Pazartesi HAS pozisyonu: stok 4.052 g, Selim 150 g borçlu, Yusuf 400 g alacaklı. Salı Selim'e 600 g 22 ayar bilezik has hesabıyla cari satıldı (işçilik TL). Salı akşamı HAS pozisyonu kaç? Peşin TL satılsaydı kaç olurdu? Farkı açıkla.
  3. Döviz gişesi sabah 100.000 USD ile açıldı; gün içinde 80.000 USD sattı, 20.000 USD aldı; Döviz Nuri'ye 5.000 USD borç var. Akşam kasa, USD net pozisyonu ve gece kurun 0,80 TL yükselmesi halinde yerine koyma etkisi nedir? Ayşe'nin iki seçeneği nelerdir ve hangisi spekülasyondur?
  4. Müşteri arıyor: "Vadeli hedge alımını girdim ama pozisyon değişmedi." Destek personeli olarak sırayla hangi beş şeye bakarsın?
  5. Müşteri iki rapor çıkarmış: Pozisyon ekranı HAS +3.802, Bilanço ekranı HAS için farklı bir değer. Elinde 300 g raporsuz takoz var. Farkın sebebi ne olabilir ve neyi kontrol edersin?

Cevap anahtarı (§8–12)

  1. Hiçbiri tek başına: fiyat, arz (satmak isteyenler) ile talebin (almak isteyenler) çekişmesinden doğar; binlerce kararın ortak sonucudur. — SECTOR_KNOWLEDGE (§8.1)
  2. Spot: fiyat ve teslim şimdi; vadeli: fiyat bugün kilitlenir, teslim ve ödeme ileri tarihte. — SEC-VADELI
  3. 31,1035 gram; ons başına USD (XAU/USD), saf (has) altın için. — TERM-ONS, SEC-ONS
  4. İstenmeyen fiyat riskini azaltmak. Hedge sonrası kâr fiyat ne olursa olsun makasa eşitlenir; fiyat lehe gitseydi kazanılacak fazla bilerek feda edilir. Daha çok kazanma amacı spekülasyondur. — SECTOR_KNOWLEDGE (§11.1–11.2), SEC-POZISYON
  5. Net pozisyon = stok + alacak − borç (birim bazında). — MET-NET-POZISYON, RPT-18
  6. 3.100 × 40,00 ÷ 31,1035 = 3.986,7 TL has gram; × 0,916 = 3.651,8 TL 22 ayar gram (+ işçilik). Örnek kurlardır. — SEC-ONS hesaplama örneği (§9.3)
  7. İki etki birbirini yaklaşık götürür; gram TL fiyatı neredeyse değişmez. Ama ons düşüşü HAS pozisyonunu USD'de eritirken kur artışı USD pozisyonunu TL'de büyütür; firma iki ayrı riske açıktır, ikisini ayrı izlemezse birinin zararını öbürünün kârı sanır. — §9.3 tablosu, SEC-KUR, MET-KUR-FARKI
  8. Kasa: vezneye fiziksel nakit — nakit kartı Stok.Nakit, hareketler stok defterinde (Stok.StokHaraketleri nakit satırları). Stok: fiziksel maden — Stok.StokHaraketleri maden satırları. Bakiye: cari hesabın birim bazında alacak/borcu — Cari.BakiyeIslem. Pozisyon üçünün toplamıdır. — SEC-STOK, SEC-BAKIYE, TERM-KASA, MET-NET-POZISYON
  9. Hedge FX TRADER'da (web sitesi: "her işlem otomatik olarak fiyat sağlayıcınızdan hedge edilsin"; PROC-62 Bid/Ask Hedge; PROC-205 Unhedged Amount) yapılır; gerçekleşen emir köprüyle ERPGOLD'a vadeli işlem (kod 6, tip −1) olarak düşer; ERPGOLD hedge yapmaz, kaydeder ve Pozisyon Raporu'nda gösterir. FX Trader kaynak kodu wiki'de yok (DOCUMENTED). — aifasoft_web.md, INT-FXTRADER-MT4, MOD-FX
  10. −1: vadeli-normal ("tip gerekmiyor"); −2: vadeli arbitraj bacağı (VADELİ ekranında ARBİTRAJ seçimi, iki bağlı satır). Döviz kurulumu −2'yi 35.097 satırla günlük kullanır; kuyumcu kurulumunda 5 satır. İkisi de DB kod tablosunda yoktur. — FLOW-ISLEM-MATRISI, BR-VADELI-004/005, SEC-ARBITRAJ
  11. 1.000 × (4.150 − 4.030) = 120.000 TL yerine koyma zararı; çünkü Selim'e fiyat kilitlendi ama firmanın has açığı (short) kapatılmadı. Salı akşamı aynı miktarda ters işlem (Rafineri Kuzey'den 1.000 g alış) yapmalıydı; ERPGOLD'da VADELİ ekranı ALIŞ (F.TİPİ Oz ya da gram), teslimde MADEN GİRİŞ cari. Pozisyon ekranında HAS net değişimi sıfır olmalı. — §11.1, SEC-VADELI, SEC-POZISYON
  12. Pazartesi net +3.802. Has hesabıyla cari satış: stok −549,6, Selim HAS +549,6 → net +3.802, değişmez. Peşin TL satış: stok −549,6, bakiye yok → net +3.252,4. Fark: borcun birimi; has alacağı fiyat riskini müşteriye bırakır, TL karşılığı riski firmaya yükler. — BR-DEFTER-URETIMI, SEC-POZISYON "Pozisyon ↔ Stok"
  13. Kasa USD 40.000, TL 2.916.000; USD net = 40.000 − 5.000 = +35.000; 60.000 USD net satıldı, kur +0,80 → 48.000 TL yerine koyma zararı (makas kârı 4.000'in 12 katı). Seçenek 1: 60.000 USD alıp kapatmak (hedge); seçenek 2: açık taşımak — bilinçli ve limit içindeyse yönetim kararı, değilse spekülasyon/hata. — §12.5, MET-KUR-FARKI
  14. (1) İşlem tipi: PEŞİN/RESMİ mi (bakiye yazmaz — BR-TIP-002/004); (2) tetikleyici açık mı, son işlemler defter üretiyor mu (H-006); (3) vadeli kodun ÇARPAN'ı ve ons çarpanı — miktar 1.000 kat yanlış olabilir (H-030/H-062); (4) birim: HAS yerine TL/USD'de mi girildi; kasa/şube doğru mu; (5) hangi pozisyon fonksiyonu — vadeli dahil mi (V1/V2/V3), kur listesi dolu mu (PB-036). — SYM-POZISYON, SYM-VADELI, PROC-167
  15. Raporsuz takoz pozisyon hesabında (Pozisyon.Write) 0 has sayılır, bilançoda %60 milyemle (BR-BAKIYE-009) değerlenir → aynı takoz iki rakam. Takozların "raporlu/raporsuz" durumunu ve hangi fonksiyonun çalıştığını kontrol et; CTR olarak kayıtlı (SYM-POZISYON #9). — SCR-FRMPOZISYON, BR-BAKIYE-009, SYM-POZISYON

Bunu anladıysan devam et (§8–12)

3. Kuyumculuk ve Döviz Sektörü

Bu bölüm, ERPGOLD'un içinde yaşadığı dünyayı anlatır: altın kimden kime gider, döviz bürosu parayı nasıl kazanır, "veresiye" bu sektörde ne demektir, kâr nerede saklıdır ve iki tarafın defteri tutmayınca ne yapılır. Bölüm 2'de öğrendiğin has, milyem, ayar ve kur kavramlarını burada insanlar ve işletmeler üzerinden yeniden göreceksin. Her konuda önce günlük hayat (Seviye 1), sonra işletme (Seviye 2), sonra ERPGOLD ekranı (Seviye 3), en sonda da tablo ve fonksiyon adları (Seviye 4, katlanabilir) gelir.

Bölüm boyunca tek bir örnek işletme kullanılır: ÖRNEK ALTIN A.Ş. — Kapalıçarşı'da toptancı + perakende kuyumcu, içinde bir döviz gişesi var, ERPGOLD'u MERKEZ ve ŞUBE-2 ile kullanıyor. Kişiler: Ayşe Demir (sahibi), Mehmet Kaya (kasiyer/gişe), Zeynep Aksoy (satış), Ali Çelik (muhasebe), Deniz Yılmaz (AIFASOFT destek). Müşteri ve tedarikçiler: Kuyumcu Selim, Döviz Nuri, Toptancı Yusuf, Atölye Kemal, Rafineri Kuzey. Bütün kurlar ve sayılar örnektir, güncel kur değildir: USD/TL 40,00 alış / 40,20 satış · EUR/TL 46,00 / 46,30 · has gram 4.000 TL alış / 4.030 TL satış · ons 3.100 USD · 22 ayar işçilik 150 TL/g.

KAYNAK Bu bölümün sektör bilgisi kanonik wiki'nin işletme türü makalelerinden (02_Sector/BusinessTypes/SEC-*) ve kavram makalelerinden (02_Sector/Concepts/SEC-*) gelir; ERPGOLD davranışı gerçek işlem matrisinden (FLOW-ISLEM-MATRISI) ve tetikleyici kuralından (BR-DEFTER-URETIMI) okunur. Mevzuat cümleleri yalnız wiki'de kaynağı olanlardır; madde/oran yazılmaz (GAP-MEVZUAT).


3.1 Kuyumculuk sektörü: kim kimdir, mal kimden kime gider?

3.1.1 Altının yolculuğu

Seviye 1 — Çok basit

Bir bileziği düşün. Annenin kolundaki bilezik bir gün "eskidi" diye kuyumcuya götürülür; kuyumcu onu tartar, ayarına bakar, parasını öder. O bilezik artık hurdadır. Kuyumcu hurdaları biriktirir, eritir, bir külçe hâline getirir; buna takoz denir. Takozun içinde ne kadar saf altın olduğu tam bilinmez; bir laboratuvar (ayar evi) küçük bir parça keser, ölçer, rapor yazar. Sonra rafineri takozu eritip saf altına (has) çevirir. Saf altın atölyeye gider; atölye onu tekrar bilezik yapar, işçilik alır. Yeni bilezik toptancıya, oradan perakende kuyumcuya, oradan da yeni bir müşterinin koluna gider. Aynı altın döner durur; değişen şey şekil ve kimin elinde olduğudur.

Son müşteri (eski bilezik)
   ↓ bozdurma (HURDA)
Perakende kuyumcu  ──► Toptancı / Sarraf ──► Rafineri (takoz → has)
                                                 ↑ ayar evi raporu
Rafineri (995/999 has) ──► Atölye / imalatçı (has → yeni bilezik, işçilik)
   ↓
Toptancı ──► Perakende kuyumcu ──► Son müşteri (yeni bilezik)

Seviye 2 — İşletme mantığı

Zincirdeki her halka aynı altını farklı bir için elinde tutar ve farklı yerden kazanır:

İşletme türü Ne yapar Kimden alır → kime verir Nereden kazanır Kanonik makale
Perakende kuyumcu Vitrinli dükkân; son tüketiciye satar, hurda alır Toptancı/sarraf → son müşteri İşçilik + vitrin marjı + hurda milyem farkı SEC-PERAKENDE-KUYUMCU
Toptancı Yarı mamul üretir/dağıtır; cari hesapla çalışır Rafineri/atölye → perakendeci İşçilik marjı; has marjı küçük, hacim büyük SEC-TOPTANCI
Sarraf Altının ve dövizin kendisini alıp satar; "kuyumcunun bankası" Kuyumcular arası has/nakit bakiyesi Alış–satış marjı + pozisyon SEC-SARRAF
İmalatçı / atölye Has'ı takıya çevirir; çoğu fason çalışır (altın müşterinin) Toptancı has verir → mamul döner İşçilik (gram/adet başına milyem ya da para) SEC-URETICI-ATOLYE
Rafineri Takozu eritip saflaştırır; has ve gümüşü ayrı yazar Atölye/toptancı takoz → has Rafinasyon ücreti (çoğunlukla altınla) SEC-RAFINERI
Ayar evi Saflığı ölçer, rapor numarası verir; çeşni (numune) keser Herkes takoz gönderir → rapor döner Analiz ücreti SEC-AYAR-EVI
Hurda toplayıcı Küçük dükkânlardan hurda toplayıp toptancıya/rafineriye taşır Perakendeci → toptancı/rafineri Milyem/gram farkı Wiki'de ayrı makale yok (bkz. GAP)
Maden ticareti yapan firma Külçe/has, gümüş, platin ticareti; ons/USD fiyatlar; hedge Rafineri/borsa → toptancı, sarraf, kurumsal Dar marj + pozisyon SEC-MADEN-TICARETI-YAPAN-FIRMA
Döviz bürosu Nakit döviz alıp satar; ayrı iş kolu (bkz. 3.2) Sokaktaki müşteri, kurumsal müşteri, diğer bürolar Kur makası SEC-DOVIZ-BUROSU

Şemsiye tanım SEC-KUYUMCU: altını mal olarak alan, işleyen, satan ve has gram üzerinden hesap tutan işletmelerin ortak adı. Kuyumcunun bakkaldan iki farkı vardır: elindeki mal parayla birlikte sürekli değer değiştirir (stok bir eşya değil açık pozisyondur) ve ölçü birimi tek değildir (adet, gram, ayar, döviz) — bu yüzden her şey hasa indirilir.

GAP "Hurda toplayıcı" için wiki'de ayrı bir işletme türü makalesi yoktur; buradaki satır sektör genel bilgisidir (SECTOR_KNOWLEDGE). "İmalatçı" ile "atölye" tek makalede birleşmiştir (SEC-URETICI-ATOLYE); sarraf ve maden ticareti makaleleri kendi içlerinde LOW güvenle işaretlidir (GAP-SEC-SARRAF-01, GAP-SEC-MADENTICARET-02). Kayıt: _tools/book_findings_03.md GAP-BOOK-03-01.

Bunlar birbirleriyle nasıl ticaret yapar? Zincirin üst tarafı (toptancı ↔ atölye ↔ rafineri ↔ sarraf) neredeyse hiç para konuşmaz, has gram konuşur ve cari hesapla çalışır: "Sana 1.000 g has verdim, ay sonu hesaplaşırız." Zincirin alt ucu (perakende ↔ son müşteri) peşin çalışır: müşteri parayı verir, bileziği alır, ilişki biter. İşçilik her el değiştirmede üstüne eklenir, altının kendisi ise hep aynı "para birimi"dir. Bu iki ayrım — has mı para mı ve cari mi peşin mi — ERPGOLD'un stok kaydı ile bakiye kaydını ayrı tutmasının asıl sebebidir.

Seviye 3 — ERPGOLD

ERPGOLD'un zincirde kullanıldığı iki gerçek nokta, iki ayrı kurulumla belgelidir:

Döviz bürosu kurulumu Kuyumcu / rafineri kurulumu
Kimin işi Yetkili müessese (döviz + biraz ziynet) Toptancı + atölye + rafineri/ayar evi (2 şirket, 10 şube)
Baskın ekran NAKİT (%82) MADEN (%34), TAKOZ (%14), HURDA (%10)
Çalışma biçimi Peşin (%83) Cari (%55)
Tip sözlüğü PEŞİN / RESMİ / MAHSUP ALTIN / GÜMÜŞ (takoz); PEŞİN ve RESMİ hiç yok
Kart profili 131 para birimi, 120 maden, 60 hizmet 22 para birimi, 127 maden, 103 hizmet (işçilik)
Takoz 0 10.870 takoz, 16,4 t brüt / 5,6 t has
Virman 532 112.006 (şube/kasa arası maden aktarımı günlük iş)

Kaynak: INST-ERPGOLDV2, INST-KUYUMCU; ayrıntılı işlem dağılımı FLOW-ISLEM-MATRISI.

Zincirdeki halkaların ERPGOLD'daki karşılığı:

  • Perakende kuyumcu: MADEN (ziynet, bilezik; tip PEŞİN döviz kurulumunda), HURDA (bozdurma, milyem elle girilir), NAKİT; tezgâh için Gişe ekranı / Hızlı satış. Dikkat: "perakende = PEŞİN tipi" cümlesi kurulum-bağımlıdır; kuyumcu kurulumunda PEŞİN tipli işlem sayısı sıfırdır, tezgâh işi orada NORMAL tiple ve bakiye hesabı seçilmeden yürür (GAP-SEC-PESIN-01).
  • Toptancı: MADEN ÇIKIŞ tip NORMAL → bakiye kartına HAS + işçilik TL; VİRMAN ile şube/satıcı arası aktarım; ay sonu mutabakat (bkz. 3.5).
  • Sarraf: ERPGOLD'da "sarraf" adlı varyant ya da ekran yoktur; sarraf işi MADEN + NAKİT + PARİTE + VADELİ + çok birimli bakiye kartı ile yürür.
  • Atölye: MADEN (adet + gram + İŞÇİLİK alanı), MODEL (numaralı tek parça); üretim/sipariş modülü ERPGOLD_CORE'da vardır ama kuyumcu kurulumunda Uretim.UretimIslemleri yalnız 15 satırdır — atölye işi canlıda cari işlem ekranlarıyla yürütülmüştür.
  • Rafineri + ayar evi: TAKOZ GİRİŞİ (takoz tipi, ayar evi, rapor no, XRF milyemleri, çeşni, işçilik durumu) → TAKOZ ÇIKIŞI (takoz kodu seçilir, kart tüketilir) → ÇEŞNİ ÇIKIŞI. Devir sonrası seri çıkılan takozların toplu geri alınması için Blok takoz girişi. Ayar evi ERPGOLD'da bir işletme profili değil, takoz akışının bir aktörüdür: takoz girişinde listeden seçilir, rapor numarası yazılır.
  • Maden ticareti: HURDA (995/999 külçe), VADELİ (ons/çarpan), pozisyon ekranları; FX platform senkronizasyonu (MT4) kuyumcu kurulumunda müşteriye özel gözlenmiştir, ürün özelliği değildir.

ÖRNEK ALTIN A.Ş. Firma zincirin ortasında durur: Toptancı Yusuf'tan has alır (üst halka, cari), Atölye Kemal'e has verip bilezik alır (fason), Kuyumcu Selim'e cari hesapla 22 ayar satar (alt halka, toptan), vitrininden son müşteriye peşin satar, biriken hurdayı takoz olarak Rafineri Kuzey'e gönderir. Pazartesi sabahı MERKEZ stoğunda 2.000 g has, 1.500 g 22 ayar bilezik (1.374 g has), 800 g 14 ayar (468 g has), 300 g karışık hurda (≈210 g has) var. Aynı firmada hem "toptancı gibi" (cari, has konuşan) hem "perakendeci gibi" (peşin, TL konuşan) hem de "döviz bürosu gibi" (gişe) işlemler görülecek; bu yüzden kitap boyunca tek örnek yeter.

PEKİ NEDEN? Neden kuyumcu kurulumunda cari işlem bile stok defteri yazıyor, döviz bürosunda yazmıyor? Çünkü kuyumcuda cari hesaba yazılan malın kendisi de fiziksel olarak yer değiştirir (atölyeye çıkar, kasaya girer); döviz bürosunda cari işlem çoğunlukla "kasadan çıkmadan hesaba yazılan" vadeli/tahsilat kaydıdır. Ölçüm: cari işlemin stok üretme oranı döviz kurulumunda %1,4, kuyumcuda %60,3 (BR-DEFTER-URETIMI). Bu yüzden "cari işlem stok üretmez" cümlesi ürün kuralı değil, döviz kurulumunun gözlemidir.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Kurulum ayrımı verideki izleri. Aynı Cari.Islemler.IslemTipi kolonu iki kurulumda farklı sözlük konuşur: döviz kurulumunda 1 PEŞİN / 11 RESMİ / 12 MAHSUP, kuyumcuda 6 ALTIN / 7 GÜMÜŞ (takoz metal tipi). IslemTipi üzerine yazılmış bir rapor koşulu öteki kurulumda sessizce boş döner (CTR-002/044). Döviz kurulumunda Cari.IslemDetaylari 37 döviz mevzuat kolonu ve Cari.Islemler.IsArbitiraj vardır; kuyumcuda yoktur. Kuyumcuda Stok.Takoz 10.870 satır, döviz kurulumunda boştur (TBL-STOK.TAKOZ).

Takoz akışı. Her takoz tam iki işlem satırı yazar: GİRİŞ ve ÇIKIŞ (21.236 işlem / 10.618 takoz = 2,00). İşlem tipi takoz tipinden gelir: HAS → ALTIN (6), gümüş → GÜMÜŞ (7) (BR-TAKOZ-002). Stok defteri takozu adet olarak izler (+1/−1), gram ve milyem kartta durur (BR-STOK-002). Bir takoz iki metalde bakiye üretir (çıkışta HAS ve GUM satırı). Gerçek iz (kitapçık §9.5, 08.01.2025): 691,73 g takoz, çeşni 5,47 g, Au 0,6380 → 441,32 g has, Ag 0,0600 → 41,50 g gümüş; rafinasyon ücreti 0,45 g has. Ayar evi listesi Sistem.AyarEvi görünümünden okunur (Cari.Hesaplar üzerine); tanımlama ekranı bunu tablo sanıp hata verir — CTR-SEC-AYAREVI-01. Kullanım gerçeği: su tartısı ve skala 13 ayda hiç, XRF yalnız 7 kez kullanılmış; ayar doğrudan rapor numarasıyla giriliyor.

Blok takoz girişi (WF-BLOK-TAKOZ-GIRIS): referans SubeId.HesapId.FisNo ile Cari.Islemler'den IslemKodu=0, IslemTuru=1, IsDeleted=0 takoz çıkış satırları listelenir; kaydette her satır için yeni Stok.Takoz kartı (eski XRF milyemleri, güncel kurlar) ve TAKOZ GİRİŞ satırı yazılır. Uyarı: "Girilen Bilgilere Göre Takoz Cıkıs İşlemleri Bulunamadı."

Kaynak: SEC-TAKOZ · WF-TAKOZ-GIRIS · WF-TAKOZ-CIKIS · FLOW-IFTAKOZGIRIS · VARIANT_MATRIX.

BUNU KARIŞTIRMA - Takoz ≠ Külçe. Takoz ayarı belirsiz, raporla belgelenen dökme kütledir; külçe standart saflıkta (995/999), sertifikalı bardır (SEC-KULCE). Sözlük ikisini eş anlamlı verir — CTR-SEC-TAKOZ-01. - Hurda ≠ Takoz. Hurda henüz eritilmemiş kırık takıdır; eritilip dökülünce takoz olur (SEC-HURDA). - Rafineri ≠ Ayar evi. Rafineri saflaştırır, ayar evi ölçer ve rapor verir; çoğu zaman aynı çatı altındadır ama ERPGOLD'da ayar evi bir aktör (liste), rafineri bir hesaptır. - Kuyumcu ≠ Döviz bürosu. Aynı program, iki ayrı iş kolu ve iki ayrı kurulum profili; "peşin", "resmi" gibi kelimeler ikisinde farklı yoğunlukta yaşar. - Has ≠ Gram. Zincir boyunca toplanabilir tek ölçü has'tır; 22 ayar 600 g bilezik 549,6 g has'tır (bkz. Bölüm 2).

SIK YAPILAN HATALAR Yeni çalışan: "Bu bir kuyumcu programı, döviz kısmı yan iş" diye düşünmek. Gerçek veri tersini söyler: canlı işlemlerin çoğu döviz kurulumunda NAKİT'tir, destek çağrılarının çoğu oradan gelir. İki kurulumun tip sözlüğünü ayrı öğren. Müşteri: Takoz gönderirken "külçe" demek ya da HURDA ekranından takoz girmek; takoz akışı ayrı ekrandır ve rapor numarası ister (PB-049 "Takoz Bulunamadı", PRB-TAKOZ-000). Destek personeli: Döviz kurulumunda öğrenilen "peşin ise stok, cari ise bakiye" ezberini kuyumcu kurulumuna taşımak; orada cari işlemlerin %60'ı stok da yazar (SYM-BAKIYE madde 10). Geliştirici: IslemTipi değerine göre rapor yazıp iki kurulumda aynı sonucu beklemek; ALTIN/GÜMÜŞ tipleri döviz kurulumunda, PEŞİN/RESMİ kuyumcuda yoktur.

3.1.2 Her halkanın bir günü

Aynı altın, dört farklı dükkânda dört farklı gün yaşar. Aşağıdaki tablolar wiki'deki işletme türü makalelerinin "günlük akış" bölümlerinden sadeleştirilmiştir; ekran adları kullanıcı dilindedir (SECTOR_KNOWLEDGE + ekran makaleleri).

Seviye 1 — Çok basit

Sabah herkes aynı soruyu sorar: "Bugün altın kaç para?" Sonra herkes kendi işine döner: perakendeci vitrini açar, toptancı satıcılarına mal hazırlar, atölye ocağı yakar, rafineri gelen takozları tartar. Akşam yine aynı soru: "Elimde ne var, kime ne borçluyum?" Aradaki saatler farklıdır, iki uç aynıdır.

Seviye 2 — İşletme mantığı

Perakende kuyumcu (Kapalıçarşı vitrini):

Saat Ne olur ERPGOLD tarafı
Sabah Has ve döviz kuru öğrenilir; vitrin fiyatı = has kuru × milyem + işçilik + marj; panoya yazılır Kur listesi, şube fiyat panosu
Sabah Vitrin ve kasa sayımı Maden stok listesi, model sayımı
Gün içi Müşteri yarım altın bozdurur → adet girilir, TL ödenir MADEN GİRİŞ, tip PEŞİN (gerçek fiş: 1 adet, 5.040 TL)
Gün içi Müşteri kırık bilezik getirir → terazi, milyem ölçümü, has hesabı HURDA GİRİŞ (milyem elle)
Gün içi Müşteri 22 ayar bilezik alır → gram × milyem + işçilik; fiş MADEN ÇIKIŞ; fiş yazdır
Akşam Kasa kapanışı, perakende işlemlerin aktarımı Gün sonu iş akışı

Fiyat kaynağı zinciri: pano → yoksa sistem kuru; panoda fiyat yoksa sisteme düşer ve bu sessiz olur.

Toptancı (cari çalışan yüz):

Saat Ne olur ERPGOLD tarafı
Sabah Has kuru ve toptan fiyat listesi Kur giriş ekranı
Sabah Bölge satıcıları için mal hazırlanır; kasadan satıcıya aktarım VİRMAN, kasa transferi
Gün içi Perakendeciye mal teslim; has olarak cariye yazılır, para gelmez MADEN ÇIKIŞ, tip NORMAL → bakiye kartı
Gün içi Perakendeciden hurda alınır, borcundan düşülür (gerçek fiş: 54.000 g 995 hurda) HURDA GİRİŞ
Gün içi Müşteri has borcunu TL/USD ile öder ÇEVİR + NAKİT
Akşam Bakiye kontrolü, açık pozisyon Bakiye ekstresi, pozisyon
Ay sonu Müşteri mutabakatı: iki tarafın has/TL/USD bakiyesi karşılaştırılır, kilitlenir F12, Mutabakat raporu

Atölye / imalatçı (fason):

Saat Ne olur ERPGOLD tarafı
Sabah Toptancıdan has/hurda gelir, cariye yazılır HURDA/MADEN GİRİŞ, NORMAL
Gün içi Sipariş: model, ayar, adet/gram, teslim tarihi Sipariş giriş, model/parça/reçete kartları
Gün içi Has eritilir, 995 → 0,916 alaşım; bölümlere çıkış; her bölümün gram bakiyesi Üretim işlemleri, eritme, ayar çevirici (canlıda neredeyse kullanılmamış)
Gün içi Mamul tartılır; fire ve ramat (talaş, toz) hesaplanır Üretim hareketi: bölümden giriş, fire
Gün içi Mamul teslim: gram × milyem has düşer, işçilik ayrı kalem MADEN ÇIKIŞ + İŞÇİLİK alanı; numaralı parçada MODEL
Ay sonu Has mutabakatı; ramat rafineriye Mutabakat; HURDA çıkış / takoz

En yaygın atölye hatası: işçiliği gramın içine katarak (gramı fazla yazarak) girmek — stok sayımını bozar.

Rafineri + ayar evi:

Saat Ne olur ERPGOLD tarafı
Gün içi Takoz gelir: tartılır, takoz tipi ve geldiği ayar evi seçilir, varsa rapor no TAKOZ GİRİŞİ
Gün içi Rapor yoksa XRF ile tahmini milyem; çeşni kesilir Aynı ekran: XRF AU/AG, MİKTAR / ÇEŞNİ
Gün içi Ayar evi raporu gelince milyem kesinleşir; işçilik "altından düş / para ile" İŞÇİLİK DURUMU
Gün içi Rafinasyon; rafine altın ve gümüş müşteri hesabına TAKOZ ÇIKIŞI (kart tüketilir)
Gün içi Biriken çeşni stoğundan çıkış ÇEŞNİ ÇIKIŞI
Akşam Depoda bekleyen takoz kartları, pozisyon Takoz stok listesi

Yan metalin (gümüş/platin/paladyum) akıbeti pazarlık konusudur: "madeni ver, altına çevir, işçilikten düş, madeni bırak" seçenekleri ekranda vardır.

PEKİ NEDEN? Neden zincirin üst tarafı para değil has konuşur? Çünkü toptancının müşterisi son tüketici değil başka bir kuyumcudur ve iki kuyumcu arasında altının TL fiyatı her gün değişirken gramı değişmez. "Sana 36 gram borçluyum" bir ay sonra da 36 gramdır; "144.000 TL borçluyum" bir ay sonra 150.000 TL'ye denk gelebilir. Bu yüzden borç-alacak has gram olarak tutulur, TL yalnız değerleme için kullanılır (SEC-HAS). ERPGOLD'da bakiye kartı bunun için her birimi ayrı satırda tutar (3.3).

PEKİ NEDEN? Neden perakendeci peşin, toptancı cari çalışır? Perakendecinin müşterisi bir kez gelir, adı bile gerekmeyebilir; ilişki tezgâhta biter. Toptancının müşterisi her hafta gelir, mal önce gider para sonra gelir; ilişki bir defterdir. Aynı işletme (ÖRNEK ALTIN A.Ş.) iki yüzü de taşır: vitrin peşin, arka oda cari. ERPGOLD'da fark tek alandır — TİP: PEŞİN ya da NORMAL — ama sonuçları iki ayrı deftere gider.

Seviye 3 — ERPGOLD

Dört halkanın ortak paydası: hepsi CARİ İŞLEMLER ekranından, aynı işlem şeridiyle çalışır; fark hangi düğmeye (MADEN, HURDA, TAKOZ, VİRMAN…) basıldığı ve TİP alanıdır. Ekran başına ürettikleri defter satırları için bkz. 3.3.3; tezgâh (gişe / hızlı satış) ekranları cari hesap açmadan peşin çalışır. Sektör anlatımının öne çıkardığı "PERAKENDE" ekranı kaynak kodda menüden açılış yolu bulunamayan bir adaydır (CTR-SEC-BTYPE-01) — canlıda hangi tezgâh ekranının kullanıldığı doğrulanmalıdır.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Perakende: SCR-GISEEKRANI akışı FLOW-GISEEKRANI — 5 tablo, 11 türetilen; her işlem PEŞİN ve TL (BR-PERAKENDE-003). Perakende eşikleri koddaki sabitlerdir (PB-050).
  • Toptancı: kuyumcu kurulumunda MADEN tip 0 cari 152.700 satır (stok %100 / bakiye %100), VİRMAN 112.006 (stok 0 / bakiye %99) — FLOW-ISLEM-MATRISI. Müşteriye özel fiyat/kâr fotoğrafı için beşinci tetikleyici yalnız bu kurulumda (CUSTOMER_SPECIFIC, ürün özelliği değil).
  • Atölye: Uretim.UretimIslemleri 15 satır, Uretim.Bolumler 3 satır (2025-01); 103 hizmet/işçilik kartı işçiliğin cari işlem satırında izlendiğini gösterir (GAP-SEC-ATOLYE-02).
  • Rafineri: takoz girişi kuyumcu kurulumunda bir atölye hesabından yapılmıştır — atölye → rafineri zinciri veride görünür. Takoz stok listesi fonksiyonu (Stok.GetTakozStoklari) canlı DB'de bulunamadı (GAP-SEC-RAFINERI-01).

3.1.3 Hurda: zincirin başlangıcı

Seviye 1 — Çok basit

Zincir hurdayla başlar, o yüzden hurda alımı zincirin en riskli anıdır: müşteri "bu 22 ayar" der ama damga yalan söyleyebilir. Kuyumcu takıyı takı olarak değil ham altın olarak alır: işçilik ödemez, yalnız içindeki has'ı öder. Bunun için iki şey ölçer: terazide gram, mihenk taşı ya da cihazla milyem. Yanlış ölçülen milyem doğrudan zarardır.

Seviye 2 — İşletme mantığı

  • Hurdanın has'ı = gram × ölçülen milyem; ödeme = has × hurda alış has fiyatı (ya da gram × ayarlı gram fiyatı). Kuyumcunun kazancı, ödediği has fiyatı ile toptan has fiyatı arasındaki farktır (SEC-HURDA).
  • Hurda birikir → eritilir → takoz olur → rafineriye gider → has olarak geri döner. Kuyumcu kurulumunda 13 ayda 66.614 hurda işlemi, 56,6 milyon g brüt, ortalama milyem 0,913.
  • Karışık hurda "ortalama milyem" ile izlenir; ÖRNEK ALTIN A.Ş.'nin 300 g karışık hurdası 0,700 ortalama ile ≈210 g has'tır — bu ortalama bir tahmindir, kesin rakam ayar evi raporuyla gelir.
Örnek — Çarşamba, vitrin: müşteri 14 ayar damgalı 18,40 g bilezik getirdi; mihenkte 0,585 doğrulandı
  Has     = 18,40 × 0,585 = 10,764 g
  Ödeme   = 10,764 × 3.950 (hurda alış has fiyatı, örnek) = 42.517,80 TL  → PEŞİN, TL kasadan çıkar
  Toptan has 4.000 ise brüt kazanç = 10,764 × (4.000 − 3.950) = 538,20 TL
Aynı hurdayı Kuyumcu Selim cari hesabına bıraksaydı: HURDA GİRİŞ, NORMAL → HAS −10,764 (Selim alacaklı), para konuşulmaz.

Seviye 3 — ERPGOLD

  • HURDA ekranı (SCR-IFHURDA): STOK KODU (yalnız "hurda" işaretli kartlar; açılışta 995), MİKTAR, MİLYEM (her seferinde elle), HAS, F.TİPİ (has/gram), FİYAT, TUTAR. Müşteri hurda getirince GİRİŞ; külçe/has verince ÇIKIŞ. Dikkat: ekran açılışta ÇIKIŞ ile gelir, oysa en sık işlem GİRİŞ'tir (CTR-SEC-HURDA-01).
  • NORMAL tipte fiyat paneli yoktur: has bakiyesi yazılır, para konuşulmaz (BR-HURDA-002). PEŞİN'de F.TİPİ ayara bağlıdır.
  • Terazi düğmesi ile gram doğrudan alınabilir; "terazi miktarı gelmiyor" için PB-027.
  • Veri riski: milyem 1'in üstünde girilebiliyor (kuyumcu kurulumunda 0,094–1,01 aralığı görülmüş); engelleyen kontrol belgelenmemiş (GAP-SEC-HURDA-01).
  • Belge kontrol kaydı olarak girilen (tip 11) hurda işlemi operasyonel stok/bakiye kaydı üretmez; kitapçık §5.5 gerçek fişi (54.000 g 995 hurda, 87.318.000 TL, resmi) bu tuzağın kanıtıdır — hacim raporu işlem satırından okunur.

BUNU KARIŞTIRMA - Hurda alış fiyatı ≠ Has kuru. Hurdada ödenen has fiyatı toptan has kurunun altındadır; fark kuyumcunun kazancıdır. - Damga ≠ Milyem. Damga iddia, milyem ölçümdür; hurdada ölçülen esas alınır (SEC-MILYEM). - Hurda kartı ≠ Maden kartı. Aynı tablo, "hurda mı" bayrağı farklı; HURDA ekranı yalnız işaretli kartları listeler.


3.2 Döviz bürosu / yetkili müessese

3.2.1 Büro parayı nasıl kazanır?

Seviye 1 — Çok basit

Bir döviz bürosunun vitrininde iki sütun görürsün: ALIŞ ve SATIŞ. Dolar için "40,00 / 40,20" yazıyorsa büro senden doları 40,00'a alır, sana 40,20'ye satar. Aradaki 20 kuruş büronun kazancıdır; adı marj ya da "makas". 1.000 dolar alıp 1.000 dolar satan büro 200 TL kazanmıştır. Fark küçüktür, ama büro günde binlerce dolar çevirir; kazanç hacimden gelir.

Bir tuzak: sen "dolar aldım" dersin, büro "dolar sattım" der. Aynı işlem, iki bakış. ERPGOLD ekranları her zaman büronun gözüyle yazar: müşterinin dolar alması büro için NAKİT ÇIKIŞ'tır (kasadan dolar çıktı, TL girdi).

Seviye 2 — İşletme mantığı

Kimden alır, kime satar? Sokaktaki müşteriden (turist, ihracatçı, tasarruf sahibi), kurumsal müşteriden (vadeli anlaşmayla), başka bürolardan ve bankalardan (toptan) alır; aynı kişilere satar. Perakende işlem pano fiyatından (marjlı), toptan/kurumsal işlem sistem kurundan yapılır (TERM-PANO-KURU). Büronun işçiliği yoktur; tek gelir kaynağı kur farkıdır ve ikinci bir kaynak/risk olarak pozisyon vardır.

Kasadaki para birimleri. Büro yalnız dolar-euro çevirmez. Döviz kurulumunda 131 para birimi kartı tanımlıdır; gerçek veride NAKİT satırlarında TL, USD, EUR, GBP, CHF ve 30'dan fazla başka birim görülür. Tüm işlem satırları içinde NAKİT-TL satırları %51, NAKİT-USD %19, NAKİT-EUR %9 paya sahiptir (kalan pay VADELİ, MADEN ve diğer birimlerdir) — DERIVED: FLOW-ISLEM-MATRISI birim dağılımı (V2 NAKİT: TL 788.454 · USD 295.298 · EUR 146.062 · GBP 9.373 · CHF 3.484 · diğer 8.000; toplam işlem 1.527.852). Kuyumcu kurulumunda ise yalnız 22 para birimi kartı vardır: büro parayı, kuyumcu madeni çevirir.

Müşteri işlemi ile nakit hareket aynı şey değildir. Müşteri 65 USD alır: bu bir müşteri işlemidir (tek satır). Kasada iki nakit hareket olur: −65 USD, +TL. Vezne gün sonunda kasayı sayarken müşteri işlemlerini değil, nakit hareketlerin toplamını sayar. Kasa "nerede duruyor?" sorusunun, bakiye "kime ait?" sorusunun cevabıdır (kitapçık §2.4).

Gün sonu pozisyon ve kur riski — örnek:

ÖRNEK ALTIN A.Ş. Pazartesi sabahı MERKEZ döviz gişesinde 100.000 USD var. Gün içinde Mehmet Kaya müşterilere 80.000 USD sattı (büro satışı, satış kuru 40,20) ve müşterilerden 20.000 USD aldı (alış kuru 40,00). Akşam ne oldu?

text USD kasası: 100.000 − 80.000 + 20.000 = 40.000 USD kaldı TL kasası : +80.000 × 40,20 = +3.216.000 TL (satıştan girdi) −20.000 × 40,00 = −800.000 TL (alışta çıktı) net TL etkisi = +2.416.000 TL Gerçekleşen marj (eşleşen 20.000 USD alış-satış): 20.000 × 0,20 = 4.000 TL Kalan 60.000 USD'nin satış kârı, sabahki stoğun maliyet kuruna göre satırda hesaplanır. Açık pozisyon: sabah +100.000 USD "long" idi, akşam +40.000 USD long. Kur riski: gece USD/TL 0,50 düşerse 40.000 × 0,50 = 20.000 TL değer kaybı (kâr değil, kur farkı).

Ayşe Demir'in gün sonunda baktığı iki rakam farklıdır: kasa (40.000 USD fiziksel para) ve pozisyon (kasa + müşterilerden USD alacak − müşterilere USD borç). Döviz Nuri'ye 5.000 USD borçlu olduğumuz için USD pozisyonu 40.000 − 5.000 = 35.000 USD'dir. Sayılar örnektir, güncel kur değildir.

Pozisyon "long" (elde fazla) ise fiyat düşünce, "short" (borçlu) ise fiyat yükselince zarar yazar. Büro gece kalan pozisyonu ya kabullenir ya da başka bir büroya/FX platformuna satarak kapatır (hedge). Pozisyon = stok + alacak − borç (SEC-POZISYON).

Seviye 3 — ERPGOLD

  • NAKİT ekranı (SCR-IFNAKIT): KODU (hangi para), MİKTAR, BİRİM (karşılık), FİYAT (kur), TUTAR, VERGİ (BSMV). Müşteri dolar alıyorsa ÇIKIŞ, satıyorsa GİRİŞ. Peşin işlemde BİRİM alanı kasadaki nakit stoğunu seçer.
  • Tip PEŞİN: kasaya TL girer, kasadan USD çıkar, bakiye defteri yazılmaz; müşterinin hesabı olması gerekmez (gişe/perakende ekranı her işlemi peşin ve TL yapar).
  • Tip NORMAL (cari): kasa hareket etmez, müşteri hesabına "USD −65, TL +tutar" yazılır — tahsilat/ödeme sonra gelir.
  • PARİTE ekranı (SCR-IFDOVIZ): euro verip dolar isteyen müşteri için iki bağlı satır; ekranın sınıf adı "Döviz" olsa da işlevi paritedir.
  • VADELİ (SCR-IFVADELI): bugünkü kurdan anlaşılır, teslim ileri tarihte; kasadan bir şey çıkmaz, iki birimde bakiye yazılır.
  • Kur: Kur giriş ekranı günlük alış/satış; EDS ile otomatik akış (INT-KUR-EDS); resmi işlemde TCMB kuru (INT-TCMB). İşlem anındaki kur satıra fotoğraf olarak yazılır (BR-KUR-001); bugün kur girilmemişse toplamlar 0 gelir (PB-036).
  • Gün sonu: Nakit stokları (kasa sayımı), Pozisyon, Nakit Stok Özet (RPT-10), Pozisyon Raporu (RPT-18), Resmi Pozisyon (RPT-66).
  • Belge uyum işareti (RESMİ ŞUBE / RESMİ KASA; legacy adlar) kasa bazında tutulur; işaretli kasadaki belgelendirilmiş işlemler belgelendirilmiş işlemler havuzuna girer, şube/kasa işaretli değilse belge kontrol tipi çalışmaz (PB-042). Bu ayrım iki kayıt (stok/bakiye) değildir; operasyon ile belgelendirmenin karşılaştırılmasıdır.

Gün sonu kasa kapanışı (Mehmet Kaya'nın akşam listesi):

  1. Nakit stokları ekranında her para biriminin defter miktarı okunur (kasa bazında).
  2. Fiziksel sayım yapılır; fark varsa o günün işlem listesinde nakit hareketleri (müşteri işlemleri değil) taranır.
  3. Kasa transferleri karşı kasada kabul edilmiş mi kontrol edilir; kabul bekleyen transfer bakiyeye düşmez.
  4. Pozisyon ekranından her birimin net pozisyonu okunur; Ayşe Demir'e "long/short ne kadar" raporlanır.
  5. Belge uyum işaretli kasa için e-belgesi kesilmiş işlemler ile Fatura Kontrol Raporu (RPT-13) karşılaştırılır.
  6. Ay başında önceki ayın BTrans XML'i üretilir (3.2.3).

KAYNAK Kitapçık §5.2 gerçek fişi (anonim): müşteri 65 USD aldı; NAKİT, ÇIKIŞ, PEŞİN; satış kuru 26,15; tutar 1.703,14 TL; maliyet 1.685,45 → marj 17,69 TL (%1). 65 × 26,15 = 1.699,75'tir; tutarın 1.703,14 olması binde 2 BSMV'nin tutara eklendiğiyle uyuşur (DERIVED, GAP-SEC-NAKIT-01). SEC-NAKIT, SEC-DOVIZ.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Satır ve defterler. Cari.Islemler.IslemKodu = 3 (NAKİT), IslemTuru 0 GİRİŞ / 1 ÇIKIŞ, IslemTipi 0 NORMAL / 1 PEŞİN / 11 RESMİ / 12 MAHSUP. Tetikleyici TRG-CARI.ACCEPTTRANSACTION: PEŞİN dalında StokTipi=2, StokId=@BirimId, Miktar = (Tür=0 ? −Tutar : +Tutar) ile nakit stoğuna ters hareket; bakiye dalları @IslemTipi<>1 ile korunur. Gerçek matris (V2): NAKİT tip 0 → stok %99 / bakiye %99; NAKİT tip 1 → stok %99 / bakiye 0; NAKİT tip 11 ve 12 → operasyonel stok/bakiye kaydı üretmez (yalnız Cari.History). NAKİT satırlarında BakiyeId hep 0'dır ve yine de bakiye yazılır → BakiyeId=0 ≠ peşin (CTR-SEC-BAKIYE-01).

Kur zinciri. TBL-SISTEM.KURLAR (tarih-birim başına alış/satış; V2'de 22.575 satır); satıra UsdKur, EurKur, HasKur fotoğrafı yazılır. Bilinen kusurlar: Program.GetKur daima alış kuru döndürür, listede olmayan birim için sessizce 1 (TD-21, P1); o güne kur girilmemişse Sistem.GetKurListesi son kuru işaretsiz döndürür (TD-22); TCMB erişilemezse sistem kuru sessizce kullanılır. Pano tablosunu (Sistem.DovizPanosu) tüketen ekran kaynak kodda bulunamadı; perakende ekranı fiyatı sistem kurundan alır — GAP-SEC-KUR-01 / CTR adayı.

Pozisyon. FN-POZISYON.GETPOZISYONV3 = Bilanco.OzetBilanco satırlarının GELİR/GİDER hariç SUM(Bakiye); OzetBilanco = Cari.BakiyeIslem + Stok.GetNakitStoklari + Stok.GetMadenStoklari + çeşni + takoz (raporsuz ×0,6) … Bakiye işareti olduğu gibi toplanır (+ müşteri borçlu = işletme alacaklı). Belge kontrol satırları (tip 11) operasyonel kayıt üretmediği için pozisyona girmez; Reports.ResmiPozisyon ise operasyonel kasa + banka − belgelendirilmiş görünüm = belgelendirme farkı hesaplar (mutabakat sinyali; koddan doğrulandı).

Mevzuat alanları. Cari.IslemDetaylari 49 kolon, 37'si döviz mevzuatı (beyan tutanağı, gümrük beyannamesi, geldiği ülke, karşı yetkili müessese no, istatistik kodu…) — yalnız döviz kurulumunda (TBL-CARI.ISLEMDETAYLARI).

3.2.2 Parite, arbitraj ve vadeli: büronun "ileri" işleri

Seviye 1 — Çok basit

Bir turist elinde euro ile gelir, dolar ister. Büro iki şey yapabilir: önce euroyu TL'ye çevirip sonra TL ile dolar satar (iki işlem, iki kez marj — müşteri kaçar) ya da euroyu doğrudan dolara çevirir. İkincisinde aradaki orana parite denir: "1 euro = 1,15 dolar" (örnek). TL hiç kasadan geçmez, yalnız hesap için kullanılır. Bu işe sektörde arbitraj ya da çapraz işlem denir.

Bir de şu var: ihracatçı bir müşteri "gelecek hafta bana 20.000 dolar lazım, fiyatı bugünden sabitleyelim" der. Büro kabul eder; bugün ne para ne dolar el değiştirir, yalnız söz verilir. Buna vadeli işlem denir. Kasadan bir şey çıkmaz ama büro artık 20.000 dolar borçludur; dolar yükselirse zarar eder.

Seviye 2 — İşletme mantığı

  • Parite = verilen dövizin TL kuru ÷ alınan dövizin TL kuru. Büro EUR'yu alış kurundan alıp USD'yi satış kurundan verdiği için uyguladığı parite piyasa paritesinden biraz düşüktür; marj iki bacağa gömülüdür (SEC-PARITE).
  • Arbitraj tek satır olarak yazılamaz: verilen döviz bir bacak, alınan döviz öteki bacak; ikisinin TL değeri aynıdır (SEC-ARBITRAJ). Bunu tek işlem mi iki işlem mi saydığınız hacim raporunu ikiye katlar.
  • Vadeli işlem kasayı değil bakiyeyi hareket ettirir: müşteri teslim edeceği kalemde borçlu, alacağı kalemde alacaklı olur. Teslim günü gerçek NAKİT/MADEN işlemi ayrıca girilir ve iki bakiye sıfırlanır (SEC-VADELI). Vadeli satış büroyu o dövizde short yapar; hedge etmek için aynı miktarı bugün alıp stoğa koyabilir.
Örnek — Döviz Nuri 1.500 EUR verip USD istiyor (örnek kurlar: EUR alış 46,00, USD satış 40,20):
  Parite     = 46,00 ÷ 40,20 = 1,1443
  Alınan USD = 1.500 × 1,1443 = 1.716 USD (tam sayıya yuvarlanır)
  TL pivotu  = 1.500 × 46,00 = 69.000 TL = 1.716 × 40,20 (≈)  → kasadan TL geçmez
  Bacak 1: EUR +1.500 (büro aldı)   Bacak 2: USD −1.716 (büro verdi)
Piyasa paritesi 1,15 olsaydı Nuri 1.725 USD alırdı; 9 USD fark büronun makasıdır.

KAYNAK Kitapçık §5.4 gerçek fişi (27.06.2023, anonim "sarraf kasası"): 1.500 EUR → 1.645 USD, parite 1,09667; aynı fişte GBP→USD ve CHF→USD. İki bacağın TL tutarı eşit (43.005), ikinci satır birincinin numarasına bağlı, tip −2. Kitapçık §5.3 gerçek vadeli fişi: 23.328 USD ↔ 600.000 TL, kasa hareketi yok, iki bakiye satırı.

Seviye 3 — ERPGOLD

  • PARİTE ekranı (SCR-IFDOVIZ): ALINACAK / VERİLECEK etiketleri yöne göre değişir; TUTAR = FİYAT × MİKTAR ÷ FİYAT2, tam sayıya yuvarlanır. NAKİT ekranında da PARİTE tipi (kısaltma X) vardır; fiyat parite tanım tablosundan gelir (Çarp/Böl yönü).
  • VADELİ ekranı (SCR-IFVADELI): KODU (vadeli kod kartı), İŞLEM ALIŞ/SATIŞ, ÇARPAN (lot), F.TİPİ (Miktar/Oz), TARİH (vade), tip listesi NORMAL/ARBİTRAJ/FATURA. Bakiye kartındaki "Vadeli Bakiye" sekmesi boş döner; vadeli bakiye için RPT-3.
  • Vadeli hacim her iki kurulumda da büyüktür: döviz kurulumunda 241.596, kuyumcuda 144.383 satır — "vadeli yalnız döviz işi" değildir.
  • Sık destek konusu: çift bacaklı işlemin bir bacağı iptal edilince tek bacak kalır → bakiye ve pozisyon bozulur (PB-048); çözüm iki bacağı da iptal edip yeniden girmek.
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Arbitraj çifti VaryantId ile bağlanır (ilk satır −1, ikinci satır ilkinin Id'si); IsArbitiraj kolonu yalnız döviz kurulumunda vardır. Kod listesindeki ARBİTRAJ tipi (13) veride hiç kullanılmamış; gerçek arbitraj satırları bağ alanından tanınır.
  • Vadeli: IslemKodu=6, IslemTuru ∈ {4 ALIŞ, 5 SATIŞ}, IslemTipi = −1 (normal) / −2 (arbitraj) — kod tablosunda yok; StokIdSistem.Vadeli kod kartı (lot, ana/karşı birim, çarpan), BakiyeId = kodun ana birimi, Tag = ons çarpanı. Tetikleyici çevir/vadeli dalı (IslemKodu IN (4,5,6)): IslemTuru IN (0,2,4)Has=+|Has|, Tutar=−|Tutar|; (1,3,5) → tersi; stok hareketi yok (BR-STOK-011). Fiyat yöne göre çapraz: ALIŞ'ta alış÷satış, SATIŞ'ta satış÷alış (BR-KUR-004; doküman "hep alış" der — kod/doküman farkı).
  • Vade günü kapanışın vadeli satırla eşlenmesi için kodda bağ alanı yoktur; kapanış yalnız bakiyenin sıfırlanmasıyla izlenir (GAP-SEC-VADELI-01).
  • Gerçek matris (V2): VADELİ tip −1 203.549 satır, tip −2 35.097 satır, tip 11 (resmi vadeli) 2.950 satır — resmi vadeli operasyonel stok/bakiye kaydı üretmez.

BUNU KARIŞTIRMA - Vadeli (kod 6) ≠ VADELİ tipi (14). Kod 6 ayrı ekran ve ailedir; tip 14 MADEN ekranı listesinde görünen, DB kod tablosunda olmayan bir tiptir (CTR-002/044). - Vadeli ≠ Virman. İkisi de V harfi taşır; virman hesaplar arası bakiye aktarımıdır, fiyatı yoktur (SEC-VIRMAN). - Arbitraj (tezgâh) ≠ Arbitraj (finans). Tezgâhta çapraz döviz işlemi; literatürde risksiz fiyat farkı kazancı. - PARİTE ekranı ≠ "Döviz" ekranı. Sınıf adı Döviz, ekran adı PARİTE — eğitimde karışıklık kaynağı (CTR-SEC-DOVIZ-01).

3.2.3 Yetkili müessese mevzuatı — yalnız wiki'de kaynaklı olanlar

Döviz bürosu devlet tarafından yetkilendirilir ve denetlenir; bu yüzden "resmi işlem", kimlik/evrak, e-belge, aylık bildirim kavramları en çok bu türde görülür. Destek çağrılarının yaklaşık üçte biri bu katmandan gelir (e-belge %11,5, BTrans %9,3, lisans %6,6 — kitapçık §2.5, TKT-TICKET_STATS). ERPGOLD'daki karşılıkları:

Yükümlülük (genel) ERPGOLD'daki mekanizma Kaynak
MASAK kimlik tespiti — eşik üstü işlemde müşteri kimliği; yasaklı sorgusu Cari hesap açılışında zorunlu evrak kontrolü (eksikse tetikleyici işlemi reddeder); e-belge kesilirken MasakForm ile yasaklı sorgusu ("Bu Firma Masak Yasaklısıdır. İşlem Yapamazsınız." → belge kesilmez) INT-MASAK-AMLSCAN, SCR-MASAKFORM, PB-062, TERM-EVRAK-UYUM-KYC
Müşteri tanıma (KYC) — evrak toplama, kimlik tarama AifaUyum KYC modülü (ayrı ürün; Kyc.Firmalar.HesapId → Cari.Hesaplar.Id), MRZ/OCR tarama, merkez portal INT-KYC-AIFAUYUM, MOD-KYC
BSMV — döviz satışında banka ve sigorta muameleleri vergisi Satırda ayrı VERGİ alanı; satışta istatistik koduna göre ayrıştırılır, alışta 0; "hariç" ayarında tutara eklenir BR-BSMV-001, TERM-BSMV, INT-EDOVIZ-ISTATISTIK
E-döviz alım-satım belgesi — resmi belge, istatistik kodu Tip RESMİ (11) işlem; E-FATURA ekranı; istatistik kodu boşsa belge kesilemez; USD karşılığı TCMB kurundan INT-EDOVIZ-ISTATISTIK, BR-KUR-002, PRB-FATURA-000
BTrans / periyodik bildirim — önceki ayın işlemlerinin mali müşavire/idareye XML aktarımı Hesap Yönetimi ▸ BTrans ▸ XML Oluştur (AA-YYYY) → BTrans Doğrulama → şema kontrolü → zip; önce BTrans Kontrol Raporu ile hatalılar düzeltilir; Aralık BTrans'ı devirden önce alınır INT-BTRANS, WF-AY-SONU-BTRANS, RPT-26, PB-022
Perakende eşikleri (koddaki sabitler) İsimsiz hesaba 7.000 TL üstü işlem engellenir; 3.000 USD üstü onay ister; resmi limit 5.000 $ / 85.000 TL BR-PERAKENDE-001, BR-PERAKENDE-002, PB-019, PB-050

GAP GAP-MEVZUAT: Yetkili müessese tebliğinin adı/numarası, MASAK kimlik tespiti eşiği, BSMV oranının güncel dayanağı, bildirim dönemi ve yürürlük tarihleri wiki'de doğrulanmamıştır. Koddaki eşikler (7.000 TL, 3.000 USD, 5.000 $ / 85.000 TL) kaynağı belirsiz sabitlerdir; mevzuatla güncel olup olmadığı bilinmiyor. "BSMV binde 2" ifadesi sözlükten gelir, güncel oran doğrulanmalıdır. Bu kitap hiçbir yerde kesin mevzuat hükmü vermez. (SEC-DOVIZ-BUROSU Mevzuat bölümü.)

BUNU KARIŞTIRMA - Alış (müşteri) ≠ Alış (büro). Müşterinin dolar alması büronun satışıdır; ERPGOLD büronun gözüyle yazar. "Bakiye ters çıkıyor" çağrılarının klasik nedeni (H-103). - Kur ≠ Parite. Kur bir birimin TL fiyatı, parite iki yabancı paranın birbirine oranıdır; TL'li işlem NAKİT'te, döviz-döviz PARİTE'de (SEC-PARITE). - Kasa ≠ Cari. Kasa "para nerede duruyor", cari "kime ait"; peşin işlem kasayı, cari işlem bakiyeyi hareket ettirir (TERM-KASA). - Nakit ≠ Döviz. Nakit TL dahil kasadaki tüm efektiftir; döviz yalnız yabancı paradır. - Sistem kuru ≠ Pano kuru ≠ TCMB kuru. Toptan/gün kuru; şube vitrinindeki marjlı perakende fiyatı; yalnız belge kontrol tipli (RESMİ) işlemde kullanılan TCMB kuru. - Müşteri işlemi ≠ Nakit hareket. Bir işlem satırı iki (bazen üç) kasa hareketi üretir; sayım hareketlerle yapılır.

SIK YAPILAN HATALAR Yeni çalışan: Müşteri "dolar alacağım" deyince ekranda GİRİŞ seçmek. Yön büronundur: müşteri alıyorsa ÇIKIŞ. Müşteri (büro): Sabah kur listesini girmeden işlem yapmak; kur yoksa bakiye/pozisyon toplamları 0 çıkar, geçmiş tarihli işlemde o günün kuru yoksa yanlış fiyat gelir (PB-036, PB-046). Şube/kasayı "resmi" işaretlemeden resmi işlem denemek (PB-042). Destek personeli: "BTrans 100 USD" sorusunu mevzuat sorusu sanmak; alt limit altı işlemlerin aktarıma girmesi şube limit ayarına bağlıdır (INT-BTRANS). "İstatistik kodu hatası"nda hesabın HesapTuru ve HukukiKod eşlemesini Cari.Istatistik'te kontrol etmeden entegratörü suçlamak. Geliştirici: Program.GetKur ile satış tarafında fiyat üretmek (daima alış döner → makas kaybı, TD-21); tip 11/12 satırlarını stok/bakiye kaydından okumaya çalışıp "hacim eksik" sanmak — belge kontrol satırları yalnız işlem tablosundadır (2023'te V2 tutar hacminin %25'i).


3.3 Cari hesap: borç, alacak, bakiye

3.3.1 "Ali bugün malı aldı, parasını gelecek hafta verecek"

Seviye 1 — Çok basit

Mahalle bakkalının "veresiye defteri" vardır: Ali ekmek alır, parasını cuma verir; bakkal deftere "Ali: 40 TL" yazar. Cuma Ali 40 TL verir, bakkal satırı çizer. Bu deftere cari hesap denir. Ali'nin bakkala vereceği paraya Ali'nin borcu, bakkalın Ali'den alacağına bakkalın alacağı denir — aynı 40 TL'nin iki adı. Ali fazladan 10 TL bıraksa bu sefer Ali alacaklı, bakkal borçlu olur. Defterdeki toplam rakam bakiyedir; her ödeme ya da alışverişle değişir. "Cuma" ise vadedir: paranın gelmesi beklenen gün.

Kuyumcuda tek fark, defterin para yerine altın da tutmasıdır: "Ali: 150 gram has borçlu" diye yazılır. Altının TL fiyatı her gün değişir ama gram değişmez; o yüzden kuyumcu alacağını gramla sayar.

Seviye 2 — İşletme mantığı

Toptancı–perakendeci–atölye zinciri malı sürekli birbirine hesaben teslim eder; para ve has aylar sonra netleşir. Kuyumcu kurulumunda işlemlerin %55'i cari hesaplıdır, döviz bürosunda %16 (SEC-CARI). Cari hesabın üç kuralı vardır:

  1. Bakiye tek rakam değildir. Aynı müşteri HAS'ta borçlu, USD'de alacaklı, TL'de borçlu olabilir; üçü ayrı satırda durur ve kendiliğinden birbirine karışmaz. Mahsuplaşmak için açıkça ÇEVİR yapılır (SEC-CEVIR). "Bir hesabın hem 150 g HAS hem 5.000 USD bakiyesi olabilir" — bu normaldir, hata değildir.
  2. Mal bakiyesi ile para bakiyesi ayrıdır. 22 ayar bilezik satışında müşteri has borçlanır (metal) ve TL borçlanır (işçilik); iki satır.
  3. Peşin işlem bakiye yazmaz. Karşılığı tezgâhta alındıysa deftere yazılacak bir şey kalmaz; kasa ve stok değişir, bakiye değişmez (SEC-PESIN).

Riskler: has alacağı fiyat yükselince TL olarak büyür ama tahsilat riski de büyür; müşteriye has borçlanmak işletmeyi o kadar "short" yapar (pozisyon riski). Bu yüzden her hesabın has cinsinden bir limiti vardır ve ay sonu mutabakat (3.5) zorunlu ritüeldir.

ÖRNEK ALTIN A.Ş. Pazartesi sabahı cari durum: Kuyumcu Selim 150 g HAS borçlu (bize verecek), Döviz Nuri 5.000 USD alacaklı (biz ona vereceğiz), Toptancı Yusuf 400 g HAS alacaklı (biz ona vereceğiz). Üç hesap, üç birim, iki yön. Selim'in kartında HAS satırı BORÇ 150 (kırmızı), Nuri'nin kartında USD satırı ALACAK 5.000 (yeşil) görünür. Salı günü Selim'e cari hesapla 600 g 22 ayar bilezik satılacak (549,6 g has + 90.000 TL işçilik); Selim'in kartı o gün HAS borç 699,6 g, TL borç 90.000 olur — haftanın tamamı Bölüm 7'de anlatılır, burada yalnız atıf.

Seviye 3 — ERPGOLD

  • CARİ İŞLEMLER ekranı (SCR-ISCREEN): önce hesap seçilir (Ctrl+F), üstte hesabın bilgileri, ortada işlem şeridi (MADEN, HURDA, NAKİT, VİRMAN, ÇEVİR, VADELİ…), altta işlem listesi, sol altta BAKİYE kartı (SCR-IBAKIYECONTROL): her birim için BAKİYE, ALACAK, BORÇ, NET. Satıra tıklayınca kart "o işleme kadar" bakiyeyi gösterir.
  • Hesap kartı (Cari hesap ekle): ünvan, kimlik/vergi, grup, limit ve limit birimi, vade, zorunlu evrak, ana hesap. Hesap türleri: Müşteri, Yetkili Kurum, Banka, Diğer, Masraf, Devir (BR-DEVIR-001). Şubeler de bir cari karttır (provizyon hesabı).
  • İşlem tipi seçimi: TİP alanında NORMAL → hesaba yazılır (cari); PEŞİN → yazılmaz (tezgâh). Aynı ekran, tek alan farkı.
  • Renk ve işaret: BORÇ = müşteri bize verecek = kırmızı; ALACAK = biz müşteriye vereceğiz = yeşil. Müşteriyi borçlandıran yönler ÇIKIŞ ve SATIŞ; alacaklandıran yönler GİRİŞ ve ALIŞ (BR-YON-002, BR-YON-007).
  • Ödeme: müşteri borcunu öderken NAKİT GİRİŞ tip NORMAL → TL bakiyesi düşer. Has borcunu TL ile ödemek isterse önce ÇEVİR (has → TL, günün kuruyla), sonra NAKİT.
  • Karşılıksız düzeltme: devir, ıskonto, kur farkı, mutabakat farkı gibi mal hareketi olmayan borç/alacak kayıtları BORÇ İŞLEMLERİ ekranından (SCR-IFBORC); yalnız kod + tutar + birim.
  • Raporlar: Bakiye Ekstresi (RPT-1 — HAS/TL/USD/GUM pivot), günlük (RPT-84), Bakiye Kontrol (RPT-16), Vadeli Bakiye (RPT-3), İşlem Kontrol (RPT-2).
Örnek — Selim'e cari satış (Salı, örnek kurlar):
  MADEN ÇIKIŞ, tip NORMAL, 600 g 22 ayar, milyem 0,916, işçilik 150 TL/g
  Bakiye defteri:  HAS  +549,6   (borç → kırmızı)
                   TL   +90.000  (borç → kırmızı)
  Stok defteri:    22 ayar −600 g, has −549,6 g   (kuyumcuda cari işlem de stok düşer)
  Kasa:            değişmez (para gelmedi)
Selim 50.000 TL öderse: NAKİT GİRİŞ, NORMAL → TL −50.000 → TL bakiyesi +40.000 (hâlâ borçlu)

PEKİ NEDEN? Neden stok azalırken bakiye artıyor? Çünkü stok kaydı ve bakiye kaydı iki ayrı soruya cevap verir. Stok defteri "mal nerede?" der: bilezik kasadan çıktı, −600 g. Bakiye defteri "kime ait / kim kime borçlu?" der: Selim bize 549,6 g has borçlandı, +549,6. Aynı işlem satırından tetikleyici ikisini birden üretir; biri düşer, öteki artar. İkisini toplamak anlamsızdır.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Tablolar. Cari.Hesaplar (döviz kurulumu tablosunda 27.686 satır; HesapTuru, Limit, LimitBirimId, MasterId, LastDate, IsActive, LastMutabikId) — INST-ERPGOLDV2 "22.323 cari hesap" der; fark muhtemelen silinmiş/pasif satırlardır, ölçülmedi (GAP-BOOK-03-02). İşlem satırı Cari.Islemler: HesapId, HesapType (0 cari / 1 şube), BakiyeId = malın tarafı (mal cari hesaba yazılacaksa ilgili stoğun AnaBirimId'si; NAKİT'te daima 0), BirimId = paranın tarafı, IslemTipi, Miktar, Tutar. Bakiye defteri Cari.BakiyeIslem: HesapId × BirimId × Tarih, Bakiye (+ borç / − alacak), NetBakiye, IslemId = −1 devir satırı; kasaya bölünmez (KasaId var ama GetBakiye kullanmaz).

Üretim kuralı (TRG-CARI.ACCEPTTRANSACTION satır 406–416): @IslemTipi<>1 and @BakiyeId>0 and @Miktar<>0mal bakiyesi (has/miktar); @IslemTipi<>1 and @Tutar<>0para bakiyesi. Cari maden işlemi iki satır üretir (BR-BAKIYE-001); takoz beş satıra kadar çıkar. Her kayıt/düzeltmede IslemId bazında sil–yeniden yaz (BR-STOK-006). Ön kontroller: 'BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR', 'SUBE,KASA VEYA HESAP SECILMEDI'; her başarılı işlemde Cari.Hesaplar.LastDate güncellenir. Eksik evrak dalında ROLLBACK sonrası RETURN yoktur (bilinen kusur).

İşaret kuralı ve okuyucular. FN-BAKIYE.GETBAKIYE: BORC = Bakiye>0, ALACAK = |Bakiye| (Bakiye<0), NET = Bakiye × −1 × Alis (alış kuruyla TL'ye, işareti ters); kur girilmemişse NET 0 (BR-BAKIYE-018). Limit: FN-CARI.TOPLAMBAKIYE bakiyeleri alış kuruyla HAS'a çevirip × −1 toplar; kalan limit = Limit + toplam bakiye + 3 (BR-BAKIYE-016); aşılırsa 'Hesap Limiti Aşılıyor'. Yön kodları 2 ALACAK / 3 BORÇ veride hiç yoktur (yalnız 0,1,4,5); BORÇ İŞLEMLERİ ekranı IslemKodu 999 (DB kod tablosunda 'DEVİR', kodda BORC) yazar (CTR-039).

CTR-SEC-BAKIYE-01 — BakiyeId=0 ≠ peşin. Kitapçık §3.4 "BakiyeId = 0 peşin mi cari mi belirleyen tek anahtar" der; tetikleyicide bakiye yazımını kapatan koşul IslemTipi = 1'dir, BakiyeId = 0 yalnız mal satırını kapatır, tutar satırı yine yazılır. Veri: V2'de BakiyeId=0 1.261.440 satır, IslemTipi=1 318.324; KUYUMCU'da IslemTipi=1 0 satır ama BakiyeId=0 291.630 satır ve %99,9'u bakiye üretir. Doğru okuma: BakiyeId>0 = "mal cari hesaba yazıldı"; IslemTipi=1 = "peşin, hiç bakiye yok". Resmi (11) ve mahsup (12) operasyonel stok/bakiye kaydı üretmez (BR-TIP-004). Kaynak: SEC-BAKIYE, FIELD-CARI-ISLEMLER-BAKIYEID, CONTRADICTIONS#ctr-sec-bakiye-01.

Vadeli (SEC-VADELI): IslemKodu=6, IslemTuru ∈ {4,5}, IslemTipi=−1 (arbitrajda −2, kod tablosunda yok); stok hareketi yok, iki zıt işaretli bakiye satırı (SATIŞ: ana birim −Miktar, tutar birimi +Tutar). Gerçek fiş (kitapçık §5.3): 23.328 USD vadeli satış ↔ 600.000 TL → USD −23.328 (müşteri alacaklı), TL +600.000 (müşteri borçlu). Bakiye kartındaki "Vadeli Bakiye" sekmesi boş döner (sorgu yorum satırında, BR-BAKIYE-019); vadeli bakiye raporu ayrıdır (RPT-3).

BUNU KARIŞTIRMA - BakiyeId = 0 ≠ Peşin. NAKİT satırları BakiyeId=0 ile bakiye yazar; peşinliği IslemTipi = 1 belirler (CTR-SEC-BAKIYE-01). "Peşin ise stok, cari ise bakiye" yanlış sadeleştirmedir; dört kombinasyon da olur. - Borç (bakiye durumu) ≠ BORÇ (yön seçeneği). Durum defter toplamıdır; ÇEVİR/VİRMAN'daki BORÇ seçeneği "borç tarafını işle" demektir (SEC-BORC). - Müşteri alacağı ≠ İşletme alacağı. Bakiye kartı müşteri gözüyle konuşur: ALACAK = müşteri alacaklı = biz borçluyuz (SEC-ALACAK). - Bakiye ≠ Pozisyon. Bakiye tek hesabın durumu; pozisyon tüm hesapların bakiyesi + stok. - Bakiye (birim) ≠ NET (TL). Birim bakiyesi has/USD cinsinden defter toplamı; NET alış kuruyla TL'ye çevrilmiş, işareti ters çevrilmiş toplam. - Vade (işlem) ≠ Vade (hesap kartı). İşlemdeki vade teslim günü, kartta ödeme günü tanımı. - ERPGOLD carisi ≠ Muhasebe carisi. ERPGOLD carisi işletme içi has/döviz bazlı operasyon hesabıdır; işletmenin resmî muhasebesindeki cari ise mali belge bazlıdır ve ERPGOLD dışındaki muhasebe sisteminde tutulur.

SIK YAPILAN HATALAR Yeni çalışan: Cari müşterinin borcunu tahsil ederken tipi PEŞİN bırakmak → kasa artar ama bakiye düşmez, müşteri hâlâ borçlu görünür (H-104). İşçiliği gramın içine katarak (gramı fazla yazarak) girmek → has bakiyesi ve stok sayımı bozulur. Müşteri: "Bakiyem kasaya göre değişmiyor" şikâyeti; cari bakiye kasaya bölünmez, stok kasa bazlıdır. Has borcunu TL ile öderken ÇEVİR yapmadan NAKİT girmek → HAS borcu durur, TL alacağı doğar, iki birim asla kendiliğinden kapanmaz (PB-028 en sık nedeni). Destek personeli: "Bakiye ters çıkıyor" çağrısında yönü kontrol etmeden tetikleyiciyi suçlamak; sıra kur listesi → şube/kasa → yön → tip → işlem geçmişi → çift bacak → devir (PB-028). Geliştirici: BakiyeId = 0 ile "peşin hacim" hesaplamak (MET-PESIN-HACIM belirsizliği); Cari.BakiyeIslem'e elle INSERT/UPDATE yapmak — bir sonraki düzeltmede tetikleyici sil–yeniden yaz ile ezer.

3.3.2 Vade, ödeme ve limit

Seviye 1 — Çok basit

Bakkal Ali'ye "cumaya kadar" der: bu vadedir. Ali cuma gelip 40 TL verir: bu ödemedir. Bakkal Ali'ye "en fazla 200 TL veresiye" der: bu limittir; Ali 200'ü geçince bakkal "önce eskisini öde" der. Kuyumcuda üçü de vardır, yalnız birim gram has'tır: "Selim'e en fazla 500 g has açık verilir."

Seviye 2 — İşletme mantığı

  • Vade iki yerde geçer ve karıştırılır: hesap kartındaki vade, müşteriyle anlaşılan genel ödeme süresidir; vadeli işlemdeki vade, o işlemin teslim günüdür.
  • Ödeme her zaman "borcun birimiyle" yapılmaz. Selim has borcunu TL ile ödeyebilir; o zaman önce has borcu günün kuruyla TL'ye çevrilir (ÇEVİR), sonra TL tahsil edilir (NAKİT). Çevirmeden tahsil edilirse Selim'in HAS borcu durur, bir de TL alacağı doğar — kartta iki ters renk yan yana kalır.
  • Limit has cinsinden tanımlanır; her satışta müşterinin toplam bakiyesi (bütün birimler alış kuruyla has'a çevrilerek) limitle karşılaştırılır. Aşılırsa satış reddedilir; "uyar ama geç" modu yoktur (TERM-LIMIT).
  • Tahsilat riski fiyat riskiyle birleşir: has alacağı büyürken kur yükselirse alacağın TL değeri artar ama müşterinin ödeme gücü düşebilir; limit ve mutabakat bu yüzden birlikte çalışır.
Örnek — Kuyumcu Selim, limit 600 g has (örnek), has kuru 4.000 TL:
  Pazartesi bakiye:  HAS +150 → kalan limit ≈ 600 − 150 (+3 tolerans) = 453 g
  Salı satış:        549,6 g has + 90.000 TL işçilik (= 22,5 g has değerinde) → 572,1 g "değer"
  572,1 > 453  →  'Hesap Limiti Aşılıyor' — satış reddedilir
Çözüm: Selim önce ödeme yapar ya da Ayşe Demir limiti bilinçli olarak yükseltir; sistem "uyarıp geçmez".

Seviye 3 — ERPGOLD

  • Hesap kartında Limit ve Limit birimi (HAS) alanları; şube ayarında limit kontrolü açık/kapalı (Cari hesap ekle).
  • Kontrol yalnız MADEN/HURDA/NAKİT ÇIKIŞ, tip ≠ PEŞİN ve şubede limit kontrolü açıkken çalışır; uyarı: 'Hesap Limiti Aşılıyor'.
  • Ödeme: NAKİT GİRİŞ tip NORMAL (TL/USD); has ödemesi: MADEN/HURDA GİRİŞ tip NORMAL; birim değiştirme: ÇEVİR ekranında İŞLEM = BORÇ seçilince bakiye artıysa miktar otomatik gelir (SCR-IFCEVIR).
  • Limit aşan hesaplar: limit aşım raporu; hareketsiz cariler: işlem görmeyen bakiye listesi.
  • Karşı hesap limit uyarısı ve "limit aşımı" çağrıları için PB-047.
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Cari.Hesaplar.Limit, LimitBirimId, Vade (kart); Sube.IsLimitControl. Kontrol Cari.Islem.Save limit bloğunda: Satış/HAS kuru > FN.GetCariLimit ise reddedilir. FN-FN.GETCARILIMIT = Limit + Cari.ToplamBakiye + 3; FN-CARI.TOPLAMBAKIYE bugünkü bakiye satırlarını alış kuruyla HAS'a çevirip × −1 toplar (borç eksi), dünkü toplamı Cari.BakiyeDun'dan ekler (BR-BAKIYE-016).
  • ÇEVİR: IslemKodu=4; İŞLEM alanındaki BORÇ/ALACAK seçimi yön 3/2'ye yazılır (virmanda ise ÇIKIŞ/GİRİŞ olarak — BR-YON-006, CTR-026). Veride ÇEVİR kodu her iki kurulumda 0 satır — kuyumcu kurulumunda bir tek 4 CEVIR / −1 satırı vardır. Bu, "has borcunu TL ile ödeme" akışının canlıda çoğunlukla başka yolla (NAKİT + BORÇ İŞLEMLERİ ya da vadeli) yürüdüğünü düşündürür; ölçülmedi (GAP-BOOK-03-03).
  • Vade (işlem): Cari.Islemler.Vade yalnız vadeli ailede (BR-VADELI-005).

3.3.3 Bir işlem, kaç bakiye satırı?

Yeni çalışanın en çok şaşırdığı şey: tek bir fiş kaydeder, bakiye kartında iki (bazen beş) satır oynar. Kural basittir — mal tarafı ve para tarafı ayrı satırdır ve her ekranın kendi deseni vardır (BR-BAKIYE-001, SEC-BAKIYE):

Ekran / işlem (tip NORMAL, cari) Mal bakiyesi Para bakiyesi Stok defteri
MADEN ÇIKIŞ (bilezik satışı) HAS +has (borç) TL/USD +işçilik/tutar (borç) maden −miktar (kuyumcuda %100)
HURDA GİRİŞ (müşteri hurda bıraktı) HAS −has (alacak) varsa tutar hurda +miktar
NAKİT GİRİŞ (tahsilat) — (BakiyeId 0) TL/USD −tutar (alacak → borç düşer) nakit yok (cari)
HİZMET (ayar evi ücreti, masraf) tutar (borç/alacak) yok
VİRMAN (A'dan B'ye aktarım) iki hesapta zıt satır iki hesapta zıt satır yok
ÇEVİR (has → TL) HAS bir yönde TL ters yönde yok
VADELİ SATIŞ ana birim −miktar (alacak) tutar birimi +tutar (borç) yok
TAKOZ ÇIKIŞ (rafineriye) HAS ve GUM ayrı satır işçilik satırı (has ya da para) takoz −1 adet
PEŞİN (her ekran) yok yok mal + kasadaki para
RESMİ / MAHSUP (11/12) yok yok yok (yalnız iz)

Şube ve kasa da caridir. ÖRNEK ALTIN A.Ş. MERKEZ'den ŞUBE-2'ye 200 g has gönderdiğinde bu bir "satış" değildir ama ERPGOLD onu yine bir cari hesap üzerinden yürütür: şube hesabı (provizyon) bir cari karttır, transfer karşı kasada kabul edilene kadar bakiyeye düşmez; kabul bekleyen transferi unutmak "stok tutmuyor" çağrısının klasik nedenlerindendir (TERM-PROVIZYON, BR-TRANSFER-005, SCR-FRMTRANSFER). Şube hesabında yön ÇIKIŞ'a kilitlidir; takoz girişi şube transfer hesabında yapılamaz.

PEKİ NEDEN? Neden NAKİT satırında BakiyeId = 0 ama bakiye yazılıyor? Çünkü nakitte "mal" diye ayrı bir şey yoktur; paranın kendisi maldır. Tetikleyici mal satırını BakiyeId>0 şartıyla, para satırını Tutar<>0 şartıyla yazar; nakitte yalnız ikincisi çalışır. Bu yüzden "BakiyeId = 0 → peşin" okuması yanlıştır (CTR-SEC-BAKIYE-01).


3.4 Maliyet ve kâr

3.4.1 "Kaça aldım, kaça sattım, ne kazandım?"

Seviye 1 — Çok basit

Bakkal 10 liraya aldığı çikolatayı 12'ye satar; 2 lira kârdır. Basit. Kuyumcuda iki şey bunu bozar. Birincisi: altının fiyatı her gün değişir; bir ay önce 3.800 TL'den aldığın gram has bugün 4.000 TL ise 200 TL "kazandın" gibi görünür ama bu satış kârı değil, altının fiyatı yükseldi — sen hiçbir şey yapmadın. Yarın düşebilir. Bu kazanca sektör kur farkı (ya da pozisyon kazancı) der, kâra karıştırmaz. İkincisi: bileziğin fiyatı iki parçadır — içindeki altın + işçilik. Gerçek ticari kâr işçilikten ve marjdan gelir; altının kendisi bir "para birimi"dir, kâr üretmez.

Seviye 2 — İşletme mantığı

Sektör maliyeti iki katmanda düşünür (SEC-MALIYET):

  1. Metal (has) değeri: altın "geçen ay 3.800'den almıştım" diye değil, bugünkü has kuruyla değerlenir. Metal iki tarafta (maliyet ve satış) aynı kurla yazıldığı için satırda sıfır kâr üretir; fiyat hareketinin etkisi pozisyona/kur farkına gider.
  2. İşçilik ve marj: ürüne ödenen işçilik, alış–satış makası, taş bedeli. Bu katman stoktan son giren ilk çıkar (LIFO) ile düşülür; "ortalama maliyet" adı kullanılsa da ağırlıklı ortalama değildir.

Döviz bürosunda maliyet = alış kurundaki TL karşılığı; marj = satış − alış (65 USD örneği: 17,69 TL, %1). Kâr has cinsinden de konuşulur ("bu ay 40 g has kazandık") çünkü TL enflasyon ve kur etkisini taşır.

ÖRNEK ALTIN A.Ş. Zeynep Aksoy vitrinden 80 g 22 ayar bilezik satıyor (peşin, TL). Stoktaki bilezik Atölye Kemal'den işçilik 100 TL/g ile gelmişti; vitrin işçiliği 150 TL/g; has kuru 4.000 TL alış (örnek).

text Has = 80 × 0,916 = 73,28 g Metal maliyeti = 73,28 × 4.000 = 293.120 TL (günün kuru — tarihî alış değil) İşçilik maliyeti (stoktan, LIFO) = 80 × 100 = 8.000 TL Maliyet = 301.120 TL Satış değeri = 293.120 + 80 × 150 = 305.120 TL Kâr (satır) = 305.120 − 301.120 = 4.000 TL → 4.000 ÷ 4.000 = 1,0 g has

Aynı gün has kuru 4.100'e çıksaydı satır kârı yine 4.000 TL olurdu (metal iki tarafta aynı kurla). Vitrinde kalan 1.420 g bileziğin (1.300,7 g has) değer artışı 1.300,7 × 100 = 130.070 TL kâr değil, kur farkıdır. Ayşe Demir ikisini ayrı okumalı: biri Maden Satış Kâr Raporu'nda, öteki bilanço kur farkı kaleminde.

Kâr ile kur farkını toplamak mümkündür ama ayrı gösterilir; ikisini karıştırmak vergiyi ve fiyatlamayı bozar, çift sayma riski taşır (SEC-KAR, MET-KUR-FARKI).

Seviye 3 — ERPGOLD

  • Maliyet ve kâr elle girilmez; MADEN, HURDA, NAKİT, PIRLANTA, TAKOZ ekranları kayıt anında hesaplar. Her işlem satırında bir maliyet ve bir satış değeri saklanır; kâr farkıdır ve satırda durur, sonradan hesaplanmaz. Alışta maliyet = satış değeri → kâr 0; kâr satışta doğar.
  • Maden kartında maliyet birimi (işçiliğin izlendiği birim: TL, USD, HAS) ve işçilik türü (adet/gram) tanımlanır; ana birim (HAS) ile karıştırılmaz.
  • Stok ekranı (Maden Stokları) eldeki miktarla birlikte ortalama milyem ve birim maliyeti gösterir.
  • Raporlar: Maden Satış Kâr Raporu (RPT-37 — yalnız maden çıkışları, resmi hariç; kârı TL, has ve USD olarak verir), Takoz Kâr (RFN-REPORTS.TAKOZKARRAPORU), vadeli kâr, kur farkı (RFN-BILANCO.GETKURFARKI), bilanço kâr/zarar = toplam − devir (pozisyon değerlemesi dahil, BR-BILANCO-001). Ciro raporları kâr değildir.
  • Kur farkı: pozisyon × (kapanış kuru − maliyet kuru); maliyete girmez.
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Üç ayrı "maliyet" vardır ve karıştırılır:

Yer Ne yazar Kim yazar Not
Cari.Islemler.Maliyet / Satis Satırın maliyet ve satış değeri; maden çıkışta metal (günün ana birim alış fiyatı) + stok işçiliği (LIFO); nakitte miktar × alış kuru Uygulama (Cari.IslemEx.MaliyetHesapla), BR-MALIYET-001, BR-MALIYET-002 Kar hesaplanan kolon: case when IslemTuru in (0,2,4) then Maliyet−Satis else Satis−Maliyet end (FIELD-CARI-ISLEMLER-KAR)
Stok.StokHaraketleri.Maliyet Girişte Iscilik × IscilikBirimKuryalnız işçilik TL; çıkışta 0; pırlantada Tutar × Fn.GetKur(BirimId) Tetikleyici satır 433 (BR-STOK-001) Bilanco.OzetBilanco bu kolonu İŞÇİLİK kalemi olarak toplar; metal değerini içermez
Stok.GetMadenMaliyeti TOP 50 … StokTipi=1 And IslemTuru=0 Order By IslemId Desc: giriş partilerinin işçilik TL'sini istenen miktar dolana kadar LIFO biriktirir, Sistem.Kurlar son alış kuruyla maliyet birimine böler DB fonksiyonu; Stok.GetMadenStok çağırır FN-STOK.GETORTMILYEM aynı LIFO ile milyem döner

Şüpheli / bilinen kusurlu maliyet-kâr fonksiyonları (teknik not):

Nesne Kusur Kaynak
Stok.GetMadenMaliyeti Adı "ortalama" gibi anılır, davranışı LIFO; TOP 50 — 50'den fazla parti gerekiyorsa maliyet sessizce eksik hesaplanır; kuru Sistem.Kurlar son satırından alır → geçmiş tarihli rapor bugünkü kurla çıkar Kitapçık Ek C.2–C.3, FN-STOK.GETMADENMALIYETI
Cari.MadenKarRaporu Yalnız IslemKodu=1 And IslemTuru=1 And IslemTipi not in (11,12): MADEN çıkışı. Hurda (2), model (9), takoz kârı ayrı fonksiyonlarda; nakit/döviz dönem kârı için tek fonksiyon görülmedi (GAP-SEC-KAR-01). Kar ÷ HasKur, Kar ÷ UsdKur FN-CARI.MADENKARRAPORU
Bilanco.GetIKar Adında "kâr" var ama kâr değil: bir işlemin defter etkisini (bakiye + maden has + işçilik + nakit + takoz) günün kur listesiyle TL'ye çeviren değerlemedir; bakiyede Kur.Satis, stokta Kur.Alis kullanır. Hangi ekranı beslediği doğrulanmadı FN-BILANCO.GETIKAR, CTR-SEC-KAR-01
Bilanco.GetKurFarki Formülü "pozisyon × (kapanış kuru − ortalama maliyet kuru)" olarak anlatılır; "ortalama maliyet kuru"nun hangi fonksiyonla hesaplandığı doğrulanmadı; stoktaki döviz için maliyet fonksiyonu görülmedi (GAP-SEC-MALIYET-01) FN-BILANCO.GETKURFARKI
Program.GetKur (VB) Daima alış kuru; birim yoksa 1 → satış tarafında marj kaybı, listede olmayan birimde sessiz yanlış tutar (P1) TD-21, BR-KUR-008
Sistem.GetKurListesi (DB) O güne kur girilmemişse son kuru işaretsiz döndürür → eski kurla maliyet/kâr, kullanıcı uyarılmaz (P2) TD-22
BR-MALIYET-001 işçilik dalı Negatif işçilik 0'a çekilir; "işçilik ilk kayıtta sıfır" notu (KNOWN_GAPS) SEC-MALIYET

Çelişkiler:

  • CTR-SEC-MALIYET-01: Sözlük (TERM-MALIYET-SON-GIREN-ILK-CIKAR) "satılan malın maliyeti LIFO ile bulunur"; eski metrik tanımı "edinme değeri, ağırlıklı ortalama varsayımı". Kod: LIFO yalnız işçilik bileşeni ve milyem için geçerlidir; metal değeri her zaman işlem anındaki ana birim alış fiyatıyla hesaplanır, tarihî edinme değeri hiçbir yerde tutulmaz, ağırlıklı ortalama kodda yoktur. Doğru tanım: maliyet = günün kuruyla metal + LIFO işçilikMETRIC_DICTIONARY#met-maliyet bu yönde güncellenmiştir; CONTRADICTIONS#ctr-sec-maliyet-01.
  • CTR-SEC-KAR-01: Eski metrik formülü "Σ(SatışTutar) − Σ(SatışMiktar × Maliyet)"; kodda "miktar × birim maliyet" yoktur, MadenKarRaporu satır Kar kolonunu toplar. Bilanco.GetIKar kâr değil değerlemedir; METRIC_DICTIONARY#met-kar "Σ Kar (çıkış satırları)" olarak düzeltilmiştir; CONTRADICTIONS#ctr-sec-kar-01.
  • CTR-BOOK-03-01 (bu bölümde bulundu): Teknik wiki alan sayfası FIELD-CARI-ISLEMLER-MALIYET "Bu kolon metal değerini içermez: tetikleyici girişte Iscilik × IscilikBirimKur yazar" der. Oysa tetikleyicinin yazdığı kolon Stok.StokHaraketleri.Maliyet'tir; Cari.Islemler.Maliyet'i uygulama yazar ve kitapçık §5.2 gerçek fişinde (65 USD → maliyet 1.685,45 TL) metal/döviz değerini içerir. "Yalnız işçilik" ifadesi stok defteri kolonu için doğru, işlem satırı kolonu için yanlıştır. Kayıt: _tools/book_findings_03.md.

BUNU KARIŞTIRMA - Maliyet ≠ Satış değeri. Aynı satırda iki alan; kâr farkı. Alışta eşittir. - Metal maliyeti ≠ İşçilik maliyeti. Metal günün kuruyla, işçilik stoktan LIFO ile; yalnız ikincisi gerçek "edinme maliyeti"dir. - LIFO ≠ Ortalama. Fonksiyonun adı ortalama gibi anılır, davranışı son giren ilk çıkar; ağırlıklı ortalama yoktur. - Kâr ≠ Kur farkı. Kâr gerçekleşen marj; kur farkı açık pozisyonun değerleme farkı. Ayrı kalem, çift sayma riski. - Kâr ≠ Ciro. Ciro satış tutarıdır; ciro raporu kâr göstermez. - Maliyet birimi ≠ Ana birim. Ana birim malın has/döviz birimi; maliyet birimi işçiliğin izlendiği birim — kartta ayrı alanlar. - Cari.Islemler.MaliyetStok.StokHaraketleri.Maliyet. İlki satırın tam maliyeti (uygulama), ikincisi yalnız işçilik TL (tetikleyici).

SIK YAPILAN HATALAR Yeni çalışan: Has kuru yükselince "bugün çok kâr ettik" demek; stoktaki değer artışı kur farkıdır, satılmadan kâr olmaz. Maden kartında maliyet birimini ana birimle (HAS) karıştırıp işçiliği has olarak izlemek. Müşteri: Maden Satış Kâr Raporu'nda hurda ve model satışlarını aramak (rapor yalnız MADEN çıkışıdır); geçmiş aya ait kâr raporunu bugünkü kurla okuyup "kâr değişti" diye aramak (PB-058 maden maliyeti, PRB-MADEN-000). Destek personeli: "Maliyet eksik" çağrısında 50 partiden fazla giriş olup olmadığını (TOP 50 kesmesi) ve o gün kur girilip girilmediğini (TD-22) sormadan yazılımcıya yükseltmek. Geliştirici: Stok.StokHaraketleri.Maliyet'i metal dahil maliyet sanıp bilançoda ikinci kez toplamak; Bilanco.GetIKarı kâr raporu olarak sunmak; kâr formülünü "miktar × birim maliyet" diye yeniden yazmak (kodda böyle bir şey yok, satır Kar kolonu toplanır).

3.4.2 İşçilik: kârın asıl kaynağı

Seviye 1 — Çok basit

Bir bilezik iki şeyden yapılır: içindeki altın ve onu ören ustanın emeği. Altını herkes aynı fiyata alır, kimse altından kazanmaz. Ustanın emeğine işçilik denir ve kuyumcunun asıl kazancı budur. Bileziği bozdurmaya götürdüğünde yalnız altının parasını alırsın; işçilik "gitmiştir" — o yüzden bilezik alırken ödediğinle bozdururken aldığın arasında fark vardır.

Seviye 2 — İşletme mantığı

İşçilik iki dilde söylenir (SEC-ISCILIK):

  • Milyem (altın) cinsinden: "916 + 50 milyem" → müşteri gram başına 0,050 g has fazladan öder. Toptancı–atölye arasında yaygındır; işçilik de altınla ödenir, para hiç geçmez.
  • Para cinsinden: gram ya da adet başına TL/USD ("gramı 150 TL"). Perakendede yaygındır.

Hurda ve külçede işçilik yoktur; mamul, ziynet ve rafinasyon hizmetinde vardır. Rafineri ücretini genellikle altınla keser (691,73 g takoz için 0,45 g has). Atölye için üç seçenek konuşulur: "has'tan düş", "nakit al", "madenden düş".

Örnek — 20,00 g 22 ayar bilezik, has kuru 4.000 TL (örnek), satış tutarı 76.280 TL:
  Has              = 20,00 × 0,916 = 18,32 g
  Altın değeri     = 18,32 × 4.000 = 73.280 TL
  İşçilik (TL)     = 76.280 − 73.280 = 3.000 TL
  İşçilik (has)    = 3.000 ÷ 4.000 = 0,75 g  →  gram başına 0,0375 → "37,5 milyem"
Bozdurma: müşteri 18,32 g has'ın alış kuruyla karşılığını alır; 3.000 TL işçilik geri gelmez.

Seviye 3 — ERPGOLD

  • MADEN ekranında İŞÇİLİK alanı ve işçilik birimi (TL/USD/HAS); maden kartında işçilik türü (adet/gram) ve maliyet birimi.
  • Girişte program işçiliği tutardan türetir: işçilik = (tutar − miktar maliyeti) ÷ maliyet birimi fiyatı; negatif çıkarsa 0'a çekilir (BR-MALIYET-001).
  • Çıkışta işçilik = kart işçiliği × (adet ya da miktar); stoktan düşülen işçilik maliyeti LIFO ile bulunur (3.4.1).
  • İşçilik cari hesapta ayrı bakiye satırıdır (para tarafı): müşteri has borçlanır + TL borçlanır. İşçiliği gramın içine katmak has bakiyesini ve stok sayımını bozar — atölye/toptancı çağrılarının klasik nedeni.
  • Bilançoda stoktaki işçilik değeri ayrı kalemdir (İŞÇİLİK); takoz işçiliği BR-TAKOZ-006 kuralıyla (has × işçilik fiyatı ÷ 1000 × birim kuru) has olarak hesaplanır.
  • Fason işçilik TL olarak alınacaksa süreç: PROC-113; işçilik/TL sorunları PB-059.

3.4.3 Döviz bürosunda maliyet ve kâr

Döviz tarafında işçilik yoktur; maliyet = alış kurundaki TL karşılığı, kâr = satış − maliyet, her satırda saklanır.

Kitapçık §5.2 gerçek fişi (30.06.2023, anonim):
  65 USD satış (NAKİT ÇIKIŞ, PEŞİN), satış kuru 26,15, maliyet kuru 25,93
  Tutar   = 65 × 26,15 = 1.699,75 TL  (+ ‰2 BSMV 3,40 → tahsil 1.703,14/15)
  Maliyet = 65 × 25,93 = 1.685,45 TL
  Kâr     = 1.703,14 − 1.685,45 = 17,69 TL  (%1,04)
ÖRNEK ALTIN A.Ş. (örnek kur): Nuri 1.000 USD alırsa tutar 40.200 TL, maliyet 40.000 TL, kâr 200 TL.

Dikkat edilecekler:

  • Alışta kâr sıfırdır (maliyet = satış değeri); kâr satışta doğar. Sabah 100.000 USD stoğun "kaça alındığı" satır satır durur; gün sonu kârı o günkü satış satırlarının Kar toplamıdır, elde kalan 40.000 USD'nin kur hareketi kâr değil kur farkıdır (3.2.1 örneği).
  • BSMV kârdan ayrı hesaplanır ve ayrı alanda durur (BR-BSMV-001); "hariç" ayarında tutarın üstüne eklenir.
  • Nakit/döviz için dönem kârı fonksiyonu görülmedi (GAP-SEC-KAR-01); stoktaki dövizin "ortalama maliyet kuru" hangi fonksiyonla bulunuyor doğrulanmadı (GAP-SEC-MALIYET-01). Döviz kârı bugün satır bazında Cari.Islemler.Kar toplanarak okunur.
  • Satış tarafında kuru Program.GetKur ile üreten ekranlar alış kurunu kullanır → makas kaybı (TD-21); vezne ekrana gelen fiyatı kontrol etmelidir.

3.5 Mutabakat ve kontrol

3.5.1 "Bilgisayar Ali 100 g borçlu diyor, Ali 80 diyor"

Seviye 1 — Çok basit

İki arkadaş harçlık defteri tutuyor. Senin defterinde "Ali bana 100 TL borçlu" yazıyor, Ali'ninkinde "80 TL". Kim haklı? Bağırmak yerine iki hesap kaydını yan yana koyup satır satır gidersin: "Salı 50 verdim — evet. Çarşamba 30 — evet. Perşembe 20 — ben onu geri verdim, sen yazmamışsın!" İşte bu satır satır karşılaştırmaya mutabakat denir, karşılaştırılan listeye ekstre, "buraya kadar anlaştık" damgasına mutabık. Anlaşılan noktadan öncesi bir daha açılmaz; yeni bir hata bulunursa eski satır silinmez, yeni bir düzeltme satırı yazılır.

Seviye 2 — İşletme mantığı

Toptancı–perakendeci arasında yüzlerce gram has alacağı aylarca açık kalır; fiyat değiştikçe anlaşmazlık riski büyür. Bu yüzden dönemsel mutabakat zorunlu ritüeldir (SEC-MUTABAKAT). Fark çıkınca üç soru sorulur: (1) Hangi işlem karşı tarafın defterinde var, bizde yok (ya da tersi)? (2) Aynı işlem iki tarafın kayıtlarında farklı mı yazılmış (yön, tip, birim, miktar)? (3) Biri sonradan düzeltmiş/silmiş mi? Bunun için iki araç gerekir: bakiye ekstresi (satır satır döküm) ve işlem geçmişi (kim, ne zaman, neyi değiştirdi). Mutabık kalınan tarihten önceki işlem düzeltilirse iki tarafın defteri yeniden ayrışır; bu yüzden geçmiş kilitlenir.

Ayrıca kasa/stok sayımı vardır: gün sonunda fiziksel sayım defterle karşılaştırılır, fark araştırılır. Bu, müşteriyle yapılan cari mutabakattan ayrı bir iştir; ikisi de "mutabakat" adını taşır ve karışır.

ÖRNEK ALTIN A.Ş. Cuma: Ali Çelik (muhasebe) Kuyumcu Selim'e ekstre gönderdi. ERPGOLD Selim'i 100 g HAS borçlu gösteriyor; Selim "80 g" diyor. Ali Çelik ekstreyi satır satır okuyor: Çarşamba Selim 20 g hurda bırakmış; Zeynep bunu HURDA GİRİŞ olarak girmiş ama TİP alanında PEŞİN kalmış. Peşin işlem bakiye yazmadığı için Selim'in has borcu 20 g düşmemiş; stok ise doğru artmış (kasaya 20 g hurda girdi). Çözüm: satır DÜZELT ile tip NORMAL yapılır → tetikleyici defterleri yeniden üretir → HAS bakiyesi 80 g olur. Ali Çelik son satırı seçip F12 basar: "Seçmiş Olduğunuz İşlemde Mutabık Kalınacaktır. Onaylıyor musunuz?" → Evet. Artık bu satır ve öncesi kilitlidir; Pazartesi biri yanlış bulursa yeni satırla düzeltilir. Deniz Yılmaz'a çağrı açmaya gerek kalmadı — ama açılsaydı ilk sorusu "TP sütununda ne yazıyor?" olurdu.

Seviye 3 — ERPGOLD

Cari mutabakat (müşteriyle bakiye teyidi): - Ekstre: Bakiye Ekstresi (RPT-1) müşteriye gönderilir; birim birim (HAS/TL/USD/GUM) döküm. - İşaretleme: CARİ İŞLEMLER listesinde satır seçilir, F12 → satır "mutabık" olur; M sütunu işaretlenir, kullanıcı ve tarih yazılır. Üst bilgi panelinde "12 Gun once Mutabakat Yapılmıs" / "Yakın Zamanda Mutabakat Yapılmamış" mesajı (BR-MUTABAKAT-004). - Kilit: Genel ayarlar ▸ İzinler ▸ mutabakat kilidi — "işlem yapılamaz" ya da "PIN gerekir". Mutabık işlem numarasından eski bir satır düzeltilmek istenince "«N» Numaralı İşlemde Mutabakat Yapılmış. Önceki İşlemleri Değiştiremezsiniz." (PB-038, TERM-MUTABAKAT-KILIDI). - Raporlar: Müşteri Mutabakat Raporu (RPT-5) ve Mutabakat Raporu (RPT-83) — hangi hesapla en son ne zaman mutabakat yapıldı, kaç gündür yapılmadı; MASAK/iç denetim için kanıt.

Bakiye kontrolü ve işlem geçmişi: - Cari Bakiye Detay, Bakiye Kontrol (RPT-16). - İşlem Geçmişi (CARİ İŞLEMLER ▸ Ara): her satırın "Yeni Kayıt", "Düzeltme", "İptal Edildi", "Geri Alındı", "Silindi" izi; kim ve ne zaman. Mutabakat işaretlemesi iz üretmez (BR-MUTABAKAT-002); M sütununun ne zaman işaretlendiği yalnız satırdaki mutabakat tarihinden okunur.

Düzeltme ve iptal: - Yön/tip hatası DÜZELT ile; virman/parite/vadeli gibi iki bacaklı işlemde tek bacak varsa iptal + yeniden giriş (PB-032). - Silme yumuşaktır: satır fiziksel silinmez, işaretlenir; listeden kaybolur ama geçmişte durur (BR-STOK-012). - Düzeltme/iptal gün sınırı ve onay ayarları ayrıdır (DuzeltmeGun, SilGun, DuzeltmeOnayi, SilmeOnayi); mutabakat kilidi işlem numarasına bağlıdır. - Acil rakam gerekiyorsa DEVİR / Borç İşlemleri ekranından ters kayıt ile fark kapatılır, açıklamaya gerekçe yazılır; asıl neden bulununca ters kayıt iptal edilir (BR-GENEL-004).

Stok sayım mutabakatı (ayrı iş): Mutabakat ekranı (Hesap Yönetimi ▸ Rapor ▸ Mutabakat): kasa ve stok tipi seçilir, sayım satırları girilir; Mutabakat Onay: stok hareketleriyle karşılaştırıp onay. Sayım Ekranı ilgili akıştır. Muhasebe ile belgelendirilmiş stok görünümü mutabakatı için PB-016.

CTR CTR-SEC-MUTABAKAT-01: Sözlük ve şartname "mutabakat"ı cari anlamında (müşteriyle bakiye teyidi, F12) tanımlar; ancak menüdeki Mutabakat ve Mutabakat Onay ekranları stok sayım mutabakatıdır (kasa + stok tipi, Stok.Mutabakat tablosu; V2'de 0, kuyumcu kurulumunda 153.394 satır ve devir bu tabloyu temizlemez). Cari mutabakat için ayrı ekran yoktur; F12 ile işlem satırı üzerinde yapılır. Yeni çalışana "mutabakat ekranını aç" dendiğinde hangisinin kastedildiği sorulmalıdır. CONTRADICTIONS#ctr-sec-mutabakat-01, FLOW-MUTABAKAT.

"Bakiye tutmuyor" teşhis sırası (PB-028, SYM-BAKIYE — 710 çağrı, ERPGOLDV2 çağrılarının %6,4'ü; Ekim ve Ocak zirveleri devir/yıl sonuyla örtüşür):

# Kontrol Tipik neden
1 Bugünün kur listesi dolu mu? Kur yoksa NET/toplam 0 çıkar; rakam değil karşılığı bozuk (PB-036)
2 Ctrl+F5 (sistem yenile) Ekran eski veri
3 Doğru şube/kasa? Cari bakiye kasaya bölünmez; stok kasa bazlıdır
4 Yön: GİRİŞ alacaklandırır (yeşil), ÇIKIŞ borçlandırır (kırmızı) "Bakiye ters" (H-103)
5 Tip (TP sütunu): NORMAL bakiye ✓ kasa ✗ · PEŞİN bakiye ✗ kasa ✓ · RESMİ hiçbiri Peşin girilmiş cari (H-104)
6 İşlem Geçmişi: Düzeltme / İptal / Geri Alındı var mı? "Bakiye birden değişti, kimse dokunmadı" (H-105)
7 Virman/parite/vadeli: aynı fişte iki satır var mı? Tek bacak kalmış (H-106)
8 Geçmiş tarihli işlemde o günün kuru var mı? Birim bakiyesi doğru, has/TL karşılığı yanlış (H-107)
9 Devir satırı arşivdeki son bakiyeyle uyuşuyor mu? Devir farkı (PB-034)
10 Tetikleyici açık mı? İşlem var, defter yok (H-006, PB-029)

UYARI Toptan bakiye onarım aracı (Repair.BalanceRepair) hiçbir koşulda destek tarafından çalıştırılmaz: türetilmiş defterleri TRUNCATE edip yeniden kurmaya çalışır, 2017'de dondurulmuştur, tetikleyiciden 11 maddede sapar, devir bakiyeleri/transfer hareketleri kaybolur ve fatura tipli işlemlere bakiye yazar. Uygulamadan çağıran yoktur. TD-30, SP-REPAIR.BALANCEREPAIR, KNOWN_GAPS TD-BALANCEREPAIR. Doğru yol her zaman Cari.Islemler satırını düzeltmek ve tetikleyicinin defterleri yeniden üretmesine izin vermektir.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari mutabakat alanları. Cari.Islemler.Mutabakat (bit, indeksli, varsayılan 0 — FIELD-CARI-ISLEMLER-MUTABAKAT), MUser, MTarih (FIELD-CARI-ISLEMLER-MTARIH); Cari.Hesaplar.LastMutabikId; GlobalSettings.MutabakatPermission {IslemYapilamaz, PinGerekli}, Sistem.Settings.MutabakatLock. Tetikleyici UPDATE(Mutabakat) güncellemesini ETTN (e-belge) kilidinden muaf tutar (satır 259). Son mutabık işlem = en büyük işlem numarası (silinmemiş, M=True, hesap) (BR-MUTABAKAT-003); kilit: düzeltilecek işlem no ≤ son mutabık no ⇒ engel veya PIN. Panel mesajı: >10 gün "Yakın Zamanda Mutabakat Yapılmamış", 1–8 gün "N Gun once", aksi "Bu Gun" (9–10 gün için kod boşluğu). Fonksiyonlar: Cari.MutabakatListesi, Cari.NetBakiyeMut, Cari.GetFullBakiyeMut (açıklamasız — GAP); rapor RFN-REPORTS.MUTABAKATRAPORU. Mutabakat işaretinin geri alınması için ekran/kural kaynakta görülmedi (GAP-SEC-MUTABAKAT-01); kaldırma gerekiyorsa yazılımcı/SQL yetkili destek (PB-038).

Stok mutabakatı. TBL-STOK.MUTABAKAT (Tarih, StokTipi, KasaId, StokId, Miktar, Onay, OnayUserId); DAO AIO.Stok.Mutabakat; Mutabakat ekranı DELETE, MutabakatOnay Stok.StokHaraketleri SELECT; tetikleyici yok, türetilen yok (FLOW-MUTABAKATONAY).

İz tablosu. Cari.History: Cari.Islemler satırının her sürümünün tam kopyası + LogType (Yeni Kayıt · Düzeltme · İptal Edildi · Geri Alındı · Silindi), LogDate, TransactionId, UserId; 73 kolon; V2'de 1.643.593, kuyumcuda 736.304 satır — sistemdeki en kalabalık tablo. Cari.InsertTransaction 'Yeni Kayıt', Cari.UpdateTransaction 'Düzeltme'/'Geri Alındı'/'İptal Edildi', Cari.DeleteTransaction 'Silindi' yazar; 'Yeni Kayıt'/'Düzeltme' yeni hâli (Inserted), 'İptal Edildi'/'Geri Alındı' önceki hâli (Deleted) taşır. Mutabakat işaretlemesi iz üretmez.

Yumuşak silme ve sil–yeniden yaz. Cari.Islemler.IsDeleted (FIELD-CARI-ISLEMLER-ISDELETED); fiziksel silme yok (BR-STOK-012). Her INSERT/UPDATE'te tetikleyici IslemId bazında Cari.BakiyeIslem ve Stok.StokHaraketleri satırlarını siler ve yeniden üretir (BR-STOK-006); bu yüzden elle BakiyeIslem düzeltmesi bir sonraki dokunuşta kaybolur ve teşhisi kirletir. Düzeltmede kur yeniden çekilmez (BR-KUR-003). Şubeler arası provizyon: onay bekleyen işlem bakiyeye düşmez (BR-TRANSFER-005).

Salt okunur teşhis sorgusu (SYM-BAKIYE):

-- Tetikleyici açık mı? (H-006)
SELECT name, is_disabled FROM sys.triggers WHERE parent_id = OBJECT_ID('Cari.Islemler');
-- Bir hesabın işlemleri ve defter karşılıkları
SELECT I.Id, I.Tarih, I.FisNo, I.IslemKodu, I.IslemTuru, I.IslemTipi, I.BakiyeId, I.Miktar, I.Tutar, I.IsDeleted, I.Mutabakat, I.MTarih,
       (SELECT COUNT(*) FROM Cari.BakiyeIslem B WHERE B.IslemId = I.Id)     AS BakiyeSatir,
       (SELECT COUNT(*) FROM Stok.StokHaraketleri S WHERE S.IslemId = I.Id) AS StokSatir
FROM Cari.Islemler I WHERE I.HesapId = @HesapId AND I.Tarih BETWEEN @T1 AND @T2 ORDER BY I.Tarih DESC, I.Id DESC;
-- Kim, ne zaman değiştirdi?
SELECT H.LogType, H.LogDate, H.TransactionId, H.FisNo, H.Miktar, H.Tutar, H.UserId
FROM Cari.History H WHERE H.HesapId = @HesapId AND H.LogDate >= @T1 ORDER BY H.LogDate DESC;

Yazılımcıya yükseltme koşulu: PB-028'in tüm adımları temiz, tetik açık, Cari.History'de değişiklik yok ve bir IslemId için BakiyeIslem satır sayısı kurala uymuyorsa — hesap adı, tarih aralığı, fiş no, sorgu çıktısı ve ekran görüntüsüyle.

BUNU KARIŞTIRMA - Cari mutabakat ≠ Stok mutabakatı. Cari: müşteriyle bakiye teyidi, F12, işlem satırında işaret. Stok: kasa sayımı ile defterin karşılaştırılması, "Mutabakat" adlı ayrı ekran ve tablo (CTR-SEC-MUTABAKAT-01). - Mutabakat ≠ Mutabakat kilidi. Mutabakat teyit eylemi; kilit teyit edilmiş geçmişi değiştirmeyi engelleyen ayar. - Mutabakat ≠ Bakiye ekstresi. Ekstre araçtır (müşteriye gönderilir), mutabakat sonuçtur. - Mutabakat ≠ Mahsup. Mahsup borç-alacak kapatma/resmi düzeltme kaydıdır; mutabakat kayıt üretmez, işaret koyar (SEC-MAHSUP). - Düzeltme onayı / gün sınırı ≠ Mutabakat kilidi. Biri tarihe, öteki işlem numarasına bağlıdır. - Silme ≠ Yok etme. Silinen satır IsDeleted işaretlenir, geçmişte durur; raporlar silinmişleri hariç tutar. - İşlem ≠ Stok hareketi / bakiye satırı. Bir işlem satırı sıfır, bir ya da birkaç defter satırı üretir; "işlem var, bakiye yok" tetikleyici ya da tip sorusudur.

SIK YAPILAN HATALAR Yeni çalışan: Yanlış girilen işlemi "silip yeniden girmek" yerine mutabık geçmişi açmaya çalışmak; doğru yol yeni bir düzeltme satırıdır. F12'ye yanlışlıkla basmak — daha eski hataların düzeltilmesini kilitler, işaretleme iz bırakmaz, kaldırmak SQL ister. Müşteri: "Bilgisayar yanlış hesaplıyor" diye aramak; 710 çağrının kök nedenleri sırasıyla yön, tip, düzeltme geçmişi, tek bacak, kur, devirdir — hesaplama hatası değil giriş hatası. "Destek çağırmadan önce" listesi (PB-060). Destek personeli: "Mutabakat ekranını aç" diyerek müşteriyi stok sayım ekranına göndermek; müşterinin kastı cari mutabakat (F12) olabilir. Acil rakam için ters kayıt attıktan sonra asıl nedeni araştırmayı unutmak. Geliştirici: Cari.BakiyeIslem'i elle düzeltmek ya da Repair.BalanceRepair çalıştırmak (TD-30, P1); Cari.History'yi "log, silinebilir" sanmak — düzeltme/iptal teşhisinin tek kaynağıdır; IsDeleted süzgecini raporda unutmak.

3.5.2 Düzeltme, iptal, silme: geçmişe nasıl dokunulur?

Seviye 1 — Çok basit

Defterde yanlış bir satır gördün. Üç seçenek var: kalemle üstünü çizip yanına doğrusunu yazmak (düzeltme), satırın üstüne "iptal" yazmak (iptal), sayfayı yırtmak (silme). ERPGOLD sayfa yırtmaya izin vermez: her değişiklikte eski hâlin bir kopyası saklanır, satır "silindi" diye işaretlenir ama yok olmaz. Böylece bir hafta sonra "kim, ne zaman, neyi değiştirdi?" sorusunun cevabı vardır.

Seviye 2 — İşletme mantığı

Bu sektörde geçmişi değiştirmek tehlikelidir çünkü: (1) karşı tarafla mutabık kalınmış olabilir, (2) resmi belge (e-fatura/e-döviz belgesi) kesilmiş olabilir, (3) o günkü kurla hesaplanmış maliyet/kâr değişir, (4) defterler o satırdan yeniden üretilir ve bugünkü bakiye oynar. Bu yüzden işletmeler iki çizgi çeker: kaç gün geriye düzeltme yapılabilir ve kim yapabilir. Çizginin ötesindeki hata, eski satıra dokunmadan yeni bir ters kayıtla kapatılır; açıklamaya gerekçe yazılır.

Seviye 3 — ERPGOLD

  • DÜZELT: CARİ İŞLEMLER listesinde satır seçilir → sağ altta DÜZELT → aynı fiş açılır, alan değiştirilir → KAYIT → Düzeltme Detay formu (gerekçe) → onay. Adım adım süreç: PROC-74; geçmiş tarihli işlem düzenleme PROC-49.
  • Yetki: grupta 'İşlem Düzelt' yetkisi yoksa 'İşlem Düzeltme Yetkiniz Yok.' (BR-DUZELTME-001).
  • Gün sınırı ve onay: Düzeltme gün / Silme gün ayarından eski işlem düzeltilemez ('İşlem Tarihinden İtibaren N Gün Geçmiştir…') ya da PIN ister; ayarlar Settings ▸ İzinler (PROC-153, TERM-DUZELTME-ONAYI-DUZELTME-GUN).
  • Mutabakat kilidi: mutabık işlem numarasından eski satır düzeltilemez (3.5.1).
  • Virman düzeltilemez: 'Virman İşlemlerinde Düzeltme Yapamazsınız. İptal Edip Tekrar Giriniz.' (BR-DUZELTME-006); parite/vadeli çiftlerinde de iki bacak birlikte iptal + yeniden giriş (PB-031, PB-032).
  • İptal = yumuşak silme: satır IsDeleted işaretlenir, listeden kaybolur, geçmişte "İptal Edildi" olarak kalır; geri alınırsa "Geri Alındı" (BR-IPTAL-009). Takoz çıkışı olan takozun girişi iptal edilemez.
  • İşlem Geçmişi (Ara): her satırın Yeni Kayıt / Düzeltme / İptal Edildi / Geri Alındı / Silindi izi, kullanıcı ve zaman (BR-DUZELTME-009). "Bakiye birden değişti, kimse dokunmadı" çağrısının cevabı buradadır (H-105, H-109).
  • Ters kayıt: çizginin ötesindeki hata için BORÇ İŞLEMLERİ / DEVİR ekranından karşılıksız düzeltme satırı; gerekçe açıklamaya (BR-GENEL-004).
  • Düzeltmede kur yeniden çekilmez (BR-KUR-003): geçmiş tarihli satırın fiyatı o günün kur listesinden gelir; o güne kur girilmemişse önce kur girilir, sonra DÜZELT (H-107).

ÖRNEK ALTIN A.Ş. Zeynep Aksoy Salı günü Selim'e satışı 600 g yerine 660 g girmiş. Çarşamba fark edildi. Mutabakat henüz yapılmadı, düzeltme günü içinde, Zeynep'in düzeltme yetkisi var → DÜZELT ile miktar 600 yapılır, Düzeltme Detay'a "yanlış tartım" yazılır. Tetikleyici Salı satırının bakiye ve stok defter satırlarını siler, yeniden üretir; Selim'in HAS borcu 604,6 g'dan 549,6 g'a iner, stok 60 g geri gelir. İşlem Geçmişi'nde "Düzeltme — Zeynep — Çarşamba 10:42" satırı durur. Aynı hata Cuma mutabakatından sonra bulunsaydı: kilit devrede, DÜZELT açılmaz; Ali Çelik Pazartesi yeni bir HURDA/MADEN GİRİŞ ya da BORÇ İŞLEMLERİ satırıyla 55 g has (60 × 0,916) düzeltir, açıklamaya "Salı fişi #… tartım düzeltmesi" yazar.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • DÜZELT yolu: iScreen.onDuzeltClick (yetki, gün sınırı, virman engeli, mutabakat kilidi kontrolleri; gün karşılaştırma ifadesi kodda hatalı yazılmıştır — iScreen 641); DAO Cari.Islem.SaveUPDATE Cari.IslemlerCari.UpdateTransaction (History 'Düzeltme') + Cari.AcceptTransaction (defter sil–yeniden yaz). İptal: Cari.Islem satır 1104 IsDeleted = TrueUPDATE(IsDeleted) dalı History'ye 'İptal Edildi' (Deleted değerleriyle).
  • Sistem.Settings: DuzeltmeGun, SilGun, DuzeltmeOnayi, SilmeOnayi, MutabakatLock; GlobalSettings.ModifyPermissionCONFIGURATION.
  • ETTN (e-belge) kilidi: e-belge kesilmiş satırın güncellenmesi tetikleyicide engellenir; yalnız UPDATE(Mutabakat) muaftır (satır 259).
  • Silinen satırlar raporlarda IsDeleted = 0 süzgeciyle hariç tutulur; Cari.History ise silinmişleri de taşır. Kuyumcu kurulumunda Sistem.SilAciklama satırlarının %54,6'sı devir sonrası öksüzdür (INST-KUYUMCU) — silme gerekçeleri devir kapsamı dışında kalmıştır.

3.5.3 Cuma: ÖRNEK ALTIN A.Ş. kontrol listesi

Haftanın tamamı Bölüm 7'de anlatılır; burada yalnız Cuma'nın kontrol yüzü, bu bölümde öğrenilen sırayla:

# Kim Ne yapar Ekran / rapor Neyi doğrular
1 Mehmet Kaya Nakit sayımı: TL, USD, EUR kasaları Nakit stokları Kasa = stok defteri (nerede)
2 Zeynep Aksoy Vitrin sayımı: 22 ayar, 14 ayar, has Maden stokları, sayım ekranı Vitrin = stok defteri; gram değil has toplanır
3 Ali Çelik Kuyumcu Selim ekstresi gönderilir, fark çözülür, F12 RPT-1, CARİ İŞLEMLER, İşlem Geçmişi Cari bakiye = karşı taraf (kime ait)
4 Ali Çelik Toptancı Yusuf ile has mutabakatı (400 g alacaklı + Pazartesi alımı) RPT-1, F12 Tedarikçi bakiyesi
5 Ali Çelik Döviz Nuri USD alacağı (5.000) ve haftanın vadeli/parite işlemleri RPT-1, RPT-3 Çift bacaklı işlemlerde iki satır var mı
6 Ayşe Demir Pozisyon: HAS, USD, EUR net; long/short Pozisyon, RPT-18 Risk (stok + alacak − borç)
7 Ayşe Demir Haftanın kârı has cinsinden; kur farkı ayrı RPT-37, bilanço Kâr ≠ kur farkı
8 Ali Çelik Kaç gündür mutabakatsız hesap var? RPT-5 / RPT-83 Denetim izi
9 Deniz Yılmaz (gerekirse) "Bakiye tutmuyor" çağrısında PB-028 sırası SYM-BAKIYE Kök neden, BalanceRepair asla

UYARI Sayım farkı bulununca ilk refleks "bakiyeyi düzelt" olmamalı. Sıra: hangi defter (stok mu bakiye mi) → hangi işlem satırı → o satırın yön/tip/birim/miktar → İşlem Geçmişi → sonra düzeltme ya da ters kayıt. Defterlere elle dokunulmaz; işlem satırı düzeltilir, tetikleyici defteri yeniden yazar.

KAYNAK Bu bölümdeki bütün ERPGOLD davranışları: BR-DEFTER-URETIMI (kural), TRG-CARI.ACCEPTTRANSACTION (kod), FLOW-ISLEM-MATRISI (gerçek veri), FLOW-ISLEM-GENEL (zincir). Kavramlar: SEC-CARI, SEC-BORC, SEC-ALACAK, SEC-BAKIYE, SEC-PESIN, SEC-VADELI, SEC-MALIYET, SEC-KAR, SEC-MUTABAKAT, SEC-POZISYON, SEC-DOVIZ, SEC-NAKIT, SEC-KUR, SEC-TAKOZ. Destek: PB-028, PB-038, SYM-BAKIYE, PRB-BAKIYE-000. Çelişkiler: CTR-SEC-BAKIYE-01, CTR-SEC-MALIYET-01, CTR-SEC-KAR-01, CTR-SEC-MUTABAKAT-01. Teknik borç: TD-21, TD-22, TD-30.


3.6 Bölümün tek tablosu: kavram → sebep → ERPGOLD

Bu bölümde geçen her kavram için kitabın zincirini (nedir → neden var → ERPGOLD'da karşılığı → ekran → kayıt → etkilenen defter/rapor) tek tabloda topluyoruz; ezber için değil, "nereye bakacağım" için.

Kavram Neden var (bir cümle) Ekran (kullanıcı dili) Kayıt (teknik) Etkilenen defter / rapor
İşletme türü Aynı altın, farklı iş; her halka farklı yerden kazanır Aynı CARİ İŞLEMLER şeridi, farklı düğme IslemKodu Kurulum profili (döviz / kuyumcu)
Takoz Ayarı belirsiz dökme kütle; rafineriye giden mal TAKOZ GİRİŞİ / ÇIKIŞI, ÇEŞNİ Stok.Takoz + 2 işlem satırı Stok: adet; bakiye: HAS + GUM
Hurda Zincirin ham maddesi; işçiliksiz has HURDA (milyem elle) IslemKodu=2 Stok +g/has; cari ise HAS bakiyesi
Alış / satış kuru Büronun tek geliri makastır Kur giriş, pano, NAKİT Sistem.Kurlar; satırda kur fotoğrafı Maliyet/satış değeri, NET
Müşteri işlemi vs nakit hareket Kasa sayımı hareketle yapılır NAKİT; Nakit stokları 1 Cari.Islemler → 2 Stok.StokHaraketleri RPT-9 / RPT-10
Pozisyon Fiyat riskine açık net varlık Pozisyon ekranı Bilanco.OzetBilanco toplamı RPT-18, kur farkı
Parite / arbitraj Döviz-döviz takas, TL geçmez PARİTE iki bağlı satır (VaryantId) Hacim (iki satır!)
Vadeli Bugün fiyat, yarın teslim VADELİ IslemKodu=6, tip −1/−2 Yalnız bakiye (iki birim); RPT-3
Yetkili müessese yükümlülükleri Devlet denetimi E-FATURA, MasakForm, BTrans tip 11/12, Cari.IslemDetaylari Operasyonel kayıt yok; belgelendirilmiş havuz; RPT-13/26/78
Cari hesap Mal önce, para sonra CARİ İŞLEMLER, hesap kartı Cari.Hesaplar, HesapId Bakiye defteri
Borç / alacak Kim kime, hangi birimde BAKİYE kartı (kırmızı/yeşil) Cari.BakiyeIslem.Bakiye ± RPT-1, RPT-16
Bakiye (çok birimli) Has, TL, USD ayrı ayrı BAKİYE kartı, ÇEVİR BirimId bazında satır RPT-1
Peşin Karşılığı tezgâhta alındı TİP = PEŞİN IslemTipi=1 Stok var, bakiye yok
Vade / ödeme / limit Alacak riskini sınırlamak Hesap kartı, NAKİT, ÇEVİR Limit, FN.GetCariLimit 'Hesap Limiti Aşılıyor'
Maliyet Kaça mal oldu (metal günün kuru + LIFO işçilik) Otomatik Cari.Islemler.Maliyet; Stok.StokHaraketleri.Maliyet (işçilik) RPT-37
Kâr Satış − maliyet, satırda Otomatik Cari.Islemler.Kar (hesaplanan) RPT-37, MadenKarRaporu
Kur farkı Pozisyonun değerleme farkı Bilanço Bilanco.GetKurFarki Bilanço; kârla toplanmaz
İşçilik Kârın asıl kaynağı MADEN İŞÇİLİK alanı Iscilik, IscilikBirimKur Bakiye para satırı; bilanço İŞÇİLİK
Cari mutabakat İki tarafın defteri aynı mı F12, RPT-1 Mutabakat, MTarih, LastMutabikId RPT-5 / RPT-83
Stok mutabakatı Sayım = defter mi Mutabakat / Mutabakat Onay Stok.Mutabakat
İşlem geçmişi Kim neyi değiştirdi CARİ İŞLEMLER ▸ Ara Cari.History Teşhis
Düzeltme / iptal Geçmişe kontrollü dokunuş DÜZELT, İPTAL IsDeleted; sil–yeniden yaz Defterler yeniden üretilir

Bölüm sonu sınavı

Kolay (5)

  1. Altının zincirdeki yolculuğunu sırayla yaz: hurda → ? → ? → saf altın → ? → yeni ürün → ? → son müşteri.
  2. Döviz bürosu USD için "40,00 / 40,20" ilan ediyor. Müşteri 1.000 USD alırsa büro kaç TL tahsil eder ve ERPGOLD'da işlem yönü ne olur?
  3. "Kuyumcu Selim 150 g HAS borçlu" — bakiye kartında hangi sütunda, hangi renkte görünür? Borç mu alacak mı, kimin gözüyle?
  4. Peşin (tip 1) işlem hangi defteri yazar, hangisini yazmaz?
  5. "Mutabakat" adlı menü ekranı ne mutabakatıdır? Cari mutabakat ERPGOLD'da nasıl yapılır?

Orta (5)

  1. Aynı hesabın hem 150 g HAS borcu hem 5.000 USD alacağı var. Bu bir hata mı? İki bakiye birbirini neden kapatmaz, kapatmak için hangi işlem gerekir?
  2. BakiyeId = 0 olan bir NAKİT satırı bakiye defteri yazar mı? "BakiyeId = 0 peşin demektir" cümlesi neden yanlıştır?
  3. Has kuru bir haftada 4.000'den 4.200'e çıktı; vitrinde 1.000 g has karşılığı mal var. Bu 200.000 TL ERPGOLD'da kâr mıdır? Hangi rapora düşer?
  4. Cari.Islemler.Maliyet ile Stok.StokHaraketleri.Maliyet arasındaki fark nedir? Stok.GetMadenMaliyeti'nin iki bilinen kusurunu yaz.
  5. Döviz kurulumunda cari işlem stok defteri üretir mi? Kuyumcu kurulumunda? Oranları ve sebebini yaz.

Senaryo (5)

  1. Sabah kasada 100.000 USD var. Gün içinde 80.000 USD satıldı (40,20), 20.000 USD alındı (40,00). Döviz Nuri'ye 5.000 USD borçluyuz. Akşam USD kasası, USD pozisyonu ve gece USD/TL 0,50 düşerse değerleme etkisi nedir? Kasa ile pozisyon neden farklı?
  2. Firma müşteriden 500 g hurda (milyem 0,700) aldı ve karşılığını müşterinin USD cari hesabına yazdı (has kuru 4.000 TL, USD 40,00; örnek). Stok, bakiye ve kasa açısından ne beklenir? Aynı işlem PEŞİN tiple girilseydi ne değişirdi?
  3. "Bilgisayar Kuyumcu Selim'i 100 g borçlu gösteriyor, Selim 80 diyor." Ali Çelik'in izleyeceği teşhis sırasını yaz; en olası iki nedeni ve her birinin düzeltme yolunu belirt. Hangi aracı hiçbir koşulda çalıştırmaz?
  4. Zeynep Aksoy 80 g 22 ayar bilezik sattı; stoktaki işçilik 100 TL/g (son parti), vitrin işçiliği 150 TL/g, has kuru 4.000 TL. Satır maliyetini, satış değerini, kârı TL ve gram has olarak hesapla. Stokta 60 parti giriş olsaydı hangi risk doğardı?
  5. Rafineri Kuzey'e gönderilen 691,73 g takozun ayar evi raporu Au 0,6380, Ag 0,0600 geldi; çeşni 5,47 g, rafinasyon ücreti 0,45 g has. ERPGOLD'da kaç işlem satırı, hangi ekranlar, hangi birimlerde bakiye oluşur? Stok defteri takozu nasıl izler?

Cevap anahtarı

  1. Hurda → perakende kuyumcu → toptancı/sarraf → rafineri (takoz, ayar evi raporu) → saf altın (has) → atölye/imalatçı (işçilik) → toptancı → perakende → son müşteri. SEC-KUYUMCU, SEC-RAFINERI.
  2. Müşteri alıyorsa büro satıyor: 1.000 × 40,20 = 40.200 TL (+ varsa BSMV). Yön NAKİT ÇIKIŞ (kasadan USD çıktı); ERPGOLD büronun gözüyle yazar. SEC-DOVIZ, kitapçık §2.4.
  3. HAS satırı BORÇ sütununda, kırmızı; bakiye defterinde +150. Müşteri gözüyle borç = müşteri bize verecek = işletme alacaklı. SEC-BORC, BR-YON-007.
  4. Stok defterini yazar (malın kendisi + kasadaki para), bakiye defterini yazmaz. SEC-PESIN, BR-TIP-002.
  5. Stok sayım mutabakatı (kasa + stok tipi, Stok.Mutabakat). Cari mutabakat CARİ İŞLEMLER listesinde satır seçip F12 ile, M sütunu + tarih. CTR-SEC-MUTABAKAT-01, SEC-MUTABAKAT.
  6. Hata değil; bakiye birim birim tutulur, birimler kendiliğinden mahsuplaşmaz. Kapatmak için ÇEVİR (has ↔ USD, günün kuruyla), sonra gerekirse NAKİT. SEC-CARI, SEC-CEVIR.
  7. Yazar (tip NORMAL ise %99). Tetikleyicide bakiyeyi kapatan koşul IslemTipi = 1'dir; BakiyeId = 0 yalnız mal satırını kapatır, tutar satırı yazılır. KUYUMCU'da BakiyeId=0 satırların %99,9'u bakiye üretir. CTR-SEC-BAKIYE-01, SEC-BAKIYE.
  8. Kâr değil, kur farkı (gerçekleşmemiş değerleme); satış olmadan satır kârı doğmaz. Bilanço kur farkı kalemine (Bilanco.GetKurFarki, MET-KUR-FARKI) düşer, Maden Satış Kâr Raporu'na düşmez. SEC-KAR.
  9. Cari.Islemler.Maliyet uygulama tarafından yazılan satır maliyetidir (metal günün kuruyla + LIFO işçilik; nakitte miktar × alış kuru); Stok.StokHaraketleri.Maliyet tetikleyicinin girişte yazdığı yalnız işçilik TL'dir. GetMadenMaliyeti: TOP 50 sessiz kesme; kuru Sistem.Kurlar son satırından alması (geçmiş rapor bugünkü kurla). CTR-SEC-MALIYET-01, SEC-MALIYET.
  10. Döviz kurulumunda cari işlem %1,4 stok üretir (çoğu vadeli/tahsilat, mal yer değiştirmez); kuyumcuda %60,3 (mal atölyeye/kasaya fiziksel gider). "Cari işlem stok üretmez" ürün kuralı değil, döviz kurulumu gözlemi. BR-DEFTER-URETIMI.
  11. Kasa: 100.000 − 80.000 + 20.000 = 40.000 USD. Pozisyon = stok + alacak − borç = 40.000 − 5.000 = 35.000 USD long. 0,50 düşüş → 35.000 × 0,50 = 17.500 TL değerleme kaybı (kur farkı, kâr değil). Kasa "nerede", pozisyon "risk"; Nuri'ye borç kasada değil defterdedir. SEC-POZISYON.
  12. HURDA GİRİŞ, tip NORMAL, BakiyeId = USD tarafı (mal karşılığı USD'ye yazılıyor): stok +500 g hurda / +350 g has; bakiye: müşteri USD alacaklı (350 × 4.000 ÷ 40 = 35.000 USD, −35.000 defterde; yeşil); kasa değişmez. PEŞİN olsaydı: stok yine +500 g, kasadan 35.000 USD (ya da TL) çıkar, bakiye yazılmaz. BR-YON-002, SEC-ALACAK.
  13. PB-028 sırası: kur listesi → Ctrl+F5 → şube/kasa → yön → tip (TP sütunu) → İşlem Geçmişi → çift bacak → geçmiş tarih kuru → devir → tetikleyici. En olası: (a) Selim'in 20 g hurdası PEŞİN tiple girilmiş → DÜZELT ile NORMAL; (b) has borcu TL ile ödenmiş ama ÇEVİR yapılmamış → ÇEVİR + NAKİT. Hiçbir koşulda Repair.BalanceRepair çalıştırılmaz (TD-30). SYM-BAKIYE.
  14. Has 73,28 g; metal 293.120; işçilik maliyeti 8.000 → maliyet 301.120 TL; satış 293.120 + 12.000 = 305.120 TL; kâr 4.000 TL = 1,0 g has. 60 parti → GetMadenMaliyeti TOP 50 ile son 50 partiyi okur, işçilik maliyeti sessizce eksik çıkar, kâr şişer. SEC-MALIYET hesap örneği.
  15. İki satır: TAKOZ GİRİŞİ (tip ALTIN; gönderen hesaptan has düşer) ve TAKOZ ÇIKIŞI (rafineri hesabına). Has 441,32 g, gümüş 41,50 g → çıkışta HAS ve GUM iki birimde bakiye; işçilik 0,45 g has ayrı satır (beş satıra kadar). Stok defteri takozu adet (+1/−1) olarak izler, gram/milyem kartta. Giriş bakiyesi ile ölçülen has arasındaki ~3,96 g pay kodda bulunamadı (GAP-SEC-TAKOZ-01). SEC-TAKOZ, BR-STOK-002.

Bunu anladıysan devam et

4. AIFASOFT ve ERPGOLD

Bu bölüm öğrenme yolunun 8., 9. ve 10. halkalarıdır: AIFASOFT kimdir → ERPGOLD nedir → kim kullanır. Bölüm 2–3'te sektörü öğrendin; şimdi o sektöre yazılım yapan şirketi ve yazılımın kendisini tanıyacaksın. Bölüm sonunda ÖRNEK ALTIN A.Ş.'yi ERPGOLD'a kendi ellerinle kuracaksın (§18); Bölüm 5'te aynı kurulumda işlem yapmaya başlayacağız.

KAYNAK Şirket: ../ERPGOLD_WIKI/01_AIFASOFT/AIFASOFT.md, URUN_AILESI.md, DESTEK_CALISMA_BICIMI.md, HEDEF_KITLELER.md; web sitesi notları _data/aifasoft_web.md (aifasoft.com, 2026-09-12). Ürün: ../ERPGOLD_WIKI/03_ERPGOLD_Product/SYSTEM_OVERVIEW.md, MENU_TREE.md, VARIANT_MATRIX.md; 04_Modules/INDEX.md; kurulum profilleri 14_Customers_Internal/Installations/INST-ERPGOLDV2.md, INST-KUYUMCU.md. Mimari: 09_CodeArchitecture/ARCHITECTURE.md. Kurulum ekranları: 05_Screens/SCR-FRM*EKLE.md; açılış: 13_Training/Scenarios/SCN-DEVIR.md, 06_Workflows/WF-ACILIS-STOK-DEVIR-HESABI.md.


16. AIFASOFT nedir

16.1 Bir cümleyle

AIFASOFT, ERPGOLD'un üreticisidir. ERPGOLD dışarıdan alınıp satılan bir program değil, şirketin kendi geliştirdiği, kurduğu, desteklediği ve eğittiği ürünüdür. Hedef sektörü kuyumculuk ve döviz dünyasıdır — Bölüm 3'te tanıdığın kuyumcu, toptancı, sarraf, rafineri, atölye ve döviz bürosu.

Seviye 1 — Çok basit

Ali'nin babası bir kuyumcu dükkânı açtı. Her gün onlarca müşteri geliyor; kimi bilezik alıyor, kimi dolar bozduruyor, kimi "parayı yarın getiririm" diyor. Babası hepsini deftere yazıyor ama akşam olunca defterde kimin ne kadar borçlu olduğunu, kasada kaç gram altın kaldığını bulmak saatler sürüyor. Bir gün bir arkadaşı "bunun için program var, AIFASOFT diye bir şirket yapıyor" diyor. AIFASOFT o programı yazan şirkettir; programın adı ERPGOLD'dur.

Seviye 2 — İşletme mantığı

Kuyumcu ve döviz bürosu için "genel" bir muhasebe programı yetmez, çünkü bu işletmelerin sorunları özeldir: mal (altın) sürekli değer değiştirir, ölçü birimi tek değildir (gram, has, adet, dolar, euro), müşteriyle aynı anda üç ayrı bakiye (has, USD, TL) tutulur, döviz bürosu devlet denetiminde resmi belge üretmek zorundadır. AIFASOFT bu sektöre özelleşmiş bir yazılım şirketidir: programı yazar, müşteriye kurar, personelini eğitir, sorun çıkınca uzaktan bağlanıp çözer, sektörün mevzuat değişikliklerini (e-belge, MASAK, BTrans) programa işler.

Seviye 3 — ERPGOLD

ERPGOLD, AIFASOFT'un ana ürünüdür; iç kaynaklarda ERPGOLDV2 adıyla da geçer. Destek çağrılarının %82'si (11.167 / 13.681) bu ürüne aittir. Çevresinde yan ürünler vardır (EDS, FX Trader, ErpPosV2, AifaUyum…); §17.4'te tanıyacaksın.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

AIFASOFT'a ait servis adları wiki'de yalnız alan adı düzeyinde geçer: KYC/uyum servisi (kyc.aifasoft.com, ../ERPGOLD_WIKI/11_Integrations/INT-KYC-AIFAUYUM.md), fiyat/veri sunucuları (tickdata.aifasoft.com, services.aifasoft.com), bulut ERP/RDP sunucusu (srv1.erpgold.com.tr, ../ERPGOLD_WIKI/11_Integrations/INT-RDP-SUNUCU.md). IP, parola ve bağlantı dizesi hiçbir belgeye yazılmaz.

16.2 Web sitesi ne diyor

Aşağıdaki bilgiler aifasoft.com'dan (ana sayfa, /hakkimizda, /fxtrader, /digercozumler, /erpgoldv2) 2026-09-12'de alınmış notlardır (_data/aifasoft_web.md). Ton: "sitede şöyle yazıyor." Pazarlama ifadeleri kitapta iddia olarak değil, alıntı olarak yer alır.

  • Ticari ad sitede AIFA GLOBAL BİLİŞİM HİZMETLERİ, marka AIFASOFT.
  • "2000 yılından bu yana sektörde" — finans, döviz ve kuyumculuk platformları.
  • Sunulan çözümler: FX Trader, ERP Gold V2, EDS, diğer çözümler; ayrıca AIFASHOP (e-ticaret, aifashop.com).
  • Hedef sektörler: kuyumculuk, finansal kurumlar, yetkili müesseseler, forex/döviz ticareti.
  • Hizmetler (/digercozumler): özel yazılım geliştirme, danışmanlık, yedekleme ve felaket kurtarma, siber güvenlik, bakım ve destek, sistem ve ağ kurulumu, lisanslama, sunucu kurulum ve bakım.
  • ERPGOLDV2 sayfası: "kuyumculuk ve döviz sektörü için geliştirilmiş entegre yönetim sistemi", "20 yılı aşkın tecrübe"; modül listesi Cari Hesaplar, Stok Yönetimi (altın, nakit, kripto, takoz…), Pozisyon ve Hacim, Toptan/Perakende, Üretim Planlama, Sipariş, Raporlama, Etiket/Barkod; "bulut tabanlı erişim" ifadesi.
  • Misyon/vizyon ve "10 ana avantaj" (kâr maksimizasyonu, hata minimizasyonu, risk yönetimi, otomatik fiyat yönetimi…) — pazarlama metni.
  • Ana sayfada bazı firmalar referans olarak anılıyor; kitap bu listeyi yalnız "sitede referans olarak anılıyor" diye kaydeder, müşteri-özel hiçbir bilgi vermez.
  • /eds sayfası çekilemedi (GAP-WEB-EDS); /referance sayfası boş.

16.3 İç kaynaklar ne diyor

İç kaynak; kaynak kod, iki canlı veritabanı, 13.681 destek çağrısı, 211 süreç dokümanı ve şartnamedir (../ERPGOLD_WIKI/01_AIFASOFT/AIFASOFT.md):

  • ERPGOLD, AIFASOFT'un kendi ürünüdür; şirket ürünü "yaklaşık 13 yıldır" geliştirmektedir (şartname §1, DOCUMENTED).
  • Kaynak koddaki sürüm günlüğü yalnız 4 kayıt taşır: ERPPRO 1.0.0.1–1.0.0.4, Ekim 2015 (../ERPGOLD_WIKI/16_Versions_And_Variants/TIMELINE.md). 2015 sonrası ürün sürüm günlüğü yok (GAP-VERSION-01).
  • Ticket kayıtları 2021-10'dan itibaren; 822 müşteri kimliği; firma adları wiki'ye alınmadı (GAP-CUSTOMER-IDENTITY).
  • Çağrıların ürüne dağılımı: ERPGOLDV2 11.167 · EDS 1.227 · FXTRADER 662 · DONANIM 334 · SERVER 83 · DWS 67 · MOBIL APP 26.
  • Teknoloji: VB.NET WinForms + DevExpress masaüstü, veri MSSQL; müşteri ya kendi sunucusunda ya da AIFASOFT'un RDP sunucusunda çalışır.

GAP Kuruluş yılı, hukuki unvan, adres, çalışan sayısı, organizasyon şeması ve ortaklık yapısı iç kaynaklarda yok (GAP-AIFA-01). Ekip yapısı ve çalışma saatleri belgelenmemiş (GAP-AIFA-03). Fiyatlandırma ve lisans modeli belgelenmemiş (GAP-AIFA-04).

16.4 Web ile iç bilgi farklıysa

İki kaynak aynı şeyi söylemiyor. Kitap birini seçmez; ikisini kaynağıyla yan yana koyar. Kaynak hiyerarşisinde (Bölüm 1 §1.8) kod ve veritabanı tanımı web sitesinden üsttedir; ama web sitesi de AIFASOFT'un resmi beyanıdır (4. sıra). Sonuç: ürünün davranışını anlatırken iç kaynağa, şirketin kendini nasıl tanıttığını anlatırken web sitesine dayan.

Konu Web sitesi diyor ki İç kaynak (kod / DB / wiki) diyor ki Nasıl okunmalı
Kuruluş / tecrübe "2000'den beri", "20 yılı aşkın tecrübe" Version.txt yalnız 2015; ticket verisi 2021'den; şartname "yaklaşık 13 yıl" İç kaynak kuruluş yılı söylemiyor, yalanlamıyor. Kitap: "web sitesine göre 2000'den beri" (GAP-VERSION-01, GAP-AIFA-02)
Erişim "Bulut tabanlı erişim — internet olan her yerden" WinForms + SQL Server; RDP sunucusu (INT-RDP-SUNUCU), WebOfis gömülü tarayıcı "Bulut" muhtemelen RDP ile AIFASOFT sunucusunda barındırma anlamında; tarayıcıdan çalışan bir ERPGOLD kaynak kodda yok → CTR-WEB-01
Stok tipleri altın, nakit, kripto, takoz, diğer Stok.Maden, Stok.Nakit, Stok.Takoz, Stok.Hizmet, Emtia, Model, Taş, Pırlanta — kripto yok Kripto stok tipi kodda ve DB'de bulunmadı → CTR-WEB-02; müşteriye "kripto stoğu var" deme
Ürün ailesi FX TRADER, ERPGOLDV2, EDS, AIFASHOP + ErpPosV2, AifaUyum/KYC, DijitalFatura, ERPMobil, ERPBooster, WebOfis, LiveUpdate, Lisans, Agent, DWS Web dört "vitrin" ürünü sayar; iç kaynak yan uygulama ve bileşenleri de görür (§17.4)
Modül adları Cari Hesaplar, Stok Yönetimi, Pozisyon ve Hacim, Toptan/Perakende, Üretim Planlama, Sipariş, Raporlama, Etiket/Barkod 12 modül makalesi: CARI, STOK, SISTEM, FINANS, FATURA, DOVIZ, URETIM, RAPOR, POS, KYC, FX, DIGER Aynı ürünün iki farklı bölümlenmesi; çelişki değil, bakış farkı

BUNU KARIŞTIRMA Web sitesi ≠ ürün dokümanı. Web sitesi ne satıldığını anlatır; wiki ne çalıştığını. Müşteriye özellik anlatırken kaynak wiki'dir; şirketi tanıtırken web sitesinden alıntı yapabilirsin, ama "sitede böyle yazıyor" diyerek.

16.5 AIFASOFT ne iş yapar

Şartname §1'de sayılan faaliyetler ve kanıtları (AIFASOFT.md tablosu):

Faaliyet Ne demek Kanıt
Yazılım geliştirme ERPGOLD'u ve yan ürünleri yazar; müşteriye özel geliştirme yapar (müşteri-özel şemalar, özel rapor fonksiyonları) 09_CodeArchitecture/, VARIANT_MATRIX.md CUSTOMER_SPECIFIC sütunu
Kurulum Müşteriye program ve SQL Server kurar; RDP sunucusunda barındırır 12_Support/Processes/PROC-1.md (ERPGOLDV2 kurulumu), PROC-2 (SQL Server); kategori "Kurulum/Taşıma" 1.280 çağrı
Bakım Sürüm/exe güncelleme, şema güncelleme, yedek 11_Integrations/INT-LIVEUPDATE.md, 06_Workflows/WF-EXE-GUNCELLEME.md; "Güncelleme" 362 çağrı
Teknik destek 13.681 çağrı, 22 tema, 66 playbook, 211 süreç 01_AIFASOFT/DESTEK_CALISMA_BICIMI.md (§17.5)
Eğitim Müşteri personeline eğitim, demo; yeni AIFASOFT personelini yetiştirme Tema "Eğitim / soru-cevap / demo" 669 çağrı; 13_Training/
Danışmanlık Web sitesinde hizmet olarak sayılır; iç kaynakta ayrı kayıt yok _data/aifasoft_web.md (/digercozumler) — GAP: iç kanıt yok
Entegrasyon e-belge entegratörleri, MetaTrader 4/5, banka ekstresi, fiyat sağlayıcı, MASAK sorgusu 11_Integrations/INDEX.md (32 makale)
Raporlama ve analiz Aifa Developer Studio ile programın içinden rapor yazımı; müşteriye rapor desteği 10_Reports/; "Veritabanı & Rapor" 566 çağrı
Platform / altyapı Lisans sunucusu, SMS aktivasyon, LiveUpdate, RDP sunucusu, fiyat sunucuları INT-LISANS.md, INT-RDP-SUNUCU.md, INT-TICKDATA.md
Mevzuata uyum BTrans, e-belge, KYC/MASAK modülleri 02_Sector/BusinessTypes/SEC-DOVIZ-BUROSU.md, 04_Modules/MOD-KYC.md

PEKİ NEDEN? Neden bu şirket yalnız "program satmıyor"? Çünkü kuyumcu ve döviz bürosunun bilgi işlem personeli genelde yoktur. Programı kuran, sunucuyu ayakta tutan, yazıcıyı ayarlayan, yıl sonu devrini yapan ve mevzuat değişince programı güncelleyen taraf AIFASOFT'tur. Destek çağrılarının ilk beş teması (bağlantı/sunucu %20, fatura/e-fatura %11,5, yazıcı/fiş/etiket %11, BTrans %9,3, lisans %6,6) bunun kanıtıdır: çağrıların çoğu işin kendisinden değil, çevresinden gelir.

16.6 Hangi sektörler

Bölüm 3'te ayrıntısıyla anlattığın iş türleri AIFASOFT'un müşteri tabanıdır: perakende kuyumcu, toptancı, sarraf, üretici/atölye, rafineri ve ayar evi, döviz bürosu (yetkili müessese), kıymetli maden ticareti yapan firma (../ERPGOLD_WIKI/02_Sector/BusinessTypes/). Web sitesi buna "finansal kurumlar" ve "forex/döviz ticareti"ni ekler (FX Trader ürünü üzerinden).

Aynı program hepsine hizmet eder; ama iki canlı kurulum profili vardır ve ürünün davranışı bu profillere göre değişir (§17.1).

16.7 ERPGOLD'un AIFASOFT açısından yeri

ERPGOLD şirketin ana ürünü ve gelir omurgasıdır: çağrıların %82'si, süreç dokümanlarının çoğu, eğitim ve kurulum işlerinin tamamı onun etrafındadır. Yan ürünler (EDS, FX Trader, AifaUyum, ErpPosV2, DijitalFatura…) ya ERPGOLD'a veri taşır (kur, fiyat, sipariş, ekstre) ya da ERPGOLD verisini başka bir yüzeyde gösterir (vezne, mobil, portal). §17.4'teki tablo her ürünün ERPGOLD'a nasıl bağlandığını gösterir.

ÖRNEK ALTIN A.Ş. Ayşe Demir, ÖRNEK ALTIN A.Ş.'nin sahibi, üç yıl önce AIFASOFT ile sözleşme yaptı. Programı Deniz Yılmaz (AIFASOFT destek) kurdu; MERKEZ ve ŞUBE-2 için iki şube, kasalar ve kullanıcılar tanımlandı; ilk hafta eğitim verildi. O günden beri sorun olduğunda Mehmet ya da Ali telefon açıyor, Deniz uzaktan bağlanıp bakıyor. Bu bölümün §18'i o ilk kurulum gününü yeniden canlandırır.


17. ERPGOLD nedir

17.1 Kim kullanır

Seviye 1 — Çok basit

Bir kırtasiye defterini herkes kullanabilir ama içine ne yazacağını bilmek gerekir. ERPGOLD da bir defterdir; yalnız altın ve döviz işi yapanların yazacağı şeyleri önceden biliyor: "gram", "has", "milyem", "alış kuru", "satış kuru", "cari". Bu yüzden onu bakkal değil, kuyumcu ve döviz bürosu kullanır.

Seviye 2 — İşletme mantığı

Gerçek kapsamı tahminle değil kaynaklarla çizelim. Üç kaynak var:

(a) İki canlı kurulum (INST-ERPGOLDV2.md, INST-KUYUMCU.md):

Döviz bürosu kurulumu (V2) Kuyumcu / rafineri kurulumu (KUYUMCU)
İş kolu Döviz bürosu / yetkili müessese Kuyumcu + rafineri / ayar evi
Veri dönemi 2021-12 → 2023-12 2023-11 → 2025-01
Şirket / şube / kasa / kullanıcı 1 / 6 / 22 / 43 2 / 10 / 20 / 36
Cari hesap 22.323 2.891
İşlem (silinmemiş) 1.527.852 655.294
Baskın işlem NAKİT %82 · PEŞİN 318 bin · RESMİ 22,9 bin MADEN %34 · TAKOZ %14 · HURDA %10 · VİRMAN 112 bin · PEŞİN 0 · RESMİ 0
Takoz 10.870 takoz, 16,4 t brüt / 5,6 t has
Özellik 37 döviz mevzuat kolonu, arbitraj Takoz akışı (su/skala/XRF/çeşni/rapor), MT4 ve banka ekstresi entegrasyonu

(b) Ürün varyant matrisi (VARIANT_MATRIX.md): çekirdek (Cari.Islemler + tetikleyiciler) herkeste ortaktır; PEŞİN/RESMİ/MAHSUP işlem tipleri ve mevzuat kolonları döviz varyantına, takoz akışı ve ALTIN/GÜMÜŞ takoz tipleri kuyumcu/rafineri varyantına, ÇEŞNİ işlem kodu rafineri varyantına, ErpPosV2 POS varyantına, KYC şeması KYC varyantına aittir.

(c) Sektör iş türleri (02_Sector/BusinessTypes/): dokuz makale — kuyumcu (şemsiye), perakende kuyumcu, toptancı, sarraf, üretici/atölye, rafineri, ayar evi, döviz bürosu, maden ticareti yapan firma. Her makalede "Günlük akış" tablosunun "Program tarafı" sütunu o iş türünün ERPGOLD'da hangi ekranı kullandığını gösterir.

Kullanan kişiler işletme içinde: kasiyer/gişe (işlem girer), satış (perakende/gişe ekranı), muhasebe (raporlar, fatura, mutabakat), patron (pozisyon, bilanço, "Patron Bilançosu"). AIFASOFT tarafında: destek (RDP ile müşteri ekranı), eğitim, geliştirici, rapor yazan.

UYARI 822 ticket müşterisi isimsizdir; kitapta ve wiki'de hiçbir gerçek müşteri adı geçmez. "Kim kullanır" sorusunun cevabı iş türüdür, firma listesi değil. Web sitesindeki referans listesi de kitapta yalnız "sitede anılıyor" olarak kalır.

Seviye 3 — ERPGOLD

Aynı program, iki kurulumda farklı davranır gibi görünür — aslında aynı tetikleyici farklı iş modeline uygulanmaktadır. Döviz bürosu çağrılarının %83'ü peşin NAKİT'tir (para gişeden geçer, bakiye tutulmaz); kuyumcu kurulumunda peşin tip hiç kullanılmamış, işlemlerin %55'i cari hesaplıdır ve cari işlemlerin %60'ı stok da üretir (maden atölye, kasa, şube arasında fiziksel olarak yer değiştirir). Bu, "cari işlem stok üretmez" cümlesinin bir döviz gözlemi olduğunu, ERPGOLD kuralı olmadığını gösterir (BR-DEFTER-URETIMI.md, CTR-038). Bölüm 6 bunu her işlem için açar.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

İki DB: ERPGOLDV2 (220 üretim tablosu, 12 tetikleyici, FK yok) ve ERPGOLDV2_KUYUMCU (206 tablo, 10 tetikleyici, 1 FK). Müşteri-özel şemalar kitapta MüşteriŞemasıA–D olarak maskelenir; KUYUMCU'da beşinci bir tetikleyici (müşteri-özel fiyat kaydı) ve MT4/NetEkstre/SyncOrders entegrasyonları vardır. Analiz sırasında eklenen POS.*, KYC.* (V2 içinde), dbo.Face* nesneleri GENERATED_PROPOSAL'dır; ürün özelliği olarak anlatılmaz (../ERPGOLD_WIKI/03_ERPGOLD_Product/Proposals/INDEX.md). Gerçek işlem matrisi: TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md.

17.2 Ne için kullanılır

Program 12 modül olarak belgelenmiştir (../ERPGOLD_WIKI/04_Modules/INDEX.md). Aşağıdaki tablo her modülü işletmedeki soruyla eşler:

İşletmedeki soru Modül Ne yapar Ekran / tablo / kural sayısı
"Bugün kim ne aldı, kime ne borçluyuz?" MOD-CARI Her mali olayı tek deftere (Cari.Islemler) yazar; bakiye ve stok defterini tetikleyiciyle türetir; hesap kartı, düzeltme/iptal, mutabakat, işlem geçmişi 131 / 25 / 171
"Kasada kaç gram, kaç dolar var?" MOD-STOK Maden, nakit, takoz, çeşni, taş, pırlanta, model, emtia, genel, hizmet kartları; stok defteri, transfer, sayım 16 / 15 / 38
"Kim hangi şubede, hangi kasayla, ne yetkiyle çalışır?" MOD-SISTEM Şirket/şube/kasa/kullanıcı/grup, birim ve kur listesi, ayarlar, PIN, silme onayı, lisans, güncelleme, devir 37 / 44 / —
"Fatura kesmeli miyim, e-belge nasıl gider?" MOD-FATURA F5/F-FATURA, e-fatura/e-arşiv/e-döviz belgesi, ETTN, seri no, BTrans, muhasebe arşivi 6 / 1 / 7
"Döviz bürosuyum; parite, BSMV, gişe?" MOD-DOVIZ Döviz kurulumunun çekirdek defter üzerindeki görünümü: PEŞİN/RESMİ, parite, BSMV, gişe, pano 10 / 3 / 2
"Banka hesabım, ödeme emri, kasalar arası transfer?" MOD-FINANS Banka/şube/hesap kartları, banka altın operasyonu, ödeme emri, kasa transferi onayı 6 / 5 / 1
"Atölyeye 500 g verdim, ne döndü?" MOD-URETIM Bölüm bakiyeleri, üretim hareketleri, sipariş, reçete/model/takım/parça/kalıp kartları 28 / 24 / —
"Pozisyonum ne, kârım ne?" MOD-RAPOR DB tanımlı rapor menüsü, SQL tablo fonksiyonları, bilanço, pozisyon, fiş/etiket/fatura tasarımcısı, Developer Studio 48 / 27 / —
"Bankoda dokunmatik ekranla hızlı satış?" MOD-POS ErpPosV2 vezne uygulaması (SOURCE_IMPLEMENTED); POS.* SQL şeması yalnız öneri — / 6 (öneri) / —
"Müşteri tanıma, evrak, MASAK?" MOD-KYC AifaUyum ürünü ve ERP evrak kapısı; dağıtım durumu UNKNOWN 1 / 9 (dev) / —
"Kur otomatik gelsin, MetaTrader'la konuşsun?" MOD-FX EDS kur dağıtımı ve FX Trader/MT köprüsü; kaynak kod yok, 52 süreç dokümanı
"Personel, görev, ajanda, uyarı ajanı?" MOD-DIGER Personel, organizasyon, ajanda, agent motoru, doküman, dinamik form 54 / 61 / —

Sistem genel bakışının (SYSTEM_OVERVIEW.md) tek cümlelik özeti: programın çekirdeği tek bir defterdir — her işlem Cari.Islemler'e bir satır olarak yazılır; tetikleyici bu satırdan müşteri bakiyesini ve stok hareketini türetir. Menü ağacı (MENU_TREE.md): 6 sekme · 20 grup · 151 düğme; rapor menüsü ayrıca veritabanındadır.

BUNU KARIŞTIRMA Modül ≠ menü sekmesi. Menüde "Hesap Yonetimi, Uretim Modulu, Personel Yonetimi, Operasyonlar, Tanımlamalar, Aifa Developer Studio" olmak üzere 6 sekme vardır; modül makaleleri ise 12 tanedir ve bir modülün ekranları birden çok sekmeye dağılabilir (örneğin MOD-SISTEM'in Devir düğmesi Tanımlamalar ▸ Sistem altındadır).

17.3 Nasıl kullanılır — bir günün akışı

Seviye 1 — Çok basit

Sabah dükkân açılır, akşam kapanır. Arada: kapıyı aç (programa gir), tezgâha geç (işlem ekranı), müşterilerle iş yap (işlem gir), akşam kasayı say (gün sonu), defteri kilitle (yedek al). ERPGOLD'daki gün de böyledir.

Seviye 2 — İşletme mantığı

Saat ÖRNEK ALTIN A.Ş.'de ne olur Kim
09:00 Program açılır; bugünün kurları girilir ya da dünden kopyalanır; yazıcı test edilir; kasa fiziksel sayımı stok listesiyle karşılaştırılır Mehmet (gişe), Ali (muhasebe)
09:30–18:00 Müşteri işlemleri: maden alım/satım, hurda alımı, döviz bozdurma, cari tahsilat; fiş yazdırma Mehmet, Zeynep
Gün içi Toptancı Yusuf'tan gelen mal cari hesaba giriş; atölyeye giden mal; şubeler arası transfer Zeynep, Ali
18:00 Gün sonu: maden ve nakit stok listeleri fiziki sayımla karşılaştırılır; fark varsa sebep aranır; teyitleşilen işlemler mutabık işaretlenir; pozisyon raporuna bakılır Mehmet, Ali, Ayşe
18:30 Yedek alınır Ali

Bu "Pazartesi sabahı rutini" destek tarafından müşteriye verilen kontrol listesidir: program açılıyor mu, kur bugünün mü, yazıcı test fişi, kasa sayımı = stok listesi, bekleyen silme/düzeltme talebi (../ERPGOLD_WIKI/12_Support/KnownIssues/H-169.md, PB-060).

Seviye 3 — ERPGOLD

1. GirişERPGOLD V2 KULLANICI GIRIS EKRANI (SCR-FRMLOGINFORM): sırayla Şirket Kodu → Kullanıcı Adı → Şifre → Şube seçilir, GİRİŞ. Şifre üç kez yanlış girilirse program kapanır (hesap kilitlenmez). Üstteki veritabanı kutusu canlı DB ile devir sonrası arşiv DB'lerini listeler; arşiv seçilirse geçmiş yıla yalnız bakılır ("BU VERI TABANI ISLEME KAPATILMISTIR."). Kullanıcının şube-kasa satırı yoksa şube listesi boş gelir ve "Lütfen bilgileri Eksiksiz Giriniz." alınır — yeni kullanıcı çağrılarının klasik nedeni (H-010).

2. Ana menüANA MENU - [ŞUBE] (SCR-FRMMAINFORM): üstte şerit (6 sekme), altta sekmeli çalışma alanı. Şube seçiciyle programdan çıkmadan şube değiştirilir. Hangi düğmelerin görüneceği kullanıcının yetki grubundan gelir; lisans dolmuşsa şerit tümüyle kapanır. Ctrl+F5 Sistem Yenile: tanım tabloları belleğe yeniden yüklenir — "tanımladım ama listede yok" sorununun standart çözümü (PB-039).

3. Cari İşlemler ekranı — Hesap Yonetimi ▸ Cari Hesaplar ▸ Cari İşlemler (SCR-ISCREEN, kapsayıcı SCR-IFTRANSACTION): Hesap Adı seçilir, Kasa ve Tarih kontrol edilir, TAMAM (Enter) — bakiye kartı ve sonraki fiş numarası gelir. Sağ şeritten işlem türü seçilir (1-MADEN, NAKİT, HURDA, TAKOZ G…); alanlar doldurulur; F2 kayıt, F5 yenile, Esc kapat. Kayıt sonrası işlem listesi ve bakiye kartı yenilenir. Bölüm 5 bu ekranı alan alan anlatır.

4. Gün sonu (06_Workflows/WF-GUN-SONU.md): Stoklar ▸ Maden/Nakit Stok Listesi alınır, fiziki sayımla karşılaştırılır (stok kasa bazlıdır, bakiye değildir); fark varsa girilmemiş / iki kere girilmiş / yanlış kasaya girilmiş işlem aranır; teyitleşilen işlemler F12 ile mutabık işaretlenir; F2 Son Durum / F9 bakiye ekstresi basılır. Ertesi sabah kasa devir raporundaki kapanış fiziki kasayla karşılaştırılır, kur girilir ya da KOPYALA ile kopyalanır (SCR-FRMKURGIRISEKRANI).

5. Raporlar — Hesap Yonetimi ▸ Rapor: Pozisyon, Durum Raporu, Hacim Raporu, Kasa Durum Raporu, Maden Durum Raporu, Bilanço, Patron Bilançosu; ayrıca veritabanından gelen rapor menüsü (Aifa Developer Studio). Bölüm 7 senaryolarında hangi rapora bakılacağı işlenir.

6. Yedek — Ana menüdeki Yedek Al düğmesi (SCR-BACKUP, PB-013) ya da SQL tarafında; RDP'de barındırılan müşterilerde günlük SQL yedekleri AIFASOFT tarafından alınır (INT-RDP-SUNUCU).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Giriş: FrmLoginForm.LoginLoginInformation.Login şube+kullanıcı eşleşmesini (Sistem.UserDetails) yükler, Sistem.Login'e denetim satırı atar (bilgisayar adı, IP, sürüm), Program.InitFrmMainForm (../ERPGOLD_WIKI/09_CodeArchitecture/Security/SEC-AUTHN.md). Menü: FrmMainForm.onMenuSelect düğme etiketine (Tag) göre ekranı açar (ARCH-APP-FLOW.md). Cari İşlemler: iScreen (liste + bakiye kartı) → iFTransaction (18 iFormBase türevini barındırır, iTransactionInfo ile hesap/kasa/tarih/fiş dağıtır) → alt ekran ValidateFormSaveAIO.Cari.Islem.SaveInternalDb parametreli SQL → Cari.Islemler INSERT → tetikleyiciler. Gün sonu stok listeleri Stok.StokHaraketleri'ni KasaId ile, bakiye Cari.BakiyeIslem'i yalnız HesapId + BirimId ile gruplar (Bakiye.GetBakiye) — stok kasa düzeyinde, bakiye değil. Kur: Sistem.Kurlar, Sistem.GetLastKur (kur girilmeyen gün sessizce son kur), Sistem.KurKopyala.

17.4 Ürün ailesi

Yalnız wiki'de kanıtı olan ürünler (../ERPGOLD_WIKI/01_AIFASOFT/URUN_AILESI.md). Her satırda ürünün ERPGOLD'a nasıl bağlandığı yazılıdır; bu, "müşteri hangi ürünü soruyor?" sorusunun ilk süzgecidir.

Ürün Ne yapar ERPGOLD ile bağı Kanıt / ticket başlığı
ERPGOLD / ERPGOLDV2 Masaüstü ERP (VB.NET WinForms + DevExpress, MSSQL) Ana ürün SYSTEM_OVERVIEW.md; "ERPGOLDV2" 11.167 çağrı
Aifa Developer Studio ERPGOLD içindeki rapor / gösterge paneli / fatura tasarım katmanı; raporlar koda değil DB'ye (AifaDev.Reports) yazılır ERPGOLD'un modülü 04_Modules/MOD-RAPOR.md; "Veritabanı & Rapor" 566 çağrı
EDS (Elektronik Döviz Sistemi) Fiyat sağlayıcısından kur alıp ERP'ye yazar, fiyat ekranlarını (display) besler Kur listesini doldurur 11_Integrations/INT-KUR-EDS.md; "EDS" 1.227 çağrı
FX Trader / MT4 köprüsü Forex/pozisyon terminali; MetaTrader 4/5 ↔ ERP (Meta2ERP, FX Sync); hedge ve emir eşleme Yalnız süreç dokümanlarından bilinir; ERP kodunda yok 11_Integrations/INT-FXTRADER-MT4.md; "FXTRADER" 662 çağrı
DWS Web sitesi / fiyat yayını yönetim paneli EDS ile birlikte anılır "DWS" 67 çağrı
ErpPosV2 Dokunmatik vezne: giriş, hesap seçimi, maden/hurda/nakit satırıyla fiş; ERP DB'sine doğrudan bağlanır Aynı veritabanı 11_Integrations/INT-POS-ERPPOSV2.md; ticket başlığı yok (GAP-AIFA-URUN-01)
AifaUyum / KYC Müşteri tanıma, evrak kuralları, risk seviyesi, MASAK sorguları, portal; web servisleri + Android KYC şeması üzerinden; dağıtım UNKNOWN INT-KYC-AIFAUYUM.md; 34 sürüm notu
DijitalFatura E-fatura / e-arşiv / e-döviz belgesi kütüphanesi; UBL üretir, entegratöre gönderir, ETTN alır Fatura modülünün gönderim katmanı INT-EFATURA.md; "Fatura / e-fatura" 1.286 çağrı
ERPMobil Mobil uygulama: yeni işlem, hesaplar, pozisyon, raporlar DB yordamlarıyla yazar INT-ERPMOBIL.md; "MOBIL APP" 26 çağrı
ERPBooster Pozisyon ön hesaplama; pozisyon ekranını hızlandırır Aktivite izi + pozisyon yazma yordamı INT-ERPBOOSTER.md
WebOfis ERP içinde gömülü tarayıcı; Excel/Word/PDF belgelerinin DB'de saklanması Ana menü Office grubu INT-WEB-OFIS.md
LiveUpdate Sürüm takibi ve exe güncelleme Güncelleme kanalı INT-LIVEUPDATE.md
Lisans sunucusu / SMS aktivasyon Güvenlik sorusu → SMS anahtar → aktivasyon Girişte lisans kontrolü INT-LISANS.md; "Lisans" 736 çağrı
Agent, NetEkstre, TickData Uyarı motoru; banka ekstresi; fiyat sunucuları Bileşen / servis AIFASOFT ürünü mü üçüncü taraf mı belirsiz (GAP-AIFA-URUN-02)

Web sitesinin saydığı AIFASHOP (e-ticaret) iç kaynaklarda geçmez; kitap yalnız "sitede var" der.

UYARI Müşteri "program kur çekmiyor" dediğinde sorun çoğu zaman ERPGOLD'da değil EDS'dedir; "MetaTrader'daki pozisyon ERP'de görünmüyor" dediğinde FX Trader / FX Sync'tedir. Ürün ailesini bilmeden ticket yanlış ürüne açılır.

17.5 Destek nasıl çalışır

Kaynak: ../ERPGOLD_WIKI/01_AIFASOFT/DESTEK_CALISMA_BICIMI.md — 13.681 çağrı (2021-10 → 2026-09), 211 süreç dokümanı, 65 playbook, 170 bilinen sorun.

Seviye 2 — İşletme mantığı

Müşteri (ÖRNEK ALTIN'da Mehmet) bir sorunla arar. AIFASOFT tarafında Deniz kaydı açar (başlık, ürün, kategori), gerekli bilgiyi alır (hata mesajının tam metni, hesap adı / tarih / fiş no, hangi ekran ve işlem tipi, ne zaman başladı, o gün ne değişti — PB-060), uzaktan bağlanır (RDP ya da uzak destek aracı), teşhis eder, çözer, kaydı kapatır. Çağrıların çoğu çözüldükten sonra kaydedilip hemen kapatılır (medyan kapanış ~0 saat); 24 saat içinde kapanan oran temaya göre %87–96.

Ritim: Pazartesi haftanın dörtte biri; 09–12 arası günün %41'i; Pazar sıfır. Takvime bağlı rutinler: Ocak yılbaşı fatura/belge numarası, lisans yenileme, devir; her ay başı BTrans aktarımı (2022'de 325 çağrı → 2026'da 30: yapılan iyileştirmenin izi); Ekim–Kasım lisans yenileme dalgası.

Seviye 3 — ERPGOLD

Destek personelinin bilgi kaynakları ve sırası:

Sıra Kaynak Adet Ne zaman
1 Problem temaları 12_Support/Problems/PRB-* 22 "Bu tema ne kadar sık, alt kategorileri ne?"
2 Semptom zincirleri 12_Support/SymptomChains/SYM-* 11 Belirti → olası nedenler → sorulacak sorular → ekran
3 Playbook'lar 12_Support/Playbooks/PB-* 65 Belirti → sorular → teşhis adımları → çözüm → kalıcı önlem → yükseltme
4 Bilinen sorunlar 12_Support/KnownIssues/H-* 170 Belirti / sebep / çözüm
5 Süreç dokümanları 12_Support/Processes/PROC-* 211 Kurulum, RDP, SQL Server, yedek, devir, BTrans, EDS/FX kurulumu adım adım
6 Entegrasyon makaleleri 11_Integrations/INT-* 32 "Tipik arıza biçimleri" ve "Destek ipucu"
7 Ekran makaleleri 05_Screens/SCR-* 337 Kullanıcıya gösterilen mesajlar, alan → tablo

Sık operasyonlar: kurulum ve yeni bilgisayar standardı (PROC-1, PB-010); sürüm güncelleme (PB-012); yedek alma (PB-013); devir / yıl sonu (WF-YIL-SONU-DEVIR, PB-034); bakiye şikâyeti 10 adımlık teşhis (PB-028); işlem düzeltme/iptal (PB-030, PB-031).

Yükseltme (escalation): tüm teşhis adımları temizse yazılımcıya hesap adı, tarih aralığı, fiş no, İşlem Geçmişi ekran görüntüsü ve ilgili defter satırları ile gidilir (PB-028). Ticket başlığından kök neden uydurulmaz; "sebep" ile "gözlem" ayrılır.

UYARI Toptan bakiye onarım aracı hiçbir koşulda çalıştırılmaz (../ERPGOLD_WIKI/17_Quality_And_TechnicalDebt/Items/TD-30.md). Tetikleyici sil-yeniden-yaz çalıştığı için Cari.Islemler satırı düzeltilince defterler kendiliğinden yeniden üretilir; elle BakiyeIslem düzeltmesi yapılmaz.

GAP Çağrı kanalı, ticket sistemi adı, SLA/öncelik sınıfları, nöbet düzeni (GAP-AIFA-DESTEK-01); destek kadrosu ve kademe yapısı (GAP-AIFA-DESTEK-02); ticket kayıtlarında çözüm metni yok (GAP-TICKET-01); ticket ile kurulum profili eşleşmesi yok (GAP-TICKET-04).

17.6 Mimari kuş bakışı

Seviye 2 — İşletme mantığı

Programı iki parça olarak düşün: ekran (kullanıcının gördüğü, Windows'ta çalışan program) ve veritabanı (bütün kayıtların durduğu SQL Server). Ekran kaydı yazar, veritabanı kaydı alır ve kendi başına iki ek defteri (bakiye, stok) hesaplar. Müşteri programı ya kendi bilgisayarında ya da AIFASOFT'un sunucusuna uzak masaüstüyle bağlanarak kullanır.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Kaynak: ../ERPGOLD_WIKI/09_CodeArchitecture/ARCHITECTURE.md, ARCH-APP-FLOW.md, ARCH-DB-ACCESS.md.

[Kullanıcı] → FrmMainForm (Ribbon; menü görünürlüğü Sistem.UserGroup.Permission)
   → iScreen (Cari İşlemler: hesap seçimi, işlem listesi, F1..F12, DÜZELT/İPTAL/YAZDIR)
      → iF* işlem ekranları (iFormBase): Validate → FormSave → AIO.Cari.Islem.Save/Update/Delete
         → InternalDb (parametreli SQL) → Cari.Islemler INSERT/UPDATE
            → TR Cari.InsertTransaction / UpdateTransaction / DeleteTransaction → Cari.History
            → TR Cari.AcceptTransaction → Cari.BakiyeIslem (bakiye), Stok.StokHaraketleri (stok/kasa), Cari.IslemDetaylari
   → Raporlar: Reports.* tablo fonksiyonları, AifaDev.Reports (DB tanımlı menü)
   → Fatura: DijitalFatura (entegratör) → Muhasebe.*, Cari.Fatura*
   → Kur: Sistem.Kurlar / KurListesi, EDS (UNVERIFIED), Sistem.DovizPanosu
Yan: ErpPosV2, AifaUyum (KYC.*), LiveUpdate, Lisans sunucusu
Katman Nerede Not
Sunum Ekran/, Base Control/ DevExpress XtraEditors/XtraLayout; etiketler Designer'da
İş kuralı Dao/Islem/Cari.Islem.vb, Ext/*Ex.vb, ekran Validate/FormSave Kuralların bir kısmı ekranda, bir kısmı motorda, bir kısmı tetikleyicide (07_BusinessRules/)
Veri erişimi (DAO) Dao/ (AIO.*), _SQLBase, InternalDb Tablo başına sınıf, Load/Save/Update/Delete; TECHNICAL_WIKI/CODE_MAP/CODE_MAP.md
Veritabanı 220 tablo, 12 tetikleyici, 338 fonksiyon, 61 yordam, 73 görünüm FK yalnız KYC şemasında; bütünlük uygulama + tetikleyici ile

Tek yazma noktası: kullanıcı yalnız Cari.Islemler'e yazar (TECHNICAL_WIKI/TABLES/TBL-CARI.ISLEMLER.md, skor 29,87 ile en kritik tablo). Cari.AcceptTransaction her satır için önce eski türetilmiş kayıtları siler, sonra IslemKodu'na göre dallanıp stok ve bakiye defterini yeniden üretir (../ERPGOLD_WIKI/08_Database/Triggers/TRG-CARI.ACCEPTTRANSACTION.md). En çok başvurulan beş tablo: Cari.Islemler (382 gelen ilişki), Cari.Hesaplar (258), Cari.BakiyeIslem (169), Sistem.Subeler (156), Sistem.Birimler (148). Kritik gerçekler (kod doğrulamalı, SYSTEM_OVERVIEW.md): HAS = MİKTAR × MİLYEM (milyem ondalık); NORMAL: bakiye ✓ stok ✓ · PEŞİN: bakiye ✗ stok ✓ · RESMİ(11)/MAHSUP(12): tetikleyici bakiye ve stok yazmaz; düzeltme Tarih/FisNo/Kasa/Hesap alanlarını değiştirmez; yetkiler Sistem.UserGroup.Permission alanında 23 bayrak + menü listesi olarak saklanır.

PEKİ NEDEN? Neden bakiye ve stok ayrı tablolarda tetikleyiciyle üretiliyor da ekran doğrudan yazmıyor? Çünkü kullanıcı bir işlemi düzeltince ya da iptal edince bakiyenin ve stoğun da kendiliğinden düzelmesi gerekir. Tetikleyici "sil–yeniden yaz" çalıştığı için işlem satırı ne olursa defterler ona uyar; ekranın bunu hatırlaması gerekmez. Bedeli: tetikleyici hangi tipte ne üreteceğini kendisi bilir ve bu bilgi ekranda görünmez — bu kitabın Bölüm 6'sı tam da bunu görünür kılar.


18. Örnek bir işletme yarat: ÖRNEK ALTIN A.Ş. ERPGOLD'da

Bu bölümde Deniz (AIFASOFT destek) ve Ayşe (firma sahibi) ile ÖRNEK ALTIN A.Ş.'yi sıfırdan kuruyoruz. Her adımda Seviye 3 ekranı, Seviye 4 tabloyu söyler. Bölüm 1 §1.5'teki başlangıç durumu bu bölümün sonunda programa girilmiş olacak.

18.1 Kurulum sırası — neden bu sıra?

Seviye 1 — Çok basit

Bir okulda önce okul kurulur, sonra sınıflar açılır, sonra her sınıfa bir dolap konur, sonra öğretmenler hangi sınıfa girecek belirlenir; ancak ondan sonra ders yapılabilir. ERPGOLD'da: şirket → şube → kasa → kullanıcı. Ders yapmadan (işlem girmeden) önce de "hangi derslerin var" (birimler, kartlar) ve "kimle çalışıyorsun" (cari hesaplar) tanımlanır.

Seviye 2 — İşletme mantığı

Sistem.Sirketler        ŞİRKET   ÖRNEK ALTIN A.Ş.
   └─ Sistem.Subeler    ŞUBE     MERKEZ, ŞUBE-2   → her şubenin hesabı, stoğu, bilançosu AYRI
        └─ Sistem.Kasalar  KASA  ANAKASA, GİŞE…   → her kasanın stoğu AYRI; belge uyum işareti (ResmiKasa) burada; legacy ad, ayrı defter değil

Kritik kural (kitapçık §3.1): stok kasa seviyesindedir, cari bakiye değildir. Kuyumcu Selim'in bakiyesi tektir; hangi kasadan işlem yaptığı yalnız izdir.

Tanımlama sırası (kitapçık §4.2, SCR-FRMSIRKETEKLE adım 3):

# Adım Ekran Neden bu sırada
1 Şirket Sirket Tanımlama Her şey şirkete bağlanır; giriş ekranındaki ilk seçim
2 Şube(ler) Sube Tanımlama Hesap, stok ve bilanço şubeye ayrılır; şube kaydı ANAKASA'yı otomatik açar
3 Ek kasalar Kasa Tanımlama Gişe için ayrı kasa; belge uyum işaretli (resmi) kasa
4 Yetki grupları Kullanıcı Grupları Kullanıcı bir gruba bağlanmadan tanımlanamaz
5 Kullanıcılar Kullanıcı Tanımlama Şube-kasa-grup satırı olmadan giriş yapılamaz
6 Birimler Birim Listesi Para ve maden birimleri; kartlar ve kur bunlara bağlanır
7 Stok kartları Maden / Nakit Stok Tanimlama İşlem ekranında STOK KODU listesi buradan dolar
8 Kur Kur Giris Ekranı Kur yoksa fiyat 0 gelir
9 Cari hesaplar Hesaplar (+ Master) Müşteri/tedarikçi kartları; DEVİR hesabı
10 Açılış Cari İşlemler ▸ DEVİR hesabı Başlangıç stoğu ve bakiyeleri

Her tanımdan sonra Ctrl+F5 (Sistem Yenile) ya da programı yeniden açma gerekir: tanım tabloları belleğe bir kez yüklenir (PB-039).

18.2 Şirket, şube, kasa

Seviye 3 — ERPGOLD

Şirket — Tanımlamalar ▸ Sistem Tanimlari ▸ Sirket Tanımlama (SCR-FRMSIRKETEKLE). Ekran yalnız iki alan içerir: Kodu (giriş ekranında görünen şirket kodu, ör. ORNEK) ve Acıklama (ÖRNEK ALTIN A.Ş.). Yeni veritabanı kurulumunda şirket aslında bir saklı yordamla (varsayılan admin kullanıcı, grup ve ayar satırıyla birlikte) oluşturulur; bu ekran kurulum sonrası düzeltme içindir (PROC-67). Çok şirketli kurulum nadirdir; ÖRNEK ALTIN tek şirkettir.

Şube — Tanımlamalar ▸ Sistem Tanimlari ▸ Sube Tanımlama (SCR-FRMSUBEEKLE), ADMIN ile. Üç sekme:

Sekme ÖRNEK ALTIN — MERKEZ için ÖRNEK ALTIN — ŞUBE-2 için
Genel Bilgiler Sirket ORNEK · Kodu MERKEZ · Bilanco birimi HAS (kuyumcu bilançosu altınla) · Sube Tipi GENEL · Limit Control açık · M.Tarihi kuruluş günü · Durum Aktif Kodu SUBE-2, diğerleri aynı
Resmi Bilgiler Resmi Sube ON (fatura kesilecek) · Unvan, Vergi Dairesi/No, Tic. Sicil No · Adres Resmi Sube: firma kararı — GAP: ŞUBE-2'nin resmi olup olmadığı senaryoda belirlenmedi; kitap MERKEZ'i resmi kabul eder
Entegrator E-belge entegratörü ve hesabı (kimlik bilgileri kitaba yazılmaz) · Gönderim Tercihi

PEKİ NEDEN? Neden bilanço birimi HAS? Kuyumcu "kârım kaç gram" diye düşünür; TL karşılığı her gün değişir, gram değişmez (Bölüm 3, SEC-KUYUMCU). Bilanço birimi bilanço ve kâr/maliyet raporlarının birimidir ve maden kartlarının varsayılan Ana Birim'idir. Döviz bürosu kurulumunda bu TL olurdu. ÖRNEK ALTIN'ın döviz gişesi olsa da ana işi kuyumculuk olduğundan HAS seçildi; Sube Tipi DÖVİZ değil GENEL kaldı (DÖVİZ tipinde resmi kasadaki faturasız işlemler raporlarda gizlenir — TERM-SUBE-TIPI-DOVIZ-GENEL).

Şube kaydedilince tetikleyici o şubeye otomatik ANAKASA açar (BR-KASA-005). Yani MERKEZ ve ŞUBE-2 kaydedildiği anda iki kasa vardır.

Kasa — Tanımlamalar ▸ Sistem Tanimlari ▸ Kasa Tanımlama (SCR-FRMKASAEKLE): Sirket → Sube → Kodu (en çok 10 karakter) → AcıklamaResmi Kasa anahtarı → Kayıt. ÖRNEK ALTIN MERKEZ'e ikinci bir kasa açar: GISE (Mehmet'in döviz gişesi). Böylece Mehmet'in kasası ile Zeynep'in tezgâhı (ANAKASA) ayrı sayılır; gün sonunda her kasa kendi listesiyle karşılaştırılır. Resmi kasa: faturalı işlemlerin yapıldığı kasa; resmi kasada geçmiş tarih uyarısı sorulmaz, "Fiş No ile iptal" düğmesi görünür (WF-KASA-TANIMLAMA). ÖRNEK ALTIN'da ANAKASA resmi işaretlenir.

BUNU KARIŞTIRMA Kasa ≠ Cari. Kasa, fiziksel paranın ve malın durduğu yerdir (stok kırılımı). Cari, bir hesabın bize borcu/alacağıdır (bakiye). Yanlış kasadan yapılan işlem stok listesinde o kasada görünür ve DÜZELT ile kasa değiştirilemez — iptal edilip doğru kasadan girilir ya da kasalar arası transfer yapılır (H-113, SCR-FRMTRANSFER).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Sistem.Sirketler (TECHNICAL_WIKI/TABLES/TBL-SISTEM.SIRKETLER.md; V2'de 1 satır): Kodu, Aciklama, otomatik UserId/InsertDate/IsDeleted/RefNo; DAO AIO.Sistem.Sirket.Save; tam kurulum Sistem.SirketOlustur yordamı. Sistem.Subeler (TBL-SISTEM.SUBELER.md; 7 satır, 96 DB okuyan nesne): SirketId, Kodu, Aciklama, BilancoBirimId, SubeTipi, IsLimitControl, RevCostDate, IsActive, IsResmi, ResmiIslemLimitiTL, Unvan, VergiDairesi, VergiNo, …, Entegrator, EntUserName, EntPassword, EntCustId, EBelgeTaslak, EBelgeTest; kayıt sonrası Sistem.CreateKasa tetikleyicisi ANAKASA satırı açar; pasif şubede tetikleyici "SUBE PASIF HALDE. ISLEM YAPAMAZSINIZ..." (BR-KASA-004). Sistem.Kasalar (TBL-SISTEM.KASALAR.md; 26 satır): SirketId, SubeId, Kodu nvarchar(10), Aciklama, ResmiKasa bit; oturumda LoginInformation.Kasa.ResmiKasaProgram.IsResmi. Stok defteri Stok.StokHaraketleri.KasaId ile kırılır; Bakiye.GetBakiye KasaId'yi hiç kullanmaz. Ayarların iş etkisi: ../ERPGOLD_WIKI/09_CodeArchitecture/CONFIGURATION.md (cfg-sube-*, cfg-kasa-resmikasa). Not: entegratör parolası düz metin saklanıyor olabilir (SEC-AUTHN §10, INFERRED).

18.3 Yetki grupları ve kullanıcılar

Seviye 2 — İşletme mantığı

Ayşe herkesin her şeyi yapmasını istemez: Mehmet gişede nakit ve maden işlemi girsin ama işlem iptal edemesin; Zeynep satış yapsın; Ali raporları görsün, faturayı kessin, düzeltme yapabilsin; Ayşe her şeyi görsün. Bu, yetki grubu kavramıdır. Kullanıcı bir gruba bağlanır; grup hangi işlem ekranlarının, hangi hakların (düzelt, iptal, bakiye görünümü) ve hangi menü düğmelerinin açık olduğunu belirler.

Seviye 3 — ERPGOLD

Kullanıcı grupları — Tanımlamalar ▸ Sistem Tanimlari ▸ Kullanıcı Grupları (SCR-FRMADDUSERGROUP): Grup Adı; sol blokta işlem ekranı yetkileri (Takoz, Maden, Hurda, Nakit, Cevir, Vadeli, Hizmet, Taş, Pırlanta, Model, Genel, Borc, Virman, Fatura, Emtia, Cesni, Parite) ve işlem hakları (İşlem Düzelt, İşlem İptal, Kod Tanimlama, Pesin Kontrolu, Bakiye Gorunumu, Ticket Kapama); sağ ızgarada ana menü düğmelerinin Visible kutuları.

Grup Ekran yetkileri Haklar Kim
YONETICI Tümü Tümü Ayşe Demir
MUHASEBE Tümü İşlem Düzelt, İşlem İptal, Bakiye Gorunumu; Rapor menüsü görünür Ali Çelik
SATIS Maden, Hurda, Nakit, Hizmet, Borc Bakiye Gorunumu Zeynep Aksoy
GISE Nakit, Maden, Hurda, Parite — (düzelt/iptal yok) Mehmet Kaya

Yetki değişikliği, o gruptaki kullanıcı programdan çıkıp yeniden girince geçerli olur (WF-KULLANICI-GRUBU-YETKI).

Kullanıcılar — Tanımlamalar ▸ Sistem Tanimlari ▸ Kullanıcı Tanımlama (SCR-FRMKULLANICIEKLE): Kullanıcı Adi, Sifre, isteğe bağlı Personel/Email/GSM → Kayıt; pencere açık kalır ve alt Sube bölümü etkinleşir → Sube seçilir → kasa listesi o şubenin kasalarıyla dolar → Kasa ve Grup seçilir → mavi artı ile satır eklenir. Satır Lock = işaretli (kasa kilitli) olarak eklenir; kullanıcı kasa değiştirebilsin isteniyorsa Lock kaldırılır.

Kullanıcı Şube Kasa Grup Lock Neden
ayse MERKEZ + ŞUBE-2 (iki satır) ANAKASA YONETICI kapalı Her iki şubeye giriş, kasa seçebilir
ali MERKEZ ANAKASA MUHASEBE kapalı Transfer ve düzeltmede kasa seçmesi gerekir
zeynep MERKEZ ANAKASA SATIS açık Tezgâh kasası sabit
mehmet MERKEZ GISE GISE açık Gişe kasası sabit; yanlış kasaya işlem girmesin

UYARI Kullanıcının şube-kasa-grup satırı yoksa giriş ekranında şube listesi boş gelir, "Lütfen bilgileri Eksiksiz Giriniz." alınır ve hiçbir menü çalışmaz — yeni kullanıcı çağrılarının en sık nedeni (H-010, PB-009). Pasif kullanıcı (IsActive=False) yine de giriş yapabilir; erişimi kesmek için şube satırı Kaldır ile silinir (SEC-AUTHN §1).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Sistem.Users (TECHNICAL_WIKI/TABLES/TBL-SISTEM.USERS.md; 69 satır): SirketId, UserName, Password (geri döndürülebilir şifreli; algoritma wiki'de yazılmaz), PersonelId, Email, Gsm, IsActive. Sistem.UserDetails (../ERPGOLD_WIKI/08_Database/Tables/TBL-SISTEM.USERDETAILS.md): UserId, SubeId, KasaId, GroupId, IsLocked — giriş ekranındaki şube listesi buradan; IsLockedUser.Lock işlem ekranlarında KASA kutusunu kilitler (BR-KASA-001). Sistem.UserGroup (TBL-SISTEM.USERGROUP.md): GroupName, Permission — 23 bayrak 3 haneli ASCII kodlu + menü listesi (Sistem.Usergroup.vb LoadPermission); iScreen.InitPermission düğme görünürlüğünü buradan alır. Şifre karmaşıklık kuralı yoktur; UserDetails INSERT/UPDATE string birleştirmeyle kurulur (TD-DYNAMIC-SQL). Giriş denetimi Sistem.Login (41.064 satır V2'de; çıkış kaydı yok).

18.4 Birimler ve kur

Seviye 2 — İşletme mantığı

ÖRNEK ALTIN'ın "para tarafı" dört birimle konuşur: TL, USD, EUR ve HAS. Bakiye kartında Kuyumcu Selim'in has borcu, Döviz Nuri'nin USD alacağı ayrı sütunlarda görünür; kur listesi her birimin günlük alış/satışını taşır. Ons gibi türetilmiş birimler HAS'tan çarpanla hesaplanır (1 ons = 31,1035 g).

Seviye 3 — ERPGOLD

Birim — Tanımlamalar ▸ Sistem Tanimlari ▸ Birim Listesi (SCR-FRMBIRIMEKLE): Kodu, Acıklama, Sıra No; kıymetli maden ise Metal; başka birimden türetiliyorsa Computed + kaynak birim + Carpan; bakiyesi sıfırken de kartta görünsün isteniyorsa Sabit.

Kodu Acıklama Metal Computed Sabit Not
TL Türk Lirası Bilanço/nakit tarafı
USD ABD Doları Gişe
EUR Euro Gişe
HAS Has altın (gram) Bilanço birimi; maden kartlarının Ana Birim'i
ONS Ons ✓ (HAS × 31,1035) Kur ekranında listelenmez, HAS'tan türetilir

Kur — Hesap Yonetimi ▸ Ayarlar ▸ Kur Giris Ekranı (SCR-FRMKURGIRISEKRANI): tarih gezgininden gün seçilir; kırmızı satırlar o gün kuru olmayan birimlerdir; satırda Alis → Enter → Satis → Enter. Dünle aynıysa Kopyala. ÖRNEK ALTIN'ın Pazartesi kurları (örnek, güncel değil): USD 40,00 / 40,20 · EUR 46,00 / 46,30 · HAS 4.000 / 4.030.

UYARI Kur girilmeyen günde program sessizce en son kuru kullanır; yeni tanımlanan birimin kuru yoksa fiyat 0 gelir ("Lütfen Tutar Giriniz.", PB-036). Aynı kodun iki kez tanımlanması ekranca engellenmez; raporlarda aynı birim iki satır çıkar (H-023).

BUNU KARIŞTIRMA Birim ≠ Nakit kartı. Birim "paranın tarafı"dır (bakiye sütunu, kur satırı); nakit kartı kasadaki fiziksel para stoğudur. USD birimi var ama USD nakit kartı yoksa "«USD» AnaBirimine Ait Nakit Stokgu Bulunamadı!" alınır (H-056). Bir sonraki adımda nakit kartlarını açıyoruz.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Sistem.Birimler (TECHNICAL_WIKI/TABLES/TBL-SISTEM.BIRIMLER.md; V2'de 133 satır, 100 DB okuyan nesne, skor 15,69 — küçük ama kritik): Kodu, Aciklama, SiraNo, IsMetal, IsComputed, ComputedBirimId, ComputedCarpan, IsStatic. Her işlemin Cari.Islemler.BirimId'si, her bakiye satırı (Cari.BakiyeIslem.BirimId) ve kur satırı buradan (TERM-BIRIMID-PARA-TARAFI). Sistem.Kurlar (TBL-SISTEM.KURLAR.md; 22.575 satır): Tarih, BirimId, Alis, Satis, LastModify, UserId; Sistem.GetKurListesi(tarih) hesaplanmış birimleri Computed='True' işaretler; SQL tarafındaki FN.GetKur ve çoğu ekran fiyatı her zaman alış kullanır (BR-KUR-008, CTR-009); Sistem.KurKopyala son kurları bugüne kopyalar. Maden kartı Ana Birim listesi yalnız IsMetal=1 AND IsComputed=0 birimleri gösterir (FrmMadenEkle.vb:10).

18.5 Stok kartları — maden ve nakit

Seviye 2 — İşletme mantığı

Kasada duran her şeyin bir "kartı" olmalı ki program "şu karttan 600 g çıktı" diyebilsin. ÖRNEK ALTIN'ın kasasında dört maden kalemi (has, 22 ayar bilezik, 14 ayar, hurda) ve üç para birimi (TL, USD, EUR) var. Maden kartı, ürünün milyemini taşır; bu sayede işlem ekranında miktar girilince has kendiliğinden hesaplanır. Hurda kartı ayrıdır: HURDA ekranı yalnız hurda kartlarını, MADEN ekranı yalnız metal kartlarını listeler.

Seviye 3 — ERPGOLD

Maden kartı — Tanımlamalar ▸ Stok Tanimlari ▸ Maden Stok Tanimlama (SCR-FRMMADENEKLE), ADMIN ile: Kodu, Acıklama, Ana Birim (HAS), Metal / Hurda, Fiyat T. (Adet / Miktar / Oz / Has), metal ise Milyem + Degismez/Degisir, Adet Takip, Sabit Miktar, Iscilik Turu, Giris/Cıkıs Isciligi + birim, Maliyet Birim, Grup Kodu / Kategori, Durum.

Kodu Metal/Hurda Ana Birim Milyem Fiyat T. İşçilik Not
HAS 995 Metal HAS 0,995 (Degismez) Has Kitapta "has"; başlangıç 2.000 g
22 AYAR BILEZIK Metal HAS 0,916 (Degisir) Has Çıkış işçiliği 150 TL/gram, Iscilik Turu Miktar Başlangıç 1.500 g
14 AYAR Metal HAS 0,585 (Degisir) Has Başlangıç 800 g
HURDA Hurda HAS — (işlemde girilir) Has Başlangıç 300 g, ort. 0,700

PEKİ NEDEN? Neden hurda kartında milyem yok? Hurda karışık ayardır; her parti farklıdır. Kart sabit bir milyem taşısaydı kasiyer her seferinde yanlış has hesaplardı. Bu yüzden hurda milyemi işlem sırasında girilir; kart yalnız "bu bir hurda kalemidir" der. Bilezikte ise milyem karttan gelir ama "Degisir" seçildiği için gerekirse işlemde düzeltilebilir (PROC-97, H-027).

Nakit kartı — Tanımlamalar ▸ Stok Tanimlari ▸ Nakit Stok Tanimlama (SCR-FRMNAKITEKLE): Kodu, Acıklama, Ana Birim, Durum → Kayıt → Ctrl+F5.

Kodu Ana Birim Başlangıç (MERKEZ)
TL TL 500.000
USD USD 100.000
EUR EUR 20.000

Kart tanımlandıktan sonra Ctrl+F5; aksi hâlde işlem ekranındaki STOK KODU listesinde çıkmaz (H-020).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Stok.Maden (TECHNICAL_WIKI/TABLES/TBL-STOK.MADEN.md; V2 121 satır, 95 kod referansı): Kodu, Aciklama, AnaBirimId, IsHurda, FiyatTipi (0-3), Milyem, MilyemDurumu, IsAdet, StabilMiktar, IscTuru, GirisIsciligi, CikisIsciligi, GirisIscDrm, CikisIscDrm, IsExtra, MaliyetBirimId, Barkod, GrupKodu, Kategori, IsActive. IsHurda MADEN/HURDA ekranlarının kart listesini süzer (cfg-maden-ishurda); StabilMiktar doluysa MİKTAR = ADET × Sabit Miktar ve kilitli (BR-HESAP-003/004); NORMAL işlemde FİYAT'ın kaynağı girişte GirisIsciligi, çıkışta önce hesaba özel fiyat (Cari.Fiyatlar), yoksa CikisIsciligi (BR-HESAP-011). Hareketi olan kartın adı değişmez (PROC-108, H-026). Stok.Nakit (TBL-STOK.NAKIT.md; 132 satır): Kodu, Aciklama, AnaBirimId, IsActive; nakit stoğu Stok.StokHaraketleri StokTipi=2 ile izlenir (BR-STOK-003); ana birim = seçilen birim ise NAKİT ekranında FİYAT 1'e kilitlenir (BR-KUR-006). Aynı ana birime iki nakit kartı açılması ekranca engellenmez (GAP).

18.6 Cari hesaplar

Seviye 2 — İşletme mantığı

"Cari hesap", adına bakiye tuttuğumuz herkestir: müşteri, tedarikçi, atölye, rafineri, banka, hatta "DEVİR" gibi teknik hesaplar. Kuyumcu Selim'e mal satınca onun hesabına yazarız; Toptancı Yusuf'tan mal alınca onun hesabına yazarız. Aynı firmanın iki şubesi ya da iki ayrı hesabı tek "ana kart" altında toplanabilir (ortak limit, vade, vergi bilgisi).

Seviye 3 — ERPGOLD

Master (ana) kart — Hesap Yonetimi ▸ Cari Hesaplar ▸ Master (SCR-FRMCARIKARTEKLE): Unvan ve Hesap Turu (Müşteri / Tedarikci / Sube) zorunlu; vergi bilgileri, Limit + birim + Limit Aşımı davranışı, Vade + Vade Aşımı davranışı (Uyar ve Durdur / Uyar ve Devam Et / Yöneticiden Onay İste), kart şifresi. ÖRNEK ALTIN, Kuyumcu Selim için bir ana kart açar (limit 500 g HAS, "Uyar ve Devam Et"); diğerleri doğrudan hesap olarak açılır.

Hesap — Hesap Yonetimi ▸ Cari Hesaplar ▸ Hesaplar ▸ YENİ KAYIT (SCR-FRMCARIHESAPEKLE): Hesap Adı tek zorunlu bilgidir; Ana Hesap seçilince vergi/limit/vade/tür ana karttan dolar; Hesap Turu (Musteri / Yetkili Kurum / Banka / Diger / Masraf / Merkez Bankasi), Grup Kodu, Kategori; belge (e-belge) için Vergi No (10 hane) ya da TC No (11 hane); Takoz Has Isc, Ons Carpan, Musteri Temsilcisi; Durum → Kayıt → Ctrl+F5.

Hesap Adı Hesap Turu Ana Hesap Not
KUYUMCU SELİM Musteri SELİM KUYUMCULUK (ana kart) Cari çalışır; has borcu
DÖVİZ NURİ Musteri Döviz müşterisi; USD alacağı
TOPTANCI YUSUF Musteri (tedarikçi de aynı tür) Has alacağı
ATÖLYE KEMAL Musteri Fason üretim; Bölüm 7
RAFİNERİ KUZEY Musteri Hurda gönderimi
DEVİR Devir (tür 5) Açılış stoğu ve bakiyeleri için teknik hesap (BR-DEVIR-001)

UYARI "Hesap seçildi ama işlem düğmeleri görünmüyor": hesap pasif, zorunlu evrak eksik ya da şifreli hesap (H-043, PB-044). Perakende müşterinin TC/vergi numarası e-belge için gerekir; eksikse fatura gönderimi entegratörde takılır (PB-017).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Hesaplar (TECHNICAL_WIKI/TABLES/TBL-CARI.HESAPLAR.md; 27.686 satır, 127 DB okuyan nesne, skor 22,67): 57 kolon — HesapAdi, TicariUnvan, HesapTuru (0 Bakiye/Müşteri · 1 Yetkili Kurum · 2 Banka · 3 Diğer · 4 Masraf · 5 Devir), SubeId, KartId (ana kart), VergiDairesi, VergiNo, TcNo, DosyaKategori, HukukiKod, Limit, LimitBirimId, SanalHesap, TakozHasIsc, TakozGumIsc, OnsCarpan, FixingDiscount (etiket "Fixing Price" — CTR kitapçık §8.5), Temsilci1/2, IsActive, PasifDescription. Cari.Kartlar (TBL-CARI.KARTLAR.md; 8 satır): Unvan, HesapTuru (Müşteri/Tedarikci/Sube), Limit, Vade, LimitAsimi, VadeAsimi, Password. Hesap kartında Sube oturum şubesine kilitlidir: her şubenin hesapları ayrıdır (TERM-HESAPTYPE-CARIHESAP-SUBE). Bakiye Cari.BakiyeIslem (HesapId + BirimId) üzerinden; hesap silinmez, pasife alınır.

18.7 Pazartesi sabahı açılış — DEVİR hesabı

Buraya kadar tanımlar yapıldı ama kasa hâlâ boş, bakiyeler sıfır. Şimdi Bölüm 1 §1.5'teki başlangıç durumunu programa yazacağız. Bu, ERPGOLD'un en az kullanılan ama hatası en pahalı işlerinden biridir (PRB-DEVIR-000: 79 çağrı, ortalama kapanış 214 saat); gerçek hayatta yalnız destek/yönetici yapar.

Seviye 1 — Çok basit

Yeni bir deftere geçiyorsun. Eski defterdeki son sayfayı yeni defterin ilk sayfasına yazman gerekir: "kasada şu kadar para, şu kadar altın var; Selim bana şu kadar borçlu, Nuri'ye şu kadar borçluyum." Bu ilk sayfaya devir denir. Ama dikkat: bu satırlar bir alışveriş değildir; kimse bir şey almadı, satmadı. Sadece "durum bu" diyorsun.

Seviye 2 — İşletme mantığı

"Devir" iki ayrı şeydir (SCN-DEVIR.md):

  1. Veritabanı devri (yıl sonu): eski dönem arşivlenir, program bakiye ve stoğun son durumunu yeni yıla açılış satırı olarak kendisi taşır (WF-YIL-SONU-DEVIR, SCR-FRMDEVIR). ÖRNEK ALTIN'ın bugünkü konusu bu değil; Bölüm 7'nin sonunda anılır.
  2. Açılış stoğu ve bakiyesi girişi (ilk kurulum): program öncesi kasada duran mal ve para ile müşteri borç/alacakları elle girilir. Bunun için DEVİR adlı özel bir cari hesap kullanılır: mal DEVİR hesabından kasaya "girmiş" gibi kaydedilir; ama DEVİR gerçek bir müşteri olmadığı için bakiyesinin sonunda sıfır kalması istenir.

Açılışta üç ayrı şey girilir ve üçünün defter etkisi farklıdır:

Ne Örnek İstenen etki
Kasadaki mal ve para 2.000 g has, 500.000 TL… Stok artsın; DEVİR bakiyesi değişmesin
Müşterinin bize borcu Kuyumcu Selim 150 g HAS Selim'in bakiyesi borçlu olsun; stok değişmesin
Bizim müşteriye borcumuz Döviz Nuri 5.000 USD, Toptancı Yusuf 400 g HAS Nuri ve Yusuf'un bakiyesi alacaklı olsun; stok değişmesin

Seviye 3 — ERPGOLD

A — Cari açılış bakiyeleri: BORÇ İŞLEMLERİ (SCR-IFBORC, WF-BORC-ISLEMLERI, işlem kodu 999 DEVIR / B). Bu ekran, karşılığında hiçbir mal, döviz ya da hizmet hareketi olmayan saf cari düzeltme kaydı yazar: stok seçilmez, miktar girilmez; yalnız KODU (borç kategorisi), TUTAR ve BİRİM vardır.

Deniz, Cari İşlemler'de hesabı seçer, tarihi devir günü (Pazartesi) yapar, TAMAM; alt şeritten Borc İşlemleri:

Hesap İŞLEM KODU TUTAR BİRİM Sonuç (bakiye kartı)
KUYUMCU SELİM BORÇ (HESAP ÇIKIŞ) DEVİR 150 HAS Selim 150 g HAS borçlu
DÖVİZ NURİ ALACAK (HESAP GİRİŞ) DEVİR 5.000 USD Nuri 5.000 USD alacaklı
TOPTANCI YUSUF ALACAK (HESAP GİRİŞ) DEVİR 400 HAS Yusuf 400 g HAS alacaklı

Her satır F2 ile kaydedilir; birim başına ayrı satır açılır; AÇIKLAMA'ya "Açılış devri" yazılır (denetim için). Gerçek veride bu yol doğrulanmıştır: 999 kodlu satırların %99'u bakiye defteri üretir, %0'ı stok üretir (TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md: V2 507 satır, KUYUMCU 14.742 satır).

B — Kasa açılış stoğu: DEVİR hesabından GİRİŞ. Dokümanın anlattığı yol (WF-ACILIS-STOK-DEVIR-HESABI, PB-035, PROC-166): Cari İşlemler ▸ hesap DEVİRMADEN / HURDA / NAKİT ekranı ▸ ISLEM = GİRİŞ, tip = MAHSUP, STOK KODU, MİKTAR ▸ F2; sonra Maden/Nakit Stok Listesi kontrol edilir. Amaç: stok artsın, DEVİR hesabına bakiye yazılmasın.

Ekran STOK KODU MİKTAR MİLYEM Beklenen
MADEN HAS 995 2.000 g 0,995 Maden stoğu +2.000 g (1.990 g has)
MADEN 22 AYAR BILEZIK 1.500 g 0,916 +1.500 g (1.374 g has)
MADEN 14 AYAR 800 g 0,585 +800 g (468 g has)
HURDA HURDA 300 g 0,700 +300 g (210 g has)
NAKİT TL 500.000 Nakit stoğu +500.000 TL
NAKİT USD 100.000 +100.000 USD
NAKİT EUR 20.000 +20.000 EUR

CTR CTR-004 / CTR-005 — MAHSUP tipi stok üretir mi? Doküman (A-Z 1.8, 2.4; süreç dokümanı) "MAHSUP → bakiye yok, yalnız stok" der ve açılış stoklarını bu tiple girdirir. Kod ve veri ise farklı söyler: tetikleyici tip 12 (MAHSUP) için hiçbir defter üretmeden çıkar; canlı veride 1.581 MAHSUP satırının 0 bakiye ve 0 stok hareketi vardır. Kuyumcu kurulumunda MAHSUP tipi hiç kullanılmamış (0 satır). Kaynak hiyerarşisine göre (kod > doküman) MAHSUP ile girilen açılış stoğu stok listesinde görünmeyecektir; resmi stok listesinin bu satırları hangi yoldan aldığı kaynakta görülemedi (CTR-005). Kitap iki tarafı da verir; müşteriye "MAHSUP ile gir, stok görünür" deme; önce ../ERPGOLD_WIKI/00_Governance/CONTRADICTIONS.md#ctr-004 oku ve canlı kurulumda dene.

GAP GAP-BOOK-04-01: Kuyumcu kurulumunda açılış stoğunun fiilen hangi tiple girildiği belgelenmemiş. İşlem matrisinde KUYUMCU'da 1 MADEN · 0 NORMAL · BakiyeId=0 226 satır ve 2 HURDA · 0 NORMAL · BakiyeId=0 36 satır stok üretip bakiye üretmiyor — açılış girişinin bu yolla (NORMAL tip, bakiye tarafı boş) yapılmış olması mümkündür ama doğrulanmadı. Kitap bunu öneri olarak değil, gözlem olarak kaydeder.

Alternatif (dokümanın "eski yöntem" dediği): stoklar NORMAL tiple girilirse stok artar ama DEVİR hesabı alacaklı kalır; bu durumda B (Borç İşlemleri) ile aynı tutar ters yönde girilip DEVİR bakiyesi sıfırlanır (WF adım 3, H-115). Sonuç kontrolü: Stoklar ▸ Maden/Nakit Stok Listesi = fiziksel sayım; DEVİR hesabı bakiyesi = 0.

ÖRNEK ALTIN A.Ş. Pazartesi 09:30. Deniz, ÖRNEK ALTIN'ın MERKEZ/ANAKASA'sında DEVİR hesabını seçmiş, 7 stok satırını ve 3 borç satırını girmiş. Ayşe Maden Stok Listesi'ni açıyor: HAS 995 2.000 g, 22 AYAR 1.500 g, 14 AYAR 800 g, HURDA 300 g; Nakit Stok Listesi: 500.000 TL, 100.000 USD, 20.000 EUR. Kuyumcu Selim'in bakiye kartında HAS sütununda 150 borç; Nuri'de USD 5.000 alacak; Yusuf'ta HAS 400 alacak. DEVİR hesabının bakiyesi sıfır. Program artık işe hazır; Bölüm 5'te Toptancı Yusuf'tan 1.000 g has alacağız.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

A (Borç İşlemleri): Cari.Islemler satırı — IslemKodu=999 (DB kod tablosu Sistem.CariIslemKodu Id=999 'DEVIR' Kod 'B'; kod enum tIslemKodu.BORC=999 — CTR-039), IslemTuru combo SelectedIndex 0/1 doğrudan yazılır (GİRİŞ/ÇIKIŞ; ALACAK/BORÇ enum değeri üretilmez — BR-YON-COMBOINDEX-001), IslemTipi=0, Kodu='DEVİR' (metin), Tutar=Fiyat=TUTAR, BirimId, Miktar=0, StokId boş; Save miktar kontrolünden BORC muaf, limit kontrolü uygulanmaz (BR-GENEL-004). Tetikleyici: Tutar<>0 ve IslemTipi<>1Cari.BakiyeIslem para bakiyesi satırı; StokId boş → stok satırı yok. Bakiye işareti: Cari.BakiyeIslem.Bakiye artı = müşteri borçlu, eksi = alacaklı; raporlar −1 ile çarpar (SYSTEM_OVERVIEW.md) — ekranda ALACAK/BORÇ etiketine güven, işareti SQL'de yorumlarken bu kurala bak.

B (DEVİR hesabından stok girişi): Cari.IslemlerHesapId=DEVİR (Cari.Hesaplar.HesapTuru=5), IslemKodu 1/2/3, IslemTuru=0, IslemTipi=12 (doküman) → tetikleyici AcceptTransaction tip 11/12'de defter üretmeden çıkar (satır ~323; BR-TIP-004); yalnız Cari.History 'Yeni Kayıt'. Aynı satır IslemTipi=0 ile girilirse Stok.StokHaraketleri (StokTipi 1 maden / 2 nakit, KasaId, Miktar, Has=Miktar×Milyem, AuMilyem 0 ise 1) ve DEVİR hesabına Cari.BakiyeIslem satırı üretilir (TECHNICAL_WIKI/FLOWS/FLOW-IFMADEN.md, FLOW-IFNAKIT.md). Maliyet kolonu yalnız işçilik TL'dir; metal maliyeti günün kuruyla (CTR-SEC-MALIYET-01).

Yıl sonu devri (karşılaştırma için): FrmDevirDevir.DevirYap: tam yedek → DB_yyyyMMdd arşiv olarak geri yükle → Cari.Islemler sayı doğrulama → arşivde şubeler pasif → canlıda 5 tablo TRUNCATE (Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari) → Cari.BakiyeIslem'e hesap+birim başına IslemId=−1 açılış satırı, Stok.StokHaraketleri'ne yalnız StokTipi IN (1,2) son durum → ERPGLOBAL.dbo.Company'ye arşiv adı. Transaction yok (TD-29); takoz ve diğer stok tipleri açılışa taşınmaz (devir öncesi sıfırlanmalı); IslemId taşıyan Sistem.SilAciklama, Stok.Mutabakat, Cari.AccountLog boşaltılmaz (GAP-DEVIR-SCOPE, KUYUMCU'da %55–66 öksüz). FrmDevirGiris ekranının işlevi kaynakta belgelenmemiş (GAP-SCR-FRMDEVIRGIRIS-AMAC; yalnız Bakiye.GetBakiye okuduğu ve VwBakiye ızgarasında hesap bazlı bakiye düzenlediği görülüyor) — kitap bu ekranı adım olarak vermez.

18.8 Kurulum kontrol listesi

Deniz kurulumu bitirmeden şu listeyi geçer (H-169 Pazartesi rutini + tanımlama playbook'ları):

SIK YAPILAN HATALAR

Yeni çalışan: Şirket/şube/kasa sırasını atlayıp doğrudan kullanıcı açmaya çalışmak (şube listesi boş). Tanımladıktan sonra Ctrl+F5 yapmamak ("listede yok"). Birim ile nakit kartını aynı şey sanmak. "Kripto" ya da "bulut ERPGOLD" gibi web ifadelerini ürün özelliği sanmak (CTR-WEB-01/02).

Müşteri: Yeni personele kullanıcı açıp şube-kasa-grup satırı eklememek (H-010). Yeni döviz cinsini birim olarak açıp nakit kartını ve kurunu girmemek (H-056, PB-036). Yanlış kasadan işlem girip DÜZELT ile kasa değiştirmeye çalışmak (H-113). Aynı birimi iki kez tanımlamak (H-023). Açılış stoğunu NORMAL tiple girip DEVİR hesabını alacaklı bırakmak (PB-035, H-115).

Destek personeli: Ticket'ı yanlış ürüne açmak (kur sorunu EDS'de, MT4 sorunu FX Trader'da). MAHSUP ile açılış girişi önerip "stok görünmüyor" çağrısı almak (CTR-004). Bakiye şikâyetinde 10 adımı atlayıp toptan onarım aracını düşünmek (TD-30 — asla). Yetki değişikliğinden sonra kullanıcıyı yeniden giriş yaptırmamak. Devir öncesi takoz/çeşni stoğunu sıfırlatmamak (devir sonrası takoz −1).

Geliştirici: Sistem.Birimler'i "20 satırlık küçük tablo" sanıp değiştirmek (100 DB nesnesi okur; TECHNICAL_WIKI/IMPACT/). Bir kurulumda gözlenen davranışı çekirdek kural sanmak (V2 %1,4 / KUYUMCU %60,3 — CTR-038). POS.*/KYC.* şemalarını ürün özelliği olarak anlatmak (GENERATED_PROPOSAL). BakiyeIslem'e elle yazmak (tetikleyici sil–yeniden yaz ile ezer).


Bölüm sonu sınavı

Kolay (5)

  1. AIFASOFT ile ERPGOLD arasındaki ilişki nedir?
  2. Web sitesi ERPGOLD stok tipleri arasında "kripto" sayıyor. Kitap bu konuda ne der ve neden?
  3. ERPGOLD'un iki canlı kurulum profili hangi iş kollarıdır?
  4. ERPGOLD'a girişte sırasıyla hangi dört şey seçilir?
  5. Bir tanım (birim, kart, hesap) kaydedildikten sonra listede görünmüyor. İlk yapılacak şey nedir?

Orta (5)

  1. "Stok kasa seviyesindedir, cari bakiye değildir." Bu cümle ÖRNEK ALTIN'da ne anlama gelir? Bir örnekle açıkla.
  2. Şube kaydedilince neden hemen bir kasa oluşur? Bu kasaya ne ad verilir?
  3. Mehmet'in kullanıcı satırında Lock işaretli. Bu ne yapar, ne yapmaz?
  4. "Birim" ile "nakit kartı" arasındaki fark nedir? USD birimi var ama nakit kartı yoksa hangi uyarı alınır?
  5. Müşteri "kurlar otomatik gelmiyor" diyor. Ticket hangi ürüne açılır; ERPGOLD tarafında hangi ekran ve tablo etkilenir?

Senaryo (5)

  1. Ayşe, ŞUBE-2 için yeni bir kasiyer aldı. Kullanıcıyı açtı, şifre verdi; kasiyer giriş ekranında şube seçemiyor ve "Lütfen bilgileri Eksiksiz Giriniz." alıyor. Ne olmuş, nasıl düzeltilir?
  2. Deniz açılış stoğunu MAHSUP tipiyle girdi; Maden Stok Listesi boş. Kaynak hiyerarşisine göre ne olmuş olabilir? Müşteriye ne söylersin, ne söylemezsin?
  3. Toptancı Yusuf'a program öncesinden 400 g HAS borcumuz var. Bunu hangi ekranla, hangi alanlarla girersin? Stok ve bakiye açısından ne beklenir?
  4. Ali, Kuyumcu Selim'in bakiyesinin "yanlış" olduğunu söylüyor ve "SQL'den düzeltelim" diyor. Destek personeli olarak yanıtın ne olur; hangi adımları izlersin?
  5. Ayşe web sitesinde "bulut tabanlı erişim" okumuş; "tarayıcıdan gireyim" diyor. Kaynaklara dayanarak ne dersin? Hangi ürün/entegrasyonu anlatırsın?

Cevap anahtarı

  1. AIFASOFT, ERPGOLD'un üreticisidir; ERPGOLD üçüncü taraf değil, şirketin kendi ürünüdür. Kaynak: ../ERPGOLD_WIKI/01_AIFASOFT/AIFASOFT.md.
  2. Kitap "sitede böyle yazıyor" der; kaynak kod ve veritabanında kripto stok tipi yoktur (Stok.Maden/Nakit/Takoz/Hizmet/Emtia/Model/Tas/Pirlanta). Kaynak hiyerarşisinde kod/DB web'den üsttedir → CTR-WEB-02. Kaynak: _data/aifasoft_web.md, 04_Modules/MOD-STOK.md.
  3. Döviz bürosu / yetkili müessese (ERPGOLDV2) ve kuyumcu + rafineri / ayar evi (ERPGOLDV2_KUYUMCU). Kaynak: INST-ERPGOLDV2.md, INST-KUYUMCU.md.
  4. Şirket Kodu → Kullanıcı Adı → Şifre → Şube; ardından GİRİŞ. Kaynak: SCR-FRMLOGINFORM.
  5. Ctrl+F5 Sistem Yenile (ya da programı yeniden açmak): tanım tabloları belleğe bir kez yüklenir. Kaynak: PB-039, SCR-FRMMAINFORM.
  6. Stok listeleri kasa bazlıdır: Mehmet'in GISE kasasındaki USD ile ANAKASA'daki USD ayrı sayılır. Ama Kuyumcu Selim'in bakiyesi tektir; hangi kasadan işlem yapıldığı yalnız izdir (Bakiye.GetBakiye KasaId kullanmaz). Kaynak: kitapçık §3.1, SCR-FRMKASAEKLE, TERM-KASA.
  7. Tetikleyici yeni şubeye otomatik ANAKASA açar (BR-KASA-005, Sistem.CreateKasa); böylece kasasız şube olmaz — kasasız şubede "Sube,Kasa veya Hesap Seçili Değil" alınırdı. Kaynak: SCR-FRMSUBEEKLE, BR-KASA-005.
  8. Lock, işlem ekranlarında KASA kutusunu kilitler; Mehmet yanlış kasaya işlem giremez. Girişe engel değildir; yetkileri değiştirmez (UserDetails.IsLockedUser.Lock, BR-KASA-001). Kaynak: SCR-FRMKULLANICIEKLE.
  9. Birim "paranın tarafı"dır (bakiye sütunu, kur satırı, Sistem.Birimler); nakit kartı kasadaki fiziksel para stoğudur (Stok.Nakit, stok defterinde StokTipi=2). Kart yoksa "«USD» AnaBirimine Ait Nakit Stokgu Bulunamadı!" (H-056). Kaynak: SCR-FRMNAKITEKLE, TERM-BIRIMID-PARA-TARAFI.
  10. Ticket EDS'e açılır (kur dağıtım uygulaması, "EDS" 1.227 çağrı). ERPGOLD tarafında kur listesi Sistem.Kurlar; geçici çözüm Kur Giriş Ekranı'nda elle giriş ya da Kopyala (PB-061). Kaynak: URUN_AILESI.md, INT-KUR-EDS.md, SCR-FRMKURGIRISEKRANI.
  11. Kullanıcı kaydı var ama şube-kasa-grup satırı (Sistem.UserDetails) eklenmemiş; şube listesi bu satırlardan dolar. Kullanıcı Tanımlama'da kullanıcı açılır, alt Sube bölümünde ŞUBE-2 + ANAKASA + grup seçilip Ekle ile satır eklenir; kasiyer yeniden giriş yapar. Kaynak: H-010, PB-009, SCR-FRMKULLANICIEKLE.
  12. Doküman MAHSUP'un stok ürettiğini söyler ama tetikleyici tip 12 için operasyonel stok/bakiye kaydı üretmez ve gerçek veride MAHSUP satırlarının stok hareketi yoktur (CTR-004); kod > doküman olduğundan stok listesinin boş kalması beklenen davranıştır. Müşteriye "program bozuk" ya da "MAHSUP ile girince görünür" denmez; CTR-004/005 okunur, kurulumda alternatif yol (NORMAL giriş + Borç İşlemleri ile DEVİR bakiyesini sıfırlama) ya da yazılımcıya yükseltme değerlendirilir. Kaynak: CONTRADICTIONS.md#ctr-004, SCN-DEVIR.md.
  13. Cari İşlemler ▸ TOPTANCI YUSUF ▸ Borç İşlemleri: İŞLEM = ALACAK (müşteri alacaklanır), KODU = DEVİR, TUTAR 400, BİRİM HAS, AÇIKLAMA "Açılış devri", F2. Beklenen: Yusuf'un bakiye kartında HAS 400 alacak; stok değişmez (IslemKodu 999 satırlarının %0'ı stok üretir). Kaynak: WF-BORC-ISLEMLERI, SCR-IFBORC, FLOW-ISLEM-MATRISI.
  14. "SQL'den bakiye düzeltilmez." Bakiye türetilmiş defterdir; Cari.Islemler satırı düzeltilince tetikleyici defteri yeniden üretir. PB-028'in 10 adımlık teşhisi izlenir: işlemin IslemTipi (peşin bakiye üretmez), BakiyeId, birim, tarih aralığı, iptal/düzeltme geçmişi (Cari.History), mutabakat işaretleri; gerekirse hesap adı, tarih aralığı, fiş no, İşlem Geçmişi ekran görüntüsü ve defter satırlarıyla yazılımcıya yükseltilir. Toptan onarım aracı asla çalıştırılmaz (TD-30). Kaynak: PB-028, BR-DEFTER-URETIMI, TD-30.
  15. Kaynak kodda ERPGOLD WinForms + SQL Server'dır; tarayıcıdan çalışan bir sürüm yoktur. Web sitesindeki "bulut" ifadesi muhtemelen AIFASOFT'un RDP sunucusunda barındırma (uzak masaüstü ile bağlanma) anlamındadır (INT-RDP-SUNUCU); ayrıca ERPMobil (mobil uygulama) ve WebOfis (ERP içi tarayıcı) vardır ama bunlar "tarayıcıdan ERPGOLD" değildir → CTR-WEB-01. Ayşe'ye RDP erişimi anlatılır. Kaynak: _data/aifasoft_web.md, INT-RDP-SUNUCU.md, INT-ERPMOBIL.md.

Bunu anladıysan devam et

5. ERPGOLD İşlem Ekranı

Önceki bölümlerde kuyumcunun ve döviz bürosunun ne iş yaptığını, "has", "milyem", "kur", "bakiye" gibi kavramların ne anlama geldiğini öğrendin. Bu bölümde o kavramların ERPGOLD'da nereye yazıldığını öğreneceksin. ERPGOLD'un kalbi tek bir ekrandır: Cari İşlemler. Firma sahibi Ayşe Demir'in "bugün ne oldu?" sorusunun cevabı, satış personeli Zeynep Aksoy'un tezgâhta girdiği her satır, muhasebeci Ali Çelik'in aylık ekstresi, destek personeli Deniz Yılmaz'ın "bakiye tutmuyor" çağrısı — hepsi bu ekrandan geçer.

Bu bölümün sonunda şunları yapabiliyor olmalısın:

  • Bir hesap seçip doğru işlem ekranını açmak; ekrandaki her alanın ne olduğunu, neden doldurulduğunu ve boş bırakılırsa ne olacağını söylemek.
  • F2 - KAYIT'a basıldığında arka planda hangi kayıtların oluştuğunu (işlem satırı → stok defteri → bakiye defteri → rapor) adım adım anlatmak.
  • "Stok azaldı ama bakiye arttı", "peşin yaptım, bakiye değişmedi", "silinen işlem raporda yok" gibi soruları sebep-sonuç ile açıklamak.

KAYNAK — Bu bölümün omurgası: ekran makaleleri ../ERPGOLD_WIKI/05_Screens/SCR-IFTRANSACTION.md, SCR-ISCREEN.md, SCR-IFMADEN.md, SCR-IFNAKIT.md, SCR-IFHURDA.md; tetikleyici ../ERPGOLD_WIKI/08_Database/Triggers/TRG-CARI.ACCEPTTRANSACTION.md (SQL metni makalede satır numaralıdır, aşağıdaki "satır" atıfları o makaleye aittir); kural ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md; gerçek veri matrisi TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md; kitapçık ERPGOLD_Egitim_Kitapcigi.md (eğitim kitapçığı) §3.3–3.5, §4.1, §5, §8.5. Örnek sayılar ÖRNEK ALTIN A.Ş.'ye aittir; güncel kur değildir.


5.1 Tezgâh: Cari İşlemler ekranı nedir?

Seviye 1 — Çok basit

Mahalle bakkalı Ali'nin bir defteri var. Defterin her sayfası bir müşteriye ait: "Mehmet" sayfası, "Ayşe Teyze" sayfası. Mehmet ekmek alıp parasını sonra vereceğini söylediğinde Ali, Mehmet'in sayfasına bir satır yazar: "3 Mart — 2 ekmek — 30 TL — borç". Mehmet parayı getirince yeni bir satır: "5 Mart — 30 TL ödedi". Sayfanın altında toplam: Mehmet ne kadar borçlu?

ERPGOLD'daki Cari İşlemler ekranı tam olarak bu defterdir. Farkı: sayfayı sen açarsın (hesap seçersin), satırı bir form doldurarak yazarsın (işlem ekranı), toplamı program hesaplar (bakiye kartı) ve — bakkal defterinden farklı olarak — aynı satır rafta ne kaldığını da otomatik günceller (stok).

Olmasaydı ne olurdu? Her müşteri için ayrı kâğıt, her akşam elle toplama, "bu bilezik kime gitti?" sorusuna cevap yok. Kuyumculukta bir satırın değeri milyonlarca TL olabilir; bir satırı yanlış yazmak bir haftalık kârı götürür.

Seviye 2 — İşletme mantığı

Kuyumcu tezgâhında her olay iki tarafı olan bir alışveriştir: mal tarafı (altın, döviz, hurda, takoz — ne el değiştirdi?) ve para tarafı (karşılığında ne alındı/verildi?). Üç soru her zaman sorulur:

  1. Kimle? — Hangi müşteri/tedarikçi (cari hesap). Perakende müşteri için de bir "hesap" vardır ama o hesaba borç yazılmaz, işlem peşindir.
  2. Ne yönde? — Mal bize mi girdi (ALIŞ/GİRİŞ), müşteriye mi gitti (SATIŞ/ÇIKIŞ)?
  3. Bedel nasıl kapandı? — Peşin mi (kasa hareket etti, hesaba borç yazılmadı), cari mi (hesaba yazıldı, kasa dokunulmadı)?

ÖRNEK ALTIN A.Ş.'de Zeynep Aksoy salı günü Kuyumcu Selim'e 600 g 22 ayar bilezik veriyor; Selim parayı sonra ödeyecek. Bu üç sorunun cevabı: Kuyumcu Selim — ÇIKIŞ (mal ona gitti) — cari (hesabına yazıldı). Aynı gün gişede Mehmet Kaya tanımadığı bir müşteriye 1.000 USD satıp TL alıyor: perakende — ÇIKIŞ — peşin.

Seviye 3 — ERPGOLD

Ekran şuradan açılır: ANA MENÜ ▸ Hesap Yonetimi ▸ Cari Hesaplar ▸ Cari İşlemler (kısayol Ctrl+F yeni bir hesap sekmesi açar). Ekran üç parçadan oluşur:

Parça Ne gösterir Ne yaparsın
Hesap seçim paneli (üst) Hesap Adı, Kasa, Tarih, "Fiş :" etiketi Hesabı seçer, kasa ve tarihi kontrol eder, TAMAM (Enter) dersin
Bakiye kartı (üst sağ) Seçili hesabın birim birim bakiyesi (HAS, TL, USD…), ALACAK/BORÇ sütunları, Son İşlem Tarihi, Son Mutabakat Tarihi, Ortalama Bakiye, Puan Yalnız okursun; her kayıttan sonra kendiliğinden yenilenir
İşlem listesi + şerit (alt) O hesabın işlem satırları (İşlem Listesi, Log, Şüpheli İşlemler sekmeleri) ve sağda işlem düğmeleri: 0 - LİSTE · 1 - TAKOZ G · 2 - TAKOZ C · 3 - MADEN · 4 - HURDA · 5 - NAKIT · 6 - CEVIR · 7 - HIZMET · 8 - VADELI · 9 - TAS · P - PIRLANTA · M - MODEL · G - GENEL · V - VIRMAN · F - FATURA · E - EMTIA · C - CESNI · X - PARITE Düğmeye tıklar ya da klavyeden harfi/rakamı basarsın; ilgili işlem ekranı listenin yerine açılır

Alt çubukta DUZELT · IPTAL · Iptal (FisNo) · YAZDIR · LISTELE ve tarih aralığı kutuları vardır; [F1] Fiş [F2] Son Durum [F3] Takoz Çık Extresi [F4] Hesap Extresi [F5] Takoz rapor kısayolları da buradadır. Hangi düğmelerin görüneceği kullanıcı grubunun yetkisine bağlıdır: yetkin yoksa düğme yoktur ve mesaj çıkmaz (bkz. 5.10).

Açılan her işlem ekranının altında iki ortak düğme vardır: F2 - KAYIT ve ESC - KAPAT. Terazi bağlıysa gramı teraziden okuyan onay kutusu ve şifreli hesaplar için kart şifresi de ortak çerçevededir.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Ekran üç sınıf katmanından oluşur (kitapçık §4.1; ../ERPGOLD_WIKI/09_CodeArchitecture/Classes/CLS-ISCREEN.md):

iScreen                      Cari İşlemler tezgâhı (1.144 satır, 117 kontrol)
  ├─ iHesapControl           hesap arama/seçme; TAMAM → kasa listesi ve kasa kilidi (BR-KASA-001)
  ├─ iBakiyeControl          bakiye kartı; Bakiye.GetBakiye → ALACAK/BORÇ sütunları (BR-YON-007)
  └─ iFTransaction           işlem ekranı kapsayıcısı; 18 iFormBase türevini üst üste barındırır,
       │                     iScreen'in düğmesine göre yalnız birini gösterir (Show → ShowTransaction)
       └─ iFormBase          ortak iskelet: F2 kayıt, F5 yenile, F3 karşı hesap/transfer, Esc, terazi, şifre
            └─ iFMaden, iFHurda, iFNakit, iFDoviz, iFVadeli, iFCevir, iFHizmet, iFVirman,
               iFTakozGiris, ifTakozCikis, iFCesni, iFTas, iFPirlanta, iFModel, iFGenel,
               iFEmtia, iFBorc, iFSeriIslem
  • Seçili hesabın kimliği (HesapId, KasaId, Tarih, FisNo, ProjeId, KarsiHesapId, FaturaSeri/No, HesapType=0) iTransactionInfo nesnesiyle bütün alt ekranlara dağıtılır (../ERPGOLD_WIKI/09_CodeArchitecture/Classes/CLS-IFTRANSACTION.ITRANSACTIONINFO.md).
  • Alt ekranların InsertTransaction / UpdateTransaction / CloseTransaction olayları iFTransaction üzerinden iScreen'e taşınır; iScreen ListRefresh ile listeyi ve bakiye kartını yeniler (iScreen.vb:933-959).
  • Düğme görünürlüğü iScreen.InitPermission → kullanıcı grubu bayrakları (Maden, Nakit, Takoz, IslemDuzelt, IslemIptal, PesinKontrol, ShowBalance …) — ../ERPGOLD_WIKI/07_BusinessRules/BR-YETKI-001.md.
  • Her işlem ekranı DAO AIO.Cari.Islem (../ERPGOLD_WIKI/09_CodeArchitecture/Classes/CLS-CARI.ISLEM.md) üzerinden yalnız Cari.Islemler tablosuna INSERT/UPDATE yapar (Cari.Islem.vb:566, 857); geri kalan her şey tetikleyici işidir (5.6).

5.2 Hesap seçimi — işlem yapmadan önce

Seviye 1 — Çok basit

Bakkal Ali defterin hangi sayfasını açacağını bilmeden satır yazamaz. Mehmet'in ekmeğini Ayşe Teyze'nin sayfasına yazarsa iki kişi de haksız yere kızar. ERPGOLD'da da önce sayfa (hesap) açılır, sonra satır yazılır. Sayfa yoksa (müşteri ilk defa geliyorsa) önce sayfa açılır.

Seviye 2 — İşletme mantığı

Bir cari hesap; müşteri, tedarikçi, atölye, rafineri, banka ya da masraf kalemi olabilir. Hesabın şubesi vardır (MERKEZ'in müşterisi ŞUBE-2'de ayrı hesaptır), limiti olabilir ("bu müşteriye en fazla 500 g has açık verilir"), pasif olabilir (çalışmayı kestiğimiz müşteri), zorunlu evrakları olabilir (kimlik fotokopisi gelmeden işlem yok — döviz bürosunda mevzuat gereği). Bu bilgiler işlem ekranında değil, hesap kartında tutulur; işlem anında program kartı okur ve gerekiyorsa seni durdurur.

Seviye 3 — ERPGOLD

  1. Hesap Adı kutusuna adın bir kısmını yaz, listeden seç (ya da Ctrl+F ile yeni hesap sekmesi aç).
  2. Kasa kendiliğinden gelir: hesabın şubesindeki kasalar listelenir, senin tanımlı kasan seçilir. Kullanıcı kartında "Lock" işaretliyse kasa değiştiremezsin.
  3. Tarih bugünün tarihidir; geçmişe işlem gireceksen burada değiştirirsin. İşlem ekranının içindeki tarih kutusu başka bir şeydir (bkz. 5.5 "Tarih ≠ Vade").
  4. TAMAM (Enter): bakiye kartı dolar, "Fiş :" etiketinde sıradaki fiş numarası görünür, sağ şeritteki işlem düğmeleri yetkine göre açılır.

Hesap seçtin ama düğmeler görünmüyorsa üç ihtimal vardır: hesap pasif ("Hesap Pasif İşlem Yapamazsınız." / "Seçili Hesap Pasif (…)"), bağlı olduğu ana kart pasif ("Master Hesap Pasif"), ya da hesap şifreli (kart şifresi sorulur). Evrakı eksikse düğme görünür ama kayıt anında veritabanı seni durdurur: "BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR. ISLEM YAPAMAZSINIZ."

Hesap yoksa: Hesap Yonetimi ▸ Cari Hesaplar ▸ Hesaplar ▸ YENİ KAYIT (../ERPGOLD_WIKI/05_Screens/SCR-FRMCARIHESAPEKLE.md). Tek zorunlu bilgi Hesap Adı'dır; kayıttan sonra Ctrl+F5 (Sistem Yenile) yapılmazsa yeni hesap Cari İşlemler listesinde görünmez — "tanımladım ama listede yok" çağrılarının en sık sebebi.

BUNU KARIŞTIRMA — Kasa ≠ Cari. Kasa "para/mal fiziksel olarak nerede duruyor" sorusunun cevabıdır (MERKEZ kasası, gişe kasası). Cari hesap "kime ait / kim borçlu" sorusunun cevabıdır. Stok kasa bazında tutulur; cari bakiye kasaya bölünmez — Kuyumcu Selim'in borcu hangi kasadan işlem yapıldığından bağımsızdır. "Kasa seçimi yanlıştı, bakiye bozuldu" cümlesi bu yüzden yanlıştır; kasa seçimi stoğu etkiler, bakiyeyi değil (TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-KASAID.md).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Hesap seçimi iHesapControl.CmbHesap.AccountValidatediScreen.IHesapValidate (iScreen.vb:328); kasa listesi ve kilidi iHesapControl.vb:68-69 (../ERPGOLD_WIKI/07_BusinessRules/BR-KASA-001.md).
  • TAMAM'da fiş no boşsa -1 yazılır; ilk kayıtta Cari.Islem.GetNewFisNo = silinmemiş en büyük FisNo + 1 atanır ve aynı oturumdaki sonraki satırlar aynı numarayı alır (../ERPGOLD_WIKI/07_BusinessRules/BR-GENEL-002.md). Sayaç globaldir, kilit yoktur (yarış koşulu — ../ERPGOLD_WIKI/18_Glossary/TERM-FIS-FIS-NUMARASI.md).
  • Kayıt anında iki katmanlı koruma: DAO Cari.Islem.Save "Sube,Kasa veya Hesap Seçili Değil. İşlem Yapamazsınız." (Cari.Islem.vb:509); tetikleyici @SubeId=0 or @KasaId=0 or @HesapId=0 → "SUBE,KASA VEYA HESAP SECILMEDI. ISLEM YAPAMAZSINIZ?." ROLLBACK (TRG makalesi satır 284-289). Şube pasifse satır 196-202, evrak eksikse Cari.GetGerekliEvraklar ile satır 214-227.
  • Hesap kartı kolonları: Cari.Hesaplar (../ERPGOLD_WIKI/08_Database/Tables/TBL-CARI.HESAPLAR.md): IsActive, Limit/LimitBirimId, DosyaKategori, KartId (ana kart), TakozHasIsc

5.3 Fiş, satır, işlem numarası

Seviye 1 — Çok basit

Markette kasiyer sana bir fiş verir; fişin üstünde 5 ürün olabilir. Fiş bir kâğıttır, ürünler o kâğıttaki satırlardır. Bir ürünü iade edersen tek satır iptal olur, fiş yerinde durur.

Seviye 2 — İşletme mantığı

Kuyumcuda müşteri aynı anda hem bilezik alır hem eski küpesini bozdurur hem de üstünü TL öder. Bu tek bir "olay"dır ama üç ayrı satırdır: MADEN ÇIKIŞ, HURDA GİRİŞ, NAKİT GİRİŞ. Üçü aynı fiş numarasını taşır; müşteriye tek fiş yazdırılır.

Seviye 3 — ERPGOLD

Üç numarayı ayırt et:

Numara Ne Nerede görünür
Fiş No Aynı kayıt oturumunda girilen satırları gruplar. Hesap seçilip TAMAM dendiğinde "Fiş :" etiketinde sıradaki numara görünür; o hesapta ilk satırı kaydettiğin anda numara alınır, sonraki satırlar aynı numarayı alır. Hesabı değiştirip geri gelince yeni fiş açılır. İşlem listesi, [F1] Fiş yazdırma, Iptal (FisNo) düğmesi (fişin tüm satırlarını iptal eder)
İşlem No (Id) Her satırın kendi benzersiz numarası. DÜZELT ve İPTAL bu numara üzerinden çalışır. İşlem listesi, İşlem Geçmişi (Log)
RefNo Görünmez bir kimlik. İki hesaba birden yazılan işlemlerde (virman, F3 transfer, şubeler arası) iki satırı birbirine bağlar; iptalde "karşı işlem de iptal edilsin mi?" sorusu bu bağa bakar. Ekranda görünmez; teknik

PEKİ NEDEN?Neden bir fiş iki satır olur? Çünkü bazı olayların iki ayrı defter sayfasına yazılması gerekir. VİRMAN'da Selim'in 50 g has borcunu Atölye Kemal'e devrettiğinde Selim'in sayfasından düşmeli, Kemal'in sayfasına eklenmeli — bir satır tek sayfaya yazılır, o yüzden program iki satır yazar (biri açık hesaba, biri HESAP alanında seçilen karşı hesaba, ters yönde; aynı RefNo). PARİTE'de (müşteri EUR verip USD aldı) bir satır EUR SATIŞ, bir satır USD ALIŞ yazılır; ikinci satırın VaryantId'si birincinin Id'sidir. Tek satırla "iki para birden hareket etti" yazılamaz. Kaynak: ../ERPGOLD_WIKI/07_BusinessRules/BR-VIRMAN-002.md, BR-TIP-011.md, kitapçık §5.4.

BUNU KARIŞTIRMA — Fiş ≠ Satır. Fiş bir zarftır, satır zarfın içindeki kâğıtlardır. "Fişi iptal ettim" (Iptal (FisNo)) zarfın içindeki bütün satırları iptal eder; "işlemi iptal ettim" (IPTAL) tek satırı iptal eder. Bakiye ve stok satır başına hesaplanır; fiş yalnız gruplama ve yazdırma içindir. Veritabanında fiş diye ayrı bir tablo yoktur: Cari.Islemler.FisNo kolonunda aynı numarayı taşıyan satırlar "fiş"tir (TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-FISNO.md).


5.4 İşlem ekranları teker teker

Sağ şeritteki her düğme bir ürün grubu ekranı açar. Program bu grubu IslemKodu diye bir sayıyla saklar; ekrandaki düğme sırası ile bu sayı aynı değildir (VADELİ şeritte 8 numaradır, kodu 6'dır — kitapçık §3.3). Aşağıdaki tablo "hangi olayda hangi ekran" sorusunun cevabıdır:

Düğme Ekran Bu ekran ne için? (kullanıcı diliyle) IslemKodu Yön seçenekleri Mal defteri (stok) yazar mı? Hesap defteri (bakiye) yazar mı?
3 - MADEN SCR-IFMADEN İşlenmiş altın/gümüş: bilezik, zincir, çeyrek, gram altın. Adet ve/veya gram + milyem + işçilik 1 GİRİŞ / ÇIKIŞ Evet NORMAL'de evet, PEŞİN'de hayır
4 - HURDA SCR-IFHURDA Hurda ve külçe: kırık takı, 995 has külçe. İşçilik yok; gram × milyem = has 2 GİRİŞ / ÇIKIŞ Evet NORMAL'de evet, PEŞİN'de hayır
5 - NAKIT SCR-IFNAKIT Para: TL/USD/EUR tahsilat, ödeme, döviz alım-satımı 3 GİRİŞ / ÇIKIŞ Evet (kasa nakit stoğu) Tip PEŞİN değilse evet
X - PARITE SCR-IFDOVIZ İki döviz takası (USD ver, EUR al) — TL'ye uğramadan çapraz kurla 3 (iki satır) ALIŞ/SATIŞ bacakları Evet Tipe göre
8 - VADELI SCR-IFVADELI İleri tarihli teslim: bugün kurdan anlaştık, teslim sonra. Kasa o gün dokunulmaz 6 ALIŞ / SATIŞ Hayır Evet, iki birimde
6 - CEVIR SCR-IFCEVIR Hesaptaki bakiyeyi birimden birime çevir (USD borcu → has borcu) 4 ALACAK / BORÇ Hayır Evet, iki birimde
7 - HIZMET SCR-IFHIZMET Mal olmayan kalem: kargo, ayar evi ücreti, komisyon, kira. Miktar yok, yalnız tutar 5 GİRİŞ (gider) / ÇIKIŞ (gelir) Hayır Evet
V - VIRMAN SCR-IFVIRMAN İki cari hesap arasında bakiye aktarımı 11 GİRİŞ / ÇIKIŞ (iki satır) Hayır Evet, iki hesapta
1 - TAKOZ G / 2 - TAKOZ C SCR-IFTAKOZGIRIS / SCR-IFTAKOZCIKIS Külçe (takoz) giriş/çıkışı; ayar evi raporu, XRF, yan metaller, işçilik 0 GİRİŞ / ÇIKIŞ Evet (adet: +1/−1) Evet, çok satırlı (HAS/GUM/PLT/PLD/işçilik)
C - CESNI SCR-IFCESNI Ayar evinin takozdan kestiği numune gramının hesaba yazılması 14 ÇIKIŞ Hayır Evet (HAS + GÜMÜŞ)
9 - TAS SCR-IFTAS Pırlanta dışı taşlar; adet veya gram/karat 7 GİRİŞ / ÇIKIŞ (kod dalı yok — GAP) Tutar satırı
P - PIRLANTA SCR-IFPIRLANTA Pırlanta kartları; her zaman adetli, karat = kart karatı × adet 8 GİRİŞ / ÇIKIŞ Evet (adet) Tutar satırı
M - MODEL SCR-IFMODEL Numaralı tek parça mamul (bir yüzük); adet hep 1, ayar madenine bağlı 9 GİRİŞ / ÇIKIŞ Evet (ayar stoğuna) NORMAL'de evet
E - EMTIA SCR-IFEMTIA İkincil mal: gümüş külçe, ambalaj, promosyon; tek fiyat tek birim 13 GİRİŞ / ÇIKIŞ Tutar satırı
G - GENEL SCR-IFGENEL Diğer stok kalemleri; girişte alış fiyatı, çıkışta satış fiyatı 10 GİRİŞ / ÇIKIŞ / İADE Tutar satırı
Borç İşlemleri SCR-IFBORC Açık borç/alacak kaydı (devir, düzeltme farkı); stok yok 999 GİRİŞ / ÇIKIŞ Hayır Tutar satırı

Kaynak: ekran makaleleri ../ERPGOLD_WIKI/05_Screens/ altında aynı adlarla; kodlar TECHNICAL_WIKI/ENUMS/ENUM-ISLEMKODU.md; "yazar mı" sütunları tetikleyicinin dallarından (5.6) ve gerçek veri matrisinden. TAŞ (7), EMTİA (13), GENEL (10) için tetikleyicide özel stok dalı yoktur; bu ekranların stok listesine nasıl yansıdığı bu bölümde doğrulanmadı — GAP (bkz. _tools/book_findings_05.md).

Hangi kurulum hangi ekranı kullanır? Döviz bürosu (V2) işlemlerinin %83'ü NAKİT'tir; kuyumcu kurulumunda MADEN, VADELİ, NAKİT, VİRMAN, HURDA başı çeker; TAKOZ ve ÇEŞNİ düğmeleri kuyumcuya özgüdür (TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md). ÖRNEK ALTIN A.Ş. iki dünyayı da kullanır: tezgâhta MADEN/HURDA/TAKOZ, gişede NAKİT/PARİTE.

5.4.1 Üç ana ekranın karakteri

MADEN — "Kaç adet, kaç gram, hangi milyem, ne işçilik?" ekranıdır. Stok listesinde yalnız hurda olmayan aktif maden kartları çıkar. Kart sabit gramlıysa (çeyrek altın 1,75 g gibi) MİKTAR kilitlenir ve ADET × gram olarak dolar. Ekran her zaman ÇIKIŞ ile açılır (satış kuyumcunun en sık işi); alış için yönü elle GİRİŞ yaparsın, başlık yeşile döner.

HURDA — "Kaç gram, hangi milyem?" ekranıdır; işçilik yoktur. Açılışta 995 kodu ve ÇIKIŞ gelir. NORMAL tipte fiyat paneli gizlenir: müşteri hurda getirdi, hesabına has yazıldı, para konuşulmadı. PEŞİN tipte fiyat/tutar paneli açılır ve BİRİM listesi kasadaki paralar olur.

NAKİT — "Hangi para, ne kadar, hangi kurdan, karşılığı ne?" ekranıdır. Has, milyem, adet kavramı yoktur. KODU alanında para (USD), BİRİM alanında karşılık (TL) seçilir; ikisi aynıysa (USD ödeme, USD alacak) FİYAT 1'e kilitlenir. Döviz bürosunda günün %83'ü bu ekranda geçer.

5.4.2 NAKİT ekranı dört seviyede (döviz gişesi)

Seviye 1 — Çok basit

Ali'nin bakkalında bir de "para bozdurma" köşesi olsun: Mehmet 100 dolar getirir, Ali ona 4.000 TL verir (örnek kur 40,00). Ali'nin çekmecesinde artık 100 dolar fazla, 4.000 TL eksik vardır. Mehmet'e borç yazılmaz; alışveriş orada bitmiştir. Ama Ayşe Teyze "parayı yarın getireceğim, doları şimdi ver" derse Ali dolar verir, çekmecede dolar azalır, Ayşe Teyze'nin sayfasına 4.000 TL borç yazılır.

Seviye 2 — İşletme mantığı

Döviz gişesinde her para hareketi aynı dört soruyu taşır: hangi para (USD), kaç adet (miktar), karşılığı hangi para (TL), hangi kurdan (fiyat). Kur alışsatış mı? Müşteriden döviz alıyorsan alış kuru (düşük), satıyorsan satış kuru (yüksek); aradaki fark marjdır. Bir de vergi: döviz bürosunda satış üzerinden BSMV hesaplanır. Kuyumcu kurulumunda NAKİT, müşteri tahsilat ve ödemeleri için kullanılır: Selim 90.000 TL borcunu ödedi → NAKİT GİRİŞ NORMAL.

Seviye 3 — ERPGOLD

Alan Nakit ekranında anlamı Boş/yanlış kalırsa
ISLEM GİRİŞ = para bize geliyor (müşteri döviz bozdurdu ya da borcunu ödedi) · ÇIKIŞ = para müşteriye gidiyor (döviz sattık ya da ödeme yaptık) Ters seçilirse kasa ve bakiye ters işaretle yazılır (H-103)
Tip NORMAL (hesaba yaz) · PEŞİN (kasadan kasaya; hesaba yazma) · PARİTE (iki döviz, iki satır) · FATURA · MAHSUP · TRANSFER PEŞİN/NORMAL karışırsa H-104
KODU Hangi para (nakit stok kartı: USD, EUR, TL…) Boşsa F2 sessizce çalışmaz
MIKTAR O paradan kaç birim 0 ise "Miktar Girmelisiniz."
BIRIM Karşılık parası; PEŞİN'de listede seçilen döviz hariç kasa paraları; NORMAL'de tüm birimler, varsayılan stokun ana birimi Ana birimle aynıysa FİYAT=1 ve kilitli
FIYAT Kur (karşılık TL ise) ya da parite (karşılık başka döviz ise); pano kurundan gelir Pano kurundan ayardaki yüzdeden fazla sapıyorsa "Satım Fiyatınız … farklı" onayı
TUTAR MİKTAR × FİYAT (parite yönü "böl" ise MİKTAR ÷ FİYAT) 0 ise "Lütfen Tutar Giriniz."
BSMV Vergi tutarı (döviz bürosu) BSMV kolonu; kur farkı hesabında tutardan düşülür

PARİTE tipini seçip kaydedersen program iki NORMAL nakit satırı yazar: birinci satır seçilen döviz, ikinci satır karşı döviz ters yönde; ikisi de TL birimiyle ve aynı TL tutarla; ikincinin VaryantId'si birincinin Id'si. Karşı dövizin nakit stoğu tanımlı değilse "{Birim} AnaBirimine Ait Nakit Stokgu Bulunamadı!" der ve kaydetmez.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Sınıf iFNakit (../ERPGOLD_WIKI/09_CodeArchitecture/Classes/CLS-IFNAKIT.md); olaylar IslemDegisti (:372), BirimDegisti (:399), TutarHesapla (:440), FiyatHesapla (:458), Bsmv_Changed (:475).
  • Alan → kolon: CmbStokKodu → StokId/Kodu, TxtMiktar → Miktar, CmbBirim → BirimId/Birim, TxtFiyat → Fiyat, TxtTutar → Tutar, TxtBsmv → BSMV, TxtTarih → Vade (../ERPGOLD_WIKI/05_Screens/SCR-IFNAKIT.md).
  • Parite kaydı iFNakit.SaveCashTransaction (BR-TIP-011); kur farkı kontrolü Cari.Islem.Validate (BR-KUR-007, ayar Sistem.Settings.IslemKurFarki).
  • Tetikleyici: nakit stok satırı StokTipi=2 (tip ≠ 4 EMANET — BR-TIP-005); bakiye "diğer kodlar" dalı, tip 10 PARİTE'de işaret ters (BR-YON-004); NAKİT + tip 10'da ayrıca miktar satırı (TRG satır 422-434).
  • V2 birim dağılımı: NAKİT TL 788.454 · USD 295.298 · EUR 146.062 · GBP 9.373 · CHF 3.484 · diğer 30+ para 8.000 (FLOW-ISLEM-MATRISI "Birim dağılımı").

5.4.3 HURDA ekranı dört seviyede

Seviye 1 — Çok basit

Annen eski, kırık bir bileziği kuyumcuya götürür. Kuyumcu bileziğe "mal" olarak bakmaz; bilezik eritilecektir. Tek sorduğu: kaç gram ve içinde ne kadar saf altın var? Teraziye koyar (gram), taşa sürer ya da cihazda ölçer (milyem), ikisini çarpar (has). Bileziğin işçiliği, modeli, taşı önemsizdir.

Seviye 2 — İşletme mantığı

Hurda alımı kuyumcunun has toplama yoludur; hurda rafineriye/atölyeye gider, has olarak geri gelir (takoz konusu). Toptancıyla cari çalışan kuyumcu hurdayı has cinsinden hesaba yazar; para konuşulmaz ("500 g 700 milyem verdim, 350 g has alacağım var"). Perakende müşteriyle peşin çalışır: has × günün has alış kuru = TL, kasadan ödenir. Milyem ölçümü tartışmalıdır; bu yüzden hurda ekranında MİLYEM ve HAS her zaman elle yazılabilir.

Seviye 3 — ERPGOLD

  • Açılış: KODU 995, ISLEM ÇIKIŞ, tip kullanıcı varsayılanı (resmi kasada FATURA). Alış için ISLEM'i GİRİŞ yaparsın.
  • NORMAL tipte fiyat paneli görünmez: yalnız KODU, MİKTAR, MİLYEM, HAS. Kayıtta Fiyat/Tutar/Birim boş kalır; müşterinin hesabına yalnız has satırı yazılır. Para konuşulacaksa ayrı NAKİT satırı ya da ÇEVİR kullanılır.
  • PEŞİN tipte panel açılır: BİRİM = kasa parası, FİYAT = has alış kuru (BİRİM ana birimle aynıysa 1), TUTAR = HAS × FİYAT (kartın fiyat tipi Has ise) — BR-HESAP-010, BR-HESAP-013.
  • Maliyet/kâr hesabı ortalama milyem üzerinden yapılır: stok detayındaki ortalama milyem yoksa kart milyemi (BR-MALIYET-002).
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Sınıf iFHurda; liste süzgeci Stok.Maden.IsHurda=True ve aktif (BR-HURDA-001); olaylar HasHesapla (:320), HasDegisti (:323), TutarHesapla (:344), FiyatHesapla (:357).
  • Tetikleyici dalı MADEN ile aynıdır (IslemKodu=1 or 2): stok StokTipi=1, bakiye mal+para satırları (TRG satır 375-379, 436-461). KUYUMCU'da HURDA NORMAL cari 66.578 satır, %100 stok + %100 bakiye; V2'de HURDA PEŞİN 1.781 satır, bakiye %0.
  • Birim kolonu hurda satırlarında çoğunlukla NULL'dur (V2 2.281, KUYUMCU 66.578 satır) — fiyat paneli gizli olduğunun veri izi.
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Menü tıklaması iScreen.MenuButtonClick (iScreen.vb:485) → iFTransaction.Show(menü, RecordId)ShowTransaction (iFTransaction.vb:100-162); RecordId=0 yeni kayıt, >0 düzeltme.
  • Her ekranın DAO listesi: MADEN AIO.Cari.Fiyat, AIO.Cari.Islem, AIO.Sistem.Birim, AIO.Stok.Maden; NAKİT AIO.Stok.Nakit; HURDA AIO.Stok.Maden (IsHurda=True süzgeci — BR-HURDA-001). Akış şemaları: TECHNICAL_WIKI/FLOWS/FLOW-IFMADEN.md, FLOW-IFNAKIT.md, FLOW-IFHURDA.md, FLOW-IFVIRMAN.md, FLOW-IFCEVIR.md.
  • StokId hangi tabloya işaret eder? IslemKodu'na bağlı: 1/2 → Stok.Maden, 3 → Stok.Nakit, 5 → Stok.Hizmet, 6 → Sistem.Vadeli, 9 → Stok.Model, 0 → Stok.Takoz; VİRMAN'da StokId karşı hesabın Id'sidir (BR-VIRMAN-002), ÇEVİR'de kaynak birim Id'sidir (BR-CEVIR-001). Aynı kolon, kod dalına göre farklı tablo — rapor yazarken JOIN'i koda göre kurmak gerekir (TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-STOKID.md).
  • Ekrandaki tip listesinin sırası ile veritabanı kodu farklıdır (BR-TIP-008): maden listesinde 6→FATURA(11), 7→MAHSUP(12), 8→VADELİ(14); nakitte 2→PARİTE(10); vadelide 0→−1, 1→−2; çevirde tip daima −1.

5.5 Ekrandaki alanlar — ne, neden, boş kalırsa ne olur?

Bu kısım şartname §19'un karşılığıdır. Önce ortak alan tablosu, sonra her alanın hikâyesi.

Seviye 1 — Çok basit

Bir alışveriş fişinde hep aynı şeyler yazar: ne aldın (ürün), kaç tane (adet), kaç kilo (miktar), tanesi kaça (fiyat), toplam (tutar), hangi parayla (birim), ne zaman (tarih). Kuyumcuda bunlara iki şey eklenir: milyem (altının saflığı) ve has (saf altın karşılığı). Çünkü 100 g bileziğin içinde 100 g altın yoktur; 91,6 g altın vardır (22 ayar).

Seviye 2 — İşletme mantığı

Alanların bir kısmı karar alanıdır (yön, tip, ürün): bunları sen seçersin ve sonucu tamamen değiştirir. Bir kısmı ölçü alanıdır (adet, miktar, milyem): teraziden ve karttan gelir. Bir kısmı hesap alanıdır (has, fiyat, tutar): program hesaplar ama elle ezebilirsin. Bir kısmı da bilgi alanıdır (açıklama, kategori): defteri etkilemez, sonra bulmana yarar.

Seviye 3 — ERPGOLD

5.5.1 Ortak alan tablosu (MADEN ekranı temel alınmıştır; diğer ekranlardaki farklar altta)

Etiket Ne Zorunlu mu Neyi etkiler Teknik (kolon)
ISLEM (yön) Mal/para bize mi giriyor (GİRİŞ, başlık yeşil) müşteriye mi gidiyor (ÇIKIŞ, kırmızı) Evet (varsayılan gelir) Stok hareketinin işareti, bakiyenin işareti (GİRİŞ → müşteri alacaklanır, ÇIKIŞ → borçlanır), fiyatın kaynağı (giriş/çıkış işçiliği), limit kontrolü (yalnız ÇIKIŞ'ta) Cari.Islemler.IslemTuru (0/1; VADELİ 4/5; ÇEVİR 2/3)
İşlem tipi (etiketsiz açılır liste) NORMAL (hesaba yaz) · PEŞİN (kasadan öde/al) · BEDELLİ · İADE · EMANET · MIKTAR · FATURA(RESMİ) · MAHSUP · VADELİ Evet (varsayılan NORMAL; resmi kasada FATURA) Bakiye defteri yazılıp yazılmayacağı (PEŞİN yazmaz), kasa hareketi (PEŞİN yazar), RESMİ/MAHSUP operasyonel stok/bakiye kaydı üretmez; BİRİM listesinin içeriği; fiyat hesap yolu IslemTipi
STOK KODU / KODU Hangi ürün/para kartı Evet — boşsa F2 sessizce hiçbir şey yapmaz Milyem, sabit gram, işçilik, ana birim, fiyat tipi karttan gelir; stok hangi karta işlenecek StokId + Kodu
VARYANT Etiket "varyant" der ama kolon karşı işlemin Id'sini tutar (5.8) Hayır Parite/arbitraj çiftinde ikinci satırı birinciye bağlar; raporda çift saymamak için VaryantId (−1 ana satır, >0 bağlı satır)
ADET Parça sayısı Sabit gramlı kartta evet ("Lütfen Adet Giriniz."); gramlı üründe hayır Sabit gramlı kartta MİKTAR = ADET × parça gramı; F.TİPİ "Ad" ise TUTAR = ADET × FİYAT; stok adet hareketi Adet
MIKTAR Terazi gramı (madende), nominal tutar (dövizde) Evet — 0 ise "İşlem Yapabilmek için Miktar Girmelisiniz." (HİZMET, BORÇ, PIRLANTA, VİRMAN muaf) HAS = MİKTAR × MİLYEM; stok miktar hareketi; mal bakiyesi; NAKİT'te doğrudan kasa hareketi Miktar
MILYEM Saflık çarpanı (0,916 = 22 ayar); adetli üründe bir adedin has gramı (çeyrek 1,75 × 0,916 gibi kartta hazır) Karttan gelir; elle değiştirilebilir HAS'ı belirler; NORMAL tipte kart milyeminden yüksek girersen fark İŞÇ. FİYATI'na taşınır (has cinsinden işçilik) AuMilyem (ondalık: 0,916)
HAS MİKTAR × MİLYEM; saf altın karşılığı Hesaplanır; elle yazılırsa MİKTAR veya MİLYEM geri hesaplanır Cari işlemde müşterinin HAS bakiyesine yazılan sayı; stok defterindeki Has Kolon yok — tetikleyici Miktar × AuMilyem ile yeniden hesaplar
BIRIM Paranın tarafı: karşılık hangi birimde? (TL, USD, HAS…) Evet (varsayılan gelir) PEŞİN'de hangi kasa parasının hareket edeceği; NORMAL'de bakiyenin para satırının birimi; kur/parite seçimi BirimId + Birim
FIYAT / İŞÇ. FİYATI NORMAL'de gram (veya adet) başına işçilik; PEŞİN'de birim fiyat/kur Genelde karttan/kur listesinden gelir; ezilebilir TUTAR = miktar × fiyat (yön: parite "çarp" ya da "böl"); kâr hesabı (Maliyet/Satis) Fiyat
F.TIPI Fiyat neye göre: Ad (adet başına), Miktar (gram başına), Oz (ons), Has (has gram başına) Karttan gelir; TAŞ'ta kilitli TUTAR hesabında hangi sayının çarpılacağı (ADET mi MİKTAR mı HAS mı) FiyatTipi (0 adet · 1 miktar · 2 ons · 3 has)
TUTAR Karşılığın BİRİM cinsinden toplamı NAKİT'te ve PEŞİN türü tiplerde evet ("Lütfen Tutar Giriniz."); HİZMET'te evet; hurda NORMAL'de yok Bakiyenin para satırı (NORMAL), kasa hareketi (PEŞİN); elle yazılırsa FİYAT geri hesaplanır Tutar
Tarih (ekran içindeki kutu, TxtTarih) Vade / ileri tarih Hayır (varsayılan bugün +2 gün bazı ekranlarda) Vadeli işlemlerin kapanış günü; işlem tarihini değiştirmez VadeTarih değil!
Açıklama Serbest metin Hayır Hiçbir defteri etkilemez; ekstre ve fişte görünür; PARİTE'de program otomatik doldurur Aciklama
KARŞI HESAP / Transfer (F3) Aynı işlemi karşı hesaba ters yönle de yaz Hayır İkinci satır (aynı RefNo) RefNo bağlı ikinci satır
Terazi onay kutusu Gramı teraziden oku Hayır MİKTAR alanını doldurur

Kaynaklar: ../ERPGOLD_WIKI/05_Screens/SCR-IFMADEN.md "Alanlar → veritabanı"; TECHNICAL_WIKI/SCREENS/SCR-IFMADEN.md (UI→DB haritası); alan makaleleri TECHNICAL_WIKI/FIELDS/ altında FIELD-CARI-ISLEMLER-<KOLON>.md; kurallar BR-HESAP-001…014, BR-TIP-006, BR-TIP-013, BR-HESAP-004.

Ekrana göre farklar: HURDA'da ADET, VARYANT, F.TİPİ yoktur; MİLYEM ve HAS her zaman yazılabilir; NORMAL tipte fiyat paneli gizlidir (kayıtta Fiyat/Tutar/Birim boş kalır, yalnız has bakiyesi oluşur — BR-HURDA-002). NAKİT'te ADET/MİLYEM/HAS yoktur; BSMV kutusu vardır (döviz bürosunda vergi). HİZMET'te MİKTAR yoktur; HİZMET kartı + TUTAR + BİRİM + bilgi amaçlı KUR(HAS)/HAS. VİRMAN'da HESAP (karşı hesap), KODU (birim), MİKTAR, MİLYEM (metal değilse 1'e kilitli), TUTAR. TAKOZ G'de rapor no, ayar evi, XRF milyemleri, çeşni gramı, gümüş/platin/paladyum durumu, işçilik durumu — ayrı bölümde anlatılır.

5.5.2 Alanlar birbirini nasıl etkiler? (hesaplama zinciri)

STOK KODU seçildi
  ├─ MİLYEM        ← kart milyemi (0,916)
  ├─ sabit gram?   → MİKTAR kilitlenir, MİKTAR = ADET × parça gramı
  ├─ F.TİPİ        ← kart fiyat tipi (Ad / Miktar / Has)
  ├─ FİYAT + BİRİM ← GİRİŞ: kartın giriş işçiliği; ÇIKIŞ: hesaba özel fiyat listesi, yoksa kartın çıkış işçiliği
  └─ BİRİM listesi ← NORMAL: hesaplanmayan birimler · PEŞİN: kasadaki nakit stokları · FATURA/MAHSUP: tüm birimler, varsayılan TL

MİKTAR veya MİLYEM değişti
  └─ HAS = MİKTAR × MİLYEM                          (BR-HESAP-001)
       └─ HAS elle yazıldı → MİLYEM=0 ise MİLYEM = HAS ÷ MİKTAR, değilse MİKTAR = HAS ÷ MİLYEM (BR-HESAP-006)

FİYAT / MİKTAR / HAS / F.TİPİ değişti
  ├─ NORMAL: TUTAR = (F.TİPİ Ad ? ADET : MİKTAR) × FİYAT              (BR-HESAP-007)
  └─ PEŞİN : TUTAR = parite yönü "çarp" ? FİYAT × miktar : miktar ÷ FİYAT   (BR-HESAP-008)
             fiyatlanan miktar = kart fiyat tipi Has ? HAS : MİKTAR (FATURA/MAHSUP'ta ham MİKTAR) (BR-HESAP-010)
             FİYAT ← parite(ana birim, BİRİM); MIKTAR/FATURA/MAHSUP tipinde × MİLYEM (BR-HESAP-012)
             BİRİM = stokun ana birimi ise FİYAT ve TUTAR kilitlenir (BR-HESAP-013)

TUTAR elle yazıldı
  └─ MİKTAR ≠ 0 ise FİYAT = TUTAR ÷ miktar; MİKTAR = 0 ise MİKTAR = (TUTAR ÷ FİYAT) ÷ MİLYEM   (BR-HESAP-009)

NORMAL + BİRİM = HAS + MİLYEM > kart milyemi
  └─ fark İŞÇ. FİYATI'na taşınır, MİLYEM kart değerine döner; TUTAR = MİKTAR × fark (has cinsinden işçilik) (BR-HESAP-005)

ÖRNEK ALTIN A.Ş. — Salı, Zeynep Aksoy, Kuyumcu Selim'e 600 g 22 ayar bilezik (cari). MADEN ekranı: ISLEM ÇIKIŞ (kırmızı), tip NORMAL, STOK KODU 22 AYAR BİLEZİK → MİLYEM 0,916 geldi; MİKTAR 600 → HAS 549,60 g; FİYAT (çıkış işçiliği) 150 TL/g, F.TİPİ Miktar, BİRİM TL → TUTAR 90.000 TL. F2. Selim'in bakiye kartı: HAS +150 → +699,60 g borçlu; TL 0 → +90.000 TL borçlu. MERKEZ stoğu: 22 ayar 1.500 g → 900 g. (Sayılar örnektir; kur/işçilik güncel değildir. Haftanın tamamı Bölüm 7'de.)

5.5.3 Alan alan: neden var, boş kalırsa ne olur?

ISLEM (yön). Bu alan "kim kime veriyor" sorusudur; bütün işaretleri o belirler. GİRİŞ seçince ekran başlığı yeşile, ÇIKIŞ seçince kırmızıya döner — kayıt öncesi son göz kontrolü budur. MADEN ekranı ÇIKIŞ ile açılır, HURDA ÇIKIŞ ile açılır, NAKİT'te önceki seçim kalır; alış yaparken yönü elle çevirmeyi unutan çalışan, müşteriyi alacaklı yerine borçlu yazar. Şubeler arası (provizyon) hesapta yön ÇIKIŞ'a kilitlidir ve değiştirilemez (BR-TIP-012). Yön ayrıca fiyatın kaynağını seçer: GİRİŞ'te kartın giriş işçiliği, ÇIKIŞ'ta önce müşteriye özel fiyat listesi, yoksa çıkış işçiliği (BR-HESAP-011); limit kontrolü yalnız ÇIKIŞ'ta çalışır.

İşlem tipi. Bedelin nasıl kapandığını söyler ve tetikleyicinin hangi defteri yazacağını doğrudan değiştirir (5.6). Varsayılan NORMAL'dir; resmi kasada oturum açan kullanıcıya FATURA gelir. Tip değişince BİRİM listesi ve fiyat hesabı yolu da değişir: PEŞİN, BEDELLİ, MIKTAR, FATURA, MAHSUP, VADELİ "peşin türü" sayılır ve parite mantığıyla fiyatlanır; NORMAL, İADE, EMANET işçilik mantığıyla (BR-TIP-009). BEDELLİ ve MIKTAR tiplerinde BakiyeId 0 olur: müşterinin hesabına has değil, tutar yazılır (BR-BAKIYE-002). EMANET (4) NAKİT'te stok hareketi yazmaz — emanet para kasa sayımına girmesin diye.

STOK KODU / KODU. Ürün kartıdır; kart olmadan işlem yoktur. Kart seçildiği an milyem, sabit gram, fiyat tipi, işçilik ve ana birim ekrana dolar. Boş bırakılırsa program mesaj vermeden kayıt yapmaz (H-036). Kart listede yoksa üç sebep: kart pasif, kart hurda işaretli (MADEN listesinde çıkmaz, HURDA'da çıkar) ya da Ctrl+F5 yapılmamış.

ADET ve MİKTAR. Adet sayılarak, miktar tartılarak bulunur. Sabit gramlı kartta (çeyrek, yarım, tam, ata) MİKTAR kilitlidir ve ADET × parça gramı olarak dolar; ADET boşsa "Lütfen Adet Giriniz." Gramlı üründe (bilezik) ADET isteğe bağlıdır, MİKTAR zorunludur. Terazi bağlıysa Terazi kutusu işaretlenir ve MİKTAR cihazdan okunur. MİKTAR 0 ile kayıt yapılmaz — HİZMET, BORÇ, PIRLANTA, VİRMAN hariç (BR-TIP-013).

MİLYEM. Karttan gelir; ölçüm farklıysa elle değiştirilir. NORMAL tipte, BİRİM = HAS iken kart milyeminden yüksek bir milyem yazarsan program farkı işçilik sayar: MİLYEM kart değerine döner, fark İŞÇ. FİYATI'na taşınır ve TUTAR = MİKTAR × fark (has cinsinden işçilik) olur (BR-HESAP-005). Yani "916 yerine 930 yazdım, milyem geri 916'ya döndü" bir hata değil, işçiliğin ayrıştırılmasıdır. Adetli üründe milyem "bir adedin has gramı"dır (yarım altın 3,21 gibi — kitapçık §5.1).

HAS. Hesaplanan alandır ama elle yazılabilir; yazıp çıkınca MİLYEM 0 ise milyem, değilse miktar geri hesaplanır (BR-HESAP-006). Ekranda gördüğün has, veritabanında kolon olarak yoktur; tetikleyici Miktar × AuMilyem ile yeniden üretir. Bu yüzden AuMilyem yanlışsa ekrandaki has doğru görünse bile defter yanlış olur.

BİRİM. "Karşılık hangi parada?" sorusudur. PEŞİN'de listede yalnız kasadaki paralar vardır ve seçim kasa hareketinin hangi paradan çıkacağını belirler. NORMAL'de bakiyenin para satırının birimidir: 90.000 TL işçiliği USD seçersen Selim'e USD borç yazılır. BİRİM stokun ana birimiyle aynıysa (has bileziği has ile ödemek) fiyat ve tutar kilitlenir.

FİYAT / İŞÇ. FİYATI ve F.TİPİ. NORMAL madende fiyat işçiliktir (metal bedeli hesaba has olarak yazıldığı için); PEŞİN'de fiyat kur/gram fiyatıdır. F.TİPİ fiyatın neyle çarpılacağını söyler: Ad → ADET, Miktar → MİKTAR, Has → HAS, Oz → ons çarpanıyla. TAŞ ekranında kart belirler ve kilitlidir. Fiyatı elle ezmek serbesttir; NAKİT/VADELİ'de pano kurundan fazla saparsa onay istenir.

TUTAR. Zincirin sonucudur ama başlangıcı da olabilir: müşteriyle "toplam 90.000" diye anlaştıysan TUTAR'ı yazarsın, program FİYAT'ı (miktar 0 ise MİKTAR'ı) geri hesaplar (BR-HESAP-009). NAKİT'te ve peşin türü tiplerde 0 olamaz. HURDA NORMAL'de alan yoktur.

Tarih (Vade) ve Açıklama. İkisi de defteri değiştirmez. Vade, VADELİ işlemin kapanış günüdür; ÇEVİR, HİZMET, EMTİA, BORÇ ekranları otomatik "bugün + 2 gün" yazar (BR-CEVIR-001, BR-HIZMET-001, BR-GENEL-003/004). Açıklama ekstre ve fişte görünür; VİRMAN ve PARİTE'de program kendisi doldurur ("{Hesap}/{KarşıHesap}: …", "Parite : EUR 1.500 X 1,09667 = 1.645").

KARŞI HESAP / Transfer (F3). Aynı işlemi karşı hesaba ters yönle de yazdırır (şubeler arası mal gönderme gibi). Başarısızsa "Karşı Hesaba Transfer Edilemedi. Lütfen İşlemi Manuel Olarak Gerçekleştiriniz." — ilk satır yazılmış, ikincisi yazılmamıştır; tek satır bırakmamak için iptal edip yeniden girilir (BR-TRANSFER-003, BR-YON-005).

5.5.4 İşlem listesi ve klavye

Kayıttan sonra satır alttaki listeye düşer. Listede sana lazım olacak sütunlar: İşlem No, Fiş No, Tarih, işlem kodu/ekran, yön, TP (tip: NORMAL/PEŞİN/RESMİ — destek çağrısında ilk bakılan sütun), Kodu, Miktar, Milyem, Has, Birim, Tutar, M (mutabakat işareti), kullanıcı. Satırlar yön rengine göre boyanır. Listede satır seçiliyken:

Tuş / düğme Ne yapar
DUZELT (yeşil) / çift tık / Enter Satırı girildiği ekranda açar (RecordId = Id); yetki yoksa "İşlem Düzeltme Yetkiniz Yok."; gün sınırı dolmuşsa PIN ya da "İşlem Tarihinden İtibaren N Gün Geçmiştir…"
IPTAL Silme Onayı penceresi → açıklama zorunlu → satır IsDeleted; karşı satır varsa sorar
Iptal (FisNo) Aynı fiş numaralı tüm satırları iptal eder
YAZDIR / F1 İşlem fişi yazdırır
F2 / F3 / F4 / F5 (alt çubuk) Son Durum · Takoz Çıkış Ekstresi · Hesap Ekstresi · Takoz listesi
F12 Seçili satırı mutabık işaretler ("Seçmiş Olduğunuz İşlemde Mutabık Kalınacaktır. Onaylıyor musunuz?"); Mutabakat/MUser/MTarih yazılır, iz üretmez
LISTELE + tarih aralığı Geçmiş satırları getirir (varsayılan liste bugünü gösterir)
Log sekmesi + Ara Cari.History: Yeni Kayıt / Düzeltme / İptal Edildi / Geri Alındı — "bakiye birden değişti" sorusunun cevabı

İşlem ekranı içinde: F2 kayıt, Esc kapat, F5 yenile/temizle, F3 karşı hesap alanına git, Enter alanlar arası ilerler. TAŞ, PIRLANTA ve MODEL ekranlarında F2/F5/F3 kısayolları çalışmaz; fareyle F2 - KAYIT düğmesine basılır (H-036). Yeni kayıtta ekran temizlenip açık kalır (aynı fişe ikinci satır için); düzeltmede ekran kapanır.

UYARI — Cari mutabakat ≠ stok sayım mutabakatı. Listedeki F12 ve M sütunu cari mutabakattır (müşteriyle "bu satırda anlaştık"; Cari.Islemler.Mutabakat/MTarih). Menüdeki Mutabakat / MutabakatOnay ekranları ise stok sayım mutabakatıdır; ikisi ayrı iştir (BR-MUTABAKAT-001; BOOK_BRIEF gerçekleri).

5.5.5 Hangi alan sadece bilgi, hangisi hesaba girer?

Hesaba/deftere giren Yalnız bilgi / iz
ISLEM (yön), tip, STOK KODU, ADET, MİKTAR, MİLYEM (→ HAS), BİRİM, FİYAT, F.TİPİ, TUTAR, BSMV (nakit) Açıklama, Kategori/Grup (hizmet), Özel Kod, Proje, VARYANT (bağ bilgisi, tutar hesaplamaz), Tarih (Vade) kutusu, HİZMET'teki KUR(HAS)/HAS gösterimi

Ekranda görünmeyen ama her satıra yazılan kolonlar vardır; destek ve rapor için önemlidir: SubeId, KasaId, HesapId (hesap panelinden), FisNo, RefNo (GUID), UserId, InsertDate, Tarih (hesap panelindeki tarih), kur fotoğrafı HasKur, GumKur, UsdKur, EurKur (kayıt anındaki kur listesi; düzeltmede yeniden çekilmezBR-KUR-001, BR-KUR-003), Maliyet, Satis, Kar (hesaplanan: alışta Maliyet−Satış, satışta Satış−Maliyet), BakiyeId (malın hangi birime yazılacağı; ekranda seçilmez, tipe ve karta göre program belirler), IsDeleted, Mutabakat/MTarih/MUser.

UYARI — Maliyet kolonu metal değerini içermez. Tetikleyici girişte stok defterine yalnız işçilik × işçilik kuru yazar; metal maliyeti raporlarda günün kuruyla hesaplanır (CTR-SEC-MALIYET-01, TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-MALIYET.md). "Maliyet raporu düşük çıkıyor" çağrısında ilk bakılacak yer budur.

5.5.6 Kullanıcıya gösterilen doğrulama mesajları

Mesaj Ne zaman Ne yapmalı
"Sube,Kasa veya Hesap Seçili Değil. İşlem Yapamazsınız." Hesap seçilip TAMAM denmeden ekran açılmış; kullanıcının şube/kasa ataması yok Hesabı seç, TAMAM; kullanıcı kartını kontrol et
"İşlem Yapabilmek için Miktar Girmelisiniz." MİKTAR 0 (HİZMET/BORÇ/PIRLANTA/VİRMAN hariç) Miktarı gir
"Lütfen Tutar Giriniz." NAKİT'te veya PEŞİN/BEDELLİ/MIKTAR tipinde TUTAR 0; HİZMET'te TUTAR 0 Tutarı gir
"Lütfen Adet Giriniz." Sabit gramlı kartta ADET boş Adedi gir
"Geçmiş Tarihe İşlem Giriyorsunuz. Devam Etmek İstiyormusunuz ?" Hesap panelindeki tarih bugünden eski (varsayılan HAYIR; resmi kasada sorulmaz) Bilinçliyse EVET; o gün için kur girildi mi kontrol et
"Satım Fiyatınız {kur} Fiyattan %{fark} farklı. Bu İşlemi Dikkatli Gerçekleştiriniz…" NAKİT/VADELİ'de girilen fiyat pano kurundan ayardaki yüzdeden fazla sapıyor Fiyatı kontrol et
"Hesap Limiti Aşılıyor. İşlemi Kayıt Edemezsiniz..! Kalan Müşteri Limiti …" MADEN/HURDA/NAKİT ÇIKIŞ ve peşin olmayan işlemde hesap limiti aşılıyor Limit/Extra Limit yetkilisiyle konuş
"Bu Model Elinizde Yok. Çıkış Yapamazsınız." / "…Mevcut. Giriş Yapamazsınız." MODEL tek parça kuralı Stoğu kontrol et
"BU TAKOZ STOGUNUZDA YOK.ISLEM YAPAMAZSINIZ." Takoz çıkışında stok adedi 0 Doğru takozu seç
"BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR. ISLEM YAPAMAZSINIZ." Hesap kartında zorunlu belge süresi dolmuş/boş Belgeyi hesap kartına ekle
"SUBE PASIF HALDE. ISLEM YAPAMAZSINIZ..." Şube pasif Şube tanımını aç
"Karşı Hesaba Transfer Edilemedi. / Karşı Hesaba İşlem Yapılamadı." F3 transfer veya virmanın ikinci satırı yazılamadı (karşı hesap pasif, evrak eksik, şifreli) Tek kalan satırı iptal et, engeli gider, yeniden gir
(mesaj yok, hiçbir şey olmuyor) STOK KODU/KODU/HİZMET boş; TAŞ/PIRLANTA/MODEL'de F2 kısayolu çalışmaz — fareyle düğmeye bas 5.10

Kaynak: ../ERPGOLD_WIKI/09_CodeArchitecture/ERROR_MESSAGES.md; tetikleyici mesajları TRG makalesi "Ürettiği hata mesajları"; BR-TIP-006, BR-TIP-013, BR-HESAP-004, BR-KUR-007, BR-KASA-003, BR-STOK-007.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
  • Olay → metot (iFMaden): CmbStokKodu.EditValueChanged → StokDegisti (:225), TxtAdet.ValueChanged → MiktarHesapla (:388), TxtMiktar.ValueChanged → HasHesapla (:393), TxtMilyem.LostFocus → MilyemDegisti (:400), TxtHas.LostFocus → HasDegisti (:411), TxtFiyat/TxtMiktar/CmbFTipi/TxtHas → TutarHesapla (:432), TxtTutar.LostFocus → FiyatHesapla (:445) (../ERPGOLD_WIKI/05_Screens/SCR-IFMADEN.md "Kullanıcı olayları").
  • Kayıt akışı: iFormBase.FormSave (:211) → ekranın FormSaveCari.Islem.Validate (peşin kontrolü, tutar/kur farkı uyarıları, Cari.IslemEx.vb:217-245) → Cari.Islem.Save (şube/kasa/hesap :509, miktar :514, limit :524) → Insert (Cari.Islem.vb:566) → tetikleyici.
  • BakiyeId ekranda seçilmez; Cari.IslemEx.BakiyeId (:270-281) hesaplar: MADEN/HURDA'da tip ∉ {PEŞİN, BEDELLİ, MIKTAR} ise Stok.Maden.AnaBirimId, MODEL'de tip ∉ {BEDELLİ, PEŞİN} ise ana birim, VADELİ'de vadeli kodun ana birimi, ÇEVİR'de kaynak birim, NAKİT'te daima 0 (BR-BAKIYE-002, ../ERPGOLD_WIKI/18_Glossary/TERM-BAKIYEID-MAL-TARAFI.md).
  • TxtTarihVade kolonu; kayıt tarihi Tarih hesap panelinden (iTransactionInfo.Tarih). Kitapçık §8.5 bunu "ekran ile kolonun aynı şeyi söylemediği yer" olarak listeler; H-081 aynı sebeple açılan çağrıdır.
  • VaryantId ürün varyantı değil karşı işlem Id'si: sıfırdan büyük 19.176 değerin 19.175'i Cari.Islemler.Id ile eşleşir, Stok.Varyant ile hiçbiri (kitapçık §8.5; TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-VARYANTID.md).
  • Kur fotoğrafı: Insert anında HasKur = GetKur(HasSymbol) …; FATURA/MAHSUP tipinde UsdKur TCMB'den, yöne göre alış/satış (BR-KUR-001, BR-KUR-002).

5.6 F2'ye basınca ne olur? — SEBEP-SONUÇ HARİTASI

Bu kısım şartname §24'tür. Kural tek cümledir: kullanıcı tek tabloya yazar, gerisini veritabanı türetir.

Seviye 1 — Çok basit

Bakkal Ali defterine bir satır yazınca üç şey birden olur: raftaki ekmek azalır (stok), Mehmet'in borcu artar (bakiye), ve Ali "az önce ne yazdım?" diye baktığında satırı görür (iz). Ali bunları üç ayrı deftere ayrı ayrı yazsa hata yapar; onun yerine tek satır yazar, yardımcısı üç deftere dağıtır. ERPGOLD'daki yardımcı, veritabanının içindeki bir otomatik kuraldır; adı tetikleyicidir.

Seviye 2 — İşletme mantığı

Her satır için iki bağımsız soru sorulur ve cevapları ayrı defterlere gider:

  1. Mal fiziksel olarak yer değiştirdi mi?Stok defteri ("nerede duruyor": hangi kasada ne kadar).
  2. Bedel bir hesaba yazıldı mı?Bakiye defteri ("kime ait": kim kime ne kadar borçlu).

Dört kombinasyon da geçerlidir: mal hareket etti + hesaba yazıldı (cari maden satışı), mal hareket etti + hesaba yazılmadı (peşin satış), mal hareket etmedi + hesaba yazıldı (vadeli, çevir, virman, hizmet), hiçbiri (resmi/mahsup kaydı). "Peşin ise stok, cari ise bakiye" cümlesi eksiktir — kuyumcuda cari satışta bilezik de fiziksel olarak gider.

Seviye 3 — ERPGOLD

Genel zincir:

KULLANICI  işlem ekranını doldurur, F2 - KAYIT
   ↓
EKRAN      alanları tek bir işlem nesnesine koyar; şube/kasa/hesap, miktar, tutar, limit, kur farkı kontrolleri
   ↓
TABLO      Cari.Islemler'e 1 satır (virman/parite/transfer: 2 satır, aynı FisNo/RefNo)
   ↓
TETİKLEYİCİ Cari.AcceptTransaction (her kayıt, düzeltme ve iptalde otomatik çalışır)
   ├─ 1. güvenlik: şube pasif? e-döviz belgesi gönderilmiş? evrak eksik? şube/kasa/hesap boş? → HATA + geri al
   ├─ 2. temizlik: bu işlem numarasına ait eski stok ve bakiye satırlarını SİL (sil-yeniden-yaz)
   ├─ 3. tip RESMİ (11) veya MAHSUP (12) ise → DUR (hiçbir deftere yazma)
   ├─ 4. STOK DEFTERİ  Stok.StokHaraketleri : ürün grubuna göre maden/nakit/takoz/pırlanta/model satırı
   │                   + tip PEŞİN ise BİRİM parasının kasa hareketi
   └─ 5. BAKİYE DEFTERİ Cari.BakiyeIslem   : tip PEŞİN değilse mal satırı (BakiyeId>0 ise) ve para satırı (Tutar≠0 ise)
   ↓
İZ         Cari.History (Yeni Kayıt / Düzeltme / İptal Edildi / Geri Alındı)
   ↓
EKRAN      işlem listesi ve bakiye kartı yenilenir; stok listeleri, ekstre, pozisyon, bilanço raporları yeni satırı görür

Kaynak: TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-GENEL.md; ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md; TRG makalesi satır 163-289 (güvenlik), 362-363 (temizlik), 367 (tip 11/12), 375-406 (stok), 415-662 (bakiye).

Bakiye işareti: bakiye defterinde artı = müşteri bize borçlu, eksi = müşteri alacaklı (biz ona borçluyuz). GİRİŞ (mal bize geldi) müşteriyi alacaklandırır → eksi; ÇIKIŞ (mal ona gitti) borçlandırır → artı. Bakiye kartı bunu ALACAK/BORÇ sütunlarına ayırır (BR-YON-007). Aşağıdaki kutularda Bakiye bu ham işaretle yazılmıştır.

5.6.1 MADEN SATIŞ — cari (Salı, Kuyumcu Selim, 600 g 22 ayar)

Kullanıcı  : MADEN · ÇIKIŞ · NORMAL · 22 AYAR BİLEZİK · 600 g · milyem 0,916 · işçilik 150 TL/g · TL
Cari.Islemler : IslemKodu 1 · IslemTuru 1 · IslemTipi 0 · StokId=bilezik · Miktar 600 · AuMilyem 0,916
                Tutar 90.000 · BirimId=TL · BakiyeId=HAS (sıfır değil → cari) · HesapId=Selim · KasaId=MERKEZ
Tetikleyici   : tip 0 ≠ 11/12 → devam
  STOK   Stok.StokHaraketleri : StokTipi 1 (maden), bilezik, Adet 0, Miktar −600, Milyem 0,916, Has −549,60   [satır 375-379]
  BAKİYE Cari.BakiyeIslem     : (Selim, HAS)  +549,60   ← BakiyeId>0, Miktar≠0, tip≠1                          [satır 450-454]
         Cari.BakiyeIslem     : (Selim, TL)   +90.000   ← tip≠1, Tutar≠0                                        [satır 456-460]
  İZ     Cari.History         : Yeni Kayıt
Sonuç  : Selim HAS +150 → +699,60 borçlu · TL +90.000 borçlu · MERKEZ 22 ayar 1.500 → 900 g · Kasadaki TL DEĞİŞMEDİ
Rapor  : bakiye kartı, hesap ekstresi (F4), maden stok listesi, pozisyon (has açık) değişti; kasa raporu değişmedi

5.6.2 MADEN/HURDA ALIŞ — peşin (Çarşamba, perakende müşteri, 200 g hurda, TL öder)

Kullanıcı  : HURDA · GİRİŞ · PEŞİN · kod 995/HURDA · 200 g · milyem 0,700 → HAS 140 g · BİRİM TL · has alış 4.000 TL/g → TUTAR 560.000
Cari.Islemler : IslemKodu 2 · IslemTuru 0 · IslemTipi 1 · Miktar 200 · AuMilyem 0,700 · Tutar 560.000 · BirimId=TL · BakiyeId=0
Tetikleyici   :
  STOK   Stok.StokHaraketleri : StokTipi 1, hurda, Miktar +200, Has +140                                         [satır 375-379]
         Stok.StokHaraketleri : StokTipi 2 (nakit), StokId=TL, Miktar −560.000  ← PEŞİN dalı: GİRİŞ'te −Tutar     [satır 390-394]
  BAKİYE Cari.BakiyeIslem     : YOK — tip 1 (PEŞİN) hiçbir bakiye satırı yazmaz                                   [satır 450, 456]
Sonuç  : MERKEZ hurda 300 → 500 g (has 210 → 350) · MERKEZ TL 500.000 → −60.000 (!) · müşteri bakiyesi yok
Rapor  : stok listesi ve KASA raporu değişti; hesap ekstresi değişmedi

Dikkat: bu örnekte kasa eksiye düştü — ERPGOLD peşin işlemde kasa yeterliliğini kontrol etmez; gerçek hayatta Mehmet Kaya önce kasayı besler.

5.6.3 NAKİT — cari tahsilat/ödeme (Döviz Nuri'ye 2.000 USD ödeme)

Kullanıcı  : NAKİT · ÇIKIŞ · NORMAL · KODU USD · Miktar 2.000 · BİRİM USD (aynı birim → FİYAT 1 kilitli) · TUTAR 2.000
Cari.Islemler : IslemKodu 3 · IslemTuru 1 · IslemTipi 0 · StokId=USD nakit kartı · Miktar 2.000 · Tutar 2.000 · BirimId=USD · BakiyeId=0
Tetikleyici   :
  STOK   Stok.StokHaraketleri : StokTipi 2, USD, Miktar −2.000  ← kasadan çıktı                                  [satır 385-389]
  BAKİYE Cari.BakiyeIslem     : (Nuri, USD) +2.000  ← "diğer kodlar" dalı: tip≠1 ve Tutar≠0 → yalnız TUTAR satırı [satır 505-536]
Sonuç  : Nuri −5.000 (alacaklı) → −3.000 (3.000 USD alacaklı kaldı) · MERKEZ USD 100.000 → 98.000

PEKİ NEDEN?Neden NAKİT ekranında BakiyeId hep 0 ama bakiye yine yazılıyor? BakiyeId "malın tarafı hangi birime yazılsın" sorusudur. Nakitte mal zaten paradır; ayrı bir mal satırı gerekmez, bu yüzden program NAKİT'te BakiyeId'yi daima 0 bırakır. Tetikleyici nakit için mal satırına bakmaz, doğrudan TUTAR satırını yazar (Tutar ≠ 0 ve tip ≠ PEŞİN). Yani BakiyeId = 0 "peşin" demek değildir; peşinliği IslemTipi = 1 belirler. Gerçek veri: V2'de NAKİT NORMAL 934.126 satırın %99'u bakiye üretmiştir, hepsinde BakiyeId=0 (CTR-SEC-BAKIYE-01; TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md). Kitapçık §3.4'teki "BakiyeId=0 mu değil mi tek anahtardır" cümlesi eski anlayıştır — CTR olarak kayıtlıdır.

5.6.4 NAKİT — peşin döviz satışı (gişe, 1.000 USD, TL alınır)

Kullanıcı  : NAKİT · ÇIKIŞ · PEŞİN · KODU USD · Miktar 1.000 · BİRİM TL · FİYAT 40,20 (satış) · TUTAR 40.200
Cari.Islemler : IslemKodu 3 · IslemTuru 1 · IslemTipi 1 · Miktar 1.000 · Fiyat 40,20 · Tutar 40.200 · BirimId=TL · UsdKur 40,20
Tetikleyici   :
  STOK   Stok.StokHaraketleri : StokTipi 2, USD, Miktar −1.000     ← nakit dalı                                  [satır 385-389]
         Stok.StokHaraketleri : StokTipi 2, TL,  Miktar +40.200    ← PEŞİN dalı: ÇIKIŞ'ta +Tutar                   [satır 390-394]
  BAKİYE : YOK
Sonuç  : USD 100.000 → 99.000 · TL 500.000 → 540.200 · hiçbir hesap değişmedi · Maliyet/Satis farkı = kâr satırda saklı

Kitapçık §5.2'de aynı desen gerçek veriden gösterilir (65 USD satışı: TL +1.703,14, USD −65).

5.6.5 VADELİ — kasaya dokunmayan satış (Selim 20.000 USD vadeli aldı)

Kullanıcı  : VADELİ · SATIŞ · KODU USD · Miktar 20.000 · BİRİM TL · FİYAT 40,20 · TUTAR 804.000 · Vade: gelecek hafta
Cari.Islemler : IslemKodu 6 · IslemTuru 5 · IslemTipi −1 · BakiyeId=USD · BirimId=TL · Vade=…
Tetikleyici   : ÇEVİR/VADELİ/HİZMET dalı — SATIŞ: Has = −|Has|, Tutar = +|Tutar|                                  [satır 467-498]
  STOK   : YOK (kod 6 için stok dalı yok)
  BAKİYE Cari.BakiyeIslem : (Selim, USD) −20.000  ← biz ona 20.000 USD teslim edeceğiz (alacaklı)
         Cari.BakiyeIslem : (Selim, TL)  +804.000 ← o bize 804.000 TL ödeyecek (borçlu)
Sonuç  : kasa değişmedi; teslim günü NAKİT ÇIKIŞ (USD) ve NAKİT GİRİŞ (TL) girilir, vadeli bakiye kapanır

5.6.6 ÇEVİR — Perşembe, Selim'in USD borcunu altına çevirme

Kullanıcı  : ÇEVİR · BORÇ (müşterinin borcunu taşı) · KODU USD (kaynak) · Miktar 10.000 · BİRİM HAS (hedef) · FİYAT parite → TUTAR 100 g
              (10.000 × 40,00 = 400.000 TL ÷ 4.000 TL/g = 100 g has — örnek kur)
Cari.Islemler : IslemKodu 4 · IslemTuru 3 · IslemTipi −1 · StokId=USD birimi · BakiyeId=USD · BirimId=HAS · Miktar 10.000 · Tutar 100
Tetikleyici   : BORÇ → Has = −|Miktar×1| = −10.000 (USD'ye), Tutar = +100 (HAS'a)                                   [satır 481-497]
  STOK   : YOK
  BAKİYE : (Selim, USD) −10.000  ← USD borcu kapandı · (Selim, HAS) +100 ← borç HAS'ta devam ediyor
Sonuç  : mal/para hareketi yok; sadece hangi birimde borçlu olduğu değişti

ÇEVİR ekranının yön etiketi ALACAK/BORÇ'tur (BR-YON-006); veride bu kod pratikte tek kayıtla görülür — davranış koddan, sıklık veriden okunmalıdır.

5.6.7 VİRMAN — Selim'in 50 g has borcu Atölye Kemal'e devrediliyor

Kullanıcı  : VİRMAN · açık hesap Selim · HESAP: Atölye Kemal · KODU HAS · Miktar 50 · MİLYEM 1 · TUTAR 50
Cari.Islemler : 2 satır, aynı RefNo/FisNo — 1) Selim, IslemKodu 11, GİRİŞ  2) Kemal, IslemKodu 11, ÇIKIŞ (ters yön)
Tetikleyici   : "diğer kodlar" dalı, yalnız TUTAR satırı                                                            [satır 505-536]
  BAKİYE : (Selim, HAS) −50 (borcu azaldı) · (Kemal, HAS) +50 (borç ona geçti)
  STOK   : YOK
Sonuç  : iki hesabın toplamı değişmedi; ikinci satır yazılamazsa "Karşı Hesaba İşlem Yapılamadı." → tek satır kalır (H-106)

5.6.8 HİZMET — Selim'e kargo ücreti 500 TL

Kullanıcı  : HİZMET · ÇIKIŞ (gelir: müşteriye yansıtılan masraf) · HİZMET KARGO · TUTAR 500 · BİRİM TL
Cari.Islemler : IslemKodu 5 · IslemTuru 1 · Miktar 0 · Fiyat 500 · Tutar 500 · BirimId=TL
Tetikleyici   : kod 5 dalı — ÇIKIŞ → Tutar = +500                                                                  [satır 467-498]
  BAKİYE : (Selim, TL) +500 · STOK: YOK

5.6.9 TAKOZ, ÇEŞNİ — kısaca

Kullanıcı  : TAKOZ G · GİRİŞ · Rafineri Kuzey'den dönen 1.000 g takoz · ayar evi raporu VAR (Au 0,995, Ag 0,003)
              · GÜMÜŞ DURUMU "Altına Çevir" · has işçiliği 5 ‰ · İŞÇİLİK DURUMU "Altından Düş"
Cari.Islemler : IslemKodu 0 · IslemTuru 0 · IslemTipi 6 (ALTIN takoz) · StokId=yeni Stok.Takoz kartı · Miktar 1.000 · AuMilyem 0,995
Tetikleyici   :
  STOK   Stok.StokHaraketleri : StokTipi 3 (takoz), Adet +1, Miktar/Has 0   ← takoz "adet" olarak izlenir            [satır 380-384]
  BAKİYE Cari.BakiyeIslem     : (Kuzey, HAS)   −(1.000×0,995 + gümüşün has karşılığı)  ← alacaklı                   [satır 628-632]
         Cari.BakiyeIslem     : (Kuzey, işçilik birimi) +işçilik                        ← borçlu                     [satır 622-626]
Sonuç  : takoz stok listesine düşer; rafineri hesabında has alacağı ve işçilik borcu; rapor yoksa XRF milyemi, o da yoksa "TAKOZ" birimi

Takoz girişi stok defterine adet +1 (çıkışta −1) yazar; bakiye defterine çok satır yazar: HAS (miktar × milyem, girişte eksi = müşteri alacaklı), gümüş/platin/paladyum "Madeni Ver" seçildiyse kendi biriminde, "Altına Çevir" seçildiyse kurla HAS'a eklenerek, "İşçilikten Düş" seçildiyse işçilik birimine; işçilik satırı girişte artı (müşteri borçlu). Rapor yoksa XRF milyemi kullanılır; XRF de 0 ise bakiye HAS yerine −1 numaralı TAKOZ birimine miktar bazlı yazılır ve rapor gelince düzeltilir. ÇEŞNİ tek satırda HAS ve GÜMÜŞ bakiyesi yazar. Ayrıntı takoz bölümünde; kural kaynakları BR-BAKIYE-005…008, BR-STOK-002, TRG satır 543-662.

5.6.10 RESMİ (FATURA) / MAHSUP — defter üretmeyen kayıt

Cari.Islemler : IslemTipi 11 (veya 12) — satır var, hacmi büyük olabilir
Tetikleyici   : @IslemTipi<>11 AND <>12 şartı sağlanmaz → stok ve bakiye bloğu HİÇ ÇALIŞMAZ                          [satır 367]
Sonuç  : yalnız Cari.History izi; bakiye kartı, stok listesi, kasa değişmez; hesap ekstresinde satır görünür

PEKİ NEDEN?Neden belge kontrol kaydı (RESMİ/FATURA) stok ve bakiye kaydına gitmiyor? Çünkü bu satır yeni bir ticari işlem değil, işlemin belge durumunu temsil eden kayıttır; aynı ticaretin operasyon etkisi (stok, kasa, bakiye) ilgili operasyon satırlarında zaten oluşmuştur (ERPGOLDV2 fiş 1025367: 1 tip-11 belge satırı + 4 tip-0 operasyon satırı). Belge durumunu işlemek aynı ticareti ikinci kez yapmak değildir; tetikleyici bu tipleri tek bir koşulla dışarıda bırakır. Sonuç önemlidir: 2023 verisinde 11.532 tip-11 satırının sıfırı operasyonel kayıt üretmiş, ama tutar bazında yıllık hacmin dörtte biridir. Hacim raporu operasyon satırlarıyla belge kontrol satırlarını toplarsa aynı ticareti iki kez sayar; hacim Cari.Islemler'den, tip ≥ 10 ayrı sayılarak yazılır. Kuyumcu kurulumu bu tipleri hiç kullanmaz (BR-TIP-004, BR-DEFTER-URETIMI). Bunun nedeni kaynak koddan hukuki bir "belgelendirilmiş işlem havuzu" ayrımı olarak yorumlanamaz; AIFASOFT ürün bilgisine göre amaç operasyonel belge/fatura durum takibidir.

5.6.11 DÜZELT ve İPTAL — aynı zincir tersten

  • DÜZELT: satır aynı ekranda açılır, alan değişir, F2. Cari.Islemler satırı güncellenir; tetikleyici o işlem numarasının eski stok ve bakiye satırlarını siler ve yeniden yazar. Bu yüzden düzeltme sonrası bakiye kendiliğinden doğru olur; elle defter düzeltmesi yapılmaz. Kurlar yeniden çekilmez (kayıt anındaki kur fotoğrafı korunur). Cari.History'ye "Düzeltme" ve yeni hâl yazılır.
  • İPTAL: satır silinmez; IsDeleted = True olur. Tetikleyici eski defter satırlarını siler, silinmiş kayıt için yeniden yazmaz. Silme açıklaması zorunludur (Silme Onayı penceresi); aynı RefNo'lu karşı satır varsa "Karşı İşlemde İptal Edilsin mi?" sorulur. Cari.History'ye "İptal Edildi" ve eski hâl yazılır. Gün sınırı dolmuşsa silme yerine yöneticiye onay talebi düşer.
  • Doğrudan DELETE veritabanı seviyesinde yasaktır: "ISLEMLERI DIREK SILEMEZSINIZ" (TRG satır 163-167).
İPTAL (5.6.1'deki Selim satışı yanlış girildi, akşam fark edildi)
Kullanıcı  : listede satır → IPTAL → Silme Onayı: "yanlış gram" → EVET
Cari.Islemler : aynı satır, IsDeleted = True (satır yerinde durur; Id, FisNo değişmez)
Tetikleyici   : @IsDeleted='True' → önce eski defter satırlarını siler (satır 362-363), yeniden YAZMAZ (satır 367 şartı sağlanmaz)
  STOK   : bilezik −600 g satırı silindi → MERKEZ 22 ayar tekrar 1.500 g
  BAKİYE : Selim HAS +549,60 ve TL +90.000 satırları silindi → +150 g / 0 TL
  İZ     : Cari.History "İptal Edildi" (satırın ESKİ hâli) · Sistem.SilAciklama "yanlış gram"
Rapor  : işlem listesinde görünmez (IsDeleted süzgeci) · Silinmiş İşlemler Raporu'nda görünür · hacim raporu IsDeleted=0 ile süzer

ÖRNEK ALTIN A.Ş. — Deniz Yılmaz'a cuma günü gelen çağrı: "Selim'in has bakiyesi dün 699,6'ydı, bugün 150; kimse işlem yapmadı." Deniz Log sekmesini açar: 19:40 "İptal Edildi — kullanıcı Zeynep — açıklama: yanlış gram". Sorun yoktur; Zeynep salı satışını iptal etmiş, doğrusunu girmeyi unutmuştur. Çözüm: satışı doğru gramla yeniden girmek. Deniz'in yapmayacağı şey: Cari.BakiyeIslem'e elle 549,6 yazmak.

PEKİ NEDEN?Neden silinen işlem raporda görünmez ama veritabanında durur? Çünkü ERPGOLD "yumuşak silme" kullanır: satır yerinde kalır, üzerine IsDeleted işareti konur; bütün listeler ve raporlar IsDeleted='False' süzgeciyle çalışır, o yüzden satırı görmezsin. Ama defter satırları gerçekten silindiği için bakiye ve stok anında düzelir. Neden böyle? İz için: kim, ne zaman, neyi iptal etti sorusu Cari.History ve Sistem.SilAciklama ile cevaplanır; Silinmiş İşlemler Raporu bunları listeler. Veride her 30 işlemden biri iptal edilmiştir — normal tezgâh oranı (kitapçık §5.6; BR-STOK-006, BR-IPTAL-004).

5.6.12 Gerçek veri: hangi işlem hangi defteri üretmiş?

Kurulum İşlem kodu · tipi Satır Stok defteri % Bakiye defteri %
Döviz (V2) NAKİT · NORMAL 934.126 99 99
Döviz (V2) NAKİT · PEŞİN 296.267 99 0
Döviz (V2) VADELİ · −1 203.549 0 100
Döviz (V2) MADEN · PEŞİN 20.276 100 0
Döviz (V2) NAKİT · RESMİ 18.237 0 0
Döviz (V2) MADEN · NORMAL (cari) 746 100 100
Kuyumcu MADEN · NORMAL (cari) 152.700 100 100
Kuyumcu VADELİ · −1 144.378 0 100
Kuyumcu NAKİT · NORMAL 136.185 100 99
Kuyumcu VİRMAN · NORMAL 112.006 0 99
Kuyumcu HURDA · NORMAL (cari) 66.578 100 100
Kuyumcu TAKOZ · ALTIN(6)/GÜMÜŞ(7) 21.236 100 100

Kaynak: TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md (2026-09-12, silinmişler hariç). Okuma: döviz bürosunda cari işlem neredeyse yalnız defter kaydıdır (cari satırların %1,4'ü stok üretir); kuyumcuda cari satışta bilezik de fiziksel olarak gider (%60,3). Aynı tetikleyici, farklı iş modeli (CTR-038).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Tetikleyici Cari.AcceptTransaction (ON Cari.Islemler AFTER INSERT, UPDATE, DELETE, 569 satır) — ../ERPGOLD_WIKI/08_Database/Triggers/TRG-CARI.ACCEPTTRANSACTION.md. Satır kanıtları makaledeki SQL bloğuna göredir:

Adım SQL (özet) Makale satırı
Doğrudan DELETE yasağı if (Select count(*) From Inserted)=0 and (…deleted)>0 RAISERROR('ISLEMLERI DIREK SILEMEZSINIZ') 163-167
Has hesabı I.Miktar * Case When AuMilyem=0 Then 1 else AuMilyem end as Has 177
Şube pasif / ETTN / evrak / şube-kasa-hesap RAISERROR … ROLLBACK (evrak dalında RETURN yok — kitapçık 2.7) 196-289
Sil-yeniden-yaz Delete From Cari.BakiyeIslem Where IslemId=@IslemId; Delete From Stok.StokHaraketleri Where IslemId=@IslemId and Bolum=0 362-363
Tip 11/12 atlama if @IsDeleted='False' And @IsError=0 AND (@IslemTipi<>11 AND @IslemTipi<>12) 367
Stok: maden/hurda (StokTipi 1) Case When @IslemTuru=0 Then @Miktar When @IslemTuru=1 Then 0-@Miktar End, Has=±(@AuMilyem*@Miktar), Maliyet = Giriş ? @StokIsc*@StokIscKur : 0 375-379
Stok: takoz (StokTipi 3) adet ±1 380-384
Stok: nakit (StokTipi 2), tip≠4 Miktar = Giriş ? +@Miktar : −@Miktar 385-389
Stok: PEŞİN kasa satırı StokId=@BirimId, Miktar = Giriş ? 0-@Tutar : @Tutar 390-394
Stok: pırlanta (4), model (1, ayar kartı) 395-406
Bakiye: çeşni HAS+GUM 415-421
Bakiye: maden/hurda/model işaret ve satırlar GİRİŞ/ALACAK/ALIŞ → −abs, ÇIKIŞ/BORÇ/SATIŞ → abs; @BakiyeId>0 and @Miktar<>0 And @IslemTipi<>1 → mal satırı; @IslemTipi<>1 and @Tutar<>0 → para satırı 436-461
Bakiye: çevir/vadeli/hizmet Has ve Tutar zıt işaret; mal satırında tip≠1 şartı yok 467-498
Bakiye: diğer kodlar (nakit, virman, borç, taş, pırlanta, emtia, genel) yalnız Tutar satırı; NAKİT tip 10 (parite) işaret ters 505-536
Bakiye: takoz XRF, yan metal durumları, işçilik, TAKOZ (−1) birimi 543-662

Gözlem (GAP-05-01): stok dallarındaki CASE yalnız IslemTuru 0 ve 1'i tanır; 4 (ALIŞ) / 5 (SATIŞ) gelirse Miktar/Has NULL olur. Veride 4/5 yalnız VADELİ'de (stok dalı olmayan kod) kullanıldığı için pratikte tetiklenmemiştir; MADEN ekranından 4/5 yazılıp yazılamayacağı doğrulanmadı.

Akış şeması ve türetilen tablolar: TECHNICAL_WIKI/FLOWS/FLOW-IFMADEN.md (okuyucu fonksiyonlar Bakiye.GetBakiye, Bilanco.*, raporlar "Bakiye Ekstresi", "İşlem Fişi Yazdır"). Teknik borç: global cursor, hata dallarında CLOSE/DEALLOCATE yok; Repair.BalanceRepair destek tarafından asla çalıştırılmaz (../ERPGOLD_WIKI/00_Governance/KNOWN_GAPS.md TD-BALANCEREPAIR).


5.7 PEKİ NEDEN? — sık sorulan "neden"ler

PEKİ NEDEN?Neden stok azalırken bakiye artıyor? Çünkü stok kaydı ve bakiye kaydı iki farklı soruya cevap verir. Selim'e bilezik verdiğinde raftaki bilezik azalır (stok −600 g) ama Selim'in sana borcu artar (bakiye +549,6 g has). "Bakiye" müşterinin borcudur; mal gittikçe borç büyür. Yön aynı olayı iki tarafından anlatır: ÇIKIŞ = stokta eksi = bakiyede artı. Ters olay (müşteri hurda getirdi, GİRİŞ) stokta artı, bakiyede eksi (müşteri alacaklı). Kaynak: TRG satır 375-379 ve 436-461; BR-YON-002.

PEKİ NEDEN?Neden peşin işlemle cari işlem aynı davranmıyor? Aynı ekran, aynı alanlar, tek fark tip kutusu. PEŞİN'de bedel o an kasadan geçer: tetikleyici kasa hareketi yazar (BİRİM parasının nakit stoğuna ±TUTAR) ve bakiye satırı yazmaz (tip=1 şartı). NORMAL'de bedel hesaba yazılır: bakiye satırları yazılır, kasa dokunulmaz. İkisini karıştırırsan H-104 çağrısı doğar: "müşteri parayı ödedi ama bakiyesi değişmedi" (PEŞİN girilmiş, tahsilat kasaya düşmüş) ya da "bakiye değişti ama kasaya para girmedi" (NORMAL girilmiş). Çözüm: DÜZELT ile tipi değiştir, tetikleyici defterleri yeniden yazar. Kaynak: BR-TIP-002, BR-TIP-003, H-104.

PEKİ NEDEN?Neden milyem 0 girilince has = miktar oluyor? Tetikleyici has'ı Miktar × (AuMilyem = 0 ? 1 : AuMilyem) ile hesaplar. Milyemsiz işlemler (nakit, çevir, virman, vadeli) bu sayede aynı formülden geçer: 10.000 USD'nin "has"ı 10.000'dir, birim USD'dir. Ama MADEN/HURDA'da milyemi yanlışlıkla 0 bırakırsan 100 g 14 ayar bilezik müşterinin hesabına 100 g has yazılır (olması gereken 58,5 g). Ekran kart milyemini otomatik getirir; elle sıfırlama bu yüzden tehlikelidir. Kaynak: TRG satır 177; BR-HESAP-002.

PEKİ NEDEN?Neden VARYANT alanı ürün varyantı değil? Kontrolün adı CmbVaryant, kolonu VaryantId; ad "renk/ölçü varyantı" çağrıştırır. Oysa veri başka şey söyler: sıfırdan büyük 19.176 değerin 19.175'i başka bir Cari.Islemler.Id'dir, hiçbiri Stok.Varyant kaydı değildir. Kolon karşı işlemin numarasını tutar: parite/arbitrajda ilk satır −1, ikinci satır ilkinin Id'si. Rapor yazarken "arbitraj sayısı" için VaryantId = −1 satırları sayılır. Kaynak: kitapçık §8.5; TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-VARYANTID.md.

PEKİ NEDEN?Neden ekrandaki Tarih kutusunu değiştirdim ama işlem bugünün tarihiyle kaydedildi? İşlem ekranının içindeki tarih kutusu (TxtTarih) Vade kolonuna yazar — vadeli işlemin kapanış günü. İşlem tarihi (Tarih) hesap seçim panelindeki tarihten gelir. Geçmişe işlem gireceksen tarihi hesabı seçmeden önce panelde değiştirirsin; program "Geçmiş Tarihe İşlem Giriyorsunuz" diye sorar. Kaynak: SCR-IFMADEN "Bilinen kusurlar"; H-081.

PEKİ NEDEN?Neden bakiye kartında "yeşil (A)" alacak, kırmızı (B) borç? Defterdeki ham işaret ters okunur: Bakiye < 0 → müşteri alacaklı → ALACAK sütunu, yeşil; Bakiye > 0 → BORÇ, kırmızı. NET sütunu −Bakiye × alış kurudur; bu yüzden raporlar çoğunlukla × −1 yapar. GİRİŞ yeşil, ÇIKIŞ kırmızı başlık rengi aynı mantığın ekran karşılığıdır. Kaynak: BR-YON-001, BR-YON-007, BR-KUR-008.

PEKİ NEDEN?Neden düzeltince bakiye kendiliğinden düzeliyor, elle defter düzeltmek yasak? Tetikleyici her kayıtta "bu işlem numarasının tüm defter satırlarını sil, sıfırdan yaz" yapar. Elle Cari.BakiyeIslem düzeltirsen bir sonraki DÜZELT senin elle yazdığını siler; ayrıca iz bırakmaz. Kural: kaynağı (işlem satırını) düzelt, türevi (defteri) programa bırak. Kaynak: BR-STOK-006; SYM-BAKIYE "Çözüm".

PEKİ NEDEN?Neden aynı programda döviz bürosunda "cari işlem stok üretmez" ama kuyumcuda üretir? Kural aynıdır: StokId dolu ve Miktar ≠ 0 ise stok defteri yazılır. Döviz bürosunda cari satırların çoğu VADELİ'dir (stok dalı yok) ve NAKİT'te para zaten stok/kasa olarak izlenir. Kuyumcuda cari satırların çoğu MADEN/HURDA'dır; bilezik hesaba yazılsa da fiziksel olarak gider. Ölçüm: V2 cari satırlarının %1,4'ü, KUYUMCU'nun %60,3'ü stok üretir. "Cari işlem stok üretmez" ürün kuralı değil, döviz kurulumunun gözlemidir. Kaynak: BR-DEFTER-URETIMI (CTR-038).

PEKİ NEDEN?Neden PEŞİN seçince BİRİM listesi değişiyor? Peşinde karşılık kasadan çıkacağı için liste kasadaki nakit stokları olur (TL, USD, EUR…); NORMAL'de hesaba yazılacağı için hesaplanmayan birimler listelenir (HAS, TL, USD…, hesaplanan/türev birimler hariç); FATURA/MAHSUP'ta tüm birimler ve varsayılan TL gelir. Kaynak: BR-TIP-007, BR-KUR-006.


5.8 BUNU KARIŞTIRMA — ikili kavramlar

BUNU KARIŞTIRMA — Stok ≠ Bakiye. Stok "nerede duruyor" (kasa bazında mal/para), bakiye "kime ait / kim borçlu" (hesap bazında). İki ayrı defter: Stok.StokHaraketleri / Cari.BakiyeIslem. Destek çağrısında ilk soru: "bakiye mi tutmuyor, stok mu?" — cevap teşhisi ikiye böler (SYM-BAKIYE).

BUNU KARIŞTIRMA — Kasa ≠ Cari. Kasa fiziksel yer (MERKEZ kasası); cari hesap kişi/firma. Stok kasaya bölünür, cari bakiye bölünmez. Yanlış kasa seçimi stok listesini bozar, müşteri bakiyesini bozmaz.

BUNU KARIŞTIRMA — İşlem ≠ Stok hareketi. İşlem, Cari.Islemler'deki satırdır — kullanıcının yazdığı tek şey. Stok hareketi, tetikleyicinin o satırdan türettiği kayıttır; bir işlem sıfır, bir ya da iki stok hareketi üretebilir (peşin maden alımı: biri mal, biri para). Hacim raporu işlemden, kasa/stok listesi stok hareketinden okunur.

BUNU KARIŞTIRMA — Kur ≠ Parite. Kur, bir birimin TL (ana birim) karşılığıdır: USD/TL 40,00. Parite, iki yabancı birimin birbirine oranıdır: EUR/USD 1,15. NAKİT ekranında FİYAT alanı karşılık TL ise kur, karşılık başka döviz ise parite tablosundan gelir (yoksa iki kurun oranı). PARİTE ekranı TL'ye uğramadan çapraz kurla çalışır ama kayıtta her iki bacağın TUTAR'ı aynı TL değerine eşitlenir — TL "hayali pivot"tur, kasadan TL geçmez (kitapçık §5.4; BR-KUR-006, BR-KUR-010).

BUNU KARIŞTIRMA — Has ≠ Gram. Gram terazinin gösterdiğidir (100 g bilezik). Has, içindeki saf altındır (91,6 g). Müşterinin hesabına has yazılır, stoğa hem gram hem has yazılır. "100 g verdim, hesabıma 91,6 yazılmış" şikâyeti bir hata değil, milyemdir.

BUNU KARIŞTIRMA — Ayar ≠ Milyem. Ayar 24'lük ölçek (22 ayar), milyem 1000'lik ölçek (916). ERPGOLD milyemi ondalık saklar: 0,916. Ekranda "916" görsen bile veritabanında 0,916 vardır; hesaplama 1000'e bölme yapmaz. Rapor yazarken 916 ile çarpma yaparsan sonuç bin kat büyür (BR-HESAP-001).

BUNU KARIŞTIRMA — Alış ≠ Giriş, Satış ≠ Çıkış (kodda ayrı, işletmede aynı). Veritabanında dört yön kodu vardır: 0 GİRİŞ, 1 ÇIKIŞ, 4 ALIŞ, 5 SATIŞ (2 ALACAK / 3 BORÇ yalnız ÇEVİR'de, veride tek kayıt). MADEN/HURDA/NAKİT/VİRMAN/TAKOZ ekranları GİRİŞ/ÇIKIŞ yazar; VADELİ ekranı ALIŞ/SATIŞ yazar. Tetikleyici ikisini aynı kefeye koyar: 0/2/4 "bize giriyor" (bakiye eksi, yeşil), 1/3/5 "müşteriye gidiyor" (bakiye artı, kırmızı). İşletme bakışı: müşteriden alınan = ALIŞ = GİRİŞ; müşteriye verilen = SATIŞ = ÇIKIŞ. Raporda "alış toplamı" için IslemTuru IN (0,4) ya da hesaplanan IslemYonu kolonu (0/4→ALIS, 1/5→SATIS) kullanılır. Kaynak: TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-ISLEMTURU.md; matris yön dağılımı.

BUNU KARIŞTIRMA — Fiş ≠ Satır. Fiş gruplar, satır hesaplanır. Iptal (FisNo) hepsini, IPTAL birini iptal eder (5.3).

BUNU KARIŞTIRMA — Tarih ≠ Vade. Tarih işlem günü (hesap paneli), Vade ileri tarih (ekran içi kutu). Ekstre Tarih'e göre sıralanır; vadeli kapanış Vade'ye bakar (5.5).

BUNU KARIŞTIRMA — Silme ≠ Düzeltme. Düzeltme satırı değiştirir, iz olarak yeni hâli yazar; iptal satırı IsDeleted yapar, iz olarak eski hâli yazar. Virman, parite ve e-belgeli satırlar düzeltilemez, yalnız iptal + yeniden giriş yapılır ("Virman İşlemlerinde Düzeltme Yapamazsınız. İptal Edip Tekrar Giriniz."). Mutabakat işaretleme ise iz üretmez (kitapçık §5.6; BR-DUZELTME-006).

BUNU KARIŞTIRMA — İşlem tipi ≠ İşlem türü ≠ İşlem kodu. Üç ayrı sayı: kod = ürün grubu/ekran (1 MADEN), tür = yön (1 ÇIKIŞ), tip = bedelin nasıl kapandığı (0 NORMAL, 1 PEŞİN, 11 RESMİ). Destek çağrısında üçünü de sormadan teşhis olmaz (kitapçık §3.3).


5.9 Rapor tarafı: bir satır nereleri değiştirir?

Kaydettiğin satır şu yerlerde hemen görünür:

Yer Ne okur Değişir mi
Bakiye kartı (ekranın üstü), [F4] Hesap Extresi, [F2] Son Durum Cari.BakiyeIslem toplamları Cari (tip ≠ PEŞİN) işlemlerde
Maden / nakit / takoz stok listeleri, kasa raporu, pozisyon Stok.StokHaraketleri Fiziksel hareketi olan işlemlerde (maden, hurda, nakit, takoz, pırlanta, model; peşin kasa satırı)
[F1] Fiş yazdırma, işlem listesi, hacim/ciro raporları Cari.Islemler Her işlemde — resmi/mahsup dahil
İşlem Geçmişi (Log sekmesi), Düzeltilmiş/Silinmiş İşlemler raporları Cari.History, Sistem.SilAciklama Her kayıt/düzeltme/iptalde
Bilanço, kâr raporları Cari.Islemler.Maliyet/Satis/Kar + günün kuru Kur fotoğrafı ve maliyet kolonları üzerinden

Rapor fonksiyonları ve metrikler: ../ERPGOLD_WIKI/10_Reports/METRIC_DICTIONARY.md; okuyucu fonksiyon listesi TECHNICAL_WIKI/FLOWS/FLOW-IFMADEN.md "READERS".


5.10 SIK YAPILAN HATALAR

SIK YAPILAN HATALAR

Yeni çalışan - Hesabı seçip TAMAM demeden şeritten ekran açmak → "Sube,Kasa veya Hesap Seçili Değil." (H-037). Önce hesap, sonra işlem. - MADEN ekranının ÇIKIŞ ile açıldığını unutup alışı ÇIKIŞ olarak kaydetmek → müşteri alacaklı olması gerekirken borçlu görünür (H-103). Başlık rengine bak: alış yeşil. - Peşin satışı NORMAL girmek (ya da tersi) → bakiye ile kasa birbirini tutmaz (H-104). Tip kutusunu her satırda kontrol et. - F2'ye basıp "hiçbir şey olmuyor" demek → STOK KODU/KODU/HİZMET boş; TAŞ/PIRLANTA/MODEL'de kısayol çalışmaz, fareyle bas (H-036). - Ekran içindeki tarih kutusunu işlem tarihi sanmak → o kutu vadedir; işlem tarihi hesap panelinde (H-081). - Milyemi elle silip 0 bırakmak → has = gram olur, müşteriye fazla has yazılır (BR-HESAP-002). - Yeni hesap açıp Ctrl+F5 yapmamak → "tanımladım ama listede yok" (PB-039).

Müşteri (işletme sahibi / personeli) - "Bakiye tutmuyor" deyip hangi hesap, hangi birim, hangi tarih olduğunu söylememek → teşhis başlayamaz (SYM-BAKIYE "İlk sorulacak sorular"). - Virman/parite gibi iki satırlı işlemde ikinci satır yazılamadığında uyarıyı kapatıp geçmek → bir hesapta var, diğerinde yok (H-106). Tek kalan satırı iptal et, engeli gider, yeniden gir. - Geçmiş tarihe işlem girip o güne kur girmemek → birim bakiyesi doğru, TL/has karşılığı yanlış (H-107). - Hacim/ciro raporunu stok veya bakiye defterinden isteyip belge kontrol satırlarını (tip 11) kaybetmek → hacim Cari.Islemler'den okunur (kitapçık §3.5 "TUZAK"). - Bakiyeyi "kimse işlem yapmadı ama değişti" diye bildirmek → İşlem Geçmişi'nde düzeltme/iptal satırı vardır (H-105).

Destek personeli (Deniz Yılmaz) - "Stok tutmuyor" çağrısında kuruluma bakmadan "cari işlem stok üretmez" demek → kuyumcuda cari satırların %60'ı stok üretir (CTR-038). - BakiyeId = 0 görüp "peşin" demek → NAKİT'te BakiyeId hep 0'dır ve bakiye yazar; peşinlik IslemTipi = 1'dir (CTR-SEC-BAKIYE-01). - İşlem var, defter yok durumunda tetikleyicinin kapalı olabileceğini atlamak → sys.triggers kontrolü (H-006, PB-029); açıldıktan sonra kapalı dönemdeki işlemler DÜZELT → kaydet ile yeniden işletilir. - Bakiyeyi düzeltmek için Cari.BakiyeIslem'e elle dokunmak ya da Repair.BalanceRepair çalıştırmak → yasak; kaynak satırı DÜZELT ile düzelt (TD-BALANCEREPAIR). - Yetkisiz ekranın "hata vermeden açılmadığını" bilmemek → düğme yok, DÜZELT sessiz; kullanıcı grubu yetkisi (H-012). - Limit uyarısında limitin yalnız ÇIKIŞ ve peşin olmayan MADEN/HURDA/NAKİT'te çalıştığını bilmemek (WF-MADEN-GIRIS-NORMAL adım 4).

Geliştirici - Tarih ile Vade'yi, VaryantId ile ürün varyantını, StokId'nin koda göre farklı tabloya işaret ettiğini karıştırarak JOIN kurmak (kitapçık §8.5; FIELD-CARI-ISLEMLER-STOKID.md). - Milyemi 916 sanıp çarpmak → veri 0,916'dır. - IslemTuru için yalnız 0/1'i düşünmek → VADELİ 4/5 yazar; tetikleyicinin stok CASE'i 4/5'i tanımaz (GAP-05-01). - Bakiye işaretini ekrandaki gibi (alacak artı) varsaymak → defterde artı = borç; ekran × −1 yapar (BR-YON-007). - Hacim raporunu Stok.StokHaraketleri/Cari.BakiyeIslem üzerinden yazmak → RESMİ satırlar kaybolur. - Yeni bir tip/kod eklerken tetikleyicinin IslemKodu/IslemTipi dallarını güncellemeyi unutmak → satır yazılır, defter oluşmaz; ENUM-ISLEMTIPI.md'deki 12–15 kodları DB kod tablosunda yoktur (CTR-002/044). - Maliyet kolonunu metal dahil maliyet sanmak → yalnız işçilik TL'dir (CTR-SEC-MALIYET-01).

Kaynaklar: ../ERPGOLD_WIKI/12_Support/SymptomChains/SYM-BAKIYE.md, SYM-TANIMLAMA.md, SYM-EGITIM.md; ../ERPGOLD_WIKI/12_Support/KnownIssues/H-006, H-012, H-036, H-037, H-043, H-081, H-103…H-107; playbook'lar PB-028, PB-030, PB-045, PB-060.


Bölüm sonu sınavı

Kolay (5)

  1. Cari İşlemler ekranında işlem yapmadan önce yapılması zorunlu üç seçim nedir?
  2. MADEN ekranında HAS alanı hangi iki alandan hesaplanır? 100 g, milyem 0,585 için has kaçtır?
  3. Kullanıcı hangi tabloya yazar; stok ve bakiye defterlerini kim üretir?
  4. İşlem tipi PEŞİN seçildiğinde bakiye defteri yazılır mı? Kasa hareketi yazılır mı?
  5. Bir işlem ekranındaki "Tarih" kutusu hangi kolona yazar; işlem tarihi nereden gelir?

Orta (5)

  1. NAKİT ekranında BakiyeId neden her zaman 0'dır ve buna rağmen bakiye neden yazılır?
  2. GİRİŞ yönlü bir maden işleminde bakiye defterindeki satırın işareti artı mı eksi mi? Bu, bakiye kartında hangi sütunda ve hangi renkte görünür?
  3. VARYANT alanı ne tutar? Bir arbitraj çiftinde birinci ve ikinci satırın VaryantId değerleri nedir?
  4. RESMİ (tip 11) bir hurda alımı kaydedildiğinde hangi tablolar değişir, hangileri değişmez? Hacim raporu için bunun sonucu nedir?
  5. Bir işlemi DÜZELT ile kaydettiğinde tetikleyici defterlerde tam olarak ne yapar? Kurlar yeniden çekilir mi?

Senaryo (5)

  1. Firma müşteriden 500 g hurda aldı (milyem 0,700) ve karşılığını müşterinin USD cari hesabına yazdı (NORMAL, BİRİM USD, has alış 4.000 TL/g, USD/TL 40 — örnek kurlar). Stok ve bakiye açısından ne beklenir? Hangi satırlar oluşur?
  2. Gişede Mehmet Kaya 2.000 EUR sattı, TL aldı, tip PEŞİN. Kasa raporunda ve müşteri ekstresinde ne görünür? Aynı işlemi yanlışlıkla NORMAL girseydi ne olurdu?
  3. Kuyumcu Selim'in hesabına virman yapıldı; Selim'de satır var, karşı hesap Atölye Kemal'de yok. Olası sebep, doğru düzeltme adımı ve yanlış düzeltme adımı nedir?
  4. Destek çağrısı: "İşlem girdim, listede görünüyor ama bakiye ve stok hiç değişmedi, hata da yok." İlk üç kontrolün nedir?
  5. ÖRNEK ALTIN A.Ş. muhasebecisi Ali Çelik "cari işlemler stok üretmez, bu yüzden stok raporu yanlış" diyor. Kuyumcu kurulumu için bu iddiayı gerçek veriye dayanarak nasıl değerlendirirsin?

Cevap anahtarı

  1. Hesap (Hesap Adı), kasa ve tarih; ardından TAMAM. Eksikse "Sube,Kasa veya Hesap Seçili Değil." — SCR-IFTRANSACTION, BR-KASA-003.
  2. HAS = MİKTAR × MİLYEM; 100 × 0,585 = 58,5 g — BR-HESAP-001.
  3. Yalnız Cari.Islemler; Cari.AcceptTransaction tetikleyicisi Stok.StokHaraketleri, Cari.BakiyeIslem, Cari.History üretir — BR-DEFTER-URETIMI, FLOW-ISLEM-GENEL.
  4. Bakiye yazılmaz (tip=1 şartı); kasa hareketi yazılır: BİRİM parasının nakit stoğuna GİRİŞ'te −TUTAR, ÇIKIŞ'ta +TUTAR — BR-TIP-002, BR-TIP-003.
  5. Vade kolonuna; işlem tarihi hesap seçim panelindeki tarihten (iTransactionInfo.Tarih) gelir — SCR-IFMADEN "Bilinen kusurlar", H-081.
  6. BakiyeId "malın hangi birime yazılacağı"dır; nakitte mal zaten paradır, program 0 bırakır. Tetikleyici nakit için mal satırına bakmaz, tip≠PEŞİN ve Tutar≠0 ise TUTAR satırı yazar. BakiyeId=0 ≠ peşin — BR-BAKIYE-002, CTR-SEC-BAKIYE-01, TRG satır 505-536.
  7. Eksi (Has = −abs, Tutar = −abs); bakiye kartında ALACAK sütunu, yeşil (A) — BR-YON-002, BR-YON-007.
  8. Karşı işlemin Id'si; birinci satır −1, ikinci satır birincinin Id'si — kitapçık §5.4, §8.5; FIELD-CARI-ISLEMLER-VARYANTID.
  9. Yalnız Cari.Islemler ve Cari.History değişir; stok ve bakiye defteri yazılmaz (TRG satır 367). Hacim raporu stok/bakiye kaydından yazılırsa belge kontrol satırları (tip 11) görünmez; hacim Cari.Islemler'den okunur — BR-TIP-004, kitapçık §5.5.
  10. O IslemId'ye ait tüm BakiyeIslem ve StokHaraketleri (Bolum=0) satırlarını siler, yeni değerlerle yeniden yazar; kurlar yeniden çekilmez, kayıt anındaki kur fotoğrafı korunur — BR-STOK-006, BR-KUR-003.
  11. HURDA GİRİŞ NORMAL: has 350 g. Stok defteri: hurda +500 g / has +350. Bakiye defteri: mal satırı (BakiyeId=HAS) −350 (müşteri alacaklı); para satırı TUTAR≠0 ise (USD) — hurda NORMAL'de fiyat paneli gizli olduğundan Tutar boş kalır ve yalnız has satırı oluşur; USD'ye yazmak için ya PEŞİN/BEDELLİ gibi fiyatlı tip ya da ayrı bir ÇEVİR (HAS → USD) gerekir. Kasa değişmez. Not: BEDELLİ/MIKTAR tipi seçilseydi BakiyeId 0 olur, has yerine USD tutar satırı yazılırdı (BR-BAKIYE-002) — BR-HURDA-002, BR-BAKIYE-001, TRG satır 375-379, 450-460.
  12. Kasa raporu: EUR −2.000, TL +tutar (iki stok hareketi); ekstre: hiçbir hesapta satır yok (peşin bakiye yazmaz). NORMAL girilseydi: EUR stoğu yine −2.000 (nakit dalı), TL kasaya girmez, seçili hesaba TL bakiye +tutar (borçlu) yazılırdı — "bakiye değişti ama kasaya para girmedi" (H-104) — BR-TIP-003, BR-STOK-003, TRG satır 385-394.
  13. İkinci satır yazılamamış ("Karşı Hesaba İşlem Yapılamadı." — Kemal pasif/evrak eksik/şifreli) ya da eski sürümde tek taraf düzeltilmiş. Doğru: tek kalan satırı İPTAL ("karşı işlem de iptal edilsin mi?" EVET), Kemal'deki engeli gider, virmanı yeniden gir. Yanlış: virmanı DÜZELT ile düzeltmeye çalışmak (düzeltilemez) ya da Kemal'e elle tek satır yazmak (RefNo bağı olmaz) — H-106, BR-VIRMAN-002, BR-DUZELTME-006.
  14. (1) İşlem tipi RESMİ/MAHSUP mu (TP sütunu)? (2) Tetikleyici Cari.AcceptTransaction kapalı mı (sys.triggers is_disabled)? (3) Satırın StokId/Miktar/Tutar/BakiyeId değerleri kurala uyuyor mu (miktar 0, stok boş)? — H-006, PB-028/PB-029, SYM-BAKIYE.
  15. Yanlış. Kural "StokId dolu ve Miktar≠0 ise stok yazılır"; kuyumcu kurulumunda cari (BakiyeId>0) satırların %60,3'ü stok üretmiştir (MADEN NORMAL cari 152.700 satır, %100 stok). "Cari işlem stok üretmez" döviz bürosu gözlemidir (%1,4). Stok raporu yanlışsa sebep başka yerde aranır (kasa seçimi, transfer kabulü, tetikleyici) — BR-DEFTER-URETIMI CTR-038, FLOW-ISLEM-MATRISI.

Bunu anladıysan devam et

6. ERPGOLD İşlemleri ve Varyantları

Her işlem ailesi aynı şablonla anlatılır: Nedir? → Neden yapılır? → Kim yapar? → Örnek → İşlemden önce → ERPGOLD'da ne yapılır? → İşlemden sonra → Neden? → Veritabanında ne olur? → Raporda ne olur? → Yanlış yapılırsa → Sık yapılan hatalar → Destek senaryoları → Varyantlar. Bölüm sonunda varyant kataloğu, işlem matrisi ve sınav vardır.

6. İşlemler — tezgâhta olan her şeyin ERPGOLD'daki karşılığı (1. yarı)

Önceki bölümlerde iki kavramı ayırmayı öğrendin: stok (kasada fiziksel olarak ne var) ve bakiye (kim kime ne borçlu). Bu bölümde artık gerçek işe geçiyoruz: tezgâhta bir müşteri "şunu alayım, bunu bozdurayım, borcumu şuna geçirin" dediğinde ERPGOLD'da hangi düğmeye basılır, kaydet denince hangi defterler nasıl değişir ve neden öyle değişir.

ERPGOLD'da her kayıt bir işlem ailesine aittir; aileyi IslemKodu adlı bir sayı belirler (0 TAKOZ, 1 MADEN, 2 HURDA, 3 NAKİT, 4 ÇEVİR, 5 HİZMET, 6 VADELİ, 11 VİRMAN, 14 ÇEŞNİ …). Her ailenin kendi ekranı vardır ve her ekran aynı iki soruyu sorar: yön (IslemTuru: GİRİŞ/ÇIKIŞ ya da ALIŞ/SATIŞ) ve tip (IslemTipi: NORMAL, PEŞİN, RESMİ …). Bu üç sayı — kod, yön, tip — ile bir de "cari hesaba yazılacak mı" bilgisi (BakiyeId) birleşince, program hangi defteri yazacağına kendi karar verir. Kullanıcı yalnız bir tabloya (Cari.Islemler) yazar; gerisini tetikleyici üretir (bkz. ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md).

BUNU KARIŞTIRMA - İşlem ≠ Stok hareketi. İşlem, tezgâhta olan olayın kaydıdır; stok hareketi o kaydın türetilmiş bir sonucudur. Bir işlem sıfır, bir ya da iki stok hareketi üretebilir. - Alış ≠ Giriş / Satış ≠ Çıkış. Ekranlar mal için GİRİŞ/ÇIKIŞ (mal içeri/dışarı), vadeli için ALIŞ/SATIŞ, virman ve çevir için ALACAK/BORÇ etiketini kullanır; hepsi aynı IslemTuru kolonuna sayı olarak yazılır (0 GİRİŞ · 1 ÇIKIŞ · 2 ALACAK · 3 BORÇ · 4 ALIŞ · 5 SATIŞ). - Peşin ≠ BakiyeId=0. Peşin (tip 1) "bakiye defteri yazma" demektir. BakiyeId=0 ise "has satırı için birim seçilmedi" demektir; NAKİT işlemleri hep BakiyeId=0 ile yazılır ama bakiye üretir (CTR-SEC-BAKIYE-01).

Bu bölümde on işlem ailesi aynı şablonla anlatılır: Nedir? → Neden yapılır? → Kim yapar? → Örnek → İşlemden önce → ERPGOLD'da ne yapılır? → İşlemden sonra → Neden? → Veritabanında ne olur? → Raporda ne olur? → Yanlış yapılırsa? → Sık yapılan hatalar → İlgili destek senaryoları → Varyantlar. "Varyantlar" başlığındaki satır sayıları gerçek veriden (2026-09-12 sayımı, silinmişler hariç) gelir: TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md. Veride olmayan bir kombinasyon için "veride yok" yazıyoruz; tahmin etmiyoruz. Kanonik eğitim senaryoları (../ERPGOLD_WIKI/13_Training/Scenarios/) burada kopyalanmaz, bağlanır.

ÖRNEK ALTIN A.Ş. — Pazartesi sabahı, MERKEZ kasası (her örnek buradan başlar) Nakit: 500.000 TL · 100.000 USD · 20.000 EUR. Stok: 2.000 g has · 1.500 g 22 ayar bilezik (0,916 → 1.374 g has) · 800 g 14 ayar (0,585 → 468 g has) · 300 g karışık hurda (ortalama 0,700 → 210 g has). Cari: Kuyumcu Selim 150 g HAS borçlu (bize) · Döviz Nuri 5.000 USD alacaklı (bizden) · Toptancı Yusuf 400 g HAS alacaklı (bizden). Kurlar (örnek, güncel değil): USD 40,00/40,20 · EUR 46,00/46,30 · has gram 4.000/4.030 TL · ons 3.100 USD · 22 ayar işçilik 150 TL/g. Bakiye işareti: bakiye defterinde artı = müşteri bize borçlu, eksi = biz müşteriye borçluyuz (../ERPGOLD_WIKI/07_BusinessRules/BR-YON-007.md). Ekranlar bunu ALACAK/BORÇ sütunlarına çevirerek gösterir.

# Aile (IslemKodu) Ekran Neyi kaydeder Stok defteri Bakiye defteri Veride (V2 / KUYUMCU satır)
6.1 MADEN (1) MADEN ayarlı/mamul altın-gümüş evet cari ise 22.328 / 152.928
6.2 HURDA (2) HURDA hurda ve külçe evet cari ise 4.875 / 66.614
6.3 NAKİT (3) NAKİT para: tahsilat, ödeme, döviz alış-satış evet NORMAL ise 1.250.144 / 136.185
6.4 VADELİ (6) VADELİ ileri tarihli taahhüt hayır evet 241.596 / 144.383
6.5 HİZMET (5) HİZMET masraf/gelir, mal yok hayır evet 7.870 / 7.079
6.6 VİRMAN (11) VİRMAN bakiyeyi hesaptan hesaba taşıma hayır evet (2 hesap) 532 / 112.006
6.7 ÇEVİR (4) ÇEVİR bakiyeyi birimden birime çevirme hayır evet (2 birim) 0 / 1 (GAP)
6.8 PARİTE / ARBİTRAJ NAKİT (tip 10) · PARİTE (X) · VADELİ (ARBİTRAJ) döviz→döviz takas yola göre yola göre tip 10: veride yok · vadeli −2: 35.097 / 5
6.9 TAKOZ (0) TAKOZ G / TAKOZ C külçe (takoz) giriş-çıkış evet (adet) evet (çok metal) 0 / 21.236
6.10 ÇEŞNİ (14) ÇEŞNİ numune gramını hesaba yazma hayır evet 0 / 120

Sayılar _data/islem_matrisi.json'dan; RESMİ (tip 11) ve MAHSUP (tip 12) satırları hiçbir deftere yazmadığı için tabloda "evet" bu tipleri kapsamaz. Döviz bürosu kurulumu (ERPGOLDV2) işlemlerin %83'ünü NAKİT ile, kuyumcu kurulumu (ERPGOLDV2_KUYUMCU) MADEN + VADELİ + VİRMAN ile yürütür; TAKOZ ve ÇEŞNİ yalnız kuyumcuda vardır.


6.1 MADEN — ayarlı ve mamul altının alınıp satılması (IslemKodu 1)

Nedir?

Seviye 1 — Çok basit. Ali'nin annesi kuyumcudan bilezik alıyor. Bilezik "22 ayar" ve 20 gram. Kuyumcu iki şey söyler: bileziğin içindeki saf altın (has) ne kadar, bir de bileziği yapan ustanın emeği (işçilik) ne kadar. MADEN işlemi tam olarak bu iki şeyi kaydeder: kaç gram, hangi saflıkta, işçiliği ne.

Seviye 2 — İşletme mantığı. Kuyumcu için "maden", hurda olmayan, işlenmiş her türlü altın ve gümüştür: bilezik, zincir, künye, gram altın, çeyrek/yarım/tam ziynet. Sektörde altın gram cinsinden ama has karşılığıyla konuşulur: 20 g 22 ayar bilezik = 20 × 0,916 = 18,32 g has. Fiyat iki parçadır: has altın (günün kuruyla, çoğu zaman para değil altın olarak hesaba yazılır) ve işçilik (para olarak). Kavramlar: ../ERPGOLD_WIKI/02_Sector/Concepts/SEC-HAS.md, SEC-MILYEM.md, SEC-ISCILIK.md.

Seviye 3 — ERPGOLD. MADEN ekranı (../ERPGOLD_WIKI/05_Screens/SCR-IFMADEN.md) stok listesinde yalnız "hurda olmayan" aktif maden kartlarını gösterir. Müşteri mal getirdiyse GİRİŞ, mal aldıysa ÇIKIŞ seçilir. Tip NORMAL ise bedel cari hesaba yazılır; PEŞİN ise para kasadan geçer ve hesaba hiçbir şey yazılmaz.

Neden yapılır?

Bir kuyumcunun asıl işi budur: mal alıp satmak. Kayıt tutulmazsa üç soru cevapsız kalır — kasada kaç gram kaldı (stok), müşteri bize ne kadar borçlu (bakiye), bu satıştan ne kazandık (kâr). Kuyumcu kurulumunda tüm işlemlerin %34'ü MADEN'dir (../ERPGOLD_WIKI/14_Customers_Internal/Installations/INST-KUYUMCU.md); döviz bürosunda ise MADEN neredeyse tamamen peşin ziynet alım-satımıdır (20.276 peşin satıra karşı 746 cari satır).

Kim yapar?

Tezgâhta Zeynep Aksoy (satış) ya da Mehmet Kaya (kasiyer) girer. Büyük toptan satışlarda (cari) Ayşe Demir onaylar; Ali Çelik (muhasebe) gün sonunda maden stok ve kâr raporlarını kontrol eder.

Örnek

ÖRNEK ALTIN A.Ş. Salı sabahı Kuyumcu Selim 200 g 22 ayar bilezik alıyor, bedelini hesabına yazdırıyor (cari). İşçilik gram başına 150 TL. (Bölüm 7'deki haftalık hikâyede Selim'in 600 g'lık büyük alımı anlatılır; burada daha küçük, bağımsız bir örnek kullanıyoruz.)

Mal        : 22 AYAR BİLEZİK, 200,00 g, milyem 0,916
Has        : 200 × 0,916            = 183,20 g has   → hesabına ALTIN olarak yazılır
İşçilik    : 200 g × 150 TL/g       = 30.000,00 TL   → hesabına PARA olarak yazılır
Kasa       : dokunulmaz (bedel tahsil edilmedi)

İşlemden önce

Nerede Değer
Stok — 22 AYAR BİLEZİK (MERKEZ) 1.500 g (1.374 g has)
Kasa — TL 500.000 TL
Kuyumcu Selim — HAS bakiyesi +150,00 (150 g borçlu)
Kuyumcu Selim — TL bakiyesi 0

ERPGOLD'da ne yapılır?

  1. ANA MENÜ ▸ Hesap Yönetimi ▸ Cari Hesaplar ▸ Cari İşlemler; Hesap Adı: Kuyumcu Selim, Kasa: MERKEZ, TAMAM.
  2. M - MADEN düğmesi. Ekran her zaman ÇIKIŞ ile açılır (../ERPGOLD_WIKI/06_Workflows/WF-MADEN-GIRIS-NORMAL.md adım 2); başlık kırmızıdır. Bu örnekte ÇIKIŞ doğru: mal müşteriye gidiyor.
  3. İşlem tipi: NORMAL.
  4. STOK KODU: 22 AYAR BİLEZİK → MILYEM 0,916 karttan gelir. ADET: 4 (varsa) · MIKTAR: 200,00 → HAS alanı otomatik 183,20.
  5. FIYAT: 150 · F.TIPI: Miktar (işçilik gram başına) · BIRIM: TL → TUTAR otomatik 30.000,00.
  6. F2 - KAYIT → "İşlemi Kayıt Etmek İstiyor musunuz?" → EVET. Satır işlem listesine düşer, bakiye kartı yenilenir.

İşlemden sonra

Nerede Önce Sonra Neden
Stok — 22 AYAR BİLEZİK 1.500 g 1.300 g (1.190,80 g has) mal fiziksel olarak çıktı
Kasa — TL 500.000 500.000 NORMAL: para el değiştirmedi
Selim — HAS +150,00 +333,20 183,20 g has borç eklendi
Selim — TL 0 +30.000 işçilik borcu eklendi

Peşin olsaydı (perakende müşteri 10 g bilezik alıp parasını öderse): has 9,16 g × 4.030 = 36.914,80 TL + işçilik 1.500 TL = 38.414,80 TL kasaya girer; stok −10 g; bakiye defteri hiç yazılmaz. Peşin satışta fiyatın has'a mı grama mı göre geldiği bir ayardır (../ERPGOLD_WIKI/09_CodeArchitecture/CONFIGURATION.md#cfg-pesinkurtipi, H-028).

Neden?

PEKİ NEDEN? Altın sattık ama TUTAR alanına 30.000 TL yazıldı; altının değeri (183,20 × 4.030 ≈ 738.000 TL) nerede? Kuyumculukta cari müşteriye altın "altın olarak" borç yazılır — Selim bize 183,20 g has borçludur, TL değil. Altının fiyatı her gün değiştiği için borcu TL'ye çevirmek fiyat riskini üstlenmek olurdu. TUTAR yalnız işçiliktir (../ERPGOLD_WIKI/07_BusinessRules/BR-HESAP-007.md). Selim ileride ya has getirir (HURDA/MADEN GİRİŞ) ya da borcunu o günün kuruyla TL'ye çevirtir (ÇEVİR, §6.7).

PEKİ NEDEN? Stok azalırken bakiye artıyor — bu bir çelişki mi? Hayır. Stok "kasada ne var", bakiye "müşteri bize ne borçlu" sorusuna cevaptır. Mal bizden çıktı (stok −), karşılığı hesabına yazıldı (bakiye +). İkisi aynı olayın iki yüzüdür.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler — 1 satır (../ERPGOLD_WIKI/08_Database/Tables/TBL-CARI.ISLEMLER.md):

Kolon Değer Anlam
IslemKodu / IslemTuru / IslemTipi 1 / 1 / 0 MADEN / ÇIKIŞ / NORMAL
BakiyeId HAS biriminin Id'si (>0) has satırının yazılacağı birim (BR-BAKIYE-002)
StokId / Kodu 22 AYAR BİLEZİK kartı
Adet / Miktar / AuMilyem 4 / 200,00 / 0,916 has = 183,20 (milyem ondalık saklanır, 1000'e bölme yok)
BirimId / Birim / Fiyat / Tutar TL / TL / 150 / 30.000 işçilik
HasKur 4.000 kayıt anı kur fotoğrafı (BR-KUR-001)
Vade ekrandaki tarih TxtTarih kontrolü Tarih'e değil Vade'ye yazar (TD-40)

Tetikleyici Cari.AcceptTransaction (../ERPGOLD_WIKI/08_Database/Triggers/TRG-CARI.ACCEPTTRANSACTION.md; satır numaraları o makaledeki SQL tanımına göre):

  • Önce o IslemId'nin eski türetilmiş satırlarını siler (makale satır 365–366) — düzeltmede de aynı yol.
  • Stok defteriIslemKodu=1 or 2 dalı (satır 378–382): Stok.StokHaraketleri StokTipi 1, Adet −4, Miktar −200, Milyem 0,916, Has −183,20, Maliyet 0 (çıkışta 0; girişte yalnız işçilik × kur — metal maliyeti burada saklanmaz, CTR-SEC-MALIYET-01).
  • Bakiye defteri — MADEN/HURDA/MODEL dalı (satır 439–464): ÇIKIŞ → @Has=abs, @Tutar=abs (borç). BakiyeId>0 and Miktar<>0 and IslemTipi<>1 → HAS +183,20 (satır 453–457); IslemTipi<>1 and Tutar<>0 → TL +30.000 (satır 459–463).
  • İzCari.History "Yeni Kayıt".

PEŞİN (tip 1) olsaydı: bakiye dalı iki koşulda da IslemTipi<>1 gördüğü için hiç satır yazmaz; buna karşılık satır 393–397 nakit stoğuna StokId=@BirimId (TL), Miktar +Tutar yazar (ÇIKIŞ'ta para kasaya girer, BR-TIP-003).

Matris kanıtı: KUYUMCU MADEN NORMAL cari 152.700 satır → stok %100 / bakiye %100; V2 MADEN PEŞİN 20.276 → stok %100 / bakiye %0; V2 MADEN NORMAL cari 746 → %100/%100; KUYUMCU'da BakiyeId=0 ve tutar 0 olan 226 NORMAL satır stok üretmiş, bakiye üretmemiş (has satırı için birim yok, tutar satırı için tutar yok) — tetikleyicinin iki koşulu gerçek veride birebir görülür.

Akış ve alanlar: TECHNICAL_WIKI/FLOWS/FLOW-IFMADEN.md, TECHNICAL_WIKI/FIELDS/FIELD-CARI-ISLEMLER-BAKIYEID.md, FIELD-CARI-ISLEMLER-AUMILYEM.md.

Raporda ne olur?

  • Bakiye Ekstresi (../ERPGOLD_WIKI/10_Reports/Menu/RPT-1.mdRFN-REPORTS.BAKIYELISTESI): Selim'in HAS ve TL sütunlarında BORÇ artar.
  • Maden Stok Hareket (RPT-7.mdRFN-REPORTS.MADENSTOKEXTRESI): 22 AYAR BİLEZİK "çıkan 200 g"; Maden Stok Özet (RPT-8.md) has toplamı düşer.
  • Maden Satış Kâr (RPT-37.md): peşin satışta Satis − Maliyet; cari satışta metal maliyeti günün kuruyla (METRIC_DICTIONARY.md MET-KAR, MET-MALIYET).
  • İşlem Raporu (RFN-REPORTS.ISLEMRAPORU): satır kısaltması MCN (Maden-Çıkış-Normal); peşinde MCP.
  • Hacim: MET-SATIS (IslemTuru 1/5), MET-HAS — has ile brüt gramı karıştırmak %8–40 hata demektir.

Yanlış yapılırsa ne olur?

  • Yön ters (GİRİŞ yerine ÇIKIŞ): stok 200 g artar, Selim 183,20 g alacaklı olur — ilk bakışta "bakiye ters" şikâyeti (H-103).
  • Tip yanlış (PEŞİN yerine NORMAL): kasaya girmesi gereken para girmemiş, müşteri borçlu görünür; tersi olursa kasada olmayan para görünür (H-104).
  • Milyem yanlış: has yanlış → bakiye, pozisyon ve bilanço yanlış; kart milyemi kilitliyse ekranda değiştirilemez (H-027).
  • Kur listesi boş: HAS/TUTAR 0 gelir, "Lütfen Tutar Giriniz." (../ERPGOLD_WIKI/12_Support/Playbooks/PB-036.md).
  • Düzeltme yerine ikinci bir işlem girmek çift kayıt yaratır; doğru yol DÜZELT/İPTAL (PB-030.md, PB-031.md) — tetikleyici defterleri yeniden üretir.

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: ekran ÇIKIŞ ile açılır, müşteri mal getirdiğinde GİRİŞ'e çevirmeyi unutur (H-103). PEŞİN'de BİRİM olarak nakit olmayan birim seçer → "Lütfen Tutar Giriniz." (H-039). ADET zorunlu üründe adet girmez → "Lütfen Adet Giriniz." (H-048). Müşteri (işletme sahibi): "Peşin satışta fiyat has'a göre geliyor, gram istiyorum" (H-028, PROC-109); "işçiliği TL almak istiyorum" (H-051, PROC-113.md); "milyem yazıyorum siliniyor" (H-049 — hesap kartındaki müşteriye özel fiyat/işçilik). Destek personeli: "bakiye tutmuyor" çağrısında önce IslemTipi ve BakiyeId'ye bakmadan defterleri elle düzeltmeye kalkmak; doğru sıra PB-028.md (10 adım) ve PB-059.md. Geliştirici: Maliyet kolonunu metal maliyeti sanmak (yalnız işçilik TL'dir); VaryantId'yi ürün varyantı sanmak (karşı işlem Id'sidir, TD-39); TxtTarih'in Vade'ye yazdığını unutmak (TD-40).

İlgili destek senaryoları

Kanonik senaryolar: ../ERPGOLD_WIKI/13_Training/Scenarios/SCN-NORMAL-MADEN.md (cari bilezik satışı), SCN-PESIN-MADEN.md (peşin yarım altın), kitapçık §5.1 (gerçek peşin alım fişi). Belirti zincirleri: ../ERPGOLD_WIKI/12_Support/SymptomChains/SYM-BAKIYE.md, SYM-MADEN.md. Playbook: PB-028, PB-030, PB-057, PB-059. Süreç: PROC-109, PROC-113, PROC-183. Bilinen sorun: H-027, H-028, H-048, H-049, H-051, H-103, H-104.

Varyantlar

Gerçek veriden bulunan kombinasyonlar (_data/islem_matrisi.json, 2026-09-12):

Varyant Yön Tip Cari? V2 satır KUYUMCU satır Stok / Bakiye
Cari satış ÇIKIŞ NORMAL evet 288 124.524 evet / evet
Cari alış GİRİŞ NORMAL evet 458 28.176 evet / evet
Peşin satış ÇIKIŞ PEŞİN hayır 14.328 veride yok evet (mal + para) / hayır
Peşin alış GİRİŞ PEŞİN hayır 5.948 veride yok evet / hayır
Belge kontrol kaydı (RESMİ/FATURA) GİRİŞ / ÇIKIŞ RESMİ (11) evet 757 / 105 veride yok hayır / hayır
Emanet GİRİŞ / ÇIKIŞ EMANET (4) evet 338 / 25 1 / 1 evet / evet
Miktar tipi GİRİŞ / ÇIKIŞ MİKTAR (5) hayır 43 / 38 veride yok evet / evet (tutar satırı)
Hesapsız NORMAL (BakiyeId 0, tutar 0) GİRİŞ NORMAL hayır veride yok 226 evet / hayır
Karşılık birimi TL 21.219 · HAS 1.109 HAS 152.349 · GUM 577
BEDELLİ (2) / İADE (3) veride yok veride yok
Şubeli / şubesiz matriste şube ekseni yok → GAP

Okuma: döviz bürosu madeni peşin ziynet olarak alıp satar (USD/EUR karşılığı bile yok — karşılık hep TL); kuyumcu ise madeni cari ve has karşılığı ile çalışır, peşin/resmi tipleri hiç kullanmaz.


6.2 HURDA — bozdurulan altın ve külçe (IslemKodu 2)

Nedir?

Seviye 1 — Çok basit. Mehmet'in babaannesi kırık bir bilezik ve tek kalmış bir küpeyi kuyumcuya götürüyor. Kuyumcu bunları takı olarak değil, içindeki altın kadar satın alır. Terazide tartar, saflığını ölçer, hesaplar. Buna "bozdurma", altına "hurda" denir.

Seviye 2 — İşletme mantığı. Hurdada işçilik yoktur; değer yalnız terazi gramı × ölçülen milyem = has'tır. Damgada 22 ayar yazsa da mihenk, XRF ya da ayar evi ölçümü esas alınır — damga yalan söyleyebilir (../ERPGOLD_WIKI/02_Sector/Concepts/SEC-HURDA.md, SEC-AYAR.md). Hurda perakendecinin günlük işidir; toptancı ve rafineri için ise eritilip takoz olacak ham maddedir (§6.9). Kuyumcu kurulumunda 13 ayda 66.614 hurda işlemi, ortalama milyem 0,913.

Seviye 3 — ERPGOLD. HURDA ekranı (../ERPGOLD_WIKI/05_Screens/SCR-IFHURDA.md) yalnız "hurda" işaretli stok kartlarını listeler (995 HURDA, 14 AYAR HURDA, KÜLÇE …). NORMAL tipte fiyat paneli yoktur: müşteri hasını hesabına alacak yazdırır (BR-HURDA-002). PEŞİN'de fiyat paneli açılır ve kasadan para çıkar.

Neden yapılır?

Hurda alımı kuyumcunun altın kaynağıdır: bozdurulan altın stokta birikir, atölyeye ya da rafineriye gider, yeni ürün olur. Kayıt tutulmazsa ne kadar has toplandığı, kime ne borçlanıldığı ve hurda stoğunun ortalama milyemi bilinemez; ayar riski (düşük milyem) fark edilmez.

Kim yapar?

Tezgâhta Zeynep Aksoy tartar ve ölçer; ödeme peşinse Mehmet Kaya kasadan verir. Atölye/rafineri ile cari hurda hareketlerini Ayşe Demir takip eder; Ali Çelik hurda stoğunun has toplamını bilançoda izler.

Örnek

ÖRNEK ALTIN A.Ş. Atölye Kemal, döküm artığı ve kırık parçalardan oluşan 120 g karışık hurda getiriyor; XRF ölçümü milyem 0,750. Bedel istemiyor, "hesabıma yaz" diyor (cari). (Bölüm 7'nin Çarşamba günü perakende müşteriden 200 g peşin hurda alımını anlatır; burada cari hali işleniyor.)

Miktar     : 120,00 g   milyem 0,750
Has        : 120 × 0,750            = 90,00 g has   → Kemal'in hesabına ALACAK
Tutar      : 0 (NORMAL'de fiyat yok)
Kasa       : dokunulmaz

İşlemden önce

Nerede Değer
Stok — KARIŞIK HURDA 300 g (ortalama 0,700 → 210 g has)
Kasa — TL 500.000 TL
Atölye Kemal — HAS bakiyesi 0

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ Hesap: Atölye Kemal ▸ TAMAM ▸ H - HURDA.
  2. Ekran ÇIKIŞ ile açılır (BR-HURDA-001); müşteri hurda getirdiği için GİRİŞ'e çevrilir — başlık yeşile döner.
  3. İşlem tipi: NORMAL (fiyat paneli gizlenir).
  4. KODU: KARIŞIK HURDA · MİKTAR: 120,00 (terazi düğmesiyle okunabilir, ../ERPGOLD_WIKI/11_Integrations/INT-TERAZI.md) · MILYEM: 0,750 → HAS alanı 90,00. HAS elle yazılırsa program milyemi geriye hesaplar (WF-HURDA-GIRIS-NORMAL.md adım 3).
  5. F2 - KAYIT → EVET.

İşlemden sonra

Nerede Önce Sonra Neden
Stok — KARIŞIK HURDA 300 g / 210 g has 420 g / 300 g has hurda fiziksel olarak girdi; ortalama milyem 0,714'e çıktı
Kasa — TL 500.000 500.000 bedel ödenmedi
Atölye Kemal — HAS 0 −90,00 90 g has alacaklı (biz ona borçluyuz)

Peşin olsaydı (sokaktan gelen müşteri 20 g 14 ayar, 0,585 → 11,70 g has): fiyat paneli açılır, has fiyatı 4.000 TL → 46.800 TL kasadan çıkar, stok +20 g, bakiye yazılmaz. Alış fiyatı satış kuru değil alış kurudur; pano satış kurunu getirirse elle düzeltilir (H-045).

Neden?

PEKİ NEDEN? Hurdada neden fiyat sorulmuyor? Cari hurda alımında müşteriye para değil altın borçlanılır: Kemal bize 90 g has verdi, biz ona 90 g has borçluyuz. Fiyat ancak bu borç para ile ödenecekse (NAKİT ÇIKIŞ) ya da TL'ye çevrilecekse (ÇEVİR) gündeme gelir. Bu yüzden NORMAL hurda satırı yalnız tek bakiye satırı üretir — has satırı; tutar 0 olduğundan para satırı yoktur.

BUNU KARIŞTIRMAHas ≠ Gram. Stok defterinde 120 g yazar, bakiye defterinde 90 g. İkisi de doğrudur: biri terazi, öbürü saflık.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler — 1 satır: IslemKodu 2 · IslemTuru 0 (GİRİŞ) · IslemTipi 0 · BakiyeId HAS birimi (>0) · StokId/Kodu KARIŞIK HURDA · Miktar 120 · AuMilyem 0,750 · Fiyat/Tutar/Birim boş / 0 / boş (BR-HURDA-002) · HasKur 4.000.

Tetikleyici (TRG-CARI.ACCEPTTRANSACTION.md):

  • Stok: IslemKodu=1 or 2 dalı (satır 378–382) → Stok.StokHaraketleri StokTipi 1, Adet 0, Miktar +120, Milyem 0,750, Has +90,00, Maliyet = işçilik × kur = 0.
  • Bakiye: MADEN/HURDA dalı (satır 439–464), GİRİŞ → @Has = 0−abs(@Has); BakiyeId>0 and Miktar<>0 and IslemTipi<>1 → HAS −90,00; Tutar=0 olduğu için satır 459 koşulu sağlanmaz, para satırı yok.
  • Kemal'in HAS bakiyesi: 0 − 90 = −90.

PEŞİN olsaydı: has satırı yazılmaz; satır 393–397 nakit stoğuna TL −46.800 (GİRİŞ'te 0−@Tutar, kasadan para çıkar) yazar; stok maden satırı yine +20 g. RESMİ (tip 11) olsaydı: satır 370 koşulu (IslemTipi<>11 and <>12) yüzünden hiçbir defter yazılmaz — kitapçık §5.5'teki 54.000 g'lık gerçek resmi hurda fişi tam olarak budur.

Matris kanıtı: KUYUMCU HURDA NORMAL cari 66.578 → stok %100 / bakiye %100; tutarı olmayan 36 hesapsız satır stok üretmiş, bakiye üretmemiş. V2: NORMAL cari 2.256 (%100/%100), PEŞİN 1.781 (%100/%0), RESMİ 813 (%0/%0). KUYUMCU'da hurdanın Birim kolonu hep boş (66.578 satır) — fiyat panelinin kapalı olduğunun veri kanıtı.

Akış: TECHNICAL_WIKI/FLOWS/FLOW-IFHURDA.md; alanlar FIELD-CARI-ISLEMLER-MIKTAR.md, FIELD-CARI-ISLEMLER-AUMILYEM.md.

Raporda ne olur?

  • Bakiye Ekstresi (RPT-1): Kemal HAS ALACAK 90,00; TL karşılığı NET = −Bakiye × alış kuru (BR-YON-007).
  • Maden Stok Hareket / Özet (RPT-7, RPT-8): hurda kartı da maden stoğudur; "giren 120 g", has toplamı +90.
  • İşlem Raporu: kısaltma HGN; tutar sütunu 0. Resmi hurda RGN'de görünür ama stok/bakiye raporlarında görünmez → hacim daima Cari.Islemler'den okunur (MET-ISLEM-HACMI).
  • Belgelendirilmiş işlemler için Fatura Kontrol (RPT-13) ve Resmi Stok Hareket (RPT-14, belgelendirilmiş stok görünümü).

Yanlış yapılırsa ne olur?

  • Yön GİRİŞ'e çevrilmedi: stok azalır, Kemal 90 g borçlu görünür (H-103). En sık hurda hatası.
  • Milyem düşük/yüksek girildi: has ve dolayısıyla borç yanlış; hurda stoğunun ortalama milyemi bozulur, sonraki çıkışlarda maliyet "tuhaf" gelir (H-120, PB-058).
  • MAHSUP tipi seçildi: fiyat girilebilir ama tutar 0 kaydedilir (H-054) — MAHSUP devir/sayım içindir.
  • Milyem 1'den büyük: kuyumcu verisinde 1,01 milyemli hurda satırı var; program üst sınır kontrolü yapmıyor olabilir (GAP-SEC-MILYEM-01).

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: GİRİŞ/ÇIKIŞ'ı unutmak; peşin alışta satış kuruyla ödeme yapmak (H-045); terazi değeri gelmeyince elle yanlış gram yazmak (H-159, PB-027). Müşteri: "Hurda F.TİPİ seçimim geri dönüyor" (H-053); "HURDA ekranı açılıyor ama F2 çalışmıyor" (H-029 — çoğunlukla hurda kartı tanımsız, PROC-182). Destek personeli: resmi (tip 11) hurdanın stok üretmemesini "hata" sanıp tetikleyici aramak; önce tipe bak (SYM-BAKIYE, PB-042). Geliştirici: hurdada Birim boş olduğu için Birim'e INNER JOIN yapan sorgunun 66 bin satırı düşürmesi; AuMilyem ondalık (0,750), binde (750) değil.

İlgili destek senaryoları

SCN-HURDA.md (cari hurda, NORMAL), SCN-RESMI-ISLEM.md ve kitapçık §5.5 (resmi hurda — defter üretmez), WF-HURDA-GIRIS-PESIN.md. Zincirler: SYM-MADEN.md, SYM-BAKIYE.md, SYM-FATURA.md (resmi). Playbook: PB-027, PB-058, PB-059. Bilinen sorun: H-029, H-045, H-053, H-054, H-103, H-120.

Varyantlar

Varyant Yön Tip Cari? V2 satır KUYUMCU satır Stok / Bakiye
Cari alış (has alacak) GİRİŞ NORMAL evet 1.112 40.462 evet / evet (yalnız has)
Cari çıkış (külçe/has verme) ÇIKIŞ NORMAL evet 1.144 26.116 evet / evet
Peşin alış (TL öder) GİRİŞ PEŞİN hayır 909 veride yok evet (mal + para) / hayır
Peşin çıkış ÇIKIŞ PEŞİN hayır 872 veride yok evet / hayır
Belge kontrol kaydı (RESMİ/FATURA) GİRİŞ / ÇIKIŞ RESMİ (11) evet 342 / 471 veride yok hayır / hayır
Emanet GİRİŞ / ÇIKIŞ EMANET (4) evet 3 / 22 veride yok evet / evet
Hesapsız NORMAL (tutar 0) GİRİŞ NORMAL hayır veride yok 36 evet / hayır
Karşılık birimi TL 2.594 · boş 2.281 boş 66.578
USD/altın karşılıklı peşin hurda PEŞİN veride yok (V2'de karşılık yalnız TL)
Şubeli / şubesiz GAP (matriste ölçülmedi)

6.3 NAKİT — para hareketleri: tahsilat, ödeme, döviz alış-satışı (IslemKodu 3)

Nedir?

Seviye 1 — Çok basit. Ali harçlığından 100 doları kuyumcunun döviz gişesinde bozduruyor; gişe ona 4.000 TL veriyor. Gişedeki dolar arttı, TL azaldı. Başka bir gün Ali'nin babası kuyumcuya olan borcunu ödemeye geliyor; para kasaya giriyor, borcu azalıyor. İkisi de "para hareketi"dir; ERPGOLD ikisini de NAKİT işlemi olarak kaydeder.

Seviye 2 — İşletme mantığı. Döviz bürosunun asıl işi budur: para alıp para satmak, aradaki kur farkını (marj) kazanmak. Döviz satışında ayrıca BSMV (banka ve sigorta muameleleri vergisi) hesaplanır (../ERPGOLD_WIKI/18_Glossary/TERM-BSMV.md; oran mevzuata bağlıdır, bu kitaptaki ‰2 yalnız örnektir — GAP-MEVZUAT). Kuyumcu için NAKİT daha çok cari tahsilat/ödemedir: müşteri borcunu TL ile öder, tedarikçiye USD ödenir. Kavramlar: SEC-NAKIT.md, SEC-DOVIZ.md, SEC-KUR.md.

Seviye 3 — ERPGOLD. NAKİT ekranında (../ERPGOLD_WIKI/05_Screens/SCR-IFNAKIT.md) has, milyem, adet yoktur. Beş alanla çalışır: KODU (hangi para), MİKTAR, BİRİM (bakiyeye/kasaya hangi birimde yazılacak), FİYAT (kur), TUTAR. Para kasaya giriyorsa GİRİŞ, çıkıyorsa ÇIKIŞ. Tip PEŞİN → yalnız kasa; NORMAL → kasa ve cari hesap; PARİTE (tip 10) → iki döviz arası takas (§6.8). Perakende tezgâh için aynı iş GİŞE ekranından da yapılır (SCR-GISEEKRANI.md).

Neden yapılır?

Para hareketi kaydedilmezse kasa sayımı tutmaz ve müşterinin borcu kapanmaz. Döviz bürosu kurulumunda 1.250.144 NAKİT satırı vardır — tüm işlemlerin %83'ü (BR-DEFTER-URETIMI); kuyumcuda 136.185 satır, çoğu cari tahsilat/ödeme.

Kim yapar?

Gişede Mehmet Kaya (kasiyer). 5.000 USD üstü resmi döviz satışında kimlik/e-belge zorunluluğu vardır — tutar eşikleri mevzuata bağlı, kitapta rakam verilmez (PB-019.md, GAP-MEVZUAT). Cari tahsilatları Ali Çelik ekstreyle kontrol eder.

Örnek

ÖRNEK ALTIN A.Ş. İki ayrı olay: A) Döviz Nuri gişeden 2.000 USD satın alıyor, parasını peşin TL ödüyor (satış kuru 40,20; BSMV örnek ‰2). B) Kuyumcu Selim 150 g has borcuna mahsuben 100.000 TL getiriyor (cari tahsilat).

A) Peşin döviz satışı
   Net      : 2.000 × 40,20                 = 80.400,00 TL
   BSMV     : 80.400 × 2 ÷ 1000             =    160,80 TL   (oran örnek)
   TUTAR    : 80.400 + 160,80               = 80.560,80 TL
   Kasa     : USD −2.000  ·  TL +80.560,80  ·  bakiye YOK
   Marj     : Satis 80.400 − Maliyet (2.000 × 40,00 = 80.000) = 400 TL  (satırda saklanır)

B) Cari tahsilat
   KODU TL, MİKTAR 100.000, BİRİM TL, FİYAT 1
   Kasa     : TL +100.000
   Bakiye   : Selim TL −100.000 (alacaklı)  — HAS borcu +150 g olduğu gibi durur!

İşlemden önce

Nerede Değer
Kasa — TL / USD 500.000 TL / 100.000 USD
Döviz Nuri — USD bakiyesi −5.000 (alacaklı; bu örnekte değişmeyecek)
Kuyumcu Selim — HAS / TL +150,00 / 0

ERPGOLD'da ne yapılır?

A — peşin döviz satışı: Cari İşlemler ▸ Döviz Nuri (ya da perakende müşteri kartı) ▸ N - NAKİT ▸ ISLEM ÇIKIŞ (döviz müşteriye gidiyor) ▸ tip PEŞİN (BİRİM listesi nakit stoklarına döner) ▸ KODU USD ▸ MİKTAR 2.000 ▸ BİRİM TL ▸ FİYAT 40,20 (satış kuru; ekrana alış gelirse elle düzelt, H-045) ▸ VERGİ E → BSMV 160,80, TUTAR 80.560,80F2 ▸ EVET. Resmi işlemse F5 ile belge (WF-FATURA-KES-F5.md).

B — cari tahsilat: Cari İşlemler ▸ Kuyumcu Selim ▸ NAKİT ▸ ISLEM GİRİŞ (para kasaya giriyor; başlık yeşil) ▸ tip NORMAL ▸ KODU TL ▸ MİKTAR 100.000 ▸ BİRİM TL → FİYAT 1'e kilitlenir, TUTAR 100.000 ▸ F2 ▸ EVET.

İşlemden sonra

Nerede Önce Sonra (A) Sonra (B) Neden
Kasa — USD 100.000 98.000 98.000 döviz çıktı
Kasa — TL 500.000 580.560,80 680.560,80 A: satış bedeli girdi; B: tahsilat girdi
Nuri — bakiye −5.000 USD değişmedi peşin: bakiye defteri yazılmaz
Selim — TL 0 −100.000 tahsilat alacak yazıldı
Selim — HAS +150 +150 TL ödemek HAS borcunu kapatmaz (bkz. ÇEVİR §6.7)

Neden?

PEKİ NEDEN? Selim 100.000 TL ödedi ama hâlâ 150 g borçlu görünüyor? Çünkü borcu altın cinsindendi, ödeme TL cinsinden. ERPGOLD birimleri kendiliğinden birbirine çevirmez — çevirirse hangi kurdan çevireceğini kimin kararlaştırdığı belirsiz olur. Selim'in kartında artık iki satır vardır: HAS +150 (borçlu), TL −100.000 (alacaklı). Bunu tek birime indirmek için o günün kuruyla ÇEVİR yapılır (§6.7). "Müşteri parayı ödedi ama bakiyesi değişmedi" çağrısının (H-104) en yaygın sebebi budur.

PEKİ NEDEN? A örneğinde BakiyeId sıfır ama B örneğinde de sıfır; B neden bakiye üretti? NAKİT'te BakiyeId daima 0'dır (BR-BAKIYE-002) — has satırı diye bir şey olmadığından. Bakiye yazılıp yazılmayacağını tip belirler: PEŞİN (1) yazmaz, NORMAL (0) yazar. "BakiyeId 0 = peşin" ezberi burada çöker (CTR-SEC-BAKIYE-01; kitapçık §5.7 kural 2 bu yüzden fazla sadeleştirilmiştir).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler:

Kolon A (peşin satış) B (cari tahsilat)
IslemKodu / IslemTuru / IslemTipi 3 / 1 ÇIKIŞ / 1 PEŞİN 3 / 0 GİRİŞ / 0 NORMAL
BakiyeId 0 0 (NAKİT'te daima)
StokId / Kodu USD nakit kartı / USD TL nakit kartı / TL
Miktar / AuMilyem 2.000 / 1 100.000 / 1
BirimId / Birim / Fiyat / Tutar TL / TL / 40,20 / 80.560,80 TL / TL / 1 / 100.000
BSMV 160,80 (ayrı kolon, FIELD-CARI-ISLEMLER-BSMV.md) 0
UsdKur / Maliyet / Satis 40,20 / 80.000 / 80.400

BSMV'nin Tutar'a dahil mi hariç mi yazıldığı CTR-010 (BR-BSMV-001: kod net × ayar ÷ 1000, TUTAR = net + BSMV — BsmvTipi "Hariç" varsayımı). Ekran alışta da VERGİ seçilmesine izin verir; e-belgede vergi yalnız satış yönünde (BR-BSMV-002).

Tetikleyici (TRG-CARI.ACCEPTTRANSACTION.md):

  • A, stok: satır 388–392 IslemKodu=3 And IslemTipi<>4 → StokTipi 2, StokId USD, Miktar −2.000 (ÇIKIŞ). Satır 393–397 IslemTipi=1 → StokTipi 2, StokId=@BirimId (TL), Miktar +80.560,80 (ÇIKIŞ'ta @Tutar; BR-TIP-003). İki stok satırı, sıfır bakiye satırı.
  • A, bakiye: "stok işlemi" dalı satır 508–539 → IslemTipi<>1 sağlanmaz → yazılmaz.
  • B, stok: satır 388–392 → StokId TL, Miktar +100.000. Peşin değil → ikinci stok satırı yok.
  • B, bakiye: satır 508–539, GİRİŞ → @Tutar = 0−absCari.BakiyeIslem BirimId TL, Bakiye −100.000. Yalnız tutar satırı; USD/EUR bacağı diye bir şey NAKİT'te yoktur (CTR-025).

CTR: WF-NAKIT-NORMAL.md "kasa değişmez (NORMAL)" der; tetikleyici metni ve gerçek veri aksini gösterir: V2 NAKİT NORMAL 934.126 satırın %99'u stok defteri üretmiş (FLOW-ISLEM-MATRISI.md). Bu kitap tetikleyici + veriyi esas alır (_tools/book_findings_06a.md CTR-06a-02).

Matris: V2 NAKİT NORMAL 934.126 (%99/%99), PEŞİN 296.267 (%99/%0), RESMİ 18.237 (%0/%0), MAHSUP 1.514 (%0/%0); KUYUMCU NORMAL 136.185 (%100/%99). IslemTipi=10 (PARİTE) satırı iki kurulumda da yok (TECHNICAL_WIKI/ENUMS/ENUM-ISLEMTIPI.md). Akış: FLOW-IFNAKIT.md.

Raporda ne olur?

  • Nakit Stok Hareket / Özet (RPT-9, RPT-10RFN-REPORTS.NAKITSTOKEXTRESI): USD çıkan 2.000, TL giren 80.560,80 ve 100.000. Nakit giriş-çıkış (RFN-REPORTS.GETNAKITGIRISCIKIS).
  • Bakiye Ekstresi (RPT-1): Selim TL ALACAK 100.000; Nuri'de değişiklik yok.
  • Müşteri Ciro (RFN-REPORTS.MUSTERICIRORAPORU: IslemKodu 3 ve 6) ve MET-CIRO (IslemTuru 1/5 SUM(Tutar)): A satırı ciro sayılır; B (Kodu = Birim = TL) kasa hareketidir, ticaret değil — kitapçık Ek B: Kodu <> Birim gerçek alış-satış.
  • Pozisyon / Hacim (RPT-18, RPT-28RFN-REPORTS.GETPOZISYONDETAYV2): USD pozisyonu −2.000 (MET-NET-POZISYON).
  • Resmi satışta Fatura Kontrol (RPT-13), Resmi İşlem Raporu (RFN-REPORTS.RESMIISLEMRAPORU); BTrans aktarımında BSMV kolonu okunur.

Yanlış yapılırsa ne olur?

  • PEŞİN yerine NORMAL (A'da): Nuri 80.560,80 TL borçlu görünür, kasa TL'si yine artar → "bakiyesi değişti ama para almadık" (H-104).
  • NORMAL yerine PEŞİN (B'de): kasa doğru, Selim'in borcu kapanmaz.
  • KODU = BİRİM seçilmişken fatura kesmek: "Aynı Para Cinsi ile Fatura kesemezsiniz." (H-144).
  • Kur listesi boş / eski: FİYAT 0 → "Lütfen Tutar Giriniz." (PB-036); fiyat eski → Ctrl+F5 (H-046).
  • TUTAR'a elle dokunmak: BSMV brütten yeniden hesaplanır, kuruş kayar (WF-NAKIT-PESIN-DOVIZ-SATIS.md varyant).
  • EMANET seçmek: bazı kurulumlarda etiket PARİTE ile karışır, iki satır oluşur (H-058, CTR-027).

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: GİRİŞ/ÇIKIŞ'ı "müşteri açısından" düşünmek — ekran kasa açısından sorar: para kasaya giriyorsa GİRİŞ. Satışta alış kurunu bırakmak (H-045, TD-21). Müşteri: "Nuri'ye 5.000 USD ödedik, USD bakiyesi düşmedi" — BİRİM olarak TL seçilmiş; USD bakiyesini kapatmak için KODU ve BİRİM USD olmalı (CTR-025, H-057). BSMV muaf hesap açma (PROC-199.md). Destek personeli: "kasa tutmuyor" çağrısında peşin satırların iki stok hareketi ürettiğini (mal + para) unutup çift kayıt sanmak; PB-028, PB-037. Geliştirici: BakiyeId=0 ile peşin filtrelemek (V2'de 1.261.440 satır vs tip 1 318.324 satır — MET-PESIN-HACIM); BSMV'nin Tutar'a dahil olup olmadığını varsaymak (CTR-010).

İlgili destek senaryoları

SCN-NAKIT.md (cari döviz girişi), SCN-DOVIZ.md (peşin döviz satışı + BSMV), kitapçık §5.2 (gerçek 65 USD fişi). Zincirler: SYM-KUR.md, SYM-BAKIYE.md, SYM-FATURA.md. Playbook: PB-019, PB-036, PB-042, PB-048. Süreç: PROC-199, PROC-204. Bilinen sorun: H-045, H-046, H-056, H-057, H-058, H-104, H-144.

Varyantlar

Varyant Yön Tip V2 satır KUYUMCU satır Stok / Bakiye
Cari tahsilat / döviz alış GİRİŞ NORMAL 466.932 82.878 evet / evet
Cari ödeme / döviz satış ÇIKIŞ NORMAL 467.194 53.307 evet / evet
Peşin döviz alış GİRİŞ PEŞİN 176.059 veride yok evet (2 satır) / hayır
Peşin döviz satış (BSMV'li olabilir) ÇIKIŞ PEŞİN 120.208 veride yok evet (2 satır) / hayır
Resmi (e-belge) GİRİŞ / ÇIKIŞ RESMİ (11) 10.408 / 7.829 veride yok hayır / hayır
Mahsup GİRİŞ / ÇIKIŞ MAHSUP (12) 732 / 782 veride yok hayır / hayır
Parite (NAKİT tip 10) PARİTE (10) veride yok veride yok — (bkz. §6.8)
Emanet EMANET (4) veride yok (NAKİT'te) veride yok
Karşılık birimi TL 788.454 · USD 295.298 · EUR 146.062 · GBP 9.373 · CHF 3.484 · 30+ diğer 8.000 TL 78.409 · USD 26.904 · EUR 22.673 · GBP 3.243 · CHF 2.101 · SAR/AUD/CAD/BGN
Altın karşılıklı nakit veride yok (HAS birimi NAKİT'te görülmedi) veride yok
Şubeli / şubesiz GAP (matriste ölçülmedi)

Okuma: döviz bürosunda peşin/cari neredeyse yarı yarıya, belge kontrol satırları (tip 11) tutar hacminin dörtte biri (operasyon satırlarıyla toplanmaz) (kitapçık §5.5); kuyumcuda NAKİT tamamen NORMAL — peşin tip hiç kullanılmamış.


6.4 VADELİ — bugün anlaşılan, ileride teslim edilen (IslemKodu 6)

Nedir?

Seviye 1 — Çok basit. Mehmet arkadaşına diyor ki: "Sana gelecek hafta bisikletimi 3.000 TL'ye satacağım, fiyat şimdiden belli." Bisiklet de para da bugün el değiştirmiyor; ama ikisi de söz verdi. Fiyat düşse de çıksa da anlaşma 3.000 TL. Buna vadeli işlem denir.

Seviye 2 — İşletme mantığı. Döviz bürosu ve kuyumcu için vadeli, fiyatı bugün sabitlenen, teslimi ileri tarihli alım-satımdır (forward): "bugünkü kurdan 20.000 USD sattım, teslim gelecek hafta"; "1.000 g hası ons fiyatından aldım, teslim ay sonu". Amaç kur/altın riskini sabitlemektir. Kasa hiç hareket etmez; iki taraf da taahhüt altına girer (SEC-VADELI.md). Lot ve ons çarpanları için TERM-CARPAN.md, SEC-ONS.md.

Seviye 3 — ERPGOLD. VADELİ ekranı (SCR-IFVADELI.md) yönü ALIŞ/SATIŞ olarak sorar; KODU bir vadeli işlem kodudur (USD, EUR, HAS, ONS … — TBL-SISTEM.VADELI.md, PROC-90.md), BİRİM karşılık birimidir. Kayıt bakiye kartına iki birimde birden yazılır; stok defterine hiç yazılmaz. Teslim günü ilgili NAKİT/MADEN işlemi ayrıca girilir ve vadeli bakiye kapanır.

Neden yapılır?

Vadeli olmasaydı büro müşteriye "fiyatı şimdiden sabitleyelim" diyemez, kurumsal müşteri kaçardı. ERPGOLD'un iki ayrı defter tutmasının en net sebebi vadelidir: kasada hiçbir şey değişmeden hesap değişir (kitapçık §2.4). Döviz bürosu kurulumunda 238.646 vadeli satır (tip −1 ve −2), kuyumcuda 144.383 — her iki iş modelinde de günlük iş.

Kim yapar?

Kurumsal müşterilerle Ayşe Demir anlaşır, kaydı Mehmet Kaya girer. Vade takibini (Vadeli Bakiye Raporu) Ali Çelik yapar; teslim günü Mehmet NAKİT/MADEN ile kapatır.

Örnek

ÖRNEK ALTIN A.Ş. Döviz Nuri, bir hafta sonra teslim şartıyla 20.000 USD almak istiyor; bugünkü satış kuru 40,20'den anlaşılıyor (bize göre SATIŞ). Ne dolar veriliyor ne TL alınıyor — yalnız hesaba yazılıyor.

Miktar    : 20.000 USD          (vadeli kod USD, çarpan 1)
Fiyat     : 40,20 TL/USD        (SATIŞ: kod satış kuru ÷ birim alış kuru, BR-KUR-004)
Tutar     : 20.000 × 40,20      = 804.000 TL
Bakiye    : USD −20.000  (biz Nuri'ye 20.000 USD teslim edeceğiz)
            TL  +804.000 (Nuri bize 804.000 TL ödeyecek)
Kasa      : DEĞİŞMEZ

İşlemden önce

Nerede Değer
Kasa — USD / TL 100.000 USD / 500.000 TL (değişmeyecek)
Döviz Nuri — USD bakiyesi −5.000 (alacaklı)
Döviz Nuri — TL bakiyesi 0
Kur listesi USD 40,00 / 40,20; vadeli kod USD tanımlı

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ Döviz NuriV - VADELİ.
  2. ISLEM: SATIŞ (bize göre) · İşlem tipi: NORMAL (ARBİTRAJ/FATURA seçilirse iki satır oluşur — BR-VADELI-004, H-061).
  3. KODU: USD (ÇARPAN 1) · MIKTAR: 20.000 · BIRIM: TL · FIYAT: 40,20 · F.TIPI: Miktar (altında ons fiyatı kullanılacaksa Oz, BR-VADELI-002) → TUTAR 804.000.
  4. TARİH (vade): bugün + 7 gün → Vade kolonuna yazılır (BR-VADELI-005). H/E (BSMV): H.
  5. F2 ▸ EVET.

Kapanış (bir hafta sonra): NAKİT ▸ ÇIKIŞ ▸ NORMAL ▸ KODU USD, BİRİM USD, MİKTAR 20.000 → USD bakiyesi +20.000 (kapanır), kasa USD −20.000. NAKİT ▸ GİRİŞ ▸ NORMAL ▸ KODU TL, MİKTAR 804.000 → TL bakiyesi −804.000 (kapanır), kasa TL +804.000.

İşlemden sonra

Nerede Önce Vadeli sonrası Kapanış sonrası
Kasa — USD 100.000 100.000 80.000
Kasa — TL 500.000 500.000 1.304.000
Nuri — USD −5.000 −25.000 −5.000
Nuri — TL 0 +804.000 0

Neden?

PEKİ NEDEN? Nuri bize 804.000 TL borçlu, biz ona 20.000 USD borçluyuz — ama kasada hiçbir şey olmadı. Bu "gerçek" bir işlem mi? Evet; taahhüt de bir borçtur. Bugün USD/TL 42'ye çıksa, Nuri'ye 40,20'den USD vermeyi taahhüt ettiğimiz için biz zarar, o kâr eder. Bu risk pozisyon raporunda görünmelidir; bu yüzden kasaya dokunmayan işlem bakiye defterine iki birimde yazılır. Pozisyon fonksiyonlarının bir kısmı vadeliyi dahil eder, bir kısmı etmez (MET-NET-POZISYON "vadeli dahil/hariç").

BUNU KARIŞTIRMAKur ≠ Parite. Vadelide FİYAT bir kurdur (USD'nin TL fiyatı). İki döviz arası vadeli (USD↔EUR) ise arbitrajdır ve iki satır yazılır (§6.8).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler — 1 satır: IslemKodu 6 · IslemTuru 5 SATIŞ (combo index + 4, BR-YON-006) · IslemTipi −1 ("tip gerekmiyor" işareti; kod tablosunda yoktur — CTR-028) · BakiyeId = USD vadeli kodunun ana birimi (>0) · Kodu/StokId USD · BirimId/Birim TL · Miktar 20.000 · Tutar 804.000 · AuMilyem 1 (milyem kolonunda ÇARPAN saklanır) · HasIsc 40,20 (DÖVİZ KURU alanı SATIŞ'ta buraya yazılır, BR-VADELI-005) · Vade +7 gün · Tag ons çarpanı.

Tetikleyici ÇEVİR/VADELİ/HİZMET dalı (satır 470–501): SATIŞ (5) → @Has = 0−abs(@Has), @Tutar = abs(@Tutar) (satır 484–488). BakiyeId>0 and Miktar<>0Cari.BakiyeIslem USD −20.000 (satır 490–494; burada IslemTipi<>1 koşulu yoktur). IslemTipi<>1 and Tutar<>0 → TL +804.000 (satır 496–500). @Has = Miktar × (AuMilyem=0 ? 1 : AuMilyem) = 20.000 × 1.

Stok: IslemKodu=6 için stok dalı yoktur (satır 378–409 arasında 6 geçmez) → sıfır stok satırı (BR-STOK-011).

Matris: V2 VADELİ −1 203.549 → stok %0 / bakiye %100; −2 35.097 (%0/%100); RESMİ 11: 2.950 (%0/%0). KUYUMCU −1 144.378 (%0/%100). Kitapçık §5.3 gerçek fiş: 23.328 USD / 600.000 TL, BakiyeId 3, bakiye USD −23.328, TL +600.000, stok yok — tetikleyici metnini birebir doğrular.

Bakiye.GetVadeliBakiye fonksiyonunun gövdesi boş döner (BR-BAKIYE-019, GAP). Akış: FLOW-IFTRANSACTION.md (vadeli için ayrı FLOW makalesi yok — GAP-06a-01).

Raporda ne olur?

  • Vadeli Bakiye Raporu (RPT-3RFN-REPORTS.VADELIBAKIYERAPORU): hesap/birim bazında vade tarihi ve kalan gün.
  • Vadeli Hacim / Vadeli Kâr (RFN-REPORTS.VADELIHACIMRAPORU, RFN-REPORT.GETVADELIKARRAPORU): anlaşılan kur ile kapanış kuru farkı.
  • Bakiye Ekstresi (RPT-1): Nuri USD ALACAK 25.000, TL BORÇ 804.000.
  • Müşteri Ciro (RFN-REPORTS.MUSTERICIRORAPORU, IslemKodu 3+6) ve MET-CIRO (IslemTuru 5 dahil).
  • Pozisyon (RPT-18): vadeli dahil/hariç fonksiyona göre değişir — aynı günün iki pozisyon raporu farklı çıkabilir (SYM-POZISYON).

Yanlış yapılırsa ne olur?

  • FATURA tipi seçmek (belge basmak için): ikinci, ters yönlü satır oluşur, bakiye ikiye katlanır (H-061). Doğrusu NORMAL + Ctrl+Y/F5 (PB-048).
  • Yanlış çarpan: 5 lot yazılıp çarpan 1.000 yerine 1 ise miktar 1.000 kat eksik (H-030, PB-043).
  • "TL Karşılığı Vadeli Kodu Bulunamadı": arbitraj için TL karşılığı kod tanımsız (H-060).
  • Vadeyi kapatmayı unutmak: teslimat NAKİT ile girilmezse bakiye açık kalır, pozisyon şişer.
  • ARBİTRAJ/FATURA satırını düzeltmek tipi kaybettirir → iptal + yeniden giriş.

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: ALIŞ/SATIŞ'ı müşteri açısından okumak (ekran bize göre sorar); vade tarihini bugün bırakmak. Müşteri: "Vadeli fiyatı ekranda farklı gösteriyor" (PROC-134.md); "vadeli birimlerin sırasını değiştirmek istiyorum" (H-031); "vadeli kod tanımladım listede yok" (H-020 → Ctrl+F5, PB-039). Destek personeli: iki satırlı vadeliyi (arbitraj) tek satırlı sanıp birini iptal etmek; önce VaryantId bağını kontrol et (PB-048). Geliştirici: IslemTipi = −1/−2 değerlerinin kod tablosunda olmaması — kod tablosuna INNER JOIN yapan rapor 238 bin satırı düşürür (CTR-028, PB-054 benzeri); AuMilyem'in vadelide milyem değil çarpan olması.

İlgili destek senaryoları

SCN-VADELI.md, kitapçık §5.3 (gerçek fiş), WF-VADELI-NORMAL.md, WF-VADELI-ARBITRAJ.md. Zincir: SYM-VADELI.md (47 çağrı), SYM-POZISYON.md. Playbook: PB-043, PB-048. Süreç: PROC-90, PROC-134. Bilinen sorun: H-020, H-030, H-031, H-060, H-061.

Varyantlar

Varyant Yön Tip V2 satır KUYUMCU satır Stok / Bakiye
Vadeli satış (normal) SATIŞ −1 108.911 85.889 hayır / evet (2 birim)
Vadeli alış (normal) ALIŞ −1 94.638 58.489 hayır / evet
Vadeli arbitraj (iki bacak) SATIŞ / ALIŞ −2 17.561 / 17.536 2 / 3 hayır / evet (bkz. §6.8)
Belge kontrol kaydı (RESMİ/FATURA) vadeli ALIŞ / SATIŞ RESMİ (11) 1.476 / 1.474 veride yok hayır / hayır
Peşin vadeli PEŞİN veride yok veride yok
Karşılık birimi yalnız TL (241.594) TL 108.213 · USD 17.783 · EUR 17.397 · CHF 433
Altın (HAS/ons) vadeli koddan ayırt edilemedi → GAP KUYUMCU'da TL karşılıklı satırların bir kısmı altın vadelisi olabilir → GAP
Şubeli / şubesiz GAP (matriste ölçülmedi)

Okuma: döviz bürosunda vadeli hep TL karşılıklı; kuyumcuda USD/EUR/CHF karşılıklı vadeliler de var (muhtemelen altın-döviz vadelisi; kod ekseni matriste yok — GAP).


6.5 HİZMET — mal hareketi olmayan gider ve gelirler (IslemKodu 5)

Nedir?

Seviye 1 — Çok basit. Kuyumcuya kargo gelir, elektrik faturası gelir, ustaya cila parası ödenir. Bunların hiçbirinde altın alınıp satılmaz; ama para ödenir ya da ödenecek. Bunlar "hizmet"tir.

Seviye 2 — İşletme mantığı. Kargo, nakliye, ayar evi ücreti, rafinasyon ücreti, sigorta, tamir, cila, kira, banka masrafı, komisyon… İşletme bunları gider (biz ödeyeceğiz) ya da gelir (bize ödenecek) olarak izler; bilançoda masraf hesapları türe göre ayrışır (TERM-HIZMET.md).

Seviye 3 — ERPGOLD. HİZMET ekranında (SCR-IFHIZMET.md) MİKTAR yoktur: bir HİZMET kartı, TUTAR ve BİRİM vardır; GRUP/KATEGORİ sınıflar. Ekran sözleşmesi: GİRİŞ = gider (hizmet bize girdi, karşı hesaba borçlandık), ÇIKIŞ = gelir. KUR(HAS) alanı tutarı bilgi amaçlı has'a çevirir; hiçbir defteri etkilemez.

Neden yapılır?

Masraflar kaydedilmezse kâr yanlış hesaplanır ve tedarikçilere (kargo, ayar evi, rafineri) olan borçlar takip edilemez. Kuyumcu kurulumunda 103 hizmet kartı, 7.079 satır; döviz bürosunda 7.870 satır.

Kim yapar?

Ali Çelik (muhasebe) faturaları girer; atölye/rafineri ücretlerini Ayşe Demir onaylar. Müşteriden alınan tamir/ayar ücretini (gelir) tezgâhta Zeynep Aksoy girer.

Örnek

ÖRNEK ALTIN A.Ş. Rafineri Kuzey, geçen ayın rafinasyon ücreti için 12.000 TL'lik fatura gönderdi; ödeme daha sonra yapılacak (gider, cari).

Hizmet kartı : RAFİNASYON (grup ÜRETİM, kategori RAFİNERİ)
TUTAR / BİRİM: 12.000 / TL      KUR(HAS) 4.000 → HAS 3,00 g (yalnız bilgi)
Yön          : GİRİŞ (gider)    → Rafineri Kuzey TL −12.000 (alacaklı)
Kasa         : dokunulmaz; ödeme günü NAKİT ÇIKIŞ 12.000 ile kapanır

İşlemden önce

Nerede Değer
Rafineri Kuzey — TL bakiyesi 0
Kasa — TL 500.000 (değişmeyecek)

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ Rafineri KuzeyG - HİZMET.
  2. ISLEM GİRİŞ · tip NORMAL (tipler: NORMAL, PEŞİN, İADE, FATURA — BR-HIZMET-001).
  3. HİZMET: RAFİNASYON (kart seçilmeden kayıt olmaz) · GRUP/KATEGORİ · TUTAR 12.000 · BİRİM TL · KUR(HAS) 4.000 → HAS 3,00.
  4. F2 ▸ EVET.

Gelir örneği: Kuyumcu Selim'e 2.000 TL tamir ücreti → aynı ekran, ISLEM ÇIKIŞ → Selim TL +2.000 (borçlu).

İşlemden sonra

Nerede Önce Sonra Neden
Rafineri Kuzey — TL 0 −12.000 hizmet bize girdi, biz borçlandık
Kasa — TL 500.000 500.000 ödeme yapılmadı
Stok değişmez mal yok

PEŞİN seçilirse kasa −12.000, bakiye yazılmaz (WF-HIZMET-NORMAL.md varyant) — ancak gerçek veride peşin hizmet satırı yoktur (iki kurulumda da yalnız tip 0).

Neden?

PEKİ NEDEN? Neden "GİRİŞ" gider demek? Para çıkacak, GİRİŞ demek ters gelmiyor mu? Ekran malı/hizmeti sorar, parayı değil: hizmet bize girdi. Tetikleyicide GİRİŞ bakiyeyi alacaklandırır (karşı hesap alacaklı = biz borçlu). Aynı mantık madende de vardır: mal GİRİŞ'inde müşteri alacaklanır. Tutarlı ama ilk gün şaşırtıcı (kitapçık §4.1).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler — 1 satır: IslemKodu 5 · IslemTuru 0 · IslemTipi 0 · BakiyeId 0 (hizmet için kural belirtilmemiş — GAP, BR-BAKIYE-002) · StokId hizmet kartı · Kategori/Kategori2 grup/kategori · Miktar 0 · Fiyat = Tutar 12.000 · Birim TL · IscilikBirimKur 4.000 (KUR(HAS) buraya yazılır) · Tag/Aciklama2 hizmet açıklaması · Vade +2 gün · Satis = Tutar × birim kuru (BR-MALIYET-003).

Tetikleyici ÇEVİR/VADELİ/HİZMET dalı (satır 470–501): GİRİŞ → @Tutar = 0−abs (satır 478–482); Miktar=0 ve BakiyeId=0 → has satırı yok (satır 490); IslemTipi<>1 and Tutar<>0Cari.BakiyeIslem TL −12.000 (satır 496–500). Stok dalı yok (BR-STOK-011).

Matris: V2 HİZMET NORMAL 7.870 → stok %0 / bakiye %100, Miktar≠0 oranı 0 (tüm satırlarda miktar 0 — ekranda alan yok); KUYUMCU 7.079 (%0/%100). Yön: V2 GİRİŞ 7.759 / ÇIKIŞ 111; KUYUMCU GİRİŞ 6.539 / ÇIKIŞ 540 — hizmet ezici çoğunlukla gider. Birim: V2 TL 6.633 · USD 596 · EUR 511; KUYUMCU TL 5.645 · HAS 1.260 · USD 136 — kuyumcuda işçilik/rafinasyon ücreti has olarak da kesiliyor.

Akış: FLOW-IFHIZMET.md; kart tablosu TBL-STOK.HIZMET.md.

Raporda ne olur?

  • Masraf Raporu (RPT-27, RPT-75RFN-REPORTS.MASRAFRAPORU): IslemKodu 5, GİDER/GELİR ayrımı, TL/USD/HAS karşılığı.
  • Bakiye Ekstresi (RPT-1): Rafineri Kuzey ALACAK 12.000.
  • Özet Bilanço (RFN-BILANCO.OZETBILANCO): masraf hesabı türe göre (hesap türü Masraf, BR-DEVIR-001); hesap yanlış türle açıldıysa bilanço müşteri borcu sanır.
  • Hacim/ciro raporları hizmet çıkışını satış saymaz (MET-SATIS hariç).

Yanlış yapılırsa ne olur?

  • ÇIKIŞ ile gider girmek: Kuzey borçlu görünür, masraf raporu geliri şişirir.
  • Hizmet kartsız kayıt: program izin vermez; TUTAR 0 → "İşlem Yapabilmek için Miktar Girmelisiniz." (H-038).
  • RESMİ/FATURA tip: bakiye/stok dışı kalır; düzeltmeye açınca tip yanlış gelir (H-077).
  • Masraf hesabını müşteri türüyle açmak: bilanço türe göre ayrıştırır, sonuç yanlış (BR-DEVIR-001).

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: GİRİŞ=gider kuralını ters okumak; KUR(HAS) alanını "has bakiyesi yazar" sanmak (yazmaz). Müşteri: önceki kaydın grup/kategori değerleri yeni kayda taşındı, fark edilmedi (H-076); "HAS kuru boş geldi". Destek personeli: iade/resmi hizmet kaydını düzeltmeye açınca tipin yanlış gelmesini (H-077) veri bozulması sanmak. Geliştirici: Miktar=0 olduğu için Miktar<>0 süzgeçli hacim sorgularının hizmeti düşürmesi (doğru davranış); Fiyat=Tutar eşitliğine güvenip fiyat×miktar hesaplamak (0 çıkar).

İlgili destek senaryoları

SCN-HIZMET.md, WF-HIZMET-NORMAL.md. Zincir: SYM-BAKIYE.md, SYM-BILANCO.md. Playbook: PB-045, PB-030. Bilinen sorun: H-038, H-076, H-077.

Varyantlar

Varyant Yön Tip V2 satır KUYUMCU satır Stok / Bakiye
Gider (cari) GİRİŞ NORMAL 7.759 6.539 hayır / evet
Gelir (cari) ÇIKIŞ NORMAL 111 540 hayır / evet
Peşin hizmet PEŞİN veride yok veride yok (kural: kasa yazar, bakiye yazmaz)
İade / Resmi İADE (3) / RESMİ (11) veride yok veride yok
Birim TL 6.633 · USD 596 · EUR 511 TL 5.645 · HAS 1.260 · USD 136
Has karşılıklı hizmet GİRİŞ/ÇIKIŞ NORMAL veride yok 1.260 hayır / evet (HAS satırı)
Şubeli / şubesiz GAP (matriste ölçülmedi)

6.6 VİRMAN — bakiyeyi bir hesaptan başka bir hesaba taşımak (IslemKodu 11)

Nedir?

Seviye 1 — Çok basit. Ali, Mehmet'e 50 TL borçlu; Mehmet de Ayşe'ye 50 TL borçlu. Mehmet der ki: "Ali, sen parayı doğrudan Ayşe'ye ver." Kimse para çıkarmadı, ama üç kişinin defterinde borç yer değiştirdi. Bu, virmandır.

Seviye 2 — İşletme mantığı. Kuyumculukta toptancı, atölye ve perakendeci birbirine hesaben mal verir; borçlar sık sık üçüncü bir hesaba devredilir: "A'nın bana olan 100 g has borcunu B'nin hesabına geçir", "yanlış hesaba yazılan bakiyeyi doğru hesaba taşı", grup şirketleri arasında bakiye dengeleme. Mal ya da para el değiştirmez; yalnız "kime ait" bilgisi değişir (SEC-VIRMAN.md, TERM-VIRMAN.md).

Seviye 3 — ERPGOLD. VİRMAN ekranı (SCR-IFVIRMAN.md) açık hesap ile HESAP alanında seçilen karşı hesap arasında çalışır; program tek kayıtta iki satır yazar (biri açık hesaba, biri karşı hesaba, ters yönde, aynı referans numarası). Kasa ve stok değişmez. Kuyumcu kurulumunda 112.006 virman satırı vardır — döviz bürosundaki 532'nin 210 katı (kitapçık §9.3); kuyumcunun en sık kullandığı "hesap düzeltme ve aktarım" aracıdır.

Neden yapılır?

Zincir ticarette (toptancı → atölye → perakendeci) borçlar üçüncü tarafa devredilmeden ticaret akmaz. Ayrıca yanlış hesaba girilmiş bir bakiye işlemi iptal etmeden virmanla taşınabilir (PB-033). Şubeler/kasalar arası maden aktarımının hesap tarafı virmanla, fiziksel tarafı transferle izlenir (WF-KASA-TRANSFER.md).

Kim yapar?

Ali Çelik (muhasebe) ve Ayşe Demir; tezgâh personeli genellikle yapmaz. Yetki grubunda VİRMAN açık olmalıdır.

Örnek

ÖRNEK ALTIN A.Ş. Kuyumcu Selim bize 150 g has borçlu; biz Toptancı Yusuf'a 400 g has borçluyuz. Selim ile Yusuf kendi aralarında anlaşıyor: Selim 150 g'ı doğrudan Yusuf'a verecek. Bizim defterimizde Selim'in borcu kapanmalı, Yusuf'a olan borcumuz 150 g azalmalı.

Açık hesap  : Kuyumcu Selim     HAS +150  →  0        (borcu kapandı)
Karşı hesap : Toptancı Yusuf    HAS −400  →  −250     (alacağı 150 g azaldı)
Kasa / stok : DEĞİŞMEZ  — hiçbir altın elden ele geçmedi (bizim kasamızdan)
Kontrol     : iki satırın toplamı 0 (−150 + 150)

İşlemden önce

Nerede Değer
Kuyumcu Selim — HAS +150,00 (borçlu)
Toptancı Yusuf — HAS −400,00 (alacaklı)
Stok — HAS 2.000 g (değişmeyecek)

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ açık hesap: Kuyumcu SelimV - VİRMAN. Transfer paneli kapalı, TUTAR kilitli (BR-VIRMAN-003).
  2. ISLEM: ekran "karşı hesabın alacağı durum"u sorar (WF-VIRMAN.md adım 2). Yusuf borçlanacak (alacağı azalacak) → BORÇ. Başlık yeşil "VIRMAN GIRIS" yazar — bu, açık hesabın (Selim) etkisidir: Selim alacaklanır (H-064).
  3. HESAP: Toptancı Yusuf (karşı hesap listesi şube/aktiflik süzgeçlidir, BR-VIRMAN-001).
  4. KODU (birim): HAS · MIKTAR: 150 · MILYEM 1 (metal birimde milyem girilebilir; TUTAR = MİKTAR × MİLYEM, BR-VIRMAN-002).
  5. F2 ▸ EVET. Program önce Selim'e, sonra SendTo ile Yusuf'a ters yönlü satırı yazar.

İşlemden sonra

Nerede Önce Sonra Neden
Selim — HAS +150 0 −150 satırı
Yusuf — HAS −400 −250 +150 satırı
Kasa / stok değişmez fiziksel hareket yok

Neden?

PEKİ NEDEN? Tek kayıt neden iki satır? Bakiye iki hesapta ters yönde değişmelidir; bakiye defteri hesap bazlıdır, "hesaptan hesaba" diye bir satır türü yoktur. Program bu yüzden karşı hesaba ters işaretli bir kopya yazar. İki satır aynı RefNo/FisNo ile bağlıdır; toplamları sıfırdır — pozisyon değişmez.

BUNU KARIŞTIRMAVirman ≠ Transfer. Virman hesap defterini değiştirir; kasalar arası fiziksel altın/para aktarımı KASA TRANSFERİ ile yapılır ve stok defterini değiştirir (SCN-SUBELER-ARASI-ISLEM.md).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler2 satır, aynı RefNo (BR-VIRMAN-002):

Kolon Satır 1 (Selim, açık hesap) Satır 2 (Yusuf, karşı hesap)
HesapId Selim Yusuf
IslemKodu / IslemTipi 11 / 0 11 / 0
IslemTuru 0 GİRİŞ (Selim alacaklanır) 1 ÇIKIŞ (Yusuf borçlanır)
Kodu / StokId / Tag VIRMAN / Yusuf Id / Yusuf Id VIRMAN / Selim Id / Selim Id
BakiyeId 0 0
Miktar / AuMilyem / Tutar / Birim 150 / 1 / 150 / HAS aynı

CTR-06a-03 (yön kodu): SCN-VIRMAN.md ve BR-YON-005 virman satırlarının IslemTuru 2 ALACAK / 3 BORÇ taşıdığını yazar; gerçek veride iki kurulumdaki 112.538 virman satırının tamamı IslemTuru 0 veya 1'dir (V2: 265 GİRİŞ + 265 ÇIKIŞ + 2; KUYUMCU: 56.003 + 56.003). SEC-VIRMAN.md de "veride yön GİRİŞ/ÇIKIŞ olarak saklanır" der. Bu kitap veriyi esas alır; ekran etiketi (ALACAK/BORÇ) hangi satıra 0, hangisine 1 yazdığı kod satırıyla doğrulanmadı (SCN-VIRMAN GAP'ı) — yukarıdaki eşleme tetikleyici işaretinden türetilmiştir.

Tetikleyici: IslemKodu 11 hiçbir stok dalına girmez; bakiye için "stok işlemi" dalına düşer (satır 508–539: IslemKodu<>0,1,2 ve 4/5/6 değil). GİRİŞ (0) → @Tutar = 0−abs → Selim HAS −150; ÇIKIŞ (1) → abs → Yusuf HAS +150 (satır 516–537). Yalnız Tutar satırı; BakiyeId=0 olduğundan has satırı zaten yok.

Matris: KUYUMCU VİRMAN 112.006 → stok %0 / bakiye %99 (tutarı 0 olan 42 "boş virman" satırı bakiye üretmemiş: Tutar<>0 koşulu); V2 532 (%0/%100). Birim: KUYUMCU TL 80.324 · HAS 25.990 · USD 4.064 · EUR 1.450; V2 TL 238 · EUR 226 · USD 68.

Akış: FLOW-IFVIRMAN.md.

Raporda ne olur?

  • Bakiye Ekstresi (RPT-1): Selim'in HAS borcu kapanır, Yusuf'un alacağı azalır.
  • İşlem Raporu: KODU sütunu VIRMAN; kısaltma VA/VB (CTR-026). Raporda VİRMAN başlığının "GIRIS" yazması bilinen kusur (PB-054).
  • Hacim raporlarında hariç tutulmalı (MET-ISLEM-HACMI "Hariç: kasa hareketleri — virman, çevir, masraf, transfer"); dahil edilirse hacim şişer.
  • Pozisyon değişmez (iki satır toplamı 0).

Yanlış yapılırsa ne olur?

  • Yön ters: Selim 300 g borçlu, Yusuf 550 g alacaklı olur — iki hesapta birden hata.
  • "Karşı Hesaba İşlem Yapılamadı." (H-047): açık hesaptaki satır kayıtta kalır, karşı satır yok → tek taraflı virman, toplam sıfır değil (PB-032, H-106).
  • Düzeltme denemesi: "Virman İşlemlerinde Düzeltme Yapamazsınız. İptal Edip Tekrar Giriniz." (H-063, BR-DUZELTME-006). İptalde "Karşı İşlemde İptal Edilsin mi?" sorusuna HAYIR denirse virman iptal edilmez (BR-IPTAL-005).
  • Fiziksel aktarım için virman kullanmak: stok yanlış kasada kalır (H-114).

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: BORÇ seçince başlığın yeşil "VIRMAN GIRIS" yazmasından ürküp yönü değiştirmek (H-064 — başlık açık hesabın etkisini gösterir); hedef hesabı listede bulamamak (H-065 — şube/aktiflik süzgeci). Müşteri: "virman yaptım, bir hesapta var diğerinde yok" (H-106); virmanı düzeltmeye çalışmak (PROC-114.md). Destek personeli: tek taraflı virmanı elle BakiyeIslem ekleyerek "tamamlamak" — yasak; iptal + yeniden giriş (PB-032). Geliştirici: virman satırlarını hacim sorgusuna dahil etmek; IslemTuru 2/3 varsayarak filtrelemek (veride 0/1 — CTR-06a-03); StokId'nin stok değil karşı hesap Id'si olduğunu atlamak.

İlgili destek senaryoları

SCN-VIRMAN.md, WF-VIRMAN.md, SCN-SUBELER-ARASI-ISLEM.md (transferle fark). Zincir: SYM-BAKIYE.md, SYM-RAPOR.md. Playbook: PB-032, PB-033, PB-054. Süreç: PROC-114. Bilinen sorun: H-047, H-063, H-064, H-065, H-106.

Varyantlar

Varyant Yön (veride) Tip V2 satır KUYUMCU satır Stok / Bakiye
Açık hesap alacaklanır GİRİŞ (0) NORMAL 266 56.003 hayır / evet
Açık hesap borçlanır ÇIKIŞ (1) NORMAL 266 56.003 hayır / evet
Boş virman (tutar 0, bakiye üretmez) GİRİŞ / ÇIKIŞ NORMAL veride yok 21 / 21 hayır / hayır
Birim TL 238 · EUR 226 · USD 68 TL 80.324 · HAS 25.990 · USD 4.064 · EUR 1.450
ALACAK/BORÇ (2/3) kodlu veride yok veride yok
Peşin / resmi virman PEŞİN / RESMİ veride yok veride yok
Şubeli / şubesiz GAP (matriste ölçülmedi)

6.7 ÇEVİR — bakiyeyi bir birimden başka birime çevirmek (IslemKodu 4)

Nedir?

Seviye 1 — Çok basit. Ali'nin kumbarasında 100 dolar var; annesine "bunu bugünkü kurdan TL say" diyor. Dolar TL'ye dönüşmüyor, kumbara açılmıyor; yalnız defterde "Ali'nin 100 doları" silinip "Ali'nin 4.000 TL'si" yazılıyor.

Seviye 2 — İşletme mantığı. Kuyumcu müşterisi aynı anda has alacaklı ve TL borçlu olabilir; bunlar kendiliğinden kapanmaz. Müşteri "hasımı bugünkü kurdan TL yap, borçtan düş" der. Bu, müşterinin altın fiyatı riskini o günkü kurla kapatmasıdır; işletme için pozisyon değişir (SEC-CEVIR.md, SEC-POZISYON.md). Dönem sonunda karışık bakiyeleri tek birimde toplamak için de kullanılır.

Seviye 3 — ERPGOLD. ÇEVİR ekranı (SCR-IFCEVIR.md) stok değil birim listeler: kaynak birim (KODU), hedef birim (BİRİM), kur (FİYAT). Yön ALACAK/BORÇ'tur: alacağı mı borcu mu çeviriyorsun. Kasa ve stok değişmez; bakiye defterine iki zıt işaretli satır yazılır. Kaynak birimde bakiye varsa MİKTAR otomatik dolar (BR-BAKIYE-015).

GAP-06a-02: Gerçek veride ÇEVİR tek satırdır (KUYUMCU, IslemTuru 2, tip −1, cari; V2'de hiç yok). Ekran ve kural makaleleri koddan türetilmiştir; aşağıdaki anlatım kod + tetikleyici + o tek satıra dayanır, yaygın kullanım gözlemi değildir. SEC-CEVIR.md "her iki kurulumda 0 satır" der — matrisle çelişir (CTR-06a-04).

Neden yapılır?

Bakiye kartında HAS +150 ve TL −100.000 gibi karışık satırlar hem müşteriye hem muhasebeye anlamsızdır: müşteri net olarak borçlu mu alacaklı mı? Çevir bunu tek birime indirir. Alternatif "müşteri TL ödesin, biz has verelim" değildir — müşteri altın istemez; yalnız hesabın kapanmasını ister.

Kim yapar?

Ali Çelik ya da Ayşe Demir; kur o günün listesinden gelir, gerekirse müşteriyle anlaşılan kur elle yazılır.

Örnek

ÖRNEK ALTIN A.Ş. §6.3-B'nin devamı: Selim 100.000 TL ödedi, kartında HAS +150 (borçlu) ve TL −100.000 (alacaklı) var. Ayşe: "TL alacağını bugünkü has kurundan altına çevir, borçtan düş."

Kaynak (KODU)  : TL   MİKTAR 100.000  (alacak → ALACAK yönü, otomatik dolar)
Hedef  (BİRİM) : HAS  FİYAT 4.000 TL/g (yön "Böl")
TUTAR          : 100.000 ÷ 4.000 = 25,00 g has
Bakiye         : TL  −100.000 → 0        (alacak kapandı)
                 HAS +150     → +125     (25 g borç düşüldü)
Kasa / stok    : DEĞİŞMEZ

İşlemden önce

Nerede Değer
Selim — HAS / TL +150,00 / −100.000
Kasa — TL / stok HAS 600.000 (§6.3-B sonrası) / 2.000 g — değişmeyecek
Kur has alış 4.000 TL/g

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ Kuyumcu SelimC - ÇEVİR.
  2. ISLEM: ALACAK (Selim'in TL alacağı çevriliyor; kaynak bakiye negatif olduğu için MİKTAR bakiyeden otomatik gelir — BR-BAKIYE-015).
  3. KODU: TL · MIKTAR 100.000 (kısmi çevirmede düzeltilir) · BIRIM: HAS · FIYAT: 4.000 (parite tablosundan; yön "Böl") → TUTAR 25,00.
  4. F2 ▸ EVET. (F5 fatura açmaz.)

CTR-TRN-CEVIR-01: WF-CEVIR.md adım 2 "ALACAK (borç kapatılıyorsa)" der; BR-BAKIYE-015 ve tetikleyici işaretleri ALACAK'ın alacağı kapattığını gösterir. Bu kitap kod tarafını esas alır; yanlış yönde bakiye ters büyür.

İşlemden sonra

Nerede Önce Sonra
Selim — TL −100.000 0
Selim — HAS +150 +125
Kasa / stok değişmez

Neden?

PEKİ NEDEN? MADEN NORMAL'de de iki bakiye satırı vardı; farkı ne? Madende iki satır aynı işaretlidir (has borç + işçilik borç): müşteri iki şeyi birden borçlanır. Çevirde iki satır zıt işaretlidir: bir birim azalır, öteki aynı değerde artar (BR-YON-002BR-YON-003). Toplam "değer" değişmez, yalnız birimi değişir.

BUNU KARIŞTIRMAÇevir ≠ Nakit. Çevir para almaz-vermez; "TL alacağını ödeyip has borcunu tahsil etmek" iki NAKİT/MADEN işlemidir ve kasayı hareket ettirir.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler — 1 satır (BR-CEVIR-001): IslemKodu 4 · IslemTuru 2 ALACAK (combo index + 2, BR-YON-006) · IslemTipi −1 · BakiyeId = kaynak birim TL (>0) · StokId/Kodu TL birimi · Miktar 100.000 · AuMilyem 0 (→ tetikleyici 1 kabul eder) · BirimId/Birim HAS · Fiyat 4.000 · Tutar 25 · FiyatTipi 1 · Vade +2 gün · Maliyet/Satis (BR-CEVIR-002).

Tetikleyici ÇEVİR/VADELİ/HİZMET dalı (satır 470–501): ALACAK (2) → @Has = abs, @Tutar = 0−abs (satır 478–482). Has satırı: BirimId TL, Bakiye +100.000 (satır 490–494). Tutar satırı: BirimId HAS, Bakiye −25 (satır 496–500). Stok dalı yok.

Matris: KUYUMCU ÇEVİR 1 satır (IslemTuru 2, tip −1, cari, fatura kaydı var) → stok %0 / bakiye %100. Bu, matris anahtarındaki "IslemTuru 2/3 veride yok" cümlesiyle 1 satırlık çelişkidir (CTR-06a-01). V2: 0 satır.

Akış: FLOW-IFCEVIR.md.

Raporda ne olur?

  • Bakiye Ekstresi (RPT-1): TL sütunu sıfırlanır, HAS BORÇ 125.
  • İşlem Raporu: kısaltma CA (ALACAK) / CB (BORÇ).
  • Hacim: çevir iki bacak olarak çift sayılabilir; MET-ISLEM-HACMI "Hariç" listesindedir.
  • Kur farkı (RFN-BILANCO.GETKURFARKI): TL pozisyonu HAS'a döndüğü için değerleme değişir — işletme artık 25 g daha az has alacaklıdır (Selim'in borcu azaldı), TL yükümlülüğü kalktı.

Yanlış yapılırsa ne olur?

  • Yön ters (BORÇ): TL −200.000, HAS +175 — iki birimde de bakiye büyür; düzeltme yerine iptal + yeniden giriş (WF-ISLEM-DUZELT.md varyant: parite/çevir çiftleri).
  • Fiyat kutusu 1'e kilitli (H-055): KODU ve BİRİM aynı ana birimde seçilmiş.
  • Kur listesi boş: FİYAT 0, TUTAR 0 (PB-036).
  • Kısmi çevirmede MİKTAR düzeltilmezse tüm alacak çevrilir.

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: ALACAK/BORÇ'u "müşteri bize borçlu mu" diye değil "hangi bakiyeyi çeviriyorum" diye okumalı; MİKTAR'ın otomatik dolmasını "program kendi yazdı, dokunmayayım" sanmak (kısmi çevirmede düzeltilir). Müşteri: çevir yerine NAKİT ile "TL borcunu kapatıp" kasayı yanlış hareket ettirmek. Destek personeli: çevir satırının iki bakiye satırını "çift kayıt" sanmak; tek satır kaldıysa PB-048. Geliştirici: IslemTuru 2/3'ün veride neredeyse hiç olmaması — rapor filtrelerinde ALACAK/BORÇ süzgeci boş döner (H-135, PB-054); IslemTipi=−1 kod tablosunda yok (CTR-028).

İlgili destek senaryoları

SCN-CEVIR.md, WF-CEVIR.md. Zincir: SYM-BAKIYE.md, SYM-POZISYON.md. Playbook: PB-036, PB-048, PB-054. Bilinen sorun: H-055, H-135. Kural: BR-CEVIR-001, BR-CEVIR-002, BR-BAKIYE-015.

Varyantlar

Varyant Yön Tip V2 satır KUYUMCU satır Stok / Bakiye
Alacağı çevir ALACAK (2) −1 veride yok 1 hayır / evet (2 zıt satır)
Borcu çevir BORÇ (3) −1 veride yok veride yok (kural: aynı, işaretler ters)
HAS→TL, TL→HAS, USD→EUR veride yok tek satırın birim çifti matriste yok → GAP
Peşin / resmi çevir veride yok veride yok (kodda tip seçimi yok)
Şubeli / şubesiz GAP

Okuma: iki kurulum da "birimden birime çevirme" ihtiyacını ÇEVİR ekranıyla karşılamıyor; kuyumcuda bu iş büyük ihtimalle VİRMAN + NAKİT/MADEN ile, döviz bürosunda vadeli arbitrajla yapılıyor — doğrulanmadı (GAP-06a-02).


6.8 PARİTE / ARBİTRAJ — bir dövizi başka dövize takas etmek

Nedir?

Seviye 1 — Çok basit. Ali'nin elinde 100 euro var, dolar istiyor. Gişe önce euroyu TL'ye çevirip sonra TL ile dolar satsa iki kez kâr alır; Ali kaçar. Onun yerine gişe "1 euro = 1,14 dolar" der ve doğrudan değiştirir. Bu oran parite, işlem arbitraj/çapraz işlemdir.

Seviye 2 — İşletme mantığı. Kur bir paranın TL fiyatıdır; parite iki dövizin birbirine oranıdır (EUR/USD). Büro pariteyi kendi kurlarından türetir: EUR alış 46,00 ÷ USD satış 40,20 = 1,1443 — yani müşteriden euro alırken düşük, dolar verirken yüksek kur kullanır; marj oradadır. Kasadan TL geçmez (SEC-PARITE.md, SEC-ARBITRAJ.md). Vadeli arbitraj ise aynı takasın ileri tarihli halidir.

Seviye 3 — ERPGOLD. Arbitraj tek satır olarak yazılamaz; her zaman iki satırdır — verilen döviz bir bacak, alınan döviz öteki bacak; ikisinin TL değeri eşittir (TL yalnız değerleme pivotu). Üç ayrı yol vardır:

Yol Ekran Yazılan Bağ Veride
A NAKİT, işlem tipi PARİTE (tip 10) 2 NORMAL nakit satırı VaryantId (2. satırda 1.'nin Id'si) tip 10 satırı iki kurulumda da yok
B X - PARİTE ekranı (SCR-IFDOVIZ.md) 2 nakit satırı bağ yok (VaryantId yazılmaz) NORMAL nakit satırlarından ayırt edilemez → GAP
C VADELİ, işlem tipi ARBİTRAJ 2 vadeli satır, tip −2 VaryantId V2 35.097, KUYUMCU 5

Kitapçık §5.4'ün gerçek fişi (EUR 1.500 → USD 1.645, parite 1,09667) C yoludur: tip −2, yön 4/5, BakiyeId 3/4 (CTR-027: tetikleyicideki tip 10 dalını hangi ekranın ürettiği doğrulanmadı — GAP-TRN-PARITE-01).

Neden yapılır?

Turist, ihracatçı ve sarraf döviz-döviz takas ister; iki ayrı işlem iki kez marj demektir. Büro ayrıca elindeki fazla EUR'yu USD'ye çevirerek pozisyon dengeler. Raporda tek işlem mi iki işlem mi sayıldığı hacmi ikiye katlar (kitapçık §5.4).

Kim yapar?

Gişede Mehmet Kaya; vadeli arbitrajı kurumsal müşteriyle Ayşe Demir anlaşır. Parite tanımları (çift ve Çarp/Böl yönü) Deniz Yılmaz (AIFASOFT destek) ile kurulumda yapılır (PROC-201.md).

Örnek

ÖRNEK ALTIN A.Ş. Döviz Nuri 1.000 EUR veriyor, karşılığında USD istiyor. Parite = 46,00 ÷ 40,20 = 1,14428.

Alınan USD  : 1.000 × 1,14428 = 1.144,28 USD
TL pivot    : 1.000 × 46,00   = 46.000 TL  = 1.144,28 × 40,20   (iki bacak eşit)
Kasa (A/B)  : EUR +1.000  ·  USD −1.144,28  ·  TL DEĞİŞMEZ
Bakiye (A/B): TL −46.000 ve TL +46.000 → net 0 (NAKİT'te yalnız TL tutar satırı)
Bakiye (C)  : EUR +1.000 (Nuri teslim edecek) · USD −1.144,28 (biz teslim edeceğiz) · TL ±46.000 → net 0 · kasa yok

İşlemden önce

Nerede Değer
Kasa — USD / EUR / TL 100.000 / 20.000 / 500.000
Nuri — bakiye USD −5.000 (peşin takasta değişmeyecek)
Nakit stok kartları USD ve EUR tanımlı (yoksa "… AnaBirimine Ait Nakit Stokgu Bulunamadı!" H-056)

ERPGOLD'da ne yapılır?

Yol A (NAKİT, PARİTE tipi — WF-NAKIT-PARITE.md): NAKİT ▸ tip PARİTE (bazı kurulumlarda etiket EMANET görünür — CTR-027, H-058) ▸ ISLEM GİRİŞ (KODU dövizinin yönü: EUR kasaya giriyor) ▸ KODU EUR · MIKTAR 1.000 ▸ BIRIM USD ▸ FIYAT 1,14428 → TUTAR 1.144,28 ▸ F2. Program iki satır yazar; açıklama "Parite : EUR 1.000 X 1,14428 = 1.144,28".

Yol B (X - PARİTE ekranı — WF-PARITE-EKRANI.md): İŞLEM ALIŞ/SATIŞ · NORMAL/FATURA · KODU EUR, karşılık KODU USD · MİKTAR 1.000 → ekranda TUTAR = Round((FİYAT × MİKTAR) ÷ KURU, 0) — tam sayıya yuvarlar (BR-KUR-010); F2 (F5 ile her satır için fatura). Bağ kurmaz, DÜZELT çalışmaz (H-080).

Yol C (VADELİ, ARBİTRAJ — WF-VADELI-ARBITRAJ.md): VADELİ ▸ tip ARBİTRAJ ▸ KODU EUR, MİKTAR 1.000, BİRİM USD ▸ F2 → KODU'nun TL karşılığı vadeli kodu için bir satır, BİRİM'in TL karşılığı vadeli kodu için ters yönlü satır; her ikisi TL karşılığı üzerinden (BR-VADELI-004). Her iki kod için "TL karşılığı vadeli kodu" tanımlı olmalı (H-060).

İşlemden sonra

Nerede Önce Yol A / B sonrası Yol C sonrası
Kasa — EUR 20.000 21.000 20.000
Kasa — USD 100.000 98.855,72 100.000
Kasa — TL 500.000 500.000 500.000
Nuri — EUR / USD 0 / −5.000 0 / −5.000 (bakiye satırı yok) +1.000 / −6.144,28
Nuri — TL 0 0 (−46.000 + 46.000) 0

Neden?

PEKİ NEDEN? Kasadan TL geçmiyorsa satırlarda neden 46.000 TL yazıyor? Program her nakit satırını bir "karşılık birimi"ne yazmak zorundadır; iki dövizi doğrudan birbirine bağlayacak bir alan yoktur. Çözüm: iki bacağın da TL karşılığını aynı yazmak. Böylece TL bakiyesi kendi kendini sıfırlar (−46.000 + 46.000), stokta EUR artar, USD azalır. TL "hayali bir pivot"tur (kitapçık §5.4).

BUNU KARIŞTIRMAParite ≠ Kur. 1,14428 bir kur değil, iki kurun oranıdır; parite tablosunda çiftin yönü (Çarp/Böl) tutulur, yanlış yön "parite fiyatı tersten geliyor" demektir (H-032).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Yol A (BR-TIP-011): 2 × Cari.Islemler, aynı FisNo; satır 1: IslemKodu 3, IslemTuru 0, IslemTipi 0 (listede NORMAL görünür), Kodu EUR, Miktar 1.000, Birim TL, Tutar 46.000, Fiyat 46,00, VaryantId −1; satır 2: IslemTuru 1, Kodu USD, Miktar 1.144,28, Tutar 46.000, Fiyat 40,20, VaryantId = satır 1'in Id'si; IsArbitiraj (hesaplanan) 1. Tetikleyici: satır 388–392 → stok EUR +1.000, USD −1.144,28; satır 508–539 → TL −46.000 ve +46.000. Tetikleyicideki IslemTipi=10 özel dalları (satır 425–437: miktar bakiyesi; 528–532: tutar ×−1) veride hiç çalışmamıştır (tip 10 satırı yok). WF-NAKIT-PARITE "bakiye iki dövizde ters yönde" der — tetikleyici metnine göre yalnız TL satırları (CTR-TRN-PARITE-02).

Yol B: aynı iki nakit satırı ama VaryantId 0/boş; tutar Round(…,0); arbitraj raporunda görünmez.

Yol C (BR-VADELI-004): 2 × IslemKodu 6, IslemTipi −2, IslemTuru 4 ALIŞ (EUR) / 5 SATIŞ (USD), BakiyeId EUR / USD (>0), Tutar 46.000 her ikisinde, VaryantId −1 / ilk Id. Tetikleyici 4/5/6 dalı: ALIŞ → Has +1.000 (EUR, müşteri borçlu = teslim edecek), Tutar −46.000; SATIŞ → Has −1.144,28 (USD), Tutar +46.000. Stok yok. Kitapçık §5.4 fişinde etiketler ters görünür (SATIŞ EUR / ALIŞ USD) — yön etiketlerinin bakış açısı CTR-SEC-ALIS-01.

Matris: tip 10 → 0 satır (V2 ve KUYUMCU). Tip −2: V2 35.097 → SATIŞ 17.561 / ALIŞ 17.536 (çiftler neredeyse eşit — iki bacak yapısının veri kanıtı), stok %0 / bakiye %100; KUYUMCU 5. Bağ alanı: FIELD-CARI-ISLEMLER-VARYANTID.md, FIELD-CARI-ISLEMLER-ISARBITIRAJ.md; kod enum'undaki ARBİTRAJ (13) tipi veride hiç yok.

Raporda ne olur?

  • Nakit Stok Hareket (RPT-9): iki döviz satırı; TL satırı yok.
  • Hacim (RPT-28, MET-ISLEM-HACMI): tek işlem saymak için VaryantId = −1 satırları, hacim için ikisi; B yolu bağsız olduğu için arbitraj raporunda görünmez. Alış + satış toplanırsa çift sayım.
  • Pozisyon (RPT-18): EUR +1.000, USD −1.144,28 — TL pozisyonu değişmez.
  • Vadeli Hacim / Kâr (RFN-REPORTS.VADELIHACIMRAPORU, RFN-REPORT.GETVADELIKARRAPORU): C yolu için.
  • Kâr: her bacağın Maliyet/Satis farkı; marj EUR alış kuru ile USD satış kuru arasındadır.

Yanlış yapılırsa ne olur?

  • İkinci bacak doğrulamadan geçemedi: ilk satır kayıtta kalır → tek bacaklı arbitraj; kasa bir dövizde değişmiş, öbüründe değişmemiş (PB-048). Çözüm iptal + yeniden giriş.
  • EMANET seçildi: kurulum etiketine göre parite çifti oluşur ya da tek satır kalır (H-058).
  • Karşı dövizin nakit kartı yok: kayıt reddedilir (H-056).
  • Çiftin tek satırını düzeltmek: eşleşme bozulur; virman gibi iptal + yeniden giriş.
  • Parite yönü ters tanımlı: TUTAR 1.000 ÷ 1,14428 = 873,91 çıkar (H-032).

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: ISLEM'i "USD çıkıyor → ÇIKIŞ" diye seçmek — A yolunda ISLEM KODU dövizinin (EUR) yönüdür: GİRİŞ. Müşteri: "müşteri dövizini verdi, karşılığı hesapta görünmüyor" (H-057 — NAKİT'te döviz bakiye satırı yoktur; yalnız stok); X ekranındaki yuvarlak TUTAR ile fişteki kuruş farkı (H-079). Destek personeli: B yoluyla yapılmış takası "bağ yok, bozuk kayıt" sanmak — B tasarım gereği bağsızdır. Geliştirici: VaryantId'yi ürün varyantı sanmak (TD-39); tip 10 dalına güvenip rapor yazmak (veride yok); tip −2'nin kod tablosunda olmaması (CTR-028).

İlgili destek senaryoları

SCN-PARITE.md (üç yol), kitapçık §5.4 (gerçek üçlü arbitraj fişi), WF-NAKIT-PARITE.md, WF-PARITE-EKRANI.md, WF-VADELI-ARBITRAJ.md. Zincir: SYM-VADELI.md, SYM-KUR.md. Playbook: PB-043, PB-048. Süreç: PROC-201. Bilinen sorun: H-032, H-056, H-057, H-058, H-060, H-079, H-080.

Varyantlar

Varyant Yol Tip V2 satır KUYUMCU satır Stok / Bakiye
NAKİT parite (peşin takas) A PARİTE (10) veride yok veride yok (kural: 2 stok / TL net 0)
X-PARİTE ekranı takası B NORMAL (0) NAKİT NORMAL içinde ayırt edilemez → GAP aynı evet / TL net 0
Vadeli arbitraj C −2 35.097 (SATIŞ 17.561 / ALIŞ 17.536) 5 hayır / evet (2 döviz + TL)
Belge kontrol kaydı (RESMİ/FATURA) arbitraj B (FATURA) / C (FATURA tipi) 11 vadeli 11: 2.950 (arbitraj mı, normal mi ayırt edilemez → GAP) veride yok hayır / hayır
Kod enum ARBİTRAJ (13) 13 veride yok veride yok
Altın↔döviz arbitrajı C −2 koddan ayırt edilemedi → GAP
Şubeli / şubesiz GAP

6.9 TAKOZ — eritilmiş külçenin giriş ve çıkışı (IslemKodu 0; yalnız kuyumcu kurulumu)

Nedir?

Seviye 1 — Çok basit. Kırık bilezikler, döküm artıkları, eski takılar bir potada eritilip tek bir kütle yapılır: buna takoz denir. Takozun içinde ne kadar altın, ne kadar gümüş olduğu bakınca anlaşılmaz; ayar evi küçük bir parça keser (çeşni), analiz eder ve rapor yazar: "%70 altın, %8 gümüş". Sonra takoz rafineriye gider, saf altına dönüşür.

Seviye 2 — İşletme mantığı. Takoz standart olmayan gramaj ve ayardaki dökme külçedir; her takoz tek bir nesnedir — kodu (TK + numara), brüt gramı, rapor numarası, metal içerikleri (Au, Ag, Pt, Pd), kesilen çeşnisi vardır. Rafinasyon döngüsü: atölye takozu döker → kuyumcu/toptancı teslim alır (GİRİŞ) → rafineriye teslim eder (ÇIKIŞ) → rafineri karşılığında has bakiyesi yazar ve işçilik keser. Bir takozdan hem altın hem gümüş çıkar; bakiye iki metalde doğar (SEC-TAKOZ.md, SEC-CESNI.md, SEC-RAFINERI.md). Kuyumcu kurulumunda 13 ayda 10.618 aktif takoz, 16,4 t brüt, 5,6 t has, %99,9 raporlu; döviz bürosunda bu akış yoktur (VARIANT_MATRIX.md).

Seviye 3 — ERPGOLD. İki ekran: TAKOZ GİRİŞİ (SCR-IFTAKOZGIRIS.md) takozu tanımlar ve stok kartı açar; TAKOZ ÇIKIŞI (SCR-IFTAKOZCIKIS.md) listeden takozu seçip teslim eder — hiçbir takoz bilgisi elle girilmez. IslemTipi burada tip değil ana metaldir: 6 ALTIN, 7 GÜMÜŞ (8 PLATİN, 9 PALADYUM veride yok). Rapor varsa milyemler rapordan (raporlu), yoksa XRF cihazından (raporsuz) gelir.

Neden yapılır?

Takoz kaydedilmezse rafineriye kaç gram has gönderildiği, rafineriden ne kadar has alacaklı olunduğu ve hangi takozun elde olduğu bilinemez. Milyem belirsizliği (rapor gelene kadar) ve çok metalli çıktı bu işlemi maden işleminden ayırır: MADEN ekranı "gram × tek milyem" ile çalışır; TAKOZ ekranı nesne + çok metal + rapor durumu + işçilik durumu ile.

Kim yapar?

Zeynep Aksoy teslim alır ve tartar; XRF/raporu kontrol eder. Rafineriye çıkışı Ayşe Demir onaylar; işçilik oranları hesap kartında tanımlıdır (PROC-152.md). Etiket/fiş basımı kasadan.

Örnek

ÖRNEK ALTIN A.Ş. Atölye Kemal, dökümden çıkan 800 g takozu getiriyor; ayar evi raporu var (rapor no 7042): Au 0,700, Ag 0,080; kesilen çeşni 6 g. Kemal'in kartında takoz has işçiliği ‰2, "Altından Düş"; gümüş "Madeni Ver". Ertesi gün takoz Rafineri Kuzey'e teslim ediliyor.

GİRİŞ (Atölye Kemal)             bakiyeye çeşni de eklenir: 800 + 6 = 806 g
  HAS      : 806 × 0,700 = 564,20 g  → Kemal −564,20 (alacaklı)
  GÜMÜŞ    : 806 × 0,080 =  64,48 g  → Kemal  −64,48 (alacaklı)
  İşçilik  : 564,20 × 0,002 = 1,1284 g has → Kemal +1,1284 (borçlu)
  Takoz stoğu : +1 adet (TK-xxxx, 800 g)   ·  çeşni stoğu +6 g

ÇIKIŞ (Rafineri Kuzey)           çeşni eklenmez: 800 g
  HAS      : 800 × 0,700 = 560,00 g  → Kuzey +560,00 (borçlu: bize has verecek)
  GÜMÜŞ    : 800 × 0,080 =  64,00 g  → Kuzey  +64,00
  İşçilik  : 560 × 0,002 = 1,12 g has → Kuzey −1,12 (alacaklı: işçiliğini kesecek)
  Takoz stoğu : −1 adet
Kasa: DEĞİŞMEZ (iki adımda da)

İşlemden önce

Nerede Değer
Takoz stoğu (MERKEZ) boş
Çeşni stoğu 0 g
Atölye Kemal — HAS / GUM 0 / 0
Rafineri Kuzey — HAS / GUM 0 / 0
Kur has 4.000 TL/g; gümüş kuru tanımlı (örnek)

ERPGOLD'da ne yapılır?

Adım 1 — giriş (WF-TAKOZ-GIRIS.md): Cari İşlemler ▸ Atölye Kemal1 - TAKOZ G ▸ TAKOZ TİPİ Has takozu (→ tip 6 ALTIN, BR-TAKOZ-002) ▸ AYAR EVİ ▸ RAPOR NO 7042, rapor durumu RAPORLU / NORMAL (rapor no boşken RAPORSUZ'a kilitli) ▸ MİKTAR 800 / ÇEŞNİ 6 (terazi düğmesi; miktar çeşni hariçtir, BR-TAKOZ-009) ▸ AU MİLYEM 700 / AG MİLYEM 80 (binde; toplam 1000'i aşamaz) ▸ AU İŞÇİLİK ‰2, birim HAS (hesap kartından dolu gelir) ▸ İŞÇİLİK DURUMU Altından Düş ▸ GÜMÜŞ DURUMU Madeni VerF2 (onay sorusu çıkmaz). Etiket ve takoz fişi basılır; imleç AYAR EVİ'ne döner.

Adım 2 — çıkış (WF-TAKOZ-CIKIS.md): Cari İşlemler ▸ Rafineri Kuzey2 - TAKOZ C ▸ TAKOZ KODU listesinden takoz (miktar/milyem/has salt okunur gelir) ▸ HAS ISC. ‰2, ISCILIK DURUMU Altından Düş, GUMUS DURUMU Madeni VerF2. Takoz kartı tüketilir, listeden düşer.

İşlemden sonra

Nerede Önce Giriş sonrası Çıkış sonrası
Takoz stoğu 0 1 adet (TK, 800 g, "Elimizde") 0
Çeşni stoğu 0 6 g 6 g (çıkış çeşniye dokunmaz; bkz. §6.10)
Kemal — HAS / GUM 0 / 0 −564,20 / −64,48 (+1,1284 işçilik) aynı
Kuzey — HAS / GUM 0 / 0 0 / 0 +560,00 / +64,00 (−1,12 işçilik)
Kasa değişmez değişmez

Net sonuç işletme için: Kemal'e 563,07 g has + 64,48 g gümüş borçluyuz; Kuzey'den 558,88 g has + 64 g gümüş alacaklıyız; aradaki 4,2 g has ve 0,48 g gümüş çeşni stoğunda duruyor. Raporsuz olsaydı: milyemler XRF'ten okunur; XRF de 0 ise bakiye HAS yerine TAKOZ birimine (−1) gram olarak ve %60 değerlemeyle yazılır, rapor gelince düzeltmeyle HAS'a döner (BR-BAKIYE-008, BR-BAKIYE-009, WF-TAKOZ-RAPOR-GIRISI.md).

Neden?

PEKİ NEDEN? Girişte 564,20 g, çıkışta 560,00 g — aynı takoz neden farklı has üretti? Girişte tetikleyici bakiyeye çeşni miktarını da ekler (806 g): Kemal'in bize verdiği kütlenin tamamı için alacaklanması gerekir, çeşni de onun altınıdır. Çıkışta çeşni eklenmez (800 g): rafineriye giden takoz zaten çeşnisi kesilmiş hâldedir. Fark (4,2 g has) çeşni stoğuna gider (BR-BAKIYE-010).

PEKİ NEDEN? Stok defterinde gram neden 0? Takoz nesne olarak izlenir: stok satırı yalnız adet +1 / −1 yazar; gram, milyem ve has bilgisi Stok.Takoz kartındadır. Stokta olmayan takoz çıkılamaz ("BU TAKOZ STOGUNUZDA YOK"), hareketi olan takozun girişi iptal edilemez (BR-STOK-007, BR-STOK-008).

BUNU KARIŞTIRMAAyar ≠ Milyem. Ekranda milyem binde girilir (700), kartta ve işlemde ondalık saklanır (0,700). "22 ayar" ise 916 milyemdir; takozda ayar kavramı yoktur.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Stok.Takoz — 1 kart (TBL-STOK.TAKOZ.md): Kodu TKxxxx, Miktar 800, CesniMiktar 6, AuMilyem 0,700, AgMilyem 0,080, RaporNo 7042, IsRapor 1, kayıt anı AuKur/AgKur. Cari.Islemler2 satır (oran 2,00 işlem/takoz, kitapçık §9.5):

Kolon GİRİŞ (Kemal) ÇIKIŞ (Kuzey)
IslemKodu / IslemTuru / IslemTipi 0 / 0 / 6 ALTIN 0 / 1 / 6 (karttan)
BakiyeId / StokId 0 / takoz Id 0 / aynı
Adet / Miktar / CesniMiktar 1 / 800 / 6 1 / 800 / 0
AuMilyem / AgMilyem 0,700 / 0,080 0,700 / 0,080
HasIsc / IscilikDurumu / GumusDurumu 0,002 / 0 / 0 0,002 / 0 / 0
Birim / Tutar HAS / işçilik has gramı (para değil) HAS / işçilik (BR-TAKOZ-006)
IsRapor / RaporNo / AyarEviId 1 / 7042 / ayar evi aynı

Tetikleyici TAKOZ dalı (TRG-CARI.ACCEPTTRANSACTION.md):

  • Kontrol: çıkışta Stok.GetTakozAdet(@StokId)=0 ise "BU TAKOZ STOGUNUZDA YOK" (satır 346–354); giriş iptalinde hareketi varsa "BU TAKOZA AIT ISLEMLER VAR" (satır 332–344).
  • Stok: satır 383–387 → Stok.StokHaraketleri StokTipi 3, Adet +1 / −1, Miktar/Milyem/Has 0.
  • Bakiye (satır 546–665): IsRapor=0 ise XRF milyemleri okunur (559–562); GİRİŞ'te @Miktar += @CesniMiktar (564); @HasBakiye = Miktar × AuMilyem; @HasIscilik = HasIsc × HasBakiye (570); GÜMÜŞ DURUMU 0 "Madeni Ver" → @GumBakiye += Miktar × AgMilyem (575–578; 1 "Altına Çevir" ise has'a kur oranıyla eklenir, 2 "İşçilikten Düş" ise işçilikten). Yazım (623–660): işçilik @BirimId'ye girişte +, çıkışta (628); HAS girişte −HasBakiye, çıkışta + (634); GUM aynı (640). XRF de 0 ise satır 663–664: BirimId −1 (TAKOZ), ±Miktar.

Matris: KUYUMCU TAKOZ tip 6 13.815 (GİRİŞ 6.909 / ÇIKIŞ 6.906), tip 7 7.421 (3.709 / 3.712) → stok %100 / bakiye %100 — giriş-çıkış çiftleri neredeyse birebir; Birim: HAS 14.544 (Altından Düş), TL 6.692 (Para İle); tutarı 0 olan (işçiliksiz) satırlar var. V2: 0 satır. Stok.Takoz: 10.870 satır. Kitapçık §9.5 kural 3: girişte yazılan has ile ölçülen has arasında takozların %29'unda kodda karşılığı bulunamayan bir fark var — GAP.

Akış: FLOW-IFTAKOZGIRIS.md, FLOW-IFTAKOZCIKIS.md; fonksiyon FN-STOK.GETTAKOZADET.md.

Raporda ne olur?

  • Takoz stok listesi (SCR-DATATAKOZLIST.md): "Elimizde" süzgeci adet ≠ 0; girişten sonra görünür, çıkıştan sonra düşer (H-117).
  • Bakiye Ekstresi (RPT-1RFN-REPORTS.BAKIYELISTESI): TAKOZ / HAS / GUM sütunları; raporsuz takozda TAKOZ sütunu ve NetBakiye ×0,6.
  • Takoz Kâr Raporu (RFN-REPORTS.TAKOZKARRAPORU): işçilik geliri/gideri.
  • Özet Bilanço (RFN-BILANCO.OZETBILANCO): takoz ve çeşni kalemleri ayrı satır; bilanço farkı çoğu zaman takozdan gelir (PB-055, H-130).
  • İşlem Raporu: kısaltma TGA/TCA (Takoz-Giriş/Çıkış-Altın).

Yanlış yapılırsa ne olur?

  • Milyem toplamı 1000'i geçti: alan silinir, uyarı (H-067); has takozunda has milyemi diğerlerinden düşük: uyarı (H-068).
  • Çeşni MİKTAR'a dahil edildi: has iki kez sayılır (girişte çeşni zaten eklenir).
  • Transfer (şube) hesabında giriş: "Transfer İşlemlerinde Giriş İşlemi Yapamazsınız" (H-069, BR-TAKOZ-001).
  • Aynı takozu iki kez çıkmak: tetikleyici reddeder; devirden önce alınan takozu devirden sonra çıkmak: stok −1 (WF-YIL-SONU-DEVIR.md, PB-049).
  • Raporsuz takozda XRF 0: bakiye TAKOZ biriminde kalır, has raporları eksik görünür; rapor gelince düzeltme şart.

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: milyemi ondalık girmek (0,700 yerine 700 beklenir — girişte binde); işçilik 0 bırakıp "İşçiliği Girilmemiş" uyarısını EVET'le geçmek (H-066); küçük takozda etiket çıkmamasını hata sanmak (H-073 — Miktar>30 kuralı). Müşteri: "TAKOZ C'de milyem kutuları boş, takozun kimden geldiğini göremiyorum" (H-072); "hesaba göre takoz işçiliğini sabitlemek istiyorum" (H-034, PROC-152); "takoz stokta görünmüyor" (H-117 — yanlış kasa / raporsuz). Destek personeli: bilanço farkında takozu atlamak (PB-055); takoz girişini iptal ederken "BU TAKOZA AIT ISLEMLER VAR" gelince çıkışı önce iptal etmeyi unutmak (PB-049, PROC-162). Geliştirici: Tutar'ı para sanmak (takozda has gramıdır); IslemTipi 6/7'yi peşin/normal gibi tip sanmak (metal tipidir); stok satırında gram beklemek (adet nesnesidir); Stok.Takoz.IsDeleted ile Cari.Islemler.IsDeleted bağını atlamak (satır 342).

İlgili destek senaryoları

SCN-TAKOZ.md, kitapçık §9.5 (gerçek takoz TK23449: 691,73 g, Au 0,638), WF-TAKOZ-GIRIS.md, WF-TAKOZ-CIKIS.md, WF-TAKOZ-SERI-CIKIS.md, WF-TAKOZ-RAPOR-GIRISI.md, WF-BLOK-TAKOZ-GIRIS.md. Zincir: SYM-TAKOZ.md (8 çağrı — az ama karmaşık), SYM-BILANCO.md. Playbook: PB-049, PB-055. Süreç: PROC-152, PROC-162. Bilinen sorun: H-034, H-066–H-070, H-072, H-073, H-117, H-130.

Varyantlar

Varyant Yön Tip (metal) V2 satır KUYUMCU satır Stok / Bakiye
Altın takozu girişi GİRİŞ 6 ALTIN veride yok 6.909 adet +1 / HAS+GUM(+işçilik)
Altın takozu çıkışı ÇIKIŞ 6 ALTIN veride yok 6.906 adet −1 / HAS+GUM
Gümüş takozu girişi / çıkışı GİRİŞ / ÇIKIŞ 7 GÜMÜŞ veride yok 3.709 / 3.712 evet / evet
Platin / paladyum takozu 8 / 9 veride yok veride yok
İşçilik "Altından Düş" (Birim HAS) 14.544 işçilik HAS satırı
İşçilik "Para İle" (Birim TL) 6.692 işçilik TL satırı
İşçiliksiz (tutar 0) GİRİŞ / ÇIKIŞ 6 / 7 6 ALTIN: 82+27 / 92+54 · 7 GÜMÜŞ: 15+5 / 423+4 evet / HAS+GUM (işçilik satırı yok)
Raporlu / raporsuz %99,9 raporlu (kitapçık §9.5); matriste rapor ekseni yok → GAP
Peşin / cari / resmi hepsi BakiyeId=0, tip 6/7; PEŞİN/RESMİ veride yok
Şubeli / şubesiz GAP (matriste ölçülmedi)

6.10 ÇEŞNİ — numune gramını bir hesaba yazmak (IslemKodu 14; yalnız kuyumcu kurulumu)

Nedir?

Seviye 1 — Çok basit. Ayar evi takozun saflığını ölçmek için ondan küçük bir parça keser. Parça analizde eriyip gider, geri gelmez. Ama o parçada altın vardı — birinin altınıydı. Kimin? Ayar evinin mi (ücret yerine), müşterinin mi, dükkânın mı? Bu küçük parçanın adı çeşni, hesabını yazmanın adı ÇEŞNİ işlemidir.

Seviye 2 — İşletme mantığı. Kesin ayar ölçümü (küpelasyon) tahribatlıdır, numune ister; XRF tahribatsızdır ama rapor kadar kesin sayılmaz (TERM-XRF.md). 5 g numune 0,70 milyemde 3,5 g has demektir — kimse bunu "fire" diye sessizce kaybetmek istemez. Takoz girişlerinde yazılan çeşni gramları işletmenin çeşni stoğunda birikir; anlaşmaya göre ayar evine, müşteriye ya da fire hesabına çıkış yazılır (SEC-CESNI.md, SEC-AYAR-EVI.md). Kuyumcu kurulumunda 10.618 takozun %17,2'sinde çeşni alınmış; 13 ayda 120 çeşni çıkışı, 9.444 g brüt / 6.210 g has.

Seviye 3 — ERPGOLD. C - ÇEŞNİ ekranı (SCR-IFCESNI.md) toplam çeşni gramı ve ortalama Au/Ag milyemleriyle açılır; seçili hesaba çıkış yazar. Ekran yalnız ÇIKIŞ üretir. Bu işlem stok defteri üretmez ama bakiye üretir (HAS + GUM, iki satır) — matriste 120 satır, stok %0 / bakiye %100. Çeşni stoğu ayrı bir tablo değildir; Cari.Islemler üzerinden hesaplanan bir görünümdür.

Neden yapılır?

Çeşni yazılmazsa takoz girişinde müşteriye alacak yazılan çeşni gramı (takozda 6 g → 4,2 g has) işletmenin üstünde "sahipsiz" kalır: bilanço has fazlası gösterir, ayar evi ücreti hesaba yazılmaz, yıl sonu devrinde tutarsızlık çıkar (WF-YIL-SONU-DEVIR.md).

Kim yapar?

Ali Çelik dönem sonunda ya da ayar evi hesaplaşmasında; TAKOZ yetkisi gerekir — yetkisiz kullanıcıda ÇEŞNİ ekranı açılmaz, program Cesni yerine Takoz bayrağına bakar (H-012, SEC-AUTHZ).

Örnek

ÖRNEK ALTIN A.Ş. §6.9'daki takozdan kalan 6 g çeşni (Au 0,700 / Ag 0,080), anlaşma gereği ayar evine aittir; Rafineri Kuzey ayar evi hizmetini de verdiği için onun hesabına çıkış yazılıyor.

MİKTAR 6,00 g   MILYEM(AU) 0,700   MILYEM(AG) 0,080      (1000'e bölme yok)
HAS   : 6 × 0,700 = 4,20 g  → Kuzey +4,20 (borçlu)
GÜMÜŞ : 6 × 0,080 = 0,48 g  → Kuzey +0,48 (borçlu)
Çeşni stoğu : 6 → 0 g        Kasa / stok defteri : DEĞİŞMEZ

İşlemden önce

Nerede Değer
Çeşni stoğu (MERKEZ) 6,00 g, ortalama Au 0,700 / Ag 0,080
Rafineri Kuzey — HAS / GUM +560,00 / +64,00 (−1,12 işçilik) — §6.9 sonrası

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ Rafineri KuzeyC - ÇEŞNİ. Ekran 6,00 / 0,700 / 0,080 ile açılır (okunamazsa 0/0/0 — H-075; milyemler elle yazılır).
  2. MİKTAR 6,00 (kısmi çıkışta düzeltilir) · MILYEM(AU) 0,700 · MILYEM(AG) 0,080 · AÇIKLAMA: takoz no.
  3. F2 - KAYIT düğmesine fareyle basılır — klavye F2/F5/F3 çalışmaz, onay sorulmaz (WF-CESNI-CIKIS.md adım 3). Kayıttan sonra ekran kapanır.

İşlemden sonra

Nerede Önce Sonra
Çeşni stoğu 6,00 g 0 g
Kuzey — HAS +558,88 (net) +563,08
Kuzey — GUM +64,00 +64,48
Stok defteri / kasa değişmez

İptal edilirse gram havuza geri döner (IsDeleted süzgeci).

Neden?

PEKİ NEDEN? Stok defteri yazılmıyorsa çeşni stoğu nasıl azalıyor? Çeşni stoğu bir defter değil, bir hesaplamadır: Stok.GetCesniStoklari fonksiyonu takoz girişlerinin CesniMiktar toplamını artı, IslemKodu 14 satırlarının Miktar toplamını eksi, devir fotoğrafını (TBL-STOK.DEVIRCESNISTOKLARI) artı olarak toplar (FN-STOK.GETCESNISTOKLARI.md). Yani "stok üretmez ama stok azalır" çelişki değildir: azalan şey Stok.StokHaraketleri değil, bu görünümdür.

PEKİ NEDEN? Bakiye neden pozitif (borç)? Numune Kuzey'e gitti; onun altını oldu, bize borçlandı. Tetikleyicinin ÇEŞNİ dalında yön kontrolü yoktur: doğrudan Miktar × AuMilyem yazar, hep pozitif (BR-BAKIYE-004). Ekran zaten yalnız ÇIKIŞ ürettiği için sorun çıkmaz; ama bir çeşni GİRİŞİ girilebilseydi işaret çevrilmezdi (GAP-TRN-CESNI-01).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler — 1 satır: IslemKodu 14 (kod enum'unda var, DB kod tablosu Sistem.CariIslemKodu'nda yok — CTR-039) · IslemTuru 1 ÇIKIŞ · IslemTipi 0 · BakiyeId 0 · Miktar 6,00 · AuMilyem 0,700 · AgMilyem 0,080 · Fiyat/Tutar/Birim boş · Vade +2 gün.

Tetikleyici ÇEŞNİ dalı (satır 418–424):

IF @IslemKodu=14
  Insert Cari.BakiyeIslem(... BirimId, Bakiye) Values(... @HasBirimId, @Miktar * @AuMilyem)
  Insert Cari.BakiyeIslem(... BirimId, Bakiye) Values(... @GumBirimId, @Miktar * @AgMilyem)

→ HAS +4,20, GUM +0,48; Case yok, yön yok, IslemTipi<>1 koşulu yok. Stok: IslemKodu 14 için stok dalı yok (satır 378–409) → Stok.StokHaraketleri satırı yok (BR-STOK-011).

Matris: KUYUMCU ÇEŞNİ NORMAL 120 satır → stok %0 / bakiye %100; tamamı ÇIKIŞ (69'unda fiş/detay kaydı var, 51'inde yok); Tutar≠0 oranı 0; Birim boş (120). V2: 0 satır.

Rapor tuzağı: kod tablosunda 14 olmadığı için Sistem.CariIslemKodu ile INNER JOIN yapan rapor bu 120 satırı düşürür (TD-44.md, WF-CESNI-CIKIS sonuç). Akış: FLOW-IFCESNI.md (tek birincil tablo: Cari.Islemler; Cesni.RetriveDataStok.GetCesniStoklari).

Raporda ne olur?

  • Çeşni Stokları listesi (ANA MENÜ ▸ Stoklar ▸ Cesni Stoklari → SCR-FRMPOPUPGRID.md, FN-STOK.GETCESNISTOKLARI): 0 g.
  • Bakiye Ekstresi (RPT-1): Kuzey HAS/GUM BORÇ artar.
  • Özet Bilanço (RFN-BILANCO.OZETBILANCO): çeşni kalemi HAS/GUM değeriyle düşer.
  • İşlem Raporu: kod tablosuna INNER JOIN yapıyorsa satır görünmez (CTR-039); LEFT JOIN yapıyorsa kod adı boş gelir.
  • Hacim raporları: MET-ISLEM-HACMI filtresi (IslemTuru 1) çeşniyi satış gibi sayabilir; Tutar 0 olduğu için TL hacmi 0, has hacmi 4,20 — raporun tanımına bak.

Yanlış yapılırsa ne olur?

  • Yanlış hesaba çıkış: has/gümüş borcu yanlış kişide; iptal + yeniden giriş (gram havuza döner).
  • Ekran 0/0/0 açıldı, milyem boş bırakıldı: bakiye 0 yazılır, çeşni stoğu yine düşer → has "buharlaşır" (H-075).
  • Ondalık kaybı: ekranda 100,50 g, işlemde 100,00 (H-071).
  • Negatif milyem: engellenmiyor (kitapçık §9.5: −0,00005 çeşni milyemi, GAP-SEC-MILYEM-01).
  • Devir öncesi çeşni stoğu sıfırlanmadı: yeni yılda tutarsızlık (WF-YIL-SONU-DEVIR.md).

Sık yapılan hatalar

SIK YAPILAN HATALAR Yeni çalışan: klavyeden F2'ye basıp "kayıt olmadı" sanmak (fareyle düğme gerekir); onay sorusu beklemek (yoktur). Müşteri: "çeşni ekranı menüde yok / açılmıyor" (H-012 — TAKOZ yetkisi); "100,50 yazdım 100 kaydetti" (H-071). Destek personeli: çeşni işlemini stok raporlarında arayıp "stok üretmemiş, tetik bozuk" demek — tasarım gereği stok defteri yoktur; çeşni stoğu fonksiyondan okunur. Geliştirici: IslemKodu 14'ü kod tablosuna INNER JOIN ile bağlamak (satırlar kaybolur, TD-44); ÇEŞNİ dalında yön kontrolü olmadığını unutup GİRİŞ desteği eklemek; CesniMiktar (takoz girişi) ile Miktar (çeşni çıkışı) alanlarını karıştırmak.

İlgili destek senaryoları

SCN-CESNI.md, SCN-TAKOZ.md (öncesi), WF-CESNI-CIKIS.md, kitapçık §9.5. Zincir: SYM-TAKOZ.md, SYM-BILANCO.md, SYM-RAPOR.md. Playbook: PB-049, PB-041 (yetki). Bilinen sorun: H-012, H-071, H-075. Teknik borç: TD-44.

Varyantlar

Varyant Yön Tip V2 satır KUYUMCU satır Stok / Bakiye
Çeşni çıkışı (fişli) ÇIKIŞ NORMAL veride yok 69 hayır / evet (HAS + GUM)
Çeşni çıkışı (fişsiz) ÇIKIŞ NORMAL veride yok 51 hayır / evet
Çeşni girişi GİRİŞ veride yok veride yok (ekran üretmez; tetikleyici işareti çevirmez — GAP)
Peşin / resmi / cari (BakiyeId>0) veride yok veride yok (hepsi BakiyeId 0, tip 0)
Tutarlı / birimli çeşni veride yok (Tutar 0, Birim boş — 120/120)
Şubeli / şubesiz GAP (matriste ölçülmedi)

KAYNAK — Bu yarının kanıt tabanı: TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md ve _data/islem_matrisi.json (gerçek dağılım, 2026-09-12); ../ERPGOLD_WIKI/08_Database/Triggers/TRG-CARI.ACCEPTTRANSACTION.md (tetikleyici SQL; satır numaraları makaleye göre); ../ERPGOLD_WIKI/07_BusinessRules/BR-DEFTER-URETIMI.md; ../ERPGOLD_WIKI/13_Training/Scenarios/ (21 senaryo); ../ERPGOLD_WIKI/06_Workflows/; ../ERPGOLD_WIKI/05_Screens/; kitapçık ERPGOLD_Egitim_Kitapcigi.md (eğitim kitapçığı) §5.1–§5.7 ve §9.5. Bulgular: _tools/book_findings_06a.md.

Bölümün ikinci yarısı (06b) kalan aileleri — TAŞ, PIRLANTA, MODEL, GENEL, EMTİA, FATURA/RESMİ, DEVİR, düzeltme ve iptal — aynı şablonla işler ve bölüm sonu sınavını içerir.


İşlemler (2/2) — belge/kontrol kayıtları, düzeltenler, silenler ve yıl sonu

Bölümün ilk yarısında (06a) mal ve paranın el değiştirdiği işlemleri gördün: maden, hurda, nakit, takoz, çevir, vadeli, virman, hizmet… Bu yarıda ERPGOLD'un daha az görünen ama daha çok "destek çağrısı üreten" tarafı var: ikincil mallar (emtia, taş, pırlanta), fatura/belge ve belge kontrol kaydı (legacy adı "resmi işlem"; operasyonel stok/bakiye kaydı üretmeyen belge satırları), peşin / cari ayrımı, mahsup, yıl sonu devir, yanlış kaydı düzeltme ve iptal.

Bu yarıyı okurken aklında tek bir cümle dursun: ERPGOLD'da kullanıcı yalnız bir yere yazar (Cari.Islemler); geri kalan her şeyi tetikleyici üretir. Bu bölümdeki işlemlerin çoğu tam da bu üretimin olmadığı ya da geri alındığı durumlardır.

KAYNAK — Bu yarıdaki bütün satır sayıları ve oranlar _data/islem_matrisi.json (sorgu tarihi 2026-09-12, IsDeleted=0) ve TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md dosyasından alınmıştır. Veride olmayan kombinasyon için "veride yok" yazılır; tahmin edilmez. Kurulumlar: V2 = döviz bürosu (1.527.852 işlem), KUYUMCU = kuyumcu/rafineri (655.294 işlem).

BUNU KARIŞTIRMAİşlem ≠ Stok hareketi ≠ Bakiye hareketi. Bir işlem satırı (Cari.Islemler) üç ayrı sonuç üretebilir ya da hiç üretmeyebilir: stok defteri satırı (mal fiziksel yer değiştirdi mi?), bakiye defteri satırı (bedel hesaba yazıldı mı?), fiş/fatura detayı (belge var mı?). Bu üçü bağımsızdır; bu bölümün matrisi tam olarak bunu ölçer.


11. EMTİA

Nedir?

Seviye 1 — Çok basit

Ali'nin babasının kuyumcu dükkânında altın dışında da satılan şeyler var: gümüş pul, hediye kutusu, temizleme bezi, madeni hatıra parası. Bunlar "altın gibi" tartılıp has'ı hesaplanmaz; adediyle ve tek fiyatla satılır. ERPGOLD bu tür ikincil mallara EMTİA der.

Seviye 2 — İşletme mantığı

Kuyumcu ve döviz bürosunun asıl ticareti has altın ve para üzerinedir; ama vitrinde ve tezgâhta ikincil mal döner. Bunlar için ayrı bir kart listesi tutulur (emtia kartı): tek fiyat, tek birim (alış/satış fiyatı ayrımı yoktur). Emtia satışı cironun küçük bir kısmıdır ama fişte ve müşteri hesabında görünmesi gerekir.

Seviye 3 — ERPGOLD

Cari İşlemler tezgâhında EMTİA ekranı (SCR-IFEMTIA) açılır; KODU (emtia kartı) seçilince FİYAT ve BİRİM karttan gelir, MİKTAR girilir, TUTAR = MİKTAR × FİYAT hesaplanır. İşlem kodu 13, listede kısaltması E.

Neden yapılır?

İkincil malın satış tutarını müşteri hesabına (cari) ya da kasaya (peşin) yazmak için. Has hesabına girmemesi gerekir; bu yüzden ayrı ekranı vardır.

Kim yapar?

Satış personeli (ÖRNEK ALTIN A.Ş.'de Zeynep Aksoy). Yetki: Cari İşlemler ekran yetkisi.

Örnek

ÖRNEK ALTIN A.Ş. — Kuyumcu Selim 10 adet "GÜMÜŞ PUL 10g" (kart fiyatı 150 TL, örnek fiyat) alıyor, hesabına yazılıyor. TUTAR 1.500 TL. Selim'in TL borcu 1.500 TL artar; has bakiyesi değişmez; kasaya para girmez. Selim aynı malı peşin alsaydı bakiye yazılmaz, kasaya 1.500 TL girerdi.

İşlemden önce

  • Emtia kartı tanımlı olmalı (SCR-FRMEMITAEKLE).
  • Hesap seçili, şube/kasa dolu; PEŞİN seçilecekse BİRİM mutlaka bir nakit birimi olmalı (WF-EMTIA-ISLEM adım 3).

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ hesap ▸ TAMAM ▸ alt şeritte E - EMTİA.
  2. ISLEM = ÇIKIŞ (satış) / GİRİŞ (alış). Şube hesabında ÇIKIŞ'a kilitlidir (BR-GENEL-003).
  3. KODU, MİKTAR; FİYAT/BİRİM karttan. TUTAR otomatik.
  4. F2. Doğrulama sonucu kontrol edilmez; "Hayır" denilse de kayıt yapılır (BR-GENEL-003 kod boşluğu).

İşlemden sonra

Müşteri bakiyesine yalnız TL tutar satırı düşer. Stok defterine satır düşmez; emtia kart miktarı stok hareket raporunda görünmez.

Neden?

PEKİ NEDEN? — Emtia neden stok defterine yazılmaz? Tetikleyicide IslemKodu = 13 için stok dalı yoktur (BR-STOK-011); yalnız "tutar" dalı çalışır ve Cari.BakiyeIslem'e TL satırı yazar. Has hesabına girmemesinin sebebi AuMilyem = 0 olmasıdır: Has = Miktar × Milyem = 0.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler 1 satır: IslemKodu 13, IslemTuru 1 (ÇIKIŞ), IslemTipi 0, StokId = emtia kart Id, Miktar 10, AuMilyem 0, Fiyat 150, Tutar 1.500, Birim TL. Ek olarak Cari.IslemEmtiaDetayi satırı yazılır (TBL-CARI.ISLEMEMTIADETAYI); iş anlamı kaynaklı değil (GAP-TRN-EMTIA-01).

Tetikleyici TRG-CARI.ACCEPTTRANSACTION: Cari.BakiyeIslem → 1 satır (TL +1.500, ÇIKIŞ → borç pozitif, BR-YON-004); Stok.StokHaraketleriyok. Veri akışı: TECHNICAL_WIKI/FLOWS/FLOW-IFEMTIA.md. DAO: AIO.Cari.Islem, AIO.Stok.Emtia; kart tablosu TBL-STOK.EMTIA.

GAPGAP-06B-EMTIA-VERI: İşlem matrisinde IslemKodu 13 satırı iki kurulumda da yoktur (V2 0, KUYUMCU 0). EMTİA ekranı kodda ve menüde var; incelenen iki canlı veritabanında hiç kullanılmamış. Bu bölümdeki defter davranışı koddan ve tetikleyiciden türetilmiştir, canlı veriyle doğrulanmamıştır.

Raporda ne olur?

  • Bakiye ekstresi: TL borç +1.500. İşlem raporu: kısaltma E, has sütunu 0.
  • Ciro metriğine girer (MET-CIRO, IslemTuru 1); has/gram raporlarına girmez (IslemKodu IN (0,1,2) süzgeci) — METRIC_DICTIONARY.
  • Emtia listesi ekranı vardır, hareket bazlı emtia ekstresi yoktur (GAP).

Yanlış yapılırsa

  • Emtia yerine MADEN ekranından satılırsa has hesabına girer, müşterinin altın bakiyesi bozulur → düzeltme değil iptal + yeniden giriş gerekir (kod değişmez, bkz. §19).
  • PEŞİN + nakit olmayan birim → "TutarBirim çözümlenemedi" hatası.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Gümüş pulu HURDA ya da MADEN ekranından girer; has bakiyesi şişer. - Müşteri: "Emtia stok raporunda görünmüyor" diye arar; ürün stok defterine yazılmadığı için normaldir (PB-063). - Destek personeli: Emtia satırının bakiye üretmesini "stok hareketi" sanıp Stok.StokHaraketleri'nde arar. - Geliştirici: "Emtia" kelimesini vadeli formülündeki Emtia = Miktar × Katsayı ara değeriyle karıştırır (CTR-SEC-EMTIA-01).

İlgili destek senaryoları

SCN-EMTIA · WF-EMTIA-ISLEM · PB-063 · SEC-EMTIA

Varyantlar

Varyant Bakiye Stok Kasa Veride
EMTİA ÇIKIŞ NORMAL (cari) ✔ TL veride yok (kod)
EMTİA ÇIKIŞ PEŞİN ✔ nakit karşı satırı (BR-TIP-003) veride yok (kod)
EMTİA GİRİŞ ✔ TL alacak veride yok (kod)
GENEL (kod 10) ile fark GENEL kartında alış/satış fiyatı ayrı; ikisi de stok defteri yazmaz veride yok

12. TAŞ / PIRLANTA

Nedir?

Seviye 1 — Çok basit

Mehmet bir yüzük alıyor: yüzüğün altını gramla, üzerindeki taş ise ya adetle (zirkon, 50 adet) ya da karatla (pırlanta, 0,50 ct) satılır. Altın "has" ile ölçülür; taşın has'ı yoktur. Bu yüzden ERPGOLD'da taş ve pırlanta için ayrı ekranlar vardır.

Seviye 2 — İşletme mantığı

  • Taş (zirkon, safir, inci, sentetik): kartına göre adetle ya da gramla satılır; ucuz, toplu.
  • Pırlanta: her taşın kendi kartı, karatı, sertifikası, fotoğrafı vardır; her zaman adetlidir, karat = tek taş karatı × adet. Maliyet ve satış fiyatı ayrı izlenir; kâr raporu bu iki değerden hesaplanır.

Seviye 3 — ERPGOLD

İki ekran: TAŞ (kod 7, kısaltma D) ve PIRLANTA (kod 8, kısaltma P). Benzer görünürler ama tetikleyicide farklı davranırlar: PIRLANTA stok defterine adet yazar, TAŞ yazmaz.

Neden yapılır?

Yüzük/kolye satışında taşın bedelini altından ayrı göstermek; pırlantada adet stoğunu ve kartın maliyet/satış farkını izlemek için.

Kim yapar?

Satış personeli. Pırlanta kart numarasını STOK KODU alanına yazıp Tab ile bulur.

Örnek

ÖRNEK ALTIN A.Ş. — Zeynep, Kuyumcu Selim'e (cari) 50 adet ZİRKON-3MM (20 TL/adet, örnek) ve 1 adet PIR-0001 (0,50 ct; kart maliyeti 8.000 TL, satış 12.000 TL) satıyor. Selim'in TL borcu 1.000 + 12.000 = 13.000 TL artar. Karat/adet bakiyesi yazılmaz. Pırlanta kartı stoğu 3 → 2 adet olur; zirkon kart stoğunun nereden güncellendiği kaynaklı değildir (GAP-TRN-TAS-01).

İşlemden önce

ERPGOLD'da ne yapılır?

  1. TAŞ: ISLEM ÇIKIŞ, tip NORMAL, STOK KODU; FİYAT karttan (ÇIKIŞ → çıkış fiyatı); ADET 50; MİKTAR (gram) zorunlu; TUTAR = 50 × 20.
  2. PIRLANTA: STOK KODU'na kart no + Tab; fotoğraf ve FİYAT (ÇIKIŞ → satış fiyatı, BR-PIRLANTA-001); ADET 1 → MİKTAR 0,50 ct otomatik.
  3. F2 - KAYIT düğmesine fareyle basılır; klavye F2 bu ekranlarda çalışmaz (H-092).

İşlemden sonra

Her iki satır müşteri bakiyesine yalnız TL tutar yazar. PIRLANTA stok defterine Adet −1 yazar; TAŞ hiçbir stok satırı yazmaz.

Neden?

PEKİ NEDEN? — İki ekran neden farklı? Tetikleyicide IslemKodu 8 için StokTipi 4 adet dalı vardır (BR-STOK-004); IslemKodu 7 için dal yoktur (BR-STOK-011). Ekran makalesi ve iş akışı TAŞ için "klasik stok hareketi" der; kod yazmaz — bu CTR-SEC-TAS-01'dir; kod esas alınır.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)
Alan TAŞ PIRLANTA
IslemKodu / IslemTuru / IslemTipi 7 / 1 / 0 8 / 1 / 0
BakiyeId 0 (GAP: BR-BAKIYE-002 taş/pırlanta için değer vermez) 0 (GAP)
Adet / Miktar 50 / 5,00 g 1 / 0,50 ct
Fiyat / Tutar / Birim 20 / 1.000 / TL 12.000 / 12.000 / TL
FiyatTipi 1 (kayıtta sabit)
Maliyet / Satis 0 / 0 (hesaplanmaz) 8.000 / 12.000 (BR-MALIYET-003)
Cari.BakiyeIslem TL +1.000 TL +12.000
Stok.StokHaraketleri yok StokTipi 4, Adet −1, Miktar 0, Maliyet = Tutar × GetKur(Birim)

CTR-SEC-PIRLANTA-01: pırlanta maliyeti uygulamada kart maliyeti × kur × adet (BR-MALIYET-003), tetikleyicide Tutar × kur (BR-STOK-004). Veri akışları: FLOW-IFTAS, FLOW-IFPIRLANTA. Ekranların okuduğu Stok.GetTasListesi / Stok.GetPirlantaListesi fonksiyonları örnek DB'de yok (ekran makaleleri ⚠︎ işaretli).

GAPGAP-06B-TAS-PIRLANTA-VERI: İşlem matrisinde IslemKodu 7 ve 8 satırı iki kurulumda da yoktur. Döviz bürosu kurulumunda beklenmez; kuyumcu kurulumunda da kullanılmamış (bu kuyumcu toptancı/rafineri profilidir). Defter davranışı koddan türetilmiştir.

Raporda ne olur?

  • Bakiye ekstresi: TL 13.000 borç.
  • Pırlanta stok listesi: PIR-0001 2 adet. Taş stok listesi hareket göstermez (stok satırı yok).
  • Kâr raporunda taş satırı Maliyet/Satis 0 taşır; pırlanta satırı 4.000 TL kâr gösterir (hangi maliyetin okunduğu CTR).

Yanlış yapılırsa

  • Pırlantada PEŞİN seçilince hata (H-093); pırlanta peşin satışı için BİRİM nakit stoğuna çevrilir (BR-PIRLANTA-001).
  • Kart no bulunamazsa alan sessizce temizlenir; ADET 0 ile boş satır kaydedilebilir.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Klavye F2'ye basıp "kaydetmedi" sanır; düğmeye fareyle basılır (H-092). - Müşteri: "Taş stoğum düşmüyor" — TAŞ stok defterine yazmaz; kartın nasıl güncellendiği GAP. - Destek personeli: TAŞ ve PIRLANTA'yı aynı sanıp stok hareketinde taş satırı arar. - Geliştirici: Pırlanta maliyetini raporda tetikleyici kolonundan mı uygulama kolonundan mı okuduğunu belirtmez (CTR-SEC-PIRLANTA-01).

İlgili destek senaryoları

SCN-TAS-PIRLANTA · WF-PIRLANTA-ISLEM · WF-TAS-NORMAL · PB-063 · SEC-TAS · SEC-PIRLANTA

Varyantlar

Varyant Bakiye Stok Veride
TAŞ ÇIKIŞ NORMAL (adetli kart) ✔ TL veride yok
TAŞ ÇIKIŞ NORMAL (gramlı kart, ADET kapalı) ✔ TL veride yok
PIRLANTA ÇIKIŞ NORMAL ✔ TL ✔ Adet −1 (StokTipi 4) veride yok
PIRLANTA GİRİŞ NORMAL (alış) ✔ TL alacak ✔ Adet +1 veride yok
PIRLANTA PEŞİN ✔ Adet + nakit karşı satırı veride yok; ekranda hata (H-093)

13. FATURA

Nedir?

Seviye 1 — Çok basit

Ali marketten alışveriş yapınca fiş alır; büyük alışverişte fatura alır. Fatura, alım-satımın mevzuata göre düzenlenen mali belgesidir. Malı almak ayrı bir olay, faturayı kesmek ayrı bir olaydır; ikisi aynı anda olabilir ama olmak zorunda değildir.

Seviye 2 — İşletme mantığı

ERPGOLD, işletmenin operasyon ve ön muhasebe kaydıdır: kimin kime ne borçlu olduğu, kasada ve stokta ne olduğu has/döviz bazında burada izlenir. İşletmenin mevzuat gereği düzenlemesi gereken mali belge (fatura, e-Arşiv, ÖKC fişi; yetkili müessesede e-Döviz Alım/Satım Belgesi) ayrı bir hukuki/mali süreçtir ve işletme türüne göre değişir. Kuyumcu müşteriler ERPGOLD üzerinden e-Fatura kesmez; belgeleri kendi mali/e-belge veya muhasebe sistemlerinden düzenlenir (AIFASOFT ürün sahibi, kanonik). Yetkili müessesede ise e-Döviz belgesi ERPGOLD'un E-FATURA penceresinden entegratör firmaya iletilir; iletilen belgenin bir ETTN numarası olur. ERPGOLD'un bastığı işlem fişi yasal mali belge yerine geçmez.

Seviye 3 — ERPGOLD

"Fatura" ERPGOLD'da üç ayrı şeydir; en çok karıştırılan konudur (PRB-FATURA-000: 1.286 çağrı, çağrıların %11,5'i):

# Ne Nerede Deftere yazar mı
1 Bir işleme belge basmak (F5 / Ctrl+Y) E-FATURA penceresi; işlem satırı değişmez, fatura numarası detay tablosuna yazılır işlemin tipine göre zaten olmuştur
2 RESMİ işlem tipi (IslemTipi 11, kod adı FATURA) MADEN/HURDA/NAKİT ekranında tip seçimi hayır (§14)
3 FATURA işlem kodu (IslemKodu 12) Faturalar modülü, FrmFaturaEkle; Cari İşlemler'de F - FATURA hayır; yalnız Cari.Faturalar + Cari.FaturaDetay

Bu başlık 1 ve 3'ü anlatır; 2 için §14.

Neden yapılır?

Mevzuat: belirli tutar üstü döviz/altın işlemlerinde belge zorunludur; mali müşavir aylık BTrans aktarımını bu belgelerden alır (INT-BTRANS). Eşikler ve dayanak tebliğ bu kitapta GAP-MEVZUAT (tarihli kaynak yok; PB-019).

Kim yapar?

Gişe/kasiyer (Mehmet Kaya) işlem anında F5 ile; muhasebe (Ali Çelik) sonradan Ctrl+Y ile ya da Faturalar modülünden. E-belge listesi toplu gönderimini muhasebe yapar.

Örnek

ÖRNEK ALTIN A.Ş. — Döviz Nuri gişeden 500 EUR alıyor, peşin TL ödüyor (kur 46,30 örnek; 23.150 TL). Mehmet F2 yerine F5'e basar: işlem kaydedilir ve E-FATURA penceresi açılır; Nuri'nin kimlik/adres bilgileri ve istatistik kodu kontrol edilir; F5-Yazdır ile belge entegratöre gider, ETTN döner, belge basılır. Kasa: EUR −500, TL +23.150 (peşin satışın kendisi). Fatura basmak hiçbir bakiye/stok değiştirmez.

İşlemden önce

ERPGOLD'da ne yapılır?

A — İşleme belge (F5): 1. NAKİT/MADEN ekranında alanlar dolar, F5 → onay → kayıt + E-FATURA penceresi (WF-FATURA-KES-F5). 2. UNVAN, VERGİ D./NO veya kimlik, İSTATİSTİK NO, ödeme tipi; gerekirse Yasaklı Sorgulama. 3. F5 - Yazdır: doğrulamalar — istatistik kodu boş → "Lütfen Istatistik Kodunu Giriniz."; KODU = BİRİM (TL/TL) → "Aynı Para Cinsi ile Fatura kesemezsiniz." (BR-FATURA-002); TL alış/satışına fatura kesilemez (BR-FATURA-003). 4. Bağlantı varsa entegratöre gider; kabulde DOC.NO + ETTN dolar. Bağlantı yoksa Kaydet ile taslak; sonra E-fatura listesi ▸ Tümünü Gönder (WF-EFATURA-GONDER).

B — Fatura kaydı (F - FATURA, kod 12): Faturalar modülünde başlık (ALIŞ/SATIŞ, NORMAL/İADE, seri+no, tarih, döviz cinsi, vade) + kalemler; işlem listesine IslemKodu 12 satırı düşer (WF-FATURA-EKLE-F).

İşlemden sonra

A: işlem satırı aynı kalır; fatura seri/no/ETTN detay tablosuna yazılır; ETTN dolduktan sonra işlem düzeltilemez. B: IslemKodu 12 satırı bakiye ve stok defterine yazmaz.

Neden?

PEKİ NEDEN? — Fatura basmak neden bakiyeyi değiştirmez? Çünkü bakiye ve stok, işlem satırının tipinden üretilir (peşin → stok, cari → bakiye…); fatura yalnız o satıra bir belge numarası iliştirir. Neden ETTN'li işlem düzeltilemez? Belge GİB'e iletilmiştir; tetikleyici ETTN dolu satırın güncellenmesini "E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ" ile geri alır (BR-DUZELTME-010); önce e-belge iptali gerekir (BR-IPTAL-006).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

A (F5): Cari.Islemler satırı değişmez. Yazılan: Cari.IslemDetaylari.SiraNo, FaturaSeri, FaturaNo, FaturaUnvan, FaturaVergiDairesi, FaturaVergiNo, … (37 mevzuat kolonu, döviz varyantı), entegratör kabulünde ETTN, DocNo, IsSended; Cari.Islemler.BSMV (döviz satışında), FaturaIscilikTL (maden faturasında işçilik KDV matrahı, BR-TIP-010); şube RsAktar açıksa resmi hesaba kopya (BR-FATURA-007).

CTRCTR-TRN-FATURA-01: WF-FATURA-KES-F5 "işlem satırına FaturaSeri/FaturaNo/SiraNo yazılır" der; bu kolonlar Cari.Islemler'de değil, Cari.IslemDetaylari'ndadır. İşlem listesindeki "Fatura No" sütunu detay tablosundan gelir. İptalde Cari.UpdateTransaction: ETTN boşsa detay satırı silinir, doluysa Durum='EIPTAL' (TRG-CARI.UPDATETRANSACTION).

B (kod 12): Cari.Faturalar başlık + Cari.FaturaDetay kalemler (TBL-CARI.FATURALAR, TBL-CARI.FATURADETAY); işlem satırı IslemKodu 12, StokId = fatura Id (BR-FATURA-009). İptalde StokId üzerinden fatura bulunamazsa "Fatura Bulunamadı. Lütfen Faturalar Modülünden Kontrol Ediniz." (BR-IPTAL-007). Entegrasyon: INT-EFATURA (DijitalFatura.dll; taşıma protokolü UNVERIFIED).

Veri: "Detay/fiş %" sütunu = Cari.IslemDetaylari satırı olan işlem oranı. V2: NAKİT NORMAL %45, NAKİT PEŞİN %93, MADEN PEŞİN %96, RESMİ %99–100, MAHSUP %3. KUYUMCU: MADEN %59, NAKİT %57, VİRMAN %63, DEVİR %100. IslemKodu 12 satırı iki kurulumda da yok (GAP-06B-FATURA12-VERI). Detay satırı ≠ e-fatura: detay tablosu fiş bilgisi de taşır; ETTN dolu satır oranı bu matriste ölçülmedi (GAP).

Raporda ne olur?

Yanlış yapılırsa

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: F2 ile kaydedip faturayı unutur; sonra "faturayı nasıl keserim" — listeden satır seç + Ctrl+Y. - Müşteri: "Entegratör kabul etmedi" — kimlik/adres/istatistik kodu/limit; hata detayına (Evet) bakılır. - Destek personeli: Üç "fatura"yı karıştırır: F5 belgesi, tip 11, kod 12. Önce hangisi olduğunu sorar. - Geliştirici: Fatura numarasını Cari.Islemler'de arar; Cari.IslemDetaylari'ndadır (CTR-TRN-FATURA-01).

İlgili destek senaryoları

SCN-FATURA · PRB-FATURA-000 · SYM-FATURA · PB-015 · PB-018 · PB-020 · INT-EFATURA

Varyantlar

Varyant İşlem satırı Belge Defter Veride
Peşin döviz satışı + F5 e-döviz belgesi NAKİT ÇIKIŞ PEŞİN detay satırı + ETTN stok ✔ / bakiye ✖ V2 NAKİT PEŞİN detay %91–95
Belge kontrol kaydı (tip 11) + F5 NAKİT/MADEN tip 11 detay %99–100 hiçbiri V2 22.862
Cari işlem + sonradan Ctrl+Y MADEN NORMAL cari detay stok ✔ / bakiye ✔ KUYUMCU MADEN detay %59
Fatura modülü kaydı (kod 12) FATURA satırı Cari.Faturalar hiçbiri veride yok
Taslak (bağlantı yok) → toplu gönderim değişmez IsSended sonra dolar ölçülmedi

14. RESMİ İŞLEM

Nedir?

Seviye 1 — Çok basit

Ali'nin dükkânında gün boyunca 10 işlem oldu; ERPGOLD 10'unu da biliyor. Yetkili müessesede bu işlemlerin belgesi de düzenlenir ve ERPGOLD "hangi işlemin belgesi düzenlendi?" bilgisini ayrıca izler: 9 işlemin belgesi tamam, 1 tanesinde belge tarafı eksikse bunu fark eder. Belge durumunu temsil eden satır "belgesi kesildi" diye yazılır ama kasadan ikinci kez para çıkmaz, raftan ikinci kez mal eksilmez — çünkü operasyonun kendisi zaten başka satırda kayıtlıdır. ERPGOLD bu satıra RESMİ (kodda FATURA) işlem der; biz belge kontrol kaydı diyeceğiz. Bu ikinci bir defter tutmak değildir; yapılan işlem ile düzenlenmesi gereken belgelerin birbirini tutup tutmadığını kontrol etmektir.

Seviye 2 — İşletme mantığı

Döviz bürosu (yetkili müessese) günde yüzlerce peşin işlem yapar; bunların belgesi toplu ya da ayrı fişlerle düzenlenir ve ERPGOLD belge durumunu ayrıca izler. Belge kontrol kaydı, operasyonel bakiyeyi ve kasa stoğunu değiştirmemeli; aksi hâlde aynı ticaret iki kez sayılır. Bu yüzden operasyonel kayıt üretmeyen bir işlem tipi gerekir. Operasyon sonucu ile belgelendirilmiş işlem sonucu karşılaştırılarak belgelendirme farkı bulunur (mutabakat sinyali). Kuyumcu/rafineri kurulumu bu tipi hiç kullanmaz (KUYUMCU'da 0 satır).

Seviye 3 — ERPGOLD

İşlem ekranında tip RESMİ (DB adı) / FATURA (kod adı tIslemTipi.FATURA = 11) — aynı şey, iki ad (CTR-001). Resmi kasada varsayılan tip olarak gelir (BR-TIP-010). Kısaltma R.

Neden yapılır?

İşlemin belge (e-Döviz belgesi vb.) durumunu operasyon tarafında izlemek — operasyon satırları ikinci kez etkilenmeden; BSMV, e-döviz belgesi ve BTrans aktarımının kaynağını üretmek; belgelendirilmiş işlemler havuzunu (belge kontrol görünümü) beslemek. Bu bir muhasebe/defter kaydı değil, operasyon ile belgelendirme arasındaki mutabakat girdisidir.

Kim yapar?

Resmi kasada çalışan gişe/muhasebe (Mehmet Kaya resmi kasada, Ali Çelik ay sonu).

Örnek

ÖRNEK ALTIN A.Ş. — MERKEZ şubesi IsResmi, kasa RESMİ KASA. Mehmet 2.000 USD'lik döviz satışının belge kontrol kaydını giriyor: NAKİT ▸ ÇIKIŞ ▸ tip RESMİ ▸ USD 2.000 ▸ TL ▸ kur TCMB satış (örnek 40,20) ▸ 80.400 TL ▸ F5. Döviz Nuri'nin bakiyesi değişmez, MERKEZ kasasının USD ve TL stoğu değişmez. Belge basılır, BSMV alanı dolar, BTrans'a girer.

İşlemden önce

  • Şube IsResmi = 1, ResmiIslemLimitiTL tanımlı; kasa ResmiKasa = 1 (PB-042: "resmi işlemler çalışmıyor" çağrısında ilk kontrol).
  • Kullanıcı ayarı DFIslemTipi = FATURA (resmi kasada varsayılan).

ERPGOLD'da ne yapılır?

  1. NAKİT / MADEN / HURDA ekranı; ISLEM yönü; tip RESMİ.
  2. USD kuru TCMB'den yöne göre alış/satış (BR-KUR-002); maden faturasında İŞÇİLİK alanı (FaturaIscilikTL) görünür.
  3. F5 → kayıt + fatura penceresi (§13). Resmi kasada "geçmiş tarihe işlem" uyarısı sorulmaz (TERM-RESMI-KASA).

İşlemden sonra

Cari.Islemler satırı ve Cari.History "Yeni Kayıt" izi oluşur; başka hiçbir şey olmaz: bakiye yok, stok yok, hesabın son işlem tarihi bile güncellenmez.

Neden?

PEKİ NEDEN? — Tetikleyicideki defter bloğu IslemTipi <> 11 AND IslemTipi <> 12 koşuluyla korunur (BR-TIP-004); tip 11 bu koşulu sağlamadığı için blok hiç çalışmaz. Veri bunu doğrular: V2'de 22.862 tip-11 satırın 0 stok, 0 bakiye satırı vardır; detay/fiş satırı ise %99–100.

BUNU KARIŞTIRMAResmi ≠ Fatura kesmek. Cari bir işleme de fatura kesilebilir (F5) ve o işlem bakiye üretir. Resmi tip ise yalnız belge amaçlı kayıttır. A-Z el kitabı 1.8 tablosundaki "RESMİ → bakiye ✓ stok ✓" satırı yanlıştır (CTR-003); kod esastır.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler: IslemKodu 3, IslemTuru 1, IslemTipi 11, KasaId = resmi kasa, Miktar 2.000, Tutar 80.400, Birim TL, UsdKur = TCMB, BSMV dolu (döviz satışı), RsAktar şube ayarına göre. BakiyeId 0 ya da >0 olabilir — sonucu değiştirmez (kitapçık §5.5 örneğinde 1). Tetikleyici satır 323 koşulu: @IsDeleted='False' AND @IsError=0 AND @IslemTipi<>11 AND @IslemTipi<>12.

Veri (V2, tip 11, 22.862 satır): NAKİT 18.237 (GİRİŞ 10.408 / ÇIKIŞ 7.829) · VADELİ 2.950 · MADEN 862 · HURDA 813. Stok %0, bakiye %0, detay %99–100. Tip 11 + tip 12 = 24.376 belge kontrol / mahsup satırı (satır sayısının %2'si; tutar bazında kitapçık §5.5: 2023'te bu satırlar hacmin %25'i — operasyon satırlarıyla toplanırsa aynı ticaret iki kez sayılır). KUYUMCU: 0. Kod tablosu Sistem.CariIslemTipi V2'de 11 = RESMİ 'R'.

Belgelendirilmiş stok görünümü (legacy adı "resmi stok"; Stok.GetResmiStoklar, RFN-REPORTS.RESMIPOZISYON) Cari.IslemDetaylari.FaturaNo > 0 ile süzer, stok kaydından değil: belgesi düzenlenmiş işlemlerin hesaplanmış stok etkisidir, ikinci bir fiziksel stok değildir. Reports.ResmiPozisyon fiziki kasa + banka (operasyonel) − belgelendirilmiş görünüm = belgelendirme farkı hesaplar; fark bir mutabakat/kontrol sinyalidir. MAHSUP satırlarının havuza girişi CTR-005 / GAP. BTrans: Muhasebe.BTRANSDoviz/BTRANSMaden resmi satırları Cari.Islemler + IslemDetaylari'ndan okur (INT-BTRANS).

Raporda ne olur?

  • Belge kontrol raporu (legacy: resmi işlem raporu) (RFN-REPORTS.RESMIISLEMRAPORU), resmi pozisyon (RPT-38), resmi stok hareket (RPT-14), fatura kontrol (RPT-13).
  • İşlem raporu (RFN-REPORTS.ISLEMRAPORU) tip 11'i hariç tutar.
  • Tuzak: hacim raporu stok/bakiye kayıtlarından yazılırsa belge kontrol kayıtlarının (tip 11) hacmi görünmez; hacim daima Cari.Islemler'den (MET-ISLEM-HACMI tip ≥ 10'u ayrı sayar).

Yanlış yapılırsa

  • Resmi işlemi sonradan NORMAL'e düzeltmek: stok/bakiye kayıtları o anda üretilir, geçmiş bakiye kayar.
  • NORMAL yapılması gereken işlemi RESMİ girmek: kasa ve bakiye eksik kalır; "bakiye tutmuyor" çağrısı.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Resmi kasada varsayılan tipin RESMİ geldiğini fark etmez; gerçek satışı belge kontrol tipiyle (RESMİ) girer, kasa düşmez. - Müşteri: "Resmi işlemler çalışmıyor" — şube IsResmi ve kasa ResmiKasa işaretsiz (H-024, PB-042). - Destek personeli: Resmi işlem limitini/kimlik eşiğini ezberden söyler; tutarlar GAP-MEVZUAT, tarihli kaynak istenir. - Geliştirici: Hacim/ciro raporunu Cari.BakiyeIslem üzerinden yazar; resmi hacmin tamamı kaybolur.

İlgili destek senaryoları

SCN-RESMI-ISLEM · PB-042 · PB-019 · PRB-FATURA-000 (alt kategori "Resmi İşlemler" 587 çağrı) · TERM-RESMI-FATURA-ISLEM-TIPI-11 · TERM-RESMI-STOK

Varyantlar (gerçek veri, V2)

Varyant Satır Stok Bakiye Detay
NAKİT GİRİŞ RESMİ (resmi döviz alışı) 10.408 %100
NAKİT ÇIKIŞ RESMİ (resmi döviz satışı) 7.829 %100
VADELİ ALIŞ/SATIŞ RESMİ (cari, BakiyeId>0) 1.476 / 1.474 %100
MADEN GİRİŞ RESMİ (cari) 757 %100
HURDA ÇIKIŞ / GİRİŞ RESMİ (cari) 471 / 342 %100
MADEN ÇIKIŞ RESMİ 105 %100
KUYUMCU'da herhangi bir RESMİ satır veride yok

15. PEŞİN

Nedir?

Seviye 1 — Çok basit

Mehmet bakkaldan ekmek alır, parasını verir, çıkar. Bakkal defterine "Mehmet bana borçlu" yazmaz; olay bitmiştir. Buna peşin denir. Karşıtı: "yaz deftere, ay sonu öderim" — cari (§16).

Seviye 2 — İşletme mantığı

Döviz bürosu tezgâh ticaretidir: müşteri 200 USD verir, TL alır, gider. Kasada USD artar, TL azalır; kimsenin hesabına bir şey yazılmaz. Döviz kurulumunda işlemlerin büyük çoğunluğu böyledir. Kuyumcu toptancı ise tam tersine hesapla çalışır: mal cari hesapta durur, ilişki devam eder.

Seviye 3 — ERPGOLD

İşlem tipi PEŞİN (1), kısaltma P. Peşin işlem bakiye defteri yazmaz; onun yerine iki stok hareketi üretir: malın kendisi (USD, altın) ve karşılığında el değiştiren para (BİRİM alanındaki nakit stoğu). Peşin kontrolü yetkisi olan kullanıcıda fişin giriş/çıkış TL karşılığı sıfıra kapanmalı (BR-FATURA-008, %5 eşik).

BUNU KARIŞTIRMABakiyeId = 0 ≠ Peşin. Kitapçık §3.4 "BakiyeId=0 peşin demek" der; tetikleyicide bakiyeyi kapatan koşul IslemTipi = 1'dir. NAKİT satırlarında BakiyeId hep 0'dır ama NORMAL tipte bakiye yazar (V2 NAKİT NORMAL 934.126 satır, bakiye %99). V2'de BakiyeId=0 1.261.440 satır, IslemTipi=1 318.324 satır — iki ayrı küme (CTR-SEC-BAKIYE-01).

Neden yapılır?

Tezgâh işleminde müşteri hesabı açmamak, kasa hareketini anında yazmak, fişin "karşılıksız" kalmasını engellemek.

Kim yapar?

Gişe (Mehmet Kaya); perakende ve gişe ekranları cari hesap istemez, doğası gereği peşindir.

Örnek

ÖRNEK ALTIN A.Ş. — Çarşamba: perakende müşteri 200 g karışık hurda getirir (ortalama milyem 0,700 → 140 g has), kasadan TL alır. HURDA ▸ GİRİŞ ▸ PEŞİN ▸ 200 g ▸ milyem 0,700 ▸ fiyat has 4.000 TL (örnek) ▸ TUTAR 560.000 TL ▸ BİRİM TL. Sonuç: hurda stoğu +200 g (+140 g has), kasa TL −560.000, bakiye satırı yok; müşteri hesabı seçilmiş olsa bile ekstresinde görünmez.

İşlemden önce

  • PEŞİN'de BİRİM alanı kasadaki bir nakit stoğu olmalı (paranın tarafı).
  • Kimlik tespiti eşiği (MASAK) — tutar GAP-MEVZUAT; peşinde de hesap seçilir.

ERPGOLD'da ne yapılır?

  1. MADEN / HURDA / NAKİT ekranında tip PEŞİN (WF-MADEN-CIKIS-PESIN, WF-HURDA-GIRIS-PESIN, WF-NAKIT-PESIN-DOVIZ-SATIS).
  2. Tutar = Fiyat × Miktar (parite yönü "Böl" ise Miktar ÷ Fiyat, BR-HESAP-008).
  3. F2. Fiş yazdırırken peşin kontrol: giriş TL − çıkış TL farkı %5'ten büyükse "İşlemin Karşılığı Bulunamadı." (yalnız yetkili grupta).

İşlemden sonra

Stok defteri: mal satırı + nakit karşı satırı. Bakiye defteri: hiç. Müşteri kartı değişmez.

Neden?

PEKİ NEDEN? — Neden peşinde kasa hareketi otomatik yazılıyor? Tetikleyici IslemTipi = 1 dalında StokTipi 2 (nakit) için StokId = BirimId, Miktar = GİRİŞ ? −Tutar : +Tutar satırı üretir (BR-TIP-003); bakiye dalları IslemTipi <> 1 ile korunur (BR-TIP-002). Yani peşinde "para" ayrı bir işlem satırı değil, aynı satırın türetilmiş ikinci stok hareketidir.

Kuyumcu "peşin"i nasıl ifade eder? KUYUMCU kurulumunda IslemTipi = 1 hiç yok (0 satır). Tezgâh satışı iki NORMAL satırla yazılır: MADEN ÇIKIŞ (bakiye: HAS/TL borç) + NAKİT GİRİŞ (bakiye: TL alacak, kasa +TL). Net bakiye sıfıra kapanır, kasa ve maden stoğu değişir. Bu okuma veriyle uyumludur (KUYUMCU NAKİT NORMAL 136.185 satır, stok %100, bakiye %99–100; MADEN NORMAL 152.700 satır, %60 detay/fiş) ama satır-çift eşlemesi ölçülmemiştir → GAP-SEC-PESIN-01 (DERIVED).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler: IslemKodu 2, IslemTuru 0, IslemTipi 1, BakiyeId 0, Miktar 200, AuMilyem 0,700, Tutar 560.000, BirimId = Stok.Nakit TL kaydı. Tetikleyici: Stok.StokHaraketleri → (StokTipi 1 hurda, +200, Has +140) ve (StokTipi 2 nakit TL, −560.000); Cari.BakiyeIslem → yok. Maliyet peşin girişte = satış değeri = Tutar × birim fiyatı (BR-MALIYET-001). Kontrol fonksiyonu Cari.GetFisPesinKontrol.

Veri (V2, tip 1, 318.324 satır): NAKİT 296.267 (GİRİŞ 176.059 / ÇIKIŞ 120.208), MADEN 20.276 (ÇIKIŞ 14.328 / GİRİŞ 5.948), HURDA 1.781. Stok %99–100, bakiye %0, detay: NAKİT %91–95, MADEN %96, HURDA %24. Peşin satırların tamamı BakiyeId = 0. KUYUMCU: 0 satır.

GAP-06B-KUY-MADEN-BAKIYE0: KUYUMCU'da MADEN NORMAL BakiyeId=0 226 satır (+ HURDA 36) stok %100, bakiye %0, detay %100, tutar %92 dolu. BR-DEFTER-URETIMI'ne göre IslemTipi<>1 AND Tutar<>0 ise para bakiyesi beklenir; bu satırlar yazmamış. Kuyumcunun "peşin benzeri" istisnası olabilir (hesap türü? tetikleyici sürüm farkı?) — kaynaklı değil.

Raporda ne olur?

  • Kasa/stok raporları peşin hareketleri gösterir (RPT-9 nakit, RPT-7 maden).
  • Bakiye ekstresinde görünmez. Metrik: MET-PESIN-HACIM — IslemTipi=1 ölçütüyle; BakiyeId=0 ile karıştırılmaz.

Yanlış yapılırsa

  • Peşin yerine NORMAL girilirse müşteri hesabı borçlu/alacaklı kalır; kasa TL hareketi olmaz → düzeltme ile tip değiştirilebilir ama PEŞİN→NORMAL geçişinde gizlenen alanlar boş kaydedilir (WF-ISLEM-DUZELT varyantı).
  • BİRİM boş/altın seçilirse nakit karşı satırı yanlış stoğa gider.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Peşin işlemden sonra müşteri ekstresinde satırı arar; peşin ekstreye girmez. - Müşteri: Fiş basılmıyor, "İşlemin Karşılığı Bulunamadı" — para bacağı eksik ya da kur listesi eski (BR-FATURA-008). - Destek personeli: "BakiyeId=0 → peşin" diye rapor süzer; NAKİT NORMAL satırlarını peşin sayar (CTR-SEC-BAKIYE-01). - Geliştirici: Peşin hacmini BakiyeId=0 ile hesaplar: V2'de 1.261.440 vs gerçek 318.324.

İlgili destek senaryoları

SCN-PESIN-MADEN · SCN-NAKIT · SEC-PESIN · TERM-PESIN-KONTROL · PRB-BAKIYE-000

Varyantlar (gerçek veri, V2)

Varyant Satır Stok Bakiye Detay
NAKİT GİRİŞ PEŞİN (döviz alışı) 176.059 %95
NAKİT ÇIKIŞ PEŞİN (döviz satışı) 120.208 %91
MADEN ÇIKIŞ PEŞİN (altın satışı) 14.328 %96
MADEN GİRİŞ PEŞİN (altın alışı) 5.948 %96
HURDA GİRİŞ PEŞİN 909 %25
HURDA ÇIKIŞ PEŞİN 872 %25
KUYUMCU'da PEŞİN veride yok
Peşin + USD karşılığı (BİRİM USD) birim dağılımı MADEN altında yalnız TL/HAS — veride yok

16. CARİ

Nedir?

Seviye 1 — Çok basit

Ali'nin annesi bakkaldan "yaz deftere" der. Bakkal deftere yazar; ay sonu hesap kapanır. Her müşterinin bir sayfası vardır; sayfada hem para hem mal olabilir: "Ayşe Hanım 3 ekmek borçlu" gibi. ERPGOLD'da bu sayfa cari hesap, sayfadaki her satır bakiye hareketidir.

Seviye 2 — İşletme mantığı

Toptancı kuyumcu her gün müşterisine has altın verir, karşılığını haftalar sonra alır; bazen TL, bazen has, bazen USD. Bu yüzden bakiye çok birimlidir: aynı hesapta HAS +150 g, TL −20.000, USD +5.000 aynı anda durabilir. Cari çalışan işletmede "kasa" ile "hesap" iki ayrı dünyadır: hesap ne kadar borçlu olduğunu, kasa elde ne olduğunu söyler.

Seviye 3 — ERPGOLD

Bir işlemin cari olması BakiyeId > 0 (mal tarafı hangi birimde hesaba yazılacak — HAS, USD…) ve tip NORMAL (0) ile ifade edilir. Tetikleyici iki bakiye satırı üretir: mal bakiyesi (Miktar, BakiyeId birimiyle) ve para bakiyesi (Tutar, Birim ile). Cari hesap çalışırken kasa da hareket edebilir (kuyumcuda %60), etmeyebilir de (döviz bürosunda %1,4).

BUNU KARIŞTIRMAKasa ≠ Cari. Kasa (stok defteri) fiziksel eldeki mal/para; cari (bakiye defteri) kimin kime borçlu olduğu. Bir işlem ikisini de, birini ya da hiçbirini değiştirebilir.

Neden yapılır?

Vadeli/taksitli ticaret; malın has olarak takibi (müşteri parayla değil altınla borçlanır); kur riskini müşteriye ya da firmaya yazmak (çevir işlemi, bkz. 06a).

Kim yapar?

Satış (Zeynep) ve muhasebe (Ali). Cari hesap açma: FrmCariHesapEkle; limit, zorunlu evrak, adres/telefon kontrolleri tetikleyicide ("BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR…").

Örnek

ÖRNEK ALTIN A.Ş. — Salı: Kuyumcu Selim'e 600 g 22 ayar bilezik (milyem 0,916 → 549,6 g has) cari satılır; işçilik 150 TL/g (örnek) → 90.000 TL. MADEN ▸ ÇIKIŞ ▸ NORMAL ▸ BakiyeId = HAS. Sonuç: bilezik stoğu −600 g; Selim'in bakiyesi HAS +549,6 g (borçlu) ve TL +90.000 (işçilik borcu). Pazartesi 150 g borçluydu; şimdi 699,6 g. Kasaya para girmedi.

İşlemden önce

  • Hesap aktif, limit aşılmamış (Cari.Hesaplar.Limit), zorunlu evraklar tam, şube/kasa/hesap dolu.
  • Mutabakat kilidi: LastMutabikId'den eski satırlar düzeltilemez.

ERPGOLD'da ne yapılır?

  1. Cari İşlemler ▸ hesap ▸ TAMAM; bakiye kartı yüklenir.
  2. MADEN/HURDA/NAKİT ekranı ▸ tip NORMAL ▸ BAKİYE (mal tarafının birimi: HAS/USD/…) ▸ MİKTAR, MİLYEM, FİYAT, BİRİM ▸ F2 (WF-MADEN-CIKIS-NORMAL, WF-NAKIT-NORMAL).
  3. Fiş; ekstre; ay sonu cari mutabakat (Cari.Islemler.Mutabakat/MTarih) — stok sayım mutabakatı değil.

İşlemden sonra

Bakiye kartında iki satır (HAS ve TL); işlem listesinde "adım adım bakiye" sütunu; stok defterinde bilezik −600 g (kuyumcu profili).

Neden?

PEKİ NEDEN? — Neden stok azalırken bakiye artıyor? Yön işareti: ÇIKIŞ/SATIŞ/BORÇ (1/3/5) satırı bakiyeye pozitif (müşteri borçlu), GİRİŞ/ALACAK/ALIŞ (0/2/4) negatif (müşteri alacaklı) yazılır (tetikleyici satır 392–417). Stokta ise ÇIKIŞ eksi. Aynı olayın stok ve bakiye kayıtlarında ters işaretle görünmesi normaldir: bizden mal çıktı, müşteri bize borçlandı.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler: IslemKodu 1, IslemTuru 1, IslemTipi 0, BakiyeId = HAS birim Id (>0), HesapId = Selim, Miktar 600, AuMilyem 0,916, Tutar 90.000, Birim TL. Tetikleyici (satır 406–416): IslemTipi<>1 AND BakiyeId>0 AND Miktar<>0 → mal bakiyesi (Cari.BakiyeIslem BirimId HAS, +549,6); IslemTipi<>1 AND Tutar<>0 → para bakiyesi (TL +90.000). Stok: Stok.StokHaraketleri StokTipi 1, −600, Has −549,6, Bolum 0. AuMilyem 0 ise tetikleyici 1 kabul eder. Hesabın LastDate güncellenir. Okuyucular: Bakiye.GetBakiye, Bakiye.GetHesapBakiyeleri.

Veri: Cari (BakiyeId>0) V2 246.661 satır (%16; VADELİ 241.596'sı, MADEN 1.966, HURDA 3.093) — stok üretimi %1,4, bakiye %100. KUYUMCU 363.664 (%55; MADEN 152.700, VADELİ 144.378, HURDA 66.578) — stok %60,3, bakiye %100 (BR-DEFTER-URETIMI, CTR-038). "Cari işlem stok üretmez" cümlesi döviz kurulumunun gözlemidir, çekirdek kural değildir.

Para bakiyesi BakiyeId gerektirmediği için BakiyeId=0 satırlar da bakiye yazar: NAKİT NORMAL, HİZMET, VİRMAN, BORÇ (999) — matrisin "Cari = hayır" ama "Bakiye %99–100" satırları budur.

Raporda ne olur?

  • Bakiye ekstresi (dikey/yatay), müşteri mutabakat raporu, bakiye listesi; pozisyon raporu cari bakiyeleri kasa stoğuyla birlikte değerler (bkz. 07/08. bölümler).
  • Metrik MET-CARI-HACIM — BakiyeId>0 ölçütü; IslemTipi ölçütüyle toplanmaz.

Yanlış yapılırsa

  • BAKİYE birimi yanlış (HAS yerine TL) → müşteri altınla değil parayla borçlanır; kur oynayınca fark firmanın üstünde kalır. Düzeltme ile BakiyeId değiştirilebilir; tetikleyici bakiye satırlarını sil-yeniden-yaz yapar.
  • Limit/evrak kontrolleri tetikleyicide ROLLBACK sonrası RETURN yok — kalan ifadeler transaction dışında koşar (kitapçık 2.7, teknik borç).

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Kasada altın var diye müşteri bakiyesini "ödendi" sanır; bakiye ekstresine bakmadan "mutabıkız" der. - Müşteri: "Bakiye tutmuyor" (PRB-BAKIYE-000, 710 çağrı, alt kategori "Bakiye/Stok Girişi" 283) — çoğu yanlış BakiyeId/tip/eksik karşı satır. - Destek personeli: Cari.BakiyeIslem'i elle düzeltir; tetikleyici bir sonraki güncellemede siler-yeniden yazar; toptan onarım aracı (BalanceRepair) asla (TD-30). - Geliştirici: "Cari ise stok yazmaz" varsayımıyla rapor yazar; kuyumcuda %60 stok üretir.

İlgili destek senaryoları

SCN-NORMAL-MADEN · SEC-CARI · SEC-BAKIYE · BR-DEFTER-URETIMI · PRB-BAKIYE-000 · SYM-BAKIYE

Varyantlar (gerçek veri)

Varyant V2 KUYUMCU Stok Bakiye
MADEN ÇIKIŞ NORMAL cari (altın satışı hesaba) 288 124.524
MADEN GİRİŞ NORMAL cari (altın alışı hesaba) 458 28.176
HURDA GİRİŞ NORMAL cari 1.112 40.462 ✔ (tutar %0 — yalnız has)
HURDA ÇIKIŞ NORMAL cari 1.144 26.116
VADELİ ALIŞ/SATIŞ (tip −1) cari 203.549 144.378
MADEN EMANET cari (tip 4) 363 2
Cari maden USD karşılıklı (Birim USD) birim dağılımında MADEN: TL/HAS (V2), HAS/GUM (KUY) — veride yok

17. MAHSUP

Nedir?

Seviye 1 — Çok basit

Ali kardeşine 50 TL borçlu, kardeşi de ona 30 TL. "Sayışalım" derler: Ali 20 TL verir, ikisi de defterini kapatır. Muhasebede buna mahsup denir: para el değiştirmeden borç-alacağın karşılıklı kapanması ya da "kasa hareketi olmayan düzeltme kaydı".

Seviye 2 — İşletme mantığı

Sektörde üç yerde geçer: müşteriyle mahsuplaşma, açılış/devir kayıtları, sayım farkı. Ama ERPGOLD'daki MAHSUP tipi bunların hiçbirini yapmaz. Müşteriyle sayışma virman/çevir/borç işlemiyle, sayım farkı Stok.Mutabakat ile yapılır. Tip 12 yalnız belge/kontrol tarafında gereken ama operasyonel stok/bakiye kayıtlarını değiştirmemesi gereken kayıtlar (devir, açılış, sayım farkı) içindir.

Seviye 3 — ERPGOLD

İşlem tipi MAHSUP (12), kısaltma H. Tip 11 (RESMİ) ile aynı tetikleyici dalındadır: operasyonel stok/bakiye kaydı üretmez. V2'deki 1.514 satırın tamamı şubeler arası kasa hareketi açıklaması taşır ("MERKEZ ÇIKIŞ", "… GİRİŞ") — yani resmi kayıt amaçlı şubeler arası mahsuplaşma (kitapçık §9.3).

CTRCTR-SEC-MAHSUP-01: Sözlük tipi "devir, sayım farkı, açılış girişi" diye tanımlar; canlı veri şubeler arası kasa hareketi gösterir; sayım farkı için ayrı mekanizma vardır. Fiili amaç kurulum bazında doğrulanmalı. Ayrıca kod tablosu V2'de 12'yi tanımlamaz (KUYUMCU tablosunda 'H' MAHSUP var) ama V2 verisinde 1.514 kez kullanılmıştır (CTR-035).

Neden yapılır?

Merkez–şube kasa aktarımının resmi karşılığını, kasa stoğunu ikinci kez oynatmadan kaydetmek; süreç dokümanına göre devir sonrası resmi açılış stoğunu girmek (ama bkz. CTR-004).

Kim yapar?

Muhasebe / yönetici (Ali Çelik); yıl başında destek eşliğinde.

Örnek

ÖRNEK ALTIN A.Ş. — MERKEZ kasasından ŞUBE-2 kasasına 100.000 TL fiziksel olarak gönderildi (bu bir transfer, §21). Resmi kayıt için Ali NAKİT ▸ ÇIKIŞ ▸ tip MAHSUP ▸ 100.000 TL ▸ açıklama "MERKEZ ÇIKIŞ"; ŞUBE-2'de GİRİŞ + MAHSUP "ŞUBE-2 GİRİŞ". USD kuru satıra TCMB'den yöne göre yazılır (BR-KUR-002). İki satır da bakiye ve stok defterine yazılmaz; kasa stoğu transferle zaten değişmişti.

İşlemden önce

Resmi şube/kasa (tip 11 ile aynı ön koşullar). Açılış stoğu için hesap DEVİR (hesap türü 5, BR-DEVIR-001).

ERPGOLD'da ne yapılır?

NAKİT tip listesinde 4., MADEN tip listesinde 7. sıra MAHSUP (liste çalışma anında dolar, sıra kurulum bağımlı olabilir). Yön, miktar, açıklama; F2.

İşlemden sonra

Yalnız Cari.Islemler + Cari.History. Hesabın LastDate'i bile değişmez.

Neden?

PEKİ NEDEN? — Neden "MAHSUP ile açılış stoğu girince stok görünmüyor"? Doküman "MAHSUP yalnız stok yazar" der; tetikleyici tip 12'de Stok.StokHaraketleri satırı da yazmaz (V2'de 1.514 MAHSUP satırının 0 stok hareketi) — CTR-004. Resmi stok listesi IslemDetaylari.FaturaNo > 0 ile süzülür; fatura numarasız MAHSUP satırının o listeye nasıl girdiği görülemedi — CTR-005 / GAP. Açılış stoğu görünmüyor çağrısında ilk okunacak CTR budur.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler: IslemKodu 3, IslemTuru 1, IslemTipi 12, BakiyeId 0, Miktar 100.000, Birim TL, UsdKur TCMB satış (ÇIKIŞ). Tetikleyici satır 323 koşulu sağlanmaz → blok atlanır (BR-TIP-004).

Veri (V2, tip 12, 1.514 satır): yalnız NAKİT — ÇIKIŞ 782 (759 detaysız + 23 detaylı), GİRİŞ 732 (709 + 23). Stok %0, bakiye %0, detay %3 (resmi tip 11'de %99–100 iken). KUYUMCU: 0. Kod tablosu Sistem.CariIslemTipi: V2 0–11 (12 yok), KUYUMCU 12 'H' MAHSUP (TBL-SISTEM.CARIISLEMTIPI). Kod enum tIslemTipi.MAHSUP = 12.

Raporda ne olur?

  • Belge kontrol satırları yalnız işlem tablosundan okuyan raporlarda görünür: belgelendirilmiş stok hareket (RPT-14, legacy adı "resmi stok hareket"), belgelendirme farkı (RPT-38, legacy adı "resmi pozisyon"). MAHSUP satırlarının BTrans/muhasebe aktarımında dikkate alınıp alınmadığı belgelenmemiş (GAP-SEC-MAHSUP-01).

Yanlış yapılırsa

  • Açılış stoğunu MAHSUP yerine NORMAL girmek → DEVİR hesabı kalıcı alacaklı kalır (H-115, PB-035); Borç İşlemleri ile ters kayıt.
  • Müşteriyle sayışmayı MAHSUP tipiyle yapmak → hiçbir bakiye kapanmaz; virman/çevir/borç kullanılır.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: "Mahsup" kelimesinden muhasebedeki mahsup fişini anlar; müşteri borcunu tip 12 ile kapatmaya çalışır. - Müşteri: Devir sonrası açılış stoğunu MAHSUP girdi, stok listesinde görmüyor (CTR-004/005). - Destek personeli: "Mahsup stok yazar" dokümanına güvenir; kod yazmaz. - Geliştirici: IslemTipi = 12 süzgecini KUYUMCU'da çalıştırır; sessizce boş küme döner.

İlgili destek senaryoları

SCN-DEVIR (B bölümü) · SEC-MAHSUP · TERM-MAHSUP-ISLEM-TIPI-12 · PB-035 · SCN-SUBELER-ARASI-ISLEM

Varyantlar (gerçek veri, V2)

Varyant Satır Stok Bakiye Detay
NAKİT ÇIKIŞ MAHSUP ("MERKEZ ÇIKIŞ") 782 %3
NAKİT GİRİŞ MAHSUP ("… GİRİŞ") 732 %3
MADEN/HURDA GİRİŞ MAHSUP (dokümandaki açılış stoğu) veride yok
KUYUMCU MAHSUP veride yok

18. DEVİR

Nedir?

Seviye 1 — Çok basit

Ali'nin okul defteri yıl sonunda dolar. Yeni deftere her sayfayı kopyalamaz; yalnız son satırı ("Ayşe Hanım 3 ekmek borçlu") yazar ve eski defteri rafa kaldırır. Eski defter yok olmaz, ama artık ona yazılmaz. ERPGOLD'da buna devir denir.

Seviye 2 — İşletme mantığı

Yıl sonunda işletme, bütün işlem satırlarını arşive kaldırır; her hesabın birim başına son bakiyesi ve her kasanın stok başına son durumu yeni yılın açılış satırı olur. Mali müşavir Aralık aktarımını (BTrans) devirden önce alır. Devir yılda bir kez, herkes programdan çıkmışken, yedekle yapılır; hatası pahalıdır (PRB-DEVIR-000: 79 çağrı, ortalama kapanış 214 saat).

Seviye 3 — ERPGOLD

"Devir" ERPGOLD'da üç ayrı şeydir:

# Ne Nerede
1 Veritabanı devri — eski dönem arşiv DB'ye, canlıda 5 tablo boşaltılır, açılış satırları IslemId = −1 ile yazılır FrmDevir (Tanımlamalar ▸ Sistem ▸ Devir; ADMIN + Shift+D)
2 Açılış bakiyesi girişi — DEVİR hesabı üzerinden Borç İşlemleri, IslemKodu 999 (kod tablosunda DEVİR, kod enum'unda BORC) BORÇ İŞLEMLERİ, KODU = DEVİR
3 Açılış stoğu girişi — DEVİR hesabından GİRİŞ + MAHSUP (süreç dokümanı; ama CTR-004) MADEN/HURDA/NAKİT ekranı

FrmDevirGiris ayrı bir ekrandır: hesap seçip bakiye ızgarasına satır girer (Bakiye.GetBakiye okur); işlev açıklaması kaynaklı değil (GAP-SCR-FRMDEVIRGIRIS-AMAC), menüden değil kod içinden açılır.

Neden yapılır?

Performans ve düzen: milyonlarca satır arşive; yeni yıl temiz başlar. Raporlar geçmiş yıl için arşiv DB'den alınır.

Kim yapar?

Yalnız yönetici (User.Id = 1, ADMIN) + AIFASOFT destek (Deniz Yılmaz). Normal kullanıcı görmez.

Örnek

ÖRNEK ALTIN A.Ş. — 31 Aralık. Ayşe Demir yedek aldırır; Ali Aralık BTrans'ını alır; takozlar seri çıkışla geçici karta, çeşni çıkılır, ŞUBE-2 maden stoğu MERKEZ'e transfer edilir. Deniz ADMIN ile girer, Shift+D, Devir ▸ Başla. Sonuç: ERPGOLDV2_20261231 arşiv DB (işleme kapalı); canlıda Kuyumcu Selim HAS +699,6 / TL +90.000 açılış satırı (IslemId −1), MERKEZ kasası HAS 2.000 g, TL … açılış stok satırları. Ocak'ta işlem listesi boştur; "geçen yılın işlemleri kayboldu" beklenen davranıştır (H-008).

İşlemden önce

  • Yedek; tüm kullanıcılar dışarıda; program güncel.
  • Takoz ve çeşni stoğu sıfır, maden stoğu tek kasada, transferler geri yapılmış.
  • operasyonel ve belgelendirilmiş stok görünümleri, bakiye ekstresi, son bilanço not edilmiş (devir sonrası karşılaştırma için).

ERPGOLD'da ne yapılır?

  1. FrmDevir: Dabase Name, Archive Name (DB_yyyyMMdd), File Location kontrol; Başla.
  2. Adımlar: yedek → geri yükleme (arşiv) → "Veritabanı Doğrulanıyor" (arşiv ve canlı Cari.Islemler sayıları eşit olmalı; TRUNCATE bu adımdan sonra — doğrulama düşerse canlı bozulmaz) → arşiv işleme kapatılır → devir → ERPGLOBAL.dbo.Company'ye arşiv eklenir.
  3. Sonra: resmi stoklar DEVİR hesabından (§17), takozlar Blok Takoz ile geri, transferler geri, kur listesi yeni yıla, fatura/e-belge numaraları sıfırlanır (ayrı rutin, H-152).
  4. Bilanço / stok / pozisyon / bakiye listeleri eski yılın son günüyle karşılaştırılır.

İşlemden sonra

Açılış satırları bakiyeye dahildir, işlem listesinde görünmez, düzeltilemez. Fişte "eski bakiye" çıkmıyorsa Bakiye.GetBakiyeFisNo −1 satırlarını almıyordur (H-111).

Neden?

PEKİ NEDEN? — Neden devir günü takoz stoğu sıfır olmalı? Açılış stoğu yalnız StokTipi IN (1,2) (maden, nakit) için hesaplanır; takoz (3) ve diğer tiplerin hareketleri TRUNCATE ile silinir, açılışa yazılmaz. Devirden önce alınan takoz sonra çıkılırsa stok −1 görünür (PB-049).

GAPGAP-DEVIR-SCOPE: Devir yalnız 5 tabloyu boşaltır: Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari. IslemId taşıyan Sistem.SilAciklama (KUYUMCU'da %54,6 öksüz), Stok.Mutabakat, Cari.AccountLog, müşteri-özel IslemFiyatlar (%66,1 öksüz) boşaltılmaz. Kasıtlı mı, unutulmuş mu bilinmiyor. IslemId üzerinden JOIN yapan raporlar sessizce eksik döner; silme denetim izi kopar.

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Devir.DevirYap(yyyyMMdd) (Class/Module/Devir.vb): BACKUP → RESTORE DB_yyyyMMdd (MOVE mantıksal adları sabit ERPGOLDV2/ERPGOLDV2_log — KUYUMCU gibi farklı mantıksal adlı DB'de başarısız olabilir, GAP-SCR-DEVIR-LOGICALNAME) → arşivde Sistem.Subeler.IsActive=0#ERPBakiye (hesap/kasa/birim toplamı, 0 olanlar atlanır) ve #ERPStok (StokTipi 1,2; tür/şube/kasa/stok/varyant) → tetikleyiciler DISABLE → 5 tablo TRUNCATE → Cari.BakiyeIslem ve Stok.StokHaraketleri'ne IslemId = −1, bugünün tarihiyle INSERT → ENABLE. Transaction yoktur (TD-29): TRUNCATE sonrası INSERT hatası tabloları boş bırakır; tek güvence yedek. remote query timeout 0.

CTRCTR-SCR-DEVIR-01 / CTR-034: WF-YIL-SONU-DEVIR "Devir + ADMIN şifresi; Sistem.Devir(@Tarih) / sp_DevirIslemiYap çalışır; Transferler temizlenir" der. Kod: şifre sormaz (görünürlük Shift+D + User.Id=1), saklı yordam çağırmaz, Cari.Transferler'e dokunmaz, tarih parametresi almaz (daima bugüne kadar). Kodda tek sürüm, dokümanda üç (PROC-180/190 tarih parametreli manuel SQL sürümleri). SP-SISTEM.DEVIR DB'de vardır ama ekran çağırmaz. KUYUMCU'da dbo.DEVIRBAKIYE (535 satır) manuel SQL devri izidir; V2'de yok.

IslemKodu 999 (veri): V2 507 satır (bakiye %99,8, detay %98, miktar %0, birim USD 181 / TL 177 / EUR 72); KUYUMCU 14.742 (bakiye %100, detay %100; TL 4.110, HAS 3.706, USD 2.734, EUR 1.851, GUM 574). BakiyeId = 0 olmasına rağmen bakiye yazar: Borç işlemi yalnız para bakiyesi dalını kullanır (Tutar<>0). Bu satırların ne kadarının KODU = DEVİR (açılış) olduğu matriste ayrılmamıştır (GAP). Toptan bakiye onarımı (BalanceRepair) devir satırlarını ve transfer stok satırlarını (V2'de 45.400) yok eder — asla çalıştırılmaz (TD-30).

Raporda ne olur?

  • Stok devir raporu (RFN-REPORTS.GETSTOKDEVIR); geçmiş yıl raporları arşiv DB'den.
  • Canlıda Tarih NULL olan BakiyeIslem/StokHaraketleri satırı tutarsızlık işaretidir (PB-034 adım 3).

Yanlış yapılırsa

  • Arşiv DB'ye bağlı kalmak: "BU VERI TABANI ISLEME KAPATILMISTIR." (H-007, PB-006).
  • Devir sonrası bakiye geçen yılın son bakiyesinden farklı: devir günü sonrası girilen işlemler / açılış satırı tarihi (H-108).
  • Devir tutmadı diye BalanceRepair → devir satırları silinir; fark DEVİR hesabından elle düzeltilir.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Ocak'ta "geçen yılın işlemleri kayboldu" — arşiv DB'ye giriş yapılır (H-008). - Müşteri: Devir öncesi takoz/çeşni stoğunu sıfırlamaz, transferleri geri yapmaz → takoz −1, kasa stoğu kayıp. - Destek personeli: Manuel SQL devir (PROC-180/190) ile ekran devrini karıştırır; hangi müşteride hangisi uygulandığı kurulum profiline yazılmalı (GAP). - Geliştirici: IslemId JOIN'li rapor yazar; devir sonrası öksüz satırlar sessizce düşer (GAP-DEVIR-SCOPE).

İlgili destek senaryoları

SCN-DEVIR · WF-YIL-SONU-DEVIR · WF-ACILIS-STOK-DEVIR-HESABI · WF-BORC-ISLEMLERI · PRB-DEVIR-000 · SYM-DEVIR · PB-034 · PB-035 · TECHNICAL_WIKI/FLOWS/FLOW-FRMDEVIR.md · TD-29 · TD-42

Varyantlar

Varyant Mekanizma Defter Veride
Ekran devri (FrmDevir) TRUNCATE + IslemId −1 doğrudan yazar, tetikleyici çalışmaz V2/KUY satır sayısı ölçülmedi (IslemId −1 satırları matris dışı)
Manuel SQL devri (PROC-180/190) tarih parametreli aynı KUYUMCU dbo.DEVIRBAKIYE 535 satır
Açılış bakiyesi (Borç İşlemleri, 999, KODU DEVİR) işlem satırı bakiye ✔ (para dalı), stok ✖ 999 toplam: V2 507 / KUY 14.742
Açılış stoğu (GİRİŞ + MAHSUP) işlem satırı hiçbiri (CTR-004) MADEN/HURDA MAHSUP veride yok

19. DÜZELTME

Nedir?

Seviye 1 — Çok basit

Ali deftere "3 ekmek" yazdı, aslında 4'tü. Satırı karalayıp yeni satır açmaz; aynı satırın üstünü düzeltir ve kenara "düzelttim, eskisi 3'tü" notu koyar. ERPGOLD'daki DÜZELT budur: aynı işlem satırı yerinde güncellenir, iz bırakılır.

Seviye 2 — İşletme mantığı

Yanlış miktar, yanlış fiyat, yanlış tip günlük olaydır (destek çağrılarının %6,4'ü bu alandadır). Ama düzeltme tehlikelidir: geçmiş bir satır değişince o günden bugüne bütün "adım adım bakiye" kayar, mutabakat yapılmış dönem bozulabilir, GİB'e gitmiş belge tutarsızlaşır. Bu yüzden düzeltme yetkiye, gün sınırına, PIN'e ve gerekçeye bağlanır.

Seviye 3 — ERPGOLD

CARİ İŞLEMLER listesinde satır ▸ DÜZELT (veya Enter). İşlem kendi ekranında değerleriyle açılır; F2 ▸ Düzeltme Detay penceresi (gerekçe zorunlu) ▸ Onayla. Tarih, fiş no, kasa ve hesap değiştirilemez; bunlar için iptal + yeniden giriş.

Neden yapılır?

Yanlış girilen miktar/fiyat/milyem/tip/bakiye birimini, işlem numarasını ve fişini koruyarak düzeltmek.

Kim yapar?

Yetkisi (IslemDuzelt) olan kullanıcı; DuzeltmeGun aşıldıysa PIN/yönetici.

Örnek

ÖRNEK ALTIN A.Ş. — Salı bilezik satışı 600 g yerine 610 g olmalıydı. Zeynep satırı seçer, DÜZELT, MİKTAR 610, gerekçe "tartım hatası", Onayla. Selim'in bakiyesi HAS +549,6 → +558,76 (610 × 0,916), TL +90.000 → +91.500; bilezik stoğu −600 → −610. Kur yeniden çekilmez, tarih ve fiş no aynı kalır.

İşlemden önce

  • Mutabakat kilidi: satır LastMutabikId'den yeni olmalı.
  • Gün ≥ DuzeltmeGun ise PIN ("İşlem Tarihinden İtibaren N Gün Geçmiştir. İşlemi Düzeltmezsiniz." H-096; ayar EskiTariheYapilamaz) (BR-DUZELTME-004).
  • ETTN dolu işlem düzeltilemez (BR-DUZELTME-010); virman/parite/karşı bacaklı işlem düzeltilemez → iptal + yeniden (BR-DUZELTME-006).

ERPGOLD'da ne yapılır?

  1. Satır ▸ DÜZELT ▸ kontroller (kilit, gün, yetki).
  2. Ekran değerleriyle açılır; alan değiştirilir.
  3. F2 ▸ gerekçe ▸ Onayla (WF-ISLEM-DUZELT).

İşlemden sonra

İşlem satırı UPDATE (yeni Id yok); Cari.History "Düzeltme" satırı yeni değerlerle; bakiye ve stok satırları silinip yeniden yazılır; işlem listesinde satır renklenir, "Degistirme" sütunu dolar.

Neden?

PEKİ NEDEN? — Bakiye satırları nasıl "düzeliyor"? Tetikleyici her UPDATE'te önce Delete From Cari.BakiyeIslem Where IslemId=@x ve Delete From Stok.StokHaraketleri Where IslemId=@x And Bolum=0 çalıştırır, sonra satırı sıfırdan üretir (BR-STOK-006). Bu yüzden BakiyeIslem elle düzeltilmez: bir sonraki güncellemede silinir. Neden kur eski? Update sorgusu kur kolonlarını güncellemez (BR-KUR-003); geçmiş tarihli yanlış kur için H-107.

BUNU KARIŞTIRMADüzeltme izi ≠ İptal izi. Düzeltmede History'ye yeni hâl, iptalde eski hâl yazılır (kitapçık §5.6, BR-DUZELTME-009).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

AIO.Cari.Islem.Update()Cari.Islemler UPDATE (Miktar, Tutar, LastModify; Tarih, FisNo, KasaId, HesapId, HesapType güncellenmezBR-DUZELTME-008; doküman "tarih düzeltilebilir" der → CTR). Tetikleyiciler: TRG-CARI.UPDATETRANSACTION → Cari.History LogType "Düzeltme" (Inserted satır); if NOT Update(Mutabakat) — mutabakat güncellemesi iz üretmez. TRG-CARI.ACCEPTTRANSACTION → sil-yeniden-yaz. Gerekçe Sistem.SilAciklama (TBL-SISTEM.SILACIKLAMA). ETTN kontrolü tetikleyici satır ~119–245: ETTN dolu ve güncelleme Mutabakat/IsDeleted değilse ROLLBACK + "E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ". Sonraki satırların adım adım bakiyesi kayar (BR-BAKIYE-012).

Alıcı şube provizyonlu işlemi düzeltemez: "…Önce Gönderen Şube Düzeltmelidir." Düzeltme sayısı matriste ölçülmedi; Cari.History LogType dağılımı bu kitapta GAP (kitapçık §5.6: her 30 işlemden biri iptal).

Raporda ne olur?

Yanlış yapılırsa

  • PEŞİN→NORMAL tip değişikliği gizlenen alanları boş kaydeder.
  • RESMİ→NORMAL: stok/bakiye kayıtları o anda üretilir, geçmiş bakiye kayar (§14).
  • Yanlış kasa: DÜZELT ile değişmez; stoğu doğru kasaya transfer ile taşı (H-113).

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: Tarihi düzeltmeye çalışır; olmaz → iptal + yeniden giriş. - Müşteri: "Düzelttim ama bakiye tutmuyor" — sonraki satırların adım adım bakiyesi kaydı; ekstre yeniden alınır. - Destek personeli: PIN sorulmasını silme onayı ayarıyla karıştırır (H-097 ≠ H-098). - Geliştirici: Kur kolonlarının Update'te güncellenmediğini bilmeden "düzeltmede kur yenilensin" ister; BR-KUR-003 bilinçli.

İlgili destek senaryoları

SCN-DUZELTME · WF-ISLEM-DUZELT · PB-030 · TERM-DUZELT · PRB-BAKIYE-000 · TD-30

Varyantlar

Varyant Mümkün mü Not
Miktar / fiyat / milyem / tutar sil-yeniden-yaz
Tip (PEŞİN ↔ NORMAL ↔ RESMİ) defter üretimi tipe göre değişir; gizli alan boş kalabilir
Bakiye birimi (BakiyeId) mal bakiyesi başka birime taşınır
Tarih / fiş no / kasa / hesap iptal + yeniden giriş
ETTN'li (e-belge gönderilmiş) işlem önce e-belge iptali
Virman / parite / karşı bacaklı iptal + yeniden
Seri işlem ekranından DUZELT takoz satırı kendi penceresinde (SCR-FRMSERIISLEM)

20. İPTAL

Nedir?

Seviye 1 — Çok basit

Ali yanlış satırı silmek istiyor. Öğretmeni "silgi yok, üstünü çiz" der: satır defterde kalır ama artık sayılmaz; kim, ne zaman, neden çizdi yanına yazılır. ERPGOLD'da iptal edilen işlem veritabanından silinmez, "silindi" işareti alır (yumuşak silme).

Seviye 2 — İşletme mantığı

Silinen kayıt izsiz kaybolursa denetim yapılamaz, kasa açığı gizlenebilir. Bu yüzden iptal: yetkiye, gün sınırına, gerekçeye ve eskiyse yönetici onayına bağlıdır; iptal edilen satır raporlardan düşer ama "Silinmiş İşlemler Raporu"nda görünür.

Seviye 3 — ERPGOLD

Cari İşlemler ▸ satır ▸ İPTAL. Gün ≥ SilGun ise uyarı; gün > SilGun ise silme talebi açılır, işlem silinmez; yönetici İptal Onay Listesi'nden onaylar. Karşı bacaklı işlemde (virman/parite/karşı hesap) "Karşı İşlemde İptal Edilsin mi?" sorulur.

Neden yapılır?

Yanlış işlemi geri almak; tarih/fiş/kasa/hesap hatalarında düzeltme yerine tek yol.

Kim yapar?

Grubunda IslemIptal yetkisi olan kullanıcı; eski tarihte yönetici (FrmIptalOnayListesi: Tanımlamalar ▸ Sistem Tanımları ▸ Silme Onayları).

Örnek

ÖRNEK ALTIN A.Ş. — 5 gün önce Döviz Nuri'den 1.000 USD alınmış (NAKİT GİRİŞ NORMAL, 40.000 TL, örnek kur), aslında yanlış hesaba girilmiş. SilGun = 3. Mehmet İPTAL'e basar: "İşlem Tarihinden İtibaren 5 Gün Geçmiştir. İşlemi Yöneticiniz İptal Edebilir." → gerekçe → "Silme Talebiniz Alınmıştır." İşlem hâlâ durur. Ayşe Demir Silme Onayları'ndan Onay verir → satır IsDeleted = True; Nuri'nin TL bakiyesi 40.000 geri döner, kasa USD 1.000 azalır; History'ye "İptal Edildi" (eski değerlerle).

İşlemden önce

  • Mutabakat kilidi yok; ETTN boş (dolu ise önce e-belge iptali; GİB'e iletilmiş belge iptal edilemez, H-148).
  • Silme ayarı: DeletePermission ("Eski Tarihe Yapılamaz" / "Yönetici İptal Edebilir"), SilGun.

ERPGOLD'da ne yapılır?

  1. Satır ▸ İPTAL ▸ kilit/gün kontrolü ▸ onay + gerekçe (BR-IPTAL-003, WF-ISLEM-IPTAL).
  2. Gün > SilGun → talep Sistem.SilOnay'a (WF-SILME-TALEBI-ONAY); yönetici Onay / Iptal Et (talebi düşürür, işlem kalır).
  3. Karşı bacaklı: EVET → aynı RefNo'lu tüm satırlar (BR-IPTAL-005); HAYIR → "Virman İşlemi İptal Edilmedi."
  4. Fiş bazlı toplu iptal: WF-ISLEM-IPTAL-FISNO (yönetici şifresi, H-018).

İşlemden sonra

Satır listeden düşer (tüm raporlar IsDeleted='False' süzer); bakiye ve stok satırları silinir ve yeniden yazılmaz; History "İptal Edildi". Yönetici geri alabilir: "Geri Alındı" + defterler yeniden üretilir.

Neden?

PEKİ NEDEN? — Neden fiziksel silinmiyor? Tetikleyici DELETE'i reddeder: "ISLEMLERI DIREK SILEMEZSINIZ ?." (BR-STOK-012). İptal, IsDeleted kolonunun UPDATE'idir; AcceptTransaction @IsDeleted='True' gördüğünde defter satırlarını siler, yeniden yazmaz (BR-IPTAL-012). Neden uyarı çıktı ama yine de talep açıldı? Ekran >= SilGun uyarır, DeleteAt > SilGun talebe yönlendirir; tam SilGun gününde uyarı çıkar ama silinir (CTR-023).

Veritabanında ne olur?

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

AIO.Cari.Islem.DeleteAt(Id, yönetici)Cari.Islemler UPDATE IsDeleted='True' (BR-IPTAL-009). Tetikleyiciler: TRG-CARI.UPDATETRANSACTION → Cari.History "İptal Edildi" (Deleted satır = eski hâl); ETTN boşsa Cari.IslemDetaylari satırı silinir, doluysa Durum='EIPTAL'. TRG-CARI.ACCEPTTRANSACTION → BakiyeIslem/StokHaraketleri (Bolum 0) satırları silinir. TRG-CARI.DELETETRANSACTION yalnız fiziksel DELETE'te "Silindi" izi yazar — normal akışta çalışmaz. Talep: Sistem.SilOnay (Status 0 Bekliyor; onayda DeleteAt(IslemNo, True)); talep IsDeleted=1 olunca TRG-SISTEM.SILONAYUPDATETRIGGER fiziksel siler (BR-IPTAL-011). Gerekçe Sistem.SilAciklama (KUYUMCU'da %54,6'sı devir sonrası öksüz — GAP-DEVIR-SCOPE). Liste görünümü Sistem.IptalOnayListesi (örnek DB'de yok ⚠︎). GAP: DeleteAt'in yönetici bayrağının mutabakat kilidini ve karşı bacak sorusunu atlayıp atlamadığı kaynak satırında doğrulanmadı.

FrmIptalTalepFormu: UNUSED_CANDIDATE — hiçbir açılış yolu bulunamadı; talep penceresi kod içinde başka yoldan açılıyor olabilir (GAP-SCR-FRMIPTALTALEPFORMU-AMAC). Matris IsDeleted=0 süzdüğü için iptal edilen satır sayısı bu kitapta ölçülmedi (GAP; kitapçık §5.6: ~1/30).

Raporda ne olur?

Yanlış yapılırsa

  • Yanlış satırı iptal → yönetici geri alır ("Geri Alındı"), defterler yeniden üretilir.
  • Virman iptalinde HAYIR → tek bacak silinir, karşı hesap dengesiz kalır.
  • IslemKodu 12 FATURA satırı işlem listesinden iptal edilirken "Fatura Bulunamadı…" (H-149, BR-IPTAL-007) → Faturalar modülünden.

Sık yapılan hatalar

SIK YAPILAN HATALAR - Yeni çalışan: "Silme onayında işlem duruyor, silinmiyor" (H-098) — yönetici onayı bekliyor; filtre "Bekliyor". - Müşteri: İptal edilen işlem stoktan düşmedi (H-116) — tetik/yenileme kontrolü (PB-029). - Destek personeli: SQL'den DELETE dener; tetikleyici reddeder. Teknik çözüm Sistem.SilOnay satırının IsDeleted=1 yapılmasıdır (H-098), Cari.Islemler silinmez. - Geliştirici: Raporda IsDeleted süzgecini unutur; iptal edilmiş satırlar ciroya girer.

İlgili destek senaryoları

SCN-IPTAL · WF-ISLEM-IPTAL · WF-SILME-TALEBI-ONAY · PB-031 · TERM-IPTAL · TECHNICAL_WIKI/FLOWS/FLOW-FRMIPTALONAYLISTESI.md · WF-PERAKENDE-IPTAL

Varyantlar

Varyant Yol Defter etkisi
Gün ≤ SilGun, yetkili doğrudan IsDeleted bakiye/stok satırları silinir
Gün > SilGun silme talebi → yönetici onayı onaya kadar hiçbir şey
Karşı bacaklı (virman/parite) EVET → aynı RefNo tüm satırlar iki hesabın satırları silinir
Fiş bazlı toplu yönetici şifresi fişteki tüm satırlar
ETTN'li önce e-belge iptali; GİB'e iletilmiş → programdan iptal yok detay Durum='EIPTAL'
Geri alma yönetici "Geri Alındı", defterler yeniden üretilir
Perakende iptali aynı kilit kuralları BR-IPTAL-013

21. Diğer işlem aileleri (kısa)

Aşağıdakiler ayrı ekran/tip olarak vardır; kitapta ayrıntı yerine satır sayısı ve tek cümlelik defter davranışı verilir.

EMANET (IslemTipi 4)

Mal geçici bırakıldı, mülkiyet değişmedi (kısaltma E). MADEN/HURDA'da cari olarak stok ✔ bakiye ✔ yazar; NAKİT'te tip 4 stok hareketi üretmez (tetikleyici IslemKodu=3 AND IslemTipi<>4). Veri: V2 388 (MADEN GİRİŞ 338, MADEN ÇIKIŞ 25, HURDA 25; detay %0), KUYUMCU 2. TERM-EMANET-ISLEM-TIPI-4.

PEKİ NEDEN? — Emanet neden bakiye yazıyor? Mülkiyet değişmese de "kimde ne var" sorusunun cevabı bakiye defteridir; emanet bakiyesi mal tarafında durur, para tarafı çoğu satırda 0'dır (V2 HURDA EMANET tutar %0).

MİKTAR (IslemTipi 5)

Ödeme has olarak değil girilen miktar cinsinden (peşin hurda); BakiyeId=0, tutar zorunlu (kısaltma M). Veri: V2 81 (MADEN GİRİŞ 43, ÇIKIŞ 38; stok ✔ bakiye ✔ — para dalı), KUYUMCU 0. TERM-MIKTAR-ISLEM-TIPI-5.

BEDELLİ (IslemTipi 2)

Malın bedeli ayrı satırda tahsil edilecek; MADEN/HURDA/MODEL'de mal bakiyesi yazılmaz, tutar bakiyesi yazılır (peşinden farkı bu). Veri: matriste yok (sözlük "veride 1 satır" der — silinmiş ya da matris dışı; CTR-06B-BEDELLI-01). TERM-BEDELLI-ISLEM-TIPI-2.

İADE (IslemTipi 3)

Daha önce verilen/alınan malın geri dönmesi; girişte işçilik stok detayındaki birim fiyattan. Veri: iki kurulumda da yok. TERM-IADE-ISLEM-TIPI-3. (Fatura modülündeki NORMAL/İADE fatura tipi ayrı bir alandır, §13.)

TRANSFER (kasalar / şubeler arası)

Cari.Islemler'e yazmaz; TRANSFERTRANSFER EKLE Cari.Transferler satırı açar (Status 0 bekliyor); alan kasa Kabul Et deyince tetikleyici Stok.StokHaraketleri'ne Bolum = 2 ile çıkan kasaya −, giren kasaya + yazar (BR-TRANSFER-002). Bakiye değişmez. Bekleyen transferde stok hareket etmez ("karşı kasada görünmüyor" H-114, PB-037). Veri: Cari.Transferler V2 23.234 satır (kitapçık §6.1); KUYUMCU ölçülmedi (GAP). Devirde Cari.Transferler kodda boşaltılmaz (CTR-SCR-DEVIR-01); transfer stok satırları (V2 45.400) BalanceRepair ile yok olur (TD-30). Virman ile farkı: virman bakiye taşır (iki hesap), transfer fiziksel stok taşır (iki kasa). SCN-SUBELER-ARASI-ISLEM, WF-KASA-TRANSFER, TECHNICAL_WIKI/FLOWS/FLOW-FRMTRANSFER.md.

CTRCTR-SCR-TRANSFER-STOKTIPI-01: kitapçık Transferler.StokTipi "1 maden, 2 nakit" ve Status "kullanılmıyor" der; fonksiyon ve tetikleyici 0 NAKİT / 1 MADEN / 2 HURDA ve Status 0–3 kullanır.

BORÇ İŞLEMLERİ (IslemKodu 999)

Karşılığında hiçbir mal/döviz/hizmet hareketi olmayan saf cari düzeltme: açılış (DEVİR), ıskonto, kur farkı, mutabakat farkı, avans (SCR-IFBORC, WF-BORC-ISLEMLERI). KODU (kategori), TUTAR, BİRİM; miktar/milyem 0. Bakiye ✔ (para dalı), stok ✖. Kod tablosunda adı DEVİR 'B', kod enum'unda BORC = 999 (CTR-039). Veri: V2 507, KUYUMCU 14.742; bakiye %99,8–100, detay %98–100, miktar %0. Save miktar kontrolünden muaf → TUTAR 0 ile kayıt mümkündür; limit kontrolü uygulanmaz (BR-GENEL-004).

SERİ İŞLEM

İki ayrı şey: Cari İşlemler içindeki dar şerit iFSeriIslem ve resmi şubede görünen ayrı pencere FrmSeriIslem (1-ISLEM / 2-TAKOZ G. / 3-TAKOZ C. / DUZELT / IPTAL ET; F1–F11 fiş/ekstre/takoz belgeleri). Aynı fişe arka arkaya satır; her F2 tek Cari.Islemler satırı, defterler normal kurala göre. Fiş numarası Max(FisNo)+1, kilitsiz — iki kullanıcı aynı fişi alabilir (H-102, PB-065). Peşin Kontrolü yetkisinde fiş TL karşılığı sıfıra kapanmalı. Seri işlem "peşin" değil; peşin ayrı tiptir. WF-SERI-ISLEM, PB-064, TECHNICAL_WIKI/FLOWS/FLOW-FRMSERIISLEM.md. Satır sayısı matriste ayrılmaz (seri ekranı işlem koduna göre dağılır).


Varyant kataloğu

Bu katalog, Maden alış/satış × Peşin/Cari × karşı birim × Resmi/Normal × Şubeli/Şubesiz kombinasyonlarından _data/islem_matrisi.json ve birim dağılımında gerçekten bulunanları listeler. Sayılar IsDeleted=0 satırlardır. Yön eşlemesi: MADEN'de GİRİŞ (0) = firma alıyor, ÇIKIŞ (1) = firma satıyor (IslemTuru 4/5 yalnız VADELİ'de kullanılır).

BUNU KARIŞTIRMAAlış ≠ Giriş, Satış ≠ Çıkış. GİRİŞ/ÇIKIŞ kasaya göre yöndür (0/1); ALIŞ/SATIŞ (4/5) vadeli sözleşmenin yönüdür. MADEN ekranında "alış" GİRİŞ olarak kaydedilir.

Bulunan kombinasyonlar (MADEN, IslemKodu 1)

# Yön Tip Cari (BakiyeId>0) Karşı birim (birim dağılımı) Resmi/Normal V2 KUYUMCU Stok Bakiye Detay
M1 Satış (ÇIKIŞ) PEŞİN TL (MADEN birimleri V2: TL 21.219 / HAS 1.109) Normal 14.328 %96
M2 Alış (GİRİŞ) PEŞİN TL Normal 5.948 %96
M3 Satış (ÇIKIŞ) NORMAL TL / HAS (V2); HAS / GUM (KUY: HAS 152.349, GUM 577) Normal 288 124.524 %38 / %60
M4 Alış (GİRİŞ) NORMAL aynı Normal 458 28.176 %26 / %59
M5 Alış (GİRİŞ) RESMİ (11) TL Resmi 757 %100
M6 Satış (ÇIKIŞ) RESMİ (11) TL Resmi 105 %100
M7 Alış (GİRİŞ) EMANET (4) Normal 338 1 %0
M8 Satış (ÇIKIŞ) EMANET (4) Normal 25 1 %0
M9 Alış / Satış MİKTAR (5) TL Normal 43 / 38 %7 / %0
M10 Alış (GİRİŞ) NORMAL ✖ (BakiyeId=0) HAS Normal 226 %100
M11 Satış (ÇIKIŞ) NORMAL Normal (V2 satırı MADEN ÇIKIŞ NORMAL cari altında; BakiyeId=0 ÇIKIŞ NORMAL veride yok)

Kuyumcu tezgâh ("peşin") satışı: M3 + NAKİT GİRİŞ NORMAL çifti (DERIVED; GAP-SEC-PESIN-01). M10 kuyumcuya özgü ve tetikleyici kuralıyla çelişir (GAP-06B-KUY-MADEN-BAKIYE0).

HURDA (IslemKodu 2) — bulunanlar

Yön Tip Cari V2 KUYUMCU Stok Bakiye Not
GİRİŞ / ÇIKIŞ NORMAL 1.112 / 1.144 40.462 / 26.116 tutar %0 — yalnız has bakiyesi; birim V2 TL 2.594 / null 2.281, KUY null 66.578
GİRİŞ / ÇIKIŞ PEŞİN 909 / 872 detay %25
GİRİŞ / ÇIKIŞ RESMİ 342 / 471
GİRİŞ NORMAL 36 KUY istisnası (M10 ile aynı)
ÇIKIŞ / GİRİŞ EMANET 22 / 3

NAKİT (IslemKodu 3) — bulunanlar

Yön Tip V2 KUYUMCU Stok Bakiye Detay Birim (V2)
GİRİŞ / ÇIKIŞ NORMAL 466.932 / 467.194 82.878 / 53.307 %45 / %57 TL 788.454, USD 295.298, EUR 146.062, GBP 9.373, CHF 3.484, 30+ diğer 8.000
GİRİŞ / ÇIKIŞ PEŞİN 176.059 / 120.208 %95 / %91
GİRİŞ / ÇIKIŞ RESMİ 10.408 / 7.829 %100
GİRİŞ / ÇIKIŞ MAHSUP 732 / 782 %3

KUYUMCU NAKİT birimleri: TL 78.409, USD 26.904, EUR 22.673, GBP 3.243, CHF 2.101, SAR 1.049, AUD 591, CAD 503, BGN 427.

Veride yok

  • MADEN × USD/EUR karşılıklı (Birim USD): birim dağılımında MADEN altında yalnız TL/HAS (V2) ve HAS/GUM (KUY) — veride yok.
  • MADEN PEŞİN ve MADEN RESMİ KUYUMCU'da — veride yok.
  • MADEN/HURDA MAHSUP (dokümandaki açılış stoğu) — iki kurulumda da veride yok.
  • MADEN ÇIKIŞ NORMAL BakiyeId=0 — veride yok (KUY'da yalnız GİRİŞ 226).
  • Şubeli / şubesiz ayrımı: matriste şube kolonu yoktur; HesapType bütün satırlarda 0 (şube hesabı HesapType ile ayrılıyorsa veride kullanılmamış) — GAP-06B-SUBE-EKSENI: şube ekseni bu kitapta ölçülemedi. Şubeler arası hareket için §21 TRANSFER ve MAHSUP (§17) açıklamaları tek dolaylı kanıttır.
  • BEDELLİ (2), İADE (3) hiçbir kodda — veride yok.
  • IslemKodu 7 TAŞ, 8 PIRLANTA, 9 MODEL, 10 GENEL, 12 FATURA, 13 EMTİA — iki kurulumda da veride yok.
  • IslemTuru 2 ALACAK / 3 BORÇ: FLOW-ISLEM-MATRISI "veride yok" der; JSON'da KUYUMCU'da 1 satır IslemKodu 4 ÇEVİR, IslemTuru 2, tip −1 var — CTR-06B-ISLEMTURU-2 (tek satır, muhtemelen veri hatası; FLOW notu "yalnız 0,1,4,5" ifadesi düzeltilmeli).

İşlem matrisi

Bu tablo ERPGOLD'un işlem anatomisinin ana referansıdır. Her hücre gerçek veriden gelir (_data/islem_matrisi.json, 2026-09-12, IsDeleted=0). Okuma anahtarı:

  • Alış / Satış: satırların yüzde kaçı GİRİŞ+ALIŞ (0/4) ve ÇIKIŞ+SATIŞ (1/5) yönünde.
  • Peşin: IslemTipi=1 oranı. Cari: BakiyeId>0 oranı. Resmi: tip 11+12 oranı.
  • Stok: Stok.StokHaraketleri satırı üreten oran. Bakiye: Cari.BakiyeIslem üreten oran.
  • Kasa: nakit stoğu hareketi. NAKİT satırında stok defteri = kasa; maden/hurda PEŞİN satırında tetikleyici nakit karşı satırı yazar (kod: BR-TIP-003) ama matris bunu ayrı ölçmez → "kod ✔ / veri ölçülmedi".
  • Fatura: Cari.IslemDetaylari (fiş/fatura detayı) satırı olan oran.
  • ✔ = %95+, ✖ = %0–5, arası "kısmi + oran".

Birleşik matris (V2 + KUYUMCU, 2.183.146 işlem)

İşlem Satır Alış Satış Peşin Cari Resmi Stok Bakiye Kasa Fatura
NAKİT (3) 1.386.329 %53 %47 kısmi %21 ✖ %0 ✖ %1 ✔ %99 kısmi %77 ✔ %99 kısmi %57
VADELİ (6) 385.979 %45 %55 ✔ %100 ✖ %1 ✔ %99 kısmi %77
MADEN (1) 175.256 %21 %79 kısmi %12 kısmi %88 ✖ %0 ✔ %100 kısmi %88 kod ✔ (peşinde) kısmi %64
VİRMAN (11) 112.538 %50 %50 ✔ %100 kısmi %64
HURDA (2) 71.489 %60 %40 ✖ %2 ✔ %97 ✖ %1 ✔ %99 ✔ %96 kod ✔ (peşinde) kısmi %55
TAKOZ (0) 21.236 %50 %50 ✔ %100 ✔ %100 kısmi %33
DEVİR/BORÇ (999) 15.249 %50 %50 ✔ %100 ✔ %100
HİZMET (5) 14.949 %96 %4 ✔ %100 kısmi %48
ÇEŞNİ (14) 120 %0 %100 ✔ %100 kısmi %58
ÇEVİR (4) 1
TAŞ (7) · PIRLANTA (8) · MODEL (9) · GENEL (10) · FATURA (12) · EMTİA (13) 0 veride yok

PEKİ NEDEN? — VİRMAN, HİZMET, BORÇ, ÇEŞNİ neden "Cari ✖" ama "Bakiye ✔"? Cari sütunu BakiyeId>0 (mal tarafı) ölçer; bu işlemler para bakiyesi dalından (Tutar<>0) yazar ve BakiyeId gerektirmez. "Cari" = "bakiye yazar" değildir; bkz. §16 Seviye 4.

Döviz kurulumu matrisi (V2, 1.527.852 işlem)

İşlem Satır Alış Satış Peşin Cari Resmi Stok Bakiye Kasa Fatura
NAKİT 1.250.144 %52 %48 kısmi %24 ✖ %2 ✔ %98 kısmi %75 ✔ %98 kısmi %57
VADELİ 241.596 %47 %53 ✔ %100 ✖ %1 ✔ %99 kısmi %89
MADEN 22.328 %34 %66 ✔ %91 kısmi %9 ✖ %4 ✔ %96 ✖ %5 kod ✔ kısmi %92
HİZMET 7.870 %99 %1 ✔ %100 kısmi %47
HURDA 4.875 %49 %51 kısmi %37 kısmi %63 kısmi %17 kısmi %83 kısmi %47 kod ✔ kısmi %44
VİRMAN 532 %50 %50 ✔ %100 ✔ %100
DEVİR/BORÇ 507 %48 %52 ✔ %100 ✔ %98
TAKOZ, ÇEŞNİ, ÇEVİR, TAŞ, PIRLANTA, MODEL, GENEL, FATURA, EMTİA 0 veride yok

Tip dağılımı V2: NORMAL 946.037 · PEŞİN 318.324 · vadeli −1/−2 238.646 · RESMİ 22.862 · MAHSUP 1.514 · EMANET 388 · MİKTAR 81. %83 NAKİT ile döviz bürosu tezgâh ticaretidir; cari işlemler (%16) neredeyse hiç stok üretmez (%1,4).

Kuyumcu kurulumu matrisi (KUYUMCU, 655.294 işlem)

İşlem Satır Alış Satış Peşin Cari Resmi Stok Bakiye Kasa Fatura
MADEN 152.928 %19 %81 ✔ %100 ✔ %100 ✔ %100 ✖ (peşin yok) kısmi %60
VADELİ 144.383 %41 %59 ✔ %100 ✔ %100 kısmi %58
NAKİT 136.185 %61 %39 ✔ %100 ✔ %100 ✔ %100 kısmi %57
VİRMAN 112.006 %50 %50 ✔ %100 kısmi %64
HURDA 66.614 %61 %39 ✔ %100 ✔ %100 ✔ %100 kısmi %55
TAKOZ (tip 6 ALTIN 13.815 / 7 GÜMÜŞ 7.421) 21.236 %50 %50 ✔ %100 ✔ %100 kısmi %33
DEVİR/BORÇ 14.742 %50 %50 ✔ %100 ✔ %100
HİZMET 7.079 %92 %8 ✔ %100 kısmi %49
ÇEŞNİ 120 %0 %100 ✔ %100 kısmi %58
ÇEVİR 1
PEŞİN / RESMİ / MAHSUP tipi; TAŞ, PIRLANTA, MODEL, GENEL, FATURA, EMTİA 0 veride yok

Kuyumcu cari çalışır (%55); cari işlemde bile maden fiziksel yer değiştirir (stok %60,3). Aynı tetikleyici, farklı iş modeli: bir raporun IslemTipi = 1 ya da = 11 süzgeci kuyumcuda sessizce boş küme döndürür.

KAYNAK_data/islem_matrisi.json · TECHNICAL_WIKI/FLOWS/FLOW-ISLEM-MATRISI.md · BR-DEFTER-URETIMI · TRG-CARI.ACCEPTTRANSACTION · ENUM-ISLEMTIPI · ENUM-ISLEMKODU · kitapçık §9.3–9.4.


Bölüm sonu sınavı

Bu sınav 6. bölümün tamamını (06a + 06b) kapsar.

Kolay (5)

  1. ERPGOLD'da kullanıcı hangi tabloya yazar; stok ve bakiye defterlerini kim üretir?
  2. PEŞİN (tip 1) işlem hangi defteri yazmaz? BakiyeId = 0 peşin demek midir?
  3. RESMİ (11) ve MAHSUP (12) tipleri hangi defterlere yazar?
  4. İptal edilen işlem veritabanından silinir mi? Hangi kolon değişir?
  5. "Fatura" ERPGOLD'da üç ayrı şeydir; üçünü say.

Orta (5)

  1. TAŞ ile PIRLANTA ekranı tetikleyicide nasıl farklı davranır? Kaynak kural hangisi?
  2. Düzeltmede tarih, fiş no, kasa ve hesap neden değiştirilemez; ne yapılır?
  3. VİRMAN ve BORÇ (999) satırları BakiyeId = 0 olduğu hâlde neden bakiye üretir?
  4. Devir yalnız hangi 5 tabloyu boşaltır ve bu neden bir GAP'tir?
  5. Kuyumcu kurulumu PEŞİN tipini hiç kullanmaz; tezgâh satışı nasıl kaydedilir (veriye dayalı okuma)?

Senaryo (5)

  1. Firma müşteriden 500 g hurda aldı ve karşılığını USD cari hesabına yazdı. Stok ve bakiye açısından ne beklenir? Bu kombinasyon veride var mı?
  2. Resmi kasada çalışan kasiyer gerçek bir döviz satışını varsayılan tiple (RESMİ) kaydetti. Gün sonunda kasa sayımı ne gösterir; nasıl düzeltilir ve düzeltince ne olur?
  3. Yönetici devir sonrası "açılış stoğu MAHSUP ile girildi ama stok listesinde görünmüyor" diyor. Hangi CTR'yi okursun, ne dersin?
  4. Bir virman işlemi 7 gün önce yanlış girilmiş; SilGun = 3. Kullanıcı İPTAL'e basıyor. Adım adım ne olur; karşı bacak sorusunda HAYIR derse?
  5. Geliştirici "peşin hacim" raporunu BakiyeId = 0 ile yazdı; V2'de 1.261.440 satır çıktı. Neden yanlış, doğru ölçüt ve doğru sayı nedir?

Cevap anahtarı

  1. Yalnız Cari.Islemler; tetikleyici Cari.AcceptTransaction Cari.BakiyeIslem, Stok.StokHaraketleri ve Cari.History üretir. — BR-DEFTER-URETIMI, TRG-CARI.ACCEPTTRANSACTION.
  2. Bakiye defterini yazmaz; stok (mal + nakit karşı satırı) yazar. Hayır: bakiyeyi kapatan koşul IslemTipi=1'dir; NAKİT NORMAL satırları BakiyeId=0 ile bakiye yazar. — SEC-PESIN, CTR-SEC-BAKIYE-01, BR-TIP-002/003.
  3. Hiçbirine; yalnız Cari.Islemler + Cari.History (hesabın LastDate'i bile değişmez). — BR-TIP-004, SCN-RESMI-ISLEM.
  4. Silinmez; IsDeleted = True (yumuşak silme). Fiziksel DELETE tetikleyicide "ISLEMLERI DIREK SILEMEZSINIZ" ile reddedilir. — BR-IPTAL-009, BR-STOK-012, SCN-IPTAL.
  5. (1) İşleme belge basmak (F5/Ctrl+Y, detay tablosuna seri/no/ETTN); (2) RESMİ işlem tipi 11; (3) FATURA işlem kodu 12 (Faturalar modülü). — SCN-FATURA.
  6. PIRLANTA (8) stok defterine adet yazar (StokTipi 4, BR-STOK-004); TAŞ (7) için tetikleyicide dal yok, stok satırı yazılmaz (BR-STOK-011). Ekran/WF "klasik stok hareketi" der → CTR-SEC-TAS-01. — SCN-TAS-PIRLANTA.
  7. Update sorgusu bu kolonları güncellemez (BR-DUZELTME-008); iptal + yeniden giriş. Kasa hatası için stok transferle taşınır (H-113). — SCN-DUZELTME, WF-ISLEM-DUZELT.
  8. Bakiye defterinin para dalı IslemTipi<>1 AND Tutar<>0 koşuluyla yazılır ve BakiyeId gerektirmez; BakiyeId>0 yalnız mal dalını açar. — BR-DEFTER-URETIMI, TRG satır 406–416.
  9. Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari. IslemId taşıyan Sistem.SilAciklama, Stok.Mutabakat, Cari.AccountLog, müşteri-özel fiyat tabloları öksüz kalır; kasıtlı mı bilinmiyor. — GAP-DEVIR-SCOPE, SCR-FRMDEVIR, TD-42.
  10. İki NORMAL satır: MADEN ÇIKIŞ (bakiye HAS/TL borç) + NAKİT GİRİŞ (bakiye TL alacak, kasa +TL); net bakiye sıfıra kapanır. Veri uyumlu (NAKİT NORMAL 136.185, MADEN NORMAL 152.700) ama çift eşlemesi ölçülmedi → GAP-SEC-PESIN-01. — §15, kitapçık §9.4.
  11. HURDA GİRİŞ NORMAL, BakiyeId = USD: stok +500 g (has = 500 × milyem); bakiye USD alacak (mal dalı, GİRİŞ → negatif) + varsa TL/tutar satırı. Kuyumcu profilinde stok da yazılır. Veride: HURDA NORMAL cari V2 1.112 / KUY 40.462 satır var; ancak USD karşılıklı hurda birim dağılımında yok (V2 TL/null, KUY null) → bu özel kombinasyon "veride yok". — SCN-HURDA, BR-DEFTER-URETIMI, varyant kataloğu.
  12. Kasa sayımı satılan dövizi hâlâ kasada gösterir, TL eksik görünür (tip 11 stok yazmaz). Satır DÜZELT ile NORMAL/PEŞİN'e çevrilir (ETTN yoksa); tetikleyici stok/bakiye kayıtlarını o anda üretir, işlem tarihinden bugüne adım adım bakiye/stok kayar; ETTN doluysa önce e-belge iptali. — SCN-RESMI-ISLEM, BR-DUZELTME-010, WF-ISLEM-DUZELT.
  13. CTR-004 (doküman "MAHSUP yalnız stok" der, kod hiç yazmaz; V2 1.514 MAHSUP satırının 0 stok hareketi) ve CTR-005 (resmi stok listesi FaturaNo>0 süzer). "Beklenen davranış; açılış stoğu için çalışan bir yol kurulum bazında doğrulanmalı, BalanceRepair asla" denir. — SCN-DEVIR, BR-TIP-004, SEC-MAHSUP.
  14. Kilit kontrolü → 7 ≥ 3 uyarı → gerekçe → DeleteAt 7 > 3 → silme talebi Sistem.SilOnay'a, "Silme Talebiniz Alınmıştır", işlem durur → yönetici İptal Onay Listesi'nden Onay → IsDeleted=True, defter satırları silinir, History "İptal Edildi" (eski hâl). Karşı bacakta HAYIR: "Virman İşlemi İptal Edilmedi." — hiçbir bacak silinmez (virman için). — SCN-IPTAL, BR-IPTAL-003/005, WF-SILME-TALEBI-ONAY.
  15. BakiyeId=0 mal tarafı hesaba yazılmayan satırı ölçer; NAKİT NORMAL satırları (934 bin, bakiye yazar) da içine girer. Peşin = IslemTipi = 1; V2'de 318.324. İki ölçüt toplanmaz. — CTR-SEC-BAKIYE-01, MET-PESIN-HACIM, §15 Seviye 4.

Bunu anladıysan devam et

7. İşletme Senaryoları — ÖRNEK ALTIN A.Ş.'nin Bir Haftası

Bu bölüm kitabın "uygulama sahası"dır. Önceki bölümlerde kavramları (has, milyem, kur, bakiye, stok, kasa — bkz. Bölüm 2–4) ve ERPGOLD'un tek yazma noktası olan Cari.Islemler → tetikleyici → defterler zincirini (bkz. Bölüm 5–6) öğrendin. Şimdi hepsini aynı işletmede, aynı haftada, birbirine bağlı sayılarla göreceksin. Üç parça var:

  • Bölüm A — Bir hafta: ÖRNEK ALTIN A.Ş. Pazartesi sabahı belli bir durumla açılır, Cuma akşamı kasa sayımı ve pozisyonla kapanır. Her günün sonunda stok / kasa / cari / pozisyon kutusu vardır; sayılar bir önceki günden türer.
  • Bölüm B — 22 uçtan uca senaryo: Haftada yer almayan ama sahada her gün yaşanan olaylar (takoz, virman, emanet, iptal, devir, sayım farkı…). Her senaryo aynı iskeletle: Durum → Kullanıcı ne yapar → Beklenen kayıt → Bakiye → Stok → Kasa → Rapor → Kontrol soruları.
  • Bölüm C — Sık yapılan hatalar: 13.681 destek çağrısından çıkan gerçek hata desenleri, dört rol için.

KAYNAK — Gerçek davranış referansı bu kitabın teknik mini wiki'sindeki işlem matrisidir: FLOW-ISLEM-MATRISI (iki canlı kurulumdan, silinmişler hariç, 2026-09-12). Kanonik senaryolar SCN dizini, defter kuralı BR-DEFTER-URETIMI, tetikleyici TRG-CARI.ACCEPTTRANSACTION. Kitapçık §5'teki altı gerçek fiş (ERPGOLD_Egitim_Kitapcigi.md (eğitim kitapçığı)) başlangıç noktasıdır; burada tekrar edilmez, atıf yapılır.

UYARI — Bu bölümdeki bütün kurlar örnek kurdur, güncel değildir: USD/TL 40,00 alış / 40,20 satış · EUR/TL 46,00 / 46,30 · has altın gramı 4.000 TL alış / 4.030 TL satış · ons 3.100 USD · 22 ayar işçilik 150 TL/g · BSMV ‰2 (yalnız hesap örneği; oran ve mevzuat için GAP-MEVZUAT, tarihli kaynak yok). Sayılar öğrenmek içindir, fiyat listesi değildir.

BUNU KARIŞTIRMAHas ≠ Gram. Kitap boyunca stok kutularında iki sütun görürsün: miktar (g) terazinin gösterdiği ağırlık, has (g) = miktar × milyem. ÖRNEK ALTIN A.Ş.'nin "HAS" kartı 24 ayar külçedir (gerçekte 0,995); hesap kolaylığı için kitapta has = gram sayılır (milyem 1). Diğer üç kartta milyem uygulanır: 22 ayar 0,916 · 14 ayar 0,585 · karışık hurda ortalama 0,700. Veride milyem ondalık saklanır (0,916), 1000'e bölme yoktur; AuMilyem 0 ise tetikleyici 1 kabul eder (BR-HESAP-002).


7.1 Bölüm A — ÖRNEK ALTIN A.Ş.'nin bir haftası

Pazartesi sabahı: başlangıç durumu

İstanbul Kapalıçarşı'da toptancı + perakende kuyumcu, içinde bir döviz gişesi; ERPGOLD iki şubeyle kullanılıyor (MERKEZ, ŞUBE-2). Bu hafta MERKEZ kasasında geçer. Kişiler: Ayşe Demir (sahip), Mehmet Kaya (kasiyer/gişe), Zeynep Aksoy (satış), Ali Çelik (muhasebe), Deniz Yılmaz (AIFASOFT destek).

PAZARTESİ 08:30 — AÇILIŞ (MERKEZ / ANAKASA)                     örnek kurlar, güncel değil
────────────────────────────────────────────────────────────────────────────
STOK (ürün bazında)            miktar (g)   milyem    has (g)
  HAS (24 ayar külçe)             2.000,0    1,000    2.000,0
  22 AYAR BİLEZİK                 1.500,0    0,916    1.374,0
  14 AYAR                           800,0    0,585      468,0
  KARIŞIK HURDA                     300,0    0,700      210,0
  ──────────────────────────────────────────────────────────
  TOPLAM HAS                                          4.052,0
KASA (nakit stoğu)             TL 500.000 · USD 100.000 · EUR 20.000
CARİ BAKİYELER  (+ = müşteri bize borçlu, − = biz ona borçluyuz)
  Kuyumcu Selim   HAS  +150,0            (150 g has borçlu)
  Döviz Nuri      USD  −5.000            (5.000 USD alacaklı)
  Toptancı Yusuf  HAS  −400,0            (400 g has alacaklı)
POZİSYON (birim bazında = stok + alacaklarımız − borçlarımız)
  HAS  4.052,0 + 150,0 − 400,0 = 3.802,0 g
  TL   500.000
  USD  100.000 − 5.000        = 95.000
  EUR  20.000

Seviye 1 — Çok basit

Ali'nin bir dükkânı olsun. Rafta ne varsa stok, çekmecede ne varsa kasa, defterde "Mehmet bana 150 gram borçlu / ben Yusuf'a 400 gram borçluyum" yazanlar cari. Peki Ali "benim gerçekten kaç gram altınım var?" derse ne sayar? Raftaki 4.052 gramı, üstüne Mehmet'in getireceği 150'yi ekler, Yusuf'a vereceği 400'ü düşer: 3.802 g. İşte buna pozisyon denir. Hafta boyunca bu dört kutu hareket edecek; ama dikkat et, her işlem dört kutunun hepsini oynatmaz.

Seviye 2 — İşletme mantığı

Kuyumcuda kâr, TL'de değil hasta ölçülür; çünkü altın fiyatı her gün değişir ve firma "altın açığı"nı (pozisyonu) kapalı tutmak ister. Pozisyon tablosu bunun için vardır: bir birimde eksiye düştüysen o birimde riskin var demektir. Gişe tarafında aynı mantık dövizde işler: 95.000 USD "net pozisyon" = kasadaki 100.000 eksi Nuri'ye borçlu olduğumuz 5.000.

Seviye 3 — ERPGOLD

Bu dört kutunun ekrandaki karşılığı: stok → Maden Stokları / Nakit Stokları (SCR-FRMMADENSTOKLARI, SCR-FRMNAKITSTOKLARI); cari → Cari İşlemler üst paneldeki bakiye kartı (SCR-ISCREEN); pozisyon → Pozisyon ekranı (SCR-FRMPOZISYON). Her sabah ilk iş Kur Giriş Ekranı (SCR-FRMKURGIRISEKRANI): kur girilmezse program sessizce dünkü kuru kullanır; kur hiç yoksa FİYAT 0 gelir ve "Lütfen Tutar Giriniz." çıkar (PB-036).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Dört kutu üç tablodan türer: stok = Stok.StokHaraketleri toplamı (kasa × stok tipi × stok); cari = Cari.BakiyeIslem toplamı (hesap × birim; Bakiye artı = müşteri borçlu, TBL-CARI.BAKIYEISLEM); pozisyon = Pozisyon.Write'ın birkaç saniyede bir yeniden hesapladığı Pozisyon.Pozisyonlar satırları: Bakiye = BakiyeIslem toplamı + nakit stoğu + maden stoğu (Miktar × StabilMilyem) + raporlu takoz has'ı, Pozisyon = Bakiye × Kur1 ÷ Kur2 (bilanço birimi TL) — SCR-FRMPOZISYON "Alanların anlamı". Kasa nakit stoğu da Stok.StokHaraketleri'nde StokTipi=2 satırlarıdır; yani "kasa" ayrı bir defter değil, stok defterinin nakit dilimidir. Cari bakiye kasaya bölünmez; stok kasa bazlıdır (H-113).

Açılış bakiyeleri gerçek kurulumda devir prosedürünün IslemId = −1 ile yazdığı satırlardır (bkz. B-17); kitapta bunları verili sayıyoruz.

BUNU KARIŞTIRMAKasa ≠ Cari. Nuri'nin 5.000 USD alacağı kasada duran para değildir; kasada 100.000 USD var, bunun 5.000'i "Nuri'ye borçluyuz" diye defterde yazar. Kasa fiziksel sayımdır, cari hesap bir sözdür.


Pazartesi — 1.000 g has satın alma (Toptancı Yusuf, cari)

Olay. Toptancı Yusuf sabah 1.000 g külçe getiriyor. Para konuşulmuyor; "hesabıma yaz, has olarak alacaklı olayım" diyor. Zeynep işlemi giriyor.

Seviye 1 — Çok basit

Ali, komşusu Yusuf'dan 1.000 şeker alıyor ama parasını vermiyor; deftere "Yusuf'a 1.000 şeker borçluyum" yazıyor. Rafta şeker arttı (stok), defterde borç arttı (cari), çekmece değişmedi (kasa). Ali'nin "gerçek şekeri" arttı mı? Hayır: 1.000 geldi ama 1.000 da borçlandı → pozisyon aynı kaldı.

Seviye 2 — İşletme mantığı

Sektörde buna "has bazında alım" denir: toptancıya TL değil has borçlanırsın, kur riskini o taşımaz sen taşımazsın; altın altınla ödenir. Yusuf'un hesabı zaten 400 g alacaklıydı, şimdi 1.400 g alacaklı olur. Firma pozisyonu değişmez: rafta 1.000 g fazla var, ama 1.000 g da borç var.

Seviye 3 — ERPGOLD

Cari İşlemler ▸ hesap Toptancı YusufMADEN ekranı (SCR-IFMADEN). Ekran ÇIKIŞ ile açılır; Zeynep yönü GİRİŞ'e çevirir (mal içeri giriyor, başlık yeşil).

Alan Değer Not
ISLEM GİRİŞ mal işletmeye giriyor → müşteri alacaklanır (H-103 kuralı)
İşlem tipi NORMAL bakiye üretsin
STOK KODU HAS
MIKTAR / MILYEM 1.000,00 / 1,000 HAS alanı 1.000,00
FIYAT (işçilik) / TUTAR 0 / 0 külçede işçilik yok; TUTAR = Miktar × işçilik (BR-HESAP-007)
F2 - KAYIT EVET
SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Cari.Islemler 1 satır: HesapId=Yusuf · IslemKodu=1 MADEN · IslemTuru=0 GİRİŞ · IslemTipi=0 NORMAL · BakiyeId=HAS birimi (>0, cari) · StokId=HAS kartı · Miktar=1.000 · AuMilyem=1 · Tutar=0 · HasKur=4.000 (kayıt anı kur fotoğrafı, BR-KUR-001) · Vade=TxtTarih (tarih değil vade kolonuna yazar, TD-40).

Tetikleyici (Cari.AcceptTransaction, MADEN dalı, BR-YON-002): GİRİŞ → Has = −|Has|. - Cari.BakiyeIslem: 1 satır, BirimId HAS, Bakiye −1.000,00. Tutar 0 olduğu için para satırı yazılmaz (BR-BAKIYE-001). - Stok.StokHaraketleri: 1 satır, StokTipi 1, Miktar +1.000, Has +1.000, Maliyet 0 (maliyet kolonu yalnız işçilik TL'dir; metal maliyeti günün kuruyla — CTR-SEC-MALIYET-01). - Cari.History: "Yeni Kayıt".

Matris doğrulaması: MADEN / NORMAL / cari kombinasyonu KUYUMCU kurulumunda 152.700 satır, stok %100 · bakiye %100 (FLOW-ISLEM-MATRISI). Yani "cari işlem stok üretmez" cümlesi kuyumcuda yanlıştır; döviz kurulumunun gözlemidir (V2'de cari işlemlerin %1,4'ü stok üretir — BR-DEFTER-URETIMI).

PEKİ NEDEN? — Neden stok artarken bakiye eksiye gidiyor? Çünkü Bakiye kolonu "müşteri bize ne kadar borçlu" sorusunu cevaplar. Yusuf'tan mal aldık, ona borçlandık → onun bakiyesi eksi (alacaklı). Tetikleyici GİRİŞ yönünde has satırını negatif yazar; ekran bunu yeşil ALACAK sütununda gösterir (BR-YON-007).

PAZARTESİ GÜN SONU                                             örnek kurlar, güncel değil
────────────────────────────────────────────────────────────────────────────
STOK                           miktar (g)   milyem    has (g)      değişim
  HAS                             3.000,0    1,000    3.000,0     +1.000,0
  22 AYAR BİLEZİK                 1.500,0    0,916    1.374,0
  14 AYAR                           800,0    0,585      468,0
  KARIŞIK HURDA                     300,0    0,700      210,0
  TOPLAM HAS                                          5.052,0     +1.000,0
KASA                           TL 500.000 · USD 100.000 · EUR 20.000   (değişmedi)
CARİ
  Kuyumcu Selim   HAS  +150,0
  Döviz Nuri      USD  −5.000
  Toptancı Yusuf  HAS  −1.400,0                                  −1.000,0
POZİSYON
  HAS  5.052,0 + 150,0 − 1.400,0 = 3.802,0 g   (değişmedi — cari alım pozisyonu oynatmaz)
  TL   500.000 · USD 95.000 · EUR 20.000

Günün kontrol soruları. 1. Yusuf 1.000 g yerine 1.000 g 22 ayar getirseydi has satırı ne olurdu? — Has = 1.000 × 0,916 = 916; Yusuf HAS −916 alacaklanır, stok 22 ayar +1.000 g / has +916 (BR-HESAP-001). 2. Aynı işlem yanlışlıkla PEŞİN girilseydi? — Bakiye satırı yazılmaz; fiyat paneli açılır, kasadan TL −Tutar çıkar (BR-TIP-003); Yusuf'un alacağı doğmaz — "bakiyesi değişmedi" çağrısı (H-104). 3. Yön ÇIKIŞ'ta unutulsaydı? — Yusuf HAS +1.000 borçlu görünür, stok −1.000 g (2.000 → 1.000): hem bakiye hem stok ters (H-103); DÜZELT ile yön değiştirilir, tetikleyici defterleri yeniden üretir.


Salı — 600 g 22 ayar satış (Kuyumcu Selim, cari, işçilikli) ve 2.000 USD (cari)

Olay. Kuyumcu Selim 600 g 22 ayar bilezik alıyor; bedeli has olarak, işçiliği TL olarak hesabına yazılacak (gram başına 150 TL). Öğleden sonra gişeden 2.000 USD de alıyor, "hesabıma yaz" diyor — Perşembe bu USD borcunu altına çevireceğiz.

Seviye 1 — Çok basit

Ali, Mehmet'e 600 gramlık bilezik veriyor. Bileziğin içinde saf altın 549,6 g (600 × 0,916). Mehmet'e "bana 549,6 g has + 90.000 TL işçilik borçlusun" diyor. Rafta bilezik azaldı, defterde Mehmet'in borcu iki ayrı satırda arttı: bir gram satırı, bir lira satırı. Çekmeceye para girmedi.

Seviye 2 — İşletme mantığı

Toptancı kuyumculukta bilezik "has + işçilik" olarak satılır: metalin karşılığı has gramdır (kur riski müşteride), emeğin karşılığı TL'dir. Bu yüzden müşteri hesabı iki birimde tutulur. İşçilik firmanın gerçek kazancıdır; has tarafında kâr yoktur (has hasla ödenir).

Seviye 3 — ERPGOLD

(1) Bilezik satışı — Cari İşlemler ▸ Kuyumcu SelimMADEN: ISLEM ÇIKIŞ (açılış varsayılanı; başlık kırmızı) · tip NORMAL · STOK KODU 22 AYAR BİLEZİK · MIKTAR 600,00 · MILYEM 0,916 → HAS 549,60 · FIYAT (işçilik) 150,00, F.TIPI Miktar · BIRIM TL · TUTAR 90.000,00 · F2. Kanonik senaryo: SCN-NORMAL-MADEN (aynı ekran, 100 g).

(2) 2.000 USD cari — Cari İşlemler ▸ Kuyumcu SelimNAKİT (SCR-IFNAKIT): ISLEM ÇIKIŞ (döviz müşteriye gidiyor) · tip NORMAL · KODU USD · MIKTAR 2.000 · BIRIM USD (bakiyeye dolar olarak yazılsın) → FIYAT 1'e kilitlenir, TUTAR 2.000 · F2. Kanonik: SCN-NAKIT (oradaki örnek USD verip TL'ye yazar; buradaki aynı birimde yazar).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

(1) Cari.Islemler: IslemKodu=1 · IslemTuru=1 ÇIKIŞ · IslemTipi=0 · BakiyeId=HAS · StokId=22 AYAR BİLEZİK · Miktar=600 · AuMilyem=0,916 · BirimId=TL · Fiyat=150 · Tutar=90.000 · HasKur=4.000. Tetikleyici MADEN dalı, ÇIKIŞ → artı (BR-YON-002): - Cari.BakiyeIslem: HAS +549,60 · TL +90.000,00 (iki satır, aynı işaretli). - Stok.StokHaraketleri: StokTipi 1, Miktar −600, Has −549,60; Maliyet 0 (çıkışta 0, BR-STOK-001).

(2) Cari.Islemler: IslemKodu=3 NAKİT · IslemTuru=1 · IslemTipi=0 · BakiyeId=0 (NAKİT'te daima 0 — bu peşin demek DEĞİLDİR, CTR-SEC-BAKIYE-01) · Kodu=USD · Miktar=2.000 · Birim=USD · Fiyat=1 · Tutar=2.000. Tetikleyici "stok işlemi" dalı (BR-YON-004): yalnız Tutar satırı, ÇIKIŞ → +2.000 USD (Selim borçlandı). Stok: IslemKodu=3 And IslemTipi<>4Stok.StokHaraketleri StokTipi 2, USD −2.000 (BR-STOK-003).

Matris: NAKİT / NORMAL V2'de 934.126 satır, stok %99 · bakiye %99 — tetikleyici metniyle uyumlu. CTR (CTR-TRN-NAKIT-01): WF-NAKIT-NORMAL "kasa değişmez" der; bu kitap tetikleyici metnini ve matrisi esas alır (kasa USD −2.000). Kodu = Birim (USD/USD) satırlar hacim raporunda kasa hareketi sayılır, ticaret değil (kitapçık Ek B; MET-ISLEM-HACMI).

BUNU KARIŞTIRMAİşlem ≠ Stok hareketi. Salı iki işlem satırı girildi, ama defterlere beş satır düştü: 2 bakiye + 1 stok (bilezik), 1 bakiye + 1 stok (USD). Bir satır yazarsın, tetikleyici dağıtır.

SALI GÜN SONU                                                  örnek kurlar, güncel değil
────────────────────────────────────────────────────────────────────────────
STOK                           miktar (g)   milyem    has (g)      değişim
  HAS                             3.000,0    1,000    3.000,0
  22 AYAR BİLEZİK                   900,0    0,916      824,4       −549,6 has
  14 AYAR                           800,0    0,585      468,0
  KARIŞIK HURDA                     300,0    0,700      210,0
  TOPLAM HAS                                          4.502,4       −549,6
KASA                           TL 500.000 · USD 98.000 · EUR 20.000      USD −2.000
CARİ
  Kuyumcu Selim   HAS  +699,6   TL  +90.000   USD  +2.000     (üç birimde borçlu)
  Döviz Nuri      USD  −5.000
  Toptancı Yusuf  HAS  −1.400,0
POZİSYON
  HAS  4.502,4 + 699,6 − 1.400,0 = 3.802,0 g   (değişmedi: has hasla satıldı)
  TL   500.000 + 90.000 = 590.000                (+90.000 işçilik alacağı)
  USD  98.000 + 2.000 − 5.000 = 95.000          (değişmedi: kasadan çıktı, alacağa girdi)
  EUR  20.000

Günün kontrol soruları. 1. Selim'in TL bakiyesi neden 90.000, altının değeri (549,6 × 4.000) değil? — NORMAL maden işleminde TUTAR yalnız işçiliktir; metal has satırında gram olarak yazılır (BR-HESAP-007, BR-BAKIYE-001). 2. USD satışı BİRİM TL ile girilseydi (2.000 × 40,20)? — Bakiye satırı TL +80.400 olurdu, USD bakiyesi hiç oluşmazdı (NAKİT yalnız Tutar birimini yazar, CTR-025); Perşembe'deki çevirme USD→HAS değil TL→HAS olurdu. 3. Selim'in pozisyona etkisi? — Firma HAS pozisyonu değişmedi (has hasla), TL +90.000 (alacak), USD değişmedi (kasadan çıktı, alacağa girdi).


Çarşamba — gişede 5.000 USD satış (peşin) ve 200 g hurda alımı (peşin TL)

Olay. Sabah Döviz Nuri gişeye geliyor, 5.000 USD peşin TL ile satın alıyor (hesabındaki 5.000 USD alacağına dokunmak istemiyor — "o dursun"). Öğleden sonra perakende bir müşteri 200 g karışık hurda getiriyor; Mehmet tartıyor, milyemi 0,700 ölçüyor, peşin TL ödüyor. İki işlem de peşin: bakiye defterine hiç dokunulmayacak.

Seviye 1 — Çok basit

Ali dükkânına biri gelip "5.000 dolar ver, işte paran" diyor: dolar çekmeceden çıkar, lira çekmeceye girer, deftere hiçbir şey yazılmaz — çünkü kimse kimseye borçlu kalmadı. Sonra biri kırık bilezik getirip "bunu al, paramı ver" diyor: hurda rafa girer, lira çekmeceden çıkar, yine deftere yazılmaz.

Seviye 2 — İşletme mantığı

Peşin işlem kasayı oynatır, defteri oynatmaz. Gişe işi neredeyse tamamen böyledir (döviz kurulumunda işlemlerin %83'ü peşin NAKİT). Döviz satışında devlete BSMV ayrılır (satışta vergi, alışta yok); hurda alımında ölçülen milyem kritiktir: 200 g hurda 140 g has eder, fiyat has üzerinden konuşulur. Nuri'nin hesabındaki 5.000 USD alacağı bu işlemle kapanmaz — o ayrı bir tahsilat işlemidir (bkz. B-1'deki alternatif).

Seviye 3 — ERPGOLD

(1) Gişede USD satışı — ANA MENÜ ▸ Hesap Yönetimi ▸ Seri İşlemler ▸ Gişe İşlemleri (SCR-GISEEKRANI): UNVAN Döviz Nuri · ISLEM SATIS (kırmızı; BSMV kutusu EVET) · KODU USD · MIKTAR 5.000 · BIRIM TL · FIYAT pano satış 40,20 · TUTAR 201.000 + BSMV 402 = 201.402 · Ekle · F2 - Kaydet (F1 fiş, F5 fatura). Aynı iş NAKİT ekranında tip PEŞİN ile de yapılır; kanonik: SCN-DOVIZ.

(2) Hurda alımı — Cari İşlemler ▸ perakende müşteri hesabı (ör. "PERAKENDE") ▸ HURDA (SCR-IFHURDA): ISLEM GİRİŞ (açılışta ÇIKIŞ gelir, çevrilir!) · tip PEŞİN (fiyat paneli açılır; NORMAL'de gizlidir, BR-HURDA-002) · KODU KARIŞIK HURDA · MİKTAR 200,00 (terazi düğmesi, INT-TERAZI) · MİLYEM 0,700 → HAS 140,00 · FİYAT 4.000 (has gramı; ayar CFG-PESINKURTIPI gram fiyatı da olabilir, H-028) · BİRİM TL · TUTAR 560.000 · F2. Kanonik: SCN-HURDA (NORMAL hâli) ve kitapçık §5.1 (peşin alım deseni).

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

(1) Cari.Islemler: IslemKodu=3 · IslemTuru=1 ÇIKIŞ · IslemTipi=1 PEŞİN · BakiyeId=0 · Kodu=USD · Miktar=5.000 · Birim=TL · Fiyat=40,20 · Tutar=201.402 · BSMV=402 (ayrı kolon) · UsdKur=40,20 · Maliyet=200.000 (alış 40,00) · Satis=201.000 → marj 1.000 TL satırda saklanır (kitapçık §5.2). BSMV formülü Net × ayar ÷ 1000 (BR-BSMV-001); CTR-010: BSMV'nin Tutar'a dahil mi hariç mi yazıldığı çelişkili — burada BsmvTipi=Hariç varsayıldı, kasa TL'si 402 fark edebilir. Tetikleyici: IslemTipi=1bakiye satırı yok (BR-TIP-002). Stok iki satır: USD −5.000 (IslemKodu 3 dalı) · TL +201.402 (peşin para satırı, ÇIKIŞ'ta +Tutar, BR-TIP-003). Matris: NAKİT / PEŞİN V2 296.267 satır, stok %99 · bakiye %0.

(2) Cari.Islemler: IslemKodu=2 HURDA · IslemTuru=0 GİRİŞ · IslemTipi=1 · BakiyeId=0 · Miktar=200 · AuMilyem=0,700 · Birim=TL · Fiyat=4.000 · Tutar=560.000. Bakiye yok. Stok: hurda StokTipi 1, Miktar +200, Has +140 · TL StokTipi 2, −560.000 (GİRİŞ'te −Tutar). Matris: HURDA / PEŞİN V2 1.781 satır, stok %100 · bakiye %0. GAP-07-HURDA-PESIN-FIYAT: peşin hurdada FİYAT'ın has gramı mı ölçülen gram mı olduğu kurulum ayarına bağlı; kitap has gramı kabul etti.

PEKİ NEDEN? — Nuri 5.000 USD alacaklıyken neden alacağını vermedik de sattık? Çünkü müşteri öyle istedi ve iki işlem farklı şeylerdir: alacağını teslim etmek NAKİT ÇIKIŞ NORMAL (USD/USD) olurdu — bakiye +5.000 yazılır, alacak kapanır, kasadan USD çıkar, TL girmez. Peşin satışta ise TL girer, bakiye değişmez. Ekranda tek fark tip kutusu; sonuçta fark bir defter.

UYARI — Kasada TL sırası: Mehmet önce hurdayı alsaydı kasa 500.000 − 560.000 = −60.000 TL olurdu. ERPGOLD eksi nakit stoğunu engellemez, kırmızı gösterir (Gişe KASA sekmesi). Sahada "kasa eksi" çoğunlukla peşin/normal karışıklığının belirtisidir (H-104).

ÇARŞAMBA GÜN SONU                                              örnek kurlar, güncel değil
────────────────────────────────────────────────────────────────────────────
STOK                           miktar (g)   milyem    has (g)      değişim
  HAS                             3.000,0    1,000    3.000,0
  22 AYAR BİLEZİK                   900,0    0,916      824,4
  14 AYAR                           800,0    0,585      468,0
  KARIŞIK HURDA                     500,0    0,700      350,0       +140,0 has
  TOPLAM HAS                                          4.642,4       +140,0
KASA   TL 500.000 + 201.402 − 560.000 = 141.402 · USD 93.000 (−5.000) · EUR 20.000
CARİ   (değişmedi — iki işlem de peşin)
  Kuyumcu Selim   HAS  +699,6   TL  +90.000   USD  +2.000
  Döviz Nuri      USD  −5.000
  Toptancı Yusuf  HAS  −1.400,0
POZİSYON
  HAS  4.642,4 + 699,6 − 1.400,0 = 3.942,0 g    (+140: TL verip has aldık)
  TL   141.402 + 90.000 = 231.402                 (−358.598)
  USD  93.000 + 2.000 − 5.000 = 90.000           (−5.000: USD verip TL aldık)
  EUR  20.000

Günün kontrol soruları. 1. Nuri'nin bakiye kartında Çarşamba satışı görünür mü? — İşlem listesinde evet, bakiye kartında hayır (peşin); alacağı 5.000 USD olarak durur. 2. Hurda NORMAL girilseydi ne değişirdi? — Fiyat paneli kapanır, kasa değişmez; perakende hesabı HAS −140 alacaklanır (SCN-HURDA deseni); para ayrı NAKİT ÇIKIŞ ile ödenir (B-2 Yol 2). 3. Çarşamba TL pozisyonu neden 358.598 düştü? — −560.000 hurda ödemesi + 201.402 döviz tahsilatı; karşılığında HAS +140 ve USD −5.000. Pozisyon TL değeri (örnek kurlarla) yalnız 1.402 değişti: 1.000 marj + 402 BSMV.


Perşembe — Selim'in USD borcunu altına çevirme; Yusuf'a 400 g has ödeme

Olay. Selim arıyor: "2.000 dolar borcumu altın olarak yaz, hepsi tek yerde dursun." Ayşe kabul ediyor: 2.000 USD × 40,00 = 80.000 TL; 80.000 ÷ 4.000 = 20 g has. Öğleden sonra Yusuf'a borcun 400 gramı külçeyle ödeniyor.

Seviye 1 — Çok basit

Mehmet'in defterinde "2.000 dolar" yazan borcu silip yerine "20 gram" yazıyoruz. Elden ne dolar geçti ne altın; sadece defterde birim değişti. Sonra Yusuf'a raftan 400 g külçe verip defterden 400 g düşüyoruz: raf azaldı, borç azaldı, çekmece değişmedi.

Seviye 2 — İşletme mantığı

Birinci iş sektörde "çevirme"dir: müşterinin bir birimdeki bakiyesi günün kuruyla başka birime taşınır; kur riski o anda el değiştirir (artık Selim'in borcu doları değil altını izler). Firma açısından USD pozisyonu 2.000 azalır, HAS pozisyonu 20 artar; TL değeri aynıdır. İkinci iş sıradan bir "has ile borç ödeme"dir: cari has borcu fiziksel külçeyle kapatılır.

Seviye 3 — ERPGOLD

(1) Çevirme — Cari İşlemler ▸ Kuyumcu SelimÇEVİR (SCR-IFCEVIR; stok değil birim listeler):

Alan Değer Not
ISLEM BORÇ Selim USD'de borçlu (+2.000) → "borcu çevir"; MİKTAR bakiyeden otomatik dolar (BR-BAKIYE-015)
KODU (kaynak birim) USD
MIKTAR 2.000
BIRIM (hedef) HAS kaynakla aynı olamaz (BR-KUR-009)
FIYAT 100 parite tablosu USD→HAS: 4.000 ÷ 40 = 100 USD/g, yön "Böl" (BR-HESAP-008)
TUTAR 20,00 2.000 ÷ 100
F2 EVET

Kanonik: SCN-CEVIR (HAS alacağını TL'ye çevirir; burada ters yön ve ters taraf).

UYARI — veride ÇEVİR neredeyse yok. ÇEVİR ekranı kodda ve iş kurallarında tam tanımlıdır (BR-CEVIR-001); ama canlı veride döviz kurulumunda 0, kuyumcu kurulumunda 1 satır vardır (FLOW-ISLEM-MATRISI; kitapçık §9.3 her ikisinde 0 der — küçük CTR). Müşteriler "borcu altına çevirme"yi fiilen hangi ekranla yapıyor? Kaynaklı cevap: doğrulanmadı (GAP-SEC-CEVIR-01, SEC-CEVIR). Matrise göre aynı sonucu (iki birimde zıt işaretli bakiye, stok yok) üreten ve yoğun kullanılan ekran VADELİ'dir (kuyumcuda 144.378 satır, tip −1, bakiye %100 / stok %0; birimler TL/USD/EUR) — ör. VADELİ ALIŞ KODU=USD 2.000, BİRİM=HAS, FİYAT 100: Selim'den 2.000 USD "aldık", karşılığında 20 g has "sattık" → USD −2.000, HAS +20 (SCN-VADELI deseni). VİRMAN aynı birimde hesaplar arası taşır, birim çevirmez. Bu kitap ÇEVİR ekranını anlatır; sahada hangisini kullandığınızı kurulumunuzun işlem listesinden (kısaltma CA/CB mi, VS/VA mı) görebilirsiniz.

(2) Yusuf'a 400 g ödeme — Cari İşlemler ▸ Toptancı YusufMADEN: ISLEM ÇIKIŞ · NORMAL · STOK KODU HAS · MIKTAR 400 · MILYEM 1 · FIYAT 0 · TUTAR 0 · F2.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

(1) Cari.Islemler: IslemKodu=4 ÇEVİR · IslemTuru=3 BORÇ (combo index + 2, BR-YON-006) · IslemTipi=−1 ("tip yok") · BakiyeId=USD (kaynak) · StokId=USD birimi · Miktar=2.000 · AuMilyem=0 (tetikleyici 1 sayar) · BirimId=HAS · Fiyat=100 · Tutar=20 · FiyatTipi=1 · Vade=bugün+2 · Maliyet/Satis (BR-CEVIR-002). Tetikleyici ÇEVİR/VADELİ/HİZMET dalı (BR-YON-003): tür 3 → Has = −|Has|, Tutar = +|Tutar|: - Cari.BakiyeIslem: USD −2.000 (borç kapandı) · HAS +20 (borç açıldı). İki satır, zıt işaretli — madende iki satır aynı işaretliydi (Salı). - Stok.StokHaraketleri: yok (BR-STOK-011). Kasa değişmez. CTR-TRN-CEVIR-01: WF-CEVIR yön anlatımı ("ALACAK borç kapatır") tetikleyici işaretleriyle ters; kitap kod tarafını esas alır.

(2) MADEN ÇIKIŞ NORMAL: Cari.BakiyeIslem HAS +400 (Yusuf −1.400 → −1.000); Stok.StokHaraketleri HAS −400.

BUNU KARIŞTIRMAKur ≠ Parite. Çevir ekranındaki FİYAT bir paritedir (iki birimin oranı: 100 USD = 1 g has), TL kuru değil. TL burada yalnız kafada yapılan ara hesaptır; kayıtta TL geçmez.

PERŞEMBE GÜN SONU                                              örnek kurlar, güncel değil
────────────────────────────────────────────────────────────────────────────
STOK                           miktar (g)   milyem    has (g)      değişim
  HAS                             2.600,0    1,000    2.600,0       −400,0
  22 AYAR BİLEZİK                   900,0    0,916      824,4
  14 AYAR                           800,0    0,585      468,0
  KARIŞIK HURDA                     500,0    0,700      350,0
  TOPLAM HAS                                          4.242,4       −400,0
KASA   TL 141.402 · USD 93.000 · EUR 20.000   (değişmedi — çevir ve cari ödeme kasaya dokunmaz)
CARİ
  Kuyumcu Selim   HAS  +719,6   TL  +90.000   USD  0        (USD +2.000 → HAS +20)
  Döviz Nuri      USD  −5.000
  Toptancı Yusuf  HAS  −1.000,0                              (+400 ödendi)
POZİSYON
  HAS  4.242,4 + 719,6 − 1.000,0 = 3.962,0 g    (+20: Selim'in borcu altına döndü)
  TL   231.402
  USD  93.000 + 0 − 5.000 = 88.000               (−2.000: USD alacağı kapandı)
  EUR  20.000

Günün kontrol soruları. 1. Çevirde FİYAT 100 yerine yanlışlıkla 0,01 (yön Çarp) girilseydi? — TUTAR 20 yine 20 çıkar; parite yönü (Çarp/Böl) Sistem.Pariteler tanımına bağlıdır (BR-HESAP-008) — yön yanlışsa TUTAR 200.000 g olur; F2'den önce TUTAR'a bak. 2. Yusuf'a 400 g yerine 400 g karşılığı TL ödenseydi? — NAKİT ÇIKIŞ NORMAL, KODU TL 1.600.000, BİRİM HAS, FİYAT 4.000 → HAS +400 yazılır, kasa TL −1.600.000; kasada o kadar TL yok — pratikte has hasla ödenir. 3. İki işlem de kasaya dokunmadı; hangisi stok defterine yazdı? — Yalnız Yusuf'a ödeme (MADEN ÇIKIŞ NORMAL, has −400). Çevir stok yazmaz (BR-STOK-011).


Cuma — mutabakat, gün sonu pozisyonu ve kasa sayımı

Olay. Ali Çelik haftayı kapatıyor: (1) Selim'e ekstre gönderilir, bakiye teyit edilir, işlem listesinde F12 ile mutabık işaretlenir; (2) Pozisyon ekranı okunur; (3) Mehmet kasayı fiziksel sayar ve Stok Mutabakat ekranına yazar, Ayşe Mutabakat Onay'da defterle karşılaştırıp onaylar.

Seviye 1 — Çok basit

Hafta sonu Ali defteri Mehmet'e gösterir: "Sen bana 719,6 gram ve 90.000 lira borçlusun, doğru mu?" Mehmet "doğru" der, Ali o satıra bir çentik atar: "buraya kadar anlaştık, artık geriye dönüp bu satırları değiştirmeyeceğiz". Sonra çekmecedeki parayı ve raftaki altını elle sayar, defterle karşılaştırır.

Seviye 2 — İşletme mantığı

Üç ayrı "mutabakat" vardır ve sahada hepsi aynı kelimeyle anılır: müşteri mutabakatı (cari bakiye teyidi — bir işaret ve kilit), pozisyon kontrolü (firmanın açık riskini okuma) ve kasa/stok sayımı (fiziksel sayım ile defterin karşılaştırılması). Cuma günü üçü de yapılır; hiçbiri defter kaydı değildir.

Seviye 3 — ERPGOLD

(1) Müşteri mutabakatı: Cari İşlemler ▸ Selim ▸ ekstre (SCR-FSHESAPEXTRESI, rapor RPT-5 Müşteri Mutabakat) ▸ listede haftanın son satırı (Perşembe çevir) seçili ▸ F12 ▸ "Seçmiş Olduğunuz İşlemde Mutabık Kalınacaktır. Onaylıyor musunuz?" EVET. Bundan sonra o satır ve öncesi düzeltme/iptale kilitlenir ("… Numaralı İşlemde Mutabakat Yapılmış. Önceki İşlemleri Değiştiremezsiniz."). Kanonik: SCN-MUTABAKAT.

(2) Pozisyon: Hesap Yönetimi ▸ Rapor ▸ Pozisyon (SCR-FRMPOZISYON): birim bazında Bakiye, Kur1 (alış), Pozisyon (TL karşılığı), altta DURUM toplamı.

(3) Kasa sayımı: Hesap Yönetimi ▸ Rapor ▸ Mutabakat (SCR-MUTABAKAT) — Kasa ANAKASA · Stok NAKIT: TL 141.402, USD 93.000, EUR 20.000 yazılır; Stok MADEN: HAS 2.600, 22 AYAR 900, 14 AYAR 800, HURDA 500. Ardından Mutabakat Onay (SCR-MUTABAKATONAY): StokMiktar (defter) / Miktar (sayım) / Fark; fark 0 ise Onay kutusu. Bu ekranlar cari mutabakat değil, stok sayımıdır (CTR-SEC-MUTABAKAT-01); kuyumcu kurulumunda 153.394 sayım satırı var, döviz kurulumunda hiç.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

(1) Cari.Islemler son satırda UPDATE: Mutabakat=True, MUser, MTarih; hesap LastMutabikId = Max(Id) where Mutabakat=True (BR-MUTABAKAT-003). Cari.History iz düşmez (yalnız Mutabakat değişiyorsa). Tetikleyici UPDATE'te sil-yeniden-yaz çalışır ama değerler aynı → defter toplamı değişmez (BR-STOK-006). GAP-TRN-MUTABAKAT-01: işaretin nasıl kaldırıldığı kaynaklı değil.

(2) Pozisyon.GetPozisyon(Şube)Pozisyon.Pozisyonlar; HAS satırı: BakiyeIslem toplamı (719,6 − 1.000 = −280,4) + maden stok has'ı 4.242,4 = 3.962,0; Pozisyon = 3.962 × 4.000 ÷ 1 = 15.848.000 TL. Vadeli/resmi dahil-hariç farkları: MET-NET-POZISYON (METRIC_DICTIONARY).

(3) Stok.Mutabakat satırı: KasaId, StokTipi (0 NAKIT / 1 MADEN — combo indeksi; StokHaraketleri'ndeki 2/1 kodlamasından farklı, CTR-SCR-MUTABAKAT-STOKTIPI-01), StokId, Tarih=bugün, Miktar, UserId; onayda Onay=1, OnayUserId. Cari.Islemler'e, bakiye ya da stok defterine yazmaz; fark otomatik düzeltme üretmez (bkz. B-22).

CUMA GÜN SONU — HAFTA KAPANIŞI                                 örnek kurlar, güncel değil
────────────────────────────────────────────────────────────────────────────
STOK  (sayım = defter, fark 0)      miktar (g)   milyem    has (g)
  HAS                                  2.600,0    1,000    2.600,0
  22 AYAR BİLEZİK                        900,0    0,916      824,4
  14 AYAR                                800,0    0,585      468,0
  KARIŞIK HURDA                          500,0    0,700      350,0
  TOPLAM HAS                                               4.242,4
KASA  (sayım = defter)             TL 141.402 · USD 93.000 · EUR 20.000
CARİ
  Kuyumcu Selim   HAS  +719,6   TL  +90.000   USD  0     ← Cuma mutabık (F12)
  Döviz Nuri      USD  −5.000
  Toptancı Yusuf  HAS  −1.000,0
POZİSYON (Pozisyon ekranı, bilanço birimi TL, alış kurlarıyla)
  Birim   Bakiye        Kur1      Pozisyon (TL)
  HAS      3.962,0     4.000,00   15.848.000
  TL     231.402,0         1,00      231.402
  USD     88.000,0        40,00    3.520.000
  EUR     20.000,0        46,00      920.000
  DURUM (TL dışı toplam)           20.288.000  ·  tüm birimler 20.519.402
HAFTANIN KAZANCI (TL değerinde, örnek kurlar sabit):
  Pazartesi açılış değeri 20.428.000 → Cuma 20.519.402  = +91.402
  = işçilik 90.000 + döviz marjı 1.000 (5.000 × 0,20) + BSMV 402 (devlete ayrılan; kasada durur)

Günün kontrol soruları. 1. Cuma F12'den sonra Salı'nın bileziğini düzeltmek istersem? — Kilit: "… Numaralı İşlemde Mutabakat Yapılmış. Önceki İşlemleri Değiştiremezsiniz." (ayar PIN ise PIN); BR-MUTABAKAT-003. 2. Sayımda USD 92.900 çıksaydı? — Mutabakat Onay'da Fark +100; onay farkı kapatmaz; fark için ayrı işlem (B-22) ve gerekçe. 3. Haftanın kazancı 91.402 TL nerede "görünür"? — Tek raporda değil: işçilik bakiye ekstresinde (Selim TL +90.000), döviz marjı satırdaki Maliyet/Satis farkında (kâr raporu), BSMV ayrı kolonda; pozisyon değer farkı bilanço/kur farkı fonksiyonlarında.

PEKİ NEDEN? — Hafta boyunca 1.000 g aldık, 600 g sattık, 200 g hurda aldık, 400 g ödedik; has pozisyonu yalnız +160 g değişti (3.802 → 3.962). Çünkü cari alım/satım/ödeme pozisyonu oynatmaz (has hasla), yalnız TL karşılığı has alımı (Çarşamba hurda, +140) ve USD→HAS çevirme (+20) oynatır. Pozisyon "ne kadar altınım var" değil, "kur değişirse ne kadar etkilenirim" sorusudur.


Haftanın defter izi — tek tabloda

Hafta boyunca kullanıcı yedi Cari.Islemler satırı yazdı (mutabakat ve sayım satır değildir). Tetikleyici bunlardan yedi bakiye satırı ve sekiz stok satırı türetti (artı yedi Cari.History izi). Aşağıdaki üç tablo "ne yazdım → ne türedi" ilişkisini yan yana gösterir; destek personelinin teşhis sorgusu (SYM-BAKIYE sorgu 2) tam olarak bu görünümü döndürür.

CARİ.ISLEMLER (kullanıcının yazdığı)                                    örnek kurlar, güncel değil
Id  Gün  Hesap     Kod       Tür     Tip     BakiyeId  Kodu/Stok     Miktar   Milyem  Birim  Tutar
1   Pzt  Yusuf     1 MADEN   0 GİRİŞ 0 NORM  HAS       HAS           1.000,0  1,000   —      0
2   Sal  Selim     1 MADEN   1 ÇIKIŞ 0 NORM  HAS       22 AYAR         600,0  0,916   TL     90.000
3   Sal  Selim     3 NAKİT   1 ÇIKIŞ 0 NORM  0         USD           2.000,0  1       USD    2.000
4   Çar  Nuri      3 NAKİT   1 ÇIKIŞ 1 PEŞİN 0         USD           5.000,0  1       TL     201.402 (BSMV 402)
5   Çar  PERAKENDE 2 HURDA   0 GİRİŞ 1 PEŞİN 0         KARIŞIK HURDA   200,0  0,700   TL     560.000
6   Per  Selim     4 ÇEVİR   3 BORÇ  −1      USD       USD           2.000,0  0(→1)   HAS    20
7   Per  Yusuf     1 MADEN   1 ÇIKIŞ 0 NORM  HAS       HAS             400,0  1,000   —      0

CARİ.BAKIYEISLEM (bakiye defteri — tetikleyici türetti)     + = müşteri borçlu
IslemId  Hesap   Birim  Bakiye      Kural
1        Yusuf   HAS    −1.000,00   MADEN GİRİŞ → has eksi                (BR-YON-002)
2        Selim   HAS      +549,60   MADEN ÇIKIŞ → has artı
2        Selim   TL    +90.000,00   Tutar ≠ 0 → para satırı aynı işaret   (BR-BAKIYE-001)
3        Selim   USD    +2.000,00   NAKİT: yalnız Tutar satırı, ÇIKIŞ artı (BR-YON-004)
4        —       —      (yok)       PEŞİN                                  (BR-TIP-002)
5        —       —      (yok)       PEŞİN
6        Selim   USD    −2.000,00   ÇEVİR BORÇ → has(kaynak) eksi          (BR-YON-003)
6        Selim   HAS       +20,00   ÇEVİR BORÇ → tutar(hedef) artı
7        Yusuf   HAS      +400,00   MADEN ÇIKIŞ → has artı
Toplam: Selim HAS +569,6 (+150 devir = 719,6) · TL +90.000 · USD 0 ; Yusuf HAS −600 (−400 devir = −1.000)

STOK.STOKHARAKETLERI (stok defteri — tetikleyici türetti)   ANAKASA, Bolum 0
IslemId  StokTipi  Stok            Miktar        Has       Kural
1        1 maden   HAS             +1.000,0    +1.000,0   MADEN GİRİŞ                (BR-STOK-001)
2        1 maden   22 AYAR           −600,0      −549,6   MADEN ÇIKIŞ
3        2 nakit   USD             −2.000,0           —   NAKİT tip≠4 → döviz satırı (BR-STOK-003)
4        2 nakit   USD             −5.000,0           —   NAKİT döviz satırı
4        2 nakit   TL            +201.402,0           —   PEŞİN ÇIKIŞ → +Tutar       (BR-TIP-003)
5        1 maden   KARIŞIK HURDA     +200,0      +140,0   HURDA GİRİŞ
5        2 nakit   TL            −560.000,0           —   PEŞİN GİRİŞ → −Tutar
6        —         (yok)                                  ÇEVİR stok yazmaz          (BR-STOK-011)
7        1 maden   HAS               −400,0      −400,0   MADEN ÇIKIŞ
Toplam: HAS +600 · 22 AYAR −600 · HURDA +200 · USD −7.000 · TL −358.598  → Cuma kutusuyla birebir

PEKİ NEDEN? — Neden 7 satır 15 defter satırı üretti? Çünkü her işlemin iki tarafı vardır (mal / para) ve her taraf iki kayıtta iz bırakabilir (kime ait / nerede duruyor). Satır 2 üç defter satırı üretti (has + TL bakiye, bilezik stok — para stok yok çünkü NORMAL); satır 4 ikisini üretti (USD ve TL stok — bakiye yok çünkü PEŞİN); satır 6 ikisini (iki bakiye — stok yok çünkü ÇEVİR). Kombinasyonu belirleyen dört alan: IslemKodu, IslemTuru, IslemTipi, BakiyeId — matrisin sütunları.

ÖRNEK ALTIN A.Ş. — Cumartesi (isteğe bağlı gün sonu). Kapalıçarşı Cumartesi açıktır; ÖRNEK ALTIN A.Ş. yalnız gişe çalıştırır: 12 peşin döviz işlemi, hepsi Gişe ekranından, hepsi tip 1. Ali'nin Cumartesi akşamı kontrol listesi kısa: (1) Gişe TUM LISTE (F12) ile günün fişleri, (2) Nakit Stokları ekranı kasa (eksi satır kırmızı mı?), (3) döviz gün sonu raporu (Dov.GunSonuRaporu: her stok kodu için Devir + Alacak + Borç kümülatif, BR-GUNSONU-001), (4) Pozisyon. Cari bakiyeler Cuma'daki gibi kalır — peşin gün cari defteri hiç oynatmaz. Bu, döviz bürosu kurulumunun tipik günüdür: %83 peşin NAKİT, cari işlemlerin yalnız %1,4'ü stok üretir (INST-ERPGOLDV2).


7.2 Bölüm B — Uçtan uca senaryolar

Senaryo haritası

# Senaryo Ekran Bakiye Stok Kasa Kanonik
1 Gişede USD satışı Gişe / NAKİT PEŞİN döviz −, TL + SCN-DOVIZ
2 Hurda alımı, TL ödeme HURDA (PEŞİN / NORMAL+NAKİT) —/net 0 hurda +, TL − SCN-HURDA
3 Vadeli altın satışı VADELİ HAS −, TL + SCN-VADELI
4 USD borcu → altın ÇEVİR 2 zıt SCN-CEVIR
5 Takoz giriş/çıkış TAKOZ G / Ç HAS+GUM+işç. adet ±1 SCN-TAKOZ
6 Hizmet bedeli HİZMET TL (1) SCN-HIZMET
7 Virman VİRMAN 2 hesap, ters SCN-VIRMAN
8 "Mahsup" ÇEVİR / VİRMAN / BORÇ SEC-MAHSUP
9 Şubeler arası maden transferi TRANSFER Bolum 2, 2 kasa SCN-SUBELER-ARASI-ISLEM
10 Gün sonu pozisyon Pozisyon MET-NET-POZISYON
11 Resmi altın satışı MADEN tip 11 SCN-RESMI-ISLEM
12 Peşin döviz alışı Gişe / NAKİT PEŞİN döviz +, TL − SCN-DOVIZ
13 Emanet MADEN / NAKİT tip 4 maden ✓ / nakit — TERM-EMANET
14 Düzeltme DÜZELT yeniden üretilir yeniden üretilir (tipe göre) SCN-DUZELTME
15 İptal (talep/onay) İPTAL / İptal Onay silinir silinir geri döner SCN-IPTAL
16 Vadeli kapanış MADEN + NAKİT vadeliyi sıfırlar SCN-VADELI
17 Yıl sonu devir FrmDevir IslemId −1 son durum aynı SCN-DEVIR
18 Mutabakat uyuşmazlığı SYM-BAKIYE / PB-028 SYM-BAKIYE
19 Kur girişi ve pano Kur Giriş / Pano SYM-KUR
20 Yeni müşteri + evrak Hesaplar / Dokümanlar WF-KYC-EVRAK-KAPISI-TETIK
21 Şubeden merkeze nakit TRANSFER (+ MAHSUP resmi) Bolum 2 2 kasa SEC-MAHSUP
22 Sayım farkı Mutabakat / Onay + DEVİR hesabı DEVİR hesabı düzeltme satırı SCR-MUTABAKAT
23 Parite (gişe) Gişe / NAKİT PARİTE 2 döviz SCN-PARITE
24 Çeşni çıkışı ÇEŞNİ HAS+GUM (+) — (hesaplanan) SCN-CESNI
25 Emtia EMTİA TL (1) SCN-EMTIA
26 Fatura F5 / e-belge E-FATURA değişmez değişmez değişmez SCN-FATURA
27 Seri işlem SERİ İŞLEM satır başına satır başına (tipe göre) WF-SERI-ISLEM
28 Ay sonu BTrans BTrans WF-AY-SONU-BTRANS
29 Provizyonlu şube işlemi MADEN + Provizyon listesi onayda 2 şube WF-PROVIZYON-SUBELER-ARASI

Okuma önerisi: 1–4 ve 12 gişe/tezgâh; 5, 24 rafineri/kuyumcu; 6–8, 13, 25 cari defter incelikleri; 9, 21, 29 şube; 10, 18, 19, 22 kontrol ve destek; 11, 26, 28 resmi taraf; 14–17, 27 kayıt yaşam döngüsü.

Seviye 1 — Bir senaryo nasıl okunur

Her senaryoda önce Durum'u oku ve kendine üç soru sor: mal el değiştirdi mi (stok), para el değiştirdi mi (kasa), biri birine borçlu kaldı mı (bakiye)? Cevabını yaz, sonra "Beklenen kayıt"la karşılaştır. Yanıldığın yer, ezberlediğin ama anlamadığın kuraldır; oradaki BR bağlantısını aç.

Seviye 2 — Dört alan, on altı kombinasyon

Sahadaki her işlem dört alanın kombinasyonudur: ekran (IslemKodu), yön (IslemTuru), tip (IslemTipi), mal tarafı (BakiyeId). Matris, iki kurulumda hangi kombinasyonların gerçekten kullanıldığını sayar; kullanılmayan kombinasyon (ör. kuyumcuda tip 1/11/12, döviz bürosunda TAKOZ) senaryo olarak da yoktur. Bir kombinasyonun defter etkisini ezberlemek yerine üç soruyu sor: tip 1 mi (bakiye yok, peşin para satırı var) · tip 11/12 mi (hiçbir defter yok) · kod 4/5/6 mı (iki zıt bakiye, stok yok) — geri kalan her şey "mal fiziksel gitti mi, bedel hesaba mı yazıldı" sorusuna indirgenir.

SEVİYE 4 Seviye 4 — Teknik (daha teknik göster)

Gişe ekranı (B-1, B-12, B-23) AIO.Parakende.Islem nesneleriyle çalışır: Ekle satırı bellekteki IslemListesi'ne koyar (RefNo=0), F2 FISNO 0 ise GetNewFisNo ile fiş alır ve kaydedilmemiş satırları hesap + oturum kasası + tarih ile Cari.Islemler'e PEŞİN tipte yazar; kaydedilen satırın RefNo'su işlem kimliğidir (SCR-GISEEKRANI adım 5–6). Fiyat kaynağı zinciri pano (Sistem.DovizPanosu) → yoksa sistem kuru; düşüş sessizdir (CTR-008). "İsimsiz hesaba 7.000 TL üzeri / 3.000 USD üzeri" kontrolleri gişede değil ParakendeSatis ekranındadır (GAP-SCR-GISE-LIMIT; eşik değerleri GAP-MEVZUAT). Gişede iptal, kaydedilmiş satır için İşlem İptal yetkisi ve ayara göre PIN ister (BR-IPTAL-013).

Seri işlem (B-27) iFSeriIslem ile tek fişte altı işlem türünü arka arkaya yazar; her F2 ayrı INSERT'tir, tetikleyici her satırı bağımsız işler — fiş bir gruplama, transaction değil (SCR-IFSERIISLEM).

Her senaryo ÖRNEK ALTIN A.Ş.'de geçer, haftanın Cuma kapanış durumundan başlar (aksi belirtilmedikçe) ve kanonik SCN makalesine bağlanır; oradaki tabloları kopyalamaz. "Beklenen kayıt" satırları Cari.Islemler alanlarıdır; defter etkileri FLOW-ISLEM-MATRISI ile doğrulanmıştır.

B-1 · Döviz bürosuna müşteri gelip USD satın alıyor

  • Durum. Tanımadığımız bir müşteri gişeye gelip 1.000 USD istiyor, TL ödüyor. Kasa: 141.402 TL, 93.000 USD.
  • Kullanıcı ne yapar. Mehmet, Gişe İşlemleri: UNVAN "İSİMSİZ" (ya da perakende hesabı) · SATIS · USD · 1.000 · BIRIM TL · FIYAT pano satış 40,20 · BSMV EVET → 40.200 + 80,40 = 40.280,40 · Ekle · F2 (F1 fiş). Kimlik/limit eşikleri için PB-019 — tutarlar GAP-MEVZUAT.
  • Beklenen kayıt. IslemKodu 3 · IslemTuru 1 · IslemTipi 1 PEŞİN · BakiyeId 0 · Kodu USD / Birim TL · Miktar 1.000 · Fiyat 40,20 · Tutar 40.280,40 · BSMV 80,40 · Maliyet 40.000 / Satis 40.200 (marj 200).
  • Bakiye. Yok (peşin).
  • Stok. USD −1.000; TL +40.280,40 (CTR-010 BSMV dahil/hariç).
  • Kasa. 92.000 USD · 181.682,40 TL.
  • Rapor. Nakit stok hareket, gün sonu raporu (Devir+Alacak+Borç kümülatif, BR-GUNSONU-001), ciro MET-CIRO; resmi ise Resmi İşlem Raporu.
  • Kontrol soruları. 1. Müşteri kartında satış görünür mü? — İşlem listesinde evet, bakiye kartında hayır. 2. BSMV neden var? — Döviz satışında ayrılan vergi; alışta 0 (SCN-DOVIZ). 3. Aynı müşteri 1.000 USD satsaydı? — ALIS, fiyat pano alış 40,00, BSMV yok; USD +1.000, TL −40.000. 4. Fiyat kutusuna 40,00 gelirse? — Tasarım davranışı: kur listesinden ALIŞ gelir (H-045); gişede pano yönü doğru gelir, NAKİT ekranında elle düzeltilir.

B-2 · Kuyumcu müşteriden hurda alıyor ve TL ödüyor (iki yol)

  • Durum. Perakende müşteri 50 g 14 ayar kırık zincir getiriyor (0,585 → 29,25 g has), parasını hemen istiyor.
  • Kullanıcı ne yapar. Yol 1 (Çarşamba'nın aynısı): HURDA GİRİŞ PEŞİN, tek satır, kasadan TL çıkar. Yol 2 (cari + tahsilat): HURDA GİRİŞ NORMAL (fiyat paneli yok, müşteri 29,25 g has alacaklanır) + NAKİT ÇIKIŞ NORMAL KODU TL, BİRİM HAS? — hayır: NAKİT'te bakiye yalnız Tutar biriminde yazılır (CTR-025); has alacağını TL ile kapatmak için NAKİT ÇIKIŞ NORMAL KODU TL 117.000, BİRİM HAS, FİYAT 4.000 (parite) → HAS bakiyesi +29,25 yazılır, alacak kapanır; kasadan TL −117.000. Kanonik: SCN-HURDA.
  • Beklenen kayıt. Yol 1: 2/0/1, BakiyeId 0, Miktar 50, AuMilyem 0,585, Tutar 117.000 TL. Yol 2: 2/0/0 BakiyeId HAS, Tutar 0 → BakiyeIslem HAS −29,25; sonra 3/1/0 Kodu TL Miktar 117.000 Birim HAS Tutar 29,25 → BakiyeIslem HAS +29,25, stok TL −117.000.
  • Bakiye. Yol 1 yok; Yol 2 net 0 (iki satır).
  • Stok. Her iki yolda hurda +50 g / has +29,25; TL −117.000.
  • Kasa. TL −117.000.
  • Rapor. Maden stok hareket (giren 50 g); Yol 2'de bakiye ekstresinde iki satır görünür, Yol 1'de hiç.
  • Kontrol soruları. 1. Hangi yol daha az hata üretir? — Yol 1 (tek satır); Yol 2 bakiye ekstresinde iz bırakır, mutabakatta işe yarar. 2. NORMAL'de fiyat neden girilemiyor? — NORMAL hurdada fiyat paneli gizlidir; bedel yazılmaz, has alacağı yazılır (BR-HURDA-002). 3. Milyem 0,585 yerine 0,916 girilirse ne bozulur? — Has 45,8 yazılır, müşteriye fazla ödenir, stok has'ı şişer; düzeltme DÜZELT ile (B-14).

B-3 · Toptancı müşteriye vadeli altın satıyor

  • Durum. Kuyumcu Selim 100 g has'ı bugünkü fiyattan alıyor, teslim ve ödeme 10 gün sonra; bedel TL: 100 × 4.030 = 403.000 TL.
  • Kullanıcı ne yapar. Selim ▸ VADELİ (SCR-IFVADELI): ISLEM SATIŞ · NORMAL · KODU HAS (vadeli kod, çarpan 1) · MIKTAR 100 · BIRIM TL · FIYAT 4.030 · TUTAR 403.000 · TARİH +10 gün · F2. Kanonik: SCN-VADELI (USD örneği).
  • Beklenen kayıt. 6/5/−1 · BakiyeId HAS · Miktar 100 · Tutar 403.000 · AuMilyem 1 (çarpan) · Vade +10 · HasIsc 4.030 (DÖVİZ KURU alanı SATIŞ'ta buraya, BR-VADELI-005).
  • Bakiye. İki satır zıt: HAS −100 (müşteriye 100 g borçlandık), TL +403.000 (müşteri borçlandı). Selim: HAS 619,6 · TL 493.000.
  • Stok. Yok.
  • Kasa. Değişmez.
  • Rapor. Vadeli bakiye raporu (kalan gün), vadeli hacim/kâr; pozisyon fonksiyonuna göre vadeli dahil/hariç (GAP: Bakiye.GetVadeliBakiye boş döner, BR-BAKIYE-019).
  • Kontrol soruları. 1. HAS bakiyesi neden eksiye yaklaştı? — Vadeli satış "teslim borcu" yazar; teslimde kapanır (B-16). 2. Kasa neden değişmedi? — Taahhüt kaydıdır. 3. FATURA tipi seçilseydi? — İki satır oluşur (H-061); doğrusu NORMAL + Ctrl+Y. 4. Pozisyon değişti mi? — HAS: stok aynı, alacak −100 → pozisyon 3.862; TL +403.000. Vadeli satış pozisyonu bugünden oynatır — bu bilinçli bir kur sabitlemedir.

B-4 · Müşterinin USD borcu altına çevriliyor

Perşembe'de tam işlendi (ÇEVİR BORÇ, USD→HAS, iki zıt bakiye satırı, stok yok). Burada ters yön ve alacak tarafı:

  • Durum. Selim HAS'ta 719,6 g borçlu; "100 gramını dolar borcu yap, dolar ödeyeceğim" diyor. Ayrıca Toptancı Yusuf (HAS −1.000 alacaklı) "200 gramımı USD alacağı olarak tut" diyor.
  • Kullanıcı ne yapar. Selim: ÇEVİR BORÇ, KODU HAS, MİKTAR 100, BİRİM USD, FİYAT 100 (yön Çarp) → TUTAR 10.000 USD. Yusuf: ÇEVİR ALACAK (bakiye negatif → MİKTAR otomatik 1.000 gelir, 200'e düzeltilir), KODU HAS, BİRİM USD, FİYAT 100 → 20.000 USD.
  • Beklenen kayıt. Selim 4/3/−1 BakiyeId HAS Miktar 100 Birim USD Tutar 10.000; Yusuf 4/2/−1 BakiyeId HAS Miktar 200 Birim USD Tutar 20.000.
  • Bakiye. Selim: HAS −100 (719,6 → 619,6), USD +10.000. Yusuf: HAS +200 (−1.000 → −800), USD −20.000 (alacaklı). İkisinde de iki satır zıt işaretli (BR-YON-003).
  • Stok. Yok. Kasa. Değişmez.
  • Rapor. Ekstrede iki birimde satır; hacim raporunda iki bacak çift sayılabilir (MET-ISLEM-HACMI); kur farkı raporunda HAS pozisyonu USD'ye döndüğü için değerleme değişir. Firma pozisyonu: HAS −100 +200 = +100 g net, USD +10.000 −20.000 = −10.000 net (kur riski taraf değiştirdi).
  • Kontrol soruları. 1. Selim'de ALACAK seçilseydi? — HAS +100, USD −10.000: borç artar, USD alacağı doğar — ters yön; virman gibi düzeltme değil iptal + yeniden giriş. 2. MİKTAR neden Yusuf'ta otomatik doldu, Selim'de de dolar mı? — Evet; seçilen yönle bakiyenin işareti uyuşuyorsa bakiye önerilir (BR-BAKIYE-015). 3. Kaynak ve hedef aynı birim seçilebilir mi? — Hayır; hedef listesi kaynak birimi içermez, fiyat 1'e kilitlenir (BR-KUR-009). 4. Sahada bu iş hangi ekranla yapılıyor? — Kaynaklı cevap yok: ÇEVİR verisi yok denecek kadar az; VADELİ aynı defter izini bırakır — Perşembe'deki UYARI ve SEC-CEVIR (GAP-SEC-CEVIR-01).

B-5 · Rafineri takoz kabul ediyor (raporlu / raporsuz, çeşni)

  • Durum. Atölye Kemal 800 g takoz getiriyor (ayar evi raporu: Au 0,640, Ag 0,060, rapor no 7101; çeşni 5 g). ÖRNEK ALTIN A.Ş. takozu alır, sonra Rafineri Kuzey'e çıkar. Kuyumcu kurulumu işidir; döviz kurulumunda bu akış yoktur.
  • Kullanıcı ne yapar. Giriş: Kemal ▸ TAKOZ GİRİŞİ (SCR-IFTAKOZGIRIS): takoz tipi Has takozu, ayar evi, RAPOR NO 7101, RAPORLU, MİKTAR 800, ÇEŞNİ 5, AU 640 / AG 60 (binde), AU İŞÇİLİK ‰1 HAS (hesap kartından), Altından Düş / Madeni Ver, F2 (onay sorusu çıkmaz; etiket basılır). Raporsuz gelseydi: milyemler XRF ölçümünden, kayıtta boş; bakiye TAKOZ biriminde (BirimId −1) %60 varsayımıyla değerlenir (BR-BAKIYE-008). Çıkış: Rafineri Kuzey ▸ TAKOZ ÇIKIŞI (SCR-IFTAKOZCIKIS): TAKOZ KODU listesinden seçilir, değerler karttan salt okunur, F2. Kanonik: SCN-TAKOZ, çeşni için SCN-CESNI.
  • Beklenen kayıt. Stok.Takoz 1 kart; Cari.Islemler 2 satır 0/0/6 (Kemal) ve 0/1/6 (Kuzey): Miktar 800, CesniMiktar 5 (girişte), AuMilyem 0,640, AgMilyem 0,060, HasIsc 0,001, Birim HAS, Tutar = işçilik has gramı, para değil.
  • Bakiye. Giriş — Kemal: HAS −(805 × 0,640) = −515,20, GUM −48,30, HAS işçilik +0,5152. Çıkış — Kuzey: HAS +512,00 (çeşni eklenmez), GUM +48,00, HAS işçilik −0,512.
  • Stok. Takoz nesne olarak: Adet +1 / −1 (gram 0); çeşni 5 g çeşni havuzuna (Stok.GetCesniStoklari, tablo değil hesap).
  • Kasa. Değişmez.
  • Rapor. Takoz stok listesi ("Elimizde"), bakiye ekstresi TAKOZ/HAS/GUM sütunları, takoz kâr raporu; bilanço farkı takozdan çıkabilir (PB-055).
  • Kontrol soruları. 1. Girişte 515,20 çıkışta 512 — fark? — Girişte çeşni bakiyeye eklenir (BR-BAKIYE-010). 2. Bir takoz kaç birimde bakiye yazar? — En az iki (HAS, GUM); işçilik HAS'tan düşülürse üç satır. 3. Aynı takozu iki kez çıkarsam? — "BU TAKOZ STOGUNUZDA YOK…" (GetTakozAdet = 0). 4. Matris ne der? — TAKOZ tip 6 ALTIN 13.815 satır, stok %100 · bakiye %100, BakiyeId 0 — yani takozda BakiyeId=0 olsa da bakiye yazılır.

B-6 · Hizmet bedeli cari hesaba yazılıyor

  • Durum. Atölye Kemal'e 600 g bilezik yaptırdık; işçilik faturası 30.000 TL, ödeme ay sonu.
  • Kullanıcı ne yapar. Kemal ▸ HİZMET (SCR-IFHIZMET): ISLEM GİRİŞ (= gider; ÇIKIŞ = gelir) · NORMAL · HİZMET kartı "ATÖLYE İŞÇİLİĞİ" · TUTAR 30.000 · BİRİM TL · KUR(HAS) 4.000 (bilgi: 7,5 g) · F2. Kanonik: SCN-HIZMET.
  • Beklenen kayıt. 5/0/0 · BakiyeId 0 · Miktar 0 · Fiyat = Tutar 30.000 · IscilikBirimKur 4.000 · Vade +2 · Satis hesaplanır (BR-MALIYET-003).
  • Bakiye. Tek satır TL −30.000 (Kemal alacaklı; ÇEVİR/VADELİ/HİZMET dalı, GİRİŞ → Tutar eksi). Stok/Kasa. Yok / değişmez (PEŞİN seçilirse kasa −30.000, bakiye yok).
  • Rapor. Masraf raporu (RFN-REPORTS.MASRAFRAPORU) GİDER; bilançoda hesap türü Masraf ise ayrı; hacimde satış sayılmaz.
  • Kontrol soruları. 1. Komisyon geliri nasıl girilir? — ÇIKIŞ; müşteri +Tutar borçlanır. 2. Has alanı deftere yazar mı? — Hayır, bilgi amaçlı. 3. Matris? — HİZMET/NORMAL V2 7.870, KUY 7.079 satır: stok %0, bakiye %100. 4. Kemal'e ödeme? — NAKİT ÇIKIŞ NORMAL TL 30.000 → +30.000, kapanır; kasa TL −30.000.

B-7 · İki cari hesap arasında virman

  • Durum. Toptancı Yusuf (HAS −1.000 alacaklı) "200 gramımı Atölye Kemal'in hesabına geçir, ona borcum var" diyor.
  • Kullanıcı ne yapar. Yusuf ▸ VİRMAN (SCR-IFVIRMAN): ISLEM ALACAK (karşı hesap alacaklanacak) · HESAP Atölye Kemal · KODU HAS · MİKTAR 200 · MİLYEM 1 · TUTAR 200 · F2 → program karşı hesaba SendTo ile ters satırı yazar. Kanonik: SCN-VIRMAN.
  • Beklenen kayıt. 2 satır, aynı RefNo: Yusuf 11/3 BORÇ/0 Kodu VIRMAN, StokId = Kemal Id, Tutar 200 HAS; Kemal 11/2 ALACAK/0, StokId = Yusuf Id. BakiyeId 0.
  • Bakiye. Yusuf HAS +200 → −800; Kemal HAS −200 (alacaklı). Stok/Kasa. Yok.
  • Rapor. Ekstrede iki hesapta zıt satır; hacim raporlarında virman hariç; raporda VİRMAN başlığının "GIRIS" yazması bilinen kusur (PB-054). Kuyumcuda 112.006 virman satırı (HAS 25.990) — en sık aktarım aracı.
  • Kontrol soruları. 1. "Karşı Hesaba İşlem Yapılamadı." — Tek bacak kaldı, dengesizlik; PB-032. 2. Düzeltilebilir mi? — Hayır; iptal + yeniden giriş (BR-DUZELTME-006). 3. Kasadan kasaya altın taşımak için virman mı? — Hayır, TRANSFER (B-9). 4. Başlık "VIRMAN CIKIS" kırmızı, ben ALACAK seçtim? — Başlık açık hesabın etkisini gösterir (H-064).

B-8 · Müşteri borcu mahsup ediliyor (sektördeki "mahsuplaşma" ERPGOLD'da nasıl yapılır)

  • Durum. Atölye Kemal bize 30.000 TL işçilik alacaklı (B-6), aynı zamanda B-7 sonrası 200 g has alacaklı; biz ona 40 g has satmıştık ve HAS'ta +40 borçlu olsun. "Karşılıklı hesabı sadeleştirelim" diyor.
  • Kullanıcı ne yapar — önce ne YAPMAZ. Tip listesindeki MAHSUP (12) seçilmez. Tip 12 operasyonel stok/bakiye kaydı üretmez (BR-TIP-004); canlı döviz verisindeki 1.514 MAHSUP satırının tamamı şubeler arası kasa hareketinin resmi açıklamasıdır, kuyumcuda 0 satır — CTR-SEC-MAHSUP-01: sözlük "devir, sayım farkı, açılış girişi" der, veri "şube kasa hareketi" gösterir (SEC-MAHSUP). Sektördeki mahsuplaşma üç araçla yapılır: aynı hesapta birimler arası → ÇEVİR (30.000 TL alacağı has'a: ALACAK, KODU TL, BİRİM HAS, FİYAT 4.000 → 7,5 g; Kemal HAS −7,5 daha); iki hesap arası → VİRMAN (B-7); karşılıksız düzeltme (ıskonto, kur farkı, silme) → BORÇ İŞLEMLERİ (SCR-IFBORC, IslemKodu 999, yalnız tutar satırı, BR-GENEL-004). Aynı birimde borç ve alacak zaten tek bakiyede toplanır; "mahsup" yapmaya gerek yoktur.
  • Beklenen kayıt. ÇEVİR: 4/2/−1 BakiyeId TL, Miktar 30.000, Birim HAS, Tutar 7,5. Bakiye. TL +30.000 (kapandı), HAS −7,5. Stok/Kasa. Yok. Rapor. Ekstre tek birime iner; matris: DEVİR/BORÇ (999) KUY 14.742 satır bakiye %99, stok %0.
  • Kontrol soruları. 1. Tip 12 seçip 30.000 TL girsem ne olur? — İşlem listesinde durur, bakiye ve stok değişmez; "bakiye değişmedi" çağrısı (H-104 tablosu MAHSUP'a "stok ✓" der — tetikleyiciyle çelişir, CTR-004). 2. Mahsup ile devir farkı? — Devir prosedür satırıdır (IslemId −1), mahsup tiptir. 3. 30.000 TL'yi kasadan ödesem? — NAKİT ÇIKIŞ NORMAL; bu mahsup değil tahsilat/ödemedir.

B-9 · Şubeler arası varlık hareketi (TRANSFER, Bolum=2)

  • Durum. ŞUBE-2'nin bilezik stoğu bitti; MERKEZ'den 300 g 22 ayar gönderilecek.
  • Kullanıcı ne yapar. Hesap Yönetimi ▸ Transferler (SCR-FRMTRANSFER) ▸ Giden ▸ Transfer (SCR-FRMTRANSFEREKLE): çıkan kasa ANAKASA, giren kasa ŞUBE2-KASA, maden, 22 AYAR BİLEZİK, 300 g, milyem 0,916 → kayıt. ŞUBE-2 kullanıcısı Gelen ▸ Kabul Et ▸ "…Gonderi Kabul Edilecektir. Onaylıyor musunuz?". Kanonik: SCN-SUBELER-ARASI-ISLEM.
  • Beklenen kayıt. Cari.Islemler satırı yok; Cari.Transferler: CikanKasaId 1, GirenKasaId 5, StokTipi 1, StokId, Miktar 300, Status 0 → kabulde 1 (ret 2, iptal 3).
  • Bakiye. Değişmez.
  • Stok. Yalnız kabulde (Cari.TransferUpdateStatus, BR-TRANSFER-002): Stok.StokHaraketleri Bolum 2 iki satır: ANAKASA −300, ŞUBE2-KASA +300. MERKEZ 22 ayar 600 g'a düşer.
  • Kasa. Nakit değişmez.
  • Rapor. Stok hareket raporlarında Bolum 2 satırları transfer; devirde Cari.Transferler TRUNCATE, transfer stok satırları BalanceRepair ile yok olur (TD-30).
  • Kontrol soruları. 1. "Gönderdim ama ŞUBE-2'de görünmüyor"? — Kabul edilmemiş, Status 0 (H-114, PB-037). 2. Firma toplam pozisyonu değişti mi? — Hayır; kasa değişti. 3. Virman ile fark? — Virman bakiye taşır (hesap), transfer fiziksel stok taşır (kasa). 4. Provizyon nedir? — Karşı şube hesabına yapılan cari işlemin karşı şubede onaylanması; onaylanana kadar bakiyeye düşmez (BR-TRANSFER-005).

B-10 · Gün sonu pozisyon kontrolü

  • Durum. Ayşe her akşam sorar: "Açık pozisyonum ne?" Cuma tablosu: HAS 3.962 g, USD 88.000, EUR 20.000, TL 231.402.
  • Kullanıcı ne yapar. Pozisyon ekranı (SCR-FRMPOZISYON); satıra çift tık → FrmPozisyonDetails (birim ayrıntısı: hangi hesap, hangi kasa). Tarih kutusu ile geçmiş gün (GetOldPozisyon).
  • Beklenen kayıt. Yok — salt okunur; Pozisyon.Pozisyonlar servis tarafından yeniden hesaplanır. Bakiye/Stok/Kasa. Değişmez. Rapor. MET-NET-POZISYON = stok + alacak − borç; vadeli dahil/hariç fonksiyona bağlı; belge kontrol satırları operasyonel pozisyona girmez; Reports.ResmiPozisyon belgelendirme farkını (operasyonel − belgelendirilmiş) ayrıca hesaplar; raporsuz takoz pozisyonda 0, bilançoda 0,6 (CTR-SYM-TAKOZ-01).
  • Kontrol soruları. 1. Has kuru 4.000'den 4.100'e çıksa pozisyon satırı? — Bakiye 3.962 aynı kalır, Pozisyon (TL) 16.242.000 olur: değer değişir, miktar değişmez. 2. Pozisyon değişmiyor ama işlem girdim? — Tetikleyici kapalı (H-006) ya da Sistem.Activity etkinlik kaydı gelmedi (Pozisyon.Write atlar). 3. Aynı birim iki satırda? — Birim iki kez tanımlı (H-131). 4. Neden USD pozisyonu 88.000 iken kasada 93.000 var? — Nuri'ye 5.000 borçluyuz.

B-11 · Resmi (faturalı) altın satışı

  • Durum. Kurumsal bir müşteri 100 g has'ı faturalı almak istiyor; MERKEZ şubesi resmi işaretli, RESMİ KASA seçili.
  • Kullanıcı ne yapar. MADEN: ÇIKIŞ · tip RESMİ/FATURA (11) (resmi kasada varsayılan) · HAS 100 · BİRİM TL · FİYAT 4.030 · resmi modda İŞÇİLİK alanı (KDV matrahı, FaturaIscilikTL) · F5 → kayıt + E-FATURA penceresi; istatistik kodu, VKN 10 / TCKN 11 hane; F5-Yazdır → entegratöre gider, ETTN dolar. Kanonik: SCN-RESMI-ISLEM, SCN-FATURA.
  • Beklenen kayıt. 1/1/11 KasaId RESMİ KASA · Miktar 100 · Tutar 403.000 · UsdKur TCMB (yöne göre, BR-KUR-002); fatura no/ETTN Cari.IslemDetaylari'nda.
  • Bakiye. Yok.
  • Stok. Yok (tip 11 operasyonel stok/bakiye kaydı üretmez; matris: MADEN/RESMİ V2 862 satır, stok %0, bakiye %0, detay %100).
  • Kasa. Değişmez.
  • Rapor. Resmi İşlem Raporu, Fatura Kontrol, Resmi Pozisyon; İşlem Raporu tip 11'i hariç tutar; BTrans aktarımı resmi satırları alır.
  • Kontrol soruları. 1. 100 g fiziksel olarak gitti; stok neden düşmedi? — Belge kontrol kaydı (tip 11) operasyonel stok/bakiye kaydı üretmez; belgelendirilmiş stok görünümü fatura/belge numarasıyla ayrıca hesaplanır (CTR-003/CTR-005 GAP). Kuyumcu kurulumu tip 11'i hiç kullanmaz; tüm işlemler havuzu + belgelendirilmiş işlemler havuzu karşılaştırması Yetkili Müessese (döviz bürosu) kullanımına özgüdür. 2. ETTN dolduktan sonra düzeltme? — "E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ"; önce e-belge iptali. 3. Hacim raporunu BakiyeIslem'den yazsam? — Belge kontrol kayıtlarının (tip 11) hacmi görünmez (2023'te hacmin %25'i). 4. "Resmi tip listede yok"? — Şube IsResmi / kasa ResmiKasa işaretsiz (H-024, PB-042).

B-12 · Peşin döviz alışı (BSMV yok) — B-1'in aynası

  • Durum. Müşteri 2.000 EUR bozduruyor; TL alıyor.
  • Kullanıcı ne yapar. Gişe: ALIS · EUR · 2.000 · BIRIM TL · FIYAT pano alış 46,00 · TUTAR 92.000 · BSMV kutusu görünmez (yalnız SATIS'ta) · F2. NAKİT ekranında: GİRİŞ · PEŞİN · KODU EUR · BİRİM TL · VERGİ H.
  • Beklenen kayıt. 3/0/1 · BakiyeId 0 · Miktar 2.000 · Fiyat 46,00 · Tutar 92.000 · BSMV 0 · EurKur 46,00.
  • Bakiye. Yok.
  • Stok. EUR +2.000; TL −92.000 (GİRİŞ'te −Tutar).
  • Kasa. EUR 22.000, TL 49.402.
  • Rapor. Nakit stok hareket; hacim Kodu <> Birim → gerçek ticaret; kâr: Satis − Maliyet satırda.
  • Kontrol soruları. 1. BSMV neden yok? — Alışta vergi ayrılmaz; sadece satışta (BR-BSMV-001; oran ve mevzuat GAP-MEVZUAT). 2. Kasada TL 49.402 kaldı — sorun mu? — Kasa eksiye düşmez ama düşük; ERPGOLD engellemez. 3. Müşteri EUR verip USD isteseydi? — Parite: iki satır, TL pivot, kasadan TL geçmez (SCN-PARITE).

B-13 · Emanet mal bırakma (tip 4)

  • Durum. Kuyumcu Selim 50 g 14 ayar ürünü "tamir dönüşü alacağım" diye bırakıyor; mülkiyet değişmiyor.
  • Kullanıcı ne yapar. Selim ▸ MADEN: GİRİŞ · tip EMANET · 14 AYAR · 50 g · milyem 0,585 · Tutar 0 · F2. Geri verirken ÇIKIŞ EMANET.
  • Beklenen kayıt. 1/0/4 BakiyeId HAS · Miktar 50 · AuMilyem 0,585 (has 29,25).
  • Bakiye. Matris (V2 MADEN/EMANET 363 satır, cari): bakiye %100, stok %100 — yani maden emaneti tetikleyicide NORMAL gibi dağıtılır: Selim HAS −29,25, stok 14 ayar +50 g.
  • Kasa. Değişmez. NAKİT emaneti farklıdır: IslemKodu=3 And IslemTipi<>4 → nakit stoğu yazılmaz (BR-TIP-005); bakiye tutar satırı yazılır.
  • Rapor. İşlem raporunda kısaltma E; ekstrede has satırı görünür. Bazı kurulumlarda NAKİT'te üçüncü tip sırası PARİTE olarak kaydedilir → iki satır (H-058, CTR-027).
  • Kontrol soruları. 1. Emanet alınan 50 g pozisyona girer mi? — Stok +29,25 ve alacak −29,25 → net 0; pozisyon değişmez, doğru. 2. Emanetin mülkiyeti kimde? — Selim'de; defterde "biz ona 29,25 g borçluyuz" görünür — mutabakatta açıklama zorunludur. 3. Nakit emanetinde kasa neden değişmez? — Tetikleyici EMANET'i nakit stoğundan hariç tutar; para fiziksel olarak kasada olsa da sayımda fark çıkar — GAP: nakit emanetin sayımda nasıl izlendiği kaynaklı değil.

B-14 · Yanlış girilen işlemin düzeltilmesi (DÜZELT)

  • Durum. Salı'daki bilezik satışı 600 g değil 650 g olmalıydı.
  • Kullanıcı ne yapar. Selim ▸ işlem listesi ▸ satır ▸ DÜZELT (kontroller: mutabakat kilidi — Cuma F12 bu satırı kapsıyor! → "… Mutabakat Yapılmış. Önceki İşlemleri Değiştiremezsiniz." ya da PIN; gün ≥ DuzeltmeGun → PIN; yetki IslemDuzelt) ▸ MADEN ekranı değerlerle açılır ▸ MIKTAR 650 → HAS 595,4, TUTAR 97.500 ▸ F2 ▸ gerekçe zorunlu. Kanonik: SCN-DUZELTME, PB-030.
  • Beklenen kayıt. Aynı Id üzerinde UPDATE: Miktar 650, Tutar 97.500, LastModify; Tarih, FisNo, KasaId, HesapId değişmez (BR-DUZELTME-008); kur fotoğrafı yenilenmez (BR-KUR-003). Cari.History "Düzeltme" — yeni değerlerle.
  • Bakiye. Tetikleyici o IslemId'nin satırlarını siler, yeniden yazar: HAS +595,4, TL +97.500 → Selim HAS 765,4, TL 97.500. Sonraki satırların "adım adım bakiye" sütunu kayar.
  • Stok. −650 g.
  • Kasa. Değişmez.
  • Rapor. Düzeltilmiş İşlemler Raporu; listede satır renklenir.
  • Kontrol soruları. 1. Tarihi düzeltebilir miyim? — Hayır; iptal + yeniden giriş. 2. PEŞİN→NORMAL'e düzeltsem? — Gizlenen alanlar boş kaydedilir; iptal + yeniden giriş. 3. Virman düzeltilir mi? — Hayır. 4. Mutabakat kilidini kim aşar? — PIN ayarı (MutabakatPermission); ayar "İşlem Yapılamaz" ise kimse (PB-038).

B-15 · İşlem iptali (talep / onay)

  • Durum. Mehmet gişede 1.000 USD satışını 100 USD yerine yanlış girmiş; 4 gün sonra fark edildi; SilGun 3.
  • Kullanıcı ne yapar. Satır ▸ İPTAL ▸ "İşlem Tarihinden İtibaren 4 Gün Geçmiştir. İşlemi Yöneticiniz İptal Edebilir." ▸ gerekçe ▸ silme talebi (Sistem.SilOnay) "Silme Talebiniz Alınmıştır." ▸ Ayşe İptal Onay Listesi (SCR-FRMIPTALONAYLISTESI) onaylar → IsDeleted=True. Kanonik: SCN-IPTAL, kitapçık §5.6.
  • Beklenen kayıt. Satır yerinde durur, IsDeleted='True'; fiziksel DELETE tetikleyici tarafından reddedilir ("ISLEMLERI DIREK SILEMEZSINIZ ?."). Cari.History "İptal Edildi" — eski değerlerle.
  • Bakiye. Peşin olduğu için zaten yoktu.
  • Stok. USD −1.000 ve TL +40.280,40 satırları silinir, yeniden yazılmaz; kasa 93.000 USD / 141.402 TL'ye döner.
  • Rapor. Silinmiş İşlemler Raporu; tüm raporlar IsDeleted='False' süzer ("işlem listeden kayboldu", H-109).
  • Kontrol soruları. 1. Karşı bacaklı işlemde ne sorulur? — "…Karşı İşlemde İptal Edilsin mi?"; HAYIR → virman iptal edilmez (BR-IPTAL-005). 2. E-belgeli işlem? — Önce e-fatura iptali; GİB'e iletilmişse programdan iptal yok. 3. Her 30 işlemden biri iptal — anormal mi? — Hayır, tezgâh oranı (kitapçık §5.6). 4. "Silme onayında duruyor, silinmiyor"? — Yönetici onayı bekliyor (H-098).

B-16 · Vadeli işlemin vadesinde kapatılması

  • Durum. B-3'ün vadesi geldi: Selim 403.000 TL ödüyor, 100 g has teslim alıyor.
  • Kullanıcı ne yapar. İki ayrı işlem: (a) MADEN ÇIKIŞ NORMAL HAS 100 g, işçilik 0 → HAS bakiyesi +100 (vadeli −100'ü sıfırlar), stok HAS −100; (b) NAKİT GİRİŞ NORMAL KODU TL, MİKTAR 403.000, BİRİM TL → TL bakiyesi −403.000 (vadeli +403.000'i sıfırlar), stok TL +403.000. Vadeli satır dokunulmadan kalır; bakiye kartında vadeli ve teslim satırları birbirini götürür (SCR-IFVADELI "Nedir?").
  • Beklenen kayıt. (a) 1/1/0 BakiyeId HAS Miktar 100 Tutar 0; (b) 3/0/0 Kodu TL Birim TL Fiyat 1 Tutar 403.000.
  • Bakiye. HAS +100, TL −403.000 → Selim vadeli öncesi duruma döner.
  • Stok. HAS −100 g; TL +403.000.
  • Kasa. TL 544.402.
  • Rapor. Vadeli bakiye raporunda satır kapanmış görünür mü? — GAP (GetVadeliBakiye boş döner); pozisyon: HAS stok −100, alacak +100 → net 0 değişim; TL +403.000 kasa, −403.000 alacak → 0.
  • Kontrol soruları. 1. Vadeli satırı düzeltip "kapandı" yazabilir miyim? — Hayır; kapanış ayrı işlemlerle. 2. Müşteri vadede gelmezse? — Bakiye açık kalır; vadeli bakiye raporunda kalan gün eksiye döner. 3. Kurumsal döviz vadelisinde (kitapçık §5.3) kapanış? — Aynı desen: NAKİT ÇIKIŞ USD + NAKİT GİRİŞ TL.

B-17 · Yıl sonu devri

  • Durum. 31 Aralık; yedek alındı, Aralık BTrans alındı, takoz/çeşni stoğu sıfırlandı, maden stokları tek kasaya toplandı (ŞUBE-2'deki 300 g geri transfer edildi).
  • Kullanıcı ne yapar. Yalnız yönetici + destek: ADMIN ile giriş ▸ Shift+D ▸ Tanımlamalar ▸ Sistem ▸ Devir (SCR-FRMDEVIR) ▸ BtnStart + ADMIN şifresi; arşiv DB ERPGOLDV2[yıl] "BU VERI TABANI ISLEME KAPATILMISTIR." ile kilitlenir. Kanonik: SCN-DEVIR, WF-YIL-SONU-DEVIR.
  • Beklenen kayıt. Sistem.Devir: tetikleyiciler DISABLE; Cari.BakiyeIslem'e hesap+birim başına IslemId = −1 açılış satırları (Selim HAS +719,6, TL +90.000; Nuri USD −5.000; Yusuf HAS −1.000); Stok.StokHaraketleri'ne kasa+stok son durum; Cari.Islemler, History, IslemDetaylari, Transferler TRUNCATE + yeniden INSERT; tetikleyiciler ENABLE. Transaction yok (TD-29). Bakiye/Stok. Aynı rakamlar, yeni dönemde tek satır olarak; işlem listesinde görünmez, düzeltilemez. Kasa. Aynı. Rapor. Devir sonrası bilanço / stok / pozisyon / bakiye listesi eski yılın son günüyle karşılaştırılır; kur listesi yeni yıla girilir; fatura serileri yenilenir. Tema: 79 çağrı, ortalama kapanış 214 saat (en uzun; randevu ister — PRB-DEVIR-000).
  • Kontrol soruları. 1. "Geçen yılın işlemleri kayboldu"? — Arşivde; hata değil (H-008). 2. Devirden sonra bakiye/stok oluşmuyor? — Tetikleyici açılmamış (H-006, PB-029). 3. Açılış stoğunu elle girmek gerekirse? — DEVİR hesabı + tip MAHSUP; ama tetikleyici MAHSUP'ta stok da yazmaz (CTR-004) — PB-035. 4. Devir tutmadı, BalanceRepair? — Asla; devir satırlarını yok eder (TD-30).

B-18 · Müşteri mutabakatı uyuşmazlığı (destek senaryosu, SYM-BAKIYE zinciri)

  • Durum. Selim'in muhasebecisi arıyor: "Bizde 619,6 g görünüyor, sizde 719,6." Fark 100 g. Deniz Yılmaz (destek) SYM-BAKIYE zincirini uygular.
  • Kullanıcı ne yapar. İlk sorular: hangi hesap/birim/tarih; bakiye mi stok mu; TP sütunu (NORMAL/PEŞİN/RESMİ); son 24 saatte düzeltme/iptal; kur girildi mi; iki bacaklı işlem var mı. Sonra PB-028 teşhis sırası: (1) yön ters mi (H-103), (2) tip PEŞİN/RESMİ mi (H-104, BR-TIP-004), (3) İşlem Geçmişi'nde düzeltme/iptal var mı, (4) virman/parite tek bacak mı, (5) tetikleyici açık mı (sys.triggers is_disabled), (6) devir farkı, (7) kur. Bu vakada cevap: Selim'in muhasebecisi B-3 vadeli satışının HAS −100 bacağını kendi defterine "teslim alındı" diye işlemiş, bizde vadeli satır açık — teslim (B-16) henüz olmadı. Fark meşru; ekstre karşılıklı okunur.
  • Beklenen kayıt. Yok — teşhis salt okunur SQL: IslemId bazında BakiyeSatir / StokSatir sayımı, Cari.History kim/ne zaman (SYM-BAKIYE "Salt okunur SQL teşhis sorgusu"). Bakiye/Stok/Kasa. Değişmez. Acil rakam gerekirse geçici ters kayıt Borç İşlemleri ile, gerekçe açıklamaya; neden bulununca iptal (BR-GENEL-004). Cari.BakiyeIslem elle düzenlenmez; Repair.BalanceRepair destek tarafından hiçbir koşulda çalıştırılmaz.
  • Kontrol soruları. 1. "Bakiye birden değişti, kimse işlem yapmadı"? — Başka kullanıcı düzeltmiş/iptal etmiş; History'ye bak (H-105). 2. Kasa seçimi bakiyeyi etkiler mi? — Hayır; cari bakiye kasaya bölünmez. 3. Escalate ne zaman? — PB-028 temiz, tetik açık, History boş, BakiyeIslem satır sayısı kurala uymuyorsa — hesap, tarih, fiş no, sorgu çıktısıyla. 4. Tema büyüklüğü? — 710 çağrı (%6,4); Ekim/Ocak zirveleri devirle örtüşür.

B-19 · Kur girişi ve pano

  • Durum. Pazartesi 08:20. Kur listesi dün girildi; bugün altın 4.050/4.080 oldu (örnek). Gişe panosunda fiyat görünmüyor.
  • Kullanıcı ne yapar. Ali: Hesap Yönetimi ▸ Ayarlar ▸ Kur Giriş Ekranı (SCR-FRMKURGIRISEKRANI): tarih bugün, kırmızı satırlar (kur yok) → HAS Alis 4.050 Enter Satis 4.080 Enter …; dünle aynı olanlar için Kopyala. Pano (SCR-FRMDOVIZPANOSU, Sistem.DovizPanosu) ayrı ekrandır; EDS akışı durduysa PB-061.
  • Beklenen kayıt. Sistem.Kurlar gün başına satır (BirimId, Alis, Satis, Tarih, UserId). Defter yok. Bakiye/Stok/Kasa. Değişmez — kur rakamı değil karşılığı değiştirir: Selim'in 719,6 g has borcu aynı kalır, TL karşılığı 4.050 ile hesaplanır. Rapor. Pozisyon TL değeri, bilanço, kur farkı raporu; kur girilmeyen günde program sessizce son kuru kullanır (GetLastKur).
  • Kontrol soruları. 1. Açık NAKİT ekranında fiyat hâlâ eski? — Alan kendiliğinden yenilenmez (H-046); Ctrl+F5. 2. Satış yaparken FİYAT'a alış geldi? — Tasarım (H-045); elle düzelt, gişe panodan doğru yönü alır. 3. Geçmiş tarihe işlem girdim, kur o günün değil? — Kur fotoğrafı kayıt anında satıra yazılır, düzeltmede yenilenmez (BR-KUR-001/003, H-107). 4. Tema? — 160 çağrı (%1,4): EDS 44, pano 24; SYM-KUR.

B-20 · Yeni müşteri açılışı ve zorunlu evrak (KYC/MASAK evrak kuralı)

  • Durum. Yeni toptancı müşteri "Kuyumcu Berk" ilk kez cari çalışacak; şube evrak politikası kimlik + vergi levhası ister.
  • Kullanıcı ne yapar. Hesap Yönetimi ▸ Cari Hesaplar ▸ Hesaplar ▸ YENİ KAYIT (SCR-FRMCARIHESAPEKLE): Hesap Adı (tek zorunlu) · Ana Hesap · Hesap Türü Müşteri · Vergi Dairesi/No (10 hane) ya da TC (11 hane) · Hukuki Kod · Dosya Kategorisi (hangi evraklar zorunlu) · Limit + birim · Takoz işçilikleri · Durum Aktif · Kayıt · Ctrl+F5 (yoksa listelerde çıkmaz, H-020). Sonra Dokümanlar sekmesinden evrak yüklenir (Genel.Dosyalar / DOCUMENTS DB).
  • Beklenen kayıt. Cari.Hesaplar 1 satır (57 kolon); evrak Cari.DosyaBilgileri (kategori) + Genel.Dosyalar (belge, ExpDate). Defter yok. Bakiye/Stok/Kasa. Yok. Evrak kapısı: ilk işlemde tetikleyici Cari.GetGerekliEvraklar(@SubeId,@HesapId,'True') çalıştırır; Gun NULL ya da <0 (belge yok / süresi geçmiş) satır varsa "BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR. ISLEM YAPAMAZSINIZ." + eksik listesi, ROLLBACK (WF-KYC-EVRAK-KAPISI-TETIK). DOCUMENTS veritabanı sunucuda yoksa hiçbir hesaba işlem yazılamaz (sessiz). Rapor. Evrak Kontrol Raporu (Reports.EvrakKontrolRaporu). MASAK yükümlülüğünün kapsamı ve limitleri GAP-MEVZUAT; AifaUyum KYC şeması ayrı üründür (GENERATED_PROPOSAL/KYC_VARIANT, ERP tetiği onu okumaz).
  • Kontrol soruları. 1. Hesabı açtım, listede yok? — Ctrl+F5, her bilgisayarda (PB-039); tema 686 çağrı, SYM-TANIMLAMA. 2. Aynı vergi numarasıyla ikinci hesap? — Engellenir (BR-KASA-008). 3. Evrak eksik ama acil işlem? — Dosya kategorisini geçici boşaltmak kapıyı kaldırır — politika kararıdır, kayıt altına alınır; PB-044. 4. Evrakın süresi 3 gün sonra doluyor, işlem olur mu? — Gun ≥ 0 → olur; süre dolduğu gün engellenir.

B-21 · Şube kasasından merkeze nakit gönderme

  • Durum. ŞUBE-2 kasasında 300.000 TL birikti; MERKEZ'e gönderilecek. Fiziksel taşıma kuryeyle.
  • Kullanıcı ne yapar. ŞUBE-2: Transferler ▸ Giden ▸ Transfer: çıkan ŞUBE2-KASA, giren ANAKASA, nakit, TL, 300.000. MERKEZ: Gelen ▸ Kabul Et. Döviz bürosu pratiğinde aynı hareketin resmi karşılığı ayrıca NAKİT tip MAHSUP ile ÇIKIŞ "ŞUBE ÇIKIŞ" / GİRİŞ "MERKEZ GİRİŞ" satırlarıyla yazılır — canlı V2'deki 1.514 MAHSUP satırının tamamı budur (CTR-SEC-MAHSUP-01); bu satırlar operasyonel stok/bakiye kaydı üretmez, USD kuru TCMB'den yöne göre (BR-KUR-002).
  • Beklenen kayıt. Cari.Transferler StokTipi 0 (nakit), Miktar 300.000, Status 0→1; isteğe bağlı iki 3/x/12 satırı.
  • Bakiye. Değişmez.
  • Stok. Kabulde Bolum 2: ŞUBE2-KASA TL −300.000, ANAKASA +300.000.
  • Kasa. MERKEZ TL 441.402.
  • Rapor. Kasa durum raporu kasa bazlı; MAHSUP satırları yalnız işlem tablosundan okunan resmi raporlarda (GAP-SEC-MAHSUP-01: hangi raporlar, belgelenmemiş).
  • Kontrol soruları. 1. Virman ile yapsam? — Bakiye taşır, kasa değişmez; kasa sayımı tutmaz. 2. Kabul edilmeden sayım yaparsam? — ŞUBE-2'de fark −300.000 görünür (para gitti, defter düşmedi). 3. Devir öncesi? — Bekleyen transferler kabul edilmeli; Cari.Transferler devirde boşaltılır.

B-22 · Sayım farkı (stok mutabakatı ekranı)

  • Durum. Cuma sayımında Mehmet 14 AYAR'ı 790 g sayıyor; defter 800. Fark +10 g (defter fazla).
  • Kullanıcı ne yapar. Stok Mutabakat (SCR-MUTABAKAT) MADEN satırına 790 yazar; Ayşe Mutabakat Onay'da StokMiktar 800 / Miktar 790 / Fark 10 görür. Onay farkı kapatmaz; ekran defteri sayıma eşitlemez. Fark için ayrı işlem gerekir: DEVİR (tür Devir) hesabı ▸ MADEN ÇIKIŞ 10 g 14 AYAR NORMAL → stok −10 g, DEVİR hesabı HAS +5,85 borçlu (fark hesabı; gerekçe açıklamaya). Süreç dokümanı tip MAHSUP der — ama MAHSUP tetikleyicide stok da yazmaz (CTR-004); sayım farkını stoktan düşürmek istiyorsan NORMAL kullanmak zorundasın ve o zaman bakiye izi kalır. GAP-07-SAYIM-FARKI: sayım farkını işleme çeviren resmi akış kaynakta yok; yukarıdaki yol tetikleyici davranışından türetilmiştir.
  • Beklenen kayıt. Stok.Mutabakat (KasaId, StokTipi 1, StokId, Tarih, Miktar 790, Onay); düzeltme satırı 1/1/0 HesapId DEVİR, Miktar 10.
  • Bakiye. DEVİR hesabında +5,85 HAS (fark izi).
  • Stok. 14 AYAR 790 g.
  • Kasa. Değişmez.
  • Rapor. Mutabakat onay listesi; stok hareket raporunda DEVİR hesabına çıkış; bilançoda 5,85 g has eksilir (fire/kayıp).
  • Kontrol soruları. 1. Onay kutusunu işaretledim, stok neden 800 kaldı? — Onay yalnız Onay=1 yazar; defter değişmez. 2. Satır kırmızı, onaylayamıyorum? — Sayım girilmemiş (OnayId 0). 3. Bu ekran F12 mutabakatı mı? — Hayır; cari mutabakat işlem listesindedir (CTR-SEC-MUTABAKAT-01). 4. StokTipi neden 1 = MADEN burada, stok defterinde 1 = maden ama 2 = nakit? — Farklı kodlama (0 NAKIT/1 MADEN combo indeksi); JOIN yazan dönüştürür.

B-23 · Parite: müşteri EUR verip USD alıyor (gişe)

  • Durum. Gişeye gelen müşteri 1.000 EUR veriyor, USD istiyor. Kasa: EUR 20.000, USD 93.000. Örnek çapraz: EUR alış 46,00 ÷ USD satış 40,20 = 1,1443.
  • Kullanıcı ne yapar. Gişe: ALIS · KODU EUR · MIKTAR 1.000 · BIRIM USD (TL dışı seçilince «EUR» KURU kutusu açılır, işlem pariteye döner) · FIYAT 1,1443 · TUTAR 1.144,30 USD · Ekle · F2. NAKİT ekranında aynı iş tip PARİTE ile; PARİTE (X) ekranı bağ kurmaz (SCR-IFDOVIZ). Kanonik: SCN-PARITE, kitapçık §5.4.
  • Beklenen kayıt. İki satır, aynı FisNo: (1) 3/0 GİRİŞ/0 Kodu EUR 1.000, Birim TL, Tutar 46.000 (TL karşılığı), VaryantId −1; (2) 3/1 ÇIKIŞ/0 Kodu USD 1.144,30, Birim TL, Tutar 46.000, VaryantId = 1. satırın Id'si; açıklama "Parite : EUR/USD 1.000 X 1,1443 = 1.144,30". BSMV yalnız SATIS bacağına.
  • Bakiye. Peşin gişe satırlarında yok. (NAKİT PARİTE tipinde: TL −46.000 / +46.000, net 0; EUR/USD bakiye satırı yok — CTR-025/CTR-TRN-PARITE-02.)
  • Stok. EUR +1.000, USD −1.144,30; TL satırı yok — "kasadan TL geçmez", TL yalnız pivot.
  • Kasa. EUR 21.000, USD 91.855,70, TL değişmez.
  • Rapor. Tek işlem saymak için VaryantId = −1 satırları; hacim için ikisi. Kâr: her bacağın Maliyet/Satis farkı. Kitapçık §5.4 satırları IslemTipi −2, BakiyeId dolu, yön 4/5 taşır — bu vadeli arbitraj yoludur, gişe yolu değil (CTR-027; tetikleyicideki tip 10 PARİTE dalını hangi ekranın ürettiği doğrulanmadı — GAP-TRN-PARITE-01).
  • Kontrol soruları. 1. Kasadan TL çıktı mı? — Hayır; iki bacağın TL tutarı eşit. 2. Tek satır kaldıysa? — İkinci bacak doğrulamadan geçemedi; iptal + yeniden giriş (PB-048). 3. "…Nakit Stokgu Bulunamadı!"? — Karşı dövizin nakit stok kartı tanımsız (H-056). 4. Firma pozisyonu? — EUR +1.000, USD −1.144,30; TL değeri (örnek kur) 46.000 − 46.000,9 ≈ 0 — parite ticareti pozisyonu birimler arasında kaydırır.

B-24 · Çeşni çıkışı: biriken numune gramını ayar evine yazmak

  • Durum. B-5 takoz girişindeki 5 g çeşni, ay boyunca girilen diğer takozlarla birlikte 60 g'a ulaştı (ort. Au 0,650 / Ag 0,050). Ay sonunda ayar evine çıkılacak. Kuyumcu kurulumu: 13 ayda 120 çeşni çıkışı, 9.444 g (kitapçık §9.5).
  • Kullanıcı ne yapar. Ayar evi hesabı ▸ ÇEŞNİ ÇIKIŞI (SCR-IFCESNI): ekran toplam çeşni gramı ve ortalama milyemlerle açılır (0/0/0 açılırsa H-075: elle girilir) · MİKTAR 60 · MILYEM(AU) 0,650 · MILYEM(AG) 0,050 · AÇIKLAMA takoz no'ları · fareyle F2 (klavye F2 çalışmaz). Kanonik: SCN-CESNI.
  • Beklenen kayıt. 14/1/0 — IslemKodu 14 kodda var, DB kod tablosunda yok (CTR-039) · BakiyeId 0 · Miktar 60 · AuMilyem 0,650 · AgMilyem 0,050 · Tutar boş · Vade +2.
  • Bakiye. İki satır, yön kontrolü yok, doğrudan pozitif (BR-BAKIYE-004): HAS +39,00, GUM +3,00 — ayar evi borçlanır (numune ona gitti). Matris: ÇEŞNİ/NORMAL KUY 120 satır, stok %0, bakiye %100.
  • Stok. Stok.StokHaraketleri satırı yok. Çeşni stoğu tablo değil hesaptır: takoz CesniMiktar toplamı − IslemKodu 14 Miktar toplamı + devir fotoğrafı (FN-STOK.GETCESNISTOKLARI) → 60 − 60 = 0 g.
  • Kasa. Değişmez.
  • Rapor. Çeşni stokları listesi; bakiye ekstresinde ayar evi HAS/GUM borç; tuzak: CariIslemKodu tablosuna INNER JOIN yapan rapor bu satırı düşürür (TD-44); bilançoda HAS/GUM değeriyle düşer.
  • Kontrol soruları. 1. İptal edilirse çeşni stoğu? — IsDeleted süzgeciyle gram havuza döner. 2. Devir öncesi neden sıfırlanır? — Devir yalnız takoz/çeşni fotoğrafını taşır; sıfır değilse yeni yılda tutarsızlık (WF-YIL-SONU-DEVIR). 3. Ekranda 60,50 yazıp kayıtta 60,00 görürsem? — Bilinen ondalık kaybı H-071.

B-25 · Emtia satışı: has'sız ikincil mal

  • Durum. Zeynep, Kuyumcu Selim'e 20 adet "GÜMÜŞ PUL 10g" (kart fiyatı 150 TL, birim TL) veriyor, hesabına.
  • Kullanıcı ne yapar. Selim ▸ EMTİA (SCR-IFEMTIA): ÇIKIŞ · NORMAL · KODU GÜMÜŞ PUL 10g (fiyat/birim karttan) · MIKTAR 20 · TUTAR 3.000 · F2. Kanonik: SCN-EMTIA.
  • Beklenen kayıt. 13/1/0 · BakiyeId 0 · Miktar 20 · AuMilyem 0 · Fiyat 150 · Tutar 3.000 TL (+ Cari.IslemEmtiaDetayi satırı, anlamı GAP).
  • Bakiye. Tek tutar satırı TL +3.000 ("stok işlemi" dalı, ÇIKIŞ → artı). Selim TL 93.000.
  • Stok. Stok.StokHaraketleri satırı yok; tetikleyicide IslemKodu 13 dalı yoktur; emtia adet takibi kaynaklı değil (GAP-TRN-EMTIA-01).
  • Kasa. Değişmez (PEŞİN'de +3.000, bakiye yok; birim nakit olmalı).
  • Rapor. Ciro MET-CIRO'ya girer; has/gram raporlarına (IslemKodu IN (0,1,2)) girmez; işlem raporunda has sütunu 0.
  • Kontrol soruları. 1. Emtia has bakiyesi üretir mi? — Hayır; milyem 0, yalnız tutar. 2. Doğrulama "Hayır" dense? — Kayıt yine yapılır; Validate sonucu kontrol edilmiyor (BR-GENEL-003). 3. GENEL ekranıyla farkı? — GENEL (10) kartında alış/satış fiyatı ayrıdır; ikisi de stok defteri yazmaz (SCR-IFGENEL).

B-26 · Peşin satışa fatura kesmek (F5) ve e-belge

  • Durum. B-1'deki 1.000 USD peşin satışına müşteri fatura istiyor. Şube resmi, entegratör tanımlı, RESMİ KASA seçili; müşteri TC 11 hane.
  • Kullanıcı ne yapar. NAKİT/gişede F2 yerine F5 (kayıt + E-FATURA penceresi); sonradan listede satır seçip Ctrl+Y. E-FATURA: UNVAN, kimlik tipi/no, ISTATISTIK NO, ödeme tipi; gerekirse Yasaklı Sorgulama (MASAK, BR-FATURA-006); F5 - YazdırInvoiceValidate → entegratör → DOC.NO + ETTN. Bağlantı yoksa Kaydet (taslak). Kanonik: SCN-FATURA.
  • Beklenen kayıt. Cari.Islemler satırı değişmez (3/1/1); Cari.IslemDetaylari: SiraNo, FaturaSeri/FaturaNo (seri kullanıcı ayarından), FaturaUnvan/VergiNo/…, ETTN, DocNo, IsSended; Cari.RsAktar şube ayarına göre.
  • Bakiye. Değişmez (peşin → zaten yok). Stok. Değişmez. ETTN dolduktan sonra satır düzeltilemez ("E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ", BR-DUZELTME-010).
  • Kasa. Değişmez — kasa kayıt anında değişmişti.
  • Rapor. Fatura Kontrol Raporu, E-fatura listesi (taslak/gönderilmiş, toplu gönder/iptal), ay sonu BTrans (B-28), yılbaşı seri güncellemesi. Tema: fatura/e-fatura 1.286 çağrı (%11,5).
  • Kontrol soruları. 1. "Aynı Para Cinsi ile Fatura kesemezsiniz."? — KODU = BİRİM (kasa hareketi); fatura gerçek alım-satıma kesilir (BR-FATURA-002). 2. "Lütfen Istatistik Kodunu Giriniz."? — Hesap türü/hukuki kod eşleşmesi eksik (PB-021). 3. Fatura basmak tip 11 midir? — Hayır; üç ayrı "fatura" var: F5 belge, tip 11 RESMİ işlem, IslemKodu 12 FATURA satırı (CTR-001/040). 4. GİB'e iletilmiş faturayı yanlış müşteriye kestim? — Programdan iptal yok; entegratör/GİB süreci (PB-020, WF-FATURA-YANLIS-MUSTERI-DUZELT).

B-27 · Seri işlem: tek fişte çok satır

  • Durum. Kuyumcu Selim haftalık siparişini alıyor: 200 g 22 ayar, 100 g 14 ayar, 50 g hurda iadesi ve 5.000 TL nakit ödeme — hepsi tek fişte.
  • Kullanıcı ne yapar. Selim ▸ SERİ İŞLEM (SCR-IFSERIISLEM): tek dar giriş satırı; yalnız STOK KODU seçilir, program ürün tipine göre işlem kodunu, TÜR/TP seçeneklerini ve görünen sütunları ayarlar; her F2 bir satır ekler, satırlar aynı fiş numarası altında birikir (WF-SERI-ISLEM). Sırayla: 22 AYAR ÇIKIŞ NORMAL 200 g (işçilik 150) · 14 AYAR ÇIKIŞ NORMAL 100 g (işçilik 100) · HURDA GİRİŞ NORMAL 50 g 0,700 · TL GİRİŞ NORMAL 5.000.
  • Beklenen kayıt. Aynı FisNo altında dört Cari.Islemler satırı: 1/1/0 (Miktar 200, AuMilyem 0,916, Tutar 30.000), 1/1/0 (100, 0,585, Tutar 10.000), 2/0/0 (50, 0,700, Tutar 0), 3/0/0 (Kodu TL, Tutar 5.000). Her satır tetikleyiciden ayrı geçer.
  • Bakiye. HAS +183,2 +58,5 −35 = +206,7; TL +30.000 +10.000 −5.000 = +35.000. Selim: HAS 926,3 · TL 125.000.
  • Stok. 22 ayar −200 g, 14 ayar −100 g, hurda +50 g; TL +5.000 (NAKİT NORMAL GİRİŞ stok satırı, tetikleyici metni; CTR-TRN-NAKIT-01).
  • Kasa. TL 146.402.
  • Rapor. Fiş bazlı fiş basımı; fiş bazlı toplu iptal (WF-ISLEM-IPTAL-FISNO, yönetici şifresi H-018); işlem raporunda dört kısaltma (MCN, MCN, HGN, NGN).
  • Kontrol soruları. 1. Fişi tek satır olarak iptal edebilir miyim? — Fiş no ile toplu iptal; her satır ayrı IsDeleted olur. 2. Çevir/vadeli de seri ekranda mı? — Evet, altı işlem türü: maden, hurda, nakit, vadeli, çevir, hizmet. 3. Bir satır yanlışsa? — O satır DÜZELT; diğerleri etkilenmez (her IslemId ayrı sil-yeniden-yaz).

B-28 · Ay sonu: BTrans ile mali müşavire aktarım

  • Durum. Ay bitti; Ali Çelik belgelendirilmiş işlemleri (tip 11 belge kontrol satırları ve belge numaralı satırlar) mali müşavire XML olarak verecek. Tema: BTrans 1.035 çağrı, %9,3, ortalama kapanış 86,6 saat — çoğu rutin "aktarımı destek yapsın" talebi (SYM-BTRANS).
  • Kullanıcı ne yapar. Muhasebe ▸ BTrans Kontrol Raporu (Durum sütunu: NORMAL / "HATALI-TL İşleme Fatura Kesilmiş" / "HATALI-Vergi Numarası Eksik" / "HATALI-Miktar ile Tutar Aynı") ▸ hatalılar Cari İşlemler'de düzeltilir ▸ Hesap Yönetimi ▸ BTrans ▸ dönem/şube ▸ XML Oluştur ("AA-YYYY") ▸ BTrans Doğrulama ▸ Şema Kontrol ("Vergi Numarası 10 Karaketer Olmalıdır") ▸ zip ▸ mali müşavir (WF-AY-SONU-BTRANS, PB-022). Aralık aktarımı devirden önce.
  • Beklenen kayıt. Defter yok; XML Cari.Islemler + Cari.IslemDetaylari + Cari.Hesaplar alanlarından üretilir (SP-MUHASEBE.SPBTRANSDOVIZ); arşiv Muhasebe.MuhasebeArsiv olabilir (GAP: XML üretim kodu kaynaklarda görünmüyor).
  • Bakiye / Stok / Kasa. Değişmez.
  • Rapor. Kontrol raporundaki "hatalı" satırlar ay içinde birikir; hesap kartında adres/il/ilçe boşsa XML alanı boş gider; şube RS aktar ayarı eksikse belgelendirilmiş işlemler aktarıma girmez (BR-FATURA-007).
  • Kontrol soruları. 1. Belgesi düzenlenmemiş peşin satışlar aktarıma girer mi? — Hayır; aktarım resmi/faturalı satırlardır (operasyonel havuz ile belgelendirilmiş işlem havuzu ayrı hesaplanır — kitapçık §3.5). 2. "Vergi Numarası 10 Karaketer" hatası nerede düzeltilir? — Hesap kartında (VKN 10 / TCKN 11, BR-FATURA-001); sonra XML yeniden. 3. Neden kapanış süresi uzun? — Randevu/rutin talep; arıza değil (H-164).

B-29 · Şubeler arası provizyonlu cari işlem

  • Durum. MERKEZ, ŞUBE-2'nin transfer hesabına 100 g has "gönderiyor" ama fiziksel transfer değil, cari kayıt olarak; ayar Provizyon açık.
  • Kullanıcı ne yapar. MERKEZ: ŞUBE-2 transfer hesabı ▸ MADEN ▸ tür ÇIKIŞ'a kilitli (BR-TIP-012; takoz girişi yapılamaz, H-069) ▸ HAS 100 ▸ F2 → Provizyon.Send. ŞUBE-2: Provizyon listesi (SCR-PROVIZYONGRID) BEKLİYOR satırını onaylar/reddeder (WF-PROVIZYON-SUBELER-ARASI).
  • Beklenen kayıt. MERKEZ'de 1/1/0 satırı + Cari.Provizyon (HesapId, ProvizyonHesapId, IslemId, durum); onayda ŞUBE-2'de karşı Cari.Islemler satırı yazılır.
  • Bakiye. Onaya kadar ŞUBE-2'de işlem yok; onay sonrası iki şubede kayıt ve bakiye. Alıcı şube düzeltemez: "…Önce Gönderen Şube Düzeltmelidir."
  • Stok. MERKEZ ANAKASA has −100 (MADEN ÇIKIŞ NORMAL stok yazar); ŞUBE-2'de onaydan sonra +100.
  • Kasa. Nakit değişmez.
  • Rapor. Bekleyen provizyon bakiyeye düşmez (Provizyon ayarı, BR-TRANSFER-005); "Provizyon İşlemi Kayıt Edilemedi. Tekrar Denemek İstiyor musunuz?" döngüsü bağlantı kopmasıdır.
  • Kontrol soruları. 1. Transfer (B-9) ile farkı? — Transfer Cari.Transferler + kabulde Bolum 2 stok; provizyon karşı şubede gerçek Cari.Islemler satırı üretir. 2. Neden GİRİŞ yapılamıyor? — Şube hesabında tür kilitlidir; mal şubeye "gider", şubeden "gelen" karşı tarafın işlemidir. 3. Onaylanmadan ay sonu geldi? — İki şube defteri uyuşmaz; provizyon listesi ay sonu kontrol maddesidir (GAP: süreç dokümanında yer alıp almadığı doğrulanmadı).

7.3 Bölüm C — Sık yapılan hatalar (dört rol)

Kaynak: 13.681 ticket, 22 tema (Problem temaları dizini); belirti zincirleri 12_Support/SymptomChains/; bilinen sorunlar 12_Support/KnownIssues/; playbook'lar 12_Support/Playbooks/. Paylar ERPGOLDV2 (döviz) çağrı tabanına göredir; kişi ve müşteri adı yoktur.

Seviye 1 — Çok basit

Ali'nin dükkânında hatalar üç türlüdür: yanlış kutuya yazmak (rafa yazılacakken deftere), yanlış yön (aldım/verdim ters), hiç yazmamak (kâğıt bitti, kalem yok). ERPGOLD'daki çağrıların büyük kısmı aynı üç sınıftır: tip karışıklığı (peşin/normal/resmi), yön karışıklığı (giriş/çıkış) ve altyapı (bağlantı, yazıcı, tanım listesi yenilenmemiş). Aşağıdaki on başlık bu üç sınıfı, çağrı payına göre sıralar.

Seviye 2 — İşletme mantığı

# Konu Tema Çağrı Pay Sınıf
9 Bağlantı / giriş PRB-BAGLANTI 2.244 %20,1 altyapı
3 Resmi / fatura / mahsup PRB-FATURA 1.286 %11,5 tip
10 Yazıcı / fiş PRB-YAZICI 1.223 %11,0 altyapı
10 BTrans / mali müşavir PRB-BTRANS 1.035 %9,3 rutin
1, 2, 5, 7 Bakiye / stok tutmuyor / düzeltme PRB-BAKIYE 710 %6,4 yön + tip
4 Tanımlama PRB-TANIMLAMA 686 %6,1 altyapı
2 Eğitim / soru-cevap PRB-EGITIM 669 %6,0 bilgi
6 Kur / pano / EDS PRB-KUR 160 %1,4 altyapı
8 Devir / yıl sonu PRB-DEVIR 79 %0,7 rutin
7 Pozisyon / hacim PRB-POZISYON 68 %0,6 türetilmiş
5 Vadeli / parite PRB-VADELI 47 %0,4 iki bacak

Okunuşu: işlem ekranlarının kendisi olgundur — "Maden/hurda/milyem" teması yalnız 24 çağrıdır (%0,2). Çağrılar çevrede birikir: bağlantı, belge, yazıcı, tanım. Bu bölümün senaryolarında yapılan hatalar (yön, tip, iki bacak) toplamda %6–7'dir ama en pahalıdır: yanlış bakiye müşteriyle güven sorunudur, yanlış tip devirde ortaya çıkar.

BUNU KARIŞTIRMA — bu bölümde geçen çiftlerin özeti:

Çift Fark (bir cümle)
Stok ≠ Bakiye Stok "nerede duruyor" (kasa bazlı), bakiye "kime ait" (hesap bazlı); Pazartesi ikisi de değişti, Perşembe çevirde yalnız bakiye.
Kasa ≠ Cari Nuri'nin 5.000 USD alacağı kasada durmaz; kasa fiziksel, cari bir sözdür.
İşlem ≠ Stok hareketi 7 işlem satırı, 8 stok + 7 bakiye satırı; tetikleyici dağıtır.
Has ≠ Gram 600 g bilezik = 549,6 g has; bakiye has yazar, terazi gram gösterir.
Ayar ≠ Milyem 22 ayar = 0,916 milyem; ERPGOLD milyemi ondalık saklar, ayarı saklamaz.
Kur ≠ Parite Kur TL karşılığı (USD 40,00), parite iki birimin oranı (100 USD/g has); çevir parite kullanır.
Alış ≠ Giriş "Alış" ticari yön, "GİRİŞ" ekran türü; gişede ALIS = NAKİT GİRİŞ PEŞİN; vadelide ALIŞ (4) ayrı tür kodudur.
Satış ≠ Çıkış Aynı şekilde; MADEN ÇIKIŞ NORMAL bir satıştır ama para girmez.
Peşin ≠ BakiyeId 0 NAKİT'te BakiyeId hep 0'dır ve bakiye yazar; peşinlik IslemTipi=1'dir.
Mutabakat (F12) ≠ Mutabakat ekranı F12 cari bakiye teyidi ve kilit; Mutabakat/MutabakatOnay stok sayımı.
Mahsup (tip 12) ≠ Mahsuplaşma Tip 12 defter üretmeyen resmi kayıt; mahsuplaşma çevir/virman/borç ile.
Transfer ≠ Virman ≠ Provizyon Transfer stok taşır (kasa), virman bakiye taşır (hesap), provizyon karşı şubede onaylı cari işlem üretir.
Düzeltme ≠ İptal Düzeltme aynı Id'de UPDATE (History'de yeni hâl); iptal IsDeleted (History'de eski hâl).
Fatura (F5) ≠ RESMİ (tip 11) ≠ FATURA (kod 12) Belge basmak / defter dışı işlem tipi / Faturalar modülü satırı.

Seviye 3 — ERPGOLD

Aşağıdaki on başlığın her biri dört rolle yazıldı. Yeni çalışan satırı ekranda ne yapacağını, Müşteri satırı destek çağırmadan önce neye bakacağını, Destek personeli satırı teşhis sırasını ve playbook'u, Geliştirici satırı tetikleyici/tablo düzeyindeki nedeni söyler. Her başlığın çağrı sayısı tema dizininden alınmıştır; alt kategori sayıları PRB makalelerindendir.

SIK YAPILAN HATALAR — 1. Yön ters seçildi (GİRİŞ/ÇIKIŞ) Tema: Bakiye / stok tutmuyor — 710 çağrı, %6,4; alt kategori "Bakiye/Stok Girişi" 283, "İşlem Düzeltme" 190 (SYM-BAKIYE neden 1, H-103). Yeni çalışan: MADEN/HURDA ekranı ÇIKIŞ ile açılır; müşteri mal getirdiğinde yönü GİRİŞ'e çevirmezsen müşteri borçlu görünür. Kural: GİRİŞ = mal içeri → müşteri alacaklanır (yeşil); ÇIKIŞ = dışarı → borçlanır (kırmızı). Başlığın rengine bak. Müşteri: "Bakiyem ters çıkıyor" çağrısı açmadan önce işlem listesinde satırın yönüne ve TP sütununa bak; düzeltme DÜZELT ile yapılır, yeni ters işlem girerek değil. Destek personeli: PB-028 sırası; ilk soru "hangi hesap, hangi birim, beklenen/görünen". Yön hatası düzeltilir, karşı işlem girilmez; BakiyeIslem elle düzenlenmez. Geliştirici: İşaret tetikleyicide üç dalda üç farklı kuraldır — MADEN/HURDA/MODEL (BR-YON-002), ÇEVİR/VADELİ/HİZMET (BR-YON-003), diğerleri (BR-YON-004); ekran yön etiketi (ALACAK/BORÇ, ALIŞ/SATIŞ) combo index + 2 / + 4 ile tür koduna çevrilir. Rapor yazarken Bakiye × −1 alışkanlığını unutma.

SIK YAPILAN HATALAR — 2. Peşin ile normal karıştı (kasa ↔ bakiye) Tema: aynı 710 çağrı (H-104) + Eğitim/soru-cevap 669 çağrı, %6,0 (SYM-EGITIM neden 2: "peşin bakiyeye yansımadı"). Yeni çalışan: PEŞİN = para o an el değiştirdi → kasa oynar, bakiye oynamaz. NORMAL = hesaba yazıldı → bakiye oynar; kuyumcuda stok da oynar. "Müşteri ödedi ama bakiyesi değişmedi" = PEŞİN girilmiş; "bakiye değişti ama kasaya para girmedi" = NORMAL girilmiş. Müşteri: Tip varsayılanı kullanıcı ayarındadır (DFIslemTipi); gişe her zaman PEŞİN yazar. Peşin işlem ekstrede görünmez — bu hata değildir. Destek personeli: "Peşin ise stok, cari ise bakiye" yanlış sadeleştirmedir; döviz kurulumunda cari işlemlerin %1,4'ü, kuyumcuda %60,3'ü stok üretir (BR-DEFTER-URETIMI). Kurulumu sormadan "stok değişmeli/değişmemeli" deme. Geliştirici: BakiyeId=0 peşin demek değildir (NAKİT'te daima 0, CTR-SEC-BAKIYE-01); bakiye üretimini IslemTipi<>1 ve Tutar<>0 / BakiyeId>0 and Miktar<>0 belirler. Peşin→NORMAL düzeltmesi gizlenen alanları boş yazar; ekranda engelle.

SIK YAPILAN HATALAR — 3. Resmi / mahsup tipin deftere yazmadığını bilmemek Tema: Fatura / e-fatura / resmi işlem — 1.286 çağrı, %11,5 (ikinci büyük tema); alt kategori "Resmi İşlemler" 587 (SYM-FATURA neden 1 ve 11). Yeni çalışan: Tip RESMİ/FATURA (11) ve MAHSUP (12) satırlar bakiye ve stok defterine hiç yazılmaz; yalnız işlem listesinde durur. Resmi satış yaptıysan stok düşmez — beklenen davranıştır. Resmi tip listede yoksa şube/kasa "resmi" işaretli değildir (H-024). Müşteri: Resmi hacminiz iç raporlarda görünmez; Resmi İşlem Raporu / Resmi Pozisyon ayrıdır. E-belge limitleri güncel mevzuattan takip edilir (program eşiği ayardır — GAP-MEVZUAT). Destek personeli: "Resmi işlem bakiyeyi değiştirmedi" çağrısı arıza değildir. A-Z el kitabı 1.8 tablosu "RESMİ → bakiye ✓ stok ✓" ve H-104 "MAHSUP → stok ✓" der — ikisi de tetikleyiciyle çelişir (CTR-003, CTR-004); kod tarafı esas. Geliştirici: Hacim raporunu Stok.StokHaraketleri ya da Cari.BakiyeIslem üzerinden yazarsan resmi satırlar (2023'te hacmin %25'i) kaybolur; hacim daima Cari.Islemler'den, IslemTipi ≥ 10 ayrı sayılarak (MET-ISLEM-HACMI). Tetikleyici @IslemTipi<>11 AND <>12 koşuluyla defter bloğunu atlar; LastDate bile güncellenmez.

SIK YAPILAN HATALAR — 4. Tanım yapıldı, listede yok / işlem düğmesi yok Tema: Tanımlama — 686 çağrı, %6,1; alt kategori Birim 161, Stok 68, Kasa 42, Hesap 37; kapanış ortalaması 7,7 saat (SYM-TANIMLAMA). Yeni çalışan: Her tanımdan sonra Ctrl+F5 (Sistemi Yenile), her bilgisayarda ayrı (H-020). Birim "Sabit" değilse bakiyesi yokken listelenmez; çarpanı 1 değilse kur yanlış gelir. Müşteri: Yeni hesap açınca Dosya Kategorisi zorunlu evrak kapısını açar; evrak yüklenmeden "BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR" gelir. Silinen birimi yeniden açma; pasif/aktif yönet (çift birim → pozisyonda çift satır, H-131). Destek personeli: Önce PB-039 (yenileme), sonra türe göre PB-040…044. Yetki değişikliği yeniden giriş ister; ekran menüde yoksa mesaj vermez (H-011). DOCUMENTS veritabanı yoksa hiçbir hesaba kayıt yapılamaz, hata da vermez. Geliştirici: İstemci tanım listelerini açılışta belleğe alır — sunucu tarafı doğru olsa da UI bayat kalır; Sistem.Birimler.IsStatic/Carpan/IsMetal, Sistem.UserGroup.Permission (bit haritası çözülmemiş — GAP), Cari.GetGerekliEvraklar ExpDate mantığı (FN-CARI.GETGEREKLIEVRAKLAR).

SIK YAPILAN HATALAR — 5. İki bacaklı işlemde tek bacak / düzeltme yerine iptal gerekir Tema: Bakiye (710) içinde "İşlem Düzeltme" 190; Vadeli/parite/arbitraj 47 çağrı, %0,4 (SYM-BAKIYE neden 5, H-106; PB-032, PB-048). Yeni çalışan: Virman, parite, vadeli arbitraj ve çevir iki satır yazar (aynı RefNo / VaryantId). Bunlar DÜZELT ile düzeltilmez ("Virman İşlemlerinde Düzeltme Yapamazsınız…"); iptal + yeniden giriş. İptalde "Karşı İşlemde İptal Edilsin mi?" sorusuna HAYIR dersen hiçbir şey iptal olmaz. Müşteri: "Karşı Hesaba İşlem Yapılamadı." mesajı gördüysen tek bacak kaldı — hemen destek; bakiyeler dengesizdir. Destek personeli: Tek bacak teşhisi: aynı RefNo'lu satır sayısı; VaryantId −1 olan satırın eşi var mı. Parite tipinin bazı kurulumlarda EMANET etiketiyle görünmesi (H-058, CTR-027) tip/etiket eşlemesini kurulum bazında sorgulamayı gerektirir. Geliştirici: Virmanda karşı satır SendTo ile ayrı INSERT'tir, transaction dışıdır — hata olursa yarım kalır (GAP: GetKarsiIslemTuru hangi satırı çevirir, kodla doğrulanmadı). Çevir/vadeli tip −1/−2 kod tablosunda yoktur; CariIslemTipi ile INNER JOIN yapan rapor bu satırları düşürür (aynı tuzak ÇEŞNİ 14 için, TD-44).

SIK YAPILAN HATALAR — 6. Kur girilmedi / eski fiyatla işlem Tema: Kur / pano / EDS — 160 çağrı, %1,4 (EDS 44, pano 24); ayrıca bakiye temasında "geçmişe işlem girildi" (SYM-KUR neden 1, 5, 6, 10). Yeni çalışan: Her sabah kur listesi; kırmızı satır = o gün kur yok. Kur yoksa FİYAT 0, "Lütfen Tutar Giriniz." Satışta FİYAT'a alış gelir — elle düzelt (H-045). Açık ekran fiyatı kendini yenilemez (H-046). Müşteri: Kur girilmezse program sessizce dünkü kuru kullanır; işlem "yanlış" değil, karşılık eski olur. Geçmiş tarihe işlem girerken o günün kuru satıra yazılır ve düzeltmede yenilenmez. Destek personeli: Kur zinciri üç halka: EDS → Sistem.Kurlar → tüketiciler (ekran/pano/rapor); belirti hangi halkadaysa neden ondan öncekidir. Birden fazla EDS açık, sağlayıcı kopuk: PB-061. Geliştirici: FN.GetKur her zaman alış döner (BR-KUR-008); pozisyon alış kuruyla değerlenir. Kur fotoğrafı (HasKur, UsdKur, EurKur…) kayıt anında satıra yazılır (BR-KUR-001), düzeltmede çekilmez (BR-KUR-003); rapor "işlem günkü kur" için satırdaki kolonu kullanmalı, Sistem.Kurlar'a JOIN yapmamalı. Sistem.Kurlar yılların birikimiyle EDS'i yavaşlatır (H-160).

SIK YAPILAN HATALAR — 7. Transfer kabul edilmedi / şube stoğu "kayıp" Tema: Bakiye (710) içinde stok şikâyetleri (H-113, H-114); Pozisyon 68 çağrı, %0,6 (SYM-POZISYON). Yeni çalışan: Transfer iki adımdır; alan şube Gelen kutusundan Kabul Et demeden stok karşı kasaya girmez. Stok listesi kasa bazlıdır — yanlış kasaya bakıyor olabilirsin. Müşteri: Devirden önce bekleyen transferler kapatılır ve maden stokları tek kasaya toplanır; aksi hâlde yeni yılda stok tutmaz. Destek personeli: Cari.Transferler.Status 0 = bekliyor; stok satırı yalnız Status 1'de (Cari.TransferUpdateStatus). "Transfer yapıldı ama görünmüyor" → PB-037. Geliştirici: Transfer Cari.Islemler'e yazmaz, Bolum=2 stok satırı üretir; devirde transfer stok satırları BalanceRepair ile yok olur (TD-30). Tetikleyici StokTipi −2 eski satırları siler ama 1/2 yazar — tutarsızlık GAP-TRN-TRANSFER-02.

SIK YAPILAN HATALAR — 8. Devir sonrası "işlemler kayboldu / bakiye yok" Tema: Devir / yıl sonu — 79 çağrı, %0,7, ortalama kapanış 214 saat; Ocak zirvesi 26 (SYM-DEVIR). Yeni çalışan: Devirden sonra geçen yıl arşiv veritabanındadır; "BU VERI TABANI ISLEME KAPATILMISTIR" mesajı arşive bağlı olduğunu söyler, arıza değildir. Müşteri: Devir randevuludur: yedek, Aralık BTrans, takoz/çeşni sıfır, transferler kapalı, stok tek kasada. Açılış stoğu için tip MAHSUP önerilir — ama stok da yazmaz (CTR-004); NORMAL girilirse DEVİR hesabı alacaklı kalır (H-115). Destek personeli: Devir sonrası "işlem var, defter yok" → tetikleyici açılmamış (PB-029); fişte eski bakiye yok → GetBakiyeFisNo IslemId −1'i almıyor (H-111); fark → PB-034. BalanceRepair yasak. Geliştirici: Sistem.Devir transaction'sız (TD-29); yalnız 5 tablo TRUNCATE, IslemId taşıyan diğer tablolar öksüz kalır (TD-42); doküman üç devir sürümü, kod tek (CTR-034).

SIK YAPILAN HATALAR — 9. "Programa giremiyorum" (bağlantı) — en büyük tema Tema: Programa giriş / bağlantı / sunucu — 2.244 çağrı, %20,1; alt kategori Uzak Bağlantı Desteği 992, ERP Bağlantı Ayarları 788 (SYM-BAGLANTI, PRB-BAGLANTI-000). İşletme senaryolarıyla ilgisi: bağlantı kopukken hiçbir senaryo başlamaz, ve kopma anındaki yarım işlemler (virman ikinci bacağı, provizyon) sonraki "bakiye tutmuyor" çağrısının kaynağı olur. Yeni çalışan: Sunucu adı/örnek adı (config.cfg), ana bilgisayarın IP'si, güvenlik duvarı; ek kullanıcı bilgisayarı ana bilgisayarı bulamıyorsa program açılmaz. "BU VERI TABANI ISLEME KAPATILMISTIR" = arşive bağlısın, canlıya geç. Müşteri: Yeni bilgisayar/IP değişikliği/antivirüs güncellemesi sonrası bağlantı ayarı yenilenir (PB-001); kullanıcıya şube/kasa/grup atanmamışsa giriş olur, ekranlar boş kalır (H-010). Destek personeli: Sıra: SQL servisi/Browser/TCP-IP → port/güvenlik duvarı → config → kullanıcı ataması → arşiv DB. "A cursor with the name … already exists" (H-005): tetikleyicideki global cursor hata dalında kapanmamış, PB-005. Geliştirici: Kopma anında SendTo (virman karşı satırı) ve Provizyon.Send transaction dışıdır; yarım kayıt üretebilir. İstemci tanım listelerini önbellekler; yeniden bağlanınca bayat liste (H-020).

SIK YAPILAN HATALAR — 10. Fiş çıkmıyor / yazıcı, ve ay sonu aktarımı Tema: Yazıcı / fiş / etiket — 1.223 çağrı, %11,0 (Yazıcı bağlantı 419, fiş/fatura printer ayarı 322); BTrans / mali müşavir — 1.035 çağrı, %9,3 (SYM-YAZICI, SYM-BTRANS). Yeni çalışan: "Fiş çıkmıyor" üç katmandır: Windows/sürücü (test sayfası bile çıkmaz), kullanıcı ayarı (fiş yazıcısı seçilmemiş, Direkt Print kapalı — PB-024), veri (yazıcı basar, kâğıt boş — H-153). Boş fiş yazıcı arızası değildir. İşlem kaydedilmiştir; fiş basılmadı diye ikinci kez girme — çift işlem, sonra iptal. Müşteri: Ay sonu BTrans rutindir; kontrol raporundaki "HATALI" satırlar ay içinde düzeltilirse ay sonu bir saatte biter. Aralık BTrans devirden önce alınır. Destek personeli: Fiş: Sistem.Clients.FisPrinter/DirekPrint/OtoFisBas; termal boş fiş Cari.FisIslemDetay TOP 1000 sınırı (PB-025); font ARIALN.TTF (H-155). BTrans: VKN/TCKN hane, TL-TL fatura, miktar=tutar hataları (PB-022). Geliştirici: Fiş görünümü veri döndürmüyorsa "yazıcı arızası" çağrısı açılır — görünüm sınırı ve boş catch'ler (TD-EMPTY-CATCH) belirtiyi gizler. BTrans XML yalnız Cari.Islemler/IslemDetaylari/Hesaplar'dan üretilir; hesap kartı boş alanları XML'e boş gider; üretim kodu kaynaklarda görünmüyor (GAP).


7.4 Bölümün özeti — haftadan çıkan on kural

  1. Dört kutu, dört soru. Stok "nerede", kasa "ne kadar nakit", cari "kime ait", pozisyon "kur değişirse ne olur". Bir işlem hepsini oynatmak zorunda değildir.
  2. Cari has alımı/satımı pozisyonu oynatmaz; TL karşılığı has alımı ve birim çevirme oynatır (hafta: +140 hurda, +20 çevir).
  3. Peşin = kasa oynar, bakiye oynamaz; ama BakiyeId=0 peşin demek değildir — NAKİT'te hep 0'dır ve bakiye yazar.
  4. Kuyumcuda cari maden işlemi stok da yazar (%100); döviz bürosunda cari işlem neredeyse yalnız bakiye yazar (%1,4 stok). Kurulumu sormadan "stok değişmeli" deme.
  5. Maden iki bakiye satırını aynı işaretle (has + işçilik), çevir/vadeli/hizmet zıt işaretle yazar.
  6. Tip 11/12 operasyonel stok/bakiye kaydı üretmez; hacim raporu Cari.Islemler'den okunur. "Mahsup" tipi sektördeki mahsuplaşma değildir.
  7. İki bacaklı işlemler (virman, parite, vadeli arbitraj, çevir) düzeltilmez; iptal + yeniden giriş. Tek bacak kaldıysa bakiye dengesizdir.
  8. Düzeltme UPDATE + sil-yeniden-yaz; iptal IsDeleted. History düzeltmede yeni, iptalde eski hâli saklar. BakiyeIslem elle düzenlenmez; BalanceRepair çalıştırılmaz.
  9. Üç "mutabakat" — F12 (cari kilit), Mutabakat/Onay (stok sayımı), pozisyon kontrolü — hiçbiri defter kaydı değildir; sayım farkı ayrı işlem ister.
  10. Çağrılar çevrede birikir: bağlantı %20, fatura %11,5, yazıcı %11, BTrans %9; işlem ekranı hataları (yön/tip/iki bacak) %6–7 ama en pahalısı.

UYARI — Haftanın sayıları kendi içinde tutarlıdır ama iki varsayım taşır: HAS kartı has = gram sayıldı (gerçekte 24 ayar 0,995) ve Selim'in Perşembe çevrilen USD borcu Salı eklenen 2.000 USD cari satışından gelir (brief'in başlangıç durumunda USD borcu yoktur). Başka bir bölümle sayı karşılaştırırken bu ikisine bak.

KAYNAK — Bu bölümde işaretlenen GAP/CTR maddeleri _tools/book_findings_07.md dosyasında toplanmıştır; kanonik çelişki listesi CONTRADICTIONS.


Bölüm sonu sınavı

Kolay (5)

  1. Pazartesi Yusuf'tan cari 1.000 g has alındığında dört kutudan (stok, kasa, cari, pozisyon) hangileri değişti?
  2. Peşin döviz satışında bakiye defterine kaç satır yazılır?
  3. Çevir işlemi stok defterine yazar mı?
  4. F12 mutabakat bir defter kaydı mıdır?
  5. Tip 11 (RESMİ) ve 12 (MAHSUP) satırlar hangi defterlere yazar?

Orta (5)

  1. Salı Selim'e 600 g 22 ayar bilezik işçilikli satıldı. Bakiye defterine kaç satır, hangi işaretle yazıldı; stok defterine ne düştü?
  2. Perşembe 2.000 USD borcu 20 g has'a çevrildi. Firmanın USD ve HAS pozisyonu nasıl değişti, TL değeri neden değişmedi?
  3. Cuma kasa sayımı ile F12 mutabakatı arasındaki fark nedir? Hangi tablolara yazarlar?
  4. Kuyumcu kurulumunda cari MADEN işlemi stok defteri üretir mi? Döviz kurulumunda NAKİT NORMAL (cari) işlem üretir mi? Matrise göre cevapla.
  5. "Mahsuplaşma" için tip MAHSUP (12) seçen kullanıcı ne görür; doğru araç nedir?

Senaryo (5)

  1. Firma müşteriden 500 g hurda aldı (milyem 0,800) ve karşılığını müşterinin USD cari hesabına yazmak istedi. Hangi ekran(lar), kaç satır; stok ve bakiye açısından ne beklenir?
  2. Hafta içinde Nuri gelip "5.000 USD alacağımı nakit ver" dese Mehmet hangi ekranda, hangi tiple girer; kasa, bakiye ve pozisyon ne olur?
  3. Selim'in muhasebecisi "sizde fazladan 90.000 TL borç görünüyor" diyor. SYM-BAKIYE zinciriyle ilk üç kontrolün ne olur ve bu vakada muhtemel cevap nedir?
  4. ŞUBE-2'ye 300 g bilezik transferi gönderildi ama ŞUBE-2'de stok artmadı; MERKEZ'de düştü. Ne olmuştur, nasıl doğrularsın, pozisyon etkilendi mi?
  5. Yıl sonu devri yapıldı; Ocak'ta girilen işlemler bakiyeyi değiştirmiyor, hata da yok. Kök neden adayı, doğrulama sorgusu ve yapılmaması gereken şey nedir?

Cevap anahtarı

  1. Stok (+1.000 g HAS) ve cari (Yusuf HAS −1.000) değişti; kasa ve pozisyon değişmedi — has hasla alındı. Bölüm 7.1 Pazartesi; SCN-NORMAL-MADEN, BR-YON-002.
  2. Sıfır; IslemTipi=1 bakiye üretmez, iki stok satırı (döviz −, TL +) üretir. BR-TIP-002, BR-TIP-003; SCN-DOVIZ.
  3. Hayır; iki zıt işaretli bakiye satırı, stok yok. BR-CEVIR-001, BR-STOK-011; SCN-CEVIR.
  4. Hayır; Cari.Islemler üzerinde Mutabakat/MUser/MTarih işareti ve düzeltme/iptal kilidi. BR-MUTABAKAT-003; SCN-MUTABAKAT.
  5. Hiçbirine; yalnız Cari.Islemler + Cari.History. BR-TIP-004, BR-DEFTER-URETIMI.
  6. İki bakiye satırı, ikisi de artı (ÇIKIŞ → müşteri borçlu): HAS +549,6, TL +90.000; stok 22 ayar −600 g / has −549,6. BR-YON-002, BR-HESAP-007, FLOW-ISLEM-MATRISI (MADEN/NORMAL/cari stok %100).
  7. USD pozisyonu −2.000 (alacak kapandı), HAS pozisyonu +20 (alacak açıldı); 2.000 × 40 = 80.000 TL = 20 × 4.000 — aynı kurla çevrildiği için TL değeri sabit. Bölüm 7.1 Perşembe; SEC-CEVIR.
  8. Kasa sayımı Stok.Mutabakat'a fiziksel miktarı yazar (Mutabakat/MutabakatOnay ekranları, stok sayımı); F12 cari mutabakat Cari.Islemler.Mutabakat işaretidir ve kilit koyar. İkisi de defter üretmez. SCR-MUTABAKAT, SCR-MUTABAKATONAY, CTR-SEC-MUTABAKAT-01.
  9. Kuyumcu MADEN/NORMAL/cari: stok %100, bakiye %100. Döviz NAKİT/NORMAL: stok %99, bakiye %99 (BakiyeId 0 olsa da). FLOW-ISLEM-MATRISI; BR-DEFTER-URETIMI (V2 cari %1,4 / KUY %60,3).
  10. Satır işlem listesinde durur, bakiye ve stok değişmez. Aynı hesapta birim çevirme → ÇEVİR; iki hesap → VİRMAN; karşılıksız düzeltme → BORÇ İŞLEMLERİ. SEC-MAHSUP, CTR-SEC-MAHSUP-01, BR-GENEL-004.
  11. HURDA GİRİŞ NORMAL (500 g, 0,800 → 400 g has) yalnız HAS bakiyesi −400 yazar (Tutar 0); USD'ye yazmak için ikinci adım ÇEVİR (ALACAK, KODU HAS 400, BİRİM USD, parite 100 → 40.000 USD): HAS +400, USD −40.000. Stok hurda +500 g / has +400. Alternatif VADELİ deseni; kasa değişmez. SCN-HURDA, SCN-CEVIR, BR-YON-003.
  12. NAKİT ÇIKIŞ NORMAL, KODU USD, BİRİM USD, 5.000: bakiye USD +5.000 → 0 (alacak kapandı), stok USD −5.000 (kasa 88.000), TL girmez. Pozisyon USD değişmez (kasa −5.000, borç −5.000). SCN-NAKIT, BR-YON-004, BR-STOK-003.
  13. (1) Hangi birim/tarih, beklenen-görünen; (2) TP sütunu (NORMAL mi); (3) İşlem Geçmişi'nde düzeltme/iptal var mı. Muhtemel cevap: 90.000 TL Salı bileziğinin işçiliğidir; muhasebeci işçiliği has'a dahil saymış ya da faturasını beklemektedir — meşru fark, ekstre karşılıklı okunur. SYM-BAKIYE, PB-028, B-18.
  14. Transfer kabul edilmemiş (Cari.Transferler.Status=0); stok satırı yalnız kabulde Bolum 2 ile yazılır. Doğrulama: ŞUBE-2 Gelen kutusu / Status. Pozisyon (firma toplamı) etkilenmez; MERKEZ kasası −300, ŞUBE-2 henüz 0 — "kayıp" gibi görünür. SCN-SUBELER-ARASI-ISLEM, BR-TRANSFER-002, H-114, PB-037.
  15. Devirde tetikleyiciler DISABLE edilir, açılması unutulmuş olabilir (H-006). SELECT name,is_disabled FROM sys.triggers WHERE parent_id=OBJECT_ID('Cari.Islemler'). Yapılmayacak: Repair.BalanceRepair — devir satırlarını (IslemId −1) yok eder; işlemler tetik açıldıktan sonra yeniden kaydedilerek (UPDATE) üretilir. SYM-DEVIR, PB-029, TD-30.

Bunu anladıysan devam et

KAYNAK — Gerçek davranış matrisi: FLOW-ISLEM-MATRISI · defter kuralı: BR-DEFTER-URETIMI · senaryo dizini: SCN-INDEX.

8. Sektör + ERPGOLD Sözlüğü (A–Z)

Bu bölüm bir başvuru sözlüğüdür: kitabın diğer bölümlerinde geçen her kavramı tek yerde, kısa ve sade tanımlar. Her madde üç parçadan oluşur: (1) sade tanım — 15 yaşındaki bir öğrencinin anlayacağı dille; (2) ERPGOLD'da: — bu kavramın programda hangi ekranda, alanda veya kuralda karşılığı olduğu (teknik ad varsa kod biçiminde); (3) → bkz. — zincirleme okuma için komşu maddeler ve kanonik wiki makalesi. Sık karıştırılan çiftler madde içinde ile işaretlidir.

KAYNAK Kanonik sözlük ../ERPGOLD_WIKI/18_Glossary/ (195 terim, dizin), sektör kavram makaleleri ../ERPGOLD_WIKI/02_Sector/Concepts/ (39) ve iş türleri ../ERPGOLD_WIKI/02_Sector/BusinessTypes/, metrikler METRIC_DICTIONARY, kod tabloları 07_BusinessRules/Enums, gerçek işlem matrisi FLOW-ISLEM-MATRISI. Sektör genel bilgisi için SECTOR_KNOWLEDGE yeterli sayılmıştır; kanonik makalesi olmayan finans terimleri (COMEX, likidite, volatilite, spot, OTC, hedge, spread) bu bölümde GAP-SOZLUK işaretiyle verilmiştir ve ERPGOLD'daki karşılıkları yalnız "doğrudan karşılığı yok" düzeyindedir.

UYARI Sözlükteki kurlar, oranlar ve eşikler (ör. BSMV binde 2, perakende 7.000 TL / 3.000 USD, ons 3.100 USD) güncel değildir; ya koddaki sabitlerdir ya da kitabın örnek sayılarıdır. Mevzuat rakamı doğrulanmamışsa GAP-MEVZUAT yazılmıştır. Müşteri firmaların şemaları kitapta MüşteriŞemasıA–D olarak maskelenir.

Sözlüğü nasıl kullanmalı — beş zincir

Kavramlar tek başına ezberlenmez; zincir hâlinde okununca yerine oturur. Aşağıdaki beş zincir, kitabın 2–7. bölümlerinin omurgasıdır. Her zincir soldan sağa okunur; her halkanın kendi maddesi vardır.

Zincir Halkalar Ne anlatır
Altın zinciri HAS → MİLYEM → AYAR → MADEN → HURDA → TAKOZ → ÇEŞNİ → AYAR EVİ Saf altın nasıl ölçülür, ürün nasıl adlandırılır, hurda nasıl külçeye döner
Para zinciri KUR → ALIŞ/SATIŞ KURU → MARJ → PARİTE → ÇAPRAZ KUR → ARBİTRAJ → POZİSYON Döviz bürosu parayı nasıl fiyatlar, nerede kazanır, riski nedir
Defter zinciri CARİ.ISLEMLER → TETİKLEYİCİ → BAKİYE DEFTERİ + STOK DEFTERİ + HISTORY Tek satır yazılır, üç defter kendiliğinden doğar
İşlem zinciri İŞLEM KODU → İŞLEM TÜRÜ → İŞLEM TİPİ → BakiyeId / BirimId → FİŞ → RefNo Bir işlem satırının kimliği ve karşı bacağı
Kontrol zinciri YETKİ GRUBU → SETTINGS → SİLME/DÜZELTME ONAYI → PIN → MUTABAKAT KİLİDİ → PROVİZYON Kim, neyi, ne zamana kadar değiştirebilir

BUNU KARIŞTIRMA Stok ≠ Bakiye (nerede duruyor ≠ kime ait) · Kasa ≠ Cari · İşlem ≠ Stok hareketi · Kur ≠ Parite · Has ≠ Gram · Ayar ≠ Milyem · Alış ≠ Giriş (aynı taraf, farklı ekran sözcüğü) · Peşin ≠ BakiyeId=0 · Resmi ≠ Faturalı stok · Mutabakat (F12) ≠ Mutabakat ekranı (stok sayımı) · Virman ≠ Çevir ≠ Transfer · Takoz ≠ Külçe.


A

  • Açılış bakiyesi — Programa ilk geçişte, geçmişten gelen borç/alacak ve stokların "sıfır noktası" olarak girilmesi. → bkz. Devir.

  • Adet — Tane ile sayılan kalemlerin sayısı: 3 çeyrek altın, 1 yüzük, 2 pırlanta. Gramla değil taneyle konuşulan her şeyde kullanılır. ERPGOLD'da: MADEN/MODEL/PIRLANTA/TAŞ ekranlarındaki ADET alanı; adetli maden kartında ADET girilince MİKTAR ve HAS kendiliğinden hesaplanır (Cari.Islemler.Adet, işaretli hâli SAdet). → bkz. Miktar · Parça gramı · Ziynet · Kanonik: TERM-ADET

  • AifaUyum (KYC ürünü) — AIFASOFT'un müşteri tanıma / evrak toplama ürünü; web servisi + Android uygulaması. ERPGOLD'un içinde değil, yanında çalışır. ERPGOLD'da: Kyc.* şeması ve Kyc.Firmalar.HesapId → Cari.Hesaplar.Id bağı; hangi müşteride kurulu olduğu UNKNOWN (GAP-KYC-PRODUCTION). ERPGOLD çekirdeğindeki evrak kapısı bundan bağımsızdır. → bkz. KYC · Evrak/uyum · MASAK · Kanonik: MOD-KYC, INT-KYC-AIFAUYUM

  • Alacak — Müşterinin bizden alması gereken şey: bize mal bıraktı, karşılığını henüz almadı. İşletme açısından bu bir borçtur. Alacak ≠ Alış (alacak bir bakiye durumu, alış bir işlem yönüdür). ERPGOLD'da: bakiye defterinde eksi (−) işaret; bakiye kartında ALACAK sütunu, yeşil. GİRİŞ / ALIŞ / ALACAK yönleri müşteriyi alacaklandırır. → bkz. Borç · Bakiye · İşlem (yön) · Kanonik: TERM-ALACAK, SEC-ALACAK

  • Alış — İşletmenin müşteriden bir kıymeti satın alması; iki anlamı var: alış yönü (mal bize girdi) ve alış kuru (alırken uyguladığımız düşük fiyat). Müşterinin "sattım" dediği her şey bizim için alıştır. Alış ≠ Giriş: aynı taraf, ama MADEN/NAKİT ekranı GİRİŞ, VADELİ/PARİTE ekranı ALIŞ der. ERPGOLD'da: IslemTuru = 4 (ALIS) vadeli/parite yönü; raporda GİRİŞ (0) ile birlikte "alış" sayılır (MET-ALIS). → bkz. Giriş · Satış · Alış/satış kuru · Kanonik: SEC-ALIS

  • Alış / satış kuru — Aynı para için iki fiyat: büro alırken düşük (alış), satarken yüksek (satış) fiyat uygular; aradaki fark marjdır. Vitrindeki "USD 40,00 / 40,20" bu ikilidir. ERPGOLD'da: kur listesinde her birim için Alis ve Satis kolonu; MADEN/NAKİT ekranına gelen fiyat alış kurudur, VADELİ ve PERAKENDE'de yöne göre değişir (CTR-009: "her zaman alış" genellemesi yanlış). → bkz. Kur · Marj · Sistem kuru · Kanonik: TERM-ALIS-SATIS-KURU

  • Ana birim — Bir stok kartının bakiyesinin hangi para/maden cinsinde tutulduğu: bilezik kartı HAS'ta, dolar kartı USD'de tutulur. ERPGOLD'da: Stok.Maden.AnaBirimId; MADEN/HURDA'da işlemin BakiyeId'si buradan gelir, NAKİT'te her zaman 0. → bkz. Birim · BakiyeId · Kanonik: TERM-ANA-BIRIM

  • Ana hesap (master) — Birden çok şubesi/alt hesabı olan bir müşterinin bütün bakiyelerini tek yerde gösteren üst kart. ERPGOLD'da: hesap kartındaki Ana Hesap alanı (Hesap.MasterId); şifreli açılabilir, pasifse "Master Hesap Pasif" uyarısı. → bkz. Cari hesap · Kanonik: TERM-ANA-HESAP-MASTER

  • Ara toptancı — Büyük toptancıdan küçük partiler alıp mahalle kuyumcusuna dağıtan ara halka; toptancı gibi cari çalışır. ERPGOLD'da: ayrı bir kart tipi yok; NORMAL tipli MADEN işlemleri ve has bakiyesi ile izlenir. → bkz. Toptancı · Perakende kuyumcu · Kanonik: TERM-ARA-TOPTANCI

  • Arbitraj — Sektör dilinde çapraz işlem: müşteri euro verir, dolar alır; arada TL'ye çevrilmez, kasadan TL geçmez. Finans kitabındaki "risksiz fiyat farkı kazancı" anlamı tezgâhta arka plandadır. Arbitraj ≠ Parite: parite orandır, arbitraj o oranla yapılan işlemdir. ERPGOLD'da: tek satır yazılamaz, iki bağlı satır (ortak RefNo); IsArbitiraj hesaplanan kolonu = IslemKodu ∈ {3,6} ve VaryantId ≠ 0. Kod enum'unda ARBITIRAJ = 13 var ama veride hiç kullanılmamış. → bkz. Parite · Çapraz kur · Varyant · Karşı kayıt · Kanonik: TERM-ARBITRAJ, SEC-ARBITRAJ

  • AU / AG / PT / PD — Kimya sembolleri: altın (Au), gümüş (Ag), platin (Pt), paladyum (Pd). Bir takozun içinde dördü de bulunabilir. ERPGOLD'da: takoz ekranlarında AU MILYEM / AG MILYEM / PT MILYEM / PD MILYEM alanları; birim kodları HAS, GUM, PLT, PLD (Sistem.Birimler 1, 2, 20, 21); her metal ayrı bakiye satırı üretir. → bkz. Has · Takoz · Birim kodları · Kanonik: TERM-AU-AG-PT-PD

  • Ayar — Altının saflığının 24'lük sistemde söylenişi: 24 ayar saf, 22 ayar 24 parçanın 22'si altın, 14 ayar 24'te 14. Vitrin ve halk "ayar" der. Ayar ≠ Milyem: aynı bilginin iki yazımı (22 ayar = 916 milyem = 0,916); ayar ÷ 24 = milyem. İkinci anlam: saflığı ölçtürme işi ("ayara göndermek"). ERPGOLD'da: "AYAR" adlı giriş alanı yoktur; saflık her yerde MILYEM olarak yazılır, ayar bilgisi kart kodunda/açıklamasında taşınır ("22 AYAR BİLEZİK"). → bkz. Milyem · Has · Ayar evi · Kanonik: TERM-AYAR, SEC-AYAR

  • Ayar evi — Altının gerçek saflığını ölçen bağımsız laboratuvar/kurum; sonucu numaralı raporla bildirir. Takoz akışının dış aktörüdür. ERPGOLD'da: takoz girişinde AYAR EVİ listesi ve RAPOR NO (AyarEviId, RaporNo); tanım ekranı Ayar Evi Tanımlama (yazdığı tablo canlı DB'de bulunamadı — CTR-SEC-AYAREVI-01). → bkz. Takoz · Raporlu/raporsuz takoz · Çeşni · XRF · Kanonik: TERM-AYAR-EVI, SEC-AYAR-EVI

B

  • Bakiye — Bir cari hesabın bir birimdeki net durumu: o hesapla yapılan tüm işlemlerin artı ve eksilerinin toplamı. Bir müşteri TL'de borçlu, HAS'ta alacaklı olabilir; iki birim kendiliğinden birbirine karışmaz. Bakiye ≠ Stok: bakiye "kime ait", stok "nerede duruyor" sorusunun cevabıdır. ERPGOLD'da: kullanıcı bakiye yazmaz; her işlem satırından bakiye defteri satırları tetikleyiciyle türer, bakiye kartı bunların toplamıdır (artı = müşteri borçlu, eksi = alacaklı). → bkz. Bakiye defteri · Bakiye kartı · Stok · Kanonik: SEC-BAKIYE, MET-BAKIYE

  • Belgelendirilmiş işlem / belgelendirme farkı — Yetkili müessesede ilgili elektronik belgesi (e-Döviz belgesi vb.) düzenlenmiş işlem; ERPGOLD belgesi düzenlenmiş işlemlerden ikinci bir kontrol görünümü (legacy: resmi stok/kasa) hesaplar. Belgelendirme farkı = operasyonel sonuç − belgelendirilmiş sonuç; sıfırdan farklıysa kontrol/mutabakat sinyalidir, tek başına hukuki yargı değildir. Tercih edilen terimler: tüm işlemler havuzu / belgelendirilmiş işlemler havuzu.

  • Belge kontrol kaydı (işlem tipi 11) — bkz. Resmi / Fatura (işlem tipi 11).
  • Bakiye defteri (Cari.BakiyeIslem) — Her işlemin hangi hesaba, hangi birimde, ne kadar borç/alacak yazdığını tutan otomatik kayıt tablosu (ERPGOLD içi türetilmiş kayıt; muhasebe defteri değildir). Elle yazılmaz. ERPGOLD'da: Cari.BakiyeIslem (Tarih, HesapType, HesapId, KasaId, IslemId, BirimId, Bakiye); devir satırları IslemId = −1. Peşin (tip 1) satırlar bu deftere yazmaz; resmi/mahsup (11/12) hiç yazmaz. → bkz. Tetikleyici · Stok defteri · Devir · Kanonik: TERM-CARI-BAKIYEISLEM, TBL-CARI.BAKIYEISLEM

  • Bakiye kartı — Cari İşlemler ekranının sol altında sürekli görünen, müşterinin birim birim borç/alacak dökümü. Alacak yeşil, borç kırmızı. ERPGOLD'da: iBakiyeControl; satıra tıklayınca "o işleme kadar" bakiye; sabit (statik) birimler sıfır olsa da listelenir. → bkz. Bakiye · Sabit birim · Kanonik: TERM-BAKIYE-KARTI, SCR-IBAKIYECONTROL

  • BakiyeId (mal tarafı) — İşlemdeki malın hangi birimde hesaba yazılacağı; 0 ise mal bakiyesi yazılmaz. BakiyeId = 0 ≠ Peşin: NAKİT satırlarında BakiyeId hep 0'dır ama para bakiyesi yine yazılır (CTR-SEC-BAKIYE-01). ERPGOLD'da: Cari.IslemEx.BakiyeId salt okunur özellik; MADEN/HURDA'da tip ∉ {PEŞİN, BEDELLİ, MİKTAR} ise Stok.Maden.AnaBirimId, VADELİ'de vadeli kodun ana birimi, ÇEVİR'de Birim.Id, NAKİT'te 0. → bkz. BirimId · Ana birim · Peşin · Kanonik: TERM-BAKIYEID-MAL-TARAFI

  • BalanceRepair (Repair.BalanceRepair) — Türetilmiş defterleri boşaltıp yeniden kuran, 2017'de dondurulmuş eski onarım prosedürü. Çalıştırılmaz: devir (IslemId −1) ve transfer (Bolum 2) satırlarını kalıcı siler, resmi işlemlere yanlışlıkla bakiye yazar. ERPGOLD'da: uygulamadan çağıran kod yok; tetikleyiciden 11 maddede sapmıştır (TD-30). → bkz. Tetikleyici · Devir · Kanonik: TERM-REPAIR-BALANCEREPAIR, TD-30

  • Bedelli (işlem tipi 2) — Malın bedelinin ayrı bir satırda tahsil edileceği işlem: mal bakiyesi yazılmaz, tutar zorunludur. Veride neredeyse hiç yok (1 satır). ERPGOLD'da: tIslemTipi.BEDELLI = 2, kısaltma harfi B; MADEN/HURDA/MODEL'de BakiyeId = 0. → bkz. İşlem tipi · Peşin · Kanonik: TERM-BEDELLI-ISLEM-TIPI-2

  • Bilanço — İşletmenin belli bir andaki toplam durumu: kasa + stok + alacak − borç, hepsi tek birime çevrilmiş. Kuyumcuda bilanço günün kuruyla değişir; kur girilmemişse toplam 0 çıkar. ERPGOLD'da: her kalem şubenin bilanço birimine günün alış kuruyla çevrilir; Bilanco.Bilancolar tablosu, Bilanço / Patron Bilançosu ekranları. Ticket temalarında %4,1 pay. → bkz. Pozisyon · Kur listesi · Şube · Kanonik: TERM-BILANCO, PRB-BILANCO-000

  • Birim — Bakiyenin tutulduğu para veya maden cinsi: HAS, GUM, TL, USD, EUR… Birim bir "ölçü cinsi"dir, nakit kartı ise kasadaki fiziki paradır (Birim ≠ Nakit kartı). ERPGOLD'da: Sistem.Birimler (örnek DB'de 133 satır); alanlar Kodu, Sıra, Çarpan, Sabit (IsStatic), Metal (IsMetal). Yeni birim tanımlandıktan sonra Sistem Yenile gerekir. → bkz. Birim kodları · Ana birim · Sabit birim · Nakit kartı · Kanonik: TERM-BIRIM

  • Birim kodları (HAS, GUM, PLT, PLD, TL, USD, EUR…) — Programın birim listesindeki kısa kodlar; HAS = 1, GUM = 2, USD = 3, EUR = 4, TL = 5, PLT = 20, PLD = 21 (örnek kurulum). ERPGOLD'da: Settings'teki sembol ayarları (HasSymbol, GumSymbol…) bu kodları programın metal/para tanımasıyla eşler; kurulumdan kuruluma Id'ler değişebilir. → bkz. Birim · AU/AG/PT/PD · Kanonik: TERM-BIRIM-KODLARI

  • BirimId (para tarafı) — İşlemde karşılığında el değiştiren paranın birimi; 0 ise para tarafı yoktur (saf mal hareketi, ör. hurda giriş karşılığı sonra ödenecek). ERPGOLD'da: Cari.IslemEx.TutarBirim; PEŞİN'de bir Stok.Nakit Id'si (kasadaki para), değilse Sistem.Birimler Id'si. V2'de 2.281 HURDA satırı BirimId = 0. → bkz. BakiyeId · Tutar · Nakit kartı · Kanonik: TERM-BIRIMID-PARA-TARAFI

  • Blok takoz — Aynı partiden birden fazla takozun tek seferde girilmesi. ERPGOLD'da: FrmBlokTakozGirisi ekranı. → bkz. Takoz · Kanonik: TERM-BLOK-TAKOZ, SCR-FRMBLOKTAKOZGIRISI

  • Borç — Müşterinin bize ödemesi/teslim etmesi gereken şey. Borç ≠ Borç işlemleri (ikincisi bir ekrandır). ERPGOLD'da: bakiye defterinde artı (+); bakiye kartında BORÇ sütunu, kırmızı. ÇIKIŞ / SATIŞ / BORÇ yönleri müşteriyi borçlandırır. → bkz. Alacak · Bakiye · Limit · Kanonik: TERM-BORC, SEC-BORC

  • Borç işlemleri (ekran) — Mal hareketi olmayan borç/alacak düzeltmesi: kur farkı, ıskonto, mutabakat farkı, açılış. Miktar girilmez; kod + tutar + birim. ERPGOLD'da: iFBorc ekranı; kod tablosunda Id 999 "DEVIR" (B) satırını kullanır, kodda tIslemKodu.BORC = 999; stok üretmez, bakiye üretir (V2'de %99). → bkz. Devir · Mahsup · İşlem kodu · Kanonik: TERM-BORC-ISLEMLERI, SCR-IFBORC

  • Bölüm (üretim) — Atölyenin iş istasyonları: döküm, cila, mıhlama, tezgâh. Her bölüme çıkan ve dönen altın tartılır; fark fire/ramattır. ERPGOLD'da: Uretim.Bolumler, bölüm bakiyeleri Uretim.TrBakiyeHesapla tetikleyicisiyle; stok defterine Bolum = 1 satırları. Yalnız kuyumcu kurulumunda veri var (15 satır) — düşük kullanım. → bkz. Fire/ramat · Üretici/atölye · Kanonik: MOD-URETIM

  • BSMV — Banka ve Sigorta Muameleleri Vergisi; döviz satışında uygulanan işlem vergisi (kaynaklarda binde 2 — güncel oran GAP-MEVZUAT). ERPGOLD'da: NAKİT ekranında VERGİ alanı; Settings BSMV / BsmvTipi. Doküman "tutara dahil" (×2÷1002), kod "üstüne ekle" (×BSMV÷1000) anlatır — CTR-010. → bkz. Döviz bürosu · E-döviz belgesi · Kanonik: TERM-BSMV

  • BTrans — Ay sonunda mali müşavire/resmi kuruma gönderilen aktarım paketi (kontrol raporu → XML → doğrulama → zip). Destek çağrılarının ~%9'u bu temadadır. ERPGOLD'da: Hesap Yönetimi altında; Muhasebe.IslemlerBTrans fonksiyonları. Playbook PB-022. → bkz. RS aktar · Hukuki kod · İstatistik kodu · Kanonik: TERM-BTRANS, INT-BTRANS

C

  • Cari hesap — Müşteri, tedarikçi, banka veya şubeyle sürekli alacak-borç ilişkisi yürütülen hesap; halk dilinde "veresiye defteri". Kart olarak ünvan, kimlik/vergi, limit, vade, evrak durumu, ana hesap taşır. Cari ≠ Kasa: cari kime ait, kasa nerede. ERPGOLD'da: Cari.Hesaplar (tHesapType.CariHesap = 0); HESAPLAR ekranı; işlem yapmadan önce Cari İşlemler'de hesap seçilir. → bkz. Cari işlem · Bakiye · Hesap türü · Limit · Kanonik: TERM-CARI-HESAP, SEC-CARI

  • Cari işlem — Karşılığı o anda alınmayıp hesaba yazılan işlem; peşinin karşıtı. "Cari işlem stok üretmez" kurulum bağımlıdır: döviz bürosunda %1,4, kuyumcuda %60,3 stok üretir (BR-DEFTER-URETIMI). ERPGOLD'da: NORMAL tip + hesap seçili; mal tarafı BakiyeId > 0. Metrik MET-CARI-HACIM. → bkz. Peşin · Normal (tip 0) · BakiyeId · Kanonik: SEC-CARI, BR-DEFTER-URETIMI

  • Cari İşlemler (ana ekran) — Tezgâhın ana ekranı: önce hesap seçilir, üstte bakiye, ortada işlem düğmeleri (0 LİSTE … X PARİTE), altta işlem listesi. ERPGOLD'da: iScreen (Base Control) + işlem formu kapsayıcısı iFTransaction; F12 mutabakat, DÜZELT/İPTAL mantığı buradadır. → bkz. iScreen · İşlem listesi · Menü kısayolları · Kanonik: TERM-CARI-ISLEMLER, SCR-IFTRANSACTION

  • Cari.AcceptTransaction (tetikleyici) — İşlem tablosuna her yazışta çalışan ve defterleri üreten SQL kuralı. Sırası: şube aktif mi → ETTN var mı → eksik evrak → tip 11/12 ise çık → eski türetilmiş satırları sil → IslemKodu'na göre yeniden yaz. ERPGOLD'da: Cari.Islemler üzerinde INSERT/UPDATE/DELETE AFTER trigger; metni kaynak kodda yoktur, her kurulumun DB'sinde elle yaşar (TD-48: V2 ile KUYUMCU sürümleri farklı). → bkz. Tetikleyici · Bakiye defteri · Stok defteri · History · Kanonik: TERM-CARI-ACCEPTTRANSACTION-TRIGGER, TRG-CARI.ACCEPTTRANSACTION

  • Cari.History (işlem geçmişi) — Her işlem satırının her sürümünün tam kopyası: yeni kayıt, düzeltme (yeni hâli), iptal (eski hâli), geri alma, silme. Sistemin en kalabalık tablosu (V2'de 1,64 M satır). ERPGOLD'da: LogType / LogDate / TransactionId kolonları; destek "kim, ne zaman, neyi değiştirdi" sorusunu buradan cevaplar. Resmi işlemler yalnız buraya düşer. → bkz. Tetikleyici · Düzelt · İptal · Kanonik: TBL-CARI.HISTORY

  • Cari.IslemDetaylari — İşlem satırının fatura/e-belge ayrıntısı: FaturaNo, ETTN, kimlik, döviz mevzuat alanları (37 alan, yalnız döviz kurulumunda dolu). ERPGOLD'da: 994.665 satır; resmi stok fonksiyonları FaturaNo > 0 ile süzer — resmi stok tipe değil fatura numarasına bağlıdır. → bkz. Resmi (tip 11) · Resmi stok · ETTN · Kanonik: TERM-CARI-ISLEMDETAYLARI

  • Cari.Islemler (işlem defteri) — Kullanıcının yazdığı tek tablo: her ekran satırı buraya gider; bakiye ve stok defterleri buradan türer ("tek yazma noktası"). ERPGOLD'da: 90 kolon (14'ü hesaplanan: Yon, SMiktar, SHas, Kar, IsArbitiraj…), 1,58 M satır, 4 AFTER trigger; DAO sınıfı AIO.Cari.Islem. → bkz. Tek yazma noktası · Tetikleyici · İşlem numarası · Kanonik: TERM-CARI-ISLEMLER, TBL-CARI.ISLEMLER

  • Ciro — Dönemdeki satış tutarlarının toplamı. Alışlar ciroya girmez; alış + satış toplamı "hacim" de değildir (çift sayım). ERPGOLD'da: MET-CIRO; çıkış/satış yönlü satırların tutarı. → bkz. Satış · İşlem hacmi · Kâr

  • COMEX — New York'taki vadeli emtia borsası; altın vadeli sözleşmelerinin (futures) dünya referanslarından biri (SECTOR_KNOWLEDGE). ERPGOLD'da: doğrudan karşılığı yok; ons fiyatı kur listesine elle veya EDS ile girilir. Kanonik makale yok — GAP-SOZLUK-COMEX. → bkz. Ons · LBMA · Vadeli işlem

Ç

  • Çapraz kur — İki yabancı paranın TL'ye uğramadan birbirine oranı; EUR/USD gibi. Sektörde parite ile eş anlamlı kullanılır; Kur ≠ Parite: kur bir birimin TL fiyatı, parite iki dövizin oranıdır. ERPGOLD'da: Sistem.Pariteler tablosunda çift ve yön (Çarp/Böl); PARİTE ekranı ve NAKİT'te PARİTE tipi. → bkz. Parite · Arbitraj · Kur · Kanonik: SEC-PARITE

  • Çarpan — İki anlam: (1) vadeli işlem kodundaki lot büyüklüğü — 5 lot × 1.000 = 5.000; (2) birim tanımındaki kur çevrim katsayısı. ERPGOLD'da: Sistem.Vadeli.Carpan (VADELİ ekranı CARPAN alanı) ve Sistem.Birimler.Carpan (normal birimde 1). Yanlış çarpan = yanlış tutar (PB-043). → bkz. Vadeli işlem kodu · Birim · Kanonik: TERM-CARPAN

  • Çeşni — Ayar evinin saflığı ölçmek için takozdan kestiği küçük numune. Analizde yok olur ama içindeki altın bir hesap kalemidir; gramı takozdan düşer. ERPGOLD'da: takoz girişinde MİKTAR / ÇEŞNİ alanı (CesniMiktar); ÇEŞNİ ekranı (iFCesni, menü C). Kodda tIslemKodu.CESNI = 14, DB kod tablosunda satırı yok → işlem listesinde kısaltması boş, INNER JOIN'lu raporlarda düşer (TD-44). → bkz. Takoz · Ayar evi · Fire/ramat · Kanonik: TERM-CESNI, SEC-CESNI

  • Çevir — Bir müşterinin bir birimdeki bakiyesini başka birime dönüştürme: 100 g has borcunu günün kurundan TL borcuna çevirmek. Mal/para el değiştirmez. Çevir ≠ Virman (virman hesap değiştirir, çevir birim değiştirir) · Çevir ≠ Transfer. ERPGOLD'da: işlem kodu 4 (harf C), yönleri ALACAK/BORÇ, kısaltma CA/CB; stok hareketi üretmez, iki bakiye satırı üretir. → bkz. Virman · Transfer · Parite · Kanonik: TERM-CEVIR, SEC-CEVIR

  • Çıkış — Malın veya paranın işletmeden müşteriye gitmesi. Yön daima işletmenin gözüyle: müşteri "dolar aldım" der, biz ÇIKIŞ yaparız. Çıkış ≠ Satış sözcük farkı: aynı taraf, farklı ekran. ERPGOLD'da: IslemTuru = 1, işaret eksi (−); stoktan düşer, müşteriyi borçlandırır; ekran kırmızıya döner. HURDA ekranı açılışta ÇIKIŞ gelir (BR-HURDA-001). → bkz. Giriş · Satış · İşlem (yön) · Kanonik: SEC-CIKIS, TERM-ISLEM-TURU-1-CIKIS-C

D

  • DAO (veri erişim sınıfı) — Ekran ile tablo arasındaki köprü: ekran alanlarını okur, SQL'e çevirir, tabloya yazar. ERPGOLD'da her ana tablonun bir DAO sınıfı vardır. ERPGOLD'da: AIO.* sınıfları (Class/Dao, Class/Ext; 126 DAO, 1.886 özellik↔kolon eşlemesi); menü → FrmMainForm.onMenuSelect → ekran → DAO → tablo. → bkz. Tek yazma noktası · iFormBase · Kanonik: ARCH-DB-ACCESS, CODE_MAP

  • Darphane — Devletin ziynet altını (çeyrek, yarım, tam, Ata…) bastığı kurum; ziynetin gramı ve ayarı bu yüzden sabittir (SECTOR_KNOWLEDGE). ERPGOLD'da: doğrudan karşılığı yok; ziynet adetli maden kartıdır. → bkz. Ziynet · Sarrafiye · Külçe

  • Devir — İki anlam: (1) açılış bakiyesi — program öncesi borç/alacak ve stokların "DEVİR" adlı özel cari hesaptan girilmesi; (2) yıl sonu devri — bakiye ve stokların yeni yıla açılış olarak taşınması. Ticket teması %0,7 ama riski yüksek. ERPGOLD'da: hesap türü Devir = 5; devir bakiyeleri Cari.BakiyeIslem.IslemId = −1. Yıl sonu prosedürü yalnız 5 tabloyu boşaltır (TRUNCATE, transaction yok — TD-29/TD-42); IslemId taşıyan diğer tablolar birikir. Shift+D ile açılır. → bkz. Borç işlemleri · BalanceRepair · Mahsup · Kanonik: TERM-DEVIR, SCR-FRMDEVIR, SCN-DEVIR

  • DF işlem tipi — Kullanıcı ayarındaki varsayılan işlem tipi; NAKİT ve MADEN ekranı açılışta bu tiple gelir (resmi kasada genelde RESMİ). ERPGOLD'da: UserSettings.DFIslemTipi; → bkz.

  • Döviz — Yabancı para: USD, EUR, GBP, CHF… Sektörde çoğunlukla efektif (banknot) anlamında; banka hesabındaki kaydi döviz ayrı kavramdır. ERPGOLD'da: NAKİT ekranında alım-satım; birim listesinde her döviz bir birim, kasada her döviz bir nakit kartı. Yön büronun bakışıyla yazılır. → bkz. Efektif · Kur · Döviz bürosu · Nakit · Kanonik: SEC-DOVIZ

  • Döviz bürosu (yetkili müessese) — Devletçe yetkilendirilip denetlenen, nakit döviz alıp satan işletme; kârı alış-satış marjıdır. Belge kontrol kaydı (legacy: resmi işlem), kimlik/evrak zorunluluğu ve e-Döviz belgesi en çok burada görülür. Mevzuat maddeleri/eşikleri bu kitapta doğrulanmadı (GAP-MEVZUAT). ERPGOLD'da: DOVIZ_VARIANT; canlı örnek ERPGOLDV2 kurulumu: işlemlerin %83'ü peşin, %82'si NAKİT; PEŞİN/RESMİ/MAHSUP tipleri ve 37 döviz mevzuat alanı yalnız bu kurulumda. → bkz. Marj · Resmi (tip 11) · E-döviz belgesi · BTrans · Kanonik: TERM-DOVIZ-BUROSU, SEC-DOVIZ-BUROSU

  • DSX.TABLE (bellek listeleri) — Programın açılışta bir kez belleğe aldığı tanım listeleri (birimler, madenler, nakitler, hesaplar, vadeli kodlar, şubeler…). Yeni tanım, liste yenilenene kadar ekranda görünmez. ERPGOLD'da: DSX.TABLE.ListOf*; "tanımladım ama listede yok" çağrısının ilk kontrolü Sistem Yenile (PB-039). → bkz. Sistem Yenile · Kanonik: TERM-DSX-TABLE

  • Düzelt — İşlem listesinde seçili satırı değiştirme (Enter veya DÜZELT). Yetki, provizyon, mutabakat kilidi, düzeltme günü/PIN kontrollerinden geçer. Virman, parite ve ETTN'li satır düzeltilemez; tarih, fiş no, kasa ve hesap değişmez, kur yeniden çekilmez. ERPGOLD'da: iScreen.onDuzeltClickCari.Islem.Update; tetikleyici sil-yeniden-yaz çalıştığından defterler kendiliğinden yenilenir. Playbook PB-030. → bkz. İptal · Düzeltme onayı · Mutabakat kilidi · History · Kanonik: TERM-DUZELT, WF-ISLEM-DUZELT

  • Düzeltme açıklaması — Düzeltme/iptalde neden yazma zorunluluğu; ayar açıksa istenir ve saklanır. ERPGOLD'da: Settings DuzeltmeAciklama = Var ise FrmSilmeOnayAl açıklama ister, Sistem.SilAciklama'ya yazar (93.175 satır). Doküman "her zaman zorunlu" der, kod ayara bağlar — CTR-011. → bkz. Düzelt · Silme onayı · Kanonik: TERM-DUZELTME-ACIKLAMASI

  • Düzeltme onayı / Düzeltme gün — "Kaç gün öncesine kadar düzeltilebilir" kuralı: serbest, PIN gerekli veya N günden eski düzeltilemez. ERPGOLD'da: Settings ModifyPermission, DuzeltmeGun; mesaj "İşlem Tarihinden İtibaren N Gün Geçmiştir." Koddaki karşılaştırma ifadesinin hatalı yazıldığı not edilmiştir (CTR-022). → bkz. Silme onayı · PIN kodu · Settings · Kanonik: TERM-DUZELTME-ONAYI

E

  • EDS (Exchange Data Server) — AIFASOFT'un döviz bürolarına canlı kur besleyen ayrı ürünü. "Kur gelmiyor" şikâyetinde önce EDS bağlantısına bakılır. ERPGOLD'da: EDS doğrudan SQL ile Sistem.KurEkle(@Symbol,@Alis,@Satis) yordamını çağırır, ürün takma adı = ERP birim kodu. Playbook PB-061. → bkz. Kur listesi · Pano kuru · Kanonik: TERM-EDS, INT-KUR-EDS

  • Efektif — Fiziksel banknot; sektörde "döviz" denince genellikle bu kastedilir. Efektif ≠ Kaydi döviz (banka hesabındaki para). ERPGOLD'da: nakit kartı = kasadaki efektif; banka hesabı ayrı cari hesap türü (Banka = 2) ile izlenir. → bkz. Döviz · Nakit kartı · Hesap türü · Kanonik: SEC-NAKIT

  • E-belge (e-Döviz Alım/Satım Belgesi, e-fatura, e-arşiv) — İşletmenin mevzuat gereği düzenlediği elektronik mali belge. Yetkili müessesede e-Döviz belgesi ERPGOLD'un E-FATURA penceresinden entegratöre iletilir; her belgenin tekil numarası ETTN'dir. Kuyumcu müşteriler ERPGOLD üzerinden e-Fatura kesmez; belge kendi mali/e-belge sisteminden düzenlenir (AIFASOFT ürün sahibi). Mevzuattaki adlar: DAB/DSB, e-Döviz Alım/Satım Belgesi, Kıymetli Maden Alım/Satım Belgesi (GAP-MEVZUAT). Ticket temalarında %11,5 ile ikinci sırada. ERPGOLD'da: FrmEFaturaBas, Ebelge.SendToEntegrator; ETTN dolu işlem düzeltilemez/silinemez ("E-DOVIZ FATURASI GONDERILMIS ISLEMLER DUZELTILEMEZ") — önce belge iptal edilir. Playbook PB-020. → bkz. ETTN · Resmi (tip 11) · Resmi şube · Entegratör · Kanonik: TERM-E-FATURA-E-DOVIZ-BELGESI, INT-EFATURA

  • Ekstre — Bir hesabın belli tarih aralığındaki işlem dökümü ve yürüyen bakiyesi; müşteriye mutabakat için gönderilir. ERPGOLD'da: F4 hesap ekstresi, F9 bakiye ekstresi (fiş kısayolları); Bakiye Extresi menü raporu; zaman aşımı sorunları PB-052. → bkz. Fiş/rapor kısayolları · Mutabakat · Kanonik: TERM-FIS-RAPOR-KISAYOLLARI

  • Emanet (işlem tipi 4) — Mal geçici olarak bırakıldı, mülkiyet değişmedi: müşteri bileziğini tamire bıraktı gibi. ERPGOLD'da: tIslemTipi.EMANET = 4, harf E; MADEN/HURDA'da stok ve bakiye üretir (veride 363 + 25 satır), NAKİT'te tip 4 stok üretmez. NAKİT listesinde "EMANET" etiketi PARİTE'yi gösterebilir (CTR-027). → bkz. İşlem tipi · Kanonik: TERM-EMANET-ISLEM-TIPI-4

  • Emtia — Genel ticarette "alınıp satılan mal"; finans dilinde altın, petrol gibi standart hammaddeler. ERPGOLD'daki dar anlamı: altın/hurda/nakit dışında alınıp satılan ikincil mal (gümüş külçe, pul, ambalaj). ERPGOLD'da: EMTİA ekranı (E, işlem kodu 13); tek fiyat, tek birim, alış/satış ayrımı yok. İki anlam karışması CTR-SEC-EMTIA-01. → bkz. Genel stok · Külçe · Kanonik: TERM-EMTIA, SEC-EMTIA

  • Entegratör — E-belgeyi GİB'e ileten yetkili aracı firma. Belge "gönderildi" demek entegratörün kabul ettiği demektir; reddederse belge yoktur. ERPGOLD'da: şube kartı RESMİ BİLGİLER sekmesinde entegratör kullanıcı bilgileri (Sistem.Sube.Entegrator); test/canlı ayrımı EBelgeTest. → bkz. E-fatura · Resmi şube · Kanonik: INT-EFATURA

  • Escalate (yazılımcıya devir) — Destek personelinin playbook adımları tükenince konuyu geliştiriciye taşıması. Koşul: (a) tetikleyici/prosedür davranışı şüpheli, (b) tutarsızlık SELECT ile kanıtlanmış, (c) müşteri-özel şema/entegrasyon söz konusu. ERPGOLD'da: paket = CUST-id, kurulum profili, sürüm, hesap/tarih/fiş/IslemId, üç teşhis sorgusu çıktısı, İşlem Geçmişi görüntüsü. Üretim DB'sinde yazma yalnız yazılımcı ve yedek sonrası. → bkz. Playbook · Ticket · Kanonik: EXISTING_STAFF_GUIDE

  • ETTN — Elektronik belgenin evrensel tekil numarası (UUID); Cari.IslemDetaylari.ETTN. Dolu ise belge entegratöre iletilmiştir (ERPGOLDV2 yetkili müessese kurulumunda belgeli satırların %95+'ında dolu). ETTN kolonunun varlığı tek başına "ERPGOLD e-Fatura gönderir" anlamına gelmez. ERPGOLD'da: Cari.IslemDetaylari.ETTN; tetikleyici ETTN dolu satırın düzeltilmesini/silinmesini engeller. → bkz. E-fatura · Cari.IslemDetaylari · Kanonik: TERM-ETTN

  • Evrak / uyum (KYC kapısı) — Belirli müşterilerde işlem yapmadan önce zorunlu kimlik/belgelerin toplanmış olması. Eksikse işlem kaydedilmez. ERPGOLD'da: tetikleyici Cari.GetGerekliEvraklar ile "BU HESABIN ZORUNLU EVRAKLARI EKSIKTIR" verip geri alır; hesap kartındaki dosya kategorisi zorunlu seti belirler. "İşlem butonları yok" çağrısının nedenlerinden biri (PB-044). → bkz. KYC · AifaUyum · MASAK · Kanonik: TERM-EVRAK-UYUM-KYC, WF-KYC-EVRAK-KAPISI-TETIK

F

  • F.TİPİ harfleri (A / M / O / H) — İşlem listesinde fiyat tipinin tek harfle gösterimi: A adet, M miktar (gram), O ons, H has. ERPGOLD'da: tFiyatTipi {Ad=0, Miktar=1, Oz=2, Has=3}. → bkz. Fiyat tipi · Kanonik: TERM-F-TIPI-HARFLERI

  • F2 – KAYIT / ESC – KAPAT — İşlem ekranlarının kaydet/kapat tuşları. F2 kaydeder, F5 kaydedip fatura penceresi açar, F3 KARŞI HESAP paneline gider, Shift+Esc kaydetmeden kapatır. ERPGOLD'da: iFormBase.ProcessKeyPreview; "F2'ye bastım hiçbir şey olmadı" çağrısı çoğu zaman şube/kasa/hesap seçili değil veya miktar 0 demektir (PB-045). → bkz. iFormBase · Karşı hesap · Kanonik: TERM-F2-KAYIT-ESC-KAPAT

  • Fire / ramat — İşleme sırasında kaybolan altın (fire) ve toplanıp yeniden rafine edilen talaş/toz (ramat). Fire kontrol edilmezse kâr erir. Rafineride "rafinasyon payı" benzer bir kayıptır. ERPGOLD'da: üretim bölüm kartında fire/ramat oranı alanı; bölüme çıkış/dönüş farkı. Takozların %29'unda giriş bakiyesine ortalama +%0,27 pay eklendiği görülmüş, kodda karşılığı bulunamamış (GAP-TAKOZ-FIRE). → bkz. Bölüm · Çeşni · Rafineri · Kanonik: SEC-URETICI-ATOLYE, MOD-URETIM

  • Fixing indirimi — Hesap kartında, uluslararası fixing (referans fiyat) ücreti üzerinden müşteriye tanınan indirim. ERPGOLD'da: hesap kartı Fixing Discount alanı (Cari.Hesaplar.FixingDiscount). → bkz. Cari hesap · LBMA · Kanonik: TERM-FIXING-INDIRIMI

  • Fiyat — Birim fiyat/kur: maden ve nakitte günün kuru, ziynette adet fiyatı, işçilikli üründe işçilik bedeli. Neyin başına olduğunu F.TİPİ söyler. ERPGOLD'da: Cari.Islemler.Fiyat decimal(18,8); kaynağı işleme göre değişir (BirimKur). → bkz. Fiyat tipi · Tutar · Kur · Kanonik: TERM-FIYAT

  • Fiyat tablosu — Bazı kurulumlarda maden kartlarına şube bazlı sabit fiyat tanımı. ERPGOLD'da: Sistem.FiyatTablosu (örnek DB'de 0 satır); MADEN ekranı stok seçilince buradan fiyat getirebilir. → bkz. Fiyat · Kanonik: TERM-FIYAT-TABLOSU

  • Fiyat tipi (F.TİPİ) — Fiyatın neyin başına olduğu: adet başına, gram başına, ons başına veya has gram başına. Aynı fiyat rakamı farklı F.TİPİ ile bambaşka tutar verir. ERPGOLD'da: F.TIPI alanı; Cari.Islemler.FiyatTipi zorunlu ve varsayılansız, kaynağı Stok.Maden.FiyatTipi. Vadeli kodda ayrı enum (Miktar/Has). Peşin hurda/perakendede varsayılanı Settings PesinKurTipi belirler. → bkz. F.TİPİ harfleri · Ons · Peşin kur tipi · Kanonik: TERM-FIYAT-TIPI-F-TIPI

  • Fiş / fiş numarası — Bir kayıt tuşunda oluşan ve bir veya birkaç işlem satırını gruplayan belge numarası; iki bacaklı işlemler aynı fişi paylaşır. Fiş no ≠ İşlem no (Id her satırın tekil kimliğidir). ERPGOLD'da: FisNo; tek global sayaç GetNewFisNo = MAX(FisNo)+1, kilit yok → iki kişi aynı anda kaydedince aynı fiş numarası (TD-02, PB-065). → bkz. GetNewFisNo · İşlem numarası · İptal (Fiş No) · Kanonik: TERM-FIS-FIS-NUMARASI

  • Fiş/rapor kısayolları (F1–F11) — Hesap açıkken: F1 işlem fişi, F2 son durum, F3 takoz ekstresi, F4 hesap ekstresi, F5 takoz fişi, F9 bakiye ekstresi, F11 tahsilat fişi; Shift+F özel tasarımlar, Ctrl+Y fatura. ERPGOLD'da: iScreen.ProcessKeyPreview; fiş tasarımı kullanıcı ayarından gelir. → bkz. Ekstre · Kullanıcı ayarları · Kanonik: TERM-FIS-RAPOR-KISAYOLLARI

  • Fn.Bol (korumalı bölme) — Bölen sıfırsa sonucu sıfır sayan SQL fonksiyonu; raporlardaki "Divide by zero" hatasını önler. ERPGOLD'da: FN.Bol; kodda .Divide() uzantısı. Hâlâ hata veren raporlar için PB-051. → bkz. Bilanço · Kanonik: TERM-FN-BOL

  • FX Trader / MT4 — AIFASOFT'un ayrı ürünü olan alım-satım platformu; maden ticareti yapan firmalar pozisyonlarını burada kapatır (hedge). ERPGOLD'un parçası değildir. ERPGOLD'da: kuyumcu kurulumunda MT4 emir/ticket senkron prosedürleri müşteri-özel olarak gözlenmiştir; hesap kartında FX terminal alanları. → bkz. Hedge · Pozisyon · Kanonik: INT-FXTRADER-MT4

G

  • GAP / CTR (kurumsal işaretler) — GAP = "bilmiyoruz, uydurmadık"; CTR = "iki kaynak farklı söylüyor, sessizce taraf tutmadık". Bu kitabın ve wikinin dürüstlük kuralıdır. ERPGOLD'da: her makalede **GAP:** / **CTR:** satırı; toplu liste governance dosyalarında. → bkz. GENERATED_PROPOSAL · Kanonik: KNOWN_GAPS, CONTRADICTIONS

  • GENERATED_PROPOSAL — Analiz sırasında üretilmiş, üretimde olmayan nesne/öneri. "ERPGOLD özelliği" diye anlatılmaz. ERPGOLD'da: POS.* şeması (6 tablo), KYC.* (dev DB'ye sonradan kuruldu), dbo.Face* (deneysel), Reports.MusteriUrunHacimRaporu / RPT-91 — hepsi analiz kalıntısı (CANONICAL_INVENTORY_AUDIT §5). → bkz. GAP/CTR · Kanonik: CANONICAL_INVENTORY_AUDIT

  • Genel stok — Kutu, poşet, etiket, sarf malzemesi gibi altın olmayan kalemler. ERPGOLD'da: GENEL ekranı (G, işlem kodu 10, harf S); Stok.Genel. → bkz. Emtia · Kanonik: TERM-GENEL-STOK

  • GetNewFisNo — Yeni fiş numarasını üreten fonksiyon: silinmemiş satırların en büyük fiş numarası + 1. ERPGOLD'da: Cari.Islem.GetNewFisNo; kilit/sequence yok, çok kullanıcıda yarış koşulu (TD-02). → bkz. Fiş · Kanonik: TERM-GETNEWFISNO

  • Giriş — Malın veya paranın işletmeye girmesi: müşteri altın/döviz/TL bıraktı, biz aldık. Giriş ≠ Alış sözcük farkı (aynı taraf). HİZMET ekranında giriş = hizmet aldık = gider. ERPGOLD'da: IslemTuru = 0, işaret artı (+); stoğa ekler, müşteriyi alacaklandırır; ekran yeşil. → bkz. Çıkış · Alış · İşlem (yön) · Kanonik: SEC-GIRIS, TERM-ISLEM-TURU-0-GIRIS-G

  • Gram — Terazinin gösterdiği ağırlık. Üç "gram" vardır: brüt gram (terazi), has gram (brüt × milyem), gram altın (ürün adı: 1–100 g basılı küçük külçe). Has ≠ Gram. ERPGOLD'da: terazi gramı MIKTAR alanına girilir; has program tarafından hesaplanır. → bkz. Has · Miktar · Gram altın · Kanonik: SEC-GRAM

  • Gram altın — 995/999 saflıkta, 1–100 g arası sertifikalı küçük külçe; perakendede yatırım ürünü. ERPGOLD'da: maden kartı olarak tanımlanır; işçiliği yok, değeri has × has kuru. → bkz. Külçe · Gram · Kanonik: SEC-KULCE

  • Grup kodu / Kategori — Hesap ve stok kartlarında raporlama için serbest gruplama etiketleri. ERPGOLD'da: INSERT ile yeni değer eklenir, DELETE ile silinir (Sistem.DbCombo); Kategori, Kategori2, GrupKodu. → bkz. Cari hesap · Stok kartı · Kanonik: TERM-GRUP-KODU-KATEGORI

  • Gümüş durumu — Takoz içindeki gümüşün (ve Ekstra raporda platin/paladyumun) müşteri hesabına nasıl yansıyacağı: Madeni Ver, Altına Çevir, İşçilikten Düş, Madeni Bırak. ERPGOLD'da: tMadenDurumu {0..3}; takoz ekranında GÜMÜŞ DURUMU / PLATİN DURUMU / PLD. DURUMU. → bkz. İşçilik durumu · Takoz · Kanonik: TERM-GUMUS-DURUMU

H

  • Has — Bir altın parçasının içindeki saf altın miktarı, gram cinsinden: 100 g 22 ayar bilezik = 91,6 g has. Sektörün ortak paydası: farklı ayarlar ancak has'a çevrilince toplanır ve fiyatlanır. Has ≠ Gram (brüt) · Has ≠ 24 ayar (ürün sınıfı). ERPGOLD'da: HAS = MİKTAR × MİLYEM (milyem ondalık: 0,916); MADEN ekranında otomatik hesaplanır, HAS elle değiştirilirse milyem geri hesaplanır. Hesaplanan kolon SHas; birim kodu HAS (Id 1). Milyem 0 girilirse tetikleyici 1 kabul eder (has = miktar). → bkz. Milyem · Ayar · Gram · Maden · Hurda · Takoz · Kanonik: TERM-HAS, SEC-HAS, MET-HAS

  • Has kuru — Bir gram saf altının TL fiyatı; altının "kuru". 22 ayar gram fiyatı = has kuru × 0,916 (+ işçilik). ERPGOLD'da: kur listesinde HAS biriminin alış/satış kuru; kayıt anında satıra HasKur olarak fotoğraflanır. → bkz. Kur · Kur fotoğrafı · Has · Kanonik: SEC-KUR

  • Hedge (pozisyon koruma) — Elde tutulan altın/dövizin fiyat riskini, ters yönde bir işlemle (ör. yurt dışı platformda satış) kapatmak. Hedge edilmeyen pozisyon spekülasyondur (SECTOR_KNOWLEDGE). ERPGOLD'da: doğrudan "hedge" işlemi yok; pozisyon raporundan açık pozisyon okunur, koruma FX Trader/MT4 tarafında yapılır. Kanonik sözlük maddesi yok — GAP-SOZLUK-HEDGE. → bkz. Pozisyon · FX Trader · Vadeli işlem · Kanonik: SEC-MADEN-TICARETI-YAPAN-FIRMA

  • Hesap türü — Hesap kartındaki tür: Bakiye (0), Yetkili Kurum (1), Banka (2), Diğer (3), Masraf (4), Devir (5). ERPGOLD'da: Cari.Hesap.THesapTuru; istatistik kodu türetiminde kullanılır. Koddaki yorum 5'i "Merkez Bankası" diye anar (CTR-033). Hesap türü ≠ HesapType. → bkz. HesapType · İstatistik kodu · Devir · Kanonik: TERM-HESAP-TURU

  • HesapType (CariHesap / Sube) — İşlemin karşı tarafı bir cari hesap mı (0) yoksa bir şube mi (1)? Şubeye yapılan işlem "Transfer" tipidir ve yalnız çıkış yönüne izin verilir. ERPGOLD'da: tHesapType {CariHesap=0, Sube=1}, Cari.Islemler.HesapType/Type. → bkz. Transfer · Hesap türü · Kanonik: TERM-HESAPTYPE

  • Hizmet (masraf) — Fiziki malı olmayan kalem: kargo, sigorta, ayar evi ücreti, komisyon, kira. GİRİŞ = hizmet aldık (gider), ÇIKIŞ = hizmet verdik (gelir). ERPGOLD'da: HİZMET ekranı (7, işlem kodu 5, harf G); miktar yerine tutar zorunlu; stok üretmez, yalnız bakiye üretir (V2 7.870 satır, %100 bakiye). → bkz. Giriş · Genel stok · Kanonik: TERM-HIZMET, SCR-IFHIZMET

  • Hukuki kod — Hesap kartında, BTrans/istatistik raporları için gereken müşteri sınıfı (örnek DB: 01-İHRACATÇI, 02-SANAYİCİ). ERPGOLD'da: Cari.Hesap.HukukiKod, Sistem.HukukiKodlar. → bkz. BTrans · İstatistik kodu · Kanonik: TERM-HUKUKI-KOD

  • Hurda — Müşterinin bozdurmak için getirdiği kullanılmış, kırık, modası geçmiş altın. Takı olarak değil ham altın olarak alınır; işçilik ödenmez, yalnız has ödenir. İki şey ölçülür: terazi gramı ve milyem (mihenk, XRF, ayar evi). Hurda ≠ Maden (madende milyem karttan gelir, hurdada ölçülür). ERPGOLD'da: HURDA ekranı (4, işlem kodu 2, harf H) yalnız "hurda" işaretli kartları (Stok.Maden.IsHurda) listeler; açılışta ÇIKIŞ ve 995 gelir; müşteri hurda getirince GİRİŞ. → bkz. Maden · Has · Milyem · Takoz · Mihenk · Kanonik: TERM-HURDA, SEC-HURDA, SCR-IFHURDA

I

  • IsDeleted (yumuşak silme) — Hiçbir kayıt fiziksel olarak silinmez; "silindi" işareti konur. Silinen işlem listede ve raporda görünmez ama tabloda durur. ERPGOLD'da: IsDeleted = 'True'; silinen işlemin türetilmiş bakiye/stok satırları tetikleyiciyle temizlenir. Her teşhis sorgusunda IsDeleted süzgeci şarttır. → bkz. İptal · Tetikleyici · Kanonik: TERM-ISDELETED

  • iFormBase — Bütün işlem ekranlarının (iFMaden, iFNakit, iFHurda…) ortak taban sınıfı: F2/F5 kaydet, F3 karşı hesap, Esc, KARŞI HESAP paneli, kategori/proje alanları. ERPGOLD'da: ekran/Ekran/iFormBase.vb; bir ekranda görülen tuş davranışı diğerlerinde de aynıdır. → bkz. F2/ESC · Karşı hesap · iScreen · Kanonik: TERM-IFORMBASE, SCR-IFORMBASE

  • iScreen — Cari İşlemler ana kontrolü: hesap seçimi, menü düğmeleri, işlem listesi, fiş kısayolları, DÜZELT/İPTAL/İptal (Fiş No), F12 mutabakat. ERPGOLD'da: basecontrol/Base Control/iScreen.vb (1.254 satır); yetkiye göre düğmeleri gizler (InitPermission). → bkz. Cari İşlemler · İşlem listesi · Kanonik: TERM-ISCREEN, SCR-ISCREEN

İ

  • İade (işlem tipi 3) — Daha önce verilen/alınan malın geri dönmesi; girişte işçilik stok detayındaki birim fiyattan hesaplanır. ERPGOLD'da: tIslemTipi.IADE = 3, harf I; gerçek veride kullanım gözlenmemiştir (matris). → bkz. İşlem tipi · Kanonik: TERM-IADE-ISLEM-TIPI-3

  • İptal — İşlemi silinmiş işaretleme. Akış: yetki → provizyon → mutabakat kilidi → silme onayı/PIN → açıklama → karşı kayıt sorusu (aynı RefNo) → e-fatura kapısı → açıklama kaydı. Virmanda karşı bacak reddedilirse iptal olmaz. ERPGOLD'da: iScreen.OnIptalClickCari.Islem.DeleteAt; fiziksel silme yok. Playbook PB-031. → bkz. IsDeleted · Silme onayı · Karşı kayıt · İptal (Fiş No) · Kanonik: TERM-IPTAL, WF-ISLEM-IPTAL

  • İptal (Fiş No) — Bir fişin bütün satırlarını tek seferde silme. Tehlikeli kısayol: açıklama, karşı kayıt ve e-fatura kontrolü yoktur, yalnız aktif kasadaki satırları siler. ERPGOLD'da: yalnız resmi modda görünür, sabit yönetici şifresi ister (değer yazılmaz), doğrudan SQL ile IsDeleted yapar (CTR-012). → bkz. İptal · Fiş · Kanonik: TERM-IPTAL-FIS-NO

  • İstatistik kodu — E-döviz/resmi raporlarda her işleme, hesap türü + hukuki kod + işlem kodu/türü/tipi + arbitraj bilgisinden üretilen sınıflandırma kodu. Boşsa belge kesilmez ("Lütfen İstatistik Kodunu Giriniz." — PB-021). ERPGOLD'da: FN.GetIstatistikKodu(...), Cari.Istatistik. → bkz. Hukuki kod · Hesap türü · E-döviz belgesi · Kanonik: TERM-ISTATISTIK-KODU, INT-EDOVIZ-ISTATISTIK

  • İşçilik — Ürünün imalat bedeli; altın değerinin üstüne eklenir. İki söyleyiş: milyem cinsinden ("916 + 50 milyem") veya para cinsinden ("gramı 150 TL"). Hurda ve külçede işçilik yoktur. ERPGOLD'da: MADEN ekranında ayrı alan olarak girilmez; TUTAR − altın değeri farkından hesaplanıp Iscilik, IscilikBirimId, IscilikBirimKur alanlarına yazılır. Stok defterinin Maliyet kolonu yalnız işçilik TL'dir (CTR-SEC-MALIYET-01). Takozda HAS İŞÇİLİK / AG İŞÇİLİK. → bkz. Maliyet · Has · İşçilik durumu · Model · Kanonik: TERM-ISCILIK, SEC-ISCILIK

  • İşçilik durumu — Takoz işçiliğinin nasıl tahsil edileceği: altından düş (has'tan) veya para ile. ERPGOLD'da: tIscilikDurumu {AltindanDus=0, ParaIle=1}; "işçilikten düş" seçeneği bu enum'da değil gümüş durumundadır (CTR-024). → bkz. Gümüş durumu · İşçilik · Kanonik: TERM-ISCILIK-DURUMU

  • İşlem (yön) / İşlem türü — Her işlem ekranındaki İŞLEM alanı: GİRİŞ/ÇIKIŞ (maden, nakit, hizmet), ALACAK/BORÇ (çevir, virman), ALIŞ/SATIŞ (vadeli, parite). Yön bakiyenin işaretini belirler. İşlem türü ≠ İşlem tipi ≠ İşlem kodu. ERPGOLD'da: IslemTuru 0 GİRİŞ (+) · 1 ÇIKIŞ (−) · 2 ALACAK · 3 BORÇ · 4 ALIŞ · 5 SATIŞ; veride yalnız 0, 1, 4, 5. Hesaplanan Yon kolonu: {0,2,4} → '+'. → bkz. Giriş · Çıkış · Alış · Satış · Kanonik: TERM-ISLEM-YON, ENUM-ISLEM-TISLEMTURU

  • İşlem kodu (IslemKodu) — İşlemin hangi ekrandan / hangi ürün grubundan geldiği: 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 · 14 ÇEŞNİ · 999 DEVİR/BORÇ. ERPGOLD'da: tIslemKodu; kod tablosu Sistem.CariIslemKodu; 14 (ÇEŞNİ) kodda var DB tablosunda yok, 999 DB'de "DEVİR" kodda "BORC" (CTR-039). Tetikleyici bu koda göre dallanır. → bkz. İşlem türü · İşlem tipi · İşlem kısaltması · Kanonik: ENUM-ISLEM-TISLEMKODU, TERM-ISLEM-KODU-1-MADEN-M

  • İşlem kısaltması (MGN, NCP, CA…) — İşlem listesindeki üç harf: işlem kodu harfi + yön harfi + tip harfi. MGN = Maden Giriş Normal, NCP = Nakit Çıkış Peşin, MCR = Maden Çıkış Resmi, CA/CB = Çevir Alacak/Borç, VA/VS = Vadeli Alış/Satış. ERPGOLD'da: Sistem.GetIslemKodu = Kodu.Kod + Turu.Kod + IsNull(Tipi.Kod,''); DB'de olmayan tip (12–15) ve çeşni satırlarında harf eksik çıkar. VADELİ ve VİRMAN aynı V harfini paylaşır, PLATİN ve PEŞİN aynı P'yi. → bkz. İşlem kodu · İşlem türü · İşlem tipi · Kanonik: TERM-ISLEM-KISALTMASI

  • İşlem listesi — Cari İşlemler'de LİSTE (0) ile açılan, hesabın işlemlerini gösteren tablo: M (mutabakat), Id, İşlem, Kodu, Miktar, Has, Fiyat, Tutar, Birim, Fiş No, Açıklama, Kayıt, Kullanıcı, MTarih. Enter = Düzelt, Boşluk = seç, F12 = mutabık. ERPGOLD'da: iScreen.VwIslem, fonksiyon Cari.IslemListesi; sütun düzeni Sistem.ListLayout'a kaydedilir (PB-053). → bkz. İşlem kısaltması · Düzelt · Mutabakat · Kanonik: TERM-ISLEM-LISTESI

  • İşlem numarası (Id) — Her satırın bütün sistemde tek olan kimliği; destek çağrısında atıf noktası. Id ≠ Fiş no. ERPGOLD'da: Cari.Islemler.Id; işlem listesinin Id sütunu; bakiye/stok defteri satırları IslemId ile buna bağlanır. → bkz. Fiş · Karşı kayıt · Kanonik: TERM-ISLEM-NUMARASI

  • İşlem tipi (IslemTipi) — İşlemin ödeme/defter biçimi: 0 NORMAL · 1 PEŞİN · 2 BEDELLİ · 3 İADE · 4 EMANET · 5 MİKTAR · 6 ALTIN / 7 GÜMÜŞ / 8 PLATİN / 9 PALADYUM (takoz metal tipi) · 10 PARİTE · 11 RESMİ (kod adı FATURA) · 12 MAHSUP · 13–15 kodda var DB'de yok · −1/−2 vadeli varyantları. ERPGOLD'da: tIslemTipi, SQL tipi tislemtipi; ekranda TİP listesi çalışma anında dolar, sırası kuruluma göre değişebilir. Kuyumcu kurulumu 1/11/12'yi hiç kullanmaz. → bkz. Normal · Peşin · Resmi · Mahsup · Emanet · Kanonik: TERM-ISLEM-TIPI, ENUM-ISLEM-TISLEMTIPI

K

  • Kâr — Satış değeri ile maliyet arasındaki fark. İki kaynağı karıştırma: işlem kârı (marj, işçilik farkı — gerçekleşmiş) ve pozisyon kazancı (kur/altın fiyatı hareketi — gerçekleşmemiş, bilançoda ayrı). ERPGOLD'da: her satırda Maliyet ve Satis; hesaplanan Kar kolonu (giriş yönünde Maliyet − Satis, çıkışta Satis − Maliyet). Metrik formülü ile kodun farkı CTR-SEC-KAR-01. → bkz. Marj · Maliyet · Kur farkı · Pozisyon · Kanonik: TERM-KAR, SEC-KAR

  • Karat — İki farklı şey: taş/pırlanta ağırlığı (1 ct = 0,2 g) ve İngilizce'de altın ayarı (karat = ayar). Türkçede altın için "ayar", taş için "karat" denir. ERPGOLD'da: pırlanta/taş kartlarında karat alanları (D1Crat…); MIKTAR karat olarak gelebilir. → bkz. Pırlanta · Taş · Ayar · Kanonik: SEC-PIRLANTA

  • Karşı hesap (panel) — İşlem ekranının altındaki KARŞI HESAP paneli: işlem aynı anda seçilen ikinci hesaba/şubeye de yazılır (çift kayıt). Hesap kartındaki "Karşı Hesap" ise pasife alınan hesabın bakiyesinin aktarılacağı hesaptır — iki farklı şey. ERPGOLD'da: iFormBase.PnlTransfer, F3 ile odaklanır; "Karşı Hesaba Transfer Edilemedi" (PB-047). → bkz. Virman · Transfer · Karşı kayıt · Kanonik: TERM-KARSI-HESAP, WF-KARSI-HESAP-CIFT-KAYIT

  • Karşı kayıt / karşı bacak (RefNo) — İki bacaklı işlemlerde (virman, parite, vadeli, çevir, arbitraj) aynı referans numarasıyla bağlanan ikinci satır. Biri iptal edilince diğeri sorulur; tek satır kalırsa bakiye bozulur (PB-048). ERPGOLD'da: Cari.Islem.RefNo, OwnerRefNo; vadeli/parite bağı ayrıca VaryantId ile. → bkz. Varyant · İptal · Virman · Kanonik: TERM-KARSI-KAYIT

  • Kasa — Vezne/banko: malın ve paranın fiziken durduğu yer. Her kasanın stoku ayrıdır; her işlem bir kasaya yazılır. Kasa ≠ Cari. ERPGOLD'da: Sistem.Kasalar, Program.KasaId; kasası olmayan şubede işlem yapılamaz ("Sube, Kasa veya Hesap Seçili Değil"). Yanlış kasa = "stok listesi boş" (PB-037). → bkz. Şube · Resmi kasa · Transfer · Stok · Kanonik: TERM-KASA

  • Kaydi döviz — Banka hesabında duran, banknot olmayan döviz. Sektörde efektifin karşıtı. ERPGOLD'da: kasada nakit kartı değil, Banka türü cari hesapta bakiye olarak izlenir. → bkz. Efektif · Hesap türü · Kanonik: SEC-DOVIZ

  • Kur — Bir para biriminin (veya madenin) başka birim cinsinden fiyatı; "USD/TL 40,00" (örnek, güncel değil). Sektörde kur her zaman çifttir (alış/satış). Kur ≠ Parite. ERPGOLD'da: Sistem.Kurlar — her birim için tarihli alış/satış; elle girilir veya EDS/TCMB'den gelir. Kur girilmemişse bilanço 0, has karşılığı yanlış, "Lütfen Tutar Giriniz" (PB-036). → bkz. Kur listesi · Alış/satış kuru · Sistem kuru · Pano kuru · Kanonik: TERM-KUR, SEC-KUR

  • Kur farkı (metrik) — Pozisyonun kur değişiminden kaynaklanan değerleme farkı; gerçekleşen alım-satım kârıyla toplanmaz. ERPGOLD'da: Bilanco.GetKurFarki: pozisyon × (kapanış kuru − ortalama maliyet kuru). MET-KUR-FARKI. → bkz. Kâr · Pozisyon · Bilanço

  • Kur fotoğrafı (HasKur, GumKur, UsdKur, EurKur…) — Kayıt anındaki alış kurlarının işlem satırına "fotoğraf" olarak yazılması; raporlar "işlem günkü kur" için bunları, "bugünkü kur" için kur listesini kullanır. ERPGOLD'da: Cari.Islemler.HasKur/GumKur/PltKur/PldKur/UsdKur/EurKur; tip 11/12'de UsdKur TCMB'den. Düzeltmede kur yeniden çekilmez (BR-KUR-003). → bkz. Kur · TCMB kuru · Kanonik: TERM-KUR-FOTOGRAFI

  • Kur listesi — Günün alış/satış kurları; Tanımlamalar'dan girilir, KOPYALA önceki günü kopyalar. Tarihte kur yoksa program en son kuru sessizce kullanır. ERPGOLD'da: Sistem.GetKurListesi(@Tarih) → yoksa Sistem.GetLastKur; bellekte 15 sn'de bir yenilenir. FN.GetKur her zaman alış döndürür, birim yoksa 1 (TD-21). → bkz. Kur · EDS · Sistem kuru · Kanonik: TERM-KUR-LISTESI, SCR-FRMKURGIRISEKRANI

  • Kullanıcı — Personelin kullanıcı adı, şifresi ve bağlı olduğu şube-kasa çiftleri; yetkileri grubundan alır. ERPGOLD'da: Sistem.Users, Sistem.UserDetails; aynı kullanıcı birden fazla şube-kasaya eklenebilir. Yetki değişikliği yeniden girişte geçerli olur. → bkz. Yetki grubu · Kullanıcı ayarları · LoginInformation · Kanonik: TERM-KULLANICI

  • Kullanıcı ayarları — Kullanıcıya özel ayarlar: fatura serisi, fiş tasarımı, yazıcılar, varsayılan işlem tipi, terazi portu. ERPGOLD'da: Program.UserSettings.* (FisDizayni, DFIslemTipi…). Kullanıcı ayarları ≠ Settings (ikincisi tüm şubeleri etkiler). → bkz. Settings · DF işlem tipi · Terazi · Kanonik: TERM-KULLANICI-AYARLARI

  • Kuyumcu — Altını (ve gümüşü) mal olarak alan, işleyen, satan ve has gram üzerinden hesap tutan işletmelerin şemsiye adı; alt türleri perakendeci, toptancı, sarraf, atölye, rafineri. ERPGOLD'da: KUYUMCU_VARIANT; canlı örnek kuyumcu/rafineri kurulumu: %34 MADEN, %14 TAKOZ, %10 HURDA; ALTIN/GÜMÜŞ tipleri; VİRMAN döviz bürosunun 210 katı. → bkz. Perakende kuyumcu · Toptancı · Rafineri · Sarraf · Kanonik: SEC-KUYUMCU

  • Külçe — Rafineri/darphane tarafından standart saflık ve gramajda dökülüp damgalanmış saf altın bar (995 / 999,9; 1 g – 1 kg). İşçiliği yok. Külçe ≠ Takoz (takoz standart olmayan, rapor bekleyen dökme kütledir — CTR-SEC-TAKOZ-01). ERPGOLD'da: 995 has külçe alım-satımı HURDA ekranından (döviz kurulumu uygulaması) veya maden kartından; gümüş külçe emtia kartı olabilir. → bkz. Takoz · Gram altın · Has · Kanonik: SEC-KULCE

  • KYC (Know Your Customer / müşterini tanı) — Yükümlü işletmenin müşterisinin kimliğini tespit edip belgelemesi; MASAK mevzuatının gereği (eşikler GAP-MEVZUAT). Üç katman karıştırılmamalı: AifaUyum ürünü · KYC.* şeması · ERP çekirdeğindeki evrak kapısı + yasaklı sorgusu. ERPGOLD'da: çekirdekte tetikleyici evrak kapısı ve fatura penceresinde AmlScan sorgusu; KYC.* şemasının müşteri DB'lerinde varlığı UNKNOWN. → bkz. Evrak/uyum · AifaUyum · MASAK · Kanonik: MOD-KYC

L

  • LBMA — London Bullion Market Association; dünya altın piyasasının referans fiyatını (ons/USD "fixing") belirleyen kurum (SECTOR_KNOWLEDGE). Resmi referans olup olmadığı wikide hüküm olarak verilmez (GAP-MEVZUAT). ERPGOLD'da: doğrudan karşılığı yok; hesap kartındaki "fixing indirimi" bu referans fiyata göre tanımlanır. → bkz. Ons · Fixing indirimi · COMEX · Kanonik: SEC-ONS

  • Likidite — Bir varlığın hızla ve değer kaybetmeden paraya çevrilebilme kolaylığı; nakit en likit, taşlı takı en az likittir (SECTOR_KNOWLEDGE). ERPGOLD'da: doğrudan ölçen alan/rapor yok; kasa ve nakit stok raporları "eldeki hazır para"yı gösterir. GAP-SOZLUK-LIKIDITE. → bkz. Nakit · Pozisyon · Stok

  • Limit — Müşteriye tanınan azami borç. Aşılırsa çıkış işlemi reddedilir; "uyarı ver-geç" modu kodda yoktur (CTR-014). ERPGOLD'da: kontrol yalnız MADEN/HURDA/NAKİT ÇIKIŞ, tip ≠ PEŞİN ve şubede IsLimitControl açıkken; FN.GetCariLimit HAS cinsinden karşılaştırır; mesaj "Hesap Limiti Aşılıyor" (PB-047). → bkz. Borç · Cari hesap · Şube · Kanonik: TERM-LIMIT

  • LiveUpdate — Programın sürüm takibi ve exe güncelleme mekanizması; güncelleme fiilen exe dosyasının değiştirilmesidir. ERPGOLD'da: LiveUpdate.Version/SetVersion/Lock/UnLock/Status yordamları, LiveUpdate.VersionHistory; "güncelleme/sürüm" teması 135 çağrı (PB-012). → bkz. RDP · Ticket · Kanonik: INT-LIVEUPDATE

  • LoginInformation — Oturum bağlamı: kullanıcı (grup yetkileri), şube (limit kontrolü, entegratör), kasa (resmi kasa mı). Her kayda şube/kasa/kullanıcı Id'si buradan yazılır. ERPGOLD'da: LoginInformation.User/Sube/Kasa; Program.SubeId/KasaId/UserId. → bkz. Kullanıcı · Kasa · Şube · Kanonik: TERM-LOGININFORMATION

  • Lot — Vadeli işlemde standart sözleşme büyüklüğü; miktar = lot × çarpan. ERPGOLD'da: vadeli işlem kodundaki LotSize ve Carpan. → bkz. Çarpan · Vadeli işlem kodu

M

  • Maden — Programda altın ve gümüş ürünlerinin genel adı: bilezik, zincir, alyans, gram altın, ziynet. Her madenin stok kartı vardır: kod, milyem, adetle/gramla, parça gramı, işçilik, fiyat tipi, ana birim. ERPGOLD'da: MADEN ekranı (3, işlem kodu 1, harf M); Stok.Maden (121 kart, örnek DB). Kuyumcu kurulumunda işlemlerin %34'ü. → bkz. Stok kartı · Has · Hurda · Model · Kanonik: TERM-MADEN, SCR-IFMADEN, FLOW-IFMADEN

  • MadenStokDetay — Bir stok kalemi için son giren ilk çıkar mantığıyla türetilen özet: ortalama milyem, birim fiyat; çıkışta işçilik ve maliyet buradan. ERPGOLD'da: AIO.Stok.MadenStokDetay(StokId). → bkz. Maliyet · Kanonik: TERM-MADENSTOKDETAY

  • Mahsup (işlem tipi 12) — Muhasebede borcun alacakla sayışılması ya da nakit hareketi olmayan düzeltme fişi. ERPGOLD'daki dar anlamı: operasyonel stok/bakiye kaydı üretmeyen kayıt (devir, sayım farkı, açılış); belgelendirilmiş işlemler havuzuna DEVİR olarak girer. Mahsup (tip 12) ≠ Borç işlemleri (ikincisi bakiye üretir). ERPGOLD'da: tIslemTipi.MAHSUP = 12; V2 kod tablosunda satırı yok, KUYUMCU'da var; tetikleyici tip 12 için bakiye ve stok yazmaz (V2: 1.514 satır, hepsi şubeler arası kasa hareketi açıklaması — CTR-SEC-MAHSUP-01). USD karşılığı TCMB kurundan. → bkz. Resmi (tip 11) · Devir · Resmi stok · Kanonik: TERM-MAHSUP-ISLEM-TIPI-12, SEC-MAHSUP

  • Maliyet — Malın işletmeye kaça mal olduğu. Kuyumcuda iki katman: metal değeri (altın bir para birimidir; bugünkü has kuruyla değerlenir, geçmiş alış fiyatıyla değil) ve işçilik/marj (gerçek ticari kâr buradan). ERPGOLD'da: elle girilmez; stok defterinin Maliyet kolonu girişte yalnız işçilik TL (Iscilik × IscilikBirimKur), çıkışta 0; Stok.GetMadenMaliyeti bunu LIFO ile toplar ama TOP 50 hareketle sınırlı ve güncel kurla çevirir (TD-23 → maliyet sıçraması, PB-058). "Ortalama" adına rağmen ortalama alınmaz (CTR-SEC-MALIYET-01). → bkz. Kâr · İşçilik · Pozisyon · MadenStokDetay · Kanonik: TERM-MALIYET-SON-GIREN-ILK-CIKAR, SEC-MALIYET

  • Marj (spread) — Satış kuru ile alış kuru arasındaki fark; döviz bürosunun kârı. Marj = (satış − alış) × miktar. Finans dilindeki "spread" aynı şeydir — GAP-SOZLUK-SPREAD (kanonik maddesi marj altında). ERPGOLD'da: her satırdaki SatisMaliyet; satış yönünde alış kuru kullanılırsa marj kaybolur (TD-21, H-045). → bkz. Alış/satış kuru · Kâr · Kanonik: TERM-MARJ

  • MASAK — Mali Suçları Araştırma Kurulu; kara para aklamayı önleme mevzuatının yürütücüsü. Yükümlü işletmeler kimlik tespiti yapar, şüpheli işlemi bildirir, yasaklı listesini sorgular (madde/eşik: GAP-MEVZUAT). ERPGOLD'da: fatura penceresinde AmlScan/OptimalScan yasaklı sorgusu; "Bu Firma Masak Yasaklısıdır. İşlem Yapamazsınız" → pencere kapanır, belge kesilmez (PB-062). → bkz. KYC · Evrak/uyum · Yetkili müessese · Kanonik: INT-MASAK-AMLSCAN, WF-MASAK-YASAKLI-SORGULAMA

  • Menü kısayolları (0–9, C, E, F, G, M, P, V, X) — Cari İşlemler düğmeleri: 0 LİSTE · 1 TAKOZ G · 2 TAKOZ C · 3 MADEN · 4 HURDA · 5 NAKİT · 6 ÇEVİR · 7 HİZMET · 8 VADELİ · 9 TAŞ · C ÇEŞNİ · E EMTİA · F FATURA · G GENEL · M MODEL · P PIRLANTA · V VİRMAN · X PARİTE. ERPGOLD'da: Numaralandırma ayarı "Yeniden" ise rakamlar yetkiye göre değişir (CTR-019) — "3'e bastım başka ekran açıldı" bundandır. → bkz. Numaralandırma · Cari İşlemler · Kanonik: TERM-MENU-KISAYOLLARI

  • Mihenk taşı — Hurdanın ayarını hızlıca tahmin etmek için kullanılan geleneksel sürtme/asit testi; XRF ve ayar evi raporundan daha kaba (SECTOR_KNOWLEDGE). ERPGOLD'da: alan yok; sonucu HURDA ekranındaki MILYEM'e elle girilir. → bkz. Hurda · XRF · Ayar evi

  • Miktar — İşlemin ana miktarı: madende terazi gramı, nakitte para tutarı, ziynette adetten türer. Miktar 0 ile kayıt yasaktır (istisna: HİZMET, BORÇ, PIRLANTA, VİRMAN). ERPGOLD'da: Cari.Islemler.Miktar decimal(18,2); işaretli hâli SMiktar; negatif stok engellenmez (H-123). → bkz. Gram · Adet · Has · Tutar · Kanonik: TERM-MIKTAR

  • Miktar (işlem tipi 5) — Ödemenin has olarak değil girilen miktar cinsinden yapıldığı peşin hurda işlemi; mal bakiyesi yazılmaz, tutar zorunlu. ERPGOLD'da: tIslemTipi.MIKTAR = 5, harf M; V2'de 81 satır. → bkz. Peşin · Hurda · Kanonik: TERM-MIKTAR-ISLEM-TIPI-5

  • Milyem — Saflığın binde cinsinden yazılışı: 916 milyem = 1.000 birimin 916'sı altın. Ayarın ondalık karşılığı: 22 ayar = 916, 18 = 750, 14 = 585, 24 = 995–999,9. Milyem ≠ Ayar · Milyem ≠ Has (milyem oran, has sonuç). ERPGOLD'da: her yerde ondalık çarpan olarak durur (0,916; AuMilyem decimal(18,5)). Adetli üründe milyem alanı "bir adedin has karşılığı"nı taşır (yarım altın 3,21). Milyem 0 → tetikleyici 1 kabul eder. Negatif/aşırı milyem kontrolü yok (GAP-SEC-MILYEM-01). → bkz. Has · Ayar · Maden · Hurda · Kanonik: TERM-MILYEM, SEC-MILYEM

  • Model — Sektörde bir tasarımın (kalıbın) adı; ERPGOLD'da numaralı tek parça mamulün kartı (adet her zaman 1). Bağlı ayar madeninin milyemi/hası izlenir, işçilik karttadır. ERPGOLD'da: MODEL ekranı (M, işlem kodu 9, harf R); stok hareketi modelin bağlı olduğu maden kartına yazılır; "adet bazlı" ile "adet=1" anlatımları CTR-SEC-MODEL-01. → bkz. Maden · İşçilik · Takı · Kanonik: TERM-MODEL, SEC-MODEL

  • Mutabakat (cari, F12) — İki tarafın aynı bakiyede anlaştığını teyit etmesi; anlaşılan noktadan öncesi bir daha açılmaz. Mutabakat (F12) ≠ Mutabakat ekranı (ikincisi stok sayımıdır — CTR-SEC-MUTABAKAT-01). ERPGOLD'da: işlem listesinde satır seçilip F12Mutabakat = True, MUser, MTarih; M sütunu. Mutabakat kilidi ayarına göre önceki işlemler değiştirilemez. → bkz. Mutabakat kilidi · Mutabakat ekranı · Ekstre · Kanonik: TERM-MUTABAKAT, SEC-MUTABAKAT, WF-MUTABAKAT-F12

  • Mutabakat ekranı / Mutabakat Onay (stok sayımı) — Kasa ve stok tipi seçilip sayım satırlarının girildiği, sayım farkının onaylandığı ekranlar; adı "mutabakat" olsa da stok sayımıdır. ERPGOLD'da: Hesap Yönetimi ▸ Rapor ▸ Mutabakat (Mutabakat, MutabakatOnay — ACTIVE_CRITICAL). → bkz. Mutabakat (cari) · Stok · Kanonik: SCR-MUTABAKAT, SCR-MUTABAKATONAY, FLOW-MUTABAKAT

  • Mutabakat kilidi — Mutabık işaretlenmiş işlem ve öncesinde düzeltme/iptal yasağı ya da PIN zorunluluğu. ERPGOLD'da: Settings MutabakatPermission {IslemYapilamaz, PinGerekli}; mesaj "N Numaralı İşlemde Mutabakat Yapılmış. Önceki İşlemleri Değiştiremezsiniz." (PB-038). → bkz. Mutabakat · PIN kodu · Kanonik: TERM-MUTABAKAT-KILIDI

N

  • Nakit — Kasada fiziksel duran para (TL, USD, EUR banknotları). Üç ayrı şeyi karıştırma: nakit kartı (kasadaki para cinsinin stok kartı), birim (bakiyenin cinsi), NAKİT ekranı (para hareketlerinin girildiği ekran). ERPGOLD'da: NAKİT ekranı (5, işlem kodu 3, harf N): KODU, MİKTAR, BİRİM, FİYAT, TUTAR, VERGİ; has/milyem/adet yok. Döviz kurulumunda işlemlerin %82'si. → bkz. Nakit kartı · Birim · Döviz · Efektif · Kanonik: SEC-NAKIT, SCR-IFNAKIT, FLOW-IFNAKIT

  • Nakit kartı — Kasadaki her para cinsinin stok kartı; birimden farklıdır, ana birim üzerinden eşleşir. ERPGOLD'da: Stok.Nakit (132 kart, örnek DB); peşin işlemde BirimId bu tablonun Id'sidir. Karşı dövizin nakit kartı yoksa parite kaydı reddedilir. → bkz. Birim · Nakit · Peşin · Kanonik: TERM-NAKIT-KARTI

  • Normal (işlem tipi 0) — Bakiyeli (cari) çalışma: hem mal hem para tarafı hesaba yazılır; kasa para hareketi üretmez (NAKİT kodu hariç). Kuyumcu kurulumunda peşin iş de "hesap seçilmeden" NORMAL tipte yürür. ERPGOLD'da: tIslemTipi.NORMAL = 0, harf N; MADEN NORMAL → stok %100 + bakiye %100 (matris). → bkz. Peşin · İşlem tipi · Cari işlem · Kanonik: TERM-NORMAL-ISLEM-TIPI-0

  • Numaralandırma — Cari İşlemler düğme rakamlarının sabit mi yoksa görünür sıraya göre yeniden mi verileceği ayarı. ERPGOLD'da: Settings Numaralandirma = YenideniScreen.InitPermission rakamları yeniden dağıtır. → bkz. Menü kısayolları · Settings · Kanonik: TERM-NUMARALANDIRMA

O

  • Ons (troy ons, oz) — Uluslararası altın ağırlık birimi: 1 ons = 31,1035 g. Dünya fiyatı "ons başına USD" (XAU/USD) konuşulur; Türkiye tezgâhı gram/TL konuştuğu için ons → gram → TL çevrilir. Ons fiyatı saf altın içindir. ERPGOLD'da: F.TİPİ = Oz; gram karşılığı Settings "Ons çarpan" (OnsCarpan) ile; hesap kartında hesap bazlı ons çarpanı. VADELİ ekranında ons bazlı fiyat; MADEN'de Oz seçeneği var ama veride kullanılmamış. → bkz. Fiyat tipi · LBMA · Vadeli işlem · Kanonik: TERM-ONS, SEC-ONS

  • OTC (tezgâh üstü) — Borsa dışında, iki taraf arasında doğrudan yapılan işlem; fiziki altın ve efektif döviz ticareti büyük ölçüde OTC'dir (SECTOR_KNOWLEDGE). ERPGOLD'da: kavram olarak yok; ERPGOLD'daki her işlem zaten tezgâh (kasa/cari) işlemidir. GAP-SOZLUK-OTC. → bkz. Spot · COMEX · Vadeli işlem

P

  • Pano kuru (döviz panosu) — Perakende büronun vitrine astığı, marjı eklenmiş alış/satış fiyatı. Pano kuru ≠ Sistem kuru (sistem kuru toptan/genel kur). ERPGOLD'da: Sistem.DovizPanosu (şube bazında); ancak verilen kaynak kodda panoyu tüketen ekran yok — PERAKENDE ekranı fiyatı sistem kurundan alır (CTR-008, CTR-SEC-KUR-01). → bkz. Sistem kuru · Perakende ekranı · EDS · Kanonik: TERM-PANO-KURU, SCR-FRMDOVIZPANOSU

  • Parça gramı (Stabil) — Adetle işlem gören madenin bir adedinin sabit gramı (çeyrek ≈ 1,75 g). MİKTAR = ADET × parça gramı. ERPGOLD'da: Stok.Maden.Stabil; gerçek veride adetli işlemin miktarı her zaman bu formülle uyuşmayabilir (CTR-SEC-GRAM-01). → bkz. Ziynet · Adet · Miktar · Kanonik: TERM-PARCA-GRAMI

  • Parite — İki yabancı paranın birbirine oranı (EUR/USD 1,10 gibi — örnek). ERPGOLD'da üç şeydir: tanım tablosu (çift + yön Çarp/Böl), NAKİT'te işlem tipi (10, harf X) ve PARİTE ekranı (X). ERPGOLD'da: Sistem.Pariteler; PARİTE ekranının sınıf adı iFDoviz'dir; ALINACAK/VERİLECEK etiketleri yöne göre değişir. Kitapçıktaki arbitraj satırları tip −2 ile de gelir (CTR-SEC-PARITE-01). → bkz. Çapraz kur · Arbitraj · Parite (tip 10) · Kur · Kanonik: TERM-PARITE, SEC-PARITE, SCR-IFDOVIZ

  • Parite (işlem tipi 10) — NAKİT ekranında çapraz işlem tipi: iki nakit satırı üretir, ikincisi ters işaretle; kısaltma NGX/NCX. ERPGOLD'da: tIslemTipi.PARITE = 10; NAKİT combo 2. sıra (etiketi "EMANET" görünebilir — CTR-027). Tek satır kalırsa PB-048. → bkz. Parite · Arbitraj · Karşı kayıt · Kanonik: TERM-PARITE-ISLEM-TIPI-10, WF-NAKIT-PARITE

  • Perakende ekranı (NORMAL ALIM SATIM EKRANI) — Cari hesapsız, doğası gereği peşin tezgâh ekranı: STOK CİNSİ, STOK KODU, ADET/MİKTAR, FİYAT, TUTAR, DÖVİZ KURU, PARA ÜSTÜ, TAHSİLAT. ERPGOLD'da: ParakendeSatis; fiyat sistem kurundan yöne göre; koddaki 7.000 TL / 3.000 USD uyarı eşikleri sabittir, mevzuatla güncelliği doğrulanmadı (PB-050). Gişe ekranı benzer. → bkz. Peşin · Pano kuru · Gişe · Kanonik: TERM-PERAKENDE-EKRANI, SCR-PARAKENDESATIS, SCR-GISEEKRANI

  • Perakende kuyumcu — Vitrini olan, son tüketiciye satan dükkân; hurda alır, ziynet ve takı satar. "Ağırlıklı PEŞİN çalışır" cümlesi kurulum bağımlıdır: kuyumcu kurulumunda PEŞİN tipi 0 satır, peşin iş NORMAL tipte hesapsız yürür (CTR-SEC-BTYPE-02). ERPGOLD'da: PERAKENDE ekranı, MADEN/HURDA'nın PEŞİN tipi, NAKİT; vezne için ErpPosV2 (POS_VARIANT). → bkz. Kuyumcu · Toptancı · Peşin · Kanonik: TERM-PERAKENDE-KUYUMCU, SEC-PERAKENDE-KUYUMCU

  • Peşin (işlem tipi 1) — Karşılığı o anda, tezgâhta alınan işlem; hesaba yazılacak bir şey kalmaz. Peşinin karşıtı caridir. Peşin ≠ BakiyeId = 0: tetikleyicide bakiyeyi kapatan koşul IslemTipi = 1'dir. ERPGOLD'da: tIslemTipi.PESIN = 1, harf P; bakiye defteri yazmaz, mal stoğuna ek olarak nakit stoğuna ters yönlü hareket yazar; tutar zorunlu. V2'de 318 K satır, KUYUMCU'da 0. → bkz. Normal · Cari işlem · BakiyeId · Nakit kartı · Kanonik: TERM-PESIN-ISLEM-TIPI-1, SEC-PESIN, MET-PESIN-HACIM

  • Peşin kontrol (yetki bayrağı) — Yalnız peşin işlem yapan banko kullanıcısı; düzeltmeyi SERİ İŞLEM ekranından açar, fiş yazarken para satırı yoksa "İşlemin Karşılığı Bulunamadı" uyarısı alır. ERPGOLD'da: Group.PesinKontrol; hangi ekranları açabildiği CTR-031. → bkz. Yetki grubu · Seri işlem · Kanonik: TERM-PESIN-KONTROL

  • Peşin kur tipi — Settings alanı. Dokümanda "peşinde fiyat sistem kurundan mı pano kurundan mı" diye anlatılır; kodda değerleri Miktar/Has'tır ve peşin HURDA/SERİ İŞLEM/PERAKENDE'de varsayılan F.TİPİ'ni belirler (CTR-007). ERPGOLD'da: GlobalSettings.PesinKurTipi {Miktar, Has}. → bkz. Fiyat tipi · Settings · Kanonik: TERM-PESIN-KUR-TIPI

  • PIN kodu — Silme/düzeltme veya mutabakat kilidinde yöneticinin ürettiği tek seferlik onay kodu. ERPGOLD'da: PinShowDialog, Sistem.PinCode (50.193 satır). → bkz. Silme onayı · Mutabakat kilidi · Kanonik: TERM-PIN-KODU

  • Pırlanta — Kesilip parlatılmış elmas; değeri 4C ile (karat, renk, berraklık, kesim) ve sertifikayla belirlenir; her zaman adetle işlem görür. Pırlanta ≠ Taş (taş: safir, zümrüt, zirkon…). ERPGOLD'da: PIRLANTA ekranı (P, işlem kodu 8); kart 62 kolonlu (montür altını, üç pırlanta grubu, yan taş, maliyet kırılımı); miktar 0 olabilen istisnalardan; Validate sonucu kontrol edilmez (TD-12). → bkz. Taş · Karat · Kanonik: TERM-PIRLANTA, SEC-PIRLANTA

  • Playbook — Belirli bir destek şikâyeti için adım adım teşhis/çözüm yolu; ticket temalarından türetilmiştir (65 playbook). Adımlar tükenince escalate edilir. ERPGOLD'da: 12_Support/Playbooks/PB-*.md; en yüksek paylı temalar bağlantı (%20), fatura (%11,5), yazıcı (%11), BTrans (%9,3), lisans (%6,6). → bkz. Ticket · Escalate · Kanonik: Playbook dizini

  • Pozisyon — İşletmenin bir birimde fiyat riskine açık net varlığı: stok + alacak − borç. Pozitifse long (fiyat yükselirse kazanır), negatifse short. Kuyumcu ve döviz bürosunda kâr yalnız marjdan değil, pozisyonun fiyat hareketinden de gelir/gider. ERPGOLD'da: stok defteri + bakiye defterinin birim bazında toplamı; Pozisyon, Pozisyon Detay, Durum/Hacim raporu ekranları (canlı yenilenir); birim başına pozisyon limiti tanımlanabilir. Metrik MET-NET-POZISYON. → bkz. Stok · Bakiye · Hedge · Kur farkı · Bilanço · Kanonik: SEC-POZISYON, SCR-FRMPOZISYON

  • Provizyon — Şubeler arası işlemde karşı şubenin onayı. Açıkken karşı şube onaylamadan düzeltme/iptal yapılamaz ("Önce Gönderen Şube Düzeltmelidir"). ERPGOLD'da: Settings Provizyon; Cari.Provizyon.ProvizyonStatus {Bekliyor, Tamamlandı, RedEdildi, Duzeltildi, IptalEdildi}. → bkz. Transfer · Şube · Kanonik: TERM-PROVIZYON, INT-SUBELER-ARASI-PROVIZYON-RSAKTAR

R

  • Rafineri / rafinasyon — Hurda, cevher veya külçeyi eritip saflaştıran (rafinasyon) ve seri numaralı, raporlu standart külçe döken işletme. Kuyumcunun takozu buraya gider, has olarak döner. ERPGOLD'da: KUYUMCU/RAFINERI varyantı; TAKOZ G, TAKOZ C, ÇEŞNİ ve HURDA ekranları; bir takoz iki metalde birden (HAS + GUM) bakiye üretir; işlem tipi metalden gelir (ALTIN 6 / GÜMÜŞ 7). → bkz. Takoz · Çeşni · Ayar evi · Fire · Kanonik: TERM-RAFINERI, SEC-RAFINERI

  • Rapor detayı (Normal / Ekstra) — Takoz raporunun kapsamı: Ekstra seçilirse platin ve paladyum milyem/işçilikleri de girilir. ERPGOLD'da: tTakozTipi {Normal=0, Extra=1}, IsExtra. → bkz. Takoz · AU/AG/PT/PD · Kanonik: TERM-RAPOR-DETAYI

  • Rapor fonksiyonu ≠ Menü raporu — İki ayrı şey: SQL'deki rapor fonksiyonları (79, RFN-*) ile menüde kayıtlı raporlar (AifaDev.Reports, 60 aktif; 1'i analizde eklenen RPT-91). Sayı farkları payda farkıdır (CTR-042). ERPGOLD'da: rapor tasarımı/hatası teması 613 çağrı; Aifa Developer Studio serbest SQL üretimde yazma için kullanılmaz (TD-10). → bkz. GENERATED_PROPOSAL · Playbook · Kanonik: Rapor fonksiyonları, SCR-FRMREPORTLIST

  • Raporlu / raporsuz takoz — Raporlu: ayar evi raporu gelmiş, milyemi kesin. Raporsuz: XRF/tahmini milyemle izlenir, rapor gelince düzeltilir; raporsuz girişin düzeltilmesinde güvenlik kontrolleri atlanır. ERPGOLD'da: RAPOR DURUMU, Stok.Takoz.IsRapor; raporsuz takoz has varsayımı üç raporda üç farklı değer (0,600 / XRF…) — CTR-SYM-TAKOZ-01. → bkz. Takoz · Ayar evi · XRF · Kanonik: TERM-RAPORLU-RAPORSUZ-TAKOZ

  • RDP (uzak masaüstü) / bulut sunucu — Müşterinin programa AIFASOFT'un bulut sunucusunda uzak masaüstüyle bağlanması. Bağlantı/sunucu teması tüm çağrıların %20'sidir. ERPGOLD'da: Sistem.RDP, Sistem.Clients; tipik arızalar: Configuration Settings hatası, yanlış instance adı, "Kullanıcı parolasının süresi dolmuştur" (PB-014), IP değişimi (PB-004). → bkz. LiveUpdate · Ticket · Kanonik: INT-RDP-SUNUCU, PRB-BAGLANTI-000

  • Resmi / Fatura (işlem tipi 11) — belge kontrol kaydı — İşlemin belge (e-belge/fatura) durumunu operasyon tarafında izleyen kayıt; DB'de adı RESMİ, kod enum'unda FATURA (CTR-001); legacy teknik ad. Operasyonel stok/bakiye kaydı üretmez (V2'de 24.779 satır, 0 bakiye, 0 stok), çünkü aynı ticaretin operasyon etkisi ilgili operasyon satırlarında zaten vardır; belgelendirilmiş işlemler havuzuna (FaturaNo) girer. USD karşılığı TCMB kurundan. Yeni bir ticari işlem değil, belge durumu/kontrol kaydıdır. ERPGOLD'da: tIslemTipi.FATURA = 11, harf R (MCR/NCR); resmi kasa/şube gerekir (PB-042); resmi stok raporu tipe değil FaturaNo'ya bakar. → bkz. Mahsup · Resmi stok · Resmi kasa · E-fatura · TCMB kuru · Kanonik: TERM-RESMI-FATURA-ISLEM-TIPI-11, SCN-RESMI-ISLEM

  • Resmi kasa — Yetkili müessesede belge uyum/kontrol fonksiyonlarının aktif olduğu kasa (Sistem.Kasalar.ResmiKasa); RESMİ KASA anahtarı açık. Legacy teknik addır; ERPGOLD'un iki ayrı defter tuttuğu anlamına gelmez. Bu kasada varsayılan tip belge kontrol tipidir ve geçmiş tarihe işlem uyarısı sorulmaz. ERPGOLD'da: Sistem.Kasa.ResmiKasa, LoginInformation.Kasa.ResmiKasa. → bkz. Kasa · Resmi şube · Kanonik: TERM-RESMI-KASA

  • Resmi stok — Belgesi düzenlenmiş işlemlerin stok üzerindeki hesaplanmış etkisini gösteren kontrol görünümü (Stok.GetResmiStoklar: IslemDetaylari.FaturaNo > 0). Ayrı bir fiziksel stok, gizli/ikinci bir stok ya da ikinci defter değildir; operasyonel stokla karşılaştırılarak belgelendirme farkı bulunur (Reports.ResmiPozisyon). Açılışta DEVİR hesabından GİRİŞ + MAHSUP ile başlatılır. Legacy teknik ad. ERPGOLD'da: Stok.GetResmiStoklar işlemleri Cari.IslemDetaylari.FaturaNo > 0 ile süzer; kaynağının belirsizliği CTR-005; muhasebe ile resmi stok mutabakatı PB-016. → bkz. Resmi (tip 11) · Mahsup · Devir · Kanonik: TERM-RESMI-STOK

  • Resmi şube — Şube kartı RESMİ BİLGİLER sekmesinde RESMİ ŞUBE anahtarı açık şube: ünvan, vergi no, yetkili müessese no, entegratör, belge (resmi işlem) limiti. Legacy ad; belge uyum fonksiyonlarını şube için açar. ERPGOLD'da: Sistem.Sube.IsResmi, ResmiIslemLimitiTL, Entegrator; limit güncellemesi (5.000 $ / 85.000 TL örneği) ayardır, mevzuat rakamı doğrulanmadı (PB-019). → bkz. Şube · Resmi kasa · Entegratör · Kanonik: TERM-RESMI-SUBE

  • RS / RS aktarCari.Islemler.RsAktar / Sistem.Subeler.RsAktar: işlemin bağlı hesaba (Cari.Hesaplar.MuhHesapId) başka şubede kopyalanması bayrağı (Cari.RSAktar SP, Cari.RSReferans); şubeler arası provizyon/aktarım. İşlem listesindeki Durum (EVET/HAYIR) buradan gelir. Legacy teknik ad; hukuki bir anlam taşımaz. ERPGOLD'da: Cari.Islemler.RsAktar; şube kartında RsAktar açıksa kayıt sonrası EXEC Cari.RsAktar; Cari.RSReferans, Sube.RSBKodu. Perakende ekranında RS AKTAR düğmesi. → bkz. BTrans · Kanonik: TERM-RS-AKTAR, TERM-RS

S

  • Sabit birim — Birim tanımındaki "Sabit" işareti: bakiye sıfır olsa da bakiye kartında satırı görünür (HAS, TL, USD genelde sabittir). "Metal" işareti maden birimlerini ayırır. ERPGOLD'da: Sistem.Birim.IsStatic, IsMetal; "sabit birim görünmüyor" PB-040. → bkz. Birim · Bakiye kartı · Kanonik: TERM-SABIT-BIRIM

  • Sarraf — Takı değil altının ve dövizin kendisini alıp satan, has ve nakit bakiyesi tutan, kuyumcular arası takas/ödeme aracılığı yapan işletme. ERPGOLD'da: "sarraf" adlı varyant/ekran/kart yoktur; iş MADEN + NAKİT + PARİTE + VADELİ + cari bakiye ile yürür. → bkz. Sarrafiye · Kuyumcu · Toptancı · Kanonik: SEC-SARRAF

  • Sarrafiye — İki anlam: (1) ürün grubu — darphane basımı ziynet altınları ve toptan ticareti ("ziynet" perakende dili, "sarrafiye" toptan dili); (2) sarrafın yaptığı iş. ERPGOLD'da: ekran/kart/işlem kodu yok; sarrafiye ürünleri adetli maden kartıdır. → bkz. Ziynet · Sarraf · Parça gramı · Kanonik: SEC-SARRAFIYE

  • Satış — İşletmenin bir kıymeti müşteriye vermesi: satış yönü (ÇIKIŞ ile aynı taraf; vadeli/paritede SATIŞ sözcüğü) ve satış kuru/değeri. Dönem toplamı = ciro. Satış ≠ Çıkış yalnız sözcük farkı. ERPGOLD'da: IslemTuru = 5 (SATIS); her satırda Satis alanı, kâr bundan hesaplanır. Satışta yanlışlıkla alış kuru çekilen yerler var (TD-21). MET-SATIS. → bkz. Çıkış · Alış · Ciro · Kâr · Kanonik: SEC-SATIS

  • Seri işlem — Birden fazla kalemi tek fişte giren ekran; barkod okutunca anında kaydeder (H-074); peşin kontrol kullanıcısının düzeltme ekranı. Seri takoz çıkışı ayrı ekrandır. ERPGOLD'da: iFSeriIslem / FrmSeriIslem, FrmSeriTakozCikis; "LÜTFEN BİR STOK SEÇİNİZ", "İşlemin Karşılığı Bulunamadı" (PB-064). → bkz. Peşin kontrol · Fiş · Kanonik: TERM-SERI-ISLEM, WF-SERI-ISLEM

  • Settings (Genel ayarlar) — Tanımlamalar ▸ Settings: tüm şubeleri etkileyen ayarlar — silme/düzeltme onayı ve gün, mutabakat kilidi, düzeltme açıklaması, peşin kur tipi, işlem kur farkı %, BSMV, ons çarpanı, kur yenileme aralığı, provizyon, numaralandırma, semboller. ERPGOLD'da: Sistem.Settings (37 kolon, 1 satır); GlobalSettings sınıfı okunan kaynakta yok. Ayar değişikliği sonrası kullanıcı yeniden giriş yapmalı. → bkz. Kullanıcı ayarları · Düzeltme onayı · Silme onayı · Kanonik: TERM-SETTINGS, SCR-FRMGLOBALSETTINGS

  • Silme onayı / Sil gün — İptal kuralı: serbest, PIN gerekli veya "eski tarihe yapılamaz" (N günden eski işlem için kullanıcı silme talebi açar, yönetici onaylar). Ekran >= SilGun uyarır, kod > SilGun talebe çevirir — 1 günlük tutarsızlık (CTR-023). ERPGOLD'da: Settings DeletePermission, SilGun; Sistem.SilOnay (Bekliyor/Onaylandı/Reddedildi); onaylanan talep fiziksel silinir. → bkz. İptal · PIN kodu · Düzeltme onayı · Kanonik: TERM-SILME-ONAYI-SIL-GUN, WF-SILME-TALEBI-ONAY

  • Sistem kuru — Günün genel/toptan kuru; kur listesinde durur; bakiye, bilanço ve raporlar bununla çevrilir. Sistem kuru ≠ Pano kuru. ERPGOLD'da: Sistem.GetKurListesi, Program.KurListesi; işlem kur farkı uyarısı bununla karşılaştırır. → bkz. Kur listesi · Pano kuru · Kanonik: TERM-SISTEM-KURU

  • Sistem Yenile (Ctrl+F5) — Tanım listelerini yeniden yükleme komutu; yeni birim/hesap/kasa tanımlandıktan sonra gerekir. Kısayol dokümandan, ana form kaynakta olmadığından doğrulanmadı. ERPGOLD'da: DSX.TABLE.ListOf* yeniden yüklenir; "tanımladım ama listede yok" PB-039. → bkz. DSX.TABLE · Kanonik: TERM-SISTEM-YENILE

  • SMiktar / SHas / SAdet (işaretli kolonlar) — Giriş yönünde artı, diğerlerinde eksi işaretli hesaplanan kolonlar; toplamları net stok miktarı/has/adet verir. ERPGOLD'da: Cari.Islemler hesaplanan kolonları; SHas decimal(18,2)'ye yuvarlanır; yazılmaz, yalnız okunur. → bkz. Miktar · Has · Cari.Islemler · Kanonik: TERM-SMIKTAR-SHAS-SADET

  • Spot — Teslimi ve ödemesi hemen (bugün) yapılan işlem; vadelinin karşıtı (SECTOR_KNOWLEDGE). ERPGOLD'da: ayrı kavram yok — MADEN/NAKİT/HURDA ekranlarındaki her işlem spottur; VADELİ ekranı ise ileri tarihlidir. GAP-SOZLUK-SPOT. → bkz. Vadeli işlem · OTC · Peşin

  • Stok — Bir kasada/şubede fiziksel olarak duran mal ve para. Bakkal stoğu gibi "satılacak eşya" değil, değeri her an değişen bir açık pozisyondur. İki anlam: stok kartı (tanım) ve stok defteri (hareketlerin toplamı). Stok ≠ Bakiye. ERPGOLD'da: canlı stok Maden Stokları / Nakit Stokları ekranları; kullanıcı stok defterine yazmaz. MET-STOK. → bkz. Stok kartı · Stok defteri · Kasa · Pozisyon · Kanonik: SEC-STOK, SCR-FRMMADENSTOKLARI

  • Stok defteri (Stok.StokHaraketleri) — Her işlemden otomatik türeyen fiziksel hareket kaydı: hangi kasada, hangi stok, ne kadar miktar/adet/has, hangi milyem. ERPGOLD'da: 1,62 M satır; Bolum (0 cari işlem, 1 üretim, 2 kasa transferi), StokTipi (1 maden, 2 nakit, 3 takoz, 4 pırlanta), Maliyet (yalnız işçilik). Stok yazılma koşulu: StokId dolu ve miktar/adet ≠ 0. → bkz. Tetikleyici · Bakiye defteri · Transfer · Kanonik: TERM-STOK-STOKHARAKETLERI, TBL-STOK.STOKHARAKETLERI

  • Stok kartı — Maden/nakit/hizmet/takoz/taş/pırlanta/model/emtia/genel kalemlerinin tanım kaydı. Maden kartı: kod, milyem, hurda mı, adetle mi, parça gramı, işçilik, fiyat tipi, ana birim, maliyet birimi. ERPGOLD'da: Stok.Maden, Stok.Nakit, Stok.Hizmet…; STOK KODU alanı. Ad değiştirilemez, milyem kilitli gibi tuzaklar PB-057. → bkz. Maden · Nakit kartı · Grup kodu · Kanonik: TERM-STOK-KARTI

Ş

  • Şirket — Tüzel kişilik; Şirket → Şube → Kasa hiyerarşisinin tepesi; çoğu kurulumda tektir. ERPGOLD'da: Sistem.Sirketler (örnek DB'de 1 satır). → bkz. Şube · Kasa · Kanonik: TERM-SIRKET

  • Şube — Bağımsız hesabı, stoku ve bilançosu olan birim. Kartında bilanço birimi, sermaye, şube tipi, resmi şube, limit kontrolü, RS aktar, e-belge ayarları. ERPGOLD'da: Sistem.Subeler (BilancoBirimId, IsResmi, IsLimitControl, RsAktar); şube pasifse tetikleyici kaydı reddeder. → bkz. Kasa · Şirket · Resmi şube · Transfer · Kanonik: TERM-SUBE

  • Şube tipi (DÖVİZ / GENEL) — Şube kartındaki tip; dokümana göre programın davranışını (MADEN'de İŞÇİLİK alanı) değiştirir; okunan ekran kodunda buna bağlı dallanma bulunamadı — İŞÇİLİK alanı resmi mod ve işlem tipine bağlı (CTR-018). ERPGOLD'da: Sistem.Sube.SubeTipi. → bkz. Şube · Kanonik: TERM-SUBE-TIPI

T

  • Takı / yarı mamul — İşçilik görmüş ürün; fiyatı içindeki altın + işçilik. Yarı mamul, henüz bitmemiş (cilasız, taşsız) parçadır. ERPGOLD'da: maden kartı (ayar bazlı) veya model kartı; işçilik ayrı alanda. → bkz. İşçilik · Model · Maden · Kanonik: TERM-TAKI-YARI-MAMUL

  • Takoz — Hurda ve döküm artığının eritilip tek kütle yapılmış hâli: standart olmayan gramaj ve ayarda dökme bar; kodu (TK + numara), brüt gramı, ayar evi raporu, dört metal içeriği ve çeşnisi vardır. Takoz ≠ Külçe. ERPGOLD'da: TAKOZ GİRİŞİ (1) / TAKOZ ÇIKIŞI (2), işlem kodu 0 (harf T); Stok.Takoz (KUYUMCU 10.870 satır; 16,4 t brüt / 5,6 t has); metal tipi işlem tipi olur (ALTIN 6, GÜMÜŞ 7…); çeşni girişte bakiyeye eklenir. Döviz kurulumunda tek takoz satırı yok. → bkz. Külçe · Çeşni · Ayar evi · Raporlu/raporsuz · Blok takoz · TK · Kanonik: TERM-TAKOZ, SEC-TAKOZ, SCR-IFTAKOZGIRIS

  • Takoz tipi — Takozun cinsi (altın, gümüş, platin…); Tanımlamalar'daki küçük liste. ERPGOLD'da: Sistem.TakozTipleri (örnek DB'de 0 satır); işlem tipini belirler (BR-TAKOZ-002). → bkz. Takoz · Kanonik: TERM-TAKOZ-TIPI

  • Taş — Takıya takılan kıymetli/yarı kıymetli taşlar (safir, zümrüt, yakut, inci, zirkon); karat veya adetle ölçülür. Taş ≠ Pırlanta. ERPGOLD'da: TAŞ ekranı (9, işlem kodu 7, harf D); kartın "adetle mi" bayrağı ekranı yönetir; taş işlemi stok defteri üretmez (BR-STOK-011, CTR-SEC-TAS-01). → bkz. Pırlanta · Karat · Kanonik: TERM-TAS, SEC-TAS

  • TCMB / TCMB kuru — Türkiye Cumhuriyet Merkez Bankası ve onun resmi kuru. Resmi belgelerde USD karşılığı bu kurdan hesaplanır. ERPGOLD'da: Cari.Islem.GetUSDKur → TCMB.Currency.GetUSDCurrency; işlem tipi 11/12'de UsdKur TCMB'den (çift yön alış, tek yön satış), diğerlerinde sistem kurundan. Sistem.NonUsed_TCMBDovizKurlari 25.212 satır. → bkz. Kur fotoğrafı · Resmi (tip 11) · Kanonik: TERM-TCMB-KURU, INT-TCMB

  • Tek yazma noktası — ERPGOLD'un temel mimari ilkesi: kullanıcı yalnız Cari.Islemler'e yazar; bakiye, stok ve geçmiş defterleri tetikleyiciyle türer. Bakiye "yanlış"sa defter elle düzeltilmez, işlem satırı DÜZELT/İPTAL ile yeniden tetiklenir. ERPGOLD'da: kural BR-DEFTER-URETIMI; genel zincir FLOW-ISLEM-GENEL. → bkz. Cari.Islemler · Tetikleyici · Bakiye defteri · Stok defteri

  • Terazi — Miktarın kaynağı olan cihaz; hurda ekranındaki terazi düğmesiyle seri porttan okunur. ERPGOLD'da: Kullanıcı Ayarları ▸ Diğer: ComPort, BaudRate; "terazi miktarı gelmiyor" PB-027. → bkz. Miktar · Gram · Kanonik: TERM-TERAZI, INT-TERAZI

  • Tetikleyici (trigger) — Bir tabloya yazıldığı anda veritabanının kendiliğinden çalıştırdığı kural. ERPGOLD'un iş mantığının kalbi bir tetikleyicidir. ERPGOLD'da: Cari.AcceptTransaction (+ 3 kardeş trigger); kapalıysa işlem kaydedilir ama bakiye/stok oluşmaz (PB-029; demo kopyasında kapalı kalma TD-32); yalnız devir prosedürü içinde kapatılır. Metni kaynak kodda değil DB'de yaşar (TD-48). → bkz. Cari.AcceptTransaction · Tek yazma noktası · Kanonik: TRG-CARI.ACCEPTTRANSACTION

  • Ticket (destek çağrısı) — Müşterinin AIFASOFT desteğine açtığı kayıt; 13.681 geçerli ticket, 22 problem teması, 822 müşteri kimliği. Ticket metni kişi adı/telefon içerir — wikiye girmez, müşteri yalnız CUST-<id>. ERPGOLD'da: 12_Support/Problems temaları ve SymptomChains; en sık beş tema: bağlantı (2.244), fatura (1.286), yazıcı (1.223), BTrans (1.035), lisans (736). → bkz. Playbook · Escalate · Kanonik: Problem temaları, DESTEK_CALISMA_BICIMI

  • TK (takoz kodu öneki) — Takoz numarası: "TK" + 5 haneye sıfırla doldurulmuş sıra numarası (TK00042). ERPGOLD'da: FN.GenerateTakozCode(@TakozNo). → bkz. Takoz · Kanonik: TERM-TK

  • Toptancı — Rafineriden/piyasadan aldığı altını işleyip yarı mamul üreten ya da olduğu gibi perakendeciye satan işletme; cari hesapla (NORMAL) çalışır, bakiye birikir, ay sonu mutabakat. ERPGOLD'da: kuyumcu kurulumunun cari çalışan yüzü; bakiye kartı her birimde ayrı satır (HAS, GUM, TL, USD, EUR); şubeler/satıcılar arası aktarım için VİRMAN. → bkz. Ara toptancı · Perakende kuyumcu · Cari işlem · Kanonik: TERM-TOPTANCI, SEC-TOPTANCI

  • Transfer — Aynı şubenin iki kasası veya iki şube arasında mal/para taşınması. Cari işlem değildir; Transfer ≠ Virman (virman bakiyeyi hesaptan hesaba taşır, transfer malı kasadan kasaya). ERPGOLD'da: yalnız stok defterine Bolum = 2 ile yazılır (tetikleyici yönetmez; Cari.Transferler 23.234 satır); şube hesap tipiyle yapılan işlemler "Transfer" tipidir; NAKİT'te TRANSFER tipi (15) de vardır. Karşı kasada görünmeme PB-037. → bkz. Virman · Çevir · Kasa · Provizyon · Kanonik: TERM-TRANSFER, SCR-FRMTRANSFER

  • Tutar — Para tarafının toplamı: MİKTAR/ADET/HAS × FİYAT (F.TİPİ'ne göre). NAKİT, PEŞİN, BEDELLİ ve MİKTAR tiplerinde zorunlu ("Lütfen Tutar Giriniz"). ERPGOLD'da: Cari.Islemler.Tutar, hesaplanan TLTutar/USDTutar. → bkz. Fiyat · Fiyat tipi · BirimId · Kanonik: TERM-TUTAR

  • TxtTarih → Vade (bilinen kusur) — MADEN ve NAKİT ekranındaki TARİH alanı işlem tarihini değil vade kolonunu doldurur; işlem tarihi başka yoldan yazılır. Destek personeli bunu "tarih değiştirdim ama rapor değişmedi" çağrısında hatırlamalı. ERPGOLD'da: TxtTarih → Cari.Islemler.Vade (TD-40, H-081). → bkz. Vade · Düzelt · Kanonik: TD-40

U – Ü

  • Üretici / atölye — Kuyumcu için takı üreten işletme; bölümler (döküm, cila, mıhlama), reçete, kalıp, fire/ramat, işçilik. ERPGOLD'da: Sipariş (18 ekran) + Üretim (9 ekran) modülü kodda tam, yalnız kuyumcu kurulumunda veri (düşük kullanım); süreç dokümanı yok (GAP). → bkz. Bölüm · Fire/ramat · Model · Kanonik: SEC-URETICI-ATOLYE, MOD-URETIM

V

  • Vade — Müşteriyle anlaşılan ödeme süresi / işlem satırındaki vade tarihi. Vadesi geçmiş bakiye uyarısı kodda bulunamadı (CTR-013). ERPGOLD'da: Cari.Islemler.Vade; ekranlardaki TARİH alanı buraya yazar; vadeli işlemde varsayılan +2 gün. → bkz. TxtTarih → Vade · Vadeli işlem · Kanonik: TERM-VADE

  • Vadeli işlem (forward) — Fiyatı bugün anlaşılan, teslimi/ödemesi ileri tarihte alım-satım; mal/para o anda el değiştirmez. Vadeli ≠ Vade (vade bir tarih, vadeli bir işlem ailesi). ERPGOLD'da: VADELİ ekranı (8, işlem kodu 6, harf V — VİRMAN ile aynı harf); ALIŞ/SATIŞ; kasa hareket etmez, cari hesaba iki birimde bakiye yazar (stok %0, bakiye %100); tipler −1 normal / −2 arbitraj (kod tablosunda yok, CTR-028). Teslim günü ayrı NAKİT/MADEN işlemi girilir. → bkz. Vadeli işlem kodu · Çarpan · Ons · Arbitraj · Kanonik: TERM-VADELI-ISLEM, SEC-VADELI, SCR-IFVADELI

  • Vadeli işlem kodu — Tanımlamalar ▸ Vadeli İşlem Kodları: kod, sembol, lot, ana birim, karşı birim, fiyat tipi (Miktar/Has), çarpan, şube. ERPGOLD'da: Sistem.Vadeli (153 satır); VADELİ ekranındaki KODU listesi buradan (aktif olanlar); yanlış çarpan/TL karşılığı yok PB-043. → bkz. Vadeli işlem · Çarpan · Lot · Kanonik: TERM-VADELI-ISLEM-KODU

  • Varyant / VaryantId — İki anlam: (1) aynı stok kartının alt çeşidi (renk, boy, parti) — MADEN ekranındaki VARYANT alanı; (2) vadeli/parite işlemlerinde karşı işlemin Id'si: IslemKodu ∈ {3,6} ve VaryantId ≠ 0 ise satır arbitrajdır. ERPGOLD'da: Cari.Islemler.VaryantId, hesaplanan IsArbitiraj; çift bacak kontrolü RefNo veya VaryantId ile. → bkz. Arbitraj · Karşı kayıt · Kanonik: TERM-VARYANT

  • Virman — Bir bakiyenin bir hesaptan başka hesaba aktarılması; mal/para el değiştirmez, "kime ait" değişir. Virman ≠ Çevir ≠ Transfer. ERPGOLD'da: işlem kodu 11 (harf V), ALACAK/BORÇ; tek kayıtta iki satır (biri karşı hesaba ters yönde, aynı RefNo); düzeltilemez, iptalde karşı bacak da iptal edilir; kasa ve stok değişmez. Kısaltma VGN/VCN (CTR-026). Kuyumcuda 112.006 satır. → bkz. Çevir · Transfer · Karşı kayıt · Karşı hesap · Kanonik: TERM-VIRMAN, SEC-VIRMAN, SCR-IFVIRMAN

  • Volatilite — Fiyatın kısa sürede ne kadar dalgalandığı; yüksek volatilitede marj daralır, pozisyon riski büyür (SECTOR_KNOWLEDGE). ERPGOLD'da: ölçen alan/rapor yok; pratik karşılığı işlem kur farkı uyarısı (IslemKurFarki %) ve kur yenileme aralığıdır. GAP-SOZLUK-VOLATILITE. → bkz. Pozisyon · Kur listesi · Marj

X

  • XRF — Tahribatsız (numune almadan) saflık ölçüm cihazı; hızlı ama ayar evi raporu kadar kesin sayılmaz. ERPGOLD'da: TAKOZ G ekranında XRF AU MİLYEM / XRF AG MİLYEM; raporsuz takozda geçici milyem kaynağı. → bkz. Ayar evi · Raporlu/raporsuz · Mihenk · Kanonik: TERM-XRF

Y

  • Yetki grubu — Kullanıcı grubu: hangi ekranların açılabileceği, DÜZELT/İPTAL yetkisi, peşin kontrol, bakiye görme. Kontrol istemci tarafındadır, DB'de grup kontrolü yoktur. ERPGOLD'da: Sistem.UserGroup izin bayrakları (Takoz, Maden, Hurda, Nakit, Cevir, Vadeli, …, IslemDuzelt, IslemIptal, PesinKontrol, ShowBalance); değişiklik yeniden girişte geçerli. "Ekran menüde yok" PB-041. → bkz. Kullanıcı · Peşin kontrol · Kanonik: TERM-YETKI-GRUBU, WF-KULLANICI-GRUBU-YETKI

  • Yetkili müessese — Döviz alım-satımı için devletçe yetkilendirilmiş kuruluş; döviz bürosunun resmi adı. Yetki numarası şube kartına (RESMİ BİLGİLER) yazılır. ERPGOLD'un yetkili müessese varyantında tüm işlemler havuzu ile belgelendirilmiş işlemler havuzu karşılaştırılır (bkz. Resmi stok, Resmi kasa). ERPGOLD'da: Sistem.Subeler.YetkiliMuesseseNo; karşı yetkili müessese no işlem detayında. → bkz. Döviz bürosu · Resmi şube · MASAK · Kanonik: TERM-DOVIZ-BUROSU

  • Yıl sonu devri → bkz. Devir. · Yumuşak silme → bkz. IsDeleted.

Z

  • Ziynet / Meskûk — Darphane basımı altın paralar: çeyrek, yarım, tam, gremse (beşli); Ata, Reşat, cumhuriyet altını. 22 ayar basılır, adetle alınıp satılır; her adedin gramı ve hası sabittir. Sektörde bu gruba sarrafiye de denir. ERPGOLD'da: adetle işlem gören maden kartı (Stok.Maden.Adet = 1, Stabil parça gramı); ekranda ADET girilir, MİKTAR ve HAS türer; milyem alanı adet başı hası taşır (yarım altın 3,21). → bkz. Sarrafiye · Parça gramı · Adet · Darphane · Kanonik: TERM-ZIYNET-MESK-K, SEC-ZIYNET

GAP Kanonik sözlükte maddesi olmayan, bu bölümde SECTOR_KNOWLEDGE ile tanımlanan terimler: COMEX, hedge, likidite, OTC, spot, spread (marj altında), volatilite, mihenk taşı, darphane, karat, kaydi döviz. Her biri GAP-SOZLUK-<TERİM> olarak bulgu dosyasına yazıldı; wikiye TERM makalesi olarak eklenmesi önerilir.

KAYNAK Madde içi sayılar (satır adetleri, yüzdeler) 2026-09-11/12 ölçümleridir: FLOW-ISLEM-MATRISI, BR-DEFTER-URETIMI, CANONICAL_INVENTORY_AUDIT. Teknik borç kısaltmaları TD-nn → ../ERPGOLD_WIKI/17_Quality_And_TechnicalDebt/Items/, bilinen sorunlar H-nnn → ../ERPGOLD_WIKI/12_Support/KnownIssues/, playbook PB-nnn → ../ERPGOLD_WIKI/12_Support/Playbooks/.

Bölüm sonu sınavı

Kolay (5)

  1. Has, milyem ve ayar arasındaki ilişkiyi tek formülle yazın.
  2. Kasa ≠ Cari çiftini iki soruyla ayırın.
  3. Takoz ile külçe arasındaki fark nedir?
  4. İşlem kısaltması "NCP" ne demektir?
  5. Sabit birim işareti neyi sağlar?

Orta (5)

  1. BakiyeId ile BirimId'yi bir MADEN NORMAL ve bir NAKİT PEŞİN işlem için doldurun.
  2. Mutabakat (F12) ile Mutabakat ekranı arasındaki farkı ve kanonik çelişki kaydını söyleyin.
  3. Marj, kâr ve kur farkı üçlüsünü ayırın.
  4. Pano kuru ile sistem kuru arasında kodda hangi tuhaflık vardır?
  5. Çeşni neden işlem listesinde harfsiz görünür?

Senaryo (5)

  1. Firma müşteriden 500 g hurda aldı ve karşılığını USD cari hesabına yazdı. Stok ve bakiye açısından ne beklenir; hangi maddeler ilgilidir?
  2. Döviz Nuri 1.500 EUR verip USD istiyor; TL geçmeyecek. Hangi ekran, kaç satır, hangi bağ alanı?
  3. Kuyumcu Selim'in 150 g HAS borcunu TL borcuna çevirmek istiyorsunuz; virman mı çevir mi, neden?
  4. Bir takoz ayar evinden 0,915 Au / 0,060 Ag raporla döndü; hangi alanlar dolar, kaç bakiye satırı doğar?
  5. Yeni kullanıcı "GENEL ekranı menüde yok" diyor; hangi maddeler zincirini takip edersiniz?

Cevap anahtarı

  1. Has = Miktar × Milyem; milyem = ayar ÷ 24 (22 ayar → 0,916). — SEC-HAS
  2. Kasa "nerede duruyor?", cari "kime ait?". — SEC-NAKIT
  3. Takoz standart olmayan dökme kütle (rapor bekler); külçe rafinerinin 995/999 standart damgalı barı. — CTR-SEC-TAKOZ-01
  4. Nakit Çıkış Peşin. — TERM-ISLEM-KISALTMASI
  5. Bakiye sıfır olsa da bakiye kartında satırın görünmesi. — TERM-SABIT-BIRIM
  6. MADEN NORMAL: BakiyeId = kartın ana birimi (HAS), BirimId = karşılık birimi (TL/USD…). NAKİT PEŞİN: BakiyeId = 0, BirimId = nakit kartı Id'si. — TERM-BAKIYEID-MAL-TARAFI
  7. F12 cari mutabakat (işlem satırı işaretlenir); Mutabakat ekranı stok sayımı. — CTR-SEC-MUTABAKAT-01
  8. Marj = alış-satış kur farkı (işlem kârı); kâr = satış − maliyet (satırda Kar kolonu); kur farkı = pozisyonun değerleme farkı (gerçekleşmemiş). — SEC-KAR
  9. Pano tablosu var ama okunan kodda tüketen ekran yok; perakende sistem kurundan alır. — CTR-008
  10. Kodda CESNI = 14 var, DB kod tablosunda satırı yok; GetIslemKodu harfi boş döndürür. — TD-44
  11. HURDA GİRİŞ NORMAL: stok defterine +500 g (has = 500 × ölçülen milyem), bakiye defterine müşteri lehine USD alacak (eksi); BakiyeId = hurda kartının ana birimi, BirimId = USD. Maddeler: Hurda, Has, BakiyeId, BirimId, Alacak. — FLOW-IFHURDA
  12. NAKİT ekranı, tip PARİTE (veya PARİTE ekranı X); iki satır, RefNo ortak, VaryantId karşı satırı gösterir; kasadan TL geçmez. — TERM-PARITE-ISLEM-TIPI-10
  13. Çevir: hesap aynı, birim değişiyor (HAS → TL); virman hesap değiştirir. Stok üretmez, iki bakiye satırı. — SEC-CEVIR
  14. TAKOZ GİRİŞİ: AYAR EVİ, RAPOR NO, RAPOR DURUMU = raporlu, AU MILYEM 0,915, AG MILYEM 0,060; iki bakiye satırı (HAS ve GUM), işlem tipi ALTIN/GÜMÜŞ. — SEC-RAFINERI
  15. Yetki grubu (Genel bayrağı) → yeniden giriş → Numaralandırma (rakam kayması) → Sistem Yenile. — TERM-YETKI-GRUBU, PB-041

Bunu anladıysan devam et

9. ERPGOLD'da Çalışmadan Önce Bilmen Gereken 100 Şey

UYARI — kanonik ürün tanımı (AIFASOFT, 2026-09-12). ERPGOLD, kuyumculuk, kıymetli maden, döviz ve ilişkili sektörlere özel geliştirilmiş operasyon ve ön muhasebe yazılımıdır. İşletmeler ERPGOLD ile günlük alım-satım operasyonlarını, cari hesaplarını, HAS/altın/gümüş ve TL/USD/EUR gibi birim bazlı bakiyelerini, stoklarını, kasalarını ve operasyon raporlarını takip ederler. ERPGOLD resmî genel muhasebe yazılımı değildir. İşletmenin mevzuat gereği düzenlemesi gereken fatura ve diğer mali belgeler, işletme türüne göre ilgili mali/e-belge veya muhasebe sistemleri üzerinden yürütülür. ERPGOLD tarafından basılan işlem fişi operasyonel işlem çıktısıdır ve yasal mali belge yerine geçmez. Yetkili müesseselerde döviz işlemlerine özgü DAB/DSB ve e-Döviz belge süreçleri ayrıca değerlendirilmelidir. ERPGOLD'da Yetkili Müessese kullanımında operasyonel işlemler işletmenin gerçek stok, kasa ve pozisyon sonuçlarını oluşturur. İlgili elektronik/mali belgesi düzenlenmiş işlemler ayrıca bir kontrol kümesi olarak hesaplanabilir. ERPGOLD bu iki sonucun karşılaştırılması sayesinde belge sürecinde eksik veya uyumsuz olabilecek işlemlerin tespit edilmesine yardımcı olur. Legacy kodda ResmiKasa ve ResmiStok gibi isimler kullanılan bu yapı ayrı veya gizli bir muhasebe defteri değildir; operasyon ile belgelendirme arasındaki mutabakat/kontrol mekanizmasıdır. Bu listede geçen "resmi kasa / resmi stok / resmi işlem / RESMİ tip" adları legacy teknik isimlerdir; iki kayıt (stok/bakiye) anlamına gelmez.

Bu bölüm slogan listesi değildir. Her madde, kitabın önceki bölümlerinde uzun uzun anlatılan bir gerçeğin kısa, kritik ve kaynaklı hâlidir: yeni çalışan ilk gün, destek personeli ilk çağrıda, geliştirici ilk değişiklikte bunları bilmeden masaya oturmamalı. Her maddenin sonunda kaynak vardır (wiki makale id'si, TECHNICAL_WIKI sayfası, matris ya da governance kaydı). Sayılar 2026-09-11/12 ölçümleridir ve iki gerçek kuruluma (döviz bürosu = V2, kuyumcu/rafineri = KUYUMCU) dayanır; tek kurulumda görülen davranış ürün kuralı sayılmaz.

BUNU KARIŞTIRMA Listede en çok tekrar eden tuzaklar: Stok ≠ Bakiye · Peşin ≠ BakiyeId=0 · Resmi ≠ deftere yazılan · Mutabakat (F12) ≠ Mutabakat ekranı · Virman ≠ Çevir ≠ Transfer · Has ≠ Gram · Ayar ≠ Milyem. Terimler için bkz. Bölüm 8.

KAYNAK Ana kaynaklar: CANONICAL_INVENTORY_AUDIT, KNOWN_GAPS, CONTRADICTIONS, EXISTING_STAFF_GUIDE, Problem temaları, BR-DEFTER-URETIMI, FLOW-ISLEM-MATRISI, TECHNICAL_WIKI/INDEX. Kur ve oranlar örnektir, güncel değildir; mevzuat rakamları doğrulanmadığında GAP-MEVZUAT yazılmıştır.


A. Sektör (1–15)

  1. Has, sektörün ortak parasıdır. 100 g 22 ayar bilezik "100 gram altın" değil "91,6 g has"tır; farklı ayarlar ancak has'a çevrilince toplanır ve fiyatlanır. Her bakiye, stok ve bilanço has üzerinden konuşur. Kaynak: SEC-HAS, TERM-HAS.

  2. Has = Miktar × Milyem. Milyem binde saflıktır (22 ayar = 916 = 0,916). Ayar ÷ 24 = milyem; program ayar değil milyem kullanır ve ondalık yazar. Kaynak: SEC-MILYEM, SEC-AYAR.

  3. Üç "gram" vardır: brüt (terazi) gram, has gram ve ürün adı olarak "gram altın" (1–100 g külçe). Terazi gramı MIKTAR alanına girilir; has program tarafından hesaplanır. Kaynak: SEC-GRAM.

  4. 1 ons = 31,1035 g ve ons fiyatı saf altın içindir; 22 ayar gram fiyatına ulaşmak için milyemle de çarpılır. Dünya ons/USD konuşur, Türkiye tezgâhı gram/TL. Kaynak: SEC-ONS, TERM-ONS.

  5. Hurda ham altındır, işçilik ödenmez. Hurdada iki şey ölçülür: terazi gramı ve milyem (mihenk, XRF, ayar evi). Madende milyem karttan gelir, hurdada ölçülür. Kaynak: SEC-HURDA.

  6. Takoz ≠ külçe. Takoz standart olmayan gramaj/ayarda dökme kütledir (kod, brüt gram, rapor, çeşni); külçe rafinerinin 995/999 standart damgalı barıdır. Sözlükte eş anlamlı yazılması bir çelişkidir (CTR-SEC-TAKOZ-01). Kaynak: SEC-TAKOZ, SEC-KULCE.

  7. Çeşni bir hesap kalemidir. Ayar evinin takozdan kestiği numune yok olur ama içinde altın vardır; gramı takozdan düşer, kimin hesabına yazılacağı anlaşmaya bağlıdır. Kaynak: SEC-CESNI.

  8. İşçilik altının üstüne eklenir ve ayrı hesaplanır. Milyem cinsinden ("916 + 50") veya para cinsinden ("gramı 150 TL"). Hurda ve külçede işçilik yoktur; mamul, ziynet ve rafinasyonda vardır. Kaynak: SEC-ISCILIK.

  9. Ziynet adetle işlem görür; çeyrek/yarım/tam/Ata'nın gramı ve hası darphane basımı olduğu için sabittir. Toptan dilinde aynı gruba "sarrafiye" denir. Kaynak: SEC-ZIYNET, SEC-SARRAFIYE.

  10. Kuyumcu tek bir tür değildir: perakendeci (vitrin, hurda alır, ziynet satar), toptancı (cari çalışır, ay sonu mutabakat), sarraf (altın/dövizin kendisi), atölye (bölüm, fire, reçete), rafineri (takoz, çeşni, rapor), ayar evi (aktör). Döviz bürosu ayrı iş koludur. Kaynak: SEC-KUYUMCU, SEC-DOVIZ-BUROSU.

  11. Döviz bürosu = yetkili müessese. Kârı alış-satış marjıdır; resmi işlem, kimlik/evrak zorunluluğu, e-döviz belgesi, BTrans ve MASAK bildirimi en çok burada. Mevzuat madde ve eşikleri kitapta doğrulanmadı (GAP-MEVZUAT). Kaynak: TERM-DOVIZ-BUROSU, MOD-KYC "Mevzuat".

  12. Yön her zaman işletmenin gözüyledir. Müşteri "dolar aldım" der, büro ÇIKIŞ/SATIŞ yapar; müşteri "altın sattım" der, kuyumcu GİRİŞ/ALIŞ yapar. Kaynak: SEC-GIRIS, SEC-CIKIS.

  13. Pırlanta ≠ taş. Pırlanta 4C + sertifika ile, her zaman adetle; taş (safir, zümrüt, zirkon) karat veya adetle. ERPGOLD'daki pırlanta kartı 62 kolonlu bir "montürlü ürün" kartıdır. Kaynak: SEC-PIRLANTA, SEC-TAS.

  14. Fire ve ramat kâr yer. Atölyede bölüme çıkan ve dönen altın tartılır; fark fire (kayıp) ya da ramattır (toplanıp rafine edilen toz). Rafineride takozların %29'unda giriş bakiyesine ortalama +%0,27 pay eklenmiş, kodda karşılığı bulunamamıştır. Kaynak: SEC-URETICI-ATOLYE, SEC-RAFINERI (GAP-TAKOZ-FIRE).

  15. Elde tutulan altın ve döviz bir açık pozisyondur, bakkal stoğu değil. Stok + alacak − borç = pozisyon; long ise fiyat düşünce, short ise fiyat yükselince zarar yazılır; hedge edilmeyen pozisyon spekülasyondur. Kaynak: SEC-POZISYON, SEC-MADEN-TICARETI-YAPAN-FIRMA.

B. Para – döviz – altın (16–25)

  1. Kur her zaman çifttir: alış ve satış. Fark marjdır; büronun kârı buradan gelir. Has kuru da (gram saf altının TL fiyatı) aynı mantıkla bir kurdur. Kaynak: SEC-KUR, TERM-MARJ.

  2. Kur ≠ parite. Kur bir birimin TL fiyatı, parite iki dövizin TL'ye uğramadan oranıdır (EUR/USD). ERPGOLD'da parite hem tanım tablosu, hem NAKİT'te işlem tipi (10), hem ayrı ekrandır (X). Kaynak: SEC-PARITE.

  3. Sektörde "arbitraj" çapraz işlemdir: euro ver, dolar al; kasadan TL geçmez. ERPGOLD bunu tek satır yazamaz, iki bağlı satır yazar. Kod enum'undaki ARBİTRAJ tipi (13) veride hiç kullanılmamıştır. Kaynak: SEC-ARBITRAJ, TERM-ARBITRAJ.

  4. Ekrana gelen fiyat "her zaman alış kuru" değildir. MADEN/NAKİT'te alış kuru gelir; VADELİ ve PERAKENDE'de yöne göre alış/satış. Bu genelleme CTR-009'da düzeltilmiştir. Kaynak: TERM-ALIS-SATIS-KURU, CONTRADICTIONS#ctr-009.

  5. Kur girilmemişse her şey bozulur: bilanço toplamı 0, has karşılığı yanlış, "Lütfen Tutar Giriniz" uyarısı. Tarihte kur yoksa program en son kuru sessizce kullanır; FN.GetKur daima alış döndürür, birim yoksa 1. Kaynak: PB-036, TERM-SISTEM-GETKURLISTESI, TD-21.

  6. Kayıt anındaki kurlar satıra fotoğraflanır (HasKur, GumKur, UsdKur, EurKur…). Raporlar "işlem günkü kur" için bunları, "bugünkü kur" için kur listesini kullanır; düzeltmede kur yeniden çekilmez. Kaynak: TERM-KUR-FOTOGRAFI, BR-KUR-003.

  7. Resmi (11) ve mahsup (12) işlemlerde USD karşılığı TCMB kurundan alınır (çift yön alış, tek yön satış); diğerlerinde sistem kurundan. Kaynak: TERM-TCMB-KURU.

  8. Pano kuru ≠ sistem kuru. Pano vitrindeki marjlı fiyattır (Sistem.DovizPanosu); ama okunan kaynak kodda panoyu tüketen ekran yoktur, PERAKENDE fiyatı sistem kurundan alır (CTR-008). Kaynak: TERM-PANO-KURU.

  9. BSMV iki formülle anlatılır: doküman "tutara dahil" (×2÷1002), masaüstü kod "üstüne ekle" (×BSMV÷1000), POS fonksiyonu ikisini de içerir (CTR-010). Güncel oran GAP-MEVZUAT. Kaynak: TERM-BSMV.

  10. EDS canlı kur besler ama ERPGOLD'un parçası değildir. EDS doğrudan SQL ile Sistem.KurEkle çağırır; "kur gelmiyor" çağrısında önce EDS bağlantısı, sonra birim takma adları kontrol edilir. Kaynak: INT-KUR-EDS, PB-061.

C. İşletme mantığı (26–35)

  1. Stok "nerede duruyor", bakiye "kime ait" sorusunun cevabıdır. Kasadaki 100 g has stoktur; müşterinin bizden alacağı 100 g has bakiyedir; ikisi aynı defterde değildir. Kaynak: SEC-STOK, SEC-BAKIYE.

  2. Bakiye birim birim tutulur ve kendiliğinden karışmaz. Müşteri TL'de borçlu, HAS'ta alacaklı olabilir; ikisi ancak ÇEVİR ile tek birime toplanır. Kaynak: SEC-BAKIYE, SEC-CEVIR.

  3. Peşin: ilişki tezgâhta biter. Cari: hesaba yazılır. Döviz bürosu %83 peşin, kuyumcu %55 cari çalışır. Peşin işlem bakiye üretmez, iki stok hareketi üretir (mal + para). Kaynak: SEC-PESIN, SEC-CARI.

  4. "Peşin ise stok, cari ise bakiye" yanlış sadeleştirmedir. İki eksen bağımsızdır: mal fiziksel yer değiştirdi mi (stok defteri) ve bedel hesaba yazıldı mı (bakiye defteri). Dört kombinasyon da geçerlidir. Kaynak: BR-DEFTER-URETIMI, CTR-038.

  5. Kârın iki kaynağı vardır ve karıştırılmaz: işlem kârı (marj, işçilik farkı — gerçekleşmiş) ve pozisyon kazancı (kur/altın fiyatı hareketi — gerçekleşmemiş, bilançoda ayrı kalem). Kaynak: SEC-KAR, MET-KUR-FARKI.

  6. Altının maliyeti "geçen ay kaça aldım" değildir; metal bugünkü has kuruyla değerlenir, yalnız işçilik/marj katmanı stoktan LIFO ile düşülür. Tarihî edinme değeri hiçbir yerde tutulmaz. Kaynak: SEC-MALIYET, CTR-SEC-MALIYET-01.

  7. Virman, çevir ve transfer üç ayrı şeydir. Virman: bakiye hesaptan hesaba (kim). Çevir: bakiye birimden birime (ne). Transfer: mal/para kasadan kasaya (nerede). İlk ikisi stok üretmez, üçüncüsü cari işlem değildir. Kaynak: SEC-VIRMAN, SEC-CEVIR, TERM-TRANSFER.

  8. Vadeli işlemde kasa hareket etmez; cari hesaba iki birimde birden bakiye yazılır (teslim edilecek ve alınacak kalem). Teslim günü ayrı NAKİT/MADEN işlemi girilir ve vadeli bakiye kapanır. Kaynak: SEC-VADELI.

  9. Mutabakat, anlaşılan noktadan öncesini kilitler. Müşteriyle, şubeyle, rafineriyle, muhasebeyle düzenli yapılır; ERPGOLD'da F12 ile satır mutabık işaretlenir ve mutabakat kilidi önceki işlemleri korur. Kaynak: SEC-MUTABAKAT, TERM-MUTABAKAT-KILIDI.

  10. Ay sonu ritmi: kur listesi her gün, mutabakat düzenli, BTrans aylık (mali müşavir), devir yıl sonu. Bu dördü aksayınca destek çağrısı doğar (BTrans tek başına çağrıların %9,3'ü). Kaynak: WF-AY-SONU-BTRANS, WF-GUN-SONU, PRB-BTRANS-000.

D. ERPGOLD kavramları (36–50)

  1. Bir işlem satırının üç kimliği vardır: İşlem kodu (hangi ekran/ürün grubu: 0 TAKOZ … 14 ÇEŞNİ, 999 DEVİR), İşlem türü (yön: GİRİŞ/ÇIKIŞ/ALIŞ/SATIŞ), İşlem tipi (defter biçimi: NORMAL/PEŞİN/RESMİ/MAHSUP…). Üçü ayrı sorulara cevap verir. Kaynak: ENUM-ISLEM-TISLEMKODU, ENUM-ISLEM-TISLEMTURU, ENUM-ISLEM-TISLEMTIPI.

  2. Yön kodlarından veride yalnız 0, 1, 4, 5 vardır (GİRİŞ, ÇIKIŞ, ALIŞ, SATIŞ); 2 ALACAK ve 3 BORÇ tanımlı ama kullanılmamış. Hesaplanan Yon kolonu {0,2,4} için '+'. Kaynak: FLOW-ISLEM-MATRISI okuma anahtarı, TERM-ISLEM-YON.

  3. İşlem tipi 11'in adı DB'de RESMİ, kodda FATURA; 12 MAHSUP V2 kod tablosunda yok, KUYUMCU'da var; 13–15 ve işlem kodu 14 ÇEŞNİ hiçbir DB tablosunda yok. Kısaltma ve INNER JOIN'lu raporlar bu satırlarda eksik çıkar. Kaynak: CTR-001, CTR-002, CTR-039, TD-44.

  4. BakiyeId mal tarafının birimidir, BirimId para tarafının. BakiyeId = 0 mal bakiyesi yazılmaz; BirimId = 0 para tarafı yok (V2'de 2.281 hurda satırı). Peşinde BirimId bir nakit kartı Id'sidir, değilse birim Id'si. Kaynak: TERM-BAKIYEID-MAL-TARAFI, TERM-BIRIMID-PARA-TARAFI.

  5. Fiş no ≠ işlem no. Fiş bir kayıt tuşunda oluşan gruptur (iki bacak aynı fişi paylaşır); Id her satırın tekil kimliğidir ve destek çağrısında atıf noktasıdır. Kaynak: TERM-FIS-FIS-NUMARASI, TERM-ISLEM-NUMARASI.

  6. RefNo karşı bacağı bağlar. Virman, parite, vadeli, çevir ve arbitraj iki satırdır; iptalde "Karşı İşlemde İptal Edilsin mi?" sorulur. Tek satır kalırsa bakiye bozulur. Kaynak: TERM-KARSI-KAYIT, PB-048.

  7. Şirket → Şube → Kasa → Kullanıcı. Her işlem bir kasaya yazılır; kasası olmayan şubede işlem yapılamaz; kullanıcı birden fazla şube-kasaya bağlanabilir; yetki gruptan gelir ve yeniden girişte yüklenir. Kaynak: TERM-KASA, TERM-KULLANICI, TERM-YETKI-GRUBU.

  8. Birim, nakit kartı ve NAKİT ekranı üç ayrı şeydir. Birim bakiyenin cinsi (listede 133), nakit kartı kasadaki fiziki para (132 kart), NAKİT ekranı para hareketi girişi. Kaynak: SEC-NAKIT, TERM-BIRIM.

  9. Stok kartı ≠ stok defteri. Kart ürünün tanımıdır (kod, milyem, işçilik, fiyat tipi, ana birim); defter her işlemden türeyen harekettir. Kartta ad değiştirilemez, milyem kilitli olabilir. Kaynak: TERM-STOK-KARTI, PB-057.

  10. Fiyat tipi (F.TİPİ) tutarı belirler: aynı fiyat rakamı adet/gram/ons/has başına farklı tutar verir. Zorunlu ve varsayılansızdır; peşin hurda/perakedede varsayılanı Settings "peşin kur tipi"nden gelir (CTR-007). Kaynak: TERM-FIYAT-TIPI-F-TIPI, TERM-PESIN-KUR-TIPI.

  11. Settings tüm şubeleri, Kullanıcı Ayarları tek kullanıcıyı etkiler. Silme/düzeltme onayı ve gün, mutabakat kilidi, BSMV, ons çarpanı, provizyon Settings'te; fiş tasarımı, yazıcı, varsayılan işlem tipi kullanıcıda. Değişiklik sonrası yeniden giriş gerekir. Kaynak: TERM-SETTINGS, TERM-KULLANICI-AYARLARI.

  12. Mutabakat ve MutabakatOnay ekranları stok sayımıdır, cari mutabakat değil. Cari mutabakat işlem listesinde F12 ile (Mutabakat, MTarih) yapılır. Kaynak: CTR-SEC-MUTABAKAT-01, SCR-MUTABAKAT, WF-MUTABAKAT-F12.

  13. Devir iki anlamdır: açılış bakiyesi (DEVİR adlı özel hesaptan, IslemId = −1) ve yıl sonu devri (5 tablo boşaltılıp yeniden yazılır). Kod tablosundaki 999 "DEVİR" satırı ise BORÇ İŞLEMLERİ ekranına aittir. Kaynak: TERM-DEVIR, TERM-BORC-ISLEMLERI.

  14. Belge kontrol tipi (RESMİ) ve e-belge için belge uyum işaretli şube ve kasa (RESMİ ŞUBE / RESMİ KASA — legacy adlar) gerekir; ETTN, entegratör, yetkili müessese no ve resmi işlem limiti şube kartındadır. "Resmi işlemler çalışmıyor" çağrısının ilk kontrolü budur. Kaynak: TERM-RESMI-SUBE, TERM-RESMI-KASA, PB-042.

  15. Yeni tanım, Sistem Yenile'ye kadar görünmez. Program tanım listelerini açılışta belleğe alır (DSX.TABLE.ListOf*); "tanımladım ama listede yok" çağrısının cevabı Ctrl+F5'tir. Kaynak: TERM-DSX-TABLE, PB-039.

E. İşlem ekranı ve kurallar (51–65)

  1. Tek yazma noktası: kullanıcı yalnız Cari.Islemler'e yazar. Tetikleyici Cari.AcceptTransaction bakiye defterini (Cari.BakiyeIslem), stok defterini (Stok.StokHaraketleri) ve izi (Cari.History) üretir. Defterler elle düzeltilmez; satır DÜZELT/İPTAL ile yeniden tetiklenir. Kaynak: BR-DEFTER-URETIMI, TRG-CARI.ACCEPTTRANSACTION.

  2. Tetikleyici sil-yeniden-yaz çalışır ve sırası şudur: şube aktif mi → ETTN dolu mu → zorunlu evrak eksik mi → tip 11/12 ise çık → eski türetilmiş satırları sil → IslemKodu'na göre yaz. Kapalıysa işlem kaydedilir ama defter oluşmaz. Kaynak: TERM-CARI-ACCEPTTRANSACTION-TRIGGER, PB-029.

  3. Peşin (tip 1) bakiye yazmaz. Bakiye yazımını kapatan koşul IslemTipi = 1'dir; onun yerine mal stoğu + nakit stoğuna ters yönlü hareket yazılır. V2'de 318 K peşin satır, %0 bakiye. Kaynak: TERM-PESIN-ISLEM-TIPI-1, FLOW-ISLEM-MATRISI.

  4. BakiyeId = 0 peşin demek değildir. NAKİT NORMAL satırları BakiyeId = 0 ile %99 bakiye üretir (yalnız karşılık birimi satırı); KUYUMCU'da tip 1 hiç yokken BakiyeId = 0 olan 291.630 satırın %99,9'u bakiye üretir. Kaynak: CTR-SEC-BAKIYE-01, CTR-025, MET-PESIN-HACIM.

  5. Resmi (11) ve mahsup (12) operasyonel stok/bakiye kaydı üretmez. V2: 24.376 satır, %0 stok, %0 bakiye; yalnız Cari.Islemler ve Cari.History. Belgelendirilmiş stok görünümü (legacy adı "resmi stok raporu") tipe değil IslemDetaylari.FaturaNo > 0'a bakar. Kaynak: CTR-003/004 (CONFIRMED), TERM-RESMI-FATURA-ISLEM-TIPI-11, TERM-RESMI-STOK.

  6. VaryantId vadeli/paritede karşı işlemin Id'sidir; IslemKodu ∈ {3,6} ve VaryantId ≠ 0 ise satır arbitrajdır (IsArbitiraj). MADEN ekranındaki VARYANT alanı ise stok alt çeşididir — aynı kolon, iki anlam. Kaynak: TERM-VARYANT, EXISTING_STAFF_GUIDE sorgu 6.

  7. MADEN/NAKİT ekranındaki TARİH alanı vade kolonuna yazar (TxtTarih → Vade); işlem tarihi başka yoldan set edilir. "Tarihi değiştirdim, rapor değişmedi" çağrısının nedeni budur. Kaynak: TD-40, H-081, TERM-VADE.

  8. Milyem 0 girilirse tetikleyici 1 kabul eder: has = miktar. Negatif veya aşırı milyem kontrolü yoktur; hatalı milyem sessizce yanlış has üretir. Kaynak: BR-DEFTER-URETIMI, SEC-MILYEM (GAP-SEC-MILYEM-01).

  9. Stok defterinin Maliyet kolonu yalnız işçilik TL'dir (girişte Iscilik × IscilikBirimKur, çıkışta 0). Metal maliyeti günün kuruyla hesaplanır; GetMadenMaliyeti TOP 50 hareketle sınırlı olduğundan maliyet bir günde sıçrayabilir. Kaynak: CTR-SEC-MALIYET-01, TD-23, PB-058.

  10. Devir yalnız 5 tabloyu boşaltır (Cari.Islemler, Cari.BakiyeIslem, Cari.History, Stok.StokHaraketleri, Cari.IslemDetaylari), TRUNCATE + INSERT ile ve transaction olmadan; IslemId taşıyan diğer tablolar öksüz kalır. Devir öncesi yedek tek güvencedir. Kaynak: TD-29, TD-42, SCN-DEVIR.

  11. Düzeltmede tarih, fiş no, kasa ve hesap değişmez; kur yeniden çekilmez. Virman, parite (X) ve ETTN dolu satır hiç düzeltilemez — iptal edip yeniden girilir. Kaynak: BR-DUZELTME-008, CTR-021, TERM-DUZELT, PB-030.

  12. İptal zinciri: yetki → provizyon → mutabakat kilidi → silme onayı/PIN → açıklama → karşı kayıt sorusu → e-belge kapısı → açıklama kaydı. Sil gün eşiğinde ekran >=, kod > kullanır (1 günlük tutarsızlık, CTR-023). Kaynak: TERM-IPTAL, TERM-SILME-ONAYI-SIL-GUN.

  13. Limit kontrolü dar kapsamlıdır: yalnız MADEN/HURDA/NAKİT ÇIKIŞ, tip ≠ PEŞİN ve şubede limit kontrolü açıkken; HAS cinsinden karşılaştırır; "uyar ve geç" modu yoktur. Kaynak: TERM-LIMIT, CTR-014, PB-047.

  14. Miktar 0 ile kayıt yasaktır (istisna: HİZMET, BORÇ, PIRLANTA, VİRMAN); NAKİT/PEŞİN/BEDELLİ/MİKTAR tiplerinde tutar zorunludur. "F2'ye bastım hiçbir şey olmadı" çoğu zaman şube/kasa/hesap seçili değil demektir. Kaynak: TERM-MIKTAR, TERM-TUTAR, PB-045.

  15. Taş işlemi stok defteri üretmez; hizmet ve çevir de üretmez; virman ve borç işlemi yalnız bakiye üretir. Hangi işlemin hangi defteri ürettiği tahminle değil matristen okunur. Kaynak: BR-STOK-011, CTR-SEC-TAS-01, FLOW-ISLEM-MATRISI.

F. Raporlar ve metrikler (66–73)

  1. Alış ve satış ayrı raporlanır; toplamı "hacim" değildir (çift sayım). Çevir iki bacaktır; kasa hareketleri (virman, çevir, masraf, transfer) ve resmi satırlar hacim dışında ayrı sayılır. Kaynak: MET-ISLEM-HACMI.

  2. Net pozisyon = stok + alacak − borç, birim bazında; vadeli dahil/hariç fonksiyona göre değişir (V1/V2/V3). Pozisyon ile bakiye toplanmaz — aynı defterdir. Kaynak: MET-NET-POZISYON, SCR-FRMPOZISYON.

  3. Metrik sözlüğündeki has formülü (/1000) ile DB'deki ondalık milyem karışabilir: DB'de milyem 0,916 saklandığından "/1000" yalnız binde yazımı için geçerlidir. Kaynak: CTR-SEC-HAS-01, MET-HAS.

  4. Kâr raporu satırdaki hesaplanan Kar kolonunu toplar (Satis − Maliyet; yalnız maden çıkışı, tip 11/12 hariç); "miktar × birim maliyet" formülü kodda yoktur. Bilanco.GetIKar kâr değil, defter etkisinin günün kuruyla değerlemesidir. Kaynak: CTR-SEC-KAR-01, TERM-KAR.

  5. Menü raporu (AifaDev.Reports, 60 aktif) ≠ rapor SQL fonksiyonu (79). 88/79/60 sayı farkı payda farkıdır; RPT-91 analizde eklendi ve üretim raporu değildir. Kaynak: CANONICAL_INVENTORY_AUDIT §2.3, CTR-042.

  6. Bilanço her kalemi şubenin bilanço birimine günün alış kuruyla çevirir; kur değişince bilanço değişir, takoz raporsuz has varsayımı (0,600 / XRF) üç raporda üç farklı değer verebilir. Kaynak: TERM-BILANCO, CTR-SYM-TAKOZ-01, PB-055.

  7. Has raporlarında IslemKodu IN (0,1,2) süzgeci kullanılır; adetli üründe milyem "adet başı has"tır. Çeşni (14) kod tablosunda olmadığından INNER JOIN'lu raporlarda düşer. Kaynak: EXISTING_STAFF_GUIDE "Raporlama", TD-44.

  8. "Divide by zero", zaman aşımı ve boş ALACAK/BORÇ süzgeci en sık üç rapor arızasıdır; FN.Bol sıfıra bölmeyi korur, sütun düzeni Sistem.ListLayout'a kaydedilir, Excel'e aktarım işlem listesinden yapılır. Kaynak: PB-051, PB-052, PB-054.

G. Destek (74–85)

  1. En sık 5 ticket teması ve ilk kontrol: (1) Bağlantı/sunucu 2.244 → Configuration Settings, instance adı, RDP parolası; (2) Fatura/e-belge 1.286 → resmi şube/kasa, ETTN, istatistik kodu; (3) Yazıcı/fiş 1.223 → yazıcı tanımı, fiş tasarımı; (4) BTrans 1.035 → aylık kontrol raporu; (5) Lisans 736 → lisans girişi/yenileme. Kaynak: Problem temaları, PB-001, PB-020, PB-023, PB-022, PB-007.

  2. "Bakiye yanlış" çağrısında 10 adımlık sıra vardır; ilk bakılacaklar işlemin BakiyeId, IslemTipi, StokId, Miktar alanları ve tetikleyicinin açık olup olmadığı (sys.triggers … is_disabled). Kaynak: PB-028, PB-029, PRB-BAKIYE-000.

  3. Silinen işlem raporda görünmez ama tabloda durur (IsDeleted = True); türetilmiş defter satırları tetikleyiciyle temizlenir. Her teşhis sorgusuna IsDeleted süzgeci konur; geçmiş Cari.History'den okunur. Kaynak: TERM-ISDELETED, TBL-CARI.HISTORY.

  4. E-belgeli (ETTN dolu) işlem düzeltilemez ve silinemez; önce belge entegratörde iptal edilir. GİB'e iletilmiş belge iptal edilemiyorsa müşteriye açıklanır, satır zorlanmaz. Kaynak: TERM-E-FATURA-E-DOVIZ-BELGESI, PB-020.

  5. Escalate koşulu: playbook adımları tükenmiş ve (a) tetikleyici/prosedür davranışı şüpheli, (b) tutarsızlık SELECT ile kanıtlanmış, (c) müşteri-özel şema/entegrasyon (MüşteriŞemasıA–D, MT4, NetEkstre) söz konusu. Paket: CUST-id, kurulum profili, sürüm, hesap/tarih/fiş/IslemId, üç teşhis sorgusu, İşlem Geçmişi görüntüsü, o gün değişen ayar. Kaynak: EXISTING_STAFF_GUIDE "Escalation".

  6. Üretim DB'sinde yazma yalnız yazılımcı ve yedek sonrası; destek personeli salt okunur SELECT çalıştırır, hesaplanan kolonlara (Yon, SMiktar, SHas, Kar, IsArbitiraj) yazmaz, bulduğu farkı elle düzeltmez. Kaynak: EXISTING_STAFF_GUIDE "Veri teşhisi", AGENT_BRIEF kural 6.

  7. BalanceRepair hiçbir koşulda çalıştırılmaz: devir (IslemId −1) ve transfer (Bolum 2) satırlarını (~80.033) yok eder, tip 11/12'ye bakiye yazar. Devir sonrası fark DEVİR hesabından elle giriş/çıkışla kapatılır. Kaynak: TD-30, PB-034.

  8. "Hesap seçildi ama işlem düğmeleri yok" üç nedenden biridir: pasif hesap, eksik zorunlu evrak (KYC kapısı), şifreli hesap. "Ekran menüde yok" ise yetki grubudur ve yeniden giriş gerektirir. Kaynak: PB-044, PB-041.

  9. Çift bacaklı işlemde tek satır kaldıysa (parite, virman, vadeli arbitraj/fatura, çevir) RefNo/VaryantId bağı sorgu 6 ile doğrulanır, kalan satır iptal edilip işlem yeniden girilir; ikinci bacak elle "tamamlanmaz". Kaynak: PB-048, PB-032.

  10. İki kişi aynı fiş numarasını alabilir; GetNewFisNo = MAX+1 kilitsizdir. Fiş numarası iki güne yayılmışsa veya çakışmışsa bu bir kullanıcı hatası değildir. Kaynak: TD-02, PB-065.

  11. Demo kopyasından türetilen kurulumda tetikleyici kapalı kalabilir; işlemler kaydedilir, bakiye/stok oluşmaz. Tespit: sorgu 4; çözüm: ENABLE + her satırı DÜZELT-kaydet ile yeniden tetikleme. Kaynak: PB-029, TD-32.

  12. Ticket verisi kişisel veri içerir (kişi adı, telefon); wikiye ve kitaba girmez, müşteri yalnız CUST-<id> ile anılır. Süreç dokümanlarındaki şifre/IP/terminal bilgileri [REDACTED] kalır. Kaynak: CANONICAL_INVENTORY_AUDIT §8, AGENT_BRIEF kural 4.

H. Teknik (86–95)

  1. ERPGOLD WinForms (VB.NET) + SQL Server'dır. Menü → FrmMainForm.onMenuSelect → ekran → DAO (AIO.*) → tablo. Tam çözüm 1.029 .vb, 811 el yazımı sınıf, 126 DAO sınıfı, 317 form/kontrol. Kaynak: CANONICAL_INVENTORY_AUDIT §3, ARCH-DB-ACCESS.

  2. Üretim DB'sinde foreign key yoktur; 249 ilişki JOIN kanıtından türetilmiştir. "9 FK var" cümlesi analizde yüklenen KYC şemasına aittir, ürün özelliği değildir (CTR-036). Kaynak: CANONICAL_INVENTORY_AUDIT §2.3, §5, LOGICAL_FK_MAP.

  3. Tetikleyici metni kaynak kodda değil DB'de yaşar ve kurulumlar arasında ayrışmıştır (V2 29.862 ↔ KUYUMCU 31.152 karakter; V2 anlık görüntüsü 2023-12, KUYUMCU 2024-10). "Hangisi doğru" yanlış sorudur; ikisi farklı zamandır. Kaynak: TD-48, CTR-037 (SOT-05).

  4. modify_date değişiklik kanıtı değildir. 278 TVF + 46 fonksiyon 2026-09-10 00:59'da aynı anda "modified" görünür (attach/upgrade eseri); tetikleyici tarihleri de DISABLE/ENABLE ile güncellenmiştir. create_date güvenilirdir. Kaynak: KNOWN_GAPS#gap-fn-modify-date, CANONICAL_INVENTORY_AUDIT SOT-05.

  5. POS., KYC., dbo.Face* ve RPT-91 (Reports.MusteriUrunHacimRaporu) analiz kalıntısıdır — GENERATED_PROPOSAL / EXPERIMENTAL; dev DB'ye 2026-09-10/11'de kuruldu, üretimde yoktur. "ERPGOLD özelliği" diye anlatılmaz. Kaynak: CANONICAL_INVENTORY_AUDIT §5, CTR-041.

  6. 679 boş Catch bloğu vardır; Save False döner ama neden kaybolur; kur okunamazsa sessizce eski/boş değer kullanılır; PIRLANTA/EMTİA Validate sonucu kontrol edilmez. "Hata vermedi" ≠ "doğru kaydetti". Kaynak: TD-12, QA-HOTSPOTS.

  7. Yetki istemci tarafındadır; DB'de grup kontrolü yoktur, izinler girişte yüklenir. Aifa Developer Studio serbest SQL üretimde yazma amaçlı kullanılmaz. Kaynak: SEC-AUTHZ (EXISTING_STAFF_GUIDE), TD-10.

  8. Kritik tablolar: Cari.Islemler (1,58 M, 90 kolon, 4 trigger), Cari.History (1,64 M), Stok.StokHaraketleri (1,62 M), Cari.BakiyeIslem (1,46 M), Cari.IslemDetaylari (0,99 M), Cari.Hesaplar, Sistem.Birimler (133 satırlık ama 100 nesne okur). Bunlarda kolon değişikliği tüm müşterileri etkiler. Kaynak: TECHNICAL_WIKI/INDEX TOP CRITICAL, CHANGE_IMPACT.

  9. 48 ekran ACTIVE_CRITICAL'dır (iScreen, iFormBase, iFTransaction, tüm iF* işlem ekranları, tanım ekranları, Devir, Transfer, Mutabakat, FaturaEkle, Pozisyon). UNUSED_CANDIDATE ekranlar (FrmFaturaBas, FrmIptalTalepFormu) müşteriye anlatılmaz. Kaynak: EXISTING_STAFF_GUIDE "Kritik ekranlar", 05_Screens/_lifecycle.json.

  10. Bilinen kusurlar "normal" değildir: satışta alış kuru (TD-21), TOP 50 maliyet (TD-23), fiş no yarışı (TD-02), cursor sızıntısı (TD-03), negatif stok engellenmez (H-123), TxtTarih→Vade (TD-40), Devir transaction'sız (TD-29). Müşteriye "program böyle" denmez, kayıt açılır. Kaynak: 17_Quality_And_TechnicalDebt/INDEX, KnownIssues.

I. Kurumsal (96–100)

  1. Kaynak hiyerarşisi: 1 çalışan kod · 2 DB tanımı · 3 gerçek veri · 4 AIFASOFT resmi doküman/web · 5 destek/ticket · 6 önceki AI analizleri. Doküman kodla çelişirse kod kazanır; çelişki CTR olarak kaydedilir, sessizce taraf tutulmaz. Kaynak: AGENT_BRIEF, BOOK_BRIEF §49.

  2. Uydurma yok — GAP/CTR kültürü. Bilinmeyen GAP, çelişen CTR olarak yazılır; mevzuat için kaynak + tarih yoksa GAP-MEVZUAT. Bu kitapta bile sözlük eksikleri (COMEX, hedge, spot…) GAP olarak işaretlenmiştir. Kaynak: KNOWN_GAPS, CONTRADICTIONS, Bölüm 8 GAP kutusu.

  3. Hiçbir mevcut çıktı bütün kaynakları aynı anda görmedi. KB-v1 kodun üçte birini, KB-docs süreç/ticket'ı, kitapçık KB-v1'in çelişkilerini görmedi; sayı farkları (317/99/79 ekran, 88/79/60 rapor) payda farkıdır. Tek referans kanonik wiki. Kaynak: CANONICAL_INVENTORY_AUDIT §1, §10.

  4. Bir kurulumda görülen davranış müşteriye "ürün özelliği" diye anlatılmaz. Müşteri-özel şemalar (kitapta MüşteriŞemasıA–D), 5. tetikleyici, kişi adlı rapor başlıkları çekirdek değildir; iki kurulumdan genelleme yapılmaz (2 / N müşteri). Kaynak: VARIANT_MATRIX, EXISTING_STAFF_GUIDE "Müşteri varyasyonları".

  5. Müşteri verisi gizlidir ve müşteriye açık içerik teknik ad taşımaz. TC, telefon, parola, bağlantı dizesi, gerçek kişi adı yazılmaz; CUSTOMER_SAFE metinde tablo/tetikleyici/sınıf adı geçmez — müşteriye "tetikleyici" değil "program otomatik hesaplar" denir. Kaynak: AGENT_BRIEF kural 4, EXISTING_STAFF_GUIDE uygulamalı senaryo 4.


Bölüm sonu sınavı

Kolay (5)

  1. Has nasıl hesaplanır ve 22 ayar için milyem kaçtır?
  2. Stok ile bakiye arasındaki fark tek cümleyle nedir?
  3. Kullanıcı hangi tabloya yazar; bakiye ve stok defterlerini kim üretir?
  4. Peşin (tip 1) işlem bakiye defterine yazar mı?
  5. Fiş numarası ile işlem numarası arasındaki fark nedir?

Orta (5)

  1. "BakiyeId = 0 ise işlem peşindir" cümlesi neden yanlıştır? İki kanıt verin.
  2. Resmi (11) ve mahsup (12) tipli işlemler hangi defterlere yazar? Resmi stok raporu neye bakar?
  3. Virman, çevir ve transfer hangi defterleri üretir?
  4. MADEN ekranındaki TARİH alanı hangi kolona yazar; destek için sonucu nedir?
  5. Devir prosedürü kaç tabloyu boşaltır ve neden risklidir?

Senaryo (5)

  1. Müşteri "kur girdim ama bilanço 0 çıkıyor" diyor. İlk üç kontrolünüz nedir?
  2. Bir NAKİT parite işleminde yalnız EUR satırı görünüyor, USD satırı yok. Ne yaparsınız, neyi yapmazsınız?
  3. Demo kopyasından kurulan yeni müşteride işlemler kaydediliyor ama bakiye kartı boş. Teşhis ve çözüm sırası?
  4. Muhasebeci "maden maliyeti bir günde iki katına çıktı" diyor; stok hareketi sayısı 50'yi geçmiş. Açıklamanız ve müşteriye söyleyeceğiniz cümle?
  5. Kuyumcu kurulumunda "cari işlem stok üretmez" diyen bir meslektaşınıza hangi ölçümle cevap verirsiniz?

Cevap anahtarı

  1. Has = Miktar × Milyem; 22 ayar = 0,916 (916 ‰). — SEC-HAS
  2. Stok "nerede duruyor", bakiye "kime ait". — SEC-STOK
  3. Yalnız Cari.Islemler; tetikleyici Cari.AcceptTransaction bakiye, stok ve History üretir. — BR-DEFTER-URETIMI
  4. Hayır; mal stoğu + nakit stoğuna ters hareket yazar, bakiye satırı yazmaz. — TERM-PESIN-ISLEM-TIPI-1
  5. Fiş bir kayıt tuşundaki satır grubu; Id her satırın tekil kimliği. — TERM-FIS-FIS-NUMARASI
  6. Bakiyeyi kapatan koşul IslemTipi = 1; NAKİT NORMAL satırları BakiyeId = 0 ile bakiye üretir; KUYUMCU'da tip 1 hiç yokken BakiyeId = 0 satırların %99,9'u bakiye üretir. — CTR-SEC-BAKIYE-01
  7. Hiçbirine (yalnız Cari.Islemler + History); resmi stok IslemDetaylari.FaturaNo > 0'a bakar. — CTR-003/004, TERM-RESMI-STOK
  8. Virman ve çevir yalnız bakiye (iki satır); transfer yalnız stok defteri Bolum = 2 (tetikleyici dışı). — SEC-VIRMAN, TERM-TRANSFER
  9. Vade kolonuna; işlem tarihi değişmez, raporlar değişmez. — TD-40
  10. 5 tablo; TRUNCATE + INSERT transaction'sız, diğer tablolar öksüz kalır. — TD-29, TD-42
  11. Kur listesinde o tarih ve bilanço birimi için satır var mı; EDS akışı çalışıyor mu; şube bilanço birimi doğru mu. — PB-036, PB-055
  12. Sorgu 6 ile RefNo/VaryantId bağını doğrula, kalan satırı iptal et, işlemi yeniden gir; ikinci bacağı elle tamamlama. — PB-048
  13. sys.triggers … is_disabled ile tetikleyiciyi kontrol et; ENABLE; her satırı DÜZELT-kaydet ile yeniden tetikle; BalanceRepair önerme. — PB-029
  14. GetMadenMaliyeti TOP 50 hareketle sınırlı ve güncel kurla çevirir (TD-23); müşteriye: "Maliyet hesabı son 50 hareketle sınırlı, bilinen bir kusur; kayıt açıyoruz." — PB-058
  15. KUYUMCU'da cari (BakiyeId > 0) işlemlerin %60,3'ü stok üretir; V2'de %1,4 — kural kurulum bağımlıdır. — BR-DEFTER-URETIMI

Bunu anladıysan devam et