(done) value dari smart dimasukin ke form sesuai dengan data form yang ada
This commit is contained in:
parent
678a388a80
commit
915d3d8f8a
@ -23,10 +23,18 @@ class SoalController extends Controller
|
||||
}
|
||||
|
||||
$selectedSoalId = (int) $request->query('soal_id', $daftarSoal->first()->id);
|
||||
|
||||
$pegawai = session('pegawai') ?? [];
|
||||
$pegawaiId = is_array($pegawai) ? ($pegawai['id'] ?? null) : null;
|
||||
if (!$request->boolean('start')) {
|
||||
$completedSoalIds = [];
|
||||
if ($pegawaiId) {
|
||||
$completedSoalIds = Jawaban::where('pegawai_id', $pegawaiId)
|
||||
->pluck('lms_mutu_soal_id')
|
||||
->toArray();
|
||||
}
|
||||
return view('soal.list', [
|
||||
'daftarSoal' => $daftarSoal,
|
||||
'completedSoalIds' => $completedSoalIds,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -70,8 +78,21 @@ class SoalController extends Controller
|
||||
$soal->setRelation('soalDetail', $detailSoal);
|
||||
|
||||
$halPertama = $daftarHal->first() ?? $hal;
|
||||
$pegawai = session('pegawai');
|
||||
dd($pegawai);
|
||||
$existingJawaban = [];
|
||||
$formLocked = false;
|
||||
if ($pegawaiId) {
|
||||
$jawabanTersimpan = Jawaban::where('pegawai_id', $pegawaiId)
|
||||
->where('lms_mutu_soal_id', $soal->id)
|
||||
->latest('tanggal_isi')
|
||||
->first();
|
||||
if ($jawabanTersimpan) {
|
||||
$existingJawaban = $jawabanTersimpan->jawabanDetail
|
||||
->pluck('jawaban', 'lms_mutu_soal_detail_id')
|
||||
->toArray();
|
||||
$formLocked = true;
|
||||
}
|
||||
}
|
||||
$prefillJawaban = $this->generatePrefillJawaban($detailSoal, $pegawai);
|
||||
return view('soal.index', [
|
||||
'soal' => $soal,
|
||||
'hal' => $hal,
|
||||
@ -80,6 +101,9 @@ class SoalController extends Controller
|
||||
'totalHal' => $daftarHal->count(),
|
||||
'soalId' => $soal->id,
|
||||
'pegawai' => $pegawai,
|
||||
'prefillJawaban' => $prefillJawaban,
|
||||
'existingJawaban' => $existingJawaban,
|
||||
'formLocked' => $formLocked,
|
||||
]);
|
||||
}
|
||||
|
||||
@ -119,11 +143,13 @@ class SoalController extends Controller
|
||||
$jawabanLainnya = $validated['jawaban_lainnya'] ?? [];
|
||||
$namaResponden = null;
|
||||
$unitKerja = null;
|
||||
$pegawai = session('pegawai') ?? [];
|
||||
$pegawaiId = is_array($pegawai) ? ($pegawai['id'] ?? null) : null;
|
||||
|
||||
DB::connection('dbLmsMutu')->transaction(function () use (&$jawabanBaru, $validated, $jawabanLainnya, $detailMeta, &$namaResponden, &$unitKerja) {
|
||||
DB::connection('dbLmsMutu')->transaction(function () use (&$jawabanBaru, $validated, $jawabanLainnya, $detailMeta, &$namaResponden, &$unitKerja, $pegawaiId) {
|
||||
$jawabanBaru = Jawaban::create([
|
||||
'lms_mutu_soal_id' => $validated['lms_mutu_soal_id'],
|
||||
'pegawai_id' => 1,
|
||||
'pegawai_id' => $pegawaiId,
|
||||
'tanggal_isi' => Carbon::now()->addHour(7),
|
||||
]);
|
||||
|
||||
@ -192,4 +218,69 @@ class SoalController extends Controller
|
||||
session(['pegawai' => $array]);
|
||||
return redirect('/');
|
||||
}
|
||||
|
||||
protected function generatePrefillJawaban($detailSoal, $pegawai): array
|
||||
{
|
||||
if (!is_iterable($detailSoal) || !is_array($pegawai) || empty($pegawai)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$prefill = [];
|
||||
foreach ($detailSoal as $detail) {
|
||||
$decoded = json_decode($detail->soal, true) ?? [];
|
||||
$question = $decoded['soal'] ?? '';
|
||||
$value = $this->mapPegawaiValueToQuestion($question, $pegawai);
|
||||
if ($value !== null && $value !== '') {
|
||||
$prefill[$detail->id] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
return $prefill;
|
||||
}
|
||||
|
||||
protected function mapPegawaiValueToQuestion(?string $question, array $pegawai): ?string
|
||||
{
|
||||
if (!$question) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$normalized = Str::lower($question);
|
||||
|
||||
if (Str::contains($normalized, 'nama/inisial responden')) {
|
||||
return $pegawai['namaLengkap'] ?? $pegawai['nama'] ?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'nomor telepon') || Str::contains($normalized, 'hp')) {
|
||||
return $pegawai['noHandphone'] ?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'jenis kelamin')) {
|
||||
return $pegawai['jenisKelamin']['jenisKelamin'] ?? $pegawai['jenisKelamin']['namaExternal'] ?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'unit/area kerja')) {
|
||||
return $pegawai['ruangan']['namaRuangan'] ?? $pegawai['ruangan']['namaExternal'] ?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'posisi kerja')) {
|
||||
return $pegawai['jabatanInternal']['namaJabatan']
|
||||
?? $pegawai['jabatanFungsional']['namaJabatan']
|
||||
?? $pegawai['jenisPegawai']['jenisPegawai']
|
||||
?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'email')) {
|
||||
return $pegawai['email'] ?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'nip') || Str::contains($normalized, 'nomor identitas')) {
|
||||
return $pegawai['nipPns'] ?? $pegawai['noIdentitas'] ?? null;
|
||||
}
|
||||
|
||||
if (Str::contains($normalized, 'nama faskes')) {
|
||||
return $pegawai['ruangan']['namaExternal'] ?? 'RSAB HARAPAN KITA';
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@ -100,6 +100,9 @@
|
||||
$halSebelumnya = $posisiAktif > 0 ? $listHal[$posisiAktif - 1] : null;
|
||||
$halBerikut = ($posisiAktif < $listHal->count() - 1) ? $listHal[$posisiAktif + 1] : null;
|
||||
$isHalTerakhir = $halBerikut === null;
|
||||
$formLocked = $formLocked ?? false;
|
||||
$prefillJawaban = $prefillJawaban ?? [];
|
||||
$existingJawaban = $existingJawaban ?? [];
|
||||
@endphp
|
||||
|
||||
<div class="py-4">
|
||||
@ -151,13 +154,18 @@
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
@endif
|
||||
@if ($formLocked)
|
||||
<div class="alert alert-info">
|
||||
Anda sudah mengisi kuesioner ini. Jawaban di bawah ditampilkan dalam mode baca.
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="d-flex justify-content-between align-items-center mb-3 flex-wrap gap-2">
|
||||
<h5 class="mb-0">Daftar Pertanyaan</h5>
|
||||
<small class="text-muted" id="summary-hal">Halaman {{ $hal }} dari {{ $listHal->count() }}</small>
|
||||
</div>
|
||||
|
||||
<form id="form-soal" method="POST" action="{{ route('soal.store') }}" data-hal-list='@json($listHal->values())'>
|
||||
<form id="form-soal" method="POST" action="{{ route('soal.store') }}" data-hal-list='@json($listHal->values())' data-form-locked="{{ $formLocked ? '1' : '0' }}">
|
||||
@csrf
|
||||
<input type="hidden" name="lms_mutu_soal_id" value="{{ $soal->id }}">
|
||||
<input type="hidden" name="hal" id="input-hal" value="{{ $hal }}">
|
||||
@ -174,15 +182,19 @@
|
||||
$optionValues = collect($options)->map(function ($value) {
|
||||
return is_scalar($value) ? (string) $value : '';
|
||||
})->all();
|
||||
$oldAnswer = old('jawaban.' . $detail->id);
|
||||
$oldOtherAnswer = old('jawaban_lainnya.' . $detail->id);
|
||||
$hasOldAnswer = $oldAnswer !== null && $oldAnswer !== '';
|
||||
$isCustomOldAnswer = $hasOldAnswer && !in_array($oldAnswer, $optionValues, true);
|
||||
if (!$oldOtherAnswer && $isCustomOldAnswer) {
|
||||
$oldOtherAnswer = $oldAnswer;
|
||||
$existingAnswer = $existingJawaban[$detail->id] ?? null;
|
||||
$prefillAnswer = $prefillJawaban[$detail->id] ?? null;
|
||||
$currentAnswer = old('jawaban.' . $detail->id, $existingAnswer ?? $prefillAnswer);
|
||||
$existingOtherAnswer = $existingAnswer && !in_array($existingAnswer, $optionValues, true) ? $existingAnswer : null;
|
||||
$prefillOtherAnswer = $prefillAnswer && !in_array($prefillAnswer, $optionValues, true) ? $prefillAnswer : null;
|
||||
$oldOtherAnswer = old('jawaban_lainnya.' . $detail->id, $existingOtherAnswer ?? $prefillOtherAnswer);
|
||||
$hasCurrentAnswer = $currentAnswer !== null && $currentAnswer !== '';
|
||||
$isCustomCurrentAnswer = $hasCurrentAnswer && !in_array($currentAnswer, $optionValues, true);
|
||||
if (!$oldOtherAnswer && $isCustomCurrentAnswer) {
|
||||
$oldOtherAnswer = $currentAnswer;
|
||||
}
|
||||
$showLainnya = $isCustomOldAnswer
|
||||
|| (is_string($oldAnswer) && stripos($oldAnswer, 'lainnya') !== false)
|
||||
$showLainnya = $isCustomCurrentAnswer
|
||||
|| (is_string($currentAnswer) && stripos($currentAnswer, 'lainnya') !== false)
|
||||
|| (!empty($oldOtherAnswer));
|
||||
$detailHal = $detail->hal ?? $listHal->first();
|
||||
$isVisible = $detailHal == $hal;
|
||||
@ -200,11 +212,11 @@
|
||||
$useDualForm = $type === 'dual_form' || (!empty($dualFormConfig) && $dualFormConfig !== false);
|
||||
$dualYearOld = null;
|
||||
$dualMonthOld = null;
|
||||
if ($useDualForm && $oldAnswer) {
|
||||
if (preg_match('/([0-9]+)\\s*\\(Tahun\\)/i', $oldAnswer, $matchYear)) {
|
||||
if ($useDualForm && $currentAnswer) {
|
||||
if (preg_match('/([0-9]+)\\s*\\(Tahun\\)/i', $currentAnswer, $matchYear)) {
|
||||
$dualYearOld = $matchYear[1];
|
||||
}
|
||||
if (preg_match('/([0-9]+)\\s*\\(Bulan\\)/i', $oldAnswer, $matchMonth)) {
|
||||
if (preg_match('/([0-9]+)\\s*\\(Bulan\\)/i', $currentAnswer, $matchMonth)) {
|
||||
$dualMonthOld = $matchMonth[1];
|
||||
}
|
||||
}
|
||||
@ -237,6 +249,7 @@
|
||||
data-dual-input="tahun"
|
||||
value="{{ $dualYearOld }}"
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Masukkan tahun">
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
@ -245,16 +258,18 @@
|
||||
data-dual-input="bulan"
|
||||
value="{{ $dualMonthOld }}"
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Masukkan bulan">
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden"
|
||||
class="@error('jawaban.' . $detail->id) is-invalid @enderror"
|
||||
name="jawaban[{{ $detail->id }}]"
|
||||
value="{{ old('jawaban.' . $detail->id) }}"
|
||||
value="{{ $currentAnswer }}"
|
||||
data-dual-hidden="{{ $detail->id }}"
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
required>
|
||||
</div>
|
||||
@elseif ($type === 'textarea')
|
||||
@ -262,12 +277,14 @@
|
||||
name="jawaban[{{ $detail->id }}]" rows="4" required
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
placeholder="Tulis jawaban Anda di sini">{{ old('jawaban.' . $detail->id) }}</textarea>
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Tulis jawaban Anda di sini">{{ $currentAnswer }}</textarea>
|
||||
@elseif ($type === 'text')
|
||||
<input type="text" class="form-control @error('jawaban.' . $detail->id) is-invalid @enderror"
|
||||
name="jawaban[{{ $detail->id }}]" value="{{ old('jawaban.' . $detail->id) }}" required
|
||||
name="jawaban[{{ $detail->id }}]" value="{{ $currentAnswer }}" required
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Masukkan jawaban Anda">
|
||||
@else
|
||||
@if (!empty($options))
|
||||
@ -276,16 +293,17 @@
|
||||
name="jawaban[{{ $detail->id }}]"
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if ($hasLainnyaOption) data-lainnya-select="{{ $detail->id }}" @endif
|
||||
@if ($hasLainnyaOption || $type === 'option_with_other') data-lainnya-select="{{ $detail->id }}" @endif
|
||||
data-select-search="true"
|
||||
@if($formLocked) disabled @endif
|
||||
required>
|
||||
<option value="" disabled {{ $oldAnswer ? '' : 'selected' }}>Pilih jawaban</option>
|
||||
<option value="" disabled {{ $currentAnswer ? '' : 'selected' }}>Pilih jawaban</option>
|
||||
@foreach ($options as $option)
|
||||
@php
|
||||
$optionLabel = is_scalar($option) ? (string) $option : '';
|
||||
$isLainnya = stripos($optionLabel, 'lainnya') !== false;
|
||||
$optionValue = $isLainnya && $oldOtherAnswer ? $oldOtherAnswer : $optionLabel;
|
||||
$shouldSelect = $oldAnswer === $optionValue || ($isLainnya && $shouldForceLainnyaSelection);
|
||||
$shouldSelect = $currentAnswer === $optionValue || ($isLainnya && $shouldForceLainnyaSelection);
|
||||
@endphp
|
||||
<option value="{{ $optionValue }}"
|
||||
data-original-value="{{ $optionLabel }}"
|
||||
@ -302,7 +320,7 @@
|
||||
</option>
|
||||
@endif
|
||||
</select>
|
||||
@if ($hasLainnyaOption)
|
||||
@if ($hasLainnyaOption || $type === 'option_with_other')
|
||||
<div class="lainnya-input {{ $showLainnya ? 'show' : '' }}" data-lainnya-wrapper="{{ $detail->id }}">
|
||||
<input type="text" class="form-control form-control-sm mt-2"
|
||||
name="jawaban_lainnya[{{ $detail->id }}]"
|
||||
@ -310,6 +328,7 @@
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
data-lainnya-input="{{ $detail->id }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Tuliskan jawaban lainnya"
|
||||
{{ $showLainnya ? 'required' : '' }}>
|
||||
</div>
|
||||
@ -325,7 +344,7 @@
|
||||
$optionLabel = is_scalar($option) ? (string) $option : '';
|
||||
$isLainnya = stripos($optionLabel, 'lainnya') !== false;
|
||||
$optionValue = $isLainnya && $oldOtherAnswer ? $oldOtherAnswer : $optionLabel;
|
||||
$shouldCheck = $oldAnswer === $optionValue || ($isLainnya && $shouldForceLainnyaSelection);
|
||||
$shouldCheck = $currentAnswer === $optionValue || ($isLainnya && $shouldForceLainnyaSelection);
|
||||
@endphp
|
||||
<div class="form-check mb-2">
|
||||
<input class="form-check-input @error('jawaban.' . $detail->id) is-invalid @enderror"
|
||||
@ -337,6 +356,7 @@
|
||||
data-lainnya-radio="{{ $isLainnya ? $detail->id : '' }}" required
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
{{ $shouldCheck ? 'checked' : '' }}>
|
||||
<label class="form-check-label" for="{{ $optionId }}">
|
||||
{{ $optionLabel }}
|
||||
@ -353,6 +373,7 @@
|
||||
data-lainnya-input="{{ $detail->id }}"
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Tuliskan jawaban lainnya"
|
||||
{{ $showLainnya ? 'required' : '' }}>
|
||||
</div>
|
||||
@ -367,6 +388,7 @@
|
||||
data-lainnya-input="{{ $detail->id }}"
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Tuliskan jawaban lainnya"
|
||||
{{ $showLainnya ? 'required' : '' }}>
|
||||
</div>
|
||||
@ -374,9 +396,10 @@
|
||||
@endif
|
||||
@else
|
||||
<input type="text" class="form-control @error('jawaban.' . $detail->id) is-invalid @enderror"
|
||||
name="jawaban[{{ $detail->id }}]" value="{{ old('jawaban.' . $detail->id) }}" required
|
||||
name="jawaban[{{ $detail->id }}]" value="{{ $currentAnswer }}" required
|
||||
data-field-hal="{{ $detailHal }}"
|
||||
@if ($isConsentQuestion) data-consent-input="1" @endif
|
||||
@if($formLocked) disabled @endif
|
||||
placeholder="Masukkan jawaban Anda">
|
||||
@endif
|
||||
@endif
|
||||
@ -420,8 +443,8 @@
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary ms-md-auto"
|
||||
data-final-submit="true"
|
||||
style="{{ $isHalTerakhir ? '' : 'display: none;' }}"
|
||||
{{ $soal->soalDetail->isEmpty() ? 'disabled' : '' }}>
|
||||
style="{{ (!$isHalTerakhir || $formLocked) ? 'display: none;' : '' }}"
|
||||
{{ $soal->soalDetail->isEmpty() || $formLocked ? 'disabled' : '' }}>
|
||||
Simpan Jawaban
|
||||
</button>
|
||||
</div>
|
||||
@ -455,6 +478,7 @@
|
||||
|
||||
const hiddenHalInput = document.getElementById('input-hal');
|
||||
let currentHal = parseInt(hiddenHalInput?.value || halList[0], 10);
|
||||
const formLocked = form.dataset.formLocked === '1';
|
||||
const navHalButtons = document.querySelectorAll('.nav-hal-btn');
|
||||
const questionCards = document.querySelectorAll('[data-hal-card]');
|
||||
const halInputs = document.querySelectorAll('[data-field-hal]');
|
||||
@ -535,7 +559,11 @@
|
||||
});
|
||||
}
|
||||
|
||||
form.addEventListener('submit', function () {
|
||||
form.addEventListener('submit', function (event) {
|
||||
if (formLocked) {
|
||||
event.preventDefault();
|
||||
return false;
|
||||
}
|
||||
if (!immediateSubmitActive) {
|
||||
return;
|
||||
}
|
||||
@ -658,7 +686,9 @@
|
||||
summaryHal.textContent = 'Halaman ' + (currentIndex + 1) + ' dari ' + totalHal;
|
||||
}
|
||||
if (finalSubmitButton) {
|
||||
finalSubmitButton.style.display = (isLast || immediateSubmitActive) ? '' : 'none';
|
||||
const canShowFinalButton = !formLocked && (isLast || immediateSubmitActive);
|
||||
finalSubmitButton.style.display = canShowFinalButton ? '' : 'none';
|
||||
finalSubmitButton.disabled = !canShowFinalButton;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -35,20 +35,32 @@
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</div>
|
||||
@endif
|
||||
@php
|
||||
$completedSoalIds = $completedSoalIds ?? [];
|
||||
@endphp
|
||||
<div class="row g-4">
|
||||
@foreach ($daftarSoal as $soal)
|
||||
@php
|
||||
$sudahDikerjakan = in_array($soal->id, $completedSoalIds);
|
||||
@endphp
|
||||
<div class="col-lg-4 col-md-6">
|
||||
<div class="card soal-card h-100 shadow-sm">
|
||||
<div class="card-body d-flex flex-column">
|
||||
<div class="d-flex justify-content-between align-items-start mb-3">
|
||||
<span class="badge bg-label-primary">Kuesioner</span>
|
||||
<span class="badge {{ $sudahDikerjakan ? 'bg-success' : 'bg-label-primary' }}">
|
||||
{{ $sudahDikerjakan ? 'Sudah Dikerjakan' : 'Kuesioner' }}
|
||||
</span>
|
||||
</div>
|
||||
<h5 class="fw-semibold mb-2">{{ $soal->judul_soal ?? 'Tanpa Judul' }}</h5>
|
||||
<p class="text-muted flex-grow-1">{{ \Illuminate\Support\Str::limit(strip_tags($soal->keterangan_soal ?? 'Belum ada keterangan'), 120) }}</p>
|
||||
<div class="mt-3 d-flex justify-content-between align-items-center">
|
||||
@if ($sudahDikerjakan)
|
||||
<span class="text-success fw-semibold">Terisi</span>
|
||||
@else
|
||||
<a href="{{ route('soal.index', ['start' => 1, 'soal_id' => $soal->id]) }}" class="btn btn-primary btn-sm btn-start">
|
||||
Mulai Isi
|
||||
</a>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
239
session_pegawai.json
Normal file
239
session_pegawai.json
Normal file
@ -0,0 +1,239 @@
|
||||
array:65 [▼ // app\Http\Controllers\SoalController.php:74
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 96
|
||||
"noRec" => "E3C54413-605D-41C4-9738-F9909C6A"
|
||||
"kodeExternal" => "1"
|
||||
"idFinger" => "927"
|
||||
"nama" => "Cathline Freya Adhiwidjaja"
|
||||
"kedudukan" => array:5 [▼
|
||||
"statusEnabled" => true
|
||||
"id" => 1
|
||||
"reportDisplay" => "Aktif"
|
||||
"namaExternal" => "Aktif"
|
||||
"name" => "Aktif"
|
||||
]
|
||||
"kedudukanId" => "1"
|
||||
"tglPensiun" => 2001171600000
|
||||
"pensiun" => 58
|
||||
"statusKawin" => array:10 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 2
|
||||
"noRec" => "b842fb2a-6621-489a-ba34-b058027f"
|
||||
"reportDisplay" => "Kawin"
|
||||
"kodeExternal" => "02"
|
||||
"namaExternal" => "Kawin"
|
||||
"kdStatusPerkawinan" => 2
|
||||
"qStatusPerkawinan" => 2
|
||||
"statusPerkawinan" => "Kawin"
|
||||
]
|
||||
"statusKawinId" => "2"
|
||||
"alamat" => "Jl. Sutera Amaryllis VI / 5 Pakulonan Serpong Utara TANGERANG Banten"
|
||||
"kodePos" => ""
|
||||
"bankRekeningAtasNama" => "dr. Cathline Freya Adhiwidjaja, Sp.BA"
|
||||
"bankRekeningNama" => "PT. BANK RAKYAT INDONESIA (Persero) Tbk."
|
||||
"bankRekeningNomor" => "096201002367509"
|
||||
"agama" => array:10 [▶]
|
||||
"agamaId" => 2
|
||||
"detailKategoryPegawai" => array:9 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 18
|
||||
"noRec" => "42D0F2DC-C541-4206-BAF8-4C76DE5F"
|
||||
"reportDisplay" => "PNS"
|
||||
"namaExternal" => "PNS"
|
||||
"detailKategoryPegawai" => "PNS"
|
||||
"kdDetailKategoryPegawai" => "A1"
|
||||
"qDetailKategoryPegawai" => 31
|
||||
]
|
||||
"detailKategoryPegawaiId" => 18
|
||||
"eselon" => array:10 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 5
|
||||
"noRec" => "5C3183E3-08EC-44CC-B568-F47AFD2D"
|
||||
"reportDisplay" => "III A"
|
||||
"kodeExternal" => "0005"
|
||||
"namaExternal" => "III A"
|
||||
"eselon" => "III A"
|
||||
"kdEselon" => 5
|
||||
"qEselon" => 5
|
||||
]
|
||||
"eselonId" => 5
|
||||
"jabatanFungsional" => array:13 [▼
|
||||
"statusEnabled" => true
|
||||
"id" => 35
|
||||
"reportDisplay" => "Dokter Ahli Muda"
|
||||
"kodeExternal" => "35"
|
||||
"namaExternal" => "Dokter Ahli Muda"
|
||||
"namaJabatan" => "Dokter Ahli Muda"
|
||||
"levelJabatan" => 5
|
||||
"eselonId" => 0
|
||||
"usiaPensiun" => 58
|
||||
"jenisJabatanId" => 1
|
||||
"kelompokJabatanId" => 3
|
||||
"kdJabatan" => "35"
|
||||
"unitKerjaId" => 61
|
||||
]
|
||||
"jabatanFungsionalId" => 35
|
||||
"shiftKerja" => array:15 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 1
|
||||
"noRec" => "1 "
|
||||
"reportDisplay" => "Non Shift"
|
||||
"kodeExternal" => ""
|
||||
"namaExternal" => ""
|
||||
"detail" => []
|
||||
"kode" => 1
|
||||
"name" => "Non Shift"
|
||||
"kdKelompokShiftKerja" => 1
|
||||
"kelompokShiftKerja" => "Non Shift"
|
||||
"factorRate" => 160
|
||||
"operatorFactorRate" => "/"
|
||||
"qKelompokShift" => 1
|
||||
]
|
||||
"shiftKerjaId" => 1
|
||||
"jenisKelamin" => array:10 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 2
|
||||
"noRec" => "6014ef02-a0b5-4d39-a17f-19654e16"
|
||||
"reportDisplay" => "P"
|
||||
"kodeExternal" => "F"
|
||||
"namaExternal" => "Perempuan"
|
||||
"jenisKelamin" => "Perempuan"
|
||||
"kdJenisKelamin" => 2
|
||||
"qJenisKelamin" => 2
|
||||
]
|
||||
"jenisKelaminId" => 2
|
||||
"jenisPegawai" => array:8 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 1
|
||||
"noRec" => "385cd9d8-e6dc-435e-be1a-0da6dd89"
|
||||
"reportDisplay" => "DOKTER"
|
||||
"jenisPegawai" => "DOKTER"
|
||||
"kdJenisPegawai" => "A0"
|
||||
"qJenisPegawai" => 1
|
||||
]
|
||||
"jenisPegawaiId" => 1
|
||||
"negara" => array:10 [▶]
|
||||
"negaraId" => 0
|
||||
"pangkat" => array:10 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 14
|
||||
"noRec" => "14 "
|
||||
"reportDisplay" => "Pembina Tingkat I"
|
||||
"kdPangkat" => 14
|
||||
"namaPangkat" => "Pembina Tingkat I"
|
||||
"noUrut" => 14
|
||||
"qPangkat" => 14
|
||||
"ruang" => "b"
|
||||
]
|
||||
"pangkatId" => 14
|
||||
"ruangan" => array:14 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 102
|
||||
"noRec" => "102 "
|
||||
"reportDisplay" => "Komite Medik"
|
||||
"kodeExternal" => "0117"
|
||||
"namaExternal" => "Komite Medik"
|
||||
"departemenId" => 51
|
||||
"kdRuangan" => "102"
|
||||
"namaRuangan" => "Komite Medik"
|
||||
"statusViewData" => true
|
||||
"kamarSet" => []
|
||||
"kelompokRuangan" => "REGULER"
|
||||
"qruangan" => 102
|
||||
]
|
||||
"ruanganId" => 102
|
||||
"kategoryPegawai" => array:10 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 1
|
||||
"noRec" => "09a02190-0c08-4c10-b178-51abf99d"
|
||||
"reportDisplay" => "PNS"
|
||||
"kodeExternal" => "02"
|
||||
"namaExternal" => "PNS"
|
||||
"kategoryPegawai" => "PNS"
|
||||
"kdKategoryPegawai" => "A"
|
||||
"qkategoryPegawai" => 1
|
||||
]
|
||||
"statusPegawai" => array:11 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 2
|
||||
"noRec" => "6877c359-aa73-474b-89ce-c33439d1"
|
||||
"reportDisplay" => "Aktif"
|
||||
"kodeExternal" => ""
|
||||
"namaExternal" => "A"
|
||||
"statusPegawaiHeadSet" => []
|
||||
"kdStatusPegawai" => 2
|
||||
"qStatusPegawai" => 2
|
||||
"statusPegawai" => "Aktif"
|
||||
]
|
||||
"statusPegawaiId" => 2
|
||||
"typePegawai" => array:10 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 1
|
||||
"noRec" => "221fee76-a4db-4c72-8ed3-959c7549"
|
||||
"reportDisplay" => "PURNA WAKTU (FULL TIME)"
|
||||
"kodeExternal" => "1"
|
||||
"namaExternal" => "PURNA WAKTU (FULL TIME)"
|
||||
"kdTypePegawai" => 1
|
||||
"qTypePegawai" => 1
|
||||
"typePegawai" => "PURNA WAKTU (FULL TIME)"
|
||||
]
|
||||
"typePegawaiId" => 1
|
||||
"namaKeluarga" => ""
|
||||
"namaLengkap" => "dr. Cathline Freya Adhiwidjaja, Sp.BA"
|
||||
"namaPanggilan" => ""
|
||||
"nipPns" => "197505132014122001"
|
||||
"noIdentitas" => "3674025305750005"
|
||||
"npwp" => "573859154411000"
|
||||
"photoDiri" => ""
|
||||
"qtyAnak" => 0
|
||||
"statusRhesus" => ""
|
||||
"tempatLahir" => "Bandung"
|
||||
"tglLahir" => 169146000000
|
||||
"tglMasuk" => 1317315600000
|
||||
"email" => "cfreya@yahoo.com"
|
||||
"noHandphone" => "08118004286"
|
||||
"satuanKerjaId" => 15
|
||||
"jadwalPemeriksaanSet" => []
|
||||
"jabatanInternal" => array:14 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 561
|
||||
"noRec" => "561 "
|
||||
"reportDisplay" => "Dokter Spesialis Bedah Anak"
|
||||
"namaJabatan" => "Dokter Spesialis Bedah Anak 1 A"
|
||||
"noUrut" => 561
|
||||
"levelJabatan" => 5
|
||||
"subLevelJabatan" => 1
|
||||
"jenisJabatanId" => 8
|
||||
"kelompokJabatanId" => 3
|
||||
"kdJabatan" => "561"
|
||||
"qJabatan" => 561
|
||||
"unitKerjaId" => 63
|
||||
]
|
||||
"jabatanInternalId" => 561
|
||||
"riwayatPendidikanSet" => []
|
||||
"golongan" => array:8 [▼
|
||||
"kdProfile" => 0
|
||||
"statusEnabled" => true
|
||||
"id" => 4
|
||||
"noRec" => "c14cd8d6-e128-4c5f-a50d-c6b95c14"
|
||||
"reportDisplay" => "IV/b"
|
||||
"kodeExternal" => "04"
|
||||
"namaExternal" => "PEMBINA TINGKAT I"
|
||||
"name" => "IV/b"
|
||||
]
|
||||
"qpegawai" => 96
|
||||
"golonganId" => 4
|
||||
]
|
||||
Loading…
x
Reference in New Issue
Block a user