feat(ui): aynî kayıt kartları, ödeme ve birikim diyalogları, fiyat tablosu sayfası

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 12:37:48 +03:00
parent 9781cd9ed2
commit 3cd8d98324
9 changed files with 1119 additions and 7 deletions
+106
View File
@@ -363,6 +363,7 @@ export const tr = {
reconciled: "Mutabakatı yapıldı",
cancelInstallments: "Kalan taksitleri iptal et",
contactEditHint: "Cari hareketi cari sayfasından düzenlenir.",
inKindPaymentLocked: "Aynî borç ödemesi silinemez; ödeme cari sayfasındaki kayda bağlıdır.",
readOnly: "İzleyici rolündesiniz; işlem ekleyemezsiniz.",
noAccounts: "İşlem girmek için önce bir hesap gerekli.",
noAccountsLink: "Hesaplara git",
@@ -549,6 +550,111 @@ export const tr = {
archived: "Arşivlenmiş cariye hareket eklenemez.",
},
},
inKind: {
title: "Aynî borç ve alacaklar",
description:
"Altın, ziynet veya döviz cinsinden borç/alacak. Kapanış yalnızca “Ödeme gerçekleşti” ile.",
new: "Aynî kayıt ekle",
createTitle: "Yeni aynî borç/alacak",
editTitle: "Aynî kaydı düzenle",
directions: { debt: "Ben borçluyum", receivable: "Bana borçlu" },
fields: {
direction: "Yön",
asset: "Varlık",
quantity: "Miktar",
date: "Borç tarihi",
unitPrice: "O tarihteki birim fiyat (TL)",
unitPriceHint: "Boş bırakılırsa fiyat tablosundaki o tarihe ait son fiyat kullanılır.",
note: "Not",
savingsAccount: "Birikim hesabı",
savingsNone: "— Birikim planı yok —",
monthlyPlan: "Aylık ayrılacak tutar (TL)",
planHint:
"Borcu kapatmak için her ay bu hesaba para ayırın; borç yalnızca ödeme yapılınca kapanır.",
},
stats: {
remaining: "Kalan",
dateValue: (d: string) => `${d} değeri`,
currentValue: "Güncel değer",
accumulated: "Biriken",
remainingNeed: "Kalan ihtiyaç",
estimatedClose: "Tahmini kapanış",
noPrice: "Güncel fiyat yok",
closed: (d: string) => `Kapandı · ${d}`,
priceAt: (price: string, date: string) => `Fiyat ${price} (${date})`,
currentPrice: (debt: boolean, price: string, date: string) =>
`Güncel ${debt ? "satış" : "alış"} fiyatı ${price} · ${date}`,
},
contribute: "Birikim ekle",
contributionTitle: "Birikim ekle",
fromAccount: "Kaynak hesap",
contributionDescription: (label: string, name: string) => `Birikim: ${label} borcu (${name})`,
pay: "Ödeme gerçekleşti",
payTitle: "Ödeme gerçekleşti",
methods: { asset: "Aynı varlıkla", cash: "TL karşılığıyla" },
methodHints: {
asset: "Varlığın kendisiyle ödendi (ör. kuyumcudan alınan altın verildi).",
cash: "Varlığın TL karşılığı ödendi; hesaptan çıkış işlemi oluşturulur.",
},
receiveHints: {
asset: "Varlığın kendisi teslim alındı.",
cash: "Varlığın TL karşılığı hesaba tahsil edildi.",
},
payFields: {
quantity: "Ödenen miktar",
quantityHint: "Boş bırakılırsa tutar güncel fiyata bölünerek hesaplanır.",
amount: "Tutar (TL)",
assetAmount: "Varlığı almak için harcanan (TL, isteğe bağlı)",
account: "Hesap",
},
paymentDescription: (debt: boolean, label: string, name: string) =>
debt ? `Aynî borç ödemesi: ${label} (${name})` : `Aynî alacak tahsilatı: ${label} (${name})`,
payments: "Ödemeler",
paymentLine: (method: string, qty: string, amount: string | null) =>
amount ? `${method} · ${qty} · ${amount}` : `${method} · ${qty}`,
delete: "Kaydı sil",
deleteTitle: "Aynî kayıt silinsin mi?",
deleteDescription:
"Kayıt listeden kaldırılır. Oluşturulmuş para hareketleri (birikim, ödeme) işlemlerde kalır.",
prices: "Fiyat tablosu",
toast: {
saved: "Aynî kayıt kaydedildi.",
contributed: "Birikim eklendi.",
paid: "Ödeme kaydedildi.",
closed: "Ödeme kaydedildi; kayıt kapandı.",
deleted: "Aynî kayıt silindi.",
},
errors: {
noPrice: "Bu tarih için fiyat yok; birim fiyatı girin veya fiyat tablosunu güncelleyin.",
noSavings: "Önce kayda bir birikim hesabı seçin.",
closed: "Kayıt kapanmış.",
quantityBelowPaid: "Miktar ödenmiş miktardan az olamaz.",
receivablePlan: "Birikim planı yalnızca borçlar içindir.",
noCurrentPrice: "Güncel fiyat yok; ödenen miktarı girin.",
sameAccount: "Kaynak hesap birikim hesabıyla aynı olamaz.",
},
validation: {
quantity: "Geçerli bir miktar girin (en fazla 3 ondalık)",
price: "Alış veya satış fiyatı girin",
amount: "Tutar girin",
account: "Hesap seçin",
},
},
prices: {
title: "Fiyat tablosu",
description:
"Altın ve döviz fiyatları (elle). Varlıklar ve aynî alacaklar alış, aynî borçlar satış fiyatıyla değerlenir.",
add: "Fiyat gir",
asset: "Varlık",
date: "Tarih",
buy: "Alış (TL)",
sell: "Satış (TL)",
sellHint: "Boş bırakılırsa alış fiyatı kullanılır (tek fiyat).",
noPrice: "Fiyat yok",
history: "Son fiyatlar",
perUnit: (unit: string) => `/ ${unit}`,
saved: "Fiyat kaydedildi.",
},
card: {
title: "Kart özeti",
debt: "Toplam borç",