diff --git a/app/Http/Controllers/KJPPController.php b/app/Http/Controllers/KJPPController.php index d41e077..3a1b1c7 100644 --- a/app/Http/Controllers/KJPPController.php +++ b/app/Http/Controllers/KJPPController.php @@ -171,7 +171,11 @@ class KJPPController extends Controller $validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson; $validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson; $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); - $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); + if (empty($validated['jenis_aset_id'])) { + $validated['jenis_aset_id'] = json_encode([]); + } else { + $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); + } // Tambahkan nama file ke data yang divalidasi $validated['attachment'] = $filename; @@ -434,7 +438,11 @@ class KJPPController extends Controller $validated['detail_nama_pic_marketing'] = $detailNamaPicMarketingJson; $validated['detail_nomor_hp_pic_marketing'] = $detailNomorHpPicMarketingJson; $validated['ijin_usaha_id'] = json_encode($validated['ijin_usaha_id']); - $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); + if (empty($validated['jenis_aset_id'])) { + $validated['jenis_aset_id'] = json_encode([]); + } else { + $validated['jenis_aset_id'] = json_encode($validated['jenis_aset_id']); + } // Perbarui data di database KJPP::where('id', $id)->update($validated); diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 1aa6421..f20ee1e 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -5,6 +5,7 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; +use Illuminate\Http\JsonResponse; use Illuminate\Support\Facades\Validator; use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Exports\BasicDataSurveyorExport; @@ -527,22 +528,29 @@ class SurveyorController extends Controller - public function storeAproved($id) + public function storeAproved(Request $request, $id): JsonResponse { - try { - $penilaian = Penilaian::findOrFail($id); - $penilaian->update([ - 'authorized_status' => 1, - ]); + $data = []; + if (request()->ajax()) { + try { + $penilaian = Penilaian::findOrFail($id); + $penilaian->update([ + 'authorized_status' => 1, + ]); + + $data['status'] = 'success'; + $data['message']= 'Jadwal '.$request->noReg.' berhasil di aprove'; + } catch (\Exception $e) { + $data['status'] = 'error'; + $data['message'] = 'Gagal membuat jadwal: ' . $e->getMessage(); + } - return redirect() - ->route('permohonan.index') - ->with('success', 'Jadwal berhasil di aprove.'); - } catch (\Exception $e) { - return redirect() - ->route('permohonan.index') - ->with('error', 'Gagal membuat jadwal: ' . $e->getMessage()); + } else { + $data['status'] = 'error'; + $data['message'] = "no ajax request"; } + + return response()->json($data); } diff --git a/app/Http/Requests/KJPPRequest.php b/app/Http/Requests/KJPPRequest.php index dedf16d..4ff5821 100644 --- a/app/Http/Requests/KJPPRequest.php +++ b/app/Http/Requests/KJPPRequest.php @@ -42,7 +42,7 @@ class KJPPRequest extends FormRequest 'detail_nomor_hp_pic_marketing' => 'nullable', 'ijin_usaha_id' => 'required|array', 'ijin_usaha_id.*' => 'exists:ijin_usaha,code', - 'jenis_aset_id' => 'required|array', + 'jenis_aset_id' => 'nullable|array', 'jenis_aset_id.*' => 'exists:jenis_jaminan,code', 'attachment' => 'nullable|mimes:pdf|max:1024' ]; @@ -98,7 +98,6 @@ class KJPPRequest extends FormRequest 'nomor_hp_pic_marketing.numeric' => 'Nomor HP PIC Marketing harus berupa angka!', 'nomor_hp_pic_marketing.digits_between' => 'Nomor HP PIC Marketing minimum 10 digit dan maksimum 15 digit!', 'ijin_usaha_id.required' => 'Ijin Usaha Wajib diisi!', - 'jenis_aset_id.required' => 'Jenis Aset Wajib diisi!', 'attachment.mimes' => 'Attachment harus berformat pdf!', 'attachment.max' => 'Attachment berukuran maksimum 1 MB!', ]; diff --git a/database/migrations/2024_12_10_091151_update_kjpp_table.php b/database/migrations/2024_12_10_091151_update_kjpp_table.php new file mode 100644 index 0000000..8eb47f8 --- /dev/null +++ b/database/migrations/2024_12_10_091151_update_kjpp_table.php @@ -0,0 +1,28 @@ +string('jenis_aset_id')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('kjpp', function (Blueprint $table) { + $table->string('jenis_aset_id')->change(); + }); + } +}; diff --git a/resources/views/kjpp/show.blade.php b/resources/views/kjpp/show.blade.php index 2ca826d..b0bb344 100644 --- a/resources/views/kjpp/show.blade.php +++ b/resources/views/kjpp/show.blade.php @@ -250,7 +250,7 @@ Pengalaman (Jenis Aset)
- @if (isset($kjpp->jenis_aset_id)) + @if (isset($kjpp->jenis_aset_id) && !empty(json_decode($kjpp->jenis_aset_id, true))) @foreach (json_decode($kjpp->jenis_aset_id, true) as $aset_code) @php $jenis_aset = $jenis_jaminan->firstWhere('code', $aset_code); @@ -263,8 +263,8 @@ @endif @endforeach @else - - No asset type selected. + + - @endif
diff --git a/resources/views/permohonan/index.blade.php b/resources/views/permohonan/index.blade.php index 6c7cb6f..247f0e1 100644 --- a/resources/views/permohonan/index.blade.php +++ b/resources/views/permohonan/index.blade.php @@ -186,9 +186,9 @@ let actionHtml = `
`; if (data && data.penilaian && data.penilaian.waktu_penilaian !== null && data.status !== - 'done') { + 'done' && data.penilaian.authorized_status==null) { actionHtml += ` - + `; @@ -225,5 +225,58 @@ }); + @endpush diff --git a/routes/web.php b/routes/web.php index e734e8c..998728f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -518,7 +518,7 @@ Route::middleware(['auth'])->group(function () { Route::post('store', [SurveyorController::class, 'store'])->name('store'); Route::post('storeDenah', [SurveyorController::class, 'storeDenah'])->name('storeDenah'); Route::put('storeJadwal', [SurveyorController::class, 'storeJadwal'])->name('storeJadwal'); - Route::get('storeAproved/{id}', [SurveyorController::class, 'storeAproved'])->name('storeAproved'); + Route::put('storeAproved/{storeAproved}', [SurveyorController::class, 'storeAproved'])->name('storeAproved'); Route::put('storeFreeze', [SurveyorController::class, 'storeFreeze'])->name('storeFreeze'); Route::post('storeFoto', [SurveyorController::class, 'storeFoto'])->name('storeFoto'); Route::post('storeDataPembanding', [SurveyorController::class, 'storeDataPembanding'])->name('storeDataPembanding');