diff --git a/app/Http/Controllers/DebitureController.php b/app/Http/Controllers/DebitureController.php index 03b8b49..7929578 100644 --- a/app/Http/Controllers/DebitureController.php +++ b/app/Http/Controllers/DebitureController.php @@ -69,152 +69,6 @@ ); } - public function jaminan($id) - { - $debitur = Debiture::find($id); - $documents = DokumenJaminan::with('pemilik')->where('debiture_id', $id)->get(); - - return view( - 'lpj::debitur.edit', - compact('debitur', 'documents'), - ); - } - - public function createJaminan($id) - { - $debitur = Debiture::find($id); - $provinces = Province::all(); - $jenisJaminan = JenisJaminan::all(); - $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); - - return view( - 'lpj::debitur.jaminan', - compact('debitur', 'provinces', 'jenisJaminan', 'jenisLegalitasJaminan'), - ); - } - - public function storeJaminan(DokumenJaminanRequest $request, $id) - { - $debitur = Debiture::find($id); - - $validate = $request->validated(); - if ($validate) { - try { - $validate['debiture_id'] = $id; - - if ($validate['pemilik_jaminan_id'] == 0) { - $pemilik_jaminan = [ - 'npwp' => $debitur->npwp, - 'email' => $debitur->email, - 'phone' => $debitur->phone, - 'province_code' => $debitur->province_code, - 'city_code' => $debitur->city_code, - 'district_code' => $debitur->district_code, - 'village_code' => $debitur->village_code, - 'postal_code' => $debitur->postal_code, - 'address' => $debitur->address, - ]; - - $pemilikJaminan = PemilikJaminan::updateOrCreate([ - 'debiture_id' => $id, - 'name' => $debitur->name, - ], $pemilik_jaminan); - } - - if ($request->hasFile('dokumen_jaminan')) { - $file = $request->file('dokumen_jaminan'); - $file_name = $file->getClientOriginalName(); - $file->storeAs('public/jaminan/' . $debitur->id, $file_name); - $validate['dokumen_jaminan'] = 'jaminan/' . $debitur->id . '/' . $file_name; - } - - $validate['pemilik_jaminan_id'] = $pemilikJaminan->id; - DokumenJaminan::create($validate); - - - return redirect()->route('debitur.jaminan', $id); - } catch (Exception $e) { - print_r($e->getMessage()); - exit; - } - } - } - - public function updateJaminan(DokumenJaminanRequest $request, $id, $jaminan) - { - $debitur = Debiture::find($id); - - $validate = $request->validated(); - if ($validate) { - try { - $validate['debiture_id'] = $id; - - if ($validate['pemilik_jaminan_id'] == 0) { - $pemilik_jaminan = [ - 'npwp' => $debitur->npwp, - 'email' => $debitur->email, - 'phone' => $debitur->phone, - 'province_code' => $debitur->province_code, - 'city_code' => $debitur->city_code, - 'district_code' => $debitur->district_code, - 'village_code' => $debitur->village_code, - 'postal_code' => $debitur->postal_code, - 'address' => $debitur->address, - ]; - - $pemilikJaminan = PemilikJaminan::updateOrCreate([ - 'debiture_id' => $id, - 'name' => $debitur->name, - ], $pemilik_jaminan); - } - - if ($request->hasFile('dokumen_jaminan')) { - $file = $request->file('dokumen_jaminan'); - $file_name = $file->getClientOriginalName(); - $file->storeAs('public/jaminan/' . $debitur->id, $file_name); - $validate['dokumen_jaminan'] = 'jaminan/' . $debitur->id . '/' . $file_name; - } - - $document = DokumenJaminan::find($jaminan); - $document->update($validate); - - - return redirect()->route('debitur.jaminan', $id); - } catch (Exception $e) { - print_r($e->getMessage()); - exit; - } - } - } - - public function editJaminan($id, $jaminan) - { - $document = DokumenJaminan::find($jaminan); - $debitur = Debiture::find($document->debiture_id); - $provinces = Province::all(); - $cities = City::where('province_code', $document->province_code)->get(); - $districts = District::where('city_code', $document->city_code)->get(); - $villages = Village::where('district_code', $document->district_code)->get(); - $jenisJaminan = JenisJaminan::all(); - $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); - $pemilikJaminan = PemilikJaminan::all(); - - return view( - 'lpj::debitur.jaminan', - compact( - 'debitur', - 'provinces', - 'jenisJaminan', - 'jenisLegalitasJaminan', - 'document', - 'cities', - 'districts', - 'villages', - 'pemilikJaminan', - ), - ); - } - public function update(DebitureRequest $request, $id) { $validate = $request->validated(); @@ -248,17 +102,6 @@ } } - public function destroyJaminan($id, $jaminan_id) - { - try { - $jaminan = DokumenJaminan::find($jaminan_id); - $jaminan->delete(); - echo json_encode(['success' => true, 'message' => 'Dokumen Jaminan deleted successfully']); - } catch (Exception $e) { - echo json_encode(['success' => false, 'message' => 'Failed to delete Dokumen Jaminan']); - } - } - public function dataForDatatables(Request $request) { if (is_null($this->user) || !$this->user->can('debitur.view')) { diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php new file mode 100644 index 0000000..ddceb55 --- /dev/null +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -0,0 +1,181 @@ +where('debiture_id', $id)->get(); + + return view( + 'lpj::debitur.edit', + compact('debitur', 'documents'), + ); + } + + public function store(DokumenJaminanRequest $request, $id) + { + $debitur = Debiture::find($id); + + $validate = $request->validated(); + if ($validate) { + try { + $validate['debiture_id'] = $id; + + if ($validate['pemilik_jaminan_id'] == 0) { + $pemilik_jaminan = [ + 'hubungan_pemilik_jaminan_id' => 1, + 'npwp' => $debitur->npwp, + 'email' => $debitur->email, + 'phone' => $debitur->phone, + 'province_code' => $debitur->province_code, + 'city_code' => $debitur->city_code, + 'district_code' => $debitur->district_code, + 'village_code' => $debitur->village_code, + 'postal_code' => $debitur->postal_code, + 'address' => $debitur->address, + ]; + + $pemilikJaminan = PemilikJaminan::updateOrCreate([ + 'debiture_id' => $id, + 'name' => $debitur->name, + ], $pemilik_jaminan); + } + + if ($request->hasFile('dokumen_jaminan')) { + $file = $request->file('dokumen_jaminan'); + $file_name = $file->getClientOriginalName(); + $file->storeAs('public/jaminan/' . $debitur->id, $file_name); + $validate['dokumen_jaminan'] = 'jaminan/' . $debitur->id . '/' . $file_name; + } + + $validate['pemilik_jaminan_id'] = $pemilikJaminan->id; + DokumenJaminan::create($validate); + + + return redirect()->route('debitur.jaminan.index', $id); + } catch (Exception $e) { + print_r($e->getMessage()); + exit; + } + } + } + + public function create($id) + { + $debitur = Debiture::find($id); + $provinces = Province::all(); + $jenisJaminan = JenisJaminan::all(); + $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); + + return view( + 'lpj::debitur.jaminan', + compact('debitur', 'provinces', 'jenisJaminan', 'jenisLegalitasJaminan'), + ); + } + + public function update(DokumenJaminanRequest $request, $id, $jaminan) + { + $debitur = Debiture::find($id); + + $validate = $request->validated(); + if ($validate) { + try { + $validate['debiture_id'] = $id; + + if ($validate['pemilik_jaminan_id'] == 0) { + $pemilik_jaminan = [ + 'hubungan_pemilik_jaminan_id' => 1, + 'npwp' => $debitur->npwp, + 'email' => $debitur->email, + 'phone' => $debitur->phone, + 'province_code' => $debitur->province_code, + 'city_code' => $debitur->city_code, + 'district_code' => $debitur->district_code, + 'village_code' => $debitur->village_code, + 'postal_code' => $debitur->postal_code, + 'address' => $debitur->address, + ]; + + $pemilikJaminan = PemilikJaminan::updateOrCreate([ + 'debiture_id' => $id, + 'name' => $debitur->name, + ], $pemilik_jaminan); + } + + if ($request->hasFile('dokumen_jaminan')) { + $file = $request->file('dokumen_jaminan'); + $file_name = $file->getClientOriginalName(); + $file->storeAs('public/jaminan/' . $debitur->id, $file_name); + $validate['dokumen_jaminan'] = 'jaminan/' . $debitur->id . '/' . $file_name; + } + + $document = DokumenJaminan::find($jaminan); + $document->update($validate); + + + return redirect()->route('debitur.jaminan.index', $id); + } catch (Exception $e) { + print_r($e->getMessage()); + exit; + } + } + } + + public function edit($id, $jaminan) + { + $document = DokumenJaminan::find($jaminan); + $debitur = Debiture::find($document->debiture_id); + $provinces = Province::all(); + $cities = City::where('province_code', $document->province_code)->get(); + $districts = District::where('city_code', $document->city_code)->get(); + $villages = Village::where('district_code', $document->district_code)->get(); + $jenisJaminan = JenisJaminan::all(); + $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); + $pemilikJaminan = PemilikJaminan::all(); + + return view( + 'lpj::debitur.jaminan', + compact( + 'debitur', + 'provinces', + 'jenisJaminan', + 'jenisLegalitasJaminan', + 'document', + 'cities', + 'districts', + 'villages', + 'pemilikJaminan', + ), + ); + } + + public function destroy($id, $jaminan_id) + { + try { + $jaminan = DokumenJaminan::find($jaminan_id); + $jaminan->delete(); + echo json_encode(['success' => true, 'message' => 'Dokumen Jaminan deleted successfully']); + } catch (Exception $e) { + echo json_encode(['success' => false, 'message' => 'Failed to delete Dokumen Jaminan']); + } + } + } diff --git a/database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php b/database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php index a6db5c4..bc20527 100644 --- a/database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php +++ b/database/migrations/2024_08_20_090400_create_dokumen_jaminan_table.php @@ -18,10 +18,10 @@ use Illuminate\Support\Facades\Schema; Schema::create('dokumen_jaminan', function (Blueprint $table) { $table->id(); $table->string('name'); - $table->foreignIdFor(Debiture::class)->constrained()->onDelete('cascade'); - $table->foreignIdFor(JenisJaminan::class)->constrained()->onDelete('cascade'); - $table->foreignIdFor(PemilikJaminan::class)->constrained()->onDelete('cascade'); - $table->foreignIdFor(JenisLegalitasJaminan::class)->constrained()->onDelete('cascade'); + $table->foreignIdFor(Debiture::class)->constrained('debitures')->onDelete('cascade'); + $table->foreignIdFor(JenisJaminan::class)->constrained('jenis_jaminan')->onDelete('cascade'); + $table->foreignIdFor(PemilikJaminan::class)->constrained('pemilik_jaminan')->onDelete('cascade'); + $table->foreignIdFor(JenisLegalitasJaminan::class)->constrained('jenis_legalitas_jaminan')->onDelete('cascade'); $table->string('province_code')->nullable()->index(); $table->string('city_code')->nullable()->index(); $table->string('district_code')->nullable()->index(); diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index cda5aa5..ac632a0 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -22,17 +22,19 @@ Tambah Pemilik Jaminan @@ -88,17 +90,17 @@ @enderror -
- -
- - @error('name') - {{ $message }} - @enderror -
+
+ +
+ + @error('name') + {{ $message }} + @enderror
+