Fix Update and Delete Dokumen Jaminan
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use Exception;
|
use Exception;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Storage;
|
||||||
use Modules\Location\Models\City;
|
use Modules\Location\Models\City;
|
||||||
use Modules\Location\Models\District;
|
use Modules\Location\Models\District;
|
||||||
use Modules\Location\Models\Province;
|
use Modules\Location\Models\Province;
|
||||||
@@ -25,7 +26,7 @@
|
|||||||
public function index($id)
|
public function index($id)
|
||||||
{
|
{
|
||||||
$debitur = Debiture::find($id);
|
$debitur = Debiture::find($id);
|
||||||
$documents = DokumenJaminan::with('pemilik','detail')->where('debiture_id', $id)->get();
|
$documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get();
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.edit',
|
'lpj::debitur.edit',
|
||||||
@@ -68,7 +69,6 @@
|
|||||||
$document = DokumenJaminan::create($validate);
|
$document = DokumenJaminan::create($validate);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
|
||||||
foreach ($request->dokumen_jaminan as $key => $value) {
|
foreach ($request->dokumen_jaminan as $key => $value) {
|
||||||
$file_name = $value->getClientOriginalName();
|
$file_name = $value->getClientOriginalName();
|
||||||
|
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
$file_name = $value->getClientOriginalName();
|
$file_name = $value->getClientOriginalName();
|
||||||
$value->storeAs(
|
$value->storeAs(
|
||||||
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
||||||
$file_name
|
$file_name,
|
||||||
);
|
);
|
||||||
|
|
||||||
$detail = [
|
$detail = [
|
||||||
@@ -92,17 +92,17 @@
|
|||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||||
'error',
|
'error',
|
||||||
'Gagal upload file dokumen jaminan '. $key. ': '. $e->getMessage(),
|
'Gagal upload file dokumen jaminan ' . $key . ': ' . $e->getMessage(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
DB::commit();
|
DB::commit();
|
||||||
}catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||||
'error',
|
'error',
|
||||||
'gg'.$e->getMessage(),
|
'gg' . $e->getMessage(),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
);
|
);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with('error','ggl'. $e->getMessage());
|
return redirect()->route('debitur.jaminan.index', $id)->with('error', 'ggl' . $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -138,6 +138,7 @@
|
|||||||
$validate = $request->validated();
|
$validate = $request->validated();
|
||||||
if ($validate) {
|
if ($validate) {
|
||||||
try {
|
try {
|
||||||
|
DB::beginTransaction();
|
||||||
$validate['debiture_id'] = $id;
|
$validate['debiture_id'] = $id;
|
||||||
|
|
||||||
if ($validate['pemilik_jaminan_id'] == 0) {
|
if ($validate['pemilik_jaminan_id'] == 0) {
|
||||||
@@ -160,29 +161,77 @@
|
|||||||
], $pemilik_jaminan);
|
], $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 = DokumenJaminan::find($jaminan);
|
||||||
$document->update($validate);
|
$document->update($validate);
|
||||||
|
|
||||||
|
if ($request->detail_dokumen_jaminan_id) {
|
||||||
|
foreach ($request->detail_dokumen_jaminan_id as $key => $value) {
|
||||||
|
if (isset($request->dokumen_jaminan[$key])) {
|
||||||
|
$file = $request->dokumen_jaminan[$key];
|
||||||
|
if ($file) {
|
||||||
|
$file_name = $file->getClientOriginalName();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($file_name)) {
|
||||||
|
$file->storeAs(
|
||||||
|
'public/jaminan/' . $debitur->id . '/' . $document->id . '/',
|
||||||
|
$file_name,
|
||||||
|
);
|
||||||
|
|
||||||
|
$detail = [
|
||||||
|
'dokumen_jaminan_id' => $document->id,
|
||||||
|
'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key],
|
||||||
|
'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name,
|
||||||
|
'name' => $request->name[$key],
|
||||||
|
'keterangan' => $request->keterangan[$key],
|
||||||
|
];
|
||||||
|
if (isset($request->detail_dokumen_jaminan_id[$key])) {
|
||||||
|
$detailDocument = DetailDokumenJaminan::find(
|
||||||
|
$request->detail_dokumen_jaminan_id[$key],
|
||||||
|
);
|
||||||
|
|
||||||
|
$detailDocument->update($detail);
|
||||||
|
$detailDocument->save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$detail = [
|
||||||
|
'dokumen_jaminan_id' => $document->id,
|
||||||
|
'jenis_legalitas_jaminan_id' => $request->jenis_legalitas_jaminan_id[$key],
|
||||||
|
'name' => $request->name[$key],
|
||||||
|
'keterangan' => $request->keterangan[$key],
|
||||||
|
];
|
||||||
|
|
||||||
|
if (isset($request->detail_dokumen_jaminan_id[$key])) {
|
||||||
|
$detailDocument = DetailDokumenJaminan::find(
|
||||||
|
$request->detail_dokumen_jaminan_id[$key],
|
||||||
|
);
|
||||||
|
$detailDocument->update($detail);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DB::commit();
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||||
'success',
|
'success',
|
||||||
'Dokumen Jaminan berhasil diubah',
|
'Dokumen Jaminan berhasil diubah',
|
||||||
);
|
);
|
||||||
} catch (Exception $e) {
|
} catch
|
||||||
|
(Exception $e) {
|
||||||
|
DB::rollBack();
|
||||||
return redirect()->route('debitur.jaminan.index', $id)->with('error', $e->getMessage());
|
return redirect()->route('debitur.jaminan.index', $id)->with('error', $e->getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function edit($id, $jaminan)
|
public
|
||||||
{
|
function edit(
|
||||||
|
$id,
|
||||||
|
$jaminan,
|
||||||
|
) {
|
||||||
$document = DokumenJaminan::find($jaminan);
|
$document = DokumenJaminan::find($jaminan);
|
||||||
|
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get();
|
||||||
$debitur = Debiture::find($document->debiture_id);
|
$debitur = Debiture::find($document->debiture_id);
|
||||||
$provinces = Province::all();
|
$provinces = Province::all();
|
||||||
$cities = City::where('province_code', $document->province_code)->get();
|
$cities = City::where('province_code', $document->province_code)->get();
|
||||||
@@ -200,6 +249,7 @@
|
|||||||
'jenisJaminan',
|
'jenisJaminan',
|
||||||
'jenisLegalitasJaminan',
|
'jenisLegalitasJaminan',
|
||||||
'document',
|
'document',
|
||||||
|
'details',
|
||||||
'cities',
|
'cities',
|
||||||
'districts',
|
'districts',
|
||||||
'villages',
|
'villages',
|
||||||
@@ -208,10 +258,18 @@
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function destroy($id, $jaminan_id)
|
public
|
||||||
{
|
function destroy(
|
||||||
|
$id,
|
||||||
|
$jaminan_id,
|
||||||
|
) {
|
||||||
try {
|
try {
|
||||||
$jaminan = DokumenJaminan::find($jaminan_id);
|
$jaminan = DokumenJaminan::find($jaminan_id);
|
||||||
|
$details = DetailDokumenJaminan::where('dokumen_jaminan_id',$jaminan->id)->get();
|
||||||
|
foreach ($details as $detail){
|
||||||
|
Storage::delete('public/'. $detail->dokumen_jaminan);
|
||||||
|
$detail->delete();
|
||||||
|
}
|
||||||
$jaminan->delete();
|
$jaminan->delete();
|
||||||
echo json_encode(['success' => true, 'message' => 'Dokumen Jaminan deleted successfully']);
|
echo json_encode(['success' => true, 'message' => 'Dokumen Jaminan deleted successfully']);
|
||||||
} catch (Exception $e) {
|
} catch (Exception $e) {
|
||||||
@@ -219,7 +277,10 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public function download($id){
|
public
|
||||||
|
function download(
|
||||||
|
$id,
|
||||||
|
) {
|
||||||
$document = DetailDokumenJaminan::find($id);
|
$document = DetailDokumenJaminan::find($id);
|
||||||
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
|
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -56,7 +56,10 @@
|
|||||||
Jenis Jaminan
|
Jenis Jaminan
|
||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<select onchange="getLegalitasJaminan()" class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="jenis_jaminan_id" id="jenis_jaminan_id">
|
@if(isset($document->id))
|
||||||
|
<input type="hidden" name="jenis_jaminan_id" value="{{ $document->jenis_jaminan_id }}">
|
||||||
|
@endif
|
||||||
|
<select onchange="getLegalitasJaminan()" {{ isset($document->id) ? "disabled" : "" }} class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="jenis_jaminan_id" id="jenis_jaminan_id">
|
||||||
<option value="">Pilih Jenis Jaminan</option>
|
<option value="">Pilih Jenis Jaminan</option>
|
||||||
@foreach($jenisJaminan as $row)
|
@foreach($jenisJaminan as $row)
|
||||||
@if(isset($document))
|
@if(isset($document))
|
||||||
@@ -74,9 +77,51 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="doctainer" class="grid gap-5">
|
@if(isset($document->id))
|
||||||
|
@foreach($document->detail as $detail)
|
||||||
|
<input type="hidden" name="detail_dokumen_jaminan_id[]" value="{{ $detail->id }}">
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56 font-bold">
|
||||||
|
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
|
||||||
|
</label>
|
||||||
|
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value=" {{ $detail->jenis_legalitas_jaminan_id }}">
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama Dokumen
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input " type="text" id="name" name="name[]" value="{{ $detail->name ?? "" }}" placeholder="Nama Dokumen">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Dokumen Jaminan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="file-input" type="file" name="dokumen_jaminan[]" value="">
|
||||||
|
@if(isset($detail->dokumen_jaminan))
|
||||||
|
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id,'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline mt-2">{{ basename($detail->dokumen_jaminan) }} <i class="ki-filled ki-cloud-download"></i></a>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Keterangan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<textarea class="textarea" rows="3" type="number" name="keterangan[]">{{ $detail->keterangan ?? "" }}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
@else
|
||||||
|
<div id="doctainer" class="grid gap-5">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56">
|
<label class="form-label max-w-56">
|
||||||
@@ -215,11 +260,11 @@
|
|||||||
console.log(data);
|
console.log(data);
|
||||||
var doctainer = document.getElementById('doctainer');
|
var doctainer = document.getElementById('doctainer');
|
||||||
doctainer.innerHTML = '';
|
doctainer.innerHTML = '';
|
||||||
data.forEach((item,index) => {
|
data.forEach((item, index) => {
|
||||||
doctainer.innerHTML += `
|
doctainer.innerHTML += `
|
||||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
<label class="form-label max-w-56 font-bold">
|
<label class="form-label max-w-56 font-bold">
|
||||||
${index+1}. ${item.name}
|
${index + 1}. ${item.name}
|
||||||
</label>
|
</label>
|
||||||
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value="${item.id}">
|
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value="${item.id}">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user