@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100']) @section('content') @php /* |-------------------------------------------------------------------------- | AMBIL DATA BEASISWA |-------------------------------------------------------------------------- */ try { $id = decrypt($idencrypt); $beasiswa = DB::table('trs_pengajuan_beasiswa as tb') ->leftJoin('mst_periode_beasiswa as periode', 'tb.id_periode', '=', 'periode.id_periode') ->leftJoin('mst_karyawan as kar', 'tb.nik', '=', 'kar.nik') ->leftJoin('mst_bank as bank', 'tb.id_bank', '=', 'bank.id_bank') ->leftJoin('mst_department as dept', 'kar.department', '=', 'dept.id') ->leftJoin('trs_lampiran as lam', 'tb.id_trs_beasiswa', '=', 'lam.id_trs_beasiswa') ->select( 'tb.id_trs_beasiswa as id_pengajuan', 'lam.id_trs_beasiswa as id_lampiran', 'tb.*', 'periode.nama_periode as nama_periode', 'kar.*', 'lam.*', 'bank.name as nama_bank', 'bank.alias_bank', 'bank.jumlah_digit_rek', 'bank.id_bank', 'dept.name as dept', ) ->where('tb.id_trs_beasiswa', $id) ->first(); } catch (\Throwable $e) { $beasiswa = null; } /* |-------------------------------------------------------------------------- | DEFAULT VARIABLE |-------------------------------------------------------------------------- | | Dibuat default supaya Blade tidak pernah kena | Undefined variable. |-------------------------------------------------------------------------- */ $canEditForm = false; $canApprove = false; $canRequestRevision = false; $isWaitingRevision = false; $isRevisionEmailFailed = false; $isHrdPending = false; $isHrdRejected = false; $revisionButtonText = 'Ajukan Revisi'; $revisionStatus = 'none'; $revisionEmailSent = false; $trsStatus = ''; $currentRole = strtolower(trim((string) ($user->idroles ?? ''))); /* |-------------------------------------------------------------------------- | HITUNG HAK AKSI |-------------------------------------------------------------------------- */ if ($beasiswa) { /* |-------------------------------------------------------------------------- | BASIC |-------------------------------------------------------------------------- */ $dmenu = 'trbea'; $idencrypt = encrypt($beasiswa->id_pengajuan); $url_menu = '/trbea'; /* |-------------------------------------------------------------------------- | STATUS |-------------------------------------------------------------------------- */ $revisionStatus = strtolower(trim((string) ($beasiswa->revision_status ?? 'none'))); $trsStatus = strtolower(trim((string) ($beasiswa->trs_status ?? ''))); /* |-------------------------------------------------------------------------- | STATUS EMAIL REVISI |-------------------------------------------------------------------------- */ $revisionEmailSent = !empty($beasiswa->revision_email_sent_at); /* |-------------------------------------------------------------------------- | MENUNGGU REVISI |-------------------------------------------------------------------------- */ $isWaitingRevision = $revisionStatus === 'requested' && $revisionEmailSent; /* |-------------------------------------------------------------------------- | EMAIL REVISI GAGAL |-------------------------------------------------------------------------- */ $isRevisionEmailFailed = $revisionStatus === 'requested' && !$revisionEmailSent; /* |-------------------------------------------------------------------------- | HRD MASIH PENDING |-------------------------------------------------------------------------- */ $isHrdPending = (string) ($beasiswa->is_approved_by_hrd ?? '0') === '0' && (string) ($beasiswa->isactive ?? '1') === '1'; /* |-------------------------------------------------------------------------- | HRD SUDAH REJECT |-------------------------------------------------------------------------- | | Tetap boleh Ajukan Revisi untuk kasus | sebelumnya salah memilih Reject. |-------------------------------------------------------------------------- */ $isHrdRejected = (string) ($beasiswa->is_approved_by_hrd ?? '0') === '2' && $trsStatus === 'canceled' && (string) ($beasiswa->isactive ?? '1') === '0'; /* |-------------------------------------------------------------------------- | BOLEH AJUKAN REVISI |-------------------------------------------------------------------------- */ $canRequestRevision = in_array($currentRole, ['hrdcek', 'admins'], true) && ($isHrdPending || $isHrdRejected) && (string) ($beasiswa->is_finished_by_finance ?? '0') !== '1' && (string) ($beasiswa->is_rejected_by_finance ?? '0') !== '1' && !$isWaitingRevision && $revisionStatus !== 'submitted'; /* |-------------------------------------------------------------------------- | LABEL TOMBOL REVISI |-------------------------------------------------------------------------- */ if ($isRevisionEmailFailed) { $revisionButtonText = 'Kirim Ulang Permintaan Revisi'; } elseif ($isHrdRejected) { $revisionButtonText = 'Ajukan Revisi'; } else { $revisionButtonText = 'Ajukan Revisi'; } /* |-------------------------------------------------------------------------- | BOLEH EDIT / SIMPAN |-------------------------------------------------------------------------- | | Kalau sedang menunggu revisi user: | - tidak boleh edit | - tidak boleh simpan |-------------------------------------------------------------------------- */ $canEditForm = (string) ($authorize->edit ?? '0') === '1' && !$isWaitingRevision; /* |-------------------------------------------------------------------------- | APPROVAL |-------------------------------------------------------------------------- */ if ($currentRole === 'admins') { $canApprove = (string) $beasiswa->is_approved_by_hrd === '0' || ((string) $beasiswa->is_approved_by_hrd === '1' && (string) $beasiswa->is_approved_by_headhrd === '0') || ((string) $beasiswa->is_approved_by_headhrd === '1' && (string) $beasiswa->is_approved_by_sp === '0'); } elseif ($currentRole === 'hrdcek' && (string) $beasiswa->is_approved_by_hrd === '0') { $canApprove = true; } elseif ( $currentRole === 'headhr' && (string) $beasiswa->is_approved_by_hrd === '1' && (string) $beasiswa->is_approved_by_headhrd === '0' ) { $canApprove = true; } elseif ( $currentRole === 'sp' && (string) $beasiswa->is_approved_by_headhrd === '1' && (string) $beasiswa->is_approved_by_sp === '0' ) { $canApprove = true; } /* |-------------------------------------------------------------------------- | LOCK APPROVAL SELAMA REVISI |-------------------------------------------------------------------------- */ if ($isWaitingRevision) { $canApprove = false; } } @endphp @include('layouts.navbars.auth.topnav', ['title' => ''])