{{ $review->created_at }} UTC
{{ $review->reason }}
Adopção {{ $adoption->revision }} · política {{ $adoption->snapshot['policy_revision'] }} · tentativa {{ $attempt->revision }}
{{ $states[$state] }} · {{ $current ? 'Base actual na consulta' : 'Histórica ou base desactualizada: não utilizável para adjudicar' }}
Recomendação não autoriza compra, não substitui aprovações do valor final e não constitui assinatura digital ou certificação de evidências.
Consulta por {{ $generatedBy }} em {{ $generatedAt->format('d/m/Y H:i:s') }} · Africa/Johannesburg (UTC+2). A situação actual pode mudar após esta consulta.
{{ $candidate['supplier_name'] ?? 'Fornecedor indisponível' }} · {{ $candidate['reference'] ?? $attempt->quotation_id }}
Proponente: {{ $attempt->snapshot['proponent']['name'] }} · Registo: {{ $attempt->created_at }} UTC
{{ $attempt->reason }}
Política preservada: {{ $adoption->snapshot['required_count'] }} pessoas distintas; {{ implode(', ', array_map(fn ($role) => \App\Enums\PurchasingRole::from($role)->label(), $adoption->snapshot['roles'])) }}.
Base preservada: {{ $attempt->basis_hash }}
| Fornecedor e proposta | Total | Avaliações elegíveis | Pontuação / 10 | Situação na base preservada |
|---|---|---|---|---|
| {{ $row['supplier_name'] }} · {{ $row['reference'] }} | {{ number_format($row['total_minor'] / 100, 2, ',', ' ') }} {{ $row['currency'] }} | {{ $row['evaluation_count'] }} | {{ $row['score_minor'] === null ? 'Por concluir' : number_format($row['score_minor'] / 100, 2, ',', ' ') }} | {{ $row['eligible'] ? 'Elegível, com admissão confirmada' : implode(' ', $row['ineligibility_reasons']) }}{{ in_array($row['id'], $attempt->snapshot['basis']['top_ids'], true) ? ' · Maior pontuação' : '' }} |
Proposta #{{ $admission['quotation_id'] }} · requisitos #{{ $admission['basis']['set_id'] ?? 'não disponíveis' }} · decisão #{{ $admission['decision']['id'] ?? 'não disponível' }} · conferências {{ implode(', ', array_column($admission['reviews'], 'id')) ?: 'sem registos' }}.
@endforeach{{ $review->created_at }} UTC
{{ $review->reason }}
Sem conferências registadas.
@endforelse{{ $entry['attempt']->reason }}
@foreach($entry['reviews'] as $review){{ $review->snapshot['name'] }} · {{ $review->verdict === 'approved' ? 'Confirmou' : 'Devolveu' }} · {{ $review->created_at }} UTC · {{ $review->reason }}
@endforeachSem tentativas anteriores nesta adopção.
@endforelse