@php $photoDocument = $candidate->documentUploads->where('document_type', 'photo')->first(); @endphp
@if($photoDocument) Foto @else
@endif

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

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

Alamat

Alamat Saat Ini: {{ $candidate->current_address ?? '-' }} ({{ $candidate->current_address_status ?? '-' }})
Alamat KTP: {{ $candidate->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

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->additionalInfo->hardware_skills ?? 'Tidak ada' }}
Software: {{ $candidate->additionalInfo->software_skills ?? 'Tidak ada' }}

Kemampuan Lainnya

{{ $candidate->additionalInfo->other_skills ?? 'Tidak ada data' }}
@php $socialActivities = $candidate->activities->where('activity_type', 'social_activity'); $achievements = $candidate->activities->where('activity_type', 'achievement'); @endphp @if($socialActivities->count() > 0 || $achievements->count() > 0)

7. Latar Belakang Organisasi & Prestasi

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

Aktivitas Sosial/Organisasi

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

Penghargaan/Prestasi

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

7. Latar Belakang Organisasi & Prestasi

Tidak ada data organisasi atau prestasi

@endif

8. Informasi Umum

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

Motivasi, Kelebihan & Kekurangan

Motivasi Bergabung:
{{ $candidate->additionalInfo->motivation ?? 'Tidak ada data' }}
Kelebihan:
{{ $candidate->additionalInfo->strengths ?? 'Tidak ada data' }}
Kekurangan:
{{ $candidate->additionalInfo->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

{!! \App\Services\KraeplinChartGenerator::generateChart($candidate) !!}

Tingkat Akurasi per Kolom

{!! \App\Services\KraeplinChartGenerator::generateAccuracyChart($candidate) !!}

Soal Terjawab per Kolom

{!! \App\Services\KraeplinChartGenerator::generateAnsweredChart($candidate) !!}

Waktu Rata-rata per Kolom

{!! \App\Services\KraeplinChartGenerator::generateSpeedChart($candidate) !!}
@endif @if($candidate->disc3DTestResult) @php // Get pattern combination data $patternData = null; if ($candidate->disc3DTestResult && $candidate->disc3DTestResult->most_pattern) { $patternData = \App\Models\Disc3DPatternCombination::where('pattern_code', $candidate->disc3DTestResult->most_pattern)->first(); } // Safe array extraction with proper type checking for behavioral insights $behavioralInsights = $candidate->disc3DTestResult->behavioral_insights ?? []; $strengthsArray = []; if (isset($behavioralInsights['strengths']) && is_array($behavioralInsights['strengths'])) { $strengthsArray = $behavioralInsights['strengths']; } $developmentArray = []; if (isset($behavioralInsights['development_areas']) && is_array($behavioralInsights['development_areas'])) { $developmentArray = $behavioralInsights['development_areas']; } $motivatorsArray = []; if (is_array($candidate->disc3DTestResult->motivators_most ?? null)) { $motivatorsArray = $candidate->disc3DTestResult->motivators_most; } elseif (isset($behavioralInsights['motivators']) && is_array($behavioralInsights['motivators'])) { $motivatorsArray = $behavioralInsights['motivators']; } $workEnvArray = []; if (isset($behavioralInsights['work_environment']) && is_array($behavioralInsights['work_environment'])) { $workEnvArray = $behavioralInsights['work_environment']; } elseif (is_array($candidate->disc3DTestResult->work_style_most ?? null)) { $workEnvArray = $candidate->disc3DTestResult->work_style_most; } $communicationArray = []; if (isset($behavioralInsights['communication']) && is_array($behavioralInsights['communication'])) { $communicationArray = $behavioralInsights['communication']; } elseif (is_array($candidate->disc3DTestResult->communication_style_most ?? null)) { $communicationArray = $candidate->disc3DTestResult->communication_style_most; } $stressArray = []; if (is_array($candidate->disc3DTestResult->stress_indicators ?? null)) { $stressArray = $candidate->disc3DTestResult->stress_indicators; } $decisionArray = []; if (isset($behavioralInsights['decision_making']) && is_array($behavioralInsights['decision_making'])) { $decisionArray = $behavioralInsights['decision_making']; } $leadershipArray = []; if (isset($behavioralInsights['leadership']) && is_array($behavioralInsights['leadership'])) { $leadershipArray = $behavioralInsights['leadership']; } $conflictArray = []; if (isset($behavioralInsights['conflict_resolution']) && is_array($behavioralInsights['conflict_resolution'])) { $conflictArray = $behavioralInsights['conflict_resolution']; } $tendenciesArray = []; if (isset($behavioralInsights['tendencies']) && is_array($behavioralInsights['tendencies'])) { $tendenciesArray = $behavioralInsights['tendencies']; } @endphp

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' }}
@if($patternData)

Kombinasi Pola Kepribadian & Analisis Karakter

{{ $patternData->pattern_name }}
Kode Pattern: {{ $patternData->pattern_code }}
{{ $patternData->description }}
💡 Ringkasan Karakter
@php $primaryType = $candidate->disc3DTestResult->primary_type ?? 'D'; $patternName = $patternData->pattern_name; $mainStrengths = $patternData->strengths ? implode(' dan ', array_slice($patternData->strengths, 0, 2)) : 'berbagai kekuatan'; @endphp Kandidat menunjukkan karakter {{ $patternName }} dengan kecenderungan dimensi {{ $primaryType }}. Memiliki {{ $mainStrengths }} sebagai kekuatan utama. Cocok untuk peran yang membutuhkan {{ $patternData->ideal_environment ? strtolower($patternData->ideal_environment[0] ?? 'fleksibilitas') : 'adaptabilitas' }} dalam bekerja.
@if($patternData->strengths && count($patternData->strengths) > 0)
💎 Kekuatan Pattern
@foreach(array_slice($patternData->strengths, 0, 6) as $strength) {{ $strength }} @endforeach
@endif @if($patternData->ideal_environment && count($patternData->ideal_environment) > 0)
🌱 Lingkungan Ideal
@foreach(array_slice($patternData->ideal_environment, 0, 6) as $environment) {{ $environment }} @endforeach
@endif @if($patternData->career_matches && count($patternData->career_matches) > 0)
💼 Role/Posisi Cocok
@foreach(array_slice($patternData->career_matches, 0, 6) as $career) {{ $career }} @endforeach
@endif
@if($patternData->weaknesses && count($patternData->weaknesses) > 0)
⚠️ Area Perhatian
@foreach(array_slice($patternData->weaknesses, 0, 6) as $weakness) {{ $weakness }} @endforeach
@endif @if($patternData->communication_tips && count($patternData->communication_tips) > 0)
📢 Tips Komunikasi
@foreach(array_slice($patternData->communication_tips, 0, 6) as $tip) {{ $tip }} @endforeach
@endif
@endif @if(!empty($strengthsArray) || !empty($motivatorsArray))

Insight Tambahan dari Database

@if(!empty($strengthsArray)) @endif @if(!empty($motivatorsArray)) @endif
⭐ Kelebihan (Database)
{{ implode(', ', array_slice($strengthsArray, 0, 6)) }}
🔥 Motivator (Database)
{{ implode(', ', array_slice($motivatorsArray, 0, 6)) }}
@endif

Grafik DISC 3D (Segment Values)

{!! \App\Services\DiscChartGenerator::generateChart($candidate) !!}

Informasi Sesi Tes

🔢 Kode Tes
{{ $candidate->latestDisc3DTest->test_code ?? 'N/A' }}
📅 Tanggal Tes
{{ $candidate->latestDisc3DTest->completed_at ? $candidate->latestDisc3DTest->completed_at->format('d M Y H:i') : 'N/A' }}
⏱️ Durasi
{{ $candidate->latestDisc3DTest->formatted_duration ?? 'N/A' }}
✅ Status
Selesai
@else

10. Hasil Tes DISC 3D - Analisis Kepribadian

Kandidat belum menyelesaikan tes DISC 3D

@endif