Factorizer/Cluster ERP WikiCluster ERP English
Ana sayfa / İş modülleri

Modül

Currencies modülü (currencies)

Para birimi listesini, dönüştürme ve merkez bankası içe aktarımıyla kurları ve ödeme koşulları başvurusunu sunan currencies modülünün sayfası.

src/cluster_erp/modules/currencies/ içindeki currencies modülü üç tür finans başvuru verisi sunar: para birimleri, kurlar ve ödeme koşulları. Para birimi ve kur modelleri platform çekirdeğinde, src/cluster_erp/core/currencies.py içinde bulunur; bu modül onları tohumlar, uçlarını bağlar ve ekranlarını bildirir. Ödeme koşulları modülün kendi tablosudur. Diğer modüller bu kayıtları formlarında yabancı anahtar kaynağı olarak kullanır.

Bir bakışta

Öğe Değer Kaynak
Paket src/cluster_erp/modules/currencies/ klasör
Modül sınıfı Module src/cluster_erp/modules/currencies/module.py:18
name / version currencies / 0.1.0 src/cluster_erp/modules/currencies/module.py:19-25
API öneki /api/v1/currencies (ModuleBase.api_prefix) src/cluster_erp/core/module_base.py:37-38
Alt modüller 2 klasör: exchange_rates, payment_terms; ayrıca server/routes/currencies.py içindeki para birimi uçları klasör listesi, src/cluster_erp/modules/currencies/module.py:74-81
Tablolar 3: core_currencies, core_exchange_rates (çekirdekte tanımlı), core_payment_terms src/cluster_erp/core/currencies.py:58, src/cluster_erp/core/currencies.py:92, src/cluster_erp/modules/currencies/payment_terms/models.py:13
Metadata'daki varlıklar 3: currency, exchange_rate, payment_term src/cluster_erp/modules/currencies/module.py:146-150
Uçlar 20: 7 para birimi ucu, 8 kur ucu, 5 ödeme koşulu ucu @router. için grep
Web uygulamasında yeri Katalog uygulaması yok; ayarlar Sistem Uygulamaları altında görünür (webapp/i18n/tr.json anahtarı settings.system_apps) webapp/js/home.js (SYSTEM_APP_SETTINGS)
Masaüstünde yeri Yalnızca genel bileşenler; src/cluster_erp/desktop/modules/ içinde klasör yok klasör

Modül ne yapar

  • Her başlangıçta ISO 4217 para birimi listesini ve standart ödeme koşullarını, var olan satırların üzerine yazmadan tohumlar (src/cluster_erp/modules/currencies/module.py:31-62).
  • Para birimlerini listeler, oluşturur, günceller ve geçici olarak siler; listeyi paketlenmiş ISO verisinden yeniler (src/cluster_erp/server/routes/currencies.py:21-98).
  • Kurları para birimi çifti ve tarih başına saklar, bir tutarı dönüştürür ve Türkiye merkez bankasının günlük kurlarını içe aktarır (src/cluster_erp/modules/currencies/exchange_rates/routes.py:29-144).
  • Ödeme koşullarını bir kategori, net gün sayısı ve erken ödeme iskontosuyla tutar (src/cluster_erp/modules/currencies/payment_terms/models.py:12-62).

Alt modüller

Alt modül Amaç Ana varlıklar Yönlendirici Kaynak
para birimi uçları Para birimi listesi Currency /api/v1/currencies (modül kökü) src/cluster_erp/server/routes/currencies.py:18
exchange_rates Kurlar, dönüştürme, merkez bankası içe aktarımı ExchangeRate /api/v1/currencies/exchange-rates src/cluster_erp/modules/currencies/exchange_rates/routes.py:29
payment_terms Ödeme koşulları PaymentTerm /api/v1/currencies/payment-terms src/cluster_erp/modules/currencies/payment_terms/routes.py:21

Para birimi yönlendiricisi sunucu katmanında tanımlanır ve modül yönlendiricisi altına ilk olarak eklenir; yönlendiricinin tamamı currencies uygulama yetkisine bağlıdır (src/cluster_erp/modules/currencies/module.py:64-82). exchange_rates/models.py yalnızca çekirdek modeli yeniden dışa aktarır (src/cluster_erp/modules/currencies/exchange_rates/models.py:1-5).

Veri modeli

