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 @@ Pilih Pemilik Jaminan Sama Dengan Debitur - @foreach($pemilikJaminan as $pemilik) - @if(isset($document)) - pemilik_jaminan_id) && $document->pemilik_jaminan_id == $pemilik->id?'selected' : '' }}> - {{ $pemilik->name }} - - @else - - {{ $Pemilik->name }} - - @endif - @endforeach + @if(isset($pemilikJaminan)) + @foreach($pemilikJaminan as $pemilik) + @if(isset($document)) + pemilik_jaminan_id) && $document->pemilik_jaminan_id == $pemilik->id?'selected' : '' }}> + {{ $pemilik->name }} + + @else + + {{ $Pemilik->name }} + + @endif + @endforeach + @endif Tambah Pemilik Jaminan @@ -88,17 +90,17 @@ @enderror - - - Nama Dokumen - - - - @error('name') - {{ $message }} - @enderror - + + + Nama Dokumen + + + + @error('name') + {{ $message }} + @enderror + @@ -107,7 +109,8 @@ @if(isset($document->dokumen_jaminan)) - {{ basename($document->dokumen_jaminan) }} + {{ basename($document->dokumen_jaminan) }} + @endif @error('dokumen_jaminan') {{ $message }} diff --git a/resources/views/debitur/edit.blade.php b/resources/views/debitur/edit.blade.php index 754548f..8f5d89b 100644 --- a/resources/views/debitur/edit.blade.php +++ b/resources/views/debitur/edit.blade.php @@ -11,7 +11,7 @@ Data Debitur - Data Pinjaman + Data Pinjaman Back diff --git a/resources/views/debitur/jaminan.blade.php b/resources/views/debitur/jaminan.blade.php index d7938f3..cf6797e 100644 --- a/resources/views/debitur/jaminan.blade.php +++ b/resources/views/debitur/jaminan.blade.php @@ -13,7 +13,7 @@ {{ isset($document->id) ? 'Edit' : 'Tambah' }} Data Jaminan - Back + Back diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index b99a5f2..bacd59b 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -202,18 +202,18 @@ $trail->push('Data Debitur'); }); - Breadcrumbs::for('debitur.jaminan', function (BreadcrumbTrail $trail) { + Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { $trail->parent('debitur'); $trail->push('Data Jaminan Debitur'); }); Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan'); + $trail->parent('debitur.jaminan.index'); $trail->push('Tambah Data Jaminan Debitur'); }); Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan'); + $trail->parent('debitur.jaminan.index'); $trail->push('Edit Data Jaminan Debitur'); }); diff --git a/routes/web.php b/routes/web.php index 14ece25..09c641c 100644 --- a/routes/web.php +++ b/routes/web.php @@ -5,6 +5,7 @@ use Modules\Lpj\Http\Controllers\BranchController; use Modules\Lpj\Http\Controllers\CurrencyController; use Modules\Lpj\Http\Controllers\DebitureController; + use Modules\Lpj\Http\Controllers\DokumenJaminanController; use Modules\Lpj\Http\Controllers\HubunganPemilikJaminanController; use Modules\Lpj\Http\Controllers\HubunganPenghuniJaminanController; use Modules\Lpj\Http\Controllers\JenisAsetController; @@ -155,12 +156,14 @@ Route::get('export', [DebitureController::class, 'export'])->name('export'); - Route::get('{id}/jaminan', [DebitureController::class, 'jaminan'])->name('jaminan'); - Route::get('{id}/jaminan/create', [DebitureController::class, 'createJaminan'])->name('jaminan.create'); - Route::get('{id}/jaminan/{jaminan}/edit', [DebitureController::class,'editJaminan'])->name('jaminan.edit'); - Route::put('{id}/jaminan/{jaminan}', [DebitureController::class, 'updateJaminan'])->name('jaminan.update'); - Route::post('{id}/jaminan/store', [DebitureController::class,'storeJaminan'])->name('jaminan.store'); - Route::delete('{id}/jaminan/{jaminan}', [DebitureController::class, 'destroyJaminan'])->name('jaminan.destroy'); + Route::name('jaminan.')->prefix('{id}/jaminan')->group(function(){ + Route::get('/', [DokumenJaminanController::class, 'index'])->name('index'); + Route::get('create', [DokumenJaminanController::class, 'create'])->name('create'); + Route::get('{jaminan}/edit', [DokumenJaminanController::class,'edit'])->name('edit'); + Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update'); + Route::post('store', [DokumenJaminanController::class,'store'])->name('store'); + Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy'); + }); }); Route::resource('debitur', DebitureController::class);