done lms mutu soal

This commit is contained in:
JokoPrasetio 2025-12-04 13:19:16 +07:00
parent f77eb9aeb1
commit decc83cc92
2 changed files with 15 additions and 25 deletions

View File

@ -131,30 +131,30 @@ class SoalController extends Controller
}
}
});
$validated = $validator->validate();
$jawabanUtama = $validated['jawaban'] ?? [];
$soalId = $validated['lms_mutu_soal_id'];
$detailIds = array_map('intval', array_keys($jawabanUtama));
$detailMeta = SoalDetail::whereIn('id', $detailIds)
$allDetails = SoalDetail::where('lms_mutu_soal_id', $soalId)
->get(['id', 'soal'])
->keyBy('id');
$jawabanBaru = null;
$jawabanUtama = $validated['jawaban'] ?? [];
$jawabanLainnya = $validated['jawaban_lainnya'] ?? [];
$namaResponden = null;
$jawabanBaru = null;
$unitKerja = null;
$pegawai = session('pegawai') ?? [];
$pegawaiId = is_array($pegawai) ? ($pegawai['id'] ?? null) : 1;
DB::connection('dbLmsMutu')->transaction(function () use (&$jawabanBaru, $validated, $jawabanUtama, $jawabanLainnya, $detailMeta, &$namaResponden, &$unitKerja, $pegawaiId) {
DB::connection('dbLmsMutu')->transaction(function () use (&$jawabanBaru, $validated, $jawabanUtama, $jawabanLainnya, $allDetails, &$namaResponden, &$unitKerja, $pegawaiId) {
$jawabanBaru = Jawaban::create([
'lms_mutu_soal_id' => $validated['lms_mutu_soal_id'],
'pegawai_id' => $pegawaiId,
'tanggal_isi' => Carbon::now()->addHour(7),
]);
foreach ($jawabanUtama as $detailId => $answer) {
foreach ($allDetails as $detailId => $detail) {
$answer = $jawabanUtama[$detailId] ?? null;
if (is_array($answer)) {
$answer = json_encode($answer);
}
@ -163,18 +163,12 @@ class SoalController extends Controller
$answer = $jawabanLainnya[$detailId];
}
if ($answer === null || $answer === '') {
continue;
}
$detailIdInt = (int) $detailId;
$pertanyaan = null;
if ($detailMeta->has($detailIdInt)) {
$decoded = json_decode($detailMeta[$detailIdInt]->soal, true);
$decoded = json_decode($detail->soal, true);
$pertanyaan = Str::lower(trim($decoded['soal'] ?? ''));
}
if ($pertanyaan) {
if ($pertanyaan && $answer) {
if (Str::contains($pertanyaan, 'nama/inisial responden')) {
$namaResponden = $answer;
}
@ -186,7 +180,7 @@ class SoalController extends Controller
JawabanDetail::create([
'lms_mutu_jawaban_id' => $jawabanBaru->id,
'lms_mutu_soal_detail_id' => $detailIdInt,
'lms_mutu_soal_detail_id' => (int) $detailId,
'jawaban' => $answer,
]);
}

View File

@ -54,13 +54,9 @@
<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 href="{{ route('soal.index', ['start' => 1, 'soal_id' => $soal->id]) }}" class="btn {{ $sudahDikerjakan ? 'text-success fw-semibold' : 'btn-primary btn-sm btn-start'}} ">
{{ $sudahDikerjakan ? 'Terisi' : 'Mulai Isi' }} Mulai Isi
</a>
@endif
</div>
</div>
</div>