Feature #14 : Dokumen Jaminan

This commit is contained in:
Daeng Deni Mardaeni 2024-08-21 13:42:55 +07:00
parent 5c380f5eb6
commit 9c05779fbd
16 changed files with 1052 additions and 247 deletions

View File

@ -12,8 +12,13 @@
use Modules\Location\Models\Village; use Modules\Location\Models\Village;
use Modules\Lpj\Exports\DebitureExport; use Modules\Lpj\Exports\DebitureExport;
use Modules\Lpj\Http\Requests\DebitureRequest; use Modules\Lpj\Http\Requests\DebitureRequest;
use Modules\Lpj\Http\Requests\DokumenJaminanRequest;
use Modules\Lpj\Models\Branch; use Modules\Lpj\Models\Branch;
use Modules\Lpj\Models\Debiture; 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 DebitureController extends Controller class DebitureController extends Controller
{ {
@ -58,7 +63,156 @@
$cities = City::where('province_code', $debitur->province_code)->get(); $cities = City::where('province_code', $debitur->province_code)->get();
$districts = District::where('city_code', $debitur->city_code)->get(); $districts = District::where('city_code', $debitur->city_code)->get();
$villages = Village::where('district_code', $debitur->district_code)->get(); $villages = Village::where('district_code', $debitur->district_code)->get();
return view('lpj::debitur.create', compact('debitur', 'branches', 'provinces', 'cities', 'districts', 'villages')); return view(
'lpj::debitur.edit',
compact('debitur', 'branches', 'provinces', 'cities', 'districts', 'villages'),
);
}
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) public function update(DebitureRequest $request, $id)
@ -94,6 +248,17 @@
} }
} }
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) public function dataForDatatables(Request $request)
{ {
if (is_null($this->user) || !$this->user->can('debitur.view')) { if (is_null($this->user) || !$this->user->can('debitur.view')) {
@ -166,4 +331,10 @@
{ {
return Excel::download(new DebitureExport, 'debitur.xlsx'); return Excel::download(new DebitureExport, 'debitur.xlsx');
} }
public function download($id)
{
$document = DokumenJaminan::find($id);
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
}
} }

View File

@ -22,7 +22,6 @@
'name' => 'required', 'name' => 'required',
'registered_at' => 'nullable|date', 'registered_at' => 'nullable|date',
'npwp' => 'nullable|string|max:16', 'npwp' => 'nullable|string|max:16',
'nomor_id' => 'nullable|string|max:16',
'email' => 'nullable|email', 'email' => 'nullable|email',
'phone' => 'nullable|string|max:15', 'phone' => 'nullable|string|max:15',
'address' => 'nullable|string', 'address' => 'nullable|string',
@ -31,9 +30,9 @@
]; ];
if ($this->method() == 'PUT') { if ($this->method() == 'PUT') {
$rules['cif'] = 'required|unique:debitures,cif,' . $this->id; $rules['cif'] = 'nullable|unique:debitures,cif,' . $this->id;
} else { } else {
$rules['cif'] = 'required|unique:debitures,cif'; $rules['cif'] = 'nullable|unique:debitures,cif';
} }
return $rules; return $rules;

View File

