import React from 'react'; import { ProjectState, ProjectDocument, UserRole } from '../types'; import { AlertTriangle, Clock, Lock } from 'lucide-react'; import DocumentManager from './DocumentManager'; interface LiabilityTrackerProps { data: ProjectState; onAddDocument: (doc: ProjectDocument) => void; userRole: UserRole; } const LiabilityTracker: React.FC = ({ data, onAddDocument, userRole }) => { const retentionTotal = data.liabilities.filter(l => l.type === 'RETENTION').reduce((s, l) => s + l.amount, 0); const poTotal = data.liabilities.filter(l => l.type === 'PENDING_PO').reduce((s, l) => s + l.amount, 0); const unbilledTotal = data.liabilities.filter(l => l.type === 'UNBILLED_WORK').reduce((s, l) => s + l.amount, 0); const canEdit = userRole === 'DIRECTOR' || userRole === 'ACCOUNTANT'; return (

Liability Tracker

Monitor Future Obligations & Risks

Retention Money

৳{retentionTotal.toLocaleString()}

Held by client, due after defect liability period.

Pending POs

৳{poTotal.toLocaleString()}

Committed costs for materials ordered but not billed.

Unbilled Liabilities

৳{unbilledTotal.toLocaleString()}

Work done by subcontractors, not yet invoiced.

Detailed Liability Ledger

{data.liabilities.map(liability => ( ))}
ID Description Type Due Date Amount
{liability.id} {liability.description} {liability.type.replace('_', ' ')} {liability.dueDate} ৳{liability.amount.toLocaleString()}
); }; export default LiabilityTracker;