@php $photoDocument = $candidate->documentUploads->where('document_type', 'photo')->first(); $photoPath = null; if ($photoDocument) { $fullPath = storage_path('app/public/' . $photoDocument->file_path); if (file_exists($fullPath)) { $photoPath = $fullPath; } } @endphp
@if($photoPath)
Foto
@else
@endif

{{ $candidate->personalData->full_name ?? 'Data Tidak Tersedia' }}

{{ $candidate->personalData->email ?? '-' }} | {{ $candidate->personalData->phone_number ?? '-' }}
Kode: {{ $candidate->candidate_code }} | Status: {{ ucfirst($candidate->application_status) }} | {{ $candidate->created_at->format('d/m/Y') }}

1. Informasi Posisi

Posisi yang Dilamar: {{ $candidate->position_applied ?: '-' }}
Gaji Harapan: {{ $candidate->expected_salary ? 'Rp ' . number_format($candidate->expected_salary, 0, ',', '.') : '-' }}

2. Data Pribadi

Nama Lengkap: {{ $candidate->personalData->full_name ?? '-' }}
Tempat, Tgl Lahir: {{ $candidate->personalData->birth_place ?? '-' }}, {{ $candidate->personalData->birth_date ? \Carbon\Carbon::parse($candidate->personalData->birth_date)->format('d/m/Y') : '-' }}
Jenis Kelamin: {{ $candidate->personalData->gender ?? '-' }}
Agama: {{ $candidate->personalData->religion ?? '-' }}
Status Pernikahan: {{ $candidate->personalData->marital_status ?? '-' }}
Suku Bangsa: {{ $candidate->personalData->ethnicity ?? '-' }}
Email: {{ $candidate->personalData->email ?? '-' }}
No. Telepon: {{ $candidate->personalData->phone_number ?? '-' }}
Telepon Alternatif: {{ $candidate->personalData->phone_alternative ?? '-' }}
Tinggi/Berat: {{ $candidate->personalData->height_cm ?? '-' }} cm / {{ $candidate->personalData->weight_kg ?? '-' }} kg
Status Vaksinasi: {{ $candidate->personalData->vaccination_status ?? '-' }}

Alamat

Alamat Saat Ini: {{ $candidate->personalData->current_address ?? '-' }} ({{ $candidate->personalData->current_address_status ?? '-' }})
Alamat KTP: {{ $candidate->personalData->ktp_address ?? '-' }}
@if($candidate->familyMembers->count() > 0)

3. Data Keluarga

@foreach($candidate->familyMembers as $member) @endforeach
Hubungan Nama Usia Pendidikan Pekerjaan
{{ $member->relationship ?? '-' }} {{ $member->name ?? '-' }} {{ $member->age ? $member->age . ' th' : '-' }} {{ $member->education ?? '-' }} {{ $member->occupation ?? '-' }}
@endif

4. Latar Belakang Pendidikan

@if($candidate->formalEducation->count() > 0)

Pendidikan Formal

@foreach($candidate->formalEducation->sortByDesc('end_year') as $edu) @endforeach
Jenjang Institusi Jurusan Tahun IPK
{{ $edu->education_level ?? '-' }} {{ $edu->institution_name ?? '-' }} {{ $edu->major ?? '-' }} {{ $edu->start_year ?? '-' }}-{{ $edu->end_year ?? '-' }} {{ $edu->gpa ?? '-' }}
@else

Tidak ada data pendidikan formal

@endif @if($candidate->nonFormalEducation->count() > 0)

Pendidikan Non-Formal

@foreach($candidate->nonFormalEducation as $course) @endforeach
Kursus/Pelatihan Penyelenggara Tanggal Keterangan
{{ $course->course_name ?? '-' }} {{ $course->organizer ?? '-' }} {{ $course->date ? \Carbon\Carbon::parse($course->date)->format('m/Y') : '-' }} {{ $course->description ?? '-' }}
@endif
@if($candidate->workExperiences->count() > 0)

5. Pengalaman Kerja

