diff --git a/app/(protected)/capa-owner/page.tsx b/app/(protected)/capa-owner/page.tsx index aa113b9..86ae460 100644 --- a/app/(protected)/capa-owner/page.tsx +++ b/app/(protected)/capa-owner/page.tsx @@ -52,8 +52,14 @@ export default async function CapaOwnerPage() { .orderBy(asc(capaActions.dueDate)) ) - const openCount = rows.filter(c => ['open', 'in_progress', 'reopened'].includes(c.status)).length - const overdueCount = rows.filter(c => c.status === 'overdue').length + const today = new Date().toISOString().slice(0, 10) + function isCapaOverdue(c: { status: string; dueDate: string | null }): boolean { + if (c.status === 'overdue') return true + return (c.status === 'open' || c.status === 'in_progress') && !!c.dueDate && c.dueDate < today + } + + const openCount = rows.filter(c => ['open', 'in_progress', 'reopened'].includes(c.status) && !isCapaOverdue(c)).length + const overdueCount = rows.filter(c => isCapaOverdue(c)).length const doneCount = rows.filter(c => ['verified', 'closed'].includes(c.status)).length const PRIORITY_COLORS: Record = { @@ -82,7 +88,7 @@ export default async function CapaOwnerPage() { ) : (
{activeRows.map(capa => { - const isOverdue = capa.status === 'overdue' + const isOverdue = isCapaOverdue(capa) return (
diff --git a/components/capa/capa-owner-actions.tsx b/components/capa/capa-owner-actions.tsx index d63eb05..0f2f334 100644 --- a/components/capa/capa-owner-actions.tsx +++ b/components/capa/capa-owner-actions.tsx @@ -31,7 +31,7 @@ export function CapaOwnerActions({ capaId, currentStatus }: Props) { } } - if (currentStatus === 'open' || currentStatus === 'reopened') { + if (currentStatus === 'open' || currentStatus === 'reopened' || currentStatus === 'overdue') { return (