Varlık Tablo Anahtar alanlar Notlar Kaynak
Currency core_currencies code, numeric_code, name, symbol, decimal_places, translations, is_active kod ve sayısal kod canlı satırlar arasında benzersiz src/cluster_erp/core/currencies.py:57-88
ExchangeRate core_exchange_rates base_currency_code, target_currency_code, buy_rate, sell_rate, rate, unit, rate_date, source çift ve tarih başına bir canlı satır; kurlar Numeric(18, 6) src/cluster_erp/core/currencies.py:91-132
PaymentTerm core_payment_terms code, name, category, net_days, discount_percent, discount_days, translations, is_active, sort_order kod canlı satırlar arasında benzersiz src/cluster_erp/modules/currencies/payment_terms/models.py:12-62

Tohumlama ve çekirdek uçlar başvuru verileri ve çekirdek i18n sayfasında da anlatılır.

Ekranlar ve metadata

get_metadata modüle Para Birimleri ve Ödeme Koşulları (İngilizce Currencies & Payment Terms) etiketini ve iki bölümlü bir Finans Ayarları kenar çubuğu grubunu verir: currency, exchange_rate ve payment_term sekmeli bir ayarlar görünümü ve bir Ödeme Koşulları listesi (src/cluster_erp/modules/currencies/module.py:103-151). Web uygulaması modülü SYSTEM_APP_SETTINGS içinde listeler; bu yüzden ayar sekmeleri Ayarlar, ardından Sistem Uygulamaları üzerinden açılır; kod yorumu finans başvuru verilerinin kendine ait bir uygulaması olmadığını belirtir (webapp/js/home.js (SYSTEM_APP_SETTINGS)). Ödeme koşulu kategorileri altı seçenek olarak sunulur: peşin/avans, vadeli, erken ödeme iskontolu, ay sonu, taksitli ve uluslararası (src/cluster_erp/modules/currencies/metadata.py:294-299).

Durumlar ve aksiyonlar

Kayıtların bir is_active bayrağı vardır, durum alanı yoktur (src/cluster_erp/core/currencies.py:88, src/cluster_erp/modules/currencies/payment_terms/models.py:53-57).

Aksiyon Etiket Koşul Uç İzin Kaynak
update_from_internet (para birimi) İnternetten Güncelle yok (genel) POST /update-from-internet currency.create src/cluster_erp/modules/currencies/metadata.py:29-37, src/cluster_erp/server/routes/currencies.py:33-40
sync_tcmb (kur) TCMB Senkronize Et yok (genel) POST /exchange-rates/sync-tcmb exchange_rate.sync src/cluster_erp/modules/currencies/metadata.py:155-163, src/cluster_erp/modules/currencies/exchange_rates/routes.py:131-144

İş kuralları

  • Para birimi tohumu, sembolleri ve çevirileri olan seçilmiş bir listeyi alır ve pycountry paketinden diğer tüm ISO 4217 para birimlerini ekler; sayısal kodu boş veya zaten kullanılmış bir para birimi atlanır (src/cluster_erp/core/currencies.py:1811-1852). Var olan kodlar değiştirilmez (src/cluster_erp/core/currencies.py:281-309).
  • İnternetten Güncelle aynı paketlenmiş veriyi okur ve var olan para birimlerinin sayısal kodunu, adını, sembolünü ve çevirilerini yeniler; ağ isteği yapmaz (src/cluster_erp/core/currencies.py:311-357).
  • Aynı para birimi arasında dönüştürme tutarı kur 1 ile döndürür. Aksi halde verilen tarihin doğrudan kurunu, tarih verilmemişse en yeni doğrudan kuru amount x rate / unit olarak kullanır; o da yoksa eşleşen ters kuru amount x unit / rate olarak kullanır. Sonuçlar altı basamağa yuvarlanır (src/cluster_erp/core/currencies.py:383-446). Hiç kur yoksa uç bulunamadı yanıtı verir (src/cluster_erp/modules/currencies/exchange_rates/routes.py:66-79).
  • Dönüştürmedeki quantize hiçbir yuvarlama kipi vermez ve src/ içinde getcontext ve setcontext için yapılan grep ondalık bağlamında hiçbir değişiklik bulmaz; bu yüzden Python'un decimal modülünün varsayılan bağlamı geçerlidir.
  • TCMB Senkronize Et, merkez bankasının günlük XML dosyasını tcmb_url ayarındaki adresten tcmb_timeout_seconds zaman aşımıyla çeker. Her yabancı para birimini TRY karşısında alış, satış ve ortalama kurla saklar; o tarihin satırını oluşturur veya günceller (src/cluster_erp/modules/currencies/exchange_rates/routes.py:131-144, src/cluster_erp/core/currencies.py:448-552, src/cluster_erp/config/settings.py:418-420). Çekme bir işçi iş parçacığında çalışır; bir başarısızlık fırlatılmaz, hata sayısı olarak döndürülür (src/cluster_erp/core/currencies.py:454-461).
  • Elle girilen bir kur, başka bir kaynak verilmedikçe manual kaynağını alır; para birimi kodları büyük harfle saklanır (src/cluster_erp/modules/currencies/exchange_rates/schemas.py:16-24, src/cluster_erp/modules/currencies/exchange_rates/services.py:80-93).
  • Bir ödeme koşulu kodu canlı koşullar arasında boş olmalıdır (src/cluster_erp/modules/currencies/payment_terms/services.py:452-455). Tohum altı kategoride 45 standart koşul içerir (src/cluster_erp/modules/currencies/payment_terms/services.py:32-409, code anahtarlı girdiler).
  • assert_known_currency, canlı ve etkin bir para birimi olmayan bir kodu CURRENCY_UNKNOWN ve HTTP 422 ile reddeder (src/cluster_erp/core/currencies.py:30-49). Bu commit'te onu subscriptions modülü çağırır (assert_known_currency için grep).

