Update Dokumen Jaminan
- Move to Dokumen Jaminan Controller, for easy maintenance - grouping router
This commit is contained in:
parent
9c05779fbd
commit
0bdade3456
@ -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')) {
|
||||
|
181
app/Http/Controllers/DokumenJaminanController.php
Normal file
181
app/Http/Controllers/DokumenJaminanController.php
Normal file
@ -0,0 +1,181 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\Lpj\Http\Controllers;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Exception;
|
||||
use Modules\Location\Models\City;
|
||||
use Modules\Location\Models\District;
|
||||
use Modules\Location\Models\Province;
|
||||
use Modules\Location\Models\Village;
|
||||
use Modules\Lpj\Http\Requests\DokumenJaminanRequest;
|
||||
use Modules\Lpj\Models\Debiture;
|
||||
use Modules\Lpj\Models\DokumenJaminan;
|
||||
use Modules\Lpj\Models\JenisJaminan;
|
||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||
use Modules\Lpj\Models\PemilikJaminan;
|
||||
|
||||
class DokumenJaminanController extends Controller
|
||||
{
|
||||
public $user;
|
||||
|
||||
|
||||
public function index($id)
|
||||
{
|
||||
$debitur = Debiture::find($id);
|
||||
$documents = DokumenJaminan::with('pemilik')->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']);
|
||||
}
|
||||
}
|
||||
}
|
@ -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();
|
||||
|
@ -22,6 +22,7 @@
|
||||
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
|
||||
<option value="">Pilih Pemilik Jaminan</option>
|
||||
<option value="0">Sama Dengan Debitur</option>
|
||||
@if(isset($pemilikJaminan))
|
||||
@foreach($pemilikJaminan as $pemilik)
|
||||
@if(isset($document))
|
||||
<option value="{{ $pemilik->id }}" {{ isset($document->pemilik_jaminan_id) && $document->pemilik_jaminan_id == $pemilik->id?'selected' : '' }}>
|
||||
@ -33,6 +34,7 @@
|
||||
</option>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
</select>
|
||||
<span class="btn btn-light">
|
||||
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
|
||||
@ -107,7 +109,8 @@
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="file-input @error('dokumen_jaminan') border-danger @enderror" type="file" name="dokumen_jaminan" value="">
|
||||
@if(isset($document->dokumen_jaminan))
|
||||
<a href="{{ route('debitur.download',$document->id) }}" class="mt-1 badge badge-sm badge-outline">{{ basename($document->dokumen_jaminan) }} <i class="ki-filled ki-cloud-download"></i></a>
|
||||
<a href="{{ route('debitur.download',$document->id) }}" class="mt-1 badge badge-sm badge-outline">{{ basename($document->dokumen_jaminan) }}
|
||||
<i class="ki-filled ki-cloud-download"></i></a>
|
||||
@endif
|
||||
@error('dokumen_jaminan')
|
||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||
|
@ -11,7 +11,7 @@
|
||||
<div class="card-header" id="basic_settings">
|
||||
<div class="card-title flex flex-row gap-1.5">
|
||||
<a href="{{ route('debitur.edit',$debitur->id) }}" class="btn btn-xs {{ request()->routeIs('debitur.edit') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Debitur</a>
|
||||
<a href="{{ route('debitur.jaminan',$debitur->id) }}" class="btn btn-xs {{ request()->routeIs('debitur.jaminan') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Pinjaman</a>
|
||||
<a href="{{ route('debitur.jaminan.index',$debitur->id) }}" class="btn btn-xs {{ request()->routeIs('debitur.jaminan') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Pinjaman</a>
|
||||
</div>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('debitur.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
|
||||
|
@ -13,7 +13,7 @@
|
||||
{{ isset($document->id) ? 'Edit' : 'Tambah' }} Data Jaminan
|
||||
</h3>
|
||||
<div class="flex items-center gap-2">
|
||||
<a href="{{ route('debitur.jaminan',$debitur->id) }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
|
||||
<a href="{{ route('debitur.jaminan.index',$debitur->id) }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
|
@ -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');
|
||||
});
|
||||
|
||||
|
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user