@ -0,0 +1,42 @@
<?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 = [
'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,7 +16,6 @@
'name', 'name',
'registered_at', 'registered_at',
'npwp', 'npwp',
'nomor_id',
'email', 'email',
'phone', 'phone',
'nomor_rekening', 'nomor_rekening',

View File

@ -0,0 +1,69 @@
<?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 DokumenJaminan extends Base
{
protected $table = 'dokumen_jaminan';
protected $fillable = [
'debiture_id',
'pemilik_jaminan_id',
'jenis_jaminan_id',
'jenis_legalitas_jaminan_id',
'name',
'dokumen_jaminan',
'keterangan',
'province_code',
'city_code',
'district_code',
'village_code',
'postal_code',
'address',
'status',
'authorized_at',
'authorized_status',
'authorized_by',
];
public function province()
{
return $this->belongsTo(Province::class, 'province_code', 'code');
}
public function city()
{
return $this->belongsTo(City::class, 'city_code', 'code');
}
public function district()
{
return $this->belongsTo(District::class, 'district_code', 'code');
}
public function village()
{
return $this->belongsTo(Village::class, 'village_code', 'code');
}
public function debiture(){
return $this->belongsTo(Debiture::class, 'debiture_id', 'id');
}
public function pemilik(){
return $this->belongsTo(PemilikJaminan::class, 'pemilik_jaminan_id', 'id');
}
public function jenisJaminan(){
return $this->belongsTo(JenisJaminan::class, 'jenis_jaminan_id', 'id');
}
public function jenisLegalitasJaminan(){
return $this->belongsTo(JenisLegalitasJaminan::class, 'jenis_legalitas_jaminan_id', 'id');
}
}

View File

@ -23,10 +23,10 @@
$table->string('email', 100)->nullable(); $table->string('email', 100)->nullable();
$table->string('phone', 15)->nullable(); $table->string('phone', 15)->nullable();
$table->string('nomor_rekening', 50)->nullable(); $table->string('nomor_rekening', 50)->nullable();
$table->string('province_code')->index(); $table->string('province_code')->nullable()->index();
$table->string('city_code')->index(); $table->string('city_code')->nullable()->index();
$table->string('district_code')->index(); $table->string('district_code')->nullable()->index();
$table->string('village_code')->index(); $table->string('village_code')->nullable()->index();
$table->string('postal_code', 5)->nullable(); $table->string('postal_code', 5)->nullable();
$table->text('address')->nullable(); $table->text('address')->nullable();

View File

@ -0,0 +1,54 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Modules\Lpj\Models\Debiture;
use Modules\Lpj\Models\JenisJaminan;
use Modules\Lpj\Models\JenisLegalitasJaminan;
use Modules\Lpj\Models\PemilikJaminan;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
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->string('province_code')->nullable()->index();
$table->string('city_code')->nullable()->index();
$table->string('district_code')->nullable()->index();
$table->string('village_code')->nullable()->index();
$table->string('postal_code', 5)->nullable();
$table->text('address')->nullable();
$table->string('dokumen_jaminan')->nullable();
$table->string('keterangan')->nullable();
$table->boolean('status')->default(true)->nullable();
$table->timestamps();
$table->timestamp('authorized_at')->nullable();
$table->char('authorized_status', 1)->nullable();
$table->softDeletes();
$table->unsignedBigInteger('created_by')->nullable();
$table->unsignedBigInteger('updated_by')->nullable();
$table->unsignedBigInteger('deleted_by')->nullable();
$table->unsignedBigInteger('authorized_by')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::dropIfExists('dokumen_jaminan');
}
};

View File