Olaylar ve sorgular

Modül hiçbir sözleşme tüketmez ve üretmez; register_events boştur (src/cluster_erp/modules/currencies/module.py:84-85). Diğer modüller kayıtlarını metadata'da yabancı anahtar kaynağı olarak kullanır: diğer modüllerin 10 dosyasında module="currencies" olan 33 ForeignKeySource girdisi (grep).

Yön Sözleşme sınıfı İşleyici veya yayan Kaynak
yok yok yok src/cluster_erp/modules/currencies/module.py:84-85

Yetkiler

İzin anahtarı Kullanan Kaynak
currency.read, .create, .update, .delete, .seed para birimi uçları src/cluster_erp/server/routes/currencies.py:25-94
exchange_rate.read, .create, .update, .delete, .sync kur uçları; toplu silme de exchange_rate.delete kullanır src/cluster_erp/modules/currencies/exchange_rates/routes.py:40-134
payment_term.read, .create, .update, .delete ödeme koşulu uçları src/cluster_erp/modules/currencies/payment_terms/routes.py:28-82

Gizlilik, saklama ve geçmiş

Modül kişisel veri saklamaz ve privacy_handlers.py dosyası yoktur. Silme deleted_at alanını ayarlar (src/cluster_erp/core/currencies.py:273-279, src/cluster_erp/modules/currencies/exchange_rates/services.py:109-133). Değişiklikler değişiklik geçmişi tarafından kaydedilir.

Analitik olguları

Bu modülün analytics_facts.py dosyası yoktur.

Ayarlar ve başvuru verileri

Ayar Anlam Kaynak
tcmb_url Merkez bankası günlük kur dosyasının adresi src/cluster_erp/config/settings.py:416
tcmb_sync_on_startup Varsayılanı False olarak bildirilir; grep onu okuyan bir kod bulmaz src/cluster_erp/config/settings.py:417
tcmb_timeout_seconds Çekme zaman aşımı, varsayılan 15 src/cluster_erp/config/settings.py:418

Bkz. ayarlar başvurusu.

Testler

tests/ içinde modules.currencies ve core.currencies için grep ile ve web-client/ içinde dosya adıyla bulundu.

Tür Dosya Kapsam
pytest tests/test_tenant_fields.py ödeme koşulu modelini daha geniş bir sözleşmede içe aktarır
pytest tests/test_fk_indexes.py indeks denetimi için çekirdek para birimi modellerini içe aktarır
e2e web-client/_e2e_deseng_currencies.mjs Sistem Uygulamaları altındaki para birimi ayarları ve ayrı bir uygulamanın bulunmaması

Tutarsızlıklar

Tanıtılan terimler

Terim Kod tanımlayıcısı Tanım Türkçe terim Kaynak
currency Currency Kodu, simgesi ve ondalık basamak sayısıyla bir ISO 4217 para birimini tutan referans veri satırı. para birimi src/cluster_erp/core/currencies.py:57
exchange rate ExchangeRate Bir temel para biriminin bir tarihte, unit başına hedef para birimindeki değeri. Kur src/cluster_erp/core/currencies.py:91
payment term PaymentTerm Bir faturanın ne zaman ve nasıl ödeneceğine dair kodlu bir kural. Ödeme koşulu src/cluster_erp/modules/currencies/payment_terms/models.py:12

İlgili sayfalar


92f8051 numaralı commit ile 2026-11-13 tarihinde doğrulandı.

Doğrulanan commit 92f8051 · 2026-11-13