From b0e45c0ea078f5d7f136cd213362dffa36754c10 Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sat, 30 May 2026 15:00:21 +0200 Subject: [PATCH] =?UTF-8?q?Fix:=20"Z=C3=A4hler=20ohne=20Vertr=C3=A4ge=20an?= =?UTF-8?q?zeigen"=20filtert=20auf=20orphans,=20nicht=20additiv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Checkbox war falsch implementiert (additiv: zeigt auch Orphans). Soll laut User filternd wirken: gecheckt = nur Zähler ohne Vertrag. Logik: - beide aus: alle aktiven Zähler (Default) - nur "Inaktive": alle Zähler (aktiv + inaktiv) - nur "ohne Verträge": aktive Zähler OHNE Vertrag - beide an: alle Zähler ohne Vertrag (aktiv + inaktiv) Co-Authored-By: Claude Opus 4.7 (1M context) --- frontend/src/pages/customers/CustomerDetail.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/customers/CustomerDetail.tsx b/frontend/src/pages/customers/CustomerDetail.tsx index 6059c9c3..384c34f4 100644 --- a/frontend/src/pages/customers/CustomerDetail.tsx +++ b/frontend/src/pages/customers/CustomerDetail.tsx @@ -1304,9 +1304,15 @@ function MetersTab({ (m.energyDetails?.some((ed) => ed.contract) ?? false) || (m.contractMeters?.some((cm) => cm.energyContractDetails?.contract) ?? false); + // Aktiv-Filter (Default: nur aktive) und "Nur Zähler ohne Verträge"-Filter + // wirken unabhängig: erst Aktiv, dann optional auf orphans einschränken. + // - beide aus: alle aktiven Zähler + // - nur "Inaktive": alle Zähler (aktiv + inaktiv) + // - nur "ohne Verträge": aktive Zähler OHNE Vertrag + // - beide an: alle Zähler ohne Vertrag (aktiv + inaktiv) const filtered = meters .filter((m) => showInactive ? true : m.isActive) - .filter((m) => showWithoutContracts ? true : hasAnyContract(m)); + .filter((m) => showWithoutContracts ? !hasAnyContract(m) : true); // Sort readings by date (newest first) const getSortedReadings = (readings: any[] | undefined) => {