PT Multi Spunindo Jaya Tbk MSJ E-Permit ================================================== Yth. {{ $recipientName }}, @php $messages = [ 'submitted' => 'Terdapat pengajuan permit baru yang memerlukan persetujuan Anda.', 'resubmitted' => 'Permit telah direvisi dan diajukan ulang untuk persetujuan Anda.', 'approved_picker' => 'Permit telah disetujui oleh PIC Kerja.', 'approved_picare' => 'Permit telah disetujui oleh PIC Area.', 'approved_k3' => 'Permit telah disetujui oleh K3 dan sudah berlaku dan mulai berlaku sampai dengan ' . (isset($permitData->masa_berlaku) ? \Carbon\Carbon::parse($permitData->masa_berlaku)->format('d M Y') : 'tanggal tidak tersedia') . '.', 'revision_picker' => 'Pengajuan permit Anda terdapat REVISI DARI TIM PIC KERJA. Silakan lakukan penyesuaian sesuai catatan di bawah ini.', 'revision_picare' => 'Pengajuan permit Anda terdapat REVISI DARI TIM PIC AREA. Silakan lakukan penyesuaian sesuai catatan di bawah ini.', 'revision_k3' => 'Pengajuan permit Anda terdapat REVISI DARI TIM K3. Silakan lakukan penyesuaian sesuai catatan di bawah ini.', 'rejected_picker' => 'Mohon maaf, permit ditolak oleh PIC Kerja.', 'rejected_picare' => 'Mohon maaf, permit ditolak oleh PIC Area.', 'rejected_k3' => 'Mohon maaf, permit ditolak oleh K3.', 'completed' => 'Permit telah dinyatakan SELESAI.', 'completed_picker' => 'Permit telah dinyatakan SELESAI.', 'completed_picare' => 'Permit telah dinyatakan SELESAI.', 'completed_k3' => 'Permit telah dinyatakan SELESAI.', 'need_approval' => 'Terdapat permit yang memerlukan persetujuan Anda.', // Completion approval flow messages 'completion_requested' => 'Vendor telah mengajukan PERMOHONAN SELESAI untuk permit ini. Silakan lakukan verifikasi.', 'completion_resubmitted' => 'Vendor telah MENGAJUKAN ULANG PERMOHONAN SELESAI untuk permit ini setelah ditolak sebelumnya. Silakan lakukan verifikasi kembali.', 'completion_approved_picker' => 'Permohonan selesai permit telah disetujui oleh PIC Kerja.', 'completion_approved_picare' => 'Permohonan selesai permit telah disetujui oleh PIC Area.', 'completion_approved_k3' => 'Permit telah dinyatakan SELESAI oleh K3.', 'completion_rejected_picker' => 'Permohonan selesai permit BELUM DISETUJUI oleh PIC Kerja. Silakan periksa catatan di bawah ini.', 'completion_rejected_picare' => 'Permohonan selesai permit BELUM DISETUJUI oleh PIC Area. Silakan periksa catatan di bawah ini.', 'completion_rejected_k3' => 'Permohonan selesai permit BELUM DISETUJUI oleh K3. Silakan periksa catatan di bawah ini.', 'completion_need_approval' => 'Terdapat permit dengan PERMOHONAN SELESAI yang memerlukan persetujuan Anda.', ]; $messageText = $messages[$notificationType] ?? 'Ada update terkait permit.'; $revisionTypes = ['revision_picker', 'revision_picare', 'revision_k3']; $isRevision = in_array($notificationType, $revisionTypes); $vendorUser = isset($permitData->user_create) ? \Illuminate\Support\Facades\DB::table('users')->where('id', $permitData->user_create)->first() : null; $vendorName = $vendorUser ? trim($vendorUser->firstname . ' ' . $vendorUser->lastname) : 'Vendor'; $vendorRoleKey = $vendorUser && isset($vendorUser->idroles) ? strtolower($vendorUser->idroles) : ''; $vendorType = 'Tidak diketahui'; if ($vendorRoleKey !== '' && strpos($vendorRoleKey, 'veneks') !== false) { $vendorType = 'External'; } elseif ($vendorRoleKey !== '' && strpos($vendorRoleKey, 'venint') !== false) { $vendorType = 'Internal'; } @endphp {{ $messageText }} -------------------------------------------------- Detail Permit -------------------------------------------------- Nomor Permit: {{ $permitData->id }} Vendor: {{ $vendorName }} ({{ $vendorType }}) @if(isset($permitData->uraian_pekerjaan)) Uraian Pekerjaan: {{ $permitData->uraian_pekerjaan }} @endif @if(isset($permitData->lokasi_detail)) Lokasi: {{ $permitData->lokasi_detail }} @endif @if(isset($permitData->mulai_kerja)) Tanggal Mulai: {{ \Carbon\Carbon::parse($permitData->mulai_kerja)->format('d M Y') }} @endif @if(isset($permitData->masa_berlaku)) Masa Berlaku: {{ \Carbon\Carbon::parse($permitData->masa_berlaku)->format('d M Y') }} @endif Status: {{ isset($permitData->status) ? ['P' => 'Pending', 'E' => 'Draft', 'R' => 'Revisi', 'T' => 'Ditolak', 'B' => 'Berlaku', 'S' => 'Selesai'][$permitData->status] ?? $permitData->status : 'Pending' }} @php // Ambil data PIC dan K3 untuk menampilkan status approval $picKerjaUser = isset($permitData->pic_kerja) ? \Illuminate\Support\Facades\DB::table('users')->where('id', $permitData->pic_kerja)->first() : null; $picAreaUser = isset($permitData->pic_area) ? \Illuminate\Support\Facades\DB::table('users')->where('id', $permitData->pic_area)->first() : null; // Status approval labels $approvalLabels = [ 'P' => 'Pending', 'TR' => 'Approved', 'T' => 'Rejected', 'R' => 'Revisi', ]; // Status untuk completion approval $completionLabels = [ 'P' => 'Pending', 'TR' => 'Approved', 'T' => 'Belum Disetujui', ]; // Tentukan apakah ini completion flow atau approval flow $completionTypes = ['completion_requested', 'completion_resubmitted', 'completion_approved_picker', 'completion_approved_picare', 'completion_approved_k3', 'completion_rejected_picker', 'completion_rejected_picare', 'completion_rejected_k3', 'completion_need_approval']; $isCompletionFlow = in_array($notificationType, $completionTypes); // Tipe yang perlu menampilkan catatan (revisi dan rejection) $noteTypes = ['revision_picker', 'revision_picare', 'revision_k3', 'rejected_picker', 'rejected_picare', 'rejected_k3', 'completion_rejected_picker', 'completion_rejected_picare', 'completion_rejected_k3']; $showNote = in_array($notificationType, $noteTypes); @endphp @if($isRevision && $senderName && $senderRole) Direvisi oleh: {{ $senderName }} ({{ $senderRole }}) @endif @if($isCompletionFlow) Status Persetujuan Selesai: PIC Kerja: {{ strtoupper($picKerjaUser ? $picKerjaUser->firstname . ' ' . $picKerjaUser->lastname : '-') }} - {{ strtoupper($completionLabels[$permitData->picker_setuju_selesai ?? 'P'] ?? $completionLabels['P']) }} PIC Area: {{ strtoupper($picAreaUser ? $picAreaUser->firstname . ' ' . $picAreaUser->lastname : '-') }} - {{ strtoupper($completionLabels[$permitData->picare_setuju_selesai ?? 'P'] ?? $completionLabels['P']) }} K3: {{ strtoupper($completionLabels[$permitData->k3_setuju_selesai ?? 'P'] ?? $completionLabels['P']) }} @else @php // ===================================================================== // PERBAIKAN: Tentukan badge berdasarkan kolom STATUS permit, bukan kolom approval individual // Kolom status permit: E=Draft, P=Pending, B=Berlaku, T=Ditolak, S=Selesai, R=Revisi, C=Completed // Kolom approval individual (approval_pic_kerja, dll) hanya: P=Pending, T=Tolak, TR=Terima // ===================================================================== $permitStatus = $permitData->status ?? 'P'; // Ambil nilai approval dari database $picKerjaApprovalRaw = $permitData->approval_pic_kerja ?? 'P'; $picAreaApprovalRaw = $permitData->approval_pic_area ?? 'P'; $k3ApprovalRaw = $permitData->approval_k3 ?? 'P'; // Tentukan badge yang benar berdasarkan STATUS PERMIT (bukan approval individual) $picKerjaApproval = $picKerjaApprovalRaw; $picAreaApproval = $picAreaApprovalRaw; $k3Approval = $k3ApprovalRaw; // Override badge berdasarkan status permit if ($permitStatus === 'R') { // Status permit = Revisi, semua approval 'T' harus ditampilkan sebagai 'R' (Revision) if ($picKerjaApprovalRaw === 'T') $picKerjaApproval = 'R'; if ($picAreaApprovalRaw === 'T') $picAreaApproval = 'R'; if ($k3ApprovalRaw === 'T') $k3Approval = 'R'; } elseif ($permitStatus === 'T') { // Status permit = Ditolak, semua approval 'T' tetap 'T' (Rejected) // Tidak perlu override, biarkan seperti aslinya } elseif ($permitStatus === 'P') { // Status permit = Pending, cek dari notificationType untuk menentukan badge // Ini untuk kasus resubmitted dimana status sudah kembali ke Pending $revisionTypes = ['revision_picker', 'revision_picare', 'revision_k3', 'resubmitted']; if (in_array($notificationType, $revisionTypes)) { if ($picKerjaApprovalRaw === 'T') $picKerjaApproval = 'R'; if ($picAreaApprovalRaw === 'T') $picAreaApproval = 'R'; if ($k3ApprovalRaw === 'T') $k3Approval = 'R'; } } @endphp Status Persetujuan: PIC Kerja: {{ strtoupper($picKerjaUser ? $picKerjaUser->firstname . ' ' . $picKerjaUser->lastname : '-') }} - {{ strtoupper($approvalLabels[$picKerjaApproval] ?? $approvalLabels['P']) }} PIC Area: {{ strtoupper($picAreaUser ? $picAreaUser->firstname . ' ' . $picAreaUser->lastname : '-') }} - {{ strtoupper($approvalLabels[$picAreaApproval] ?? $approvalLabels['P']) }} K3: {{ strtoupper($approvalLabels[$k3Approval] ?? $approvalLabels['P']) }} @endif @if($note && $showNote) -------------------------------------------------- Catatan: {{ $note }} @endif -------------------------------------------------- Lihat Detail Permit: {{ $permitUrl }} Klik link di atas untuk melihat detail permit dan melakukan proses approval (jika diperlukan). Apabila terdapat pertanyaan lebih lanjut, silakan menghubungi tim K3. -------------------------------------------------- PT Multi Spunindo Jaya Tbk MSJ E-Permit Email ini dikirim secara otomatis, mohon tidak membalas email ini. © {{ date('Y') }} PT Multi Spunindo Jaya Tbk. All Rights Reserved.