@extends('layouts.portal') @section('title', $penugasan->judul . ' - Detail Penugasan') @section('content')
Kembali ke Daftar / {{ $penugasan->kode_penugasan }}
@if($isAtasanTugas) Anda adalah Atasan (Pemberi Tugas) @elseif($isAnggotaTugas) {{ $anggotaSaya?->peran === 'penanggung_jawab' ? 'Penanggung Jawab Utama' : 'Anggota Kolaborator' }} @endif
@if($penugasan->status === 'menunggu_review')

Menunggu Evaluasi & Review Atasan

Tim pelaksana telah menyelesaikan pengerjaan dan mengajukan penugasan ini. @if($isAtasanTugas) Silakan periksa hasil pekerjaan pada tautan di bawah dan berikan keputusan evaluasi. @else Tugas saat ini sedang diperiksa oleh atasan langsung Anda. @endif

@elseif($penugasan->status === 'revisi')

Tugas Memerlukan Perbaikan / Revisi

@if($penugasan->catatan_atasan)
Catatan Instruksi dari Atasan: {!! nl2br(e($penugasan->catatan_atasan)) !!}
@endif

Perbaiki bagian yang diminta pada dokumen/spreadsheet pengerjaan, lalu ajukan kembali untuk direview setelah selesai.

@elseif($penugasan->status === 'selesai')

Penugasan Berhasil Diselesaikan

Tugas ini telah diverifikasi dan disetujui oleh {{ $penugasan->atasan?->nama_lengkap ?? 'Atasan' }} @if($penugasan->selesai_at) pada {{ $penugasan->selesai_at->format('d M Y H:i WIB') }} @endif.

@if($penugasan->catatan_atasan)
Apresiasi/Catatan: {{ $penugasan->catatan_atasan }}
@endif
@endif
@if($penugasan->tipe_media === 'spreadsheet') Google Spreadsheet @elseif($penugasan->tipe_media === 'dokumen_online') Google Docs @else Upload Dokumen Saja @endif @php $prioritasClasses = [ 'rendah' => 'bg-slate-50 text-slate-600 border-slate-200', 'sedang' => 'bg-amber-50 text-amber-700 border-amber-200', 'tinggi' => 'bg-orange-50 text-orange-700 border-orange-200', 'mendesak' => 'bg-rose-50 text-rose-700 border-rose-200 font-bold', ]; @endphp Prioritas: {{ ucfirst($penugasan->prioritas) }} @php $statusClasses = [ 'draft' => 'bg-slate-100 text-slate-700 border-slate-300', 'berjalan' => 'bg-blue-50 text-blue-700 border-blue-200', 'menunggu_review' => 'bg-amber-50 text-amber-700 border-amber-200', 'revisi' => 'bg-rose-50 text-rose-700 border-rose-200', 'selesai' => 'bg-emerald-50 text-emerald-700 border-emerald-200', 'dibatalkan' => 'bg-red-100 text-red-700 border-red-200', ]; @endphp {{ $penugasan->status_label }}

{{ $penugasan->judul }}

@if($isAnggotaTugas && $penugasan->status !== 'selesai' && $penugasan->status !== 'dibatalkan') @if($anggotaSaya?->status_kontribusi === 'belum_mulai')
@csrf
@elseif($penugasan->status !== 'menunggu_review')
@csrf
@endif @endif @if($isAtasanTugas && $penugasan->status !== 'selesai' && $penugasan->status !== 'dibatalkan') @endif
@if($penugasan->deskripsi)
Deskripsi & Arahan Kerja
{{ $penugasan->deskripsi }}
@endif
Pemberi Tugas (Atasan)
{{ strtoupper(substr($penugasan->atasan?->nama_lengkap ?? 'A', 0, 1)) }}
{{ $penugasan->atasan?->nama_lengkap }}
{{ $penugasan->atasan?->jabatan?->nama_jabatan ?? 'Atasan Langsung' }}
Jadwal & Batas Waktu
Mulai: {{ $penugasan->tanggal_mulai ? $penugasan->tanggal_mulai->format('d M Y') : '-' }}
Tenggat: {{ $penugasan->tenggat_waktu ? $penugasan->tenggat_waktu->format('d M Y') : 'Tidak ditentukan' }} @if($penugasan->isTerlambat()) Terlambat @endif
Tim Pelaksana ({{ $penugasan->pegawais->count() }} Orang)
@foreach($penugasan->pegawais as $pgw) @php $relasiAnggota = $penugasan->anggota->firstWhere('pegawai_id', $pgw->id); $isLead = $relasiAnggota?->peran === 'penanggung_jawab'; @endphp
{{ strtoupper(substr($pgw->nama_lengkap, 0, 1)) }}
@endforeach
@php $leadAnggota = $penugasan->anggota->firstWhere('peran', 'penanggung_jawab'); $leadPegawai = $leadAnggota ? $penugasan->pegawais->firstWhere('id', $leadAnggota->pegawai_id) : null; @endphp Lead: {{ $leadPegawai?->nama_lengkap ?? $penugasan->pegawais->first()?->nama_lengkap }}
@if($penugasan->tipe_media === 'spreadsheet')

