Surat Keluar

Kelola dan monitor surat keluar dengan approval berjenjang

@if(auth()->user()->isOperator() || auth()->user()->isOperatorTU()) Buat Surat Keluar @endif
{{-- Backdate Slot Calendar - hanya untuk Operator/PAURTUUD SETUM --}} {{-- TEMPORARILY HIDDEN - uncomment when ready to use --}} @if(false && auth()->user()->isSETUM() && (auth()->user()->isOperatorTU() || auth()->user()->isTU()))
Slot Backdate
@foreach($kategoris as $kategori) @endforeach
Pilih kategori terlebih dahulu untuk melihat slot backdate
@endif
Filter & Pencarian
@php // Default to 'perlu_aksi_saya' only if no status parameter in request // If status parameter exists (even empty), use that value $currentStatus = request()->has('status') ? (request('status') ?? '') : 'perlu_aksi_saya'; @endphp
@php $currentPerPage = request('per_page', 10); @endphp
Reset @if(request()->hasAny(['search', 'status', 'kategori', 'bulan', 'tahun'])) Filter Aktif @endif
Menampilkan {{ $suratKeluars->firstItem() ?? 0 }} - {{ $suratKeluars->lastItem() ?? 0 }} dari {{ $suratKeluars->total() }} surat keluar
Export Excel Export PDF
Daftar Surat Keluar
@forelse($suratKeluars as $index => $surat) @php $status = $surat['status'] ?? ''; $kategori = $surat['kategori'] ?? ''; $statusBadge = match($status) { 'draft' => 'bg-secondary bg-opacity-10 text-secondary', 'revision_required' => 'bg-danger bg-opacity-10 text-danger', 'pending_approval' => 'bg-warning bg-opacity-10 text-warning', 'pending_signature', 'pending_pangwapang_signature' => 'bg-info bg-opacity-10 text-info', 'pending_tu_forward', 'pending_paurmin_forward', 'pending_kasmin_forward', 'pending_wapang_approval' => 'bg-warning bg-opacity-10 text-warning', 'pending_numbering', 'pending_setum_numbering' => 'bg-primary bg-opacity-10 text-primary', 'pending_send' => 'bg-primary bg-opacity-10 text-primary', 'sent' => 'bg-success bg-opacity-10 text-success', 'completed' => 'bg-success bg-opacity-10 text-success', default => 'bg-secondary bg-opacity-10 text-secondary', }; $statusIcon = match($status) { 'draft' => 'bi-file-earmark', 'revision_required' => 'bi-exclamation-triangle', 'pending_approval' => 'bi-hourglass-split', 'pending_signature', 'pending_pangwapang_signature' => 'bi-pen', 'pending_tu_forward', 'pending_paurmin_forward', 'pending_kasmin_forward' => 'bi-arrow-right-circle', 'pending_wapang_approval' => 'bi-shield-check', 'pending_numbering', 'pending_setum_numbering' => 'bi-123', 'pending_send' => 'bi-send', 'sent' => 'bi-check-circle', 'completed' => 'bi-check-circle-fill', default => 'bi-circle', }; $statusLabel = match($status) { 'draft' => 'Draf', 'revision_required' => 'Perlu Revisi', 'pending_approval' => 'Menunggu Persetujuan', 'pending_signature' => 'Menunggu TTD', 'pending_pangwapang_signature' => 'Menunggu TTD Pangwapang', 'pending_tu_forward' => 'Menunggu Diteruskan TU', 'pending_op_smin_forward' => 'Menunggu Diteruskan Op SMIN', 'pending_paurmin_forward' => 'Menunggu Diteruskan PAURMIN', 'pending_kasmin_forward' => 'Menunggu Diteruskan KASMIN', 'pending_wapang_approval' => 'Menunggu Persetujuan Wapang', 'pending_numbering' => 'Menunggu Penomoran TU', 'pending_setum_numbering' => 'Menunggu Penomoran SETUM', 'pending_send' => 'Siap Dikirim', 'sent' => 'Terkirim', 'completed' => 'Selesai', default => ucfirst($status), }; @endphp @empty @endforelse
No Nomor Draft Nomor Surat Tanggal Perihal Pembuat Penanda Tangan Status Aksi
{{ $suratKeluars->firstItem() + $index }} @if($surat['is_kilat'] ?? false) KILAT {{ $surat['nomor_draft'] ?? '-' }} @else {{ $surat['nomor_draft'] ?? '-' }} @endif @if($surat['nomor_surat'] ?? null) {{ $surat['nomor_surat'] }} @else - @endif
{{ isset($surat['tanggal_surat']) ? \Carbon\Carbon::parse($surat['tanggal_surat'])->format('d/m/Y') : '-' }} @if($surat['tanggal_surat'] ?? null) {{ \Carbon\Carbon::parse($surat['created_at'])->format('H:i') }} WIB @endif
{{ $surat['perihal'] ?? '-' }} @if($surat['creator'] ?? null) {{ $surat['creator']['jabatan'] ?? $surat['creator']['name'] ?? '-' }} @else - @endif @if($surat['finalSigner'] ?? null) {{ $surat['finalSigner']['jabatan'] ?? $surat['finalSigner']['name'] ?? '-' }} @else - @endif {{ $statusLabel }} {{-- Show waiting at which position --}} @if($status === 'pending_approval') @php $lowestApprover = collect($surat['approvals'] ?? []) ->where('status', 'pending') ->sortBy('level') ->first(); @endphp @if($lowestApprover)
di {{ $lowestApprover['approver_nama'] ?? '-' }}
@endif @elseif(in_array($status, ['pending_signature']) && ($surat['finalSigner'] ?? null))
di {{ $surat['finalSigner']['jabatan'] ?? $surat['finalSigner']['name'] ?? '-' }}
@elseif($status === 'pending_tu_forward')
di TU {{ $surat['creator']['satuan'] ?? '' }}
@elseif($status === 'pending_paurmin_forward')
di Operator SMIN
@elseif($status === 'pending_kasmin_forward')
di KASMIN
@elseif($status === 'pending_wapang_approval')
di Wakil Panglima
@elseif($status === 'pending_pangwapang_signature' && ($surat['finalSigner'] ?? null))
di {{ $surat['finalSigner']['jabatan'] ?? 'Pangwapang' }}
@elseif($status === 'pending_ses_it_review')
di SES IT
@elseif($status === 'pending_numbering') @php $responsibleTuJabatan = $surat['tuProcessor']['jabatan'] ?? null; @endphp
@if($responsibleTuJabatan) di {{ $responsibleTuJabatan }} @else di Operator TU {{ $surat['creator']['satuan'] ?? '' }} @endif
@elseif($status === 'pending_setum_numbering')
di SETUM
@endif
@if($status === 'draft' && ($surat['created_by'] ?? null) == auth()->id()) @endif
Tidak ada data surat keluar

@if(request()->hasAny(['search', 'status', 'kategori', 'tahun'])) Tidak ada data yang sesuai dengan filter yang dipilih. Reset filter @else Belum ada surat keluar yang dibuat. @if(auth()->user()->isOperator() || auth()->user()->isOperatorTU()) Buat surat baru @endif @endif

@if($suratKeluars->hasPages()) @endif
@push('styles') @endpush @push('scripts') @endpush