63 lines
3.8 KiB
PHP
63 lines
3.8 KiB
PHP
<div style="background:#fff;border-radius:14px;box-shadow:0 2px 10px rgba(0,0,0,.05);overflow:hidden;">
|
|
<table style="width:100%;border-collapse:collapse;font-size:13px;">
|
|
<thead>
|
|
<tr style="border-bottom:1px solid #f1f5f9;">
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Request #</th>
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Project / Description</th>
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Department</th>
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Requested By</th>
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Stage</th>
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Progress</th>
|
|
<th style="padding:12px 18px;text-align:left;font-size:11px;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em;">Date</th>
|
|
<th style="padding:12px 18px;"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@foreach($rows as $pr)
|
|
@php
|
|
$stageIdx = $stages->stageIndex($pr->stage ?? 'draft');
|
|
$total = count(\App\Services\PurchaseStageService::STAGES);
|
|
$pct = $total > 1 ? round(($stageIdx / ($total - 1)) * 100) : 100;
|
|
$isDone = $pr->stage === 'complete';
|
|
@endphp
|
|
<tr class="pr-row" onclick="window.location='{{ route('purchase.pipeline.show', $pr) }}'"
|
|
style="border-bottom:1px solid #f8fafc;transition:background .12s;">
|
|
<td style="padding:14px 18px;font-weight:700;color:#0f172a;">{{ $pr->request_number }}</td>
|
|
<td style="padding:14px 18px;color:#374151;max-width:200px;">
|
|
<div style="font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">
|
|
{{ $pr->project_name ?: '—' }}
|
|
</div>
|
|
@if($pr->remarks)
|
|
<div style="font-size:11px;color:#94a3b8;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">
|
|
{{ Str::limit($pr->remarks, 50) }}
|
|
</div>
|
|
@endif
|
|
</td>
|
|
<td style="padding:14px 18px;color:#64748b;">{{ $pr->department ?: '—' }}</td>
|
|
<td style="padding:14px 18px;color:#64748b;">{{ $pr->requested_by_name ?? $pr->requestedBy?->name ?? '—' }}</td>
|
|
<td style="padding:14px 18px;">
|
|
<span class="stage-pill"
|
|
style="background:{{ $isDone ? '#dcfce7' : '#fffbeb' }};color:{{ $isDone ? '#15803d' : '#92400e' }};">
|
|
{{ $stages->stageLabel($pr->stage) }}
|
|
</span>
|
|
</td>
|
|
<td style="padding:14px 18px;min-width:100px;">
|
|
<div style="height:5px;background:#f1f5f9;border-radius:3px;overflow:hidden;">
|
|
<div style="height:5px;background:{{ $isDone ? '#22c55e' : '#f59e0b' }};width:{{ $pct }}%;border-radius:3px;"></div>
|
|
</div>
|
|
<div style="font-size:10px;color:#94a3b8;margin-top:3px;">{{ $pct }}%</div>
|
|
</td>
|
|
<td style="padding:14px 18px;color:#94a3b8;white-space:nowrap;">
|
|
{{ $pr->date ? \Carbon\Carbon::parse($pr->date)->format('d M Y') : '—' }}
|
|
</td>
|
|
<td style="padding:14px 18px;">
|
|
<svg width="16" height="16" fill="none" stroke="#cbd5e1" stroke-width="2" viewBox="0 0 24 24">
|
|
<path stroke-linecap="round" stroke-linejoin="round" d="M9 5l7 7-7 7"/>
|
|
</svg>
|
|
</td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
</div>
|