Google Spreadsheet (Sheets)

Tugas ini dikerjakan secara langsung di aplikasi resmi Google Sheets

@if($penugasan->status !== 'selesai') @endif
@if($penugasan->tautan_eksternal)
Tautan Google Sheets Siap Digunakan
{{ $penugasan->tautan_eksternal }}
Buka di Google Sheets
Pratinjau Lembar Kerja
@else

Tautan Google Sheets Belum Ditentukan

Silakan masukkan link Google Spreadsheet yang telah dibagikan agar anggota tim dapat membukanya langsung.

@endif
@elseif($penugasan->tipe_media === 'dokumen_online')

Google Docs (Dokumen)

Tugas ini dikerjakan secara langsung di aplikasi resmi Google Docs

@if($penugasan->status !== 'selesai') @endif
@if($penugasan->tautan_eksternal)
Tautan Google Docs Siap Digunakan
{{ $penugasan->tautan_eksternal }}
Buka di Google Docs
Pratinjau Dokumen
@else

Tautan Google Docs Belum Ditentukan

Silakan masukkan link Google Docs yang telah dibagikan agar anggota tim dapat membukanya langsung.

@endif
@else

Berkas & Dokumen Tugas

Total {{ $penugasan->dokumen->count() }} berkas terunggah

@if($penugasan->status !== 'selesai') @endif
@if($penugasan->status !== 'selesai')
@csrf
@endif @if($penugasan->dokumen->isNotEmpty())
@foreach($penugasan->dokumen as $dok) @endforeach
Nama Berkas Ukuran Pengunggah Keterangan Aksi
@php $ext = strtolower($dok->tipe_file); $icon = 'file'; $iconColor = 'text-slate-400'; if (in_array($ext, ['pdf'])) { $icon = 'file-text'; $iconColor = 'text-red-500'; } elseif (in_array($ext, ['xls', 'xlsx', 'csv'])) { $icon = 'sheet'; $iconColor = 'text-emerald-500'; } elseif (in_array($ext, ['doc', 'docx'])) { $icon = 'file-text'; $iconColor = 'text-blue-500'; } elseif (in_array($ext, ['jpg', 'jpeg', 'png'])) { $icon = 'image'; $iconColor = 'text-purple-500'; } elseif (in_array($ext, ['zip', 'rar'])) { $icon = 'archive'; $iconColor = 'text-amber-500'; } @endphp {{ $dok->nama_file_asli }} {{ $dok->ukuran_format }}
{{ $dok->pengunggah?->nama_lengkap ?? 'Pegawai' }}
{{ $dok->created_at->format('d/m/Y H:i') }}
{{ $dok->keterangan ?: '-' }} Unduh @if($penugasan->status !== 'selesai' && ($isAtasanTugas || (int)$dok->diunggah_oleh === (int)$pegawai->id))
@csrf @method('DELETE')
@endif
@else

Belum ada dokumen yang diunggah

Anggota tim dapat mengunggah berkas pekerjaan melalui tombol di atas.

@endif
@endif

Status Pelaksana Tim

@foreach($penugasan->anggota as $itemAnggota) @php $pgw = $itemAnggota->pegawai; $badgeBg = match($itemAnggota->status_kontribusi) { 'selesai' => 'bg-emerald-50 text-emerald-700 border-emerald-200', 'sedang_mengerjakan' => 'bg-blue-50 text-blue-700 border-blue-200', default => 'bg-slate-50 text-slate-600 border-slate-200' }; $labelKontribusi = match($itemAnggota->status_kontribusi) { 'selesai' => 'Selesai', 'sedang_mengerjakan' => 'Sedang Mengerjakan', default => 'Belum Mulai' }; @endphp
{{ strtoupper(substr($pgw?->nama_lengkap ?? 'P', 0, 1)) }}
{{ $pgw?->nama_lengkap }}
{{ $itemAnggota->peran === 'penanggung_jawab' ? '⭐ Penanggung Jawab' : 'Kolaborator' }}
{{ $labelKontribusi }}
@endforeach

Diskusi & Catatan

{{ $penugasan->komentar->count() }}
@forelse($penugasan->komentar as $kom) @php $isMe = (int) $kom->pegawai_id === (int) $pegawai->id; $isSystemLog = Str::startsWith($kom->pesan, ['📌', '✅', '⚠️', '🔗']); @endphp @if($isSystemLog)
{{ $kom->pesan }}
{{ $kom->created_at->format('d M H:i') }}
@else
{{ $kom->pegawai?->nama_lengkap ?? 'Pegawai' }} • {{ $kom->created_at->diffForHumans() }}
{{ $kom->pesan }}
@if($kom->lampiran) @endif
@endif @empty

Belum ada percakapan pada tugas ini.

@endforelse
@csrf
@if($isAtasanTugas) @endif @push('scripts') @endpush @endsection