diff --git a/frontend/src/pages/Buchhaltung.tsx b/frontend/src/pages/Buchhaltung.tsx index fda6c80..c48e82d 100644 --- a/frontend/src/pages/Buchhaltung.tsx +++ b/frontend/src/pages/Buchhaltung.tsx @@ -597,6 +597,7 @@ function UebersichtTab({ haushaltsjahre, selectedJahrId, onJahrChange }: { queryKey: ['kontenTree', selectedJahrId], queryFn: () => buchhaltungApi.getKontenTree(selectedJahrId!), enabled: selectedJahrId != null, + staleTime: 0, }); const { data: kategorien = [] } = useQuery({ queryKey: ['buchhaltung-kategorien', selectedJahrId], diff --git a/sync/src/scraper.ts b/sync/src/scraper.ts index 07e5b3f..1278e51 100644 --- a/sync/src/scraper.ts +++ b/sync/src/scraper.ts @@ -59,9 +59,10 @@ function parseDate(raw: string | null | undefined): string | null { if (!raw) return null; const trimmed = raw.trim(); if (!trimmed) return null; - const match = trimmed.match(/^(\d{2})\.(\d{2})\.(\d{4})$/); + // Accept 1–2 digit day/month with optional trailing time (e.g. "10.9.2011 00:00:00") + const match = trimmed.match(/^(\d{1,2})\.(\d{1,2})\.(\d{4})/); if (!match) return null; - return `${match[3]}-${match[2]}-${match[1]}`; + return `${match[3]}-${match[2].padStart(2, '0')}-${match[1].padStart(2, '0')}`; } /** @@ -736,8 +737,9 @@ async function scrapeDetailProfileFields(frame: Frame): Promise<{ } /** - * Scrape Ausbildungen by navigating to the AusbildungenListEdit.aspx page. - * This is a ListEdit page (like Fahrgenehmigungen) with /