import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/components/ui/card"; import type { CounterpartBalance } from "@/lib/appwrite/payment-queries"; import { RecordPaymentDialog } from "./record-payment-dialog"; function formatMoney(amount: number, currency: string): string { try { return new Intl.NumberFormat("tr-TR", { style: "currency", currency }).format(amount); } catch { return `${amount.toFixed(2)} ${currency}`; } } const dateFormatter = new Intl.DateTimeFormat("tr-TR", { day: "2-digit", month: "2-digit", year: "numeric", }); export function BalancesCard({ balances, counterpartNames, selfKind, defaultCurrency, }: { balances: CounterpartBalance[]; counterpartNames: Record; selfKind: "lab" | "clinic"; defaultCurrency: string; }) { const isLab = selfKind === "lab"; return ( {isLab ? "Klinik Bakiyeleri" : "Laboratuvar Bakiyeleri"} {isLab ? "Her klinik için açık bakiye ve son tahsilatlar. Toplu ödemeleri buradan girebilirsiniz." : "Çalıştığınız her laboratuvar için açık bakiye ve son ödemeleriniz."} {balances.length === 0 ? (

Bağlantılarınız için henüz finansal hareket yok.

) : (
    {balances.map((b) => { const name = counterpartNames[b.counterpartTenantId] ?? "—"; const settled = b.open <= 0.01; return (
  • {name}

    Fatura: {formatMoney(b.invoiced, b.currency)} · Ödenen:{" "} {formatMoney(b.paid, b.currency)} {b.lastPaymentAt && ( <> {" "}· Son ödeme:{" "} {dateFormatter.format(new Date(b.lastPaymentAt))} )}

    {formatMoney(b.open, b.currency)}

    {settled ? "Kapalı" : isLab ? "Açık alacak" : "Açık borç"}

    0 ? b.open : undefined} />
  • ); })}
)}
); }