A short, human-readable summary of the problem.
A human-readable explanation specific to this occurrence of the problem.
A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
A URI reference that identifies the problem type
Retrieves a ConstraintViolation resource.
Bakiye denormalized (BankaBakiyeListener ile sync)
Kredi limiti (negatif bakiye için tanımlı)
Firmanın banka hesabı (kendi hesabı, müşteri hesabı CariBankaHesabi'nda). Eski OnySoftErp BankaListe (5 tablo, 0 kayıt — kullanılmamıştı) tablosunun modern karşılığı. Modern halinde aktif kullanım için tasarlandı. Bakiye denormalized — BankaHareket'lerden BankaBakiyeListener (raw DBAL) ile sync.
Belge numarası (her tip için ayrı seri: FAT-0001, SIP-0001, IRS-0001)
Referans belge (Sipariş→İrsaliye→Fatura zinciri). FK AŞAMA 4.5'te.
Depo ID (Depo entity AŞAMA 5'te eklenecek; şimdilik nullable string ref).
Satıcı kodu — belge oluşturulurken snapshot (cari.saticiKodu'ndan veya user'dan).
Tüm kalemlerin matrah toplamı (iskonto sonrası, KDV öncesi)
Tüm kalemlerin iskonto tutarları toplamı (genel iskonto ÖNCESI)
Genel iskonto tutarı (toplamMatrah × genelIskontoOrani/100)
Tüm kalemlerin KDV toplamı (genel iskonto sonrası matrahın KDV'si)
Genel toplam = matrah − genelIskonto + KDV + ÖTV (tevkifat öncesi)
Net ödenecek = genelToplam − tevkifat (cariye yansıyan asıl borç)
ETTN — Evrensel Tekil Tanımlama Numarası (UUID format)
Ticari belge (Teklif / Sipariş / İrsaliye / Fatura / e-Fatura / e-Arşiv / Gider Pusulası). Eski OnySoftErp BelgeBaslik (85 kolon, 1271 kayıt) tablosunun modern karşılığı. Tek tablo, `turu` enum ile tip ayırımı (eski sistemle uyumlu). formTip: CIKIS (satış) / GIRIS (alış) durum: TASLAK -> ACIK -> KAPALI / IPTAL Belge kapatılınca (durum = KAPALI): - Belge kalemlerinden StokHareket'ler otomatik üretilir (BelgeKapatmaListener) - Belge toplamından CariHareket (FATURA/IADE tipinde) otomatik üretilir Çoklu para: belge `paraBirimi` + `kur` ile saklanır (TRY default). Tüm DECIMAL alanlar BU para biriminde — `kur` TRY karşılığı için (raporlama).
VKN (10 hane, tüzel kişiler) — public bilgi, encrypted değil.
TCKN (11 hane, gerçek kişiler) — KVKK gereği AES-256 encrypted saklanmalı.
Cari bakiye (denormalized). CariHareket INSERT/DELETE/UPDATE'de CariBakiyeListener (Doctrine event) tarafından otomatik güncellenir.
e-Fatura alias: '@vkn.kep.tr' veya 'urn:mail:vkn@firma.com'.
e-Fatura tipi: 'TICARI', 'TEMELFATURA', 'ALACAK', 'IADE' .
Entegrasyon eşleme kodları (Netsis/Logo/Mikro/Zirve push için).
Cari hesap (müşteri/tedarikçi/içdepartman). Eski tabloda 53 kolon vardı — modern halinde sadece kritik alanlar. Genişletilebilir: notes (JSON), entegrasyon kodları, çok-dil unvan, vd. Multi-tenant: firma_id global scope (TenantFilter aktif). API Platform endpoints (otomatik OpenAPI): GET /api/cari — listeleme (filtre + sıralama + pagination) GET /api/cari/{id} — tek kayıt POST /api/cari — yeni cari (ROLE_SALES/ADMIN) PATCH /api/cari/{id} — kısmi güncelleme DELETE /api/cari/{id} — soft delete (ROLE_ADMIN)
Kasa bakiyesi (denormalized). KasaHareket INSERT/DELETE/UPDATE'de KasaBakiyeListener tarafından otomatik güncellenir.
Şube ID (Sube entity FK; nullable — merkez kasası olabilir)
Sorumlu personel (User FK ileride; şimdilik string snapshot)
Kasa kartı (nakit kasa). Eski OnySoftErp KasaListe + KasaTanimlama tablolarının modern karşılığı. Her firma birden çok kasa açabilir: ana kasa (TL), USD kasa, EUR kasa, şube kasası, satıcı kasası vd. Bakiye denormalized — KasaHareket'lerden KasaBakiyeListener (raw DBAL) ile otomatik sync (Cari/Stok pattern'inin aynısı).
Birincil/ana barkod (string, hızlı arama için inline).
Arama için anahtar kelimeler (eski StokKeywords, virgülle ayrılmış).
Birim dönüşüm: 1 birim2 = (olcuPay/olcuPayda) birim1.
ÖTV oranı (%) — eski sistemde yoktu, yeni eklenen alan
Stok miktarı (denormalized). StokHareket INSERT/DELETE/UPDATE'de StokMiktarListener tarafından otomatik güncellenir.
Ana resim URL (S3/MinIO). Çoklu resimler `stok_resimler` tablosunda.
Stok kartı (ürün/hizmet/hammadde). Eski tabloda StokListe 76 kolondu — modern halinde sadece kritik alanlar stoklar tablosunda; varyantlar, EAV özellikleri, resimler ayrı tablolarda. Multi-tenant: firma_id global scope (TenantFilter aktif). API Platform decoration AŞAMA 3.5'te eklenecek. Tasarım kararları: - Stok miktarı denormalized (`stokMiktari`); StokHareket INSERT/DELETE/UPDATE'de StokMiktarListener tarafından otomatik güncellenir (Cari bakiye listener pattern). - 4 fiyat listesi inline (Fiyat_1..4 + AFiyat_1..4) — eski sistemle uyum. Çok-müşteri/zaman bazlı fiyatlar için ayrı `cari_stok_fiyatlari` tablosu var. - Tekstil özel alanları (en/boy/genislik) nullable; non-tekstil müşteriler kullanmaz. - Entegrasyon kodları (netsis/logo/mikro/zirve) inline; ileride ayrı `entegrasyon_eslesme(stok_id, provider, external_code)` tablosuna taşınacak.
Retrieves the collection of BankaHesap resources.
Retrieves the collection of Belge resources.
Retrieves the collection of Cari resources.
Retrieves the collection of Kasa resources.
Retrieves the collection of Stok resources.
The message associated with the violation