Add 'details' column to 'detail_dokumen_jaminan' table
This migration adds a nullable 'details' column to the 'detail_dokumen_jaminan' table. The column is used to store custom field data in JSON format. Various parts of the application, including the model, controller, and view, have been updated to handle this new column.
This commit is contained in:
@@ -88,6 +88,7 @@
|
||||
'dokumen_jaminan' => 'jaminan/' . $debitur->id . '/' . $document->id . '/' . $file_name,
|
||||
'name' => $request->name[$key],
|
||||
'keterangan' => $request->keterangan[$key],
|
||||
'details' => isset($request->custom_field[$key]) ? json_encode($request->custom_field[$key]) : '',
|
||||
];
|
||||
DetailDokumenJaminan::create($detail);
|
||||
} catch (Exception $e) {
|
||||
@@ -181,16 +182,19 @@
|
||||
|
||||
//dd($pemilik_jaminan);
|
||||
|
||||
try{
|
||||
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());
|
||||
} catch (Exception $e) {
|
||||
return redirect()->route('debitur.jaminan.index', $id)->with(
|
||||
'error',
|
||||
'Gagal update pemilik jaminan: ' . $e->getMessage(),
|
||||
);
|
||||
}
|
||||
|
||||
$validate['pemilik_jaminan_id']=$pemilikJaminan->id;
|
||||
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
'name',
|
||||
'dokumen_jaminan',
|
||||
'keterangan',
|
||||
|
||||
'details',
|
||||
'status',
|
||||
'authorized_at',
|
||||
'authorized_status',
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('detail_dokumen_jaminan', function (Blueprint $table) {
|
||||
$table->string('details')->nullable()->after('dokumen_jaminan_id');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('detail_dokumen_jaminan', function (Blueprint $table) {
|
||||
$table->dropColumn('details');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -165,6 +165,18 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if($detail->details)
|
||||
@php $custom_field = json_decode($detail->details,true) @endphp
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
{{ str_replace('_',' ',$detail->jenisLegalitasJaminan->custom_field) }}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
<input class="input" type="text" name="custom_field[][$detail->jenisLegalitasJaminan->custom_field]" value="{{ $custom_field[$detail->jenisLegalitasJaminan->custom_field] }}">
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Keterangan
|
||||
@@ -341,12 +353,12 @@
|
||||
});
|
||||
|
||||
function changePemilikJaminan() {
|
||||
var pemilikJaminan = document.getElementById('pemilik_jaminan_id').value;
|
||||
var fieldsetPemilikJaminan = document.getElementById('pemilik_jaminan');
|
||||
if(pemilikJaminan === '00') {
|
||||
fieldsetPemilikJaminan.classList.remove('hidden');
|
||||
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');
|
||||
fieldsetPemilikJaminan.classList.add("hidden");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -354,12 +366,12 @@
|
||||
{{--Legalitas Jaminan--}}
|
||||
<script>
|
||||
function getLegalitasJaminan() {
|
||||
var legalitasJaminan = document.getElementById('jenis_jaminan_id').value;
|
||||
var url = '/basic-data/jenis-jaminan/legalitas/' + legalitasJaminan;
|
||||
var legalitasJaminan = document.getElementById("jenis_jaminan_id").value;
|
||||
var url = "/basic-data/jenis-jaminan/legalitas/" + legalitasJaminan;
|
||||
fetch(url, {
|
||||
method: 'GET',
|
||||
method: "GET",
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
})
|
||||
.then(response => {
|
||||
@@ -369,8 +381,8 @@
|
||||
return response.json();
|
||||
})
|
||||
.then(data => {
|
||||
var doctainer = document.getElementById('doctainer');
|
||||
doctainer.innerHTML = '';
|
||||
var doctainer = document.getElementById("doctainer");
|
||||
doctainer.innerHTML = "";
|
||||
data.forEach((item, index) => {
|
||||
doctainer.innerHTML += `
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
@@ -398,6 +410,27 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
${item.custom_field && item.custom_field.length > 0 ? `
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56 capitalize">
|
||||
${item.custom_field.replace(/_/g, " ")}
|
||||
</label>
|
||||
<div class="flex flex-wrap items-baseline w-full">
|
||||
${item.custom_field_type === "text" ? `
|
||||
<input class="input" type="text" name="custom_field[][${item.custom_field}]">
|
||||
` : item.custom_field_type === "number" ? `
|
||||
<input class="input" type="number" name="custom_field[][${item.custom_field}]">
|
||||
` : item.custom_field_type === "date" ? `
|
||||
<input class="input" type="date" name="custom_field[][${item.custom_field}]">
|
||||
` : item.custom_field_type === "textarea" ? `
|
||||
<textarea class="textarea" rows="3" name="custom_field[][${item.custom_field}]"></textarea>
|
||||
` : `
|
||||
<input class="input" type="text" name="custom_field[][${item.custom_field}]">
|
||||
`}
|
||||
</div>
|
||||
</div>
|
||||
` : ""}
|
||||
|
||||
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
|
||||
<label class="form-label max-w-56">
|
||||
Keterangan
|
||||
@@ -406,10 +439,10 @@
|
||||
<textarea class="textarea" rows="3" type="number" name="keterangan[]"></textarea>
|
||||
</div>
|
||||
</div>`;
|
||||
})
|
||||
});
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('Error:', error);
|
||||
console.error("Error:", error);
|
||||
// Handle the error here
|
||||
});
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user