diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index cdfaa22..04feb22 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -4,6 +4,7 @@ use App\Http\Controllers\Controller; use Exception; + use Illuminate\Http\Request; use Illuminate\Http\JsonResponse; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; @@ -572,4 +573,40 @@ $combinedLegalitas = array_merge($existingLegalitas, $newLegalitas); return response()->json($combinedLegalitas); } + + public function clearDetail(Request $request) + { + try { + DB::beginTransaction(); + + $detailId = $request->input('detail_id'); + $detail = DetailDokumenJaminan::findOrFail($detailId); + + // Delete associated files + if ($detail->dokumen_jaminan) { + $dokumen_jaminan = is_array(json_decode($detail->dokumen_jaminan)) + ? json_decode($detail->dokumen_jaminan) + : [$detail->dokumen_jaminan]; + + foreach ($dokumen_jaminan as $dokumen) { + if (Storage::exists($dokumen)) { + Storage::delete($dokumen); + } + } + } + + // Delete the detail record + $detail->delete(); + + DB::commit(); + + return response()->json(['success' => true, 'message' => 'Detail berhasil dihapus']); + } catch (\Exception $e) { + DB::rollBack(); + return response()->json([ + 'success' => false, + 'message' => 'Gagal menghapus detail: ' . $e->getMessage() + ], 500); + } + } } diff --git a/app/Http/Controllers/PembayaranController.php b/app/Http/Controllers/PembayaranController.php index f6fe6de..806a411 100644 --- a/app/Http/Controllers/PembayaranController.php +++ b/app/Http/Controllers/PembayaranController.php @@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Validator; use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Http\Requests\PersetujuanPenawaranRequest; +use Modules\Lpj\Models\LaporanExternal; use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\PersetujuanPenawaran; @@ -235,6 +236,13 @@ class PembayaranController extends Controller 'updated_by' => Auth::id(), 'updated_at' => now(), ]); + + LaporanExternal::create([ + 'permohonan_id' => $permohonan->id, + 'nomor_laporan' => $permohonan->nomor_registrasi, + 'tanggal_laporan' => now(), + 'created_by' => Auth::id(), + ]); } } diff --git a/app/Http/Controllers/RegistrasiController.php b/app/Http/Controllers/RegistrasiController.php index 42efcea..4695cbd 100644 --- a/app/Http/Controllers/RegistrasiController.php +++ b/app/Http/Controllers/RegistrasiController.php @@ -153,7 +153,6 @@ class RegistrasiController extends Controller if ($tindakan == 0) { $dataku['jenis_penilaian_id'] = $request->jenis_penilaian; $dataku['region_id'] = $request->region; - $dataku['sla'] = $request->sla; $dataku['status'] = 'registered'; if ($request->catatan2) { $dataku['registrasi_catatan'] = $request->catatan2; @@ -209,11 +208,7 @@ class RegistrasiController extends Controller if (1 == $jenis_penilaian) { $validateIt['region'] = ['required']; $messageIt ['region.required'] = 'Silahkan pilih Region'; - } else { - $validateIt['sla'] = ['required']; - $messageIt ['sla.required'] = 'Silahkan isi SLA'; } - } elseif ($tindakan == 1) { $validateIt['catatan'] = ['required']; $messageIt ['catatan.required'] = 'Silahkan isi Catatan'; diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 6d5bc2d..31e0f55 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -3256,6 +3256,8 @@ class SurveyorController extends Controller private function getUnitData($data, $request): array { + + $luas_unit_key = ($data['luas_unit'] ?? null) === 'sesuai' ? 'sesuai' : 'tidak sesuai'; $luas_unit = []; @@ -3264,11 +3266,11 @@ class SurveyorController extends Controller : ($data['luas_unit_tidak_sesuai'] ?? null); // Masukkan key baru yang sesuai - $luas_luas_unit[$luas_luas_unit_key] = preg_replace('/[^0-9.,]/', '', $hasil_luas_unit); + $luas_unit[$luas_unit_key] = preg_replace('/[^0-9.,]/', '', $hasil_luas_unit); return [ 'action' => $data['action'] ?? null, - 'luas_unit' => $luas_luas_unit, + 'luas_unit' => $luas_unit, 'kondisi_unit' => $data['kondisi_unit'] ?? null, 'posisi_unit' => $data['posisi_unit'] ?? null, 'lantai' => $data['lantai'] ?? null, diff --git a/database/migrations/2025_03_06_012851_create_laporan_externals_table.php b/database/migrations/2025_03_06_012851_create_laporan_externals_table.php index c721a93..032cbbc 100644 --- a/database/migrations/2025_03_06_012851_create_laporan_externals_table.php +++ b/database/migrations/2025_03_06_012851_create_laporan_externals_table.php @@ -16,16 +16,16 @@ use Illuminate\Support\Facades\Schema; $table->id(); $table->foreignIdFor(Permohonan::class)->constrained('permohonan')->onDelete('cascade'); $table->string('nomor_laporan'); - $table->date('tgl_final_laporan'); - $table->decimal('nilai_pasar', 15, 2); - $table->decimal('indikasi_nilai_likuidasi', 15, 2); - $table->decimal('indikasi_nilai_pasar_tanah', 15, 2); - $table->decimal('estimasi_harga_tanah', 15, 2); - $table->decimal('estimasi_harga_bangunan', 15, 2); - $table->decimal('indikasi_nilai_pasar_bangunan', 15, 2); - $table->decimal('indikasi_nilai_pasar_sarana_pelengkap', 15, 2); - $table->decimal('indikasi_nilai_pasar_mesin', 15, 2); - $table->decimal('indikasi_nilai_pasar_kendaraan_alat_berat', 15, 2); + $table->date('tgl_final_laporan')->nullable(); + $table->decimal('nilai_pasar', 15, 2)->nullable(); + $table->decimal('indikasi_nilai_likuidasi', 15, 2)->nullable(); + $table->decimal('indikasi_nilai_pasar_tanah', 15, 2)->nullable(); + $table->decimal('estimasi_harga_tanah', 15, 2)->nullable(); + $table->decimal('estimasi_harga_bangunan', 15, 2)->nullable(); + $table->decimal('indikasi_nilai_pasar_bangunan', 15, 2)->nullable(); + $table->decimal('indikasi_nilai_pasar_sarana_pelengkap', 15, 2)->nullable(); + $table->decimal('indikasi_nilai_pasar_mesin', 15, 2)->nullable(); + $table->decimal('indikasi_nilai_pasar_kendaraan_alat_berat', 15, 2)->nullable(); $table->string('file_resume')->nullable(); // New field for resume file $table->string('file_laporan')->nullable(); // New field for report file $table->timestamps(); diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index ee292b4..55b618a 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -258,12 +258,7 @@ Alamat Jaminan: - {{ $dokumen->pemilik->address ?? '' }}, -
{{ $dokumen->pemilik->village->name ?? '' }}, - {{ $dokumen->pemilik->district->name ?? '' }}, - {{ $dokumen->pemilik->city->name ?? '' }}, - {{ $dokumen->pemilik->province->name ?? '' }} - - {{ $dokumen->pemilik->village->postal_code ?? '' }} + {{ formatAlamat($dokumen) }}
diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 9d3b3da..3f5fb73 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -262,7 +262,16 @@ - + +
@@ -713,5 +722,75 @@ return ``; } } + + function clearDetail(detailId) { + Swal.fire({ + title: 'Apakah Anda yakin?', + text: "Anda akan menghapus detail ini!", + icon: 'warning', + showCancelButton: true, + confirmButtonColor: '#3085d6', + cancelButtonColor: '#d33', + confirmButtonText: 'Ya, yakin!', + cancelButtonText: 'Batal' + }).then((result) => { + if (result.isConfirmed) { + Swal.fire({ + title: 'Apakah Anda yakin?', + text: "Data yang telah di hapus tidak dapat di kembalikan", + icon: 'warning', + showCancelButton: true, + confirmButtonColor: '#3085d6', + cancelButtonColor: '#d33', + confirmButtonText: 'Ya, hapus!', + cancelButtonText: 'Batal' + }).then((result2) => { + if (result2.isConfirmed) { + // Hapus input fields + $(`input[name="detail_dokumen_jaminan_id[]"][value="${detailId}"]`).closest('.grid.gap-5').remove(); + + // Kirim request AJAX untuk menghapus data dari database + $.ajax({ + url: '{{ route("debitur.jaminan.clearDetail", $debitur->id ) }}', + type: 'POST', + data: { + _token: '{{ csrf_token() }}', + detail_id: detailId + }, + success: function (response) { + if (response.success) { + Swal.fire({ + title: 'Berhasil!', + text: 'Detail berhasil dihapus', + icon: 'success', + confirmButtonText: 'OK' + }).then((result) => { + if (result.isConfirmed) { + location.reload(); + } + }); + } else { + Swal.fire({ + title: 'Gagal!', + text: 'Detail gagal dihapus', + icon: 'error', + confirmButtonText: 'OK' + }); + } + }, + error: function () { + Swal.fire({ + title: 'Gagal!', + text: 'Terjadi kesalahan saat menghapus detail', + icon: 'error', + confirmButtonText: 'OK' + }); + } + }); + } + }); + } + }); + } @endpush diff --git a/resources/views/otorisasipenawaran/show.blade.php b/resources/views/otorisasipenawaran/show.blade.php index 74ce36e..de5d4ce 100644 --- a/resources/views/otorisasipenawaran/show.blade.php +++ b/resources/views/otorisasipenawaran/show.blade.php @@ -8,7 +8,6 @@ @endphp @section('content')
-
@php $buttonProses=''; $buttonProses=' Otorisasi Penawaran'; @@ -22,7 +21,6 @@ ]) -
diff --git a/resources/views/penawaran_ulang/index.blade.php b/resources/views/penawaran_ulang/index.blade.php index 508e5aa..2bc7c37 100644 --- a/resources/views/penawaran_ulang/index.blade.php +++ b/resources/views/penawaran_ulang/index.blade.php @@ -131,7 +131,7 @@ - + `; diff --git a/resources/views/registrasi/edit.blade.php b/resources/views/registrasi/edit.blade.php index 59b0d03..0b6af09 100644 --- a/resources/views/registrasi/edit.blade.php +++ b/resources/views/registrasi/edit.blade.php @@ -72,15 +72,7 @@
-
- -
- - -
-
+