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
| Hubungan |
Nama |
Usia |
Pendidikan |
Pekerjaan |
@foreach($candidate->familyMembers as $member)
| {{ $member->relationship ?? '-' }} |
{{ $member->name ?? '-' }} |
{{ $member->age ? $member->age . ' th' : '-' }} |
{{ $member->education ?? '-' }} |
{{ $member->occupation ?? '-' }} |
@endforeach
@endif
4. Latar Belakang Pendidikan
@if($candidate->formalEducation->count() > 0)
Pendidikan Formal
| Jenjang |
Institusi |
Jurusan |
Tahun |
IPK |
@foreach($candidate->formalEducation->sortByDesc('end_year') as $edu)
| {{ $edu->education_level ?? '-' }} |
{{ $edu->institution_name ?? '-' }} |
{{ $edu->major ?? '-' }} |
{{ $edu->start_year ?? '-' }}-{{ $edu->end_year ?? '-' }} |
{{ $edu->gpa ?? '-' }} |
@endforeach
@else
Tidak ada data pendidikan formal
@endif
@if($candidate->nonFormalEducation->count() > 0)
Pendidikan Non-Formal
| Kursus/Pelatihan |
Penyelenggara |
Tanggal |
Keterangan |
@foreach($candidate->nonFormalEducation as $course)
| {{ $course->course_name ?? '-' }} |
{{ $course->organizer ?? '-' }} |
{{ $course->date ? \Carbon\Carbon::parse($course->date)->format('m/Y') : '-' }} |
{{ $course->description ?? '-' }} |
@endforeach
@endif
@if($candidate->workExperiences->count() > 0)
5. Pengalaman Kerja
@foreach($candidate->workExperiences->sortByDesc('end_year') as $exp)
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
| Bahasa |
Bicara |
Tulis |
@foreach($candidate->languageSkills as $lang)
| {{ $lang->language ?? '-' }} |
{{ $lang->speaking_level ?? '-' }} |
{{ $lang->writing_level ?? '-' }} |
@endforeach
@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
| Organisasi |
Bidang |
Periode |
Keterangan |
@foreach($socialActivities as $activity)
| {{ $activity->title ?? '-' }} |
{{ $activity->field_or_year ?? '-' }} |
{{ $activity->period ?? '-' }} |
{{ $activity->description ?? '-' }} |
@endforeach
@endif
@if($achievements->count() > 0)
Penghargaan/Prestasi
| Prestasi |
Tahun |
Keterangan |
@foreach($achievements as $achievement)
| {{ $achievement->title ?? '-' }} |
{{ $achievement->field_or_year ?? '-' }} |
{{ $achievement->description ?? '-' }} |
@endforeach
@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))
|
⭐ Kelebihan (Database)
{{ implode(', ', array_slice($strengthsArray, 0, 6)) }}
|
@endif
@if(!empty($motivatorsArray))
🔥 Motivator (Database)
{{ implode(', ', array_slice($motivatorsArray, 0, 6)) }}
|
@endif
@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