@foreach($candidate->workExperiences->sortByDesc('end_year') as $exp)
{{ $exp->company_name ?? 'Perusahaan' }} ({{ $exp->start_year ?? '-' }} - {{ $exp->end_year ?? 'Sekarang' }})
Posisi: {{ $exp->position ?? '-' }}
Bidang: {{ $exp->company_field ?? '-' }}
Gaji: {{ $exp->salary ? 'Rp ' . number_format($exp->salary, 0, ',', '.') : '-' }}
Alasan Resign: {{ $exp->reason_for_leaving ?? '-' }}
Atasan: {{ $exp->supervisor_contact ?? '-' }}
@endforeach
@else

5. Pengalaman Kerja

Fresh Graduate - Belum memiliki pengalaman kerja

@endif @if($candidate->workExperiences->count() > 3)
@endif

6. Kemampuan & Skills

SIM yang Dimiliki

@php $simTypes = ['A', 'B1', 'B2', 'C']; $ownedLicenses = $candidate->drivingLicenses->pluck('license_type')->toArray(); @endphp
    @foreach($simTypes as $sim)
  • [{{ in_array($sim, $ownedLicenses) ? 'X' : ' ' }}] SIM {{ $sim }}
  • @endforeach
@if(empty($ownedLicenses))

Tidak memiliki SIM

@endif
@if($candidate->languageSkills->count() > 0)

Kemampuan Bahasa

@foreach($candidate->languageSkills as $lang) @endforeach
Bahasa Bicara Tulis
{{ $lang->language ?? '-' }} {{ $lang->speaking_level ?? '-' }} {{ $lang->writing_level ?? '-' }}
@endif

Kemampuan Komputer

Hardware: {{ $candidate->computerSkills->hardware_skills ?? 'Tidak ada' }}
Software: {{ $candidate->computerSkills->software_skills ?? 'Tidak ada' }}

Kemampuan Lainnya

{{ $candidate->otherSkills->other_skills ?? 'Tidak ada data' }}
@if($candidate->socialActivities->count() > 0 || $candidate->achievements->count() > 0)

7. Latar Belakang Organisasi & Prestasi

@if($candidate->socialActivities->count() > 0)

Aktivitas Sosial/Organisasi

@foreach($candidate->socialActivities as $activity) @endforeach
Organisasi Bidang Periode Keterangan
{{ $activity->organization_name ?? '-' }} {{ $activity->field ?? '-' }} {{ $activity->period ?? '-' }} {{ $activity->description ?? '-' }}
@endif @if($candidate->achievements->count() > 0)

Penghargaan/Prestasi

@foreach($candidate->achievements as $achievement) @endforeach
Prestasi Tahun Keterangan
{{ $achievement->achievement ?? '-' }} {{ $achievement->year ?? '-' }} {{ $achievement->description ?? '-' }}
@endif
@endif

8. Informasi Umum

Bersedia Dinas: {{ $candidate->generalInformation && $candidate->generalInformation->willing_to_travel ? 'Ya' : 'Tidak' }}
Kendaraan: {{ $candidate->generalInformation && $candidate->generalInformation->has_vehicle ? 'Ya' : 'Tidak' }} {{ $candidate->generalInformation && $candidate->generalInformation->vehicle_types ? '(' . $candidate->generalInformation->vehicle_types . ')' : '' }}
Penghasilan Lain: {{ $candidate->generalInformation->other_income ?? '-' }}
Absen/Tahun: {{ $candidate->generalInformation->absence_days ?? '-' }} hari
Mulai Kerja: {{ $candidate->generalInformation && $candidate->generalInformation->start_work_date ? \Carbon\Carbon::parse($candidate->generalInformation->start_work_date)->format('d/m/Y') : '-' }}
Catatan Polisi: {{ $candidate->generalInformation && $candidate->generalInformation->has_police_record ? 'Ada' : 'Tidak' }} {{ $candidate->generalInformation && $candidate->generalInformation->police_record_detail ? '(' . $candidate->generalInformation->police_record_detail . ')' : '' }}
Riwayat Sakit: {{ $candidate->generalInformation && $candidate->generalInformation->has_serious_illness ? 'Ada' : 'Tidak' }} {{ $candidate->generalInformation && $candidate->generalInformation->illness_detail ? '(' . $candidate->generalInformation->illness_detail . ')' : '' }}
Tato/Tindik: {{ $candidate->generalInformation && $candidate->generalInformation->has_tattoo_piercing ? 'Ada' : 'Tidak' }} {{ $candidate->generalInformation && $candidate->generalInformation->tattoo_piercing_detail ? '(' . $candidate->generalInformation->tattoo_piercing_detail . ')' : '' }}
Usaha Lain: {{ $candidate->generalInformation && $candidate->generalInformation->has_other_business ? 'Ada' : 'Tidak' }} {{ $candidate->generalInformation && $candidate->generalInformation->other_business_detail ? '(' . $candidate->generalInformation->other_business_detail . ')' : '' }}
Sumber Info: {{ $candidate->generalInformation->information_source ?? '-' }}
@if($candidate->generalInformation && ($candidate->generalInformation->motivation || $candidate->generalInformation->strengths || $candidate->generalInformation->weaknesses))

