diff --git a/frontend/src/components/EntityPage/EnhancedEntityEditShell.tsx b/frontend/src/components/EntityPage/EnhancedEntityEditShell.tsx new file mode 100644 index 0000000..3a89701 --- /dev/null +++ b/frontend/src/components/EntityPage/EnhancedEntityEditShell.tsx @@ -0,0 +1,96 @@ +import { mdiArrowLeft, mdiEyeOutline } from '@mdi/js'; +import React from 'react'; +import BaseButton from '../BaseButton'; +import BaseButtons from '../BaseButtons'; +import CardBox from '../CardBox'; +import { + emptyValue, + formatPrimitiveValue, + getPrimaryTitle, + getRecordSubtitle, + getSummaryEntries, + humanizeLabel, +} from '../EntityPageUtils'; + +type Props = { + entityLabel: string; + pluralLabel: string; + listHref: string; + viewHref?: string; + record: any; + children: React.ReactNode; +}; + +const EnhancedEntityEditShell = ({ entityLabel, pluralLabel, listHref, viewHref, record, children }: Props) => { + const title = getPrimaryTitle(record, `Edit ${entityLabel}`); + const subtitle = getRecordSubtitle(record, `${entityLabel} record`); + const summaryEntries = getSummaryEntries(record, 7); + + return ( +
Edit workspace
+{subtitle}. Update the fields below and keep the record details clear, complete, and ready for downstream users.
+Key values stay visible while the form is being updated.
+{humanizeLabel(key)}
+{label}
+{label}
+{value}
+{note}
+{singularLabel} workspace
+{recordSubtitle}
+Key information is grouped here for faster review and cleaner scanning.
+Additional record content is still available, but presented in a cleaner structured layout.
+Related records are presented as compact cards instead of a raw data dump.
+{item.title}
+No additional preview fields are available for this related record.
+ )} +Direct linked records are summarized here so users can see context without parsing nested JSON-like sections.
+{humanizeLabel(key)}
+BudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{allocations?.budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Province
- - - - - - - - - - -{allocations?.province?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Department
- - - - - - - - - - - - -{allocations?.department?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AllocationAmount
-{allocations?.amount || 'No data'}
-Currency
-{allocations?.currency ?? 'No data'}
-No AllocatedAt
} -Status
-{allocations?.status ?? 'No data'}
-organizations
- - - - - - - - -{allocations?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Workflow
- - - - - - - - - - - - - - - - -{approval_steps?.workflow?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -StepOrder
-{approval_steps?.step_order || 'No data'}
-StepName
-{approval_steps?.name}
-ApproverRole
- - - - -{approval_steps?.approver_role?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ApproverDepartment
- - - - - - - - - - - - -{approval_steps?.approver_department?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MinimumAmount
-{approval_steps?.min_amount || 'No data'}
-MaximumAmount
-{approval_steps?.max_amount || 'No data'}
-organizations
- - - - - - - - -{approval_steps?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Approvals CurrentStep
-| RecordType | - - - -RecordKey | - - - -Status | - - - - - - - -RequestedAt | - - - -DecidedAt | - - - -DecisionComment | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|
| - { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.decided_at) } - | - - - -- { item.decision_comment } - | - - - -- { item.rejection_reason } - | - - -
Organization
- - - - - - - - -{approval_workflows?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -WorkflowName
-{approval_workflows?.name}
-Module
-{approval_workflows?.module ?? 'No data'}
-RecordType
-{approval_workflows?.record_type ?? 'No data'}
-Status
-{approval_workflows?.status ?? 'No data'}
-Approval_steps Workflow
-| StepOrder | - - - -StepName | - - - - - - - -MinimumAmount | - - - -MaximumAmount | - - - -RequiresComment | - - -
|---|---|---|---|---|
| - { item.step_order } - | - - - -- { item.name } - | - - - - - - - -- { item.min_amount } - | - - - -- { item.max_amount } - | - - - -- { dataFormatter.booleanFormatter(item.requires_comment) } - | - - -
Approvals Workflow
-| RecordType | - - - -RecordKey | - - - -Status | - - - - - - - -RequestedAt | - - - -DecidedAt | - - - -DecisionComment | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|
| - { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.decided_at) } - | - - - -- { item.decision_comment } - | - - - -- { item.rejection_reason } - | - - -
Organization
- - - - - - - - -{approvals?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Workflow
- - - - - - - - - - - - - - - - -{approvals?.workflow?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -CurrentStep
- - - - - - - - - - - - - - - - - - -{approvals?.step?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RecordType
-{approvals?.record_type}
-RecordKey
-{approvals?.record_key}
-Status
-{approvals?.status ?? 'No data'}
-RequestedBy
- - -{approvals?.requested_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AssignedTo
- - -{approvals?.assigned_to_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No RequestedAt
} -No DecidedAt
} -Organization
- - - - - - - - -{audit_logs?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ActorUser
- - -{audit_logs?.actor_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Action
-{audit_logs?.action}
-EntityName
-{audit_logs?.entity_name}
-RecordKey
-{audit_logs?.record_key}
-No OccurredAt
} -IPAddress
-{audit_logs?.ip_address}
-Organization
- - - - - - - - -{awards?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tender
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{awards?.tender?.tender_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -WinningBid
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{awards?.winning_bid?.bid_reference ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AwardNumber
-{awards?.award_number}
-AwardAmount
-{awards?.award_amount || 'No data'}
-Currency
-{awards?.currency ?? 'No data'}
-No DecisionDate
} -Status
-{awards?.status ?? 'No data'}
-AwardMemo
- {awards.award_memo - ? - :No data
- } -Contracts Award
-| ContractNumber | - - - -ContractTitle | - - - -ContractType | - - - -ContractValue | - - - -Currency | - - - -StartDate | - - - -EndDate | - - - -Status | - - - -RetentionPercent | - - - -PenaltyRatePercent | - - - -SignedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|
| - { item.contract_number } - | - - - -- { item.title } - | - - - -- { item.contract_type } - | - - - -- { item.contract_value } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.status } - | - - - -- { item.retention_percent } - | - - - -- { item.penalty_rate_percent } - | - - - -- { dataFormatter.dateTimeFormatter(item.signed_at) } - | - - -
Grant
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{beneficiaries?.grant?.call_reference ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -Province
- - - - - - - - - - -{beneficiaries?.province?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BeneficiaryName
-{beneficiaries?.name}
-BeneficiaryType
-{beneficiaries?.beneficiary_type ?? 'No data'}
-RegistrationNumber
-{beneficiaries?.registration_number}
-ContactEmail
-{beneficiaries?.contact_email}
-ContactPhone
-{beneficiaries?.contact_phone}
-ApprovedAmount
-{beneficiaries?.approved_amount || 'No data'}
-Currency
-{beneficiaries?.currency ?? 'No data'}
-Status
-{beneficiaries?.status ?? 'No data'}
-No ApprovedAt
} -organizations
- - - - - - - - -{beneficiaries?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Grant_applications Beneficiary
-| ApplicationReference | - - - -SubmittedAt | - - - -RequestedAmount | - - - -Currency | - - - - - -Status | - - -
|---|---|---|---|---|
| - { item.application_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.requested_amount } - | - - - -- { item.currency } - | - - - - - -- { item.status } - | - - -
Bid
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{bid_evaluations?.bid?.bid_reference ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LeadEvaluator
- - -{bid_evaluations?.lead_evaluator_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -TechnicalScore
-{bid_evaluations?.technical_score || 'No data'}
-FinancialScore
-{bid_evaluations?.financial_score || 'No data'}
-TotalScore
-{bid_evaluations?.total_score || 'No data'}
-Recommendation
-{bid_evaluations?.recommendation ?? 'No data'}
-No EvaluatedAt
} -organizations
- - - - - - - - -{bid_evaluations?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Tender
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{bids?.tender?.tender_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vendor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{bids?.vendor?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BidReference
-{bids?.bid_reference}
-No SubmittedAt
} -BidAmount
-{bids?.bid_amount || 'No data'}
-Currency
-{bids?.currency ?? 'No data'}
-Status
-{bids?.status ?? 'No data'}
-organizations
- - - - - - - - -{bids?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bid_evaluations Bid
-| TechnicalScore | - - - -FinancialScore | - - - -TotalScore | - - - -Recommendation | - - - -Justification | - - - -EvaluatedAt | - - -
|---|---|---|---|---|---|
| - { item.technical_score } - | - - - -- { item.financial_score } - | - - - -- { item.total_score } - | - - - -- { item.recommendation } - | - - - -- { item.justification } - | - - - -- { dataFormatter.dateTimeFormatter(item.evaluated_at) } - | - - -
Awards WinningBid
-| AwardNumber | - - - -AwardAmount | - - - -Currency | - - - -DecisionDate | - - - -Status | - - - - -
|---|---|---|---|---|
| - { item.award_number } - | - - - -- { item.award_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.decision_date) } - | - - - -- { item.status } - | - - - - -
BudgetProgram
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{budget_lines?.budget_program?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BudgetLineName
-{budget_lines?.name}
-BudgetLineCode
-{budget_lines?.code}
-Category
-{budget_lines?.category ?? 'No data'}
-ApprovedAmount
-{budget_lines?.approved_amount || 'No data'}
-CommittedAmount
-{budget_lines?.committed_amount || 'No data'}
-DisbursedAmount
-{budget_lines?.disbursed_amount || 'No data'}
-Currency
-{budget_lines?.currency ?? 'No data'}
-Status
-{budget_lines?.status ?? 'No data'}
-organizations
- - - - - - - - -{budget_lines?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Allocations BudgetLine
-| AllocationAmount | - - - -Currency | - - - -AllocatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.allocated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Budget_reallocations FromBudgetLine
-| Amount | - - - -Currency | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Budget_reallocations ToBudgetLine
-| Amount | - - - -Currency | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Requisitions BudgetLine
-| RequisitionNumber | - - - -Title | - - - - - -ProcurementMethod | - - - -EstimatedAmount | - - - -Currency | - - - -NeededByDate | - - - -Status | - - - - - -SubmittedAt | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.requisition_number } - | - - - -- { item.title } - | - - - - - -- { item.procurement_method } - | - - - -- { item.estimated_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.needed_by_date) } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.rejection_reason } - | - - -
Projects BudgetLine
-| ProjectName | - - - -ProjectCode | - - - -ImplementingEntity | - - - - - -StartDate | - - - -EndDate | - - - -PlannedBudget | - - - -Currency | - - - -CompletionPercent | - - - -Status | - - - -RiskLevel | - - - -ReportingCycle | - - - -LastReportedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.project_code } - | - - - -- { item.implementing_entity } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.planned_budget } - | - - - -- { item.currency } - | - - - -- { item.completion_percent } - | - - - -- { item.status } - | - - - -- { item.risk_level } - | - - - -- { item.reporting_cycle } - | - - - -- { dataFormatter.dateTimeFormatter(item.last_reported_at) } - | - - -
Contracts BudgetLine
-| ContractNumber | - - - -ContractTitle | - - - -ContractType | - - - -ContractValue | - - - -Currency | - - - -StartDate | - - - -EndDate | - - - -Status | - - - -RetentionPercent | - - - -PenaltyRatePercent | - - - -SignedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|
| - { item.contract_number } - | - - - -- { item.title } - | - - - -- { item.contract_type } - | - - - -- { item.contract_value } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.status } - | - - - -- { item.retention_percent } - | - - - -- { item.penalty_rate_percent } - | - - - -- { dataFormatter.dateTimeFormatter(item.signed_at) } - | - - -
Obligations BudgetLine
-| ObligationNumber | - - - -Amount | - - - -Currency | - - - -ObligatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.obligation_number } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.obligated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Organization
- - - - - - - - -{budget_programs?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FiscalYear
- - - - - - - - - - - - - - - - - - - - - - - - - - -{budget_programs?.fiscal_year?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FundingSource
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -{budget_programs?.funding_source?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ProgramName
-{budget_programs?.name}
-ProgramCode
-{budget_programs?.code}
-Status
-{budget_programs?.status ?? 'No data'}
-ApprovedAmount
-{budget_programs?.approved_amount || 'No data'}
-Currency
-{budget_programs?.currency ?? 'No data'}
-Budget_lines BudgetProgram
-| BudgetLineName | - - - -BudgetLineCode | - - - -Description | - - - -Category | - - - -ApprovedAmount | - - - -CommittedAmount | - - - -DisbursedAmount | - - - -Currency | - - - -Status | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.description } - | - - - -- { item.category } - | - - - -- { item.approved_amount } - | - - - -- { item.committed_amount } - | - - - -- { item.disbursed_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - -
Organization
- - - - - - - - -{budget_reallocations?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FiscalYear
- - - - - - - - - - - - - - - - - - - - - - - - - - -{budget_reallocations?.fiscal_year?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FromBudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{budget_reallocations?.from_budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ToBudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{budget_reallocations?.to_budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Amount
-{budget_reallocations?.amount || 'No data'}
-Currency
-{budget_reallocations?.currency ?? 'No data'}
-Status
-{budget_reallocations?.status ?? 'No data'}
-RequestedBy
- - -{budget_reallocations?.requested_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No RequestedAt
} -Organization
- - - - - - - - -{compliance_alerts?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AlertType
-{compliance_alerts?.alert_type ?? 'No data'}
-Severity
-{compliance_alerts?.severity ?? 'No data'}
-Title
-{compliance_alerts?.title}
-Details
- {compliance_alerts.details - ? - :No data
- } -RecordType
-{compliance_alerts?.record_type}
-RecordKey
-{compliance_alerts?.record_key}
-Status
-{compliance_alerts?.status ?? 'No data'}
-AssignedTo
- - -{compliance_alerts?.assigned_to_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No DetectedAt
} -No DueAt
} -Contract
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{contract_amendments?.contract?.contract_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -AmendmentNumber
-{contract_amendments?.amendment_number}
-AmendmentType
-{contract_amendments?.amendment_type ?? 'No data'}
-ValueChangeAmount
-{contract_amendments?.value_change_amount || 'No data'}
-DaysExtension
-{contract_amendments?.days_extension || 'No data'}
-Description
- {contract_amendments.description - ? - :No data
- } -Status
-{contract_amendments?.status ?? 'No data'}
-No EffectiveDate
} -organizations
- - - - - - - - -{contract_amendments?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Contract
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{contract_milestones?.contract?.contract_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MilestoneName
-{contract_milestones?.name}
-DeliverableDescription
- {contract_milestones.deliverable_description - ? - :No data
- } -No DueDate
} -No AcceptedAt
} -Status
-{contract_milestones?.status ?? 'No data'}
-PaymentPercent
-{contract_milestones?.payment_percent || 'No data'}
-organizations
- - - - - - - - -{contract_milestones?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Organization
- - - - - - - - -{contracts?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vendor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{contracts?.vendor?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Award
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{contracts?.award?.award_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{contracts?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{contracts?.budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ContractNumber
-{contracts?.contract_number}
-ContractTitle
-{contracts?.title}
-ContractType
-{contracts?.contract_type ?? 'No data'}
-ContractValue
-{contracts?.contract_value || 'No data'}
-Currency
-{contracts?.currency ?? 'No data'}
-No StartDate
} -No EndDate
} -Status
-{contracts?.status ?? 'No data'}
-RetentionPercent
-{contracts?.retention_percent || 'No data'}
-PenaltyRatePercent
-{contracts?.penalty_rate_percent || 'No data'}
-No SignedAt
} -Contract_amendments Contract
-| AmendmentNumber | - - - -AmendmentType | - - - -ValueChangeAmount | - - - -DaysExtension | - - - - - -Status | - - - -EffectiveDate | - - -
|---|---|---|---|---|---|
| - { item.amendment_number } - | - - - -- { item.amendment_type } - | - - - -- { item.value_change_amount } - | - - - -- { item.days_extension } - | - - - - - -- { item.status } - | - - - -- { dataFormatter.dateTimeFormatter(item.effective_date) } - | - - -
Contract_milestones Contract
-| MilestoneName | - - - - - -DueDate | - - - -AcceptedAt | - - - -Status | - - - -PaymentPercent | - - -
|---|---|---|---|---|
| - { item.name } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.accepted_at) } - | - - - -- { item.status } - | - - - -- { item.payment_percent } - | - - -
Invoices Contract
-| InvoiceNumber | - - - -InvoiceDate | - - - -ReceivedAt | - - - -DueDate | - - - -SubtotalAmount | - - - -TaxAmount | - - - -TotalAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|---|---|
| - { item.invoice_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.invoice_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.received_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { item.subtotal_amount } - | - - - -- { item.tax_amount } - | - - - -- { item.total_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Obligations Contract
-| ObligationNumber | - - - -Amount | - - - -Currency | - - - -ObligatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.obligation_number } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.obligated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Organization
- - - - - - - - -{departments?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DepartmentName
-{departments?.name}
-DepartmentCode
-{departments?.code}
-ParentDepartment
- - - - - - - - - - - - -{departments?.parent_department?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Status
-{departments?.status ?? 'No data'}
-Approval_steps ApproverDepartment
-| StepOrder | - - - -StepName | - - - - - - - -MinimumAmount | - - - -MaximumAmount | - - - -RequiresComment | - - -
|---|---|---|---|---|
| - { item.step_order } - | - - - -- { item.name } - | - - - - - - - -- { item.min_amount } - | - - - -- { item.max_amount } - | - - - -- { dataFormatter.booleanFormatter(item.requires_comment) } - | - - -
Allocations Department
-| AllocationAmount | - - - -Currency | - - - -AllocatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.allocated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Procurement_plans Department
-| PlanName | - - - -Status | - - - -EstimatedTotalAmount | - - - -Currency | - - - -SubmittedAt | - - - -ApprovedAt | - - -
|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.status } - | - - - -- { item.estimated_total_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.approved_at) } - | - - -
Requisitions RequestingDepartment
-| RequisitionNumber | - - - -Title | - - - - - -ProcurementMethod | - - - -EstimatedAmount | - - - -Currency | - - - -NeededByDate | - - - -Status | - - - - - -SubmittedAt | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.requisition_number } - | - - - -- { item.title } - | - - - - - -- { item.procurement_method } - | - - - -- { item.estimated_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.needed_by_date) } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.rejection_reason } - | - - -
Organization
- - - - - - - - -{documents?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Category
-{documents?.category ?? 'No data'}
-Title
-{documents?.title}
-RecordType
-{documents?.record_type}
-RecordKey
-{documents?.record_key}
-File
- {documents?.file?.length - ? dataFormatter.filesFormatter(documents.file).map(link => ( - - )) :No File
- } -VersionNumber
-{documents?.version_number || 'No data'}
-AccessLevel
-{documents?.access_level ?? 'No data'}
-UploadedBy
- - -{documents?.uploaded_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No UploadedAt
} -Organization
- - - - - - - - -{expense_categories?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ExpenseCategory
-{expense_categories?.name}
-Code
-{expense_categories?.code}
-Status
-{expense_categories?.status ?? 'No data'}
-Invoices ExpenseCategory
-| InvoiceNumber | - - - -InvoiceDate | - - - -ReceivedAt | - - - -DueDate | - - - -SubtotalAmount | - - - -TaxAmount | - - - -TotalAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|---|---|
| - { item.invoice_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.invoice_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.received_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { item.subtotal_amount } - | - - - -- { item.tax_amount } - | - - - -- { item.total_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{field_verifications?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VerifiedBy
- - -{field_verifications?.verified_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No VisitDate
} -VerificationType
-{field_verifications?.verification_type ?? 'No data'}
-Outcome
-{field_verifications?.outcome ?? 'No data'}
-Findings
- {field_verifications.findings - ? - :No data
- } -No NextFollow-upAt
} -Photos
- {field_verifications?.photos?.length - ? ( -No Photos
- } -organizations
- - - - - - - - -{field_verifications?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Organization
- - - - - - - - -{fiscal_years?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FiscalYear
-{fiscal_years?.name}
-No StartDate
} -No EndDate
} -Status
-{fiscal_years?.status ?? 'No data'}
-Budget_programs FiscalYear
-| ProgramName | - - - -ProgramCode | - - - -Objective | - - - -Status | - - - -ApprovedAmount | - - - -Currency | - - -
|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.objective } - | - - - -- { item.status } - | - - - -- { item.approved_amount } - | - - - -- { item.currency } - | - - -
Budget_reallocations FiscalYear
-| Amount | - - - -Currency | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Procurement_plans FiscalYear
-| PlanName | - - - -Status | - - - -EstimatedTotalAmount | - - - -Currency | - - - -SubmittedAt | - - - -ApprovedAt | - - -
|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.status } - | - - - -- { item.estimated_total_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.approved_at) } - | - - -
Programs FiscalYear
-| ProgramName | - - - -ProgramCode | - - - - - -Status | - - - -BudgetAmount | - - - -Currency | - - -
|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - - - -- { item.status } - | - - - -- { item.budget_amount } - | - - - -- { item.currency } - | - - -
Ledger_entries FiscalYear
-| EntryReference | - - - -EntryDate | - - - -EntryType | - - - -Currency | - - - -DebitAmount | - - - -CreditAmount | - - - -Description | - - - -RecordType | - - - -RecordKey | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.entry_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.entry_date) } - | - - - -- { item.entry_type } - | - - - -- { item.currency } - | - - - -- { item.debit_amount } - | - - - -- { item.credit_amount } - | - - - -- { item.description } - | - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - -
Organization
- - - - - - - - -{funding_sources?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FundingSourceName
-{funding_sources?.name}
-SourceType
-{funding_sources?.source_type ?? 'No data'}
-ReferenceCode
-{funding_sources?.reference_code}
-Currency
-{funding_sources?.currency ?? 'No data'}
-TotalCommittedAmount
-{funding_sources?.total_committed_amount || 'No data'}
-No EffectiveDate
} -Status
-{funding_sources?.status ?? 'No data'}
-Budget_programs FundingSource
-| ProgramName | - - - -ProgramCode | - - - -Objective | - - - -Status | - - - -ApprovedAmount | - - - -Currency | - - -
|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.objective } - | - - - -- { item.status } - | - - - -- { item.approved_amount } - | - - - -- { item.currency } - | - - -
Programs FundingSource
-| ProgramName | - - - -ProgramCode | - - - - - -Status | - - - -BudgetAmount | - - - -Currency | - - -
|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - - - -- { item.status } - | - - - -- { item.budget_amount } - | - - - -- { item.currency } - | - - -
Grant
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{grant_applications?.grant?.call_reference ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -Beneficiary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{grant_applications?.beneficiary?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - -ApplicationReference
-{grant_applications?.application_reference}
-No SubmittedAt
} -RequestedAmount
-{grant_applications?.requested_amount || 'No data'}
-Currency
-{grant_applications?.currency ?? 'No data'}
-ProposalSummary
- {grant_applications.proposal_summary - ? - :No data
- } -Status
-{grant_applications?.status ?? 'No data'}
-organizations
- - - - - - - - -{grant_applications?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Grant_evaluations Application
-| Score | - - - -Comments | - - - -Recommendation | - - - -EvaluatedAt | - - -
|---|---|---|---|
| - { item.score } - | - - - -- { item.comments } - | - - - -- { item.recommendation } - | - - - -- { dataFormatter.dateTimeFormatter(item.evaluated_at) } - | - - -
Grant_tranches Application
-| TrancheNumber | - - - -Amount | - - - -Currency | - - - -PlannedDisbursementAt | - - - -DisbursedAt | - - - -Status | - - - -Conditions | - - -
|---|---|---|---|---|---|---|
| - { item.tranche_number } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.planned_disbursement_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.disbursed_at) } - | - - - -- { item.status } - | - - - -- { item.conditions } - | - - -
Application
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{grant_evaluations?.application?.application_reference ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - -Evaluator
- - -{grant_evaluations?.evaluator_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Score
-{grant_evaluations?.score || 'No data'}
-Recommendation
-{grant_evaluations?.recommendation ?? 'No data'}
-No EvaluatedAt
} -organizations
- - - - - - - - -{grant_evaluations?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Application
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{grant_tranches?.application?.application_reference ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - -TrancheNumber
-{grant_tranches?.tranche_number || 'No data'}
-Amount
-{grant_tranches?.amount || 'No data'}
-Currency
-{grant_tranches?.currency ?? 'No data'}
-No PlannedDisbursementAt
} -No DisbursedAt
} -Status
-{grant_tranches?.status ?? 'No data'}
-organizations
- - - - - - - - -{grant_tranches?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Organization
- - - - - - - - -{grants?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Program
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{grants?.program?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FundingWindowName
-{grants?.funding_window_name}
-CallReference
-{grants?.call_reference}
-No CallOpenAt
} -No CallCloseAt
} -Status
-{grants?.status ?? 'No data'}
-EligibilityRules
- {grants.eligibility_rules - ? - :No data
- } -TotalEnvelopeAmount
-{grants?.total_envelope_amount || 'No data'}
-Currency
-{grants?.currency ?? 'No data'}
-Beneficiaries Grant
-| BeneficiaryName | - - - -BeneficiaryType | - - - -RegistrationNumber | - - - -ContactEmail | - - - -ContactPhone | - - - -ApprovedAmount | - - - -Currency | - - - -Status | - - - -ApprovedAt | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.beneficiary_type } - | - - - -- { item.registration_number } - | - - - -- { item.contact_email } - | - - - -- { item.contact_phone } - | - - - -- { item.approved_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { dataFormatter.dateTimeFormatter(item.approved_at) } - | - - -
Grant_applications Grant
-| ApplicationReference | - - - -SubmittedAt | - - - -RequestedAmount | - - - -Currency | - - - - - -Status | - - -
|---|---|---|---|---|
| - { item.application_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.requested_amount } - | - - - -- { item.currency } - | - - - - - -- { item.status } - | - - -
Organization
- - - - - - - - -{invoices?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vendor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{invoices?.vendor?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Contract
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{invoices?.contract?.contract_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{invoices?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ExpenseCategory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{invoices?.expense_category?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - -InvoiceNumber
-{invoices?.invoice_number}
-No InvoiceDate
} -No ReceivedAt
} -No DueDate
} -SubtotalAmount
-{invoices?.subtotal_amount || 'No data'}
-TaxAmount
-{invoices?.tax_amount || 'No data'}
-TotalAmount
-{invoices?.total_amount || 'No data'}
-Currency
-{invoices?.currency ?? 'No data'}
-Status
-{invoices?.status ?? 'No data'}
-Payment_requests Invoice
-| RequestNumber | - - - -RequestedAmount | - - - -Currency | - - - -PaymentMethod | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|---|---|
| - { item.request_number } - | - - - -- { item.requested_amount } - | - - - -- { item.currency } - | - - - -- { item.payment_method } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{issues?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -IssueTitle
-{issues?.title}
-Description
- {issues.description - ? - :No data
- } -Severity
-{issues?.severity ?? 'No data'}
-Status
-{issues?.status ?? 'No data'}
-AssignedTo
- - -{issues?.assigned_to_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No OpenedAt
} -No DueAt
} -No ResolvedAt
} -organizations
- - - - - - - - -{issues?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Organization
- - - - - - - - -{ledger_entries?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FiscalYear
- - - - - - - - - - - - - - - - - - - - - - - - - - -{ledger_entries?.fiscal_year?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -EntryReference
-{ledger_entries?.entry_reference}
-No EntryDate
} -EntryType
-{ledger_entries?.entry_type ?? 'No data'}
-Currency
-{ledger_entries?.currency ?? 'No data'}
-DebitAmount
-{ledger_entries?.debit_amount || 'No data'}
-CreditAmount
-{ledger_entries?.credit_amount || 'No data'}
-RecordType
-{ledger_entries?.record_type}
-RecordKey
-{ledger_entries?.record_key}
-Organization
- - - - - - - - -{notifications?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -User
- - -{notifications?.user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Type
-{notifications?.type ?? 'No data'}
-Title
-{notifications?.title}
-RecordType
-{notifications?.record_type}
-RecordKey
-{notifications?.record_key}
-No SentAt
} -Organization
- - - - - - - - -{obligations?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{obligations?.budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Contract
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{obligations?.contract?.contract_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{obligations?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ObligationNumber
-{obligations?.obligation_number}
-Amount
-{obligations?.amount || 'No data'}
-Currency
-{obligations?.currency ?? 'No data'}
-No ObligatedAt
} -Status
-{obligations?.status ?? 'No data'}
-Name
-{organizations?.name}
-Users Organizations
-| First Name | - - - -Last Name | - - - -Phone Number | - - - -Disabled | - - - - - - - - - - -|
|---|---|---|---|---|
| - { item.firstName } - | - - - -- { item.lastName } - | - - - -- { item.phoneNumber } - | - - - -- { item.email } - | - - - -- { dataFormatter.booleanFormatter(item.disabled) } - | - - - - - - - - - - -
Provinces Organization
-| ProvinceName | - - - -ProvinceCode | - - - -Status | - - -
|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.status } - | - - -
Departments Organization
-| DepartmentName | - - - -DepartmentCode | - - - - - -Status | - - -
|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - - - -- { item.status } - | - - -
Role_permissions organizations
-Approval_workflows Organization
-| WorkflowName | - - - -Module | - - - -RecordType | - - - -Status | - - -
|---|---|---|---|
| - { item.name } - | - - - -- { item.module } - | - - - -- { item.record_type } - | - - - -- { item.status } - | - - -
Approval_steps organizations
-| StepOrder | - - - -StepName | - - - - - - - -MinimumAmount | - - - -MaximumAmount | - - - -RequiresComment | - - -
|---|---|---|---|---|
| - { item.step_order } - | - - - -- { item.name } - | - - - - - - - -- { item.min_amount } - | - - - -- { item.max_amount } - | - - - -- { dataFormatter.booleanFormatter(item.requires_comment) } - | - - -
Approvals Organization
-| RecordType | - - - -RecordKey | - - - -Status | - - - - - - - -RequestedAt | - - - -DecidedAt | - - - -DecisionComment | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|
| - { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.decided_at) } - | - - - -- { item.decision_comment } - | - - - -- { item.rejection_reason } - | - - -
Notifications Organization
-| Type | - - - -Title | - - - -Message | - - - -RecordType | - - - -RecordKey | - - - -Read | - - - -SentAt | - - -
|---|---|---|---|---|---|---|
| - { item.type } - | - - - -- { item.title } - | - - - -- { item.message } - | - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - - -- { dataFormatter.booleanFormatter(item.read) } - | - - - -- { dataFormatter.dateTimeFormatter(item.sent_at) } - | - - -
Audit_logs Organization
-| Action | - - - -EntityName | - - - -RecordKey | - - - -Summary | - - - -OccurredAt | - - - -IPAddress | - - - -UserAgent | - - -
|---|---|---|---|---|---|---|
| - { item.action } - | - - - -- { item.entity_name } - | - - - -- { item.record_key } - | - - - -- { item.summary } - | - - - -- { dataFormatter.dateTimeFormatter(item.occurred_at) } - | - - - -- { item.ip_address } - | - - - -- { item.user_agent } - | - - -
Fiscal_years Organization
-| FiscalYear | - - - -StartDate | - - - -EndDate | - - - -Status | - - - -IsCurrent | - - -
|---|---|---|---|---|
| - { item.name } - | - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.status } - | - - - -- { dataFormatter.booleanFormatter(item.is_current) } - | - - -
Funding_sources Organization
-| FundingSourceName | - - - -SourceType | - - - -ReferenceCode | - - - -Currency | - - - -TotalCommittedAmount | - - - -EffectiveDate | - - - -Status | - - -
|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.source_type } - | - - - -- { item.reference_code } - | - - - -- { item.currency } - | - - - -- { item.total_committed_amount } - | - - - -- { dataFormatter.dateTimeFormatter(item.effective_date) } - | - - - -- { item.status } - | - - -
Budget_programs Organization
-| ProgramName | - - - -ProgramCode | - - - -Objective | - - - -Status | - - - -ApprovedAmount | - - - -Currency | - - -
|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.objective } - | - - - -- { item.status } - | - - - -- { item.approved_amount } - | - - - -- { item.currency } - | - - -
Budget_lines organizations
-| BudgetLineName | - - - -BudgetLineCode | - - - -Description | - - - -Category | - - - -ApprovedAmount | - - - -CommittedAmount | - - - -DisbursedAmount | - - - -Currency | - - - -Status | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.description } - | - - - -- { item.category } - | - - - -- { item.approved_amount } - | - - - -- { item.committed_amount } - | - - - -- { item.disbursed_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - -
Allocations organizations
-| AllocationAmount | - - - -Currency | - - - -AllocatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.allocated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Budget_reallocations Organization
-| Amount | - - - -Currency | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Procurement_plans Organization
-| PlanName | - - - -Status | - - - -EstimatedTotalAmount | - - - -Currency | - - - -SubmittedAt | - - - -ApprovedAt | - - -
|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.status } - | - - - -- { item.estimated_total_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.approved_at) } - | - - -
Requisitions Organization
-| RequisitionNumber | - - - -Title | - - - - - -ProcurementMethod | - - - -EstimatedAmount | - - - -Currency | - - - -NeededByDate | - - - -Status | - - - - - -SubmittedAt | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.requisition_number } - | - - - -- { item.title } - | - - - - - -- { item.procurement_method } - | - - - -- { item.estimated_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.needed_by_date) } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.rejection_reason } - | - - -
Tenders Organization
-| TenderNumber | - - - -Title | - - - -TenderType | - - - -PublishedAt | - - - -ClosingAt | - - - -OpeningAt | - - - -Status | - - - -EligibilityCriteria | - - - -SubmissionInstructions | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.tender_number } - | - - - -- { item.title } - | - - - -- { item.tender_type } - | - - - -- { dataFormatter.dateTimeFormatter(item.published_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.closing_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.opening_at) } - | - - - -- { item.status } - | - - - -- { item.eligibility_criteria } - | - - - -- { item.submission_instructions } - | - - -
Vendors Organization
-| VendorName | - - - -TradeName | - - - -VendorType | - - - -RegistrationNumber | - - - -TaxNumber | - - - -PrimaryContactName | - - - -PrimaryContactEmail | - - - -PrimaryContactPhone | - - - -Address | - - - -BankName | - - - -BankAccountNumber | - - - -BankAccountName | - - - -SWIFT/BIC | - - - -QualificationStatus | - - - -QualificationReviewedAt | - - - -RiskRating | - - - -Blacklisted | - - - -ComplianceValidUntil | - - -
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.trade_name } - | - - - -- { item.vendor_type } - | - - - -- { item.registration_number } - | - - - -- { item.tax_number } - | - - - -- { item.contact_name } - | - - - -- { item.contact_email } - | - - - -- { item.contact_phone } - | - - - -- { item.address } - | - - - -- { item.bank_name } - | - - - -- { item.bank_account_number } - | - - - -- { item.bank_account_name } - | - - - -- { item.bank_swift } - | - - - -- { item.qualification_status } - | - - - -- { dataFormatter.dateTimeFormatter(item.qualification_reviewed_at) } - | - - - -- { item.risk_rating } - | - - - -- { dataFormatter.booleanFormatter(item.is_blacklisted) } - | - - - -- { dataFormatter.dateTimeFormatter(item.compliance_valid_until) } - | - - -
Vendor_compliance_documents organizations
-| DocumentType | - - - -ReferenceNumber | - - - -IssuedAt | - - - -ExpiresAt | - - - -Status | - - - -ReviewComment | - - - - -
|---|---|---|---|---|---|
| - { item.document_type } - | - - - -- { item.reference_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.issued_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.expires_at) } - | - - - -- { item.status } - | - - - -- { item.review_comment } - | - - - - -
Bids organizations
-| BidReference | - - - -SubmittedAt | - - - -BidAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.bid_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.bid_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Bid_evaluations organizations
-| TechnicalScore | - - - -FinancialScore | - - - -TotalScore | - - - -Recommendation | - - - -Justification | - - - -EvaluatedAt | - - -
|---|---|---|---|---|---|
| - { item.technical_score } - | - - - -- { item.financial_score } - | - - - -- { item.total_score } - | - - - -- { item.recommendation } - | - - - -- { item.justification } - | - - - -- { dataFormatter.dateTimeFormatter(item.evaluated_at) } - | - - -
Awards Organization
-| AwardNumber | - - - -AwardAmount | - - - -Currency | - - - -DecisionDate | - - - -Status | - - - - -
|---|---|---|---|---|
| - { item.award_number } - | - - - -- { item.award_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.decision_date) } - | - - - -- { item.status } - | - - - - -
Programs Organization
-| ProgramName | - - - -ProgramCode | - - - - - -Status | - - - -BudgetAmount | - - - -Currency | - - -
|---|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - - - -- { item.status } - | - - - -- { item.budget_amount } - | - - - -- { item.currency } - | - - -
Projects Organization
-| ProjectName | - - - -ProjectCode | - - - -ImplementingEntity | - - - - - -StartDate | - - - -EndDate | - - - -PlannedBudget | - - - -Currency | - - - -CompletionPercent | - - - -Status | - - - -RiskLevel | - - - -ReportingCycle | - - - -LastReportedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.project_code } - | - - - -- { item.implementing_entity } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.planned_budget } - | - - - -- { item.currency } - | - - - -- { item.completion_percent } - | - - - -- { item.status } - | - - - -- { item.risk_level } - | - - - -- { item.reporting_cycle } - | - - - -- { dataFormatter.dateTimeFormatter(item.last_reported_at) } - | - - -
Project_milestones organizations
-| MilestoneName | - - - -Description | - - - -PlannedStartDate | - - - -PlannedEndDate | - - - -ActualEndDate | - - - -Status | - - - -WeightPercent | - - -
|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.description } - | - - - -- { dataFormatter.dateTimeFormatter(item.planned_start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.planned_end_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.actual_end_date) } - | - - - -- { item.status } - | - - - -- { item.weight_percent } - | - - -
Risks organizations
-| RiskTitle | - - - -Description | - - - -Category | - - - -Likelihood | - - - -Impact | - - - -Status | - - - - - - - -IdentifiedAt | - - - -ReviewDueAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.title } - | - - - -- { item.description } - | - - - -- { item.category } - | - - - -- { item.likelihood } - | - - - -- { item.impact } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.identified_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.review_due_at) } - | - - -
Issues organizations
-| IssueTitle | - - - - - -Severity | - - - -Status | - - - - - -OpenedAt | - - - -DueAt | - - - -ResolvedAt | - - -
|---|---|---|---|---|---|
| - { item.title } - | - - - - - -- { item.severity } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.opened_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.resolved_at) } - | - - -
Field_verifications organizations
-| VisitDate | - - - -VerificationType | - - - -Outcome | - - - - - -ActionsRequired | - - - -NextFollow-upAt | - - - - -
|---|---|---|---|---|
| - { dataFormatter.dateTimeFormatter(item.visit_date) } - | - - - -- { item.verification_type } - | - - - -- { item.outcome } - | - - - - - -- { item.actions_required } - | - - - -- { dataFormatter.dateTimeFormatter(item.next_followup_at) } - | - - - - -
Contracts Organization
-| ContractNumber | - - - -ContractTitle | - - - -ContractType | - - - -ContractValue | - - - -Currency | - - - -StartDate | - - - -EndDate | - - - -Status | - - - -RetentionPercent | - - - -PenaltyRatePercent | - - - -SignedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|
| - { item.contract_number } - | - - - -- { item.title } - | - - - -- { item.contract_type } - | - - - -- { item.contract_value } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.status } - | - - - -- { item.retention_percent } - | - - - -- { item.penalty_rate_percent } - | - - - -- { dataFormatter.dateTimeFormatter(item.signed_at) } - | - - -
Contract_amendments organizations
-| AmendmentNumber | - - - -AmendmentType | - - - -ValueChangeAmount | - - - -DaysExtension | - - - - - -Status | - - - -EffectiveDate | - - -
|---|---|---|---|---|---|
| - { item.amendment_number } - | - - - -- { item.amendment_type } - | - - - -- { item.value_change_amount } - | - - - -- { item.days_extension } - | - - - - - -- { item.status } - | - - - -- { dataFormatter.dateTimeFormatter(item.effective_date) } - | - - -
Contract_milestones organizations
-| MilestoneName | - - - - - -DueDate | - - - -AcceptedAt | - - - -Status | - - - -PaymentPercent | - - -
|---|---|---|---|---|
| - { item.name } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.accepted_at) } - | - - - -- { item.status } - | - - - -- { item.payment_percent } - | - - -
Grants Organization
-| FundingWindowName | - - - -CallReference | - - - -CallOpenAt | - - - -CallCloseAt | - - - -Status | - - - - - -TotalEnvelopeAmount | - - - -Currency | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|
| - { item.funding_window_name } - | - - - -- { item.call_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.call_open_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.call_close_at) } - | - - - -- { item.status } - | - - - - - -- { item.total_envelope_amount } - | - - - -- { item.currency } - | - - - -- { item.notes } - | - - -
Beneficiaries organizations
-| BeneficiaryName | - - - -BeneficiaryType | - - - -RegistrationNumber | - - - -ContactEmail | - - - -ContactPhone | - - - -ApprovedAmount | - - - -Currency | - - - -Status | - - - -ApprovedAt | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.beneficiary_type } - | - - - -- { item.registration_number } - | - - - -- { item.contact_email } - | - - - -- { item.contact_phone } - | - - - -- { item.approved_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { dataFormatter.dateTimeFormatter(item.approved_at) } - | - - -
Grant_applications organizations
-| ApplicationReference | - - - -SubmittedAt | - - - -RequestedAmount | - - - -Currency | - - - - - -Status | - - -
|---|---|---|---|---|
| - { item.application_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.requested_amount } - | - - - -- { item.currency } - | - - - - - -- { item.status } - | - - -
Grant_evaluations organizations
-| Score | - - - -Comments | - - - -Recommendation | - - - -EvaluatedAt | - - -
|---|---|---|---|
| - { item.score } - | - - - -- { item.comments } - | - - - -- { item.recommendation } - | - - - -- { dataFormatter.dateTimeFormatter(item.evaluated_at) } - | - - -
Grant_tranches organizations
-| TrancheNumber | - - - -Amount | - - - -Currency | - - - -PlannedDisbursementAt | - - - -DisbursedAt | - - - -Status | - - - -Conditions | - - -
|---|---|---|---|---|---|---|
| - { item.tranche_number } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.planned_disbursement_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.disbursed_at) } - | - - - -- { item.status } - | - - - -- { item.conditions } - | - - -
Expense_categories Organization
-| ExpenseCategory | - - - -Code | - - - -Description | - - - -Status | - - -
|---|---|---|---|
| - { item.name } - | - - - -- { item.code } - | - - - -- { item.description } - | - - - -- { item.status } - | - - -
Invoices Organization
-| InvoiceNumber | - - - -InvoiceDate | - - - -ReceivedAt | - - - -DueDate | - - - -SubtotalAmount | - - - -TaxAmount | - - - -TotalAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|---|---|
| - { item.invoice_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.invoice_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.received_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { item.subtotal_amount } - | - - - -- { item.tax_amount } - | - - - -- { item.total_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Payment_requests Organization
-| RequestNumber | - - - -RequestedAmount | - - - -Currency | - - - -PaymentMethod | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|---|---|
| - { item.request_number } - | - - - -- { item.requested_amount } - | - - - -- { item.currency } - | - - - -- { item.payment_method } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Payment_batches Organization
-| BatchNumber | - - - -Status | - - - -Currency | - - - -TotalAmount | - - - -ScheduledAt | - - - -ProcessedAt | - - - - -
|---|---|---|---|---|---|
| - { item.batch_number } - | - - - -- { item.status } - | - - - -- { item.currency } - | - - - -- { item.total_amount } - | - - - -- { dataFormatter.dateTimeFormatter(item.scheduled_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.processed_at) } - | - - - - -
Payments Organization
-| PaymentReference | - - - -PaymentDate | - - - -Amount | - - - -Currency | - - - -Status | - - - -FailureReason | - - -
|---|---|---|---|---|---|
| - { item.payment_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.payment_date) } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.failure_reason } - | - - -
Obligations Organization
-| ObligationNumber | - - - -Amount | - - - -Currency | - - - -ObligatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.obligation_number } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.obligated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Ledger_entries Organization
-| EntryReference | - - - -EntryDate | - - - -EntryType | - - - -Currency | - - - -DebitAmount | - - - -CreditAmount | - - - -Description | - - - -RecordType | - - - -RecordKey | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.entry_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.entry_date) } - | - - - -- { item.entry_type } - | - - - -- { item.currency } - | - - - -- { item.debit_amount } - | - - - -- { item.credit_amount } - | - - - -- { item.description } - | - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - -
Documents Organization
-| Category | - - - -Title | - - - -Description | - - - -RecordType | - - - -RecordKey | - - - - - -VersionNumber | - - - -AccessLevel | - - - - - -UploadedAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.category } - | - - - -- { item.title } - | - - - -- { item.description } - | - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - - - - -- { item.version_number } - | - - - -- { item.access_level } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.uploaded_at) } - | - - -
Compliance_alerts Organization
-| AlertType | - - - -Severity | - - - -Title | - - - - - -RecordType | - - - -RecordKey | - - - -Status | - - - - - -DetectedAt | - - - -DueAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.alert_type } - | - - - -- { item.severity } - | - - - -- { item.title } - | - - - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.detected_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_at) } - | - - -
Organization
- - - - - - - - -{payment_batches?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BatchNumber
-{payment_batches?.batch_number}
-Status
-{payment_batches?.status ?? 'No data'}
-Currency
-{payment_batches?.currency ?? 'No data'}
-TotalAmount
-{payment_batches?.total_amount || 'No data'}
-No ScheduledAt
} -No ProcessedAt
} -PreparedBy
- - -{payment_batches?.prepared_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Payments PaymentBatch
-| PaymentReference | - - - -PaymentDate | - - - -Amount | - - - -Currency | - - - -Status | - - - -FailureReason | - - -
|---|---|---|---|---|---|
| - { item.payment_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.payment_date) } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.failure_reason } - | - - -
Organization
- - - - - - - - -{payment_requests?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Invoice
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{payment_requests?.invoice?.invoice_number ?? 'No data'}
- - - - - - - - - - - - - - - - -RequestNumber
-{payment_requests?.request_number}
-RequestedAmount
-{payment_requests?.requested_amount || 'No data'}
-Currency
-{payment_requests?.currency ?? 'No data'}
-PaymentMethod
-{payment_requests?.payment_method ?? 'No data'}
-Status
-{payment_requests?.status ?? 'No data'}
-RequestedBy
- - -{payment_requests?.requested_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No RequestedAt
} -Payments PaymentRequest
-| PaymentReference | - - - -PaymentDate | - - - -Amount | - - - -Currency | - - - -Status | - - - -FailureReason | - - -
|---|---|---|---|---|---|
| - { item.payment_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.payment_date) } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.failure_reason } - | - - -
Organization
- - - - - - - - -{payments?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PaymentRequest
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{payments?.payment_request?.request_number ?? 'No data'}
- - - - - - - - - - - - - - -PaymentBatch
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{payments?.batch?.batch_number ?? 'No data'}
- - - - - - - - - - - - -Vendor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{payments?.vendor?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PaymentReference
-{payments?.payment_reference}
-No PaymentDate
} -Amount
-{payments?.amount || 'No data'}
-Currency
-{payments?.currency ?? 'No data'}
-Status
-{payments?.status ?? 'No data'}
-Name
-{permissions?.name}
-Role_permissions Permission
-Organization
- - - - - - - - -{procurement_plans?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FiscalYear
- - - - - - - - - - - - - - - - - - - - - - - - - - -{procurement_plans?.fiscal_year?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Department
- - - - - - - - - - - - -{procurement_plans?.department?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -PlanName
-{procurement_plans?.name}
-Status
-{procurement_plans?.status ?? 'No data'}
-EstimatedTotalAmount
-{procurement_plans?.estimated_total_amount || 'No data'}
-Currency
-{procurement_plans?.currency ?? 'No data'}
-No SubmittedAt
} -No ApprovedAt
} -Requisitions ProcurementPlan
-| RequisitionNumber | - - - -Title | - - - - - -ProcurementMethod | - - - -EstimatedAmount | - - - -Currency | - - - -NeededByDate | - - - -Status | - - - - - -SubmittedAt | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.requisition_number } - | - - - -- { item.title } - | - - - - - -- { item.procurement_method } - | - - - -- { item.estimated_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.needed_by_date) } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.rejection_reason } - | - - -
Organization
- - - - - - - - -{programs?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FiscalYear
- - - - - - - - - - - - - - - - - - - - - - - - - - -{programs?.fiscal_year?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -FundingSource
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -{programs?.funding_source?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ProgramName
-{programs?.name}
-ProgramCode
-{programs?.code}
-Description
- {programs.description - ? - :No data
- } -Status
-{programs?.status ?? 'No data'}
-BudgetAmount
-{programs?.budget_amount || 'No data'}
-Currency
-{programs?.currency ?? 'No data'}
-Projects Program
-| ProjectName | - - - -ProjectCode | - - - -ImplementingEntity | - - - - - -StartDate | - - - -EndDate | - - - -PlannedBudget | - - - -Currency | - - - -CompletionPercent | - - - -Status | - - - -RiskLevel | - - - -ReportingCycle | - - - -LastReportedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.project_code } - | - - - -- { item.implementing_entity } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.planned_budget } - | - - - -- { item.currency } - | - - - -- { item.completion_percent } - | - - - -- { item.status } - | - - - -- { item.risk_level } - | - - - -- { item.reporting_cycle } - | - - - -- { dataFormatter.dateTimeFormatter(item.last_reported_at) } - | - - -
Grants Program
-| FundingWindowName | - - - -CallReference | - - - -CallOpenAt | - - - -CallCloseAt | - - - -Status | - - - - - -TotalEnvelopeAmount | - - - -Currency | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|
| - { item.funding_window_name } - | - - - -- { item.call_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.call_open_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.call_close_at) } - | - - - -- { item.status } - | - - - - - -- { item.total_envelope_amount } - | - - - -- { item.currency } - | - - - -- { item.notes } - | - - -
Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{project_milestones?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -MilestoneName
-{project_milestones?.name}
-No PlannedStartDate
} -No PlannedEndDate
} -No ActualEndDate
} -Status
-{project_milestones?.status ?? 'No data'}
-WeightPercent
-{project_milestones?.weight_percent || 'No data'}
-organizations
- - - - - - - - -{project_milestones?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{description}
+{label}
+{title}
+{value}
+{note}
+{description}
+ {rows.length > 0 && onRowClick && ( +Select any row to open the full record
+ )} +| + {column.label} + | + ))} +
|---|
| + {column.render(item)} + | + ))} +
+ {project?.objectives + ? 'This project page consolidates delivery context, reporting dates, financial controls, and linked operational records in one place.' + : 'Core project metadata is available below. Add objectives and linked records to build out the delivery picture.'} +
+Project code
+{project?.project_code || emptyValue}
+Province
+{project?.province?.name || emptyValue}
+Reporting cycle
+{project?.reporting_cycle || emptyValue}
++ Core ownership, scope, and reporting information for this project. +
+Organization
- - - - - - - - -{projects?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ++ Schedule, risk posture, and financial baseline at a glance. +
+Timeline
++ {formatDate(project?.start_date)} → {formatDate(project?.end_date)} +
+Risk level
+{formatText(project?.risk_level, 'Risk not set')}
+Execution baseline
++ {formatCurrency(project?.planned_budget, project?.currency)} · {project?.currency || 'Currency not set'} +
+Program
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{projects?.program?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Province
- - - - - - - - - - -{projects?.province?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{projects?.budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ProjectName
-{projects?.name}
-ProjectCode
-{projects?.project_code}
-ImplementingEntity
-{projects?.implementing_entity}
-Objectives
- {projects.objectives - ? - :No data
- } -No StartDate
} -No EndDate
} -PlannedBudget
-{projects?.planned_budget || 'No data'}
-Currency
-{projects?.currency ?? 'No data'}
-CompletionPercent
-{projects?.completion_percent || 'No data'}
-Status
-{projects?.status ?? 'No data'}
-RiskLevel
-{projects?.risk_level ?? 'No data'}
-ReportingCycle
-{projects?.reporting_cycle}
-No LastReportedAt
} -Project_milestones Project
-| MilestoneName | - - - -Description | - - - -PlannedStartDate | - - - -PlannedEndDate | - - - -ActualEndDate | - - - -Status | - - - -WeightPercent | - - -
|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.description } - | - - - -- { dataFormatter.dateTimeFormatter(item.planned_start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.planned_end_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.actual_end_date) } - | - - - -- { item.status } - | - - - -- { item.weight_percent } - | - - -
Risks Project
-| RiskTitle | - - - -Description | - - - -Category | - - - -Likelihood | - - - -Impact | - - - -Status | - - - - - - - -IdentifiedAt | - - - -ReviewDueAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.title } - | - - - -- { item.description } - | - - - -- { item.category } - | - - - -- { item.likelihood } - | - - - -- { item.impact } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.identified_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.review_due_at) } - | - - -
Issues Project
-| IssueTitle | - - - - - -Severity | - - - -Status | - - - - - -OpenedAt | - - - -DueAt | - - - -ResolvedAt | - - -
|---|---|---|---|---|---|
| - { item.title } - | - - - - - -- { item.severity } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.opened_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.resolved_at) } - | - - -
Field_verifications Project
-| VisitDate | - - - -VerificationType | - - - -Outcome | - - - - - -ActionsRequired | - - - -NextFollow-upAt | - - - - -
|---|---|---|---|---|
| - { dataFormatter.dateTimeFormatter(item.visit_date) } - | - - - -- { item.verification_type } - | - - - -- { item.outcome } - | - - - - - -- { item.actions_required } - | - - - -- { dataFormatter.dateTimeFormatter(item.next_followup_at) } - | - - - - -
Contracts Project
-| ContractNumber | - - - -ContractTitle | - - - -ContractType | - - - -ContractValue | - - - -Currency | - - - -StartDate | - - - -EndDate | - - - -Status | - - - -RetentionPercent | - - - -PenaltyRatePercent | - - - -SignedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|
| - { item.contract_number } - | - - - -- { item.title } - | - - - -- { item.contract_type } - | - - - -- { item.contract_value } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.status } - | - - - -- { item.retention_percent } - | - - - -- { item.penalty_rate_percent } - | - - - -- { dataFormatter.dateTimeFormatter(item.signed_at) } - | - - -
Invoices Project
-| InvoiceNumber | - - - -InvoiceDate | - - - -ReceivedAt | - - - -DueDate | - - - -SubtotalAmount | - - - -TaxAmount | - - - -TotalAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|---|---|
| - { item.invoice_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.invoice_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.received_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { item.subtotal_amount } - | - - - -- { item.tax_amount } - | - - - -- { item.total_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Obligations Project
-| ObligationNumber | - - - -Amount | - - - -Currency | - - - -ObligatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.obligation_number } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.obligated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
+ Strategic purpose and expected delivery outcomes for the project. +
+{item.name || 'Untitled milestone'}
+{truncateText(item.description, 'No delivery note recorded', 110)}
+{formatDateWindow(item.planned_start_date, item.planned_end_date)}
+Actual close: {formatDate(item.actual_end_date)}
+{item.title || 'Untitled risk'}
+{truncateText(item.description, 'No risk note recorded', 110)}
+{item.title || 'Untitled issue'}
+{truncateText(item.description, 'No issue note recorded', 110)}
+{formatText(item.verification_type, 'Verification type not set')}
+{truncateText(item.findings, 'No findings recorded', 110)}
+{item.title || item.contract_number || 'Untitled contract'}
+{item.contract_number || 'No contract number'}{item.vendor?.name ? ` · ${item.vendor.name}` : ''}
+{item.invoice_number || 'Invoice without number'}
+Issued {formatDate(item.invoice_date)}
+{item.obligation_number || 'Obligation without number'}
+{truncateText(item.notes, 'No notes recorded', 110)}
+Organization
- - - - - - - - -{provinces?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ProvinceName
-{provinces?.name}
-ProvinceCode
-{provinces?.code}
-Status
-{provinces?.status ?? 'No data'}
-Allocations Province
-| AllocationAmount | - - - -Currency | - - - -AllocatedAt | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.allocated_at) } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Requisitions Province
-| RequisitionNumber | - - - -Title | - - - - - -ProcurementMethod | - - - -EstimatedAmount | - - - -Currency | - - - -NeededByDate | - - - -Status | - - - - - -SubmittedAt | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.requisition_number } - | - - - -- { item.title } - | - - - - - -- { item.procurement_method } - | - - - -- { item.estimated_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.needed_by_date) } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.rejection_reason } - | - - -
Projects Province
-| ProjectName | - - - -ProjectCode | - - - -ImplementingEntity | - - - - - -StartDate | - - - -EndDate | - - - -PlannedBudget | - - - -Currency | - - - -CompletionPercent | - - - -Status | - - - -RiskLevel | - - - -ReportingCycle | - - - -LastReportedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.project_code } - | - - - -- { item.implementing_entity } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.planned_budget } - | - - - -- { item.currency } - | - - - -- { item.completion_percent } - | - - - -- { item.status } - | - - - -- { item.risk_level } - | - - - -- { item.reporting_cycle } - | - - - -- { dataFormatter.dateTimeFormatter(item.last_reported_at) } - | - - -
Beneficiaries Province
-| BeneficiaryName | - - - -BeneficiaryType | - - - -RegistrationNumber | - - - -ContactEmail | - - - -ContactPhone | - - - -ApprovedAmount | - - - -Currency | - - - -Status | - - - -ApprovedAt | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.name } - | - - - -- { item.beneficiary_type } - | - - - -- { item.registration_number } - | - - - -- { item.contact_email } - | - - - -- { item.contact_phone } - | - - - -- { item.approved_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { dataFormatter.dateTimeFormatter(item.approved_at) } - | - - -
Organization
- - - - - - - - -{requisitions?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -ProcurementPlan
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{requisitions?.procurement_plan?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RequestingDepartment
- - - - - - - - - - - - -{requisitions?.requesting_department?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -BudgetLine
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{requisitions?.budget_line?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Province
- - - - - - - - - - -{requisitions?.province?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RequisitionNumber
-{requisitions?.requisition_number}
-Title
-{requisitions?.title}
-ScopeofWork
- {requisitions.scope_of_work - ? - :No data
- } -ProcurementMethod
-{requisitions?.procurement_method ?? 'No data'}
-EstimatedAmount
-{requisitions?.estimated_amount || 'No data'}
-Currency
-{requisitions?.currency ?? 'No data'}
-No NeededByDate
} -Status
-{requisitions?.status ?? 'No data'}
-RequestedBy
- - -{requisitions?.requested_by_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No SubmittedAt
} -Tenders Requisition
-| TenderNumber | - - - -Title | - - - -TenderType | - - - -PublishedAt | - - - -ClosingAt | - - - -OpeningAt | - - - -Status | - - - -EligibilityCriteria | - - - -SubmissionInstructions | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.tender_number } - | - - - -- { item.title } - | - - - -- { item.tender_type } - | - - - -- { dataFormatter.dateTimeFormatter(item.published_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.closing_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.opening_at) } - | - - - -- { item.status } - | - - - -- { item.eligibility_criteria } - | - - - -- { item.submission_instructions } - | - - -
Project
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{risks?.project?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -RiskTitle
-{risks?.title}
-Category
-{risks?.category ?? 'No data'}
-Likelihood
-{risks?.likelihood ?? 'No data'}
-Impact
-{risks?.impact ?? 'No data'}
-Status
-{risks?.status ?? 'No data'}
-MitigationPlan
- {risks.mitigation_plan - ? - :No data
- } -Owner
- - -{risks?.owner_user?.firstName ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -No IdentifiedAt
} -No ReviewDueAt
} -organizations
- - - - - - - - -{risks?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Role
- - - - -{role_permissions?.role?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Permission
- - - - - - -{role_permissions?.permission?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -organizations
- - - - - - - - -{role_permissions?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Name
-{roles?.name}
-Permissions
-| Name | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|---|
| - { item.name } - | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Users App Role
-| First Name | - - - -Last Name | - - - -Phone Number | - - - -Disabled | - - - - - - - - - - -|
|---|---|---|---|---|
| - { item.firstName } - | - - - -- { item.lastName } - | - - - -- { item.phoneNumber } - | - - - -- { item.email } - | - - - -- { dataFormatter.booleanFormatter(item.disabled) } - | - - - - - - - - - - -
Role_permissions Role
-Approval_steps ApproverRole
-| StepOrder | - - - -StepName | - - - - - - - -MinimumAmount | - - - -MaximumAmount | - - - -RequiresComment | - - -
|---|---|---|---|---|
| - { item.step_order } - | - - - -- { item.name } - | - - - - - - - -- { item.min_amount } - | - - - -- { item.max_amount } - | - - - -- { dataFormatter.booleanFormatter(item.requires_comment) } - | - - -
Organization
- - - - - - - - -{tenders?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Requisition
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{tenders?.requisition?.requisition_number ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -TenderNumber
-{tenders?.tender_number}
-Title
-{tenders?.title}
-TenderType
-{tenders?.tender_type ?? 'No data'}
-No PublishedAt
} -No ClosingAt
} -No OpeningAt
} -Status
-{tenders?.status ?? 'No data'}
-Bids Tender
-| BidReference | - - - -SubmittedAt | - - - -BidAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.bid_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.bid_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Awards Tender
-| AwardNumber | - - - -AwardAmount | - - - -Currency | - - - -DecisionDate | - - - -Status | - - - - -
|---|---|---|---|---|
| - { item.award_number } - | - - - -- { item.award_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.decision_date) } - | - - - -- { item.status } - | - - - - -
First Name
-{users?.firstName}
-Last Name
-{users?.lastName}
-Phone Number
-{users?.phoneNumber}
-{users?.email}
-Avatar
- {users?.avatar?.length - ? ( -No Avatar
- } -App Role
- - - - -{users?.app_role?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Custom Permissions
-| Name | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|---|
| - { item.name } - | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Organizations
- - - - - - - - -{users?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Approvals RequestedBy
-| RecordType | - - - -RecordKey | - - - -Status | - - - - - - - -RequestedAt | - - - -DecidedAt | - - - -DecisionComment | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|
| - { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.decided_at) } - | - - - -- { item.decision_comment } - | - - - -- { item.rejection_reason } - | - - -
Approvals AssignedTo
-| RecordType | - - - -RecordKey | - - - -Status | - - - - - - - -RequestedAt | - - - -DecidedAt | - - - -DecisionComment | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|
| - { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.decided_at) } - | - - - -- { item.decision_comment } - | - - - -- { item.rejection_reason } - | - - -
Notifications User
-| Type | - - - -Title | - - - -Message | - - - -RecordType | - - - -RecordKey | - - - -Read | - - - -SentAt | - - -
|---|---|---|---|---|---|---|
| - { item.type } - | - - - -- { item.title } - | - - - -- { item.message } - | - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - - -- { dataFormatter.booleanFormatter(item.read) } - | - - - -- { dataFormatter.dateTimeFormatter(item.sent_at) } - | - - -
Audit_logs ActorUser
-| Action | - - - -EntityName | - - - -RecordKey | - - - -Summary | - - - -OccurredAt | - - - -IPAddress | - - - -UserAgent | - - -
|---|---|---|---|---|---|---|
| - { item.action } - | - - - -- { item.entity_name } - | - - - -- { item.record_key } - | - - - -- { item.summary } - | - - - -- { dataFormatter.dateTimeFormatter(item.occurred_at) } - | - - - -- { item.ip_address } - | - - - -- { item.user_agent } - | - - -
Budget_reallocations RequestedBy
-| Amount | - - - -Currency | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|
| - { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Requisitions RequestedBy
-| RequisitionNumber | - - - -Title | - - - - - -ProcurementMethod | - - - -EstimatedAmount | - - - -Currency | - - - -NeededByDate | - - - -Status | - - - - - -SubmittedAt | - - - -RejectionReason | - - -
|---|---|---|---|---|---|---|---|---|
| - { item.requisition_number } - | - - - -- { item.title } - | - - - - - -- { item.procurement_method } - | - - - -- { item.estimated_amount } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.needed_by_date) } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.rejection_reason } - | - - -
Bid_evaluations LeadEvaluator
-| TechnicalScore | - - - -FinancialScore | - - - -TotalScore | - - - -Recommendation | - - - -Justification | - - - -EvaluatedAt | - - -
|---|---|---|---|---|---|
| - { item.technical_score } - | - - - -- { item.financial_score } - | - - - -- { item.total_score } - | - - - -- { item.recommendation } - | - - - -- { item.justification } - | - - - -- { dataFormatter.dateTimeFormatter(item.evaluated_at) } - | - - -
Risks Owner
-| RiskTitle | - - - -Description | - - - -Category | - - - -Likelihood | - - - -Impact | - - - -Status | - - - - - - - -IdentifiedAt | - - - -ReviewDueAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.title } - | - - - -- { item.description } - | - - - -- { item.category } - | - - - -- { item.likelihood } - | - - - -- { item.impact } - | - - - -- { item.status } - | - - - - - - - -- { dataFormatter.dateTimeFormatter(item.identified_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.review_due_at) } - | - - -
Issues AssignedTo
-| IssueTitle | - - - - - -Severity | - - - -Status | - - - - - -OpenedAt | - - - -DueAt | - - - -ResolvedAt | - - -
|---|---|---|---|---|---|
| - { item.title } - | - - - - - -- { item.severity } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.opened_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.resolved_at) } - | - - -
Field_verifications VerifiedBy
-| VisitDate | - - - -VerificationType | - - - -Outcome | - - - - - -ActionsRequired | - - - -NextFollow-upAt | - - - - -
|---|---|---|---|---|
| - { dataFormatter.dateTimeFormatter(item.visit_date) } - | - - - -- { item.verification_type } - | - - - -- { item.outcome } - | - - - - - -- { item.actions_required } - | - - - -- { dataFormatter.dateTimeFormatter(item.next_followup_at) } - | - - - - -
Grant_evaluations Evaluator
-| Score | - - - -Comments | - - - -Recommendation | - - - -EvaluatedAt | - - -
|---|---|---|---|
| - { item.score } - | - - - -- { item.comments } - | - - - -- { item.recommendation } - | - - - -- { dataFormatter.dateTimeFormatter(item.evaluated_at) } - | - - -
Payment_requests RequestedBy
-| RequestNumber | - - - -RequestedAmount | - - - -Currency | - - - -PaymentMethod | - - - -Status | - - - - - -RequestedAt | - - - -Justification | - - -
|---|---|---|---|---|---|---|
| - { item.request_number } - | - - - -- { item.requested_amount } - | - - - -- { item.currency } - | - - - -- { item.payment_method } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.requested_at) } - | - - - -- { item.justification } - | - - -
Payment_batches PreparedBy
-| BatchNumber | - - - -Status | - - - -Currency | - - - -TotalAmount | - - - -ScheduledAt | - - - -ProcessedAt | - - - - -
|---|---|---|---|---|---|
| - { item.batch_number } - | - - - -- { item.status } - | - - - -- { item.currency } - | - - - -- { item.total_amount } - | - - - -- { dataFormatter.dateTimeFormatter(item.scheduled_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.processed_at) } - | - - - - -
Documents UploadedBy
-| Category | - - - -Title | - - - -Description | - - - -RecordType | - - - -RecordKey | - - - - - -VersionNumber | - - - -AccessLevel | - - - - - -UploadedAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.category } - | - - - -- { item.title } - | - - - -- { item.description } - | - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - - - - -- { item.version_number } - | - - - -- { item.access_level } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.uploaded_at) } - | - - -
Compliance_alerts AssignedTo
-| AlertType | - - - -Severity | - - - -Title | - - - - - -RecordType | - - - -RecordKey | - - - -Status | - - - - - -DetectedAt | - - - -DueAt | - - -
|---|---|---|---|---|---|---|---|
| - { item.alert_type } - | - - - -- { item.severity } - | - - - -- { item.title } - | - - - - - -- { item.record_type } - | - - - -- { item.record_key } - | - - - -- { item.status } - | - - - - - -- { dataFormatter.dateTimeFormatter(item.detected_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_at) } - | - - -
Vendor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -{vendor_compliance_documents?.vendor?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -DocumentType
-{vendor_compliance_documents?.document_type ?? 'No data'}
-ReferenceNumber
-{vendor_compliance_documents?.reference_number}
-No IssuedAt
} -No ExpiresAt
} -Status
-{vendor_compliance_documents?.status ?? 'No data'}
-File
- {vendor_compliance_documents?.file?.length - ? dataFormatter.filesFormatter(vendor_compliance_documents.file).map(link => ( - - )) :No File
- } -organizations
- - - - - - - - -{vendor_compliance_documents?.organizations?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Organization
- - - - - - - - -{vendors?.organization?.name ?? 'No data'}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VendorName
-{vendors?.name}
-TradeName
-{vendors?.trade_name}
-VendorType
-{vendors?.vendor_type ?? 'No data'}
-RegistrationNumber
-{vendors?.registration_number}
-TaxNumber
-{vendors?.tax_number}
-PrimaryContactName
-{vendors?.contact_name}
-PrimaryContactEmail
-{vendors?.contact_email}
-PrimaryContactPhone
-{vendors?.contact_phone}
-BankName
-{vendors?.bank_name}
-BankAccountNumber
-{vendors?.bank_account_number}
-BankAccountName
-{vendors?.bank_account_name}
-SWIFT/BIC
-{vendors?.bank_swift}
-QualificationStatus
-{vendors?.qualification_status ?? 'No data'}
-No QualificationReviewedAt
} -RiskRating
-{vendors?.risk_rating ?? 'No data'}
-No ComplianceValidUntil
} -Vendor_compliance_documents Vendor
-| DocumentType | - - - -ReferenceNumber | - - - -IssuedAt | - - - -ExpiresAt | - - - -Status | - - - -ReviewComment | - - - - -
|---|---|---|---|---|---|
| - { item.document_type } - | - - - -- { item.reference_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.issued_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.expires_at) } - | - - - -- { item.status } - | - - - -- { item.review_comment } - | - - - - -
Bids Vendor
-| BidReference | - - - -SubmittedAt | - - - -BidAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|
| - { item.bid_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.submitted_at) } - | - - - -- { item.bid_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Contracts Vendor
-| ContractNumber | - - - -ContractTitle | - - - -ContractType | - - - -ContractValue | - - - -Currency | - - - -StartDate | - - - -EndDate | - - - -Status | - - - -RetentionPercent | - - - -PenaltyRatePercent | - - - -SignedAt | - - -
|---|---|---|---|---|---|---|---|---|---|---|
| - { item.contract_number } - | - - - -- { item.title } - | - - - -- { item.contract_type } - | - - - -- { item.contract_value } - | - - - -- { item.currency } - | - - - -- { dataFormatter.dateTimeFormatter(item.start_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.end_date) } - | - - - -- { item.status } - | - - - -- { item.retention_percent } - | - - - -- { item.penalty_rate_percent } - | - - - -- { dataFormatter.dateTimeFormatter(item.signed_at) } - | - - -
Invoices Vendor
-| InvoiceNumber | - - - -InvoiceDate | - - - -ReceivedAt | - - - -DueDate | - - - -SubtotalAmount | - - - -TaxAmount | - - - -TotalAmount | - - - -Currency | - - - -Status | - - - -Notes | - - -
|---|---|---|---|---|---|---|---|---|---|
| - { item.invoice_number } - | - - - -- { dataFormatter.dateTimeFormatter(item.invoice_date) } - | - - - -- { dataFormatter.dateTimeFormatter(item.received_at) } - | - - - -- { dataFormatter.dateTimeFormatter(item.due_date) } - | - - - -- { item.subtotal_amount } - | - - - -- { item.tax_amount } - | - - - -- { item.total_amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.notes } - | - - -
Payments Vendor
-| PaymentReference | - - - -PaymentDate | - - - -Amount | - - - -Currency | - - - -Status | - - - -FailureReason | - - -
|---|---|---|---|---|---|
| - { item.payment_reference } - | - - - -- { dataFormatter.dateTimeFormatter(item.payment_date) } - | - - - -- { item.amount } - | - - - -- { item.currency } - | - - - -- { item.status } - | - - - -- { item.failure_reason } - | - - -