update Module Dokumen Jaminan

This commit is contained in:
Daeng Deni Mardaeni
2024-09-10 17:53:46 +07:00
parent e93d66b806
commit 797cf6bb5b
9 changed files with 231 additions and 117 deletions

View File

@@ -4,12 +4,14 @@
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Support\Facades\DB;
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\DetailDokumenJaminan;
use Modules\Lpj\Models\DokumenJaminan;
use Modules\Lpj\Models\JenisJaminan;
use Modules\Lpj\Models\JenisLegalitasJaminan;
@@ -36,8 +38,10 @@
$debitur = Debiture::find($id);
$validate = $request->validated();
if ($validate) {
try {
DB::beginTransaction();
$validate['debiture_id'] = $id;
if ($validate['pemilik_jaminan_id'] == 0) {
@@ -61,22 +65,54 @@
$validate['pemilik_jaminan_id'] = $pemilikJaminan->id;
}
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::create($validate);
try {
foreach ($request->dokumen_jaminan as $key => $value) {
$file_name = $value->getClientOriginalName();
if ($file_name) {
try {
$file_name = $value->getClientOriginalName();
$value->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],
];
DetailDokumenJaminan::create($detail);
} catch (Exception $e) {
DB::rollBack();
return redirect()->route('debitur.jaminan.index', $id)->with(
'error',
'Gagal upload file dokumen jaminan '. $key. ': '. $e->getMessage(),
);
}
}
}
DB::commit();
}catch (Exception $e) {
DB::rollBack();
return redirect()->route('debitur.jaminan.index', $id)->with(
'error',
'gg'.$e->getMessage(),
);
}
DokumenJaminan::create($validate);
return redirect()->route('debitur.jaminan.index', $id)->with(
'success',
'Dokumen Jaminan berhasil ditambahkan',
);
} catch (Exception $e) {
return redirect()->route('debitur.jaminan.index', $id)->with('error', $e->getMessage());
DB::rollBack();
return redirect()->route('debitur.jaminan.index', $id)->with('error','ggl'. $e->getMessage());
}
}
}

View File

@@ -0,0 +1,43 @@
<?php
namespace Modules\Lpj\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class DokumenJaminanRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*/
public function rules()
: array
{
$rules = [
'debiture_id' => 'required|exists:debitures,id',
'pemilik_jaminan_id' => 'required',
'jenis_jaminan_id' => 'required',
'jenis_legalitas_jaminan_id' => 'required',
'dokumen_jaminan' => 'nullable|file|mimes:pdf',
'keterangan' => 'nullable|string|max:255',
'province_code' => 'nullable|exists:provinces,code',
'city_code' => 'nullable|exists:cities,code',
'district_code' => 'nullable|exists:districts,code',
'village_code' => 'nullable|exists:villages,code',
'name' => 'required',
'address' => 'nullable|string',
'postal_code' => 'nullable|string|max:10',
'status' => 'nullable|boolean',
];
return $rules;
}
/**
* Determine if the user is authorized to make this request.
*/
public function authorize()
: bool
{
return true;
}
}

View File

@@ -16,14 +16,10 @@
'debiture_id' => 'required|exists:debitures,id',
'pemilik_jaminan_id' => 'required',
'jenis_jaminan_id' => 'required',
'jenis_legalitas_jaminan_id' => 'required',
'dokumen_jaminan' => 'nullable|file|mimes:pdf',
'keterangan' => 'nullable|string|max:255',
'province_code' => 'nullable|exists:provinces,code',
'city_code' => 'nullable|exists:cities,code',
'district_code' => 'nullable|exists:districts,code',
'village_code' => 'nullable|exists:villages,code',
'name' => 'required',
'address' => 'nullable|string',
'postal_code' => 'nullable|string|max:10',
'status' => 'nullable|boolean',

View File

@@ -0,0 +1,34 @@
<?php
namespace Modules\Lpj\Models;
use Modules\Location\Models\City;
use Modules\Location\Models\District;
use Modules\Location\Models\Province;
use Modules\Location\Models\Village;
use Modules\Lpj\Database\Factories\DokumenJaminanFactory;
class DetailDokumenJaminan extends Base
{
protected $table = 'detail_dokumen_jaminan';
protected $fillable = [
'dokumen_jaminan_id',
'jenis_legalitas_jaminan_id',
'name',
'dokumen_jaminan',
'keterangan',
'status',
'authorized_at',
'authorized_status',
'authorized_by',
];
public function jenisLegalitasJaminan(){
return $this->belongsTo(JenisLegalitasJaminan::class, 'jenis_legalitas_jaminan_id', 'id');
}
public function dokumenJaminan(){
return $this->belongsTo(DokumenJaminan::class, 'dokumen_jaminan_id', 'id');
}
}

View File

@@ -16,10 +16,6 @@
'permohonan_id',
'pemilik_jaminan_id',
'jenis_jaminan_id',
'jenis_legalitas_jaminan_id',
'name',
'dokumen_jaminan',
'keterangan',
'province_code',
'city_code',
'district_code',
@@ -64,10 +60,6 @@
return $this->belongsTo(JenisJaminan::class, 'jenis_jaminan_id', 'id');
}
public function jenisLegalitasJaminan(){
return $this->belongsTo(JenisLegalitasJaminan::class, 'jenis_legalitas_jaminan_id', 'id');
}
public function permohonan(){
return $this->belongsTo(Permohonan::class, 'permohonan_id', 'id');
}