From 1361534c98e9dc54a5ecc7c360a9c948b366a574 Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Thu, 12 Mar 2026 17:26:20 +0200 Subject: [PATCH] fix: closed entries no longer show in deadline dashboard - groupDeadlinesByEntry skips entries with status "inchis" - closeEntry auto-resolves all pending deadlines on close (main + linked) - Fixes S-2026-00001 showing as overdue despite being closed Co-Authored-By: Claude Opus 4.6 --- .../registratura/hooks/use-registry.ts | 24 +++++++++++++++---- .../registratura/services/deadline-service.ts | 3 +++ 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/modules/registratura/hooks/use-registry.ts b/src/modules/registratura/hooks/use-registry.ts index 8196222..6097f1e 100644 --- a/src/modules/registratura/hooks/use-registry.ts +++ b/src/modules/registratura/hooks/use-registry.ts @@ -130,9 +130,19 @@ export function useRegistry() { const entry = entries.find((e) => e.id === id); if (!entry) return; const now = new Date().toISOString(); + + // Auto-resolve all pending deadlines when closing an entry + const resolvedDeadlines = (entry.trackedDeadlines ?? []).map((dl) => { + if (dl.resolution === "pending") { + return resolveDeadlineFn(dl, "completed", "Rezolvat automat la închiderea înregistrării"); + } + return dl; + }); + const closedMain: RegistryEntry = { ...entry, status: "inchis", + trackedDeadlines: resolvedDeadlines, updatedAt: now, }; await saveEntry(storage, blobStorage, closedMain); @@ -141,13 +151,19 @@ export function useRegistry() { const saves = linked .map((linkedId) => entries.find((e) => e.id === linkedId)) .filter((e): e is RegistryEntry => !!e && e.status !== "inchis") - .map((e) => - saveEntry(storage, blobStorage, { + .map((e) => { + const resolvedDls = (e.trackedDeadlines ?? []).map((dl) => + dl.resolution === "pending" + ? resolveDeadlineFn(dl, "completed", "Rezolvat automat la închiderea înregistrării") + : dl, + ); + return saveEntry(storage, blobStorage, { ...e, status: "inchis", + trackedDeadlines: resolvedDls, updatedAt: now, - }), - ); + }); + }); await Promise.all(saves); } await refresh(); diff --git a/src/modules/registratura/services/deadline-service.ts b/src/modules/registratura/services/deadline-service.ts index c7f21df..89b0d44 100644 --- a/src/modules/registratura/services/deadline-service.ts +++ b/src/modules/registratura/services/deadline-service.ts @@ -246,6 +246,9 @@ export function groupDeadlinesByEntry( const groups: DeadlineEntryGroup[] = []; for (const entry of entries) { + // Skip closed entries — their deadlines are no longer actionable + if (entry.status === "inchis") continue; + const deadlines = entry.trackedDeadlines ?? []; if (deadlines.length === 0) continue;