@extends('layouts.main') @section('title', 'Applicant Assessment') @section('css') @php $dashboardCssPath = public_path('assets/css/dashboard.css'); $dashboardCssVersion = file_exists($dashboardCssPath) ? filemtime($dashboardCssPath) : time(); $sweetAlertCssPath = public_path('assets/vendor/sweetalert2/sweetalert2.min.css'); $sweetAlertCssVersion = file_exists($sweetAlertCssPath) ? filemtime($sweetAlertCssPath) : time(); @endphp @endsection @section('navbarTitle', 'Applicant Assessment') @section('content') @php $hrCriteria = $hrCriteria ?? []; $hrInterviewScoreDisplay = number_format((float) ($hrInterviewScore ?? 0), 0) . ' / 100'; $technicalCriteria = $technicalCriteria ?? []; $technicalTestScoreDisplay = number_format((float) ($technicalTestScore ?? 0), 0) . ' / 100'; $userCriteria = $userCriteria ?? []; $userInterviewScoreDisplay = number_format((float) ($userInterviewScore ?? 0), 0) . ' / 100'; $technicalTestNotes = $technicalTestNotes ?? ''; $userInterviewNotes = $userInterviewNotes ?? ''; $assessmentPermissions = $assessmentPermissions ?? []; $canEditHrInterview = (bool) ($assessmentPermissions['hr_interview'] ?? false); $canManageAssessmentTest = (bool) ($assessmentPermissions['assessment_test'] ?? false); $canEditTechnicalTest = (bool) ($assessmentPermissions['technical_test'] ?? false); $canEditUserInterview = (bool) ($assessmentPermissions['user_interview'] ?? false); $canEditFinalAssessment = (bool) ($assessmentPermissions['final_assessment'] ?? false); $finalAssessment = $finalAssessment ?? [ 'skill_note' => '', 'communication_note' => '', 'experience_note' => '', 'tools_note' => '', 'final_note' => '', 'final_decision' => '', ]; $finalDecision = old('final_decision', $finalAssessment['final_decision'] ?? ''); $ratingLabels = [ 1 => 'Sangat Kurang', 2 => 'Kurang', 3 => 'Cukup', 4 => 'Baik', 5 => 'Sangat Baik', ]; $generatedAssessmentUploadUrl = session('assessment_upload_url', $assessmentUploadUrl); $assessmentUploaded = filled($assessmentFileUrl); $technicalTestUploadRequest = $technicalTestUploadRequest ?? null; $generatedTechnicalTestUploadUrl = session('technical_test_upload_url', $technicalTestUploadUrl ?? null); $technicalTestUploaded = filled($technicalTestFileUrl ?? null); $technicalTestFileIsImage = str_starts_with((string) ($technicalTestDocument?->mime_type ?? ''), 'image/'); @endphp

{{ $applicant->full_name }}

{{ $applicant->jobVacancy?->name ?? '-' }} | {{ $applicant->statusLabel() }}

@if (session('status')) @include('partials.swal-alert', ['type' => 'success', 'message' => session('status')]) @endif @if (session('error')) @include('partials.swal-alert', ['type' => 'error', 'message' => session('error')]) @endif @if ($errors->any()) @include('partials.swal-alert', ['type' => 'error', 'message' => $errors->first()]) @endif
HR Interview
{{ $hrInterviewScoreDisplay }}
Assessment Test
{{ $assessmentUploaded ? 'Sudah Upload' : 'Belum Upload' }}
Technical Test
{{ $technicalTestScoreDisplay }}
Interview User
{{ $userInterviewScoreDisplay }}
Form Interview HR
Evaluasi dasar, komunikasi, motivasi, dan culture fit.
@foreach ($hrCriteria as $criteria)
{{ $criteria['label'] }}
Bobot {{ $criteria['weight_label'] ?? $criteria['weight'].'%' }}
    @for ($rating = 1; $rating <= 5; $rating++)
  • @endfor
@endforeach
Assessment Test
Area lampiran hasil tes administrasi atau psikologi dasar.
@if ($canManageAssessmentTest)
@csrf
@if ($generatedAssessmentUploadUrl) @endif @if ($assessmentUploadRequest instanceof \App\Models\ApplicantUploadRequest)
@csrf @method('PATCH')
@endif
@endif
@if ($assessmentUploaded)
Hasil assessment sudah diupload
{{ $assessmentDocument?->original_name ?: basename((string) $assessmentDocument?->file_path) }}
@else
Upload hasil assessment
@endif
Lampiran Technical Test
Area lampiran hasil pengerjaan tes teknis kandidat.
@if ($canEditTechnicalTest)
@csrf
@if ($generatedTechnicalTestUploadUrl) @endif @if ($technicalTestUploadRequest instanceof \App\Models\ApplicantTechnicalTestUploadRequest)
@csrf @method('PATCH')
@endif
@endif
@if ($technicalTestUploaded) @if ($technicalTestFileIsImage) @else @endif
Hasil technical test sudah diupload
@else
Upload hasil technical test
@endif
Technical Test
Kriteria Tes Teknis mengikuti bobot dari lowongan yang dilamar.
@forelse ($technicalCriteria as $criteria)
{{ $criteria['label'] }}
Bobot {{ $criteria['weight_label'] ?? $criteria['weight'].'%' }}
    @for ($rating = 1; $rating <= 5; $rating++)
  • @endfor
@empty
Kriteria Tes Teknis belum diset pada lowongan ini.
@endforelse
Interview User
Evaluasi teknis lanjutan oleh atasan divisi atau user terkait.
@foreach ($userCriteria as $criteria) @if (($criteria['is_nested'] ?? false) && ! empty($criteria['children']))
{{ $criteria['label'] }}
Bobot {{ $criteria['weight_label'] ?? $criteria['weight'].'%' }}
{{ $criteria['weighted_score_display'] ?? '0.00 / '.$criteria['weight'] }} poin
@foreach ($criteria['children'] as $childCriteria)
{{ $childCriteria['label'] }}
Bobot {{ $childCriteria['weight_label'] ?? $childCriteria['weight'].'%' }}
    @for ($rating = 1; $rating <= 5; $rating++)
  • @endfor
@endforeach @else
{{ $criteria['label'] }}
Bobot {{ $criteria['weight_label'] ?? $criteria['weight'].'%' }}
    @for ($rating = 1; $rating <= 5; $rating++)
  • @endfor
@endif @endforeach
@csrf
Penilaian Akhir
Ringkasan nilai, summary matrix, dan keputusan akhir kandidat.
Summary Matrix
Rangkum poin penting kandidat tanpa mengulang detail skor.
Keputusan Akhir
Pilih keputusan akhir kandidat.
@if ($canEditFinalAssessment)
@endif
@endsection @section('script') @endsection