Motivasi, Kelebihan & Kekurangan

Motivasi Bergabung:
{{ $candidate->generalInformation->motivation ?? 'Tidak ada data' }}
Kelebihan:
{{ $candidate->generalInformation->strengths ?? 'Tidak ada data' }}
Kekurangan:
{{ $candidate->generalInformation->weaknesses ?? 'Tidak ada data' }}
@endif
@if($candidate->kraeplinTestResult)

9. Hasil Tes Kraeplin

Total Soal Terjawab: {{ $candidate->kraeplinTestResult->total_questions_answered ?? 0 }}/832
Jawaban Benar: {{ $candidate->kraeplinTestResult->total_correct_answers ?? 0 }} ({{ number_format($candidate->kraeplinTestResult->accuracy_percentage ?? 0, 1) }}%)
Kecepatan Rata-rata: {{ $candidate->kraeplinTestResult->formatted_average_time ?? 'N/A' }}
Durasi Total: {{ $candidate->kraeplinTestResult->testSession->formatted_duration ?? 'N/A' }}
Skor Keseluruhan: {{ number_format($candidate->kraeplinTestResult->overall_score ?? 0, 1) }}/100
Grade: {{ $candidate->kraeplinTestResult->grade ?? 'N/A' }}
Kategori Performa: {{ $candidate->kraeplinTestResult->performance_category_label ?? 'N/A' }}
Tanggal Tes: {{ $candidate->kraeplinTestResult->testSession->completed_at ? $candidate->kraeplinTestResult->testSession->completed_at->format('d/m/Y H:i') : 'N/A' }}
@if($candidate->kraeplinTestResult->getScoreInterpretation())
Interpretasi: {{ $candidate->kraeplinTestResult->getScoreInterpretation() }}
@endif

Analisis Performa Lengkap

@if(class_exists('\App\Services\KraeplinChartGenerator')) {!! \App\Services\KraeplinChartGenerator::generateChart($candidate) !!} @else

Chart Kraeplin tidak tersedia - Service belum tersedia

@endif

Tingkat Akurasi per Kolom

@if(class_exists('\App\Services\KraeplinChartGenerator')) {!! \App\Services\KraeplinChartGenerator::generateAccuracyChart($candidate) !!} @else

Chart Akurasi tidak tersedia - Service belum tersedia

@endif

Soal Terjawab per Kolom

@if(class_exists('\App\Services\KraeplinChartGenerator')) {!! \App\Services\KraeplinChartGenerator::generateAnsweredChart($candidate) !!} @else

Chart Soal Terjawab tidak tersedia - Service belum tersedia

@endif

Waktu Rata-rata per Kolom

@if(class_exists('\App\Services\KraeplinChartGenerator')) {!! \App\Services\KraeplinChartGenerator::generateSpeedChart($candidate) !!} @else

Chart Kecepatan tidak tersedia - Service belum tersedia

@endif
@endif @if($candidate->disc3DTestResult)

10. Hasil Tes DISC 3D - Analisis Kepribadian