@ -0,0 +1,206 @@
<form action="{{ isset($debitur->id) ? route('debitur.update', $debitur->id) : route('debitur.store') }}" method="POST" class="grid gap-5">
@if(isset($debitur->id))
@method('PUT')
@endif
@csrf
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Cabang
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="branch_id" id="branch_id">
<option value="">Pilih Cabang</option>
@foreach($branches as $branch)
@if(isset($debitur))
<option value="{{ $branch->id }}" {{ $branch->id == $debitur->branch_id ? 'selected' : '' }}>{{ $branch->name }}</option>
@else
<option value="{{ $branch->id }}">{{ $branch->name }}</option>
@endif
@endforeach
</select>
@error('branch_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">
CIF
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cif') border-danger @enderror" type="number" name="cif" value="{{ $debitur->cif ?? '' }}">
@error('cif')
<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">
Nomor Rekening
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_rekening') border-danger @enderror" type="number" name="nomor_rekening" value="{{ $debitur->nomor_rekening ?? '' }}">
@error('nomor_rekening')
<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 Debitur
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $debitur->name ?? '' }}">
@error('name')
<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">
NPWP
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('npwp') border-danger @enderror" type="number" name="npwp" value="{{ $debitur->npwp ?? '' }}">
@error('npwp')
<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">
Email
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('email') border-danger @enderror" type="email" name="email" value="{{ $debitur->email ?? '' }}">
@error('email')
<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">
No Handphone
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('phone') border-danger @enderror" type="number" name="phone" value="{{ $debitur->phone ?? '' }}">
@error('phone')
<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">
Address
</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">
<select id="province_code" name="province_code" class="select w-full @error('province_code') border-danger @enderror">
<option value="">Select Province</option>
@foreach($provinces as $province)
@if(isset($debitur))
<option value="{{ $province->code }}" {{ isset($debitur->province_code) && $debitur->province_code == $province->code?'selected' : '' }}>
{{ $province->name }}
</option>
@else
<option value="{{ $province->code }}">
{{ $province->name }}
</option>
@endif
@endforeach
</select>
@error('province_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<select id="city_code" name="city_code" class="select w-full @error('city_code') border-danger @enderror">
<option value="">Select City</option>
@if(isset($cities))
@foreach($cities as $city)
@if(isset($debitur))
<option value="{{ $city->code }}" {{ isset($debitur->city_code) && $debitur->city_code == $city->code?'selected' : '' }}>
{{ $city->name }}
</option>
@else
<option value="{{ $city->code }}">
{{ $city->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('city_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-col lg:flex-row gap-2 w-full mt-2 lg:mt-5">
<div class="flex flex-wrap items-baseline w-full">
<select id="district_code" name="district_code" class="select w-full @error('district_code') border-danger @enderror">
<option value="">Select District</option>
@if(isset($districts))
@foreach($districts as $district)
@if(isset($debitur))
<option value="{{ $district->code }}" {{ isset($debitur->district_code) && $debitur->district_code == $district->code?'selected' : '' }}>
{{ $district->name }}
</option>
@else
<option value="{{ $district->code }}">
{{ $district->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('district_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<select id="village_code" name="village_code" class="select w-full @error('district_code') border-danger @enderror">
<option value="">Select Village</option>
@if(isset($villages))
@foreach($villages as $village)
@if(isset($debitur))
<option value="{{ $village->code }}" {{ isset($debitur->village_code) && $debitur->village_code == $village->code?'selected' : '' }}>
{{ $village->name }}
</option>
@else
<option value="{{ $village->code }}">
{{ $village->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('district_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('postal_code') border-danger @enderror" type="number" id="postal_code" name="postal_code" value="{{ $debitur->postal_code ?? '' }}" placeholder="Postal Code">
@error('postal_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-row w-full mt-2 lg:mt-5">
<textarea class="textarea @error('address') border-danger @enderror" rows="3" type="number" id="address" name="address">{{ $debitur->address ?? '' }}</textarea>
@error('address')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>

View File

@ -0,0 +1,243 @@
<form action="{{ isset($document->id) ? route('debitur.jaminan.update', ['id'=>$debitur->id,'jaminan'=>$document->id]) : route('debitur.jaminan.store',$debitur->id) }}" method="POST" class="grid gap-5" enctype="multipart/form-data">
@if(isset($document->id))
@method('PUT')
@endif
@csrf
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Debitur
</label>
<div class="flex flex-wrap items-baseline w-full">
<input type="hidden" name="id" value="{{ $debitur->id ?? '' }}">
<p class="text-base text-gray-700">{{ $debitur->name }} | {{ $debitur->address.', '.$debitur->village->name.', '.$debitur->city->name.', '.$debitur->province->name.', '.$debitur->postal_code }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Pemilik Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<div class="input-group w-full">
<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>
@foreach($pemilikJaminan as $pemilik)
@if(isset($document))
<option value="{{ $pemilik->id }}" {{ isset($document->pemilik_jaminan_id) && $document->pemilik_jaminan_id == $pemilik->id?'selected' : '' }}>
{{ $pemilik->name }}
</option>
@else
<option value="{{ $pemilik-id }}">
{{ $Pemilik->name }}
</option>
@endif
@endforeach
</select>
<span class="btn btn-light">
<i class="ki-outline ki-plus-squared"></i> Tambah Pemilik Jaminan
</span>
</div>
@error('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">
Jenis Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="jenis_jaminan_id" id="jenis_jaminan_id">
<option value="">Pilih Jenis Jaminan</option>
@foreach($jenisJaminan as $row)
@if(isset($document))
<option value="{{ $row->id }}" {{ isset($document->jenis_jaminan_id) && $document->jenis_jaminan_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">{{ $row->name }}</option>
@endif
@endforeach
</select>
@error('jenis_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">
Jenis Legalitas Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="jenis_legalitas_jaminan_id" id="jenis_legalitas_jaminan_id">
<option value="">Pilih Jenis Legalitas Jaminan</option>
@foreach($jenisLegalitasJaminan as $row)
@if(isset($document))
<option value="{{ $row->id }}" {{ isset($document->jenis_legalitas_jaminan_id) && $document->jenis_legalitas_jaminan_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">{{ $row->name }}</option>
@endif
@endforeach
</select>
@error('jenis_legalitas_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 Dokumen
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text " id="name" name="name" value="{{ $document->name ?? '' }}" placeholder="Nama Dokumen">
@error('name')
<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">
Dokumen Jaminan
</label>
<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>
@endif
@error('dokumen_jaminan')
<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">
Keterangan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('keterangan') border-danger @enderror" rows="3" type="number" name="keterangan"> {{ $document->keterangan ?? '' }}</textarea>
@error('keterangan')
<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">
Address
</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">
<select id="province_code" name="province_code" class="select w-full @error('province_code') border-danger @enderror">
<option value="">Select Province</option>
@foreach($provinces as $province)
@if(isset($document))
<option value="{{ $province->code }}" {{ isset($document->province_code) && $document->province_code == $province->code?'selected' : '' }}>
{{ $province->name }}
</option>
@else
<option value="{{ $province->code }}">
{{ $province->name }}
</option>
@endif
@endforeach
</select>
@error('province_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<select id="city_code" name="city_code" class="select w-full @error('city_code') border-danger @enderror">
<option value="">Select City</option>
@if(isset($cities))
@foreach($cities as $city)
@if(isset($document))
<option value="{{ $city->code }}" {{ isset($document->city_code) && $document->city_code == $city->code?'selected' : '' }}>
{{ $city->name }}
</option>
@else
<option value="{{ $city->code }}">
{{ $city->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('city_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-col lg:flex-row gap-2 w-full mt-2 lg:mt-5">
<div class="flex flex-wrap items-baseline w-full">
<select id="district_code" name="district_code" class="select w-full @error('district_code') border-danger @enderror">
<option value="">Select District</option>
@if(isset($districts))
@foreach($districts as $district)
@if(isset($document))
<option value="{{ $district->code }}" {{ isset($document->district_code) && $document->district_code == $district->code?'selected' : '' }}>
{{ $district->name }}
</option>
@else
<option value="{{ $district->code }}">
{{ $district->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('district_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<select id="village_code" name="village_code" class="select w-full @error('district_code') border-danger @enderror">
<option value="">Select Village</option>
@if(isset($villages))
@foreach($villages as $village)
@if(isset($document))
<option value="{{ $village->code }}" {{ isset($document->village_code) && $document->village_code == $village->code?'selected' : '' }}>
{{ $village->name }}
</option>
@else
<option value="{{ $village->code }}">
{{ $village->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('district_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('postal_code') border-danger @enderror" type="number" id="postal_code" name="postal_code" value="{{ $document->postal_code ?? '' }}" placeholder="Postal Code">
@error('postal_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-row w-full mt-2 lg:mt-5">
<textarea class="textarea @error('address') border-danger @enderror" rows="3" type="number" id="address" name="address">{{ $document->address ?? '' }}</textarea>
@error('address')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>

View File

@ -0,0 +1,162 @@
<div class="grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-5 lg:gap-7.5">
@foreach($documents as $document)
<div class="card flex flex-col gap-5 p-5 lg:p-7.5">
<div class="flex items-center flex-wrap justify-between gap-1">
<div class="flex items-center gap-2.5">
<div class="relative size-[44px] shrink-0">
<svg class="w-full h-full stroke-primary-clarity fill-primary-light" fill="none" height="48" viewBox="0 0 44 48" width="44" xmlns="http://www.w3.org/2000/svg">
<path d="M16 2.4641C19.7128 0.320509 24.2872 0.320508 28 2.4641L37.6506 8.0359C41.3634 10.1795 43.6506 14.141 43.6506
18.4282V29.5718C43.6506 33.859 41.3634 37.8205 37.6506 39.9641L28 45.5359C24.2872 47.6795 19.7128 47.6795 16 45.5359L6.34937
39.9641C2.63655 37.8205 0.349365 33.859 0.349365 29.5718V18.4282C0.349365 14.141 2.63655 10.1795 6.34937 8.0359L16 2.4641Z" fill="">
</path>
<path d="M16.25 2.89711C19.8081 0.842838 24.1919 0.842837 27.75 2.89711L37.4006 8.46891C40.9587 10.5232 43.1506 14.3196 43.1506
18.4282V29.5718C43.1506 33.6804 40.9587 37.4768 37.4006 39.5311L27.75 45.1029C24.1919 47.1572 19.8081 47.1572 16.25 45.1029L6.59937
39.5311C3.04125 37.4768 0.849365 33.6803 0.849365 29.5718V18.4282C0.849365 14.3196 3.04125 10.5232 6.59937 8.46891L16.25 2.89711Z" stroke="">
</path>
</svg>
<div class="absolute leading-none left-2/4 top-2/4 -translate-y-2/4 -translate-x-2/4">
<i class="ki-filled ki-add-files text-1.5xl text-primary">
</i>
</div>
</div>
<div class="flex flex-col">
<a class="text-md font-semibold text-gray-900 hover:text-primary-active mb-px" href="/metronic/tailwind/demo1/public-profile/profiles/creator">
{{ $document->name }}
</a>
<span class="text-2sm font-medium text-gray-600">
{{ $document->jenisJaminan->name }} | {{ $document->jenisLegalitasJaminan->name }}
</span>
</div>
</div>
<div class="menu inline-flex" data-menu="true">
<div class="flex flex-nowrap justify-center gap-1.5">
<a href="{{ route('debitur.jaminan.edit',['id' => $debitur->id,'jaminan' => $document->id]) }}" class="btn btn-sm btn-icon btn-outline btn-info">
<i class="ki-outline ki-notepad-edit"></i>
</a>
<a onclick="deleteData({{ $document->id }})" class="delete btn btn-sm btn-icon btn-outline btn-danger">
<i class="ki-outline ki-trash"></i>
</a>
</div>
</div>
</div>
<div class="grid">
<div class="flex items-center justify-between flex-wrap mb-3.5 gap-2">
<span class="text-2xs text-gray-600 uppercase">
pemilik jaminan
</span>
<p class="text-2xs text-gray-600 text-right max-w-[250px]">
{{ $document->pemilik->name }}
</p>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@if($document->dokumen_jaminan)
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase">
dokumen jaminan
</span>
<a href="{{ route('debitur.download',$document->id) }}" class="badge badge-sm badge-outline">{{ basename($document->dokumen_jaminan) }} <i class="ki-filled ki-cloud-download"></i></a>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@endif
<div class="flex items-start justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase">
keterangan
</span>
<p class="text-2xs text-gray-600 text-right max-w-[250px]">
{{ $document->keterangan }}
</p>
</div>
<div class="border-t border-gray-300 border-dashed mb-3.5">
</div>
<div class="flex items-start justify-between flex-wrap gap-2">
<span class="text-2xs text-gray-600 uppercase">
alamat
</span>
<p class="text-2xs text-gray-600 text-right max-w-[250px]">
{{ $document->address.', '.$document->village->name.', '.$document->city->name.', '.$document->province->name.', '.$document->postal_code }}
</p>
</div>
</div>
</div>
@endforeach
<style>
.add-new-bg {
background-image: url('/assets/media/images/2600x1200/bg-4.png');
}
.dark .add-new-bg {
background-image: url('/assets/media/images/2600x1200/bg-4-dark.png');
}
</style>
<a class="card border-2 border-dashed border-brand-clarity bg-center bg-[length:600px] bg-no-repeat add-new-bg" href="{{ route('debitur.jaminan.create',$debitur->id) }}">
<div class="card-body grid items-center">
<div class="flex flex-col gap-3">
<div class="flex justify-center pt-5">
<div class="relative size-[60px] shrink-0">
<svg class="w-full h-full stroke-brand-clarity fill-light" fill="none" height="48" viewBox="0 0 44 48" width="44" xmlns="http://www.w3.org/2000/svg">
<path d="M16 2.4641C19.7128 0.320509 24.2872 0.320508 28 2.4641L37.6506 8.0359C41.3634 10.1795 43.6506 14.141 43.6506
18.4282V29.5718C43.6506 33.859 41.3634 37.8205 37.6506 39.9641L28 45.5359C24.2872 47.6795 19.7128 47.6795 16 45.5359L6.34937
39.9641C2.63655 37.8205 0.349365 33.859 0.349365 29.5718V18.4282C0.349365 14.141 2.63655 10.1795 6.34937 8.0359L16 2.4641Z" fill="">
</path>
<path d="M16.25 2.89711C19.8081 0.842838 24.1919 0.842837 27.75 2.89711L37.4006 8.46891C40.9587 10.5232 43.1506 14.3196 43.1506
18.4282V29.5718C43.1506 33.6804 40.9587 37.4768 37.4006 39.5311L27.75 45.1029C24.1919 47.1572 19.8081 47.1572 16.25 45.1029L6.59937
39.5311C3.04125 37.4768 0.849365 33.6803 0.849365 29.5718V18.4282C0.849365 14.3196 3.04125 10.5232 6.59937 8.46891L16.25 2.89711Z" stroke="">
</path>
</svg>
<div class="absolute leading-none left-2/4 top-2/4 -translate-y-2/4 -translate-x-2/4">
<i class="ki-filled ki-additem text-2xl text-brand">
</i>
</div>
</div>
</div>
<div class="flex flex-col text-center">
<span class="text-lg font-semibold text-gray-900 hover:text-primary-active mb-px">
Data Jaminan
</span>
<span class="text-2sm font-normal text-gray-600">
Tambah Pemilik dan Dokumen Jaminan
</span>
</div>
</div>
</div>
</a>
</div>
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script type="text/javascript">
function deleteData(data) {
Swal.fire({
title: 'Are you sure?',
text: "You won't be able to revert this!",
icon: 'warning',
showCancelButton: true,
confirmButtonColor: '#3085d6',
cancelButtonColor: '#d33',
confirmButtonText: 'Yes, delete it!'
}).then((result) => {
if (result.isConfirmed) {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
});
$.ajax(`debitur/{{$debitur->id}}}/jaminan/${data}`, {
type: 'DELETE'
}).then((response) => {
swal.fire('Deleted!', 'Document Jaminan has been deleted.', 'success').then(() => {
window.location.reload();
});
}).catch((error) => {
console.error('Error:', error);
Swal.fire('Error!', 'An error occurred while deleting the file.', 'error');
});
}
})
}
</script>
@endpush

View File

@ -6,14 +6,7 @@
@section('content') @section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto"> <div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@if(isset($debitur->id))
<form action="{{ route('debitur.update', $debitur->id) }}" method="POST">
<input type="hidden" name="id" value="{{ $debitur->id }}">
@method('PUT')
@else
<form method="POST" action="{{ route('debitur.store') }}">
@endif
@csrf
<div class="card pb-2.5"> <div class="card pb-2.5">
<div class="card-header" id="basic_settings"> <div class="card-header" id="basic_settings">
<h3 class="card-title"> <h3 class="card-title">
@ -23,220 +16,10 @@
<a href="{{ route('debitur.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a> <a href="{{ route('debitur.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div> </div>
</div> </div>
<div class="card-body grid gap-5"> <div class="card-body">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5"> @include('lpj::debitur.components.debitur')
<label class="form-label max-w-56"> </div>
Cabang </div>
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="branch_id" id="branch_id">
<option value="">Pilih Cabang</option>
@foreach($branches as $branch)
@if(isset($debitur))
<option value="{{ $branch->id }}" {{ $branch->id == $debitur->branch_id ? 'selected' : '' }}>{{ $branch->name }}</option>
@else
<option value="{{ $branch->id }}">{{ $branch->name }}</option>
@endif
@endforeach
</select>
@error('branch_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">
CIF
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('cif') border-danger @enderror" type="number" name="cif" value="{{ $debitur->cif ?? '' }}">
@error('cif')
<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">
Nomor Rekening
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_rekening') border-danger @enderror" type="number" name="nomor_rekening" value="{{ $debitur->nomor_rekening ?? '' }}">
@error('nomor_rekening')
<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 Debitur
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $debitur->name ?? '' }}">
@error('name')
<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">
Nomor ID/KTP
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('nomor_id') border-danger @enderror" type="number" name="nomor_id" value="{{ $debitur->nomor_id ?? '' }}">
@error('nomor_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">
NPWP
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('npwp') border-danger @enderror" type="number" name="npwp" value="{{ $debitur->npwp ?? '' }}">
@error('npwp')
<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">
Email
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('email') border-danger @enderror" type="email" name="email" value="{{ $debitur->email ?? '' }}">
@error('email')
<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">
No Handphone
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('phone') border-danger @enderror" type="number" name="phone" value="{{ $debitur->phone ?? '' }}">
@error('phone')
<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">
Address
</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">
<select id="province_code" name="province_code" class="select w-full @error('province_code') border-danger @enderror">
<option value="">Select Province</option>
@foreach($provinces as $province)
@if(isset($debitur))
<option value="{{ $province->code }}" {{ isset($debitur->province_code) && $debitur->province_code == $province->code?'selected' : '' }}>
{{ $province->name }}
</option>
@else
<option value="{{ $province->code }}">
{{ $province->name }}
</option>
@endif
@endforeach
</select>
@error('province_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<select id="city_code" name="city_code" class="select w-full @error('city_code') border-danger @enderror">
<option value="">Select City</option>
@if(isset($cities))
@foreach($cities as $city)
@if(isset($debitur))
<option value="{{ $city->code }}" {{ isset($debitur->city_code) && $debitur->city_code == $city->code?'selected' : '' }}>
{{ $city->name }}
</option>
@else
<option value="{{ $city->code }}">
{{ $city->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('city_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-col lg:flex-row gap-2 w-full mt-2 lg:mt-5">
<div class="flex flex-wrap items-baseline w-full">
<select id="district_code" name="district_code" class="select w-full @error('district_code') border-danger @enderror">
<option value="">Select District</option>
@if(isset($districts))
@foreach($districts as $district)
@if(isset($debitur))
<option value="{{ $district->code }}" {{ isset($debitur->district_code) && $debitur->district_code == $district->code?'selected' : '' }}>
{{ $district->name }}
</option>
@else
<option value="{{ $district->code }}">
{{ $district->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('district_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<select id="village_code" name="village_code" class="select w-full @error('district_code') border-danger @enderror">
<option value="">Select Village</option>
@if(isset($villages))
@foreach($villages as $village)
@if(isset($debitur))
<option value="{{ $village->code }}" {{ isset($debitur->village_code) && $debitur->village_code == $village->code?'selected' : '' }}>
{{ $village->name }}
</option>
@else
<option value="{{ $village->code }}">
{{ $village->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('district_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('postal_code') border-danger @enderror" type="number" id="postal_code" name="postal_code" value="{{ $debitur->postal_code ?? '' }}" placeholder="Postal Code">
@error('postal_code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex flex-row w-full mt-2 lg:mt-5">
<textarea class="textarea @error('address') border-danger @enderror" rows="3" type="number" id="address" name="address">{{ $debitur->address ?? '' }}</textarea>
@error('address')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
</div>
</form>
</div> </div>
@endsection @endsection

View File

@ -0,0 +1,29 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<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>
</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>
</div>
</div>
<div class="card-body">
@if(request()->routeIs('debitur.edit', $debitur))
@include('lpj::debitur.components.debitur')
@else
@include('lpj::debitur.components.jaminan')
@endif
</div>
</div>
</div>
@endsection

View File

@ -0,0 +1,24 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ 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>
</div>
</div>
<div class="card-body">
@include('lpj::debitur.components.dokumen')
</div>
</div>
</div>
@endsection

View File

@ -198,7 +198,22 @@
}); });
Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata.branch'); $trail->parent('debitur');
$trail->push('Edit Debitur'); $trail->push('Data Debitur');
});
Breadcrumbs::for('debitur.jaminan', function (BreadcrumbTrail $trail) {
$trail->parent('debitur');
$trail->push('Data Jaminan Debitur');
});
Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) {
$trail->parent('debitur.jaminan');
$trail->push('Tambah Data Jaminan Debitur');
});
Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) {
$trail->parent('debitur.jaminan');
$trail->push('Edit Data Jaminan Debitur');
}); });

View File

@ -92,7 +92,7 @@
'edit' => 'currency.edit', 'edit' => 'currency.edit',
'update' => 'currency.update', 'update' => 'currency.update',
'destroy' => 'currency.destroy', 'destroy' => 'currency.destroy',
] ],
]); ]);
Route::name('branch.')->prefix('cabang')->group(function () { Route::name('branch.')->prefix('cabang')->group(function () {
@ -111,7 +111,7 @@
'edit' => 'branch.edit', 'edit' => 'branch.edit',
'update' => 'branch.update', 'update' => 'branch.update',
'destroy' => 'branch.destroy', 'destroy' => 'branch.destroy',
] ],
]); ]);
Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () {
@ -148,10 +148,19 @@
}); });
Route::name('debitur.')->prefix('debitur')->group(function () { Route::name('debitur.')->prefix('debitur')->group(function () {
Route::get('download/{id}', [DebitureController::class, 'download'])->name('download');
Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore');
Route::get('datatables', [DebitureController::class, 'dataForDatatables']) Route::get('datatables', [DebitureController::class, 'dataForDatatables'])
->name('datatables'); ->name('datatables');
Route::get('export', [DebitureController::class, 'export'])->name('export'); 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::resource('debitur', DebitureController::class); Route::resource('debitur', DebitureController::class);