From f01fe47af49ea1dea9857ba9ac1ae9459ee9a9fb Mon Sep 17 00:00:00 2001 From: AI Assistant Date: Tue, 10 Mar 2026 19:26:05 +0200 Subject: [PATCH] feat(registratura): remove publicitate category, auto-track comunicare, late receipt badge, AC validity conditional - Remove publicitate/comunicare category entirely (AC publicity handled by AC validity tracker) - comunicare-aviz-beneficiar moved to auto-track: created alongside any iesit deadline - Late receipt badge on incoming aviz entries: shows "Primit cu X zile intarziere" when document date < today - Valabilitate document + AC Validity Tracker visible only when documentType is "aviz" (act administrativ) Co-Authored-By: Claude Opus 4.6 --- .../components/registry-entry-form.tsx | 48 ++++++++++++++-- .../registratura/services/deadline-catalog.ts | 55 +++++++------------ src/modules/registratura/types.ts | 1 - 3 files changed, 63 insertions(+), 41 deletions(-) diff --git a/src/modules/registratura/components/registry-entry-form.tsx b/src/modules/registratura/components/registry-entry-form.tsx index 62fd4be..cc0b81c 100644 --- a/src/modules/registratura/components/registry-entry-form.tsx +++ b/src/modules/registratura/components/registry-entry-form.tsx @@ -282,6 +282,16 @@ export function RegistryEntryForm({ } } + // Auto-create comunicare catre beneficiar for all iesit deadlines + // (legal obligation: institution must communicate on the day of issuance) + if (direction === "iesit") { + const comunicare = createTrackedDeadline( + "comunicare-aviz-beneficiar", + startDate, + ); + if (comunicare) newDeadlines.push(comunicare); + } + setTrackedDeadlines((prev) => [...prev, ...newDeadlines]); } }; @@ -787,6 +797,32 @@ export function RegistryEntryForm({ nr. secvențial.

)} + {/* Late receipt indicator for incoming admin acts */} + {direction === "intrat" && + documentType === "aviz" && + date && + (() => { + const docDate = new Date(date); + const today = new Date(); + docDate.setHours(0, 0, 0, 0); + today.setHours(0, 0, 0, 0); + const diffDays = Math.floor( + (today.getTime() - docDate.getTime()) / (1000 * 60 * 60 * 24), + ); + if (diffDays > 0) { + return ( +

+ + Actul are data emiterii cu {diffDays}{" "} + {diffDays === 1 ? "zi" : "zile"} in urma — primit cu + intarziere fata de obligatia de comunicare in ziua + emiterii (L350 art. 44). + +

+ ); + } + return null; + })()} @@ -1138,11 +1174,13 @@ export function RegistryEntryForm({ - {/* Document Expiry — CU/AC validity tracking */} + {/* Document Expiry — CU/AC validity tracking (only for act administrativ) */} + {documentType === "aviz" && ( + <>