Tipe Kepribadian: {{ ($candidate->disc3DTestResult->primary_type ?? 'D') . ($candidate->disc3DTestResult->secondary_type ?? 'I') }} - {{ $candidate->disc3DTestResult->primary_type_label ?? 'Unknown Type' }}
Sekunder: {{ $candidate->disc3DTestResult->secondary_type_label ?? 'Unknown' }}
Pattern Segment: {{ ($candidate->disc3DTestResult->most_d_segment ?? 1) }}-{{ ($candidate->disc3DTestResult->most_i_segment ?? 1) }}-{{ ($candidate->disc3DTestResult->most_s_segment ?? 1) }}-{{ ($candidate->disc3DTestResult->most_c_segment ?? 1) }}
Dominan: {{ number_format($candidate->disc3DTestResult->primary_percentage ?? 0, 1) }}%
Tanggal Tes: {{ $candidate->latestDisc3DTest->completed_at ? $candidate->latestDisc3DTest->completed_at->format('d/m/Y') : 'N/A' }}
Durasi: {{ $candidate->latestDisc3DTest->formatted_duration ?? 'N/A' }}

Ringkasan Nilai Segment

Dimensi MOST (Publik) LEAST (Pribadi) CHANGE (Adaptasi)
D (Dominance) {{ $candidate->disc3DTestResult->most_d_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->most_d_percentage ?? 0, 1) }}%) {{ $candidate->disc3DTestResult->least_d_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->least_d_percentage ?? 0, 1) }}%) {{ ($candidate->disc3DTestResult->change_d_segment ?? 0) > 0 ? '+' : '' }}{{ $candidate->disc3DTestResult->change_d_segment ?? 0 }}
I (Influence) {{ $candidate->disc3DTestResult->most_i_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->most_i_percentage ?? 0, 1) }}%) {{ $candidate->disc3DTestResult->least_i_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->least_i_percentage ?? 0, 1) }}%) {{ ($candidate->disc3DTestResult->change_i_segment ?? 0) > 0 ? '+' : '' }}{{ $candidate->disc3DTestResult->change_i_segment ?? 0 }}
S (Steadiness) {{ $candidate->disc3DTestResult->most_s_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->most_s_percentage ?? 0, 1) }}%) {{ $candidate->disc3DTestResult->least_s_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->least_s_percentage ?? 0, 1) }}%) {{ ($candidate->disc3DTestResult->change_s_segment ?? 0) > 0 ? '+' : '' }}{{ $candidate->disc3DTestResult->change_s_segment ?? 0 }}
C (Conscientiousness) {{ $candidate->disc3DTestResult->most_c_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->most_c_percentage ?? 0, 1) }}%) {{ $candidate->disc3DTestResult->least_c_segment ?? 1 }} ({{ number_format($candidate->disc3DTestResult->least_c_percentage ?? 0, 1) }}%) {{ ($candidate->disc3DTestResult->change_c_segment ?? 0) > 0 ? '+' : '' }}{{ $candidate->disc3DTestResult->change_c_segment ?? 0 }}

Interpretasi Grafik

📊 MOST (Topeng/Publik)
Menampilkan bagaimana Anda berperilaku di depan umum atau dalam situasi kerja formal. Grafik ini menunjukkan adaptasi perilaku sesuai ekspektasi lingkungan.
📊 LEAST (Inti/Pribadi)
Menggambarkan kepribadian alami Anda yang sesungguhnya tanpa pengaruh eksternal. Ini adalah "diri sejati" yang cenderung muncul saat stres atau rileks.
📊 CHANGE (Adaptasi)
Menunjukkan tekanan dan adaptasi yang dialami. Nilai positif (+) = peningkatan, nilai negatif (-) = penurunan dari kondisi natural.

Analisis Perilaku Mendalam

