Merge branch 'staging' of https://git.putrakuningan.com/daengdeni/lpj into tender
This commit is contained in:
@@ -14,6 +14,7 @@
|
|||||||
use Modules\Lpj\Models\Debiture;
|
use Modules\Lpj\Models\Debiture;
|
||||||
use Modules\Lpj\Models\DetailDokumenJaminan;
|
use Modules\Lpj\Models\DetailDokumenJaminan;
|
||||||
use Modules\Lpj\Models\DokumenJaminan;
|
use Modules\Lpj\Models\DokumenJaminan;
|
||||||
|
use Modules\Lpj\Models\HubunganPemilikJaminan;
|
||||||
use Modules\Lpj\Models\JenisJaminan;
|
use Modules\Lpj\Models\JenisJaminan;
|
||||||
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
use Modules\Lpj\Models\JenisLegalitasJaminan;
|
||||||
use Modules\Lpj\Models\PemilikJaminan;
|
use Modules\Lpj\Models\PemilikJaminan;
|
||||||
@@ -125,10 +126,18 @@
|
|||||||
$jenisJaminan = JenisJaminan::all();
|
$jenisJaminan = JenisJaminan::all();
|
||||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
$pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get();
|
||||||
|
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.jaminan',
|
'lpj::debitur.jaminan',
|
||||||
compact('debitur', 'provinces', 'jenisJaminan', 'jenisLegalitasJaminan', 'pemilikJaminan'),
|
compact(
|
||||||
|
'debitur',
|
||||||
|
'provinces',
|
||||||
|
'jenisJaminan',
|
||||||
|
'jenisLegalitasJaminan',
|
||||||
|
'pemilikJaminan',
|
||||||
|
'hubunganPemilik',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -142,6 +151,49 @@
|
|||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
$validate['debiture_id'] = $id;
|
$validate['debiture_id'] = $id;
|
||||||
|
|
||||||
|
if ($validate['pemilik_jaminan_id'] == 00) {
|
||||||
|
$pemilik_jaminan = [
|
||||||
|
'hubungan_pemilik_jaminan_id' => request()->get('hubungan_pemilik_jaminan_id'),
|
||||||
|
'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,
|
||||||
|
'nomor_id' => request()->get('nomor_id'),
|
||||||
|
'name' => request()->get('pemilik_name'),
|
||||||
|
];
|
||||||
|
|
||||||
|
$detailSertifikat = [];
|
||||||
|
$names = request()->input('detail_sertifikat.name', []);
|
||||||
|
$nomorIds = request()->input('detail_sertifikat.nomor_id', []);
|
||||||
|
|
||||||
|
foreach ($names as $index => $name) {
|
||||||
|
if (isset($nomorIds[$index])) {
|
||||||
|
$detailSertifikat[] = [
|
||||||
|
'name' => $name,
|
||||||
|
'nomor_id' => $nomorIds[$index],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$pemilik_jaminan['detail_sertifikat'] = json_encode($detailSertifikat);
|
||||||
|
|
||||||
|
//dd($pemilik_jaminan);
|
||||||
|
|
||||||
|
try{
|
||||||
|
$pemilikJaminan = PemilikJaminan::updateOrCreate([
|
||||||
|
'debiture_id' => $id,
|
||||||
|
'name' => request()->get('pemilik_name'),
|
||||||
|
], $pemilik_jaminan);
|
||||||
|
} catch (Exception $e){
|
||||||
|
return redirect()->route('debitur.jaminan.index', $id)->with('error', 'Gagal update pemilik jaminan: '. $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
$validate['pemilik_jaminan_id']=$pemilikJaminan->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($validate['pemilik_jaminan_id'] == 0) {
|
if ($validate['pemilik_jaminan_id'] == 0) {
|
||||||
$pemilik_jaminan = [
|
$pemilik_jaminan = [
|
||||||
'hubungan_pemilik_jaminan_id' => 1,
|
'hubungan_pemilik_jaminan_id' => 1,
|
||||||
@@ -160,11 +212,14 @@
|
|||||||
'debiture_id' => $id,
|
'debiture_id' => $id,
|
||||||
'name' => $debitur->name,
|
'name' => $debitur->name,
|
||||||
], $pemilik_jaminan);
|
], $pemilik_jaminan);
|
||||||
|
|
||||||
|
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
$document = DokumenJaminan::find($jaminan);
|
$document = DokumenJaminan::find($jaminan);
|
||||||
$document->update($validate);
|
$document->update($validate);
|
||||||
|
|
||||||
|
|
||||||
if ($request->detail_dokumen_jaminan_id) {
|
if ($request->detail_dokumen_jaminan_id) {
|
||||||
foreach ($request->detail_dokumen_jaminan_id as $key => $value) {
|
foreach ($request->detail_dokumen_jaminan_id as $key => $value) {
|
||||||
if (isset($request->dokumen_jaminan[$key])) {
|
if (isset($request->dokumen_jaminan[$key])) {
|
||||||
@@ -239,6 +294,7 @@
|
|||||||
$jenisJaminan = JenisJaminan::all();
|
$jenisJaminan = JenisJaminan::all();
|
||||||
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
|
||||||
$pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get();
|
$pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get();
|
||||||
|
$hubunganPemilik = HubunganPemilikJaminan::all();
|
||||||
|
|
||||||
return view(
|
return view(
|
||||||
'lpj::debitur.jaminan',
|
'lpj::debitur.jaminan',
|
||||||
@@ -253,6 +309,7 @@
|
|||||||
'districts',
|
'districts',
|
||||||
'villages',
|
'villages',
|
||||||
'pemilikJaminan',
|
'pemilikJaminan',
|
||||||
|
'hubunganPemilik',
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -307,9 +364,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
return response()->download($zipFilePath, $zipFileName, [
|
return response()->download($zipFilePath, $zipFileName, [
|
||||||
'Content-Type' => 'application/zip',
|
'Content-Type' => 'application/zip',
|
||||||
'Content-Disposition' => 'attachment; filename="' . $zipFileName . '"',
|
'Content-Disposition' => 'attachment; filename="' . $zipFileName . '"',
|
||||||
'Content-Length' => filesize($zipFilePath),
|
'Content-Length' => filesize($zipFilePath),
|
||||||
])->deleteFileAfterSend(false);
|
])->deleteFileAfterSend(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,5 @@
|
|||||||
$this->merge([
|
$this->merge([
|
||||||
'detail_sertifikat' => json_encode($detailSertifikat),
|
'detail_sertifikat' => json_encode($detailSertifikat),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,9 +22,10 @@
|
|||||||
</label>
|
</label>
|
||||||
<div class="flex flex-wrap items-baseline w-full">
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
<div class="input-group w-full">
|
<div class="input-group w-full">
|
||||||
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
|
<select onchange="changePemilikJaminan()" class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="pemilik_jaminan_id" id="pemilik_jaminan_id">
|
||||||
<option value="">Pilih Pemilik Jaminan</option>
|
<option value="">Pilih Pemilik Jaminan</option>
|
||||||
<option value="0">Sama Dengan Debitur</option>
|
<option value="0">Sama Dengan Debitur</option>
|
||||||
|
<option value="00">Tidak Sama Dengan Debitur</option>
|
||||||
@if(isset($pemilikJaminan))
|
@if(isset($pemilikJaminan))
|
||||||
@foreach($pemilikJaminan as $pemilik)
|
@foreach($pemilikJaminan as $pemilik)
|
||||||
@if(isset($document))
|
@if(isset($document))
|
||||||
@@ -39,19 +40,71 @@
|
|||||||
@endforeach
|
@endforeach
|
||||||
@endif
|
@endif
|
||||||
</select>
|
</select>
|
||||||
@if(isset($document->id))
|
|
||||||
<a href="{{ route('debitur.pemilik.create',$debitur->id) }}?from=update-document&document={{ $document->id }}" class="btn btn-light">
|
|
||||||
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
|
|
||||||
</a>
|
|
||||||
@else
|
|
||||||
<a href="{{ route('debitur.pemilik.create',$debitur->id) }}?from=create-document" class="btn btn-light">
|
|
||||||
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
|
|
||||||
</a>
|
|
||||||
@endif
|
|
||||||
</div>
|
</div>
|
||||||
@error('pemilik_jaminan_id')
|
@error('pemilik_jaminan_id')
|
||||||
<em class="alert text-danger text-sm">{{ $message }}</em>
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
@enderror
|
@enderror
|
||||||
|
<fieldset id="pemilik_jaminan" class="hidden border border-solid border-gray-300 p-3 w-full mt-5 grid gap-5">
|
||||||
|
<legend class="text-sm">Pemilik Jaminan</legend>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Hubungan Pemilik Jaminan
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="hubungan_pemilik_jaminan_id" id="hubungan_pemilik_jaminan_id">
|
||||||
|
<option value="">Pilih Hubungan Pemilik Jaminan</option>
|
||||||
|
@if(isset($hubunganPemilik))
|
||||||
|
@foreach($hubunganPemilik as $hubungan)
|
||||||
|
@if(isset($pemilik))
|
||||||
|
<option value="{{ $hubungan->id }}" {{ isset($pemilik->hubungan_pemilik_jaminan_id) && $pemilik->hubungan_pemilik_jaminan_id == $hubungan->id?'selected' : '' }}>
|
||||||
|
{{ $hubungan->name }}
|
||||||
|
</option>
|
||||||
|
@else
|
||||||
|
<option value="{{ $hubungan->id }}">
|
||||||
|
{{ $hubungan->name }}
|
||||||
|
</option>
|
||||||
|
@endif
|
||||||
|
@endforeach
|
||||||
|
@endif
|
||||||
|
</select>
|
||||||
|
@error('hubungan_pemilik_jaminan_id')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama Lengkap
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="flex flex-col lg:flex-row gap-2 w-full">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input @error('pemilik_name') border-danger bg-danger-light @enderror" type="text " id="pemilik_name" name="pemilik_name" value="{{ $pemilik->name ?? '' }}" placeholder="Nama Pemilik Jaminan">
|
||||||
|
@error('pemilik_name')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input @error('nomor_id') border-danger bg-danger-light @enderror" type="number" name="nomor_id" value="{{ $debitur->nomor_id ?? '' }}" placeholder="Nomor ID/KTP">
|
||||||
|
@error('nomor_id')
|
||||||
|
<em class="alert text-danger text-sm">{{ $message }}</em>
|
||||||
|
@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="nama_sertifikat">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<button type="button" id="tambah_sertifikat" class="btn btn-primary btn-xs">Tambah Nama di Sertifikat</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<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">
|
||||||
@@ -244,6 +297,61 @@
|
|||||||
</form>
|
</form>
|
||||||
|
|
||||||
@push('scripts')
|
@push('scripts')
|
||||||
|
{{--Pemilik Jaminan--}}
|
||||||
|
<script>
|
||||||
|
document.addEventListener("DOMContentLoaded", function() {
|
||||||
|
const namaSertifikatDiv = document.getElementById("nama_sertifikat");
|
||||||
|
|
||||||
|
// Function to add delete event listeners to existing buttons
|
||||||
|
function addDeleteListeners() {
|
||||||
|
document.querySelectorAll(".delete-button").forEach(button => {
|
||||||
|
button.addEventListener("click", function() {
|
||||||
|
this.closest(".flex.items-baseline.flex-wrap.lg\\:flex-nowrap.gap-2\\.5.mb-5").remove();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add delete listeners to existing buttons
|
||||||
|
addDeleteListeners();
|
||||||
|
|
||||||
|
document.getElementById("tambah_sertifikat").addEventListener("click", function() {
|
||||||
|
const newDiv = document.createElement("div");
|
||||||
|
newDiv.className = "flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-5";
|
||||||
|
newDiv.innerHTML = `
|
||||||
|
<label class="form-label max-w-56">
|
||||||
|
Nama Lengkap
|
||||||
|
</label>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<div class="flex flex-col lg:flex-row gap-2 w-full">
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="text" name="detail_sertifikat[name][]" value="" placeholder="Nama Pemilik Jaminan">
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-wrap items-baseline w-full">
|
||||||
|
<input class="input" type="number" name="detail_sertifikat[nomor_id][]" value="" placeholder="Nomor ID/KTP">
|
||||||
|
</div>
|
||||||
|
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
namaSertifikatDiv.appendChild(newDiv);
|
||||||
|
|
||||||
|
// Add delete listener to the new button
|
||||||
|
addDeleteListeners();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
function changePemilikJaminan() {
|
||||||
|
var pemilikJaminan = document.getElementById('pemilik_jaminan_id').value;
|
||||||
|
var fieldsetPemilikJaminan = document.getElementById('pemilik_jaminan');
|
||||||
|
if(pemilikJaminan === '00') {
|
||||||
|
fieldsetPemilikJaminan.classList.remove('hidden');
|
||||||
|
} else {
|
||||||
|
fieldsetPemilikJaminan.classList.add('hidden');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{{--Legalitas Jaminan--}}
|
||||||
<script>
|
<script>
|
||||||
function getLegalitasJaminan() {
|
function getLegalitasJaminan() {
|
||||||
var legalitasJaminan = document.getElementById('jenis_jaminan_id').value;
|
var legalitasJaminan = document.getElementById('jenis_jaminan_id').value;
|
||||||
|
|||||||
Reference in New Issue
Block a user