feat(ui): cari hesaplar sayfaları, hareket formu ve vade uyarısı

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-11-05 11:58:37 +03:00
parent 5d370a062e
commit b6c6be5c97
11 changed files with 975 additions and 12 deletions
+77
View File
@@ -298,6 +298,7 @@ export const tr = {
total: (n: number) => `${n} işlem`,
sums: { income: "Gelir", expense: "Gider", net: "Net" },
hiddenAccount: "Gizli hesap",
hiddenContact: "Gizli cari",
},
filters: {
title: "Filtreler",
@@ -361,6 +362,7 @@ export const tr = {
"Mutabakat düzeltmesi düzenlenemez; gerekirse silip mutabakatı yeniden yapın.",
reconciled: "Mutabakatı yapıldı",
cancelInstallments: "Kalan taksitleri iptal et",
contactEditHint: "Cari hareketi cari sayfasından düzenlenir.",
readOnly: "İzleyici rolündesiniz; işlem ekleyemezsiniz.",
noAccounts: "İşlem girmek için önce bir hesap gerekli.",
noAccountsLink: "Hesaplara git",
@@ -473,6 +475,80 @@ export const tr = {
upload: "Dosya yüklenemedi.",
},
},
contacts: {
title: "Cari hesaplar",
description:
"Kişilerle borç-alacak takibi. Cari hareketleri transferdir; gelir/gider raporlarına girmez.",
contact: "Cari",
openContact: "Cariyi aç",
new: "Yeni cari",
createTitle: "Yeni cari",
editTitle: "Cariyi düzenle",
relations: {
family: "Aile / akraba",
friend: "Arkadaş",
neighbor: "Komşu",
work: "İş",
other: "Diğer",
},
kinds: { lend: "Borç verdim", repay: "Borç ödedim", borrow: "Borç aldım", collect: "Tahsilat" },
kindHints: {
lend: "Hesabınızdan kişiye para verdiniz; size borçlanır.",
repay: "Kişiye olan borcunuzu hesabınızdan ödediniz.",
borrow: "Kişiden hesabınıza para aldınız; ona borçlanırsınız.",
collect: "Kişinin size olan borcunu hesabınıza tahsil ettiniz.",
},
fields: {
name: "Ad soyad",
relation: "Yakınlık",
phone: "Telefon",
note: "Not",
openingBalance: "Açılış bakiyesi (TL)",
openingHint:
"Uygulamadan önceki durum: size borçluysa pozitif, siz borçluysanız başına - koyarak girin.",
isPrivate: "Yalnızca ben (bu cariyi ve hareketlerini yalnızca ben görürüm)",
dueDate: "Vade tarihi",
dueHint: "Kalan bakiyenin ödenmesi beklenen tarih (isteğe bağlı).",
reminderDays: "Kaç gün önce uyarılsın",
account: "Hesap",
fromAccount: "Ödemenin çıktığı hesap",
toAccount: "Paranın girdiği hesap",
},
balance: { owesMe: "Bana borçlu", iOwe: "Ben borçluyum", settled: "Hesap kapalı" },
summary: { owesMe: "Bana borçlu", iOwe: "Ben borçluyum", net: "Net" },
newEntry: "Hareket ekle",
entryTitle: "Cari hareketi",
editEntryTitle: "Cari hareketini düzenle",
due: {
overdue: (d: string) => `Vade geçti · ${d}`,
upcoming: (d: string) => `Vade yaklaşıyor · ${d}`,
on: (d: string) => `Vade · ${d}`,
},
dueBanner: (n: number) => `${n} carinin vadesi geçti veya yaklaşıyor.`,
dueLink: "Carilere git",
statement: "Cari ekstresi",
opening: "Açılış bakiyesi",
runningBalance: "Bakiye",
lastActivity: (d: string) => `Son hareket ${d}`,
empty: "Henüz cari yok. Borç verdiğiniz veya aldığınız kişileri ekleyin.",
emptyEntries: "Henüz hareket yok.",
archive: "Arşivle",
unarchive: "Arşivden çıkar",
archivedSection: (n: number) => `Arşivlenmiş cariler (${n})`,
privateBadge: "Yalnızca ben",
readOnly: "İzleyici rolündesiniz; cari hareketi ekleyemezsiniz.",
toast: {
created: "Cari oluşturuldu.",
updated: "Cari güncellendi.",
entrySaved: "Cari hareketi kaydedildi.",
archived: "Cari arşivlendi.",
unarchived: "Cari arşivden çıkarıldı.",
},
errors: {
duplicate: "Bu adla bir cari zaten var.",
archived: "Arşivlenmiş cariye hareket eklenemez.",
},
},
card: {
title: "Kart özeti",
debt: "Toplam borç",
@@ -766,6 +842,7 @@ export const tr = {
validation: {
nameMin: "Ad en az 2 karakter olmalı",
nameMax: "Ad en fazla 80 karakter olabilir",
phone: "Geçerli bir telefon numarası girin",
usernameFormat: "Yalnızca küçük harf, rakam, nokta ve alt çizgi; 3–30 karakter",
email: "Geçerli bir e-posta adresi girin",
passwordMin: "Şifre en az 8 karakter olmalı",