💼 Gaya Kerja Detail
{{ \Illuminate\Support\Str::limit($candidate->disc3DTestResult->overall_profile ?? 'Bekerja dengan tempo tinggi dan fokus pada hasil. Menyukai lingkungan yang dinamis dengan kebebasan untuk mengambil keputusan.', 180) }}
🎤 Gaya Komunikasi Detail
{{ \Illuminate\Support\Str::limit($candidate->disc3DTestResult->personality_profile ?? 'Komunikasi yang langsung, jelas, dan persuasif. Mampu menyampaikan visi dan memotivasi tim.', 180) }}
🎭 Analisis Diri Publik (MOST)
{{ \Illuminate\Support\Str::limit($candidate->disc3DTestResult->public_self_summary ?? 'Di lingkungan publik, menampilkan sosok yang percaya diri, tegas, dan berorientasi pada hasil.', 180) }}
❤️ Analisis Diri Pribadi (LEAST)
{{ \Illuminate\Support\Str::limit($candidate->disc3DTestResult->private_self_summary ?? 'Secara pribadi, lebih reflektif dan mempertimbangkan berbagai aspek sebelum mengambil keputusan.', 180) }}
🔄 Analisis Adaptasi (CHANGE)
{{ \Illuminate\Support\Str::limit($candidate->disc3DTestResult->adaptation_summary ?? 'Mengalami tekanan untuk tampil lebih dominan dan ekspresif di lingkungan kerja.', 180) }}
📄 Ringkasan Profil Keseluruhan
{{ \Illuminate\Support\Str::limit($candidate->disc3DTestResult->summary ?? $candidate->disc3DTestResult->brief_summary ?? 'Belum tersedia', 180) }}
@if($candidate->disc3DTestResult->behavioral_insights)

Kelebihan & Area Pengembangan

⭐ Kelebihan & Kekuatan
@php $strengths = $candidate->disc3DTestResult->behavioral_insights['strengths'] ?? [ 'Kepemimpinan Natural', 'Pengambilan Keputusan Cepat', 'Orientasi Hasil Tinggi' ]; @endphp @if(is_array($strengths)) {{ implode(', ', array_slice($strengths, 0, 8)) }} @else {{ $strengths }} @endif
📈 Area Pengembangan
@php $developmentAreas = $candidate->disc3DTestResult->behavioral_insights['development_areas'] ?? [ 'Kesabaran dalam Proses', 'Perhatian pada Detail', 'Konsistensi Follow-up' ]; @endphp @if(is_array($developmentAreas)) {{ implode(', ', array_slice($developmentAreas, 0, 8)) }} @else {{ $developmentAreas }} @endif
@endif @if($candidate->disc3DTestResult->behavioral_insights)

Motivator Utama

🔥 Motivator: @php $motivators = $candidate->disc3DTestResult->behavioral_insights['motivators'] ?? [ 'Pencapaian Target', 'Pengakuan Prestasi', 'Tantangan Baru' ]; @endphp @if(is_array($motivators)) {{ implode(', ', array_slice($motivators, 0, 8)) }} @else {{ $motivators }} @endif
@endif @if($candidate->disc3DTestResult->recommended_roles)

Profesi yang Cocok

@if(is_array($candidate->disc3DTestResult->recommended_roles)) @foreach(array_slice($candidate->disc3DTestResult->recommended_roles, 0, 8) as $role) {{ $role }} @endforeach @else {{ $candidate->disc3DTestResult->recommended_roles }} @endif
@endif

Grafik DISC 3D (Segment Values)

@if(class_exists('\App\Services\DiscChartGenerator')) {!! \App\Services\DiscChartGenerator::generateChart($candidate) !!} @else

Grafik DISC 3D tidak tersedia - Service belum tersedia

@endif
📌 Catatan Metodologi: Grafik MOST & LEAST menggunakan skala segment 1-7 (bukan persentase). Grafik CHANGE menampilkan nilai adaptasi yang dapat positif (+) atau negatif (-). Persentase ditampilkan sebagai referensi tambahan.
@if(config('app.debug'))
🔧 Debug Info: DISC Result ID: {{ $candidate->disc3DTestResult->id ?? 'N/A' }} | Primary Type: {{ $candidate->disc3DTestResult->primary_type ?? 'N/A' }} | Chart Generator: {{ class_exists('\App\Services\DiscChartGenerator') ? 'Available' : 'Missing' }}
@endif
@else

10. Hasil Tes DISC 3D - Analisis Kepribadian

Kandidat belum menyelesaikan tes DISC 3D

@endif