Compare commits

...

25 Commits

Author SHA1 Message Date
491e206229 update pemilik jaminan, add multiple nama pada sertifikat 2024-09-19 10:27:56 +07:00
2cc5d75dbc Update Module Debitur Dokumen Jaminan 2024-09-19 10:27:32 +07:00
b0c8a43304 Fix Slug Status Permohonan 2024-09-19 10:27:02 +07:00
9ecdaa0cdd Update Module Debitur
penambahan default cif 0x10 dan di buat mandatory
update field npwp input harus minimal 15 dan maksimal 16 digit
penambahan rules
2024-09-13 14:15:10 +07:00
5619c52b0a Update Module Approval Permohonan, Chnage reject to Revisi 2024-09-13 14:11:35 +07:00
dcf9e4fd5e Remove Module Jenis Jaminan 2024-09-13 14:11:14 +07:00
72e4ff3160 Update Module Permohonan, penambahan field jenis_fasilitas_kredit dan nilai_plafond 2024-09-13 14:10:40 +07:00
dadec5a397 Update Edit Permohonan 2024-09-12 14:29:12 +07:00
7eac0d0401 Update Detail Approval 2024-09-12 11:28:17 +07:00
ed425c4b21 Feature #18 : Module Approval Permohonan 2024-09-12 11:03:00 +07:00
1b1d00a730 add slug master jenis_jaminan 2024-09-11 16:54:42 +07:00
8c3c3733b4 Fix Table Status Permohonan 2024-09-11 14:42:38 +07:00
a6e90229d8 Fix Update and Delete Dokumen Jaminan 2024-09-11 12:00:50 +07:00
bce89c2055 Fix Download Document 2024-09-11 11:03:11 +07:00
4477ac10cb Merge pull request 'update detail dokumen jaminan,' (#3) from dev into master
Reviewed-on: #3
2024-09-11 03:51:39 +00:00
ad4d8cf740 update detail dokumen jaminan, 2024-09-11 10:50:46 +07:00
797cf6bb5b update Module Dokumen Jaminan 2024-09-10 17:53:46 +07:00
e93d66b806 Update Module DOcument Jaminan
- Penambahan function get legalitas jaminan yang akan di upload pada saat pemilihan jenis jaminan
2024-09-04 20:29:43 +07:00
ecffb8b05d Update Module Debtur
- add button create permohonan pada detail debitur
2024-09-04 20:29:02 +07:00
3c5c8fd22e Update Error State pada field, Penambahan border dan bbg danger 2024-09-04 20:28:28 +07:00
0f6c693bba Update Module Permohonan
Penambahan Create FUnction pada List Debitur
2024-09-04 20:27:48 +07:00
3a787fb176 Update Module Jenis Jaminan
- Penambahan Slug
- Penambahan Funtcion to get legalitas jaminan by id jenis jaminan
2024-09-04 20:27:13 +07:00
77be1b2685 Update Module Jenis Legalitas Jaminan
Penambahan Slug
2024-09-04 20:26:11 +07:00
22e2ff51f0 change migration date 2024-09-03 13:48:24 +07:00
be47e0678a Update Module Permohonan
- Update Automaticly get branch id by user login
- change static status permohonan to dynamic and database base
- update create permohonan, update selection debiture to table base
2024-09-03 13:41:05 +07:00
54 changed files with 1942 additions and 464 deletions

View File

@ -28,6 +28,8 @@
$row->branch->name,
$row->tujuanPenilaian->name,
$row->debiture->name,
$row->fasilitasKredit->name,
$row->plafond->name,
$row->status,
$row->authorized_at,
$row->authorized_status,
@ -47,7 +49,9 @@
'Branch Pemohon',
'Tujuan Penilaian',
'Debitur',
'Status',
'Jenis Fasilitas Kredit',
'Nilai Plafond',
'Status Permohonan',
'Tanggal Pengesahan',
'Status Pengesahan',
'Pengesah',
@ -61,7 +65,8 @@
return [
'A' => NumberFormat::FORMAT_NUMBER,
'C' => NumberFormat::FORMAT_DATE_DATETIME,
'L' => NumberFormat::FORMAT_DATE_DATETIME
'K' => NumberFormat::FORMAT_DATE_DATETIME,
'N' => NumberFormat::FORMAT_DATE_DATETIME
];
}
}

View File

@ -71,6 +71,7 @@
public function update(DebitureRequest $request, $id)
{
//print_r($request->all());exit;
$validate = $request->validated();
if ($validate) {
@ -174,10 +175,4 @@
{
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

@ -4,12 +4,15 @@
use App\Http\Controllers\Controller;
use Exception;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Storage;
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;
@ -23,7 +26,7 @@
public function index($id)
{
$debitur = Debiture::find($id);
$documents = DokumenJaminan::with('pemilik')->where('debiture_id', $id)->get();
$documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get();
return view(
'lpj::debitur.edit',
@ -36,8 +39,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 +66,53 @@
$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());
}
}
}
@ -102,6 +138,7 @@
$validate = $request->validated();
if ($validate) {
try {
DB::beginTransaction();
$validate['debiture_id'] = $id;
if ($validate['pemilik_jaminan_id'] == 0) {
@ -124,29 +161,77 @@
], $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);
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(
'success',
'Dokumen Jaminan berhasil diubah',
);
} catch (Exception $e) {
} catch
(Exception $e) {
DB::rollBack();
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);
$details = DetailDokumenJaminan::where('dokumen_jaminan_id', $document->id)->get();
$debitur = Debiture::find($document->debiture_id);
$provinces = Province::all();
$cities = City::where('province_code', $document->province_code)->get();
@ -164,6 +249,7 @@
'jenisJaminan',
'jenisLegalitasJaminan',
'document',
'details',
'cities',
'districts',
'villages',
@ -172,14 +258,30 @@
);
}
public function destroy($id, $jaminan_id)
{
public
function destroy(
$id,
$jaminan_id,
) {
try {
$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();
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 download(
$id,
) {
$document = DetailDokumenJaminan::find($id);
return response()->download(storage_path('app/public/' . $document->dokumen_jaminan));
}
}

View File

@ -9,6 +9,7 @@
use Modules\Lpj\Exports\JenisJaminanExport;
use Modules\Lpj\Http\Requests\JenisJaminanRequest;
use Modules\Lpj\Models\JenisJaminan;
use Modules\Lpj\Models\JenisLegalitasJaminan;
class JenisJaminanController extends Controller
{
@ -40,13 +41,15 @@
public function create()
{
return view('lpj::jenis_jaminan.create');
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
return view('lpj::jenis_jaminan.create', compact('jenisLegalitasJaminan'));
}
public function edit($id)
{
$jenisJaminan = JenisJaminan::find($id);
return view('lpj::jenis_jaminan.create', compact('jenisJaminan'));
$jenisJaminan = JenisJaminan::find($id);
$jenisLegalitasJaminan = JenisLegalitasJaminan::all();
return view('lpj::jenis_jaminan.create', compact('jenisJaminan', 'jenisLegalitasJaminan'));
}
public function update(JenisJaminanRequest $request, $id)
@ -147,4 +150,13 @@
{
return Excel::download(new JenisJaminanExport, 'jenis_jaminan.xlsx');
}
public function legalitasJaminan($id)
{
$jenisJaminan = JenisJaminan::find($id);
$legalitasJaminan = $jenisJaminan->jenis_legalitas_jaminan_id;
$legalitas = JenisLegalitasJaminan::whereIn('code', json_decode($legalitasJaminan, true))->get();
echo json_encode($legalitas);
}
}

View File

@ -6,11 +6,19 @@
use Exception;
use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use Modules\Location\Models\City;
use Modules\Location\Models\District;
use Modules\Location\Models\Province;
use Modules\Location\Models\Village;
use Modules\Lpj\Exports\PermohonanExport;
use Modules\Lpj\Http\Requests\PermohonanRequest;
use Modules\Lpj\Models\Branch;
use Modules\Lpj\Models\Debiture;
use Modules\Lpj\Models\DokumenJaminan;
use Modules\Lpj\Models\JenisFasilitasKredit;
use Modules\Lpj\Models\NilaiPlafond;
use Modules\Lpj\Models\Permohonan;
use Modules\Lpj\Models\StatusPermohonan;
use Modules\Lpj\Models\TujuanPenilaian;
class PermohonanController extends Controller
@ -26,7 +34,6 @@
{
$validate = $request->validated();
if ($validate) {
try {
// Save to database
@ -37,7 +44,7 @@
} catch (Exception $e) {
return redirect()
->route('permohonan.create')
->with('error', 'Failed to create permohonan'. $e->getMessage());
->with('error', 'Failed to create permohonan' . $e->getMessage());
}
} else {
return redirect()
@ -49,49 +56,56 @@
public function create()
{
$branches = Branch::all();
$debitures = Debiture::all();
$tujuanPenilaian = TujuanPenilaian::all();
$status = [
'order' => 'Order',
'revisi' => 'Revisi',
'register' => 'Register',
'assign' => 'Assign',
'survey' => 'Survey',
'finalisasi' => 'Proses Laporan',
'approved' => 'Diterima',
'rejected' => 'Ditolak',
'cancel' => 'Dibatalkan',
'finished' => 'Selesai',
'not_started' => 'Belum dimulai',
];
return view('lpj::permohonan.create');
}
return view('lpj::permohonan.form', compact('branches', 'debitures', 'tujuanPenilaian','status'));
public function createPermohonan($debitur)
{
$branches = Branch::all();
$debitur = Debiture::find($debitur);
$tujuanPenilaian = TujuanPenilaian::all();
$status = StatusPermohonan::all();
$fasilitasKredit = JenisFasilitasKredit::all();
$plafond = NilaiPlafond::all();
return view(
'lpj::permohonan.form',
compact('branches', 'debitur', 'tujuanPenilaian', 'status', 'fasilitasKredit', 'plafond'),
);
}
public function edit($id)
{
$permohonan = Permohonan::find($id);
$branches = Branch::all();
$debitures = Debiture::all();
$debitur = Debiture::find($permohonan->debiture_id);
$tujuanPenilaian = TujuanPenilaian::all();
$status = [
'order' => 'Order',
'revisi' => 'Revisi',
'register' => 'Register',
'assign' => 'Assign',
'survey' => 'Survey',
'finalisasi' => 'Proses Laporan',
'approved' => 'Diterima',
'rejected' => 'Ditolak',
'cancel' => 'Dibatalkan',
'finished' => 'Selesai',
'not_started' => 'Belum dimulai',
];
$status = StatusPermohonan::all();
$provinces = Province::all();
$cities = City::where('province_code', $debitur->province_code)->get();
$districts = District::where('city_code', $debitur->city_code)->get();
$villages = Village::where('district_code', $debitur->district_code)->get();
$documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get();
$fasilitasKredit = JenisFasilitasKredit::all();
$plafond = NilaiPlafond::all();
return view(
'lpj::permohonan.form',
compact('permohonan', 'branches', 'debitures', 'tujuanPenilaian','status'),
compact(
'permohonan',
'branches',
'debitur',
'tujuanPenilaian',
'status',
'provinces',
'cities',
'districts',
'villages',
'documents',
'fasilitasKredit',
'plafond',
),
);
}
@ -198,4 +212,96 @@
{
return Excel::download(new PermohonanExport, 'permohonan.xlsx');
}
public function authorization()
{
return view('lpj::permohonan.authorization.index');
}
public function dataForAuthorization(Request $request)
{
if (is_null($this->user) || !$this->user->can('debitur.view')) {
//abort(403, 'Sorry! You are not allowed to view users.');
}
// Retrieve data from the database
$query = Permohonan::query();
// Apply search filter if provided
if ($request->has('search') && !empty($request->get('search'))) {
$search = $request->get('search');
$query->where(function ($q) use ($search) {
$q->where('nomor_registrasi', 'LIKE', '%' . $search . '%');
$q->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%');
$q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%');
$q->orWhere('status', 'LIKE', '%' . $search . '%');
});
}
// Apply sorting if provided
if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) {
$order = $request->get('sortOrder');
$column = $request->get('sortField');
$query->orderBy($column, $order);
}
// Get the total count of records
$totalRecords = $query->count();
// Apply pagination if provided
if ($request->has('page') && $request->has('size')) {
$page = $request->get('page');
$size = $request->get('size');
$offset = ($page - 1) * $size; // Calculate the offset
$query->skip($offset)->take($size);
}
// Get the filtered count of records
$filteredRecords = $query->count();
// Get the data for the current page
$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->where('status', '=', 'order')->get(
);
// Calculate the page count
$pageCount = ceil($totalRecords / $request->get('size'));
// Calculate the current page number
$currentPage = 0 + 1;
// Return the response data as a JSON object
return response()->json([
'draw' => $request->get('draw'),
'recordsTotal' => $totalRecords,
'recordsFiltered' => $filteredRecords,
'pageCount' => $pageCount,
'page' => $currentPage,
'totalCount' => $totalRecords,
'data' => $data,
]);
}
public function showAuthorization($id)
{
$permohonan = Permohonan::find($id);
return view('lpj::permohonan.authorization.show', compact('permohonan'));
}
public function updateAuthorization(Request $request, $id)
{
try {
$permohonan = Permohonan::find($id);
$permohonan->status = $request->status;
$permohonan->keterangan = $request->keterangan;
$permohonan->save();
} catch (Exception $e) {
return redirect()->route('authorization.show', $id)->with('error', 'Failed to update permohonan');
}
return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully');
}
}

View File

@ -3,6 +3,7 @@
namespace Modules\Lpj\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
use Modules\Lpj\Rules\UniqueCifExceptZero;
class DebitureRequest extends FormRequest
{
@ -21,7 +22,7 @@
'nomor_rekening' => 'nullable|string|max:50',
'name' => 'required',
'registered_at' => 'nullable|date',
'npwp' => 'nullable|string|max:16',
'npwp' => 'nullable|string|min:15|max:16',
'email' => 'nullable|email',
'phone' => 'nullable|string|max:15',
'address' => 'nullable|string',
@ -29,10 +30,10 @@
'status' => 'nullable|boolean'
];
if ($this->method() == 'PUT') {
$rules['cif'] = 'nullable|unique:debitures,cif,' . $this->id;
} else {
$rules['cif'] = 'nullable|unique:debitures,cif';
if($this->method() == 'PUT'){
$rules['cif'] = ['required', new UniqueCifExceptZero($this->id)];
}else{
$rules['cif'] = ['required', new UniqueCifExceptZero(null)];
}
return $rules;

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

@ -2,7 +2,9 @@
namespace Modules\Lpj\Http\Requests;
use daengdeni\LaravelIdGenerator\IdGenerator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
class JenisJaminanRequest extends FormRequest
{
@ -12,16 +14,12 @@
public function rules()
: array
{
$rules = [
'name' => 'required|max:255',
return [
'code' => 'required|max:5',
'name' => 'required|max:255',
'slug' => 'required|max:255',
'jenis_legalitas_jaminan_id' => 'nullable',
];
if ($this->method() == 'PUT') {
$rules['code'] = 'required|max:50|unique:jenis_jaminan,code,' . $this->id;
} else {
$rules['code'] = 'required|max:50|unique:jenis_jaminan,code';
}
return $rules;
}
/**
@ -32,4 +30,21 @@
{
return true;
}
public function prepareForValidation()
: void
{
if ($this->method() == 'POST') {
$this->merge([
'code' => IdGenerator::generate(
['table' => 'jenis_jaminan', 'length' => 5, 'prefix' => 'JJ', 'field' => 'code'],
)
]);
}
$this->merge([
'jenis_legalitas_jaminan_id' => json_encode($this->jenis_legalitas_jaminan_id),
'slug' => Str::slug($this->name),
]);
}
}

View File

@ -2,7 +2,9 @@
namespace Modules\Lpj\Http\Requests;
use daengdeni\LaravelIdGenerator\IdGenerator;
use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Support\Str;
class JenisLegalitasJaminanRequest extends FormRequest
{
@ -12,16 +14,11 @@
public function rules()
: array
{
$rules = [
return [
'code' => 'required|max:6',
'name' => 'required|max:255',
'slug' => 'required|max:255',
];
if ($this->method() == 'PUT') {
$rules['code'] = 'required|max:50|unique:jenis_legalitas_jaminan,code,' . $this->id;
} else {
$rules['code'] = 'required|max:50|unique:jenis_legalitas_jaminan,code';
}
return $rules;
}
/**
@ -32,4 +29,20 @@
{
return true;
}
public function prepareForValidation()
{
if($this->method() == 'POST' && $this->code == null) {
$this->merge([
'code' => IdGenerator::generate(
['table' => 'jenis_legalitas_jaminan', 'length' => 6, 'prefix' => 'JLJ', 'field' => 'code'],
),
'slug' => Str::slug($this->name),
]);
} else {
$this->merge([
'slug' => Str::slug($this->name),
]);
}
}
}

View File

@ -14,13 +14,15 @@
: array
{
$rules = [
'nomor_registrasi' => 'nullable|string|max:10',
'tanggal_permohonan' => 'nullable|date',
'user_id' => 'nullable|exists:users,id',
'branch_id' => 'required|exists:branches,id',
'tujuan_penilaian_id' => 'required|exists:tujuan_penilaian,id',
'debiture_id' => 'required|exists:debitures,id',
'status' => 'required|string',
'nomor_registrasi' => 'nullable|string|max:10',
'tanggal_permohonan' => 'nullable|date',
'user_id' => 'nullable|exists:users,id',
'branch_id' => 'required|exists:branches,id',
'tujuan_penilaian_id' => 'required|exists:tujuan_penilaian,id',
'debiture_id' => 'required|exists:debitures,id',
'status' => 'required|string',
'jenis_fasilitas_kredit_id' => 'required|exists:jenis_fasilitas_kredit,id',
'nilai_plafond_id' => 'required|exists:nilai_plafond,id',
];
return $rules;
@ -40,10 +42,11 @@
if (!$this->id) {
$this->merge([
'nomor_registrasi' => IdGenerator::generate(
['table' => 'permohonan', 'length' => 10, 'prefix'=>'REG', 'field' => 'nomor_registrasi'],
['table' => 'permohonan', 'length' => 10, 'prefix' => 'REG', 'field' => 'nomor_registrasi'],
),
'tanggal_permohonan' => date('Y-m-d'),
'user_id' => auth()->user()->id,
'branch_id' => auth()->user()->branch_id,
]);
}
}

View File

@ -16,6 +16,7 @@
$rules = [
'description' => 'nullable|max:255',
'status' => 'required|boolean',
'slug' => 'nullable|max:255',
];
if ($this->method() == 'PUT') {
@ -37,9 +38,9 @@
public function prepareForValidation()
{
$this->merge([
return $this->merge([
'status' => isset($this->status) ? 1 : 0,
'slug'=> Str::slug($this->name)
'slug' => Str::slug($this->name),
]);
}
}

View File

@ -56,4 +56,8 @@
return $this->belongsTo(Village::class, 'village_code', 'code');
}
public function documents(){
return $this->hasMany(DokumenJaminan::class);
}
}

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,11 +60,11 @@
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');
}
public function detail(){
return $this->hasMany(DetailDokumenJaminan::class, 'dokumen_jaminan_id', 'id');
}
}

View File

@ -2,10 +2,8 @@
namespace Modules\Lpj\Models;
use Modules\Lpj\Database\Factories\JenisJaminanFactory;
class JenisJaminan extends Base
{
protected $table = 'jenis_jaminan';
protected $fillable = ['code', 'name'];
protected $fillable = ['code', 'name','slug','jenis_legalitas_jaminan_id'];
}

View File

@ -7,5 +7,5 @@
class JenisLegalitasJaminan extends Base
{
protected $table = 'jenis_legalitas_jaminan';
protected $fillable = ['code', 'name'];
protected $fillable = ['code', 'name','slug'];
}

View File

@ -17,10 +17,14 @@ class Permohonan extends Base
'branch_id',
'tujuan_penilaian_id',
'debiture_id',
'keterangan',
'jenis_fasilitas_kredit_id',
'nilai_plafond_id',
'status',
'authorized_at',
'authorized_status',
'authorized_by',
];
public function user(){
@ -42,4 +46,12 @@ class Permohonan extends Base
public function documents(){
return $this->hasMany(DokumenJaminan::class);
}
public function nilaiPlafond(){
return $this->belongsTo(NilaiPlafond::class);
}
public function jenisFasilitasKredit(){
return $this->belongsTo(JenisFasilitasKredit::class);
}
}

View File

@ -0,0 +1,25 @@
<?php
namespace Modules\Lpj\Rules;
use Closure;
use Illuminate\Contracts\Validation\ValidationRule;
use Modules\Lpj\Models\Debiture;
class UniqueCifExceptZero implements ValidationRule
{
public function __construct($id = null)
{
$this->id = $id;
}
public function validate($attribute, $value, $fail): void
{
if (Debiture::where($attribute, $value)
->where('id', '!=', $this->id)
->where($attribute, '!=', '000000')
->exists()) {
$fail('The :attribute field must be uniquse.'.$this->id);
}
}
}

View File

@ -0,0 +1,38 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Modules\Lpj\Models\DokumenJaminan;
use Modules\Lpj\Models\Permohonan;
return new class extends Migration {
/**
* Run the migrations.
*/
public function up()
: void
{
Schema::create('permohonan_jaminan', function (Blueprint $table) {
$table->id();
$table->foreignIdFor(Permohonan::class)->constrained('permohonan');
$table->foreignIdFor(DokumenJaminan::class)->constrained('dokumen_jaminan');
$table->boolean('status')->default(true)->nullable();
$table->timestamps();
$table->softDeletes();
$table->unsignedBigInteger('created_by')->nullable();
$table->unsignedBigInteger('updated_by')->nullable();
$table->unsignedBigInteger('deleted_by')->nullable();
});
}
/**
* Reverse the migrations.
*/
public function down()
: void
{
Schema::dropIfExists('permohonan_jaminan');
}
};

View File

@ -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('jenis_legalitas_jaminan', function (Blueprint $table) {
$table->string('slug')->nullable()->after('name');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('jenis_legalitas_jaminan', function (Blueprint $table) {
$table->dropColumn('slug');
});
}
};

View File

@ -0,0 +1,30 @@
<?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('jenis_jaminan', function (Blueprint $table) {
$table->string('slug')->after('name');
$table->string('jenis_legalitas_jaminan_id')->nullable()->after('slug');
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('jenis_jaminan', function (Blueprint $table) {
$table->dropColumn('slug');
$table->dropColumn('jenis_legalitas_jaminan_id');
});
}
};

View File

@ -18,20 +18,16 @@ use Illuminate\Support\Facades\Schema;
{
Schema::create('dokumen_jaminan', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->foreignIdFor(Debiture::class)->constrained('debitures')->onDelete('cascade');
$table->foreignIdFor(Permohonan::class)->nullable()->constrained('permohonan')->onDelete('cascade');
$table->foreignIdFor(JenisJaminan::class)->constrained('jenis_jaminan')->onDelete('cascade');
$table->foreignIdFor(PemilikJaminan::class)->constrained('pemilik_jaminan')->onDelete('cascade');
$table->foreignIdFor(JenisLegalitasJaminan::class)->constrained('jenis_legalitas_jaminan')->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();

View File

@ -0,0 +1,44 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Modules\Lpj\Models\DokumenJaminan;
use Modules\Lpj\Models\JenisLegalitasJaminan;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::create('detail_dokumen_jaminan', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->foreignIdFor(DokumenJaminan::class)->constrained('dokumen_jaminan')->onDelete('cascade');
$table->foreignIdFor(JenisLegalitasJaminan::class)->constrained('jenis_legalitas_jaminan')->onDelete('cascade');
$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('detail_dokumen_jaminan');
}
};

View File

@ -0,0 +1,33 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
use Modules\Lpj\Models\JenisFasilitasKredit;
use Modules\Lpj\Models\NilaiPlafond;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('permohonan', function (Blueprint $table) {
$table->foreignIdFor(JenisFasilitasKredit::class)->nullable()->onDelete('cascade');
$table->foreignIdFor(NilaiPlafond::class)->nullable()->onDelete('cascade');
$table->string('status')->default('order')->change();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('permohonan', function (Blueprint $table) {
$table->dropForeign(['fasilitas_kredit_id']);
$table->dropForeign(['nilai_plafond_id']);
});
}
};

View File

@ -46,7 +46,7 @@
},
{
"title": "Authorization",
"path": "",
"path": "authorization",
"icon": "ki-filled ki-some-files text-lg",
"classes": "",
"attributes": [],
@ -103,14 +103,6 @@
"permission": "",
"roles": []
},
{
"title": "Jenis Jaminan",
"path": "basicdata.jenis-jaminan",
"classes": "",
"attributes": [],
"permission": "",
"roles": []
},
{
"title": "Jenis Legalitas Jaminan",
"path": "basicdata.jenis-legalitas-jaminan",
@ -121,7 +113,7 @@
},
{
"title": "Jenis Aset",
"path": "basicdata.jenis-aset",
"path": "basicdata.jenis-jaminan",
"classes": "",
"attributes": [],
"permission": "",

View File

@ -29,7 +29,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $arahMataAngin->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $arahMataAngin->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $branch->code ?? '' }}">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $branch->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $branch->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $branch->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $currency->code ?? '' }}">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $currency->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $currency->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $currency->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -51,7 +51,7 @@
Decimal Places
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('decimal_places') border-danger @enderror" type="number" min="0" max="3" name="decimal_places" value="{{ $currency->decimal_places ?? '' }}">
<input class="input @error('decimal_places') border-danger bg-danger-light @enderror" type="number" min="0" max="3" name="decimal_places" value="{{ $currency->decimal_places ?? '' }}">
@error('decimal_places')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -1,5 +1,6 @@
<form action="{{ isset($debitur->id) ? route('debitur.update', $debitur->id) : route('debitur.store') }}" method="POST" class="grid gap-5">
@if(isset($debitur->id))
<input type="hidden" name="id" value="{{ $debitur->id }}">
@method('PUT')
@endif
@csrf
@ -8,7 +9,7 @@
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">
<select class="input tomselect w-full @error('branch_id') border-danger bg-danger-light @enderror" name="branch_id" id="branch_id">
<option value="">Pilih Cabang</option>
@foreach($branches as $branch)
@if(isset($debitur))
@ -29,7 +30,7 @@
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 ?? '' }}">
<input class="input @error('cif') border-danger bg-danger-light @enderror" type="number" name="cif" value="{{ $debitur->cif ?? '0000000000' }}">
@error('cif')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +41,7 @@
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 ?? '' }}">
<input class="input @error('nomor_rekening') border-danger bg-danger-light @enderror" type="number" name="nomor_rekening" value="{{ $debitur->nomor_rekening ?? '' }}">
@error('nomor_rekening')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -51,7 +52,7 @@
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 ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $debitur->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -62,7 +63,7 @@
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 ?? '' }}">
<input class="input @error('npwp') border-danger bg-danger-light @enderror" type="number" name="npwp" value="{{ $debitur->npwp ?? '' }}">
@error('npwp')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -73,7 +74,7 @@
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 ?? '' }}">
<input class="input @error('email') border-danger bg-danger-light @enderror" type="email" name="email" value="{{ $debitur->email ?? '' }}">
@error('email')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -84,7 +85,7 @@
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 ?? '' }}">
<input class="input @error('phone') border-danger bg-danger-light @enderror" type="number" name="phone" value="{{ $debitur->phone ?? '' }}">
@error('phone')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -97,7 +98,7 @@
<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">
<select id="province_code" name="province_code" class="select w-full @error('province_code') border-danger bg-danger-light @enderror">
<option value="">Select Province</option>
@foreach($provinces as $province)
@if(isset($debitur))
@ -116,7 +117,7 @@
@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">
<select id="city_code" name="city_code" class="select w-full @error('city_code') border-danger bg-danger-light @enderror">
<option value="">Select City</option>
@if(isset($cities))
@foreach($cities as $city)
@ -140,7 +141,7 @@
</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">
<select id="district_code" name="district_code" class="select w-full @error('district_code') border-danger bg-danger-light @enderror">
<option value="">Select District</option>
@if(isset($districts))
@foreach($districts as $district)
@ -162,7 +163,7 @@
@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">
<select id="village_code" name="village_code" class="select w-full @error('district_code') border-danger bg-danger-light @enderror">
<option value="">Select Village</option>
@if(isset($villages))
@foreach($villages as $village)
@ -184,14 +185,14 @@
@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">
<input class="input @error('postal_code') border-danger bg-danger-light @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>
<textarea class="textarea @error('address') border-danger bg-danger-light @enderror" rows="3" type="number" id="address" name="address">{{ $debitur->address ?? '' }}</textarea>
@error('address')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -19,7 +19,7 @@
</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">
<select 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="0">Sama Dengan Debitur</option>
@if(isset($pemilikJaminan))
@ -56,7 +56,10 @@
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">
@if(isset($document->id))
<input type="hidden" name="jenis_jaminan_id" value="{{ $document->jenis_jaminan_id }}">
@endif
<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">
<option value="">Pilih Jenis Jaminan</option>
@foreach($jenisJaminan as $row)
@if(isset($document))
@ -73,68 +76,52 @@
@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>
@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 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">
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 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>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
@ -143,7 +130,7 @@
<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">
<select id="province_code" name="province_code" class="select w-full @error('province_code') border-danger bg-danger-light @enderror">
<option value="">Select Province</option>
@foreach($provinces as $province)
@if(isset($document))
@ -155,6 +142,7 @@
{{ $province->name }}
</option>
@endif
;
@endforeach
</select>
@error('province_code')
@ -162,7 +150,7 @@
@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">
<select id="city_code" name="city_code" class="select w-full @error('city_code') border-danger bg-danger-light @enderror">
<option value="">Select City</option>
@if(isset($cities))
@foreach($cities as $city)
@ -186,7 +174,7 @@
</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">
<select id="district_code" name="district_code" class="select w-full @error('district_code') border-danger bg-danger-light @enderror">
<option value="">Select District</option>
@if(isset($districts))
@foreach($districts as $district)
@ -208,7 +196,7 @@
@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">
<select id="village_code" name="village_code" class="select w-full @error('district_code') border-danger bg-danger-light @enderror">
<option value="">Select Village</option>
@if(isset($villages))
@foreach($villages as $village)
@ -230,14 +218,14 @@
@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">
<input class="input @error('postal_code') border-danger bg-danger-light @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>
<textarea class="textarea @error('address') border-danger bg-danger-light @enderror" rows="3" type="number" id="address" name="address">{{ $document->address ?? '' }}</textarea>
@error('address')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -250,3 +238,69 @@
</button>
</div>
</form>
@push('scripts')
<script>
function getLegalitasJaminan() {
var legalitasJaminan = document.getElementById('jenis_jaminan_id').value;
var url = '/basic-data/jenis-jaminan/legalitas/' + legalitasJaminan;
fetch(url, {
method: 'GET',
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.then(data => {
console.log(data);
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">
<label class="form-label max-w-56 font-bold">
${index + 1}. ${item.name}
</label>
<input type="hidden" name="jenis_legalitas_jaminan_id[]" value="${item.id}">
</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="" 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="">
</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[]"></textarea>
</div>
</div>`;
})
})
.catch(error => {
console.error('Error:', error);
// Handle the error here
});
}
</script>
@endpush

View File

@ -1,4 +1,4 @@
<div class="grid grid-cols-1 lg:grid-cols-2 xl:grid-cols-3 gap-5 lg:gap-7.5">
<div class="grid grid-cols-1 lg:grid-cols-2 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">
@ -19,14 +19,7 @@
</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">
@ -50,27 +43,7 @@
</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>
@ -78,6 +51,35 @@
{{ $document->address.', '.$document->village->name.', '.$document->city->name.', '.$document->province->name.', '.$document->postal_code }}
</p>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
<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>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
@foreach($document->detail as $detail)
<div class="flex items-center justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase">
{{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</span>
<a href="{{ route('debitur.jaminan.download',['id'=>$debitur->id, 'dokumen'=>$detail->id]) }}" class="badge badge-sm badge-outline">{{ basename($detail->dokumen_jaminan) }} <i class="ki-filled ki-cloud-download"></i></a>
</div>
<div class="border-t border-gray-300 border-dashed">
</div>
<div class="flex items-start justify-between flex-wrap my-2.5 gap-2">
<span class="text-2xs text-gray-600 uppercase pl-3">
keterangan
</span>
<p class="text-2xs text-gray-600 text-right max-w-[250px]">
{{ $detail->keterangan }}
</p>
</div>
<div class="border-t border-gray-300 border-dashed mb-3.5">
</div>
@endforeach
</div>
</div>
@endforeach

View File

@ -13,6 +13,9 @@
{{ isset($debitur->id) ? 'Edit' : 'Tambah' }} Debitur
</h3>
<div class="flex items-center gap-2">
@if(isset($debitur->id))
<a class="btn btn-sm btn-primary" href="{{ route('permohonan.create.debitur', $debitur->id) }}"> Buat Permohonan </a>
@endif
<a href="{{ route('debitur.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>

View File

@ -6,16 +6,28 @@
@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.index',$debitur->id) }}" class="btn btn-xs {{ request()->routeIs('debitur.jaminan.index') ? 'btn-outline btn-primary' : 'btn-light' }}">Dokumen Jaminan</a>
<a href="{{ route('debitur.pemilik.index',$debitur->id) }}" class="btn btn-xs {{ request()->routeIs('debitur.pemilik.index') ? 'btn-outline btn-primary' : 'btn-light' }}">Pemilk Jaminan</a>
@if(request()->get('permohonan_id'))
<a href="{{ route('permohonan.edit',['permohonan'=>request()->get('permohonan_id')]) }}" class="btn btn-xs {{ request()->routeIs('permohonan.edit') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Permohonan</a>
@endif
<a href="{{ route('debitur.edit',array_merge(request()->query(),['debitur'=>$debitur->id])) }}" class="btn btn-xs {{ request()->routeIs('debitur.edit') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Debitur</a>
<a href="{{ route('debitur.jaminan.index',array_merge(request()->query(),['id'=>$debitur->id])) }}" class="btn btn-xs {{ request()->routeIs('debitur.jaminan.index') ? 'btn-outline btn-primary' : 'btn-light' }}">Dokumen Jaminan</a>
<a href="{{ route('debitur.pemilik.index',array_merge(request()->query(),['id'=>$debitur->id])) }}" class="btn btn-xs {{ request()->routeIs('debitur.pemilik.index') ? 'btn-outline btn-primary' : 'btn-light' }}">Pemilk Jaminan</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>
@if(isset($debitur->id) && request()->get('permohonan_id') == null)
<a class="btn btn-sm btn-primary" href="{{ route('permohonan.create.debitur', $debitur->id) }}"> Buat Permohonan </a>
@endif
@if(request()->get('from') == 'permohonan')
<a href="{{ route('permohonan.create') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@elseif(request()->get('permohonan_id'))
<a href="{{ route('permohonan.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@else
<a href="{{ route('debitur.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@endif
</div>
</div>
<div class="card-body">

View File

@ -29,7 +29,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $hubunganPemilikJaminan->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $hubunganPemilikJaminan->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $hubunganPenghuniJaminan->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $hubunganPenghuniJaminan->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $jenisAset->code ?? '' }}">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisAset->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $jenisAset->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisAset->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $jenisDokumen->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisDokumen->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Max Size
</label>
<div class="flex flex-wrap items-baseline w-full">
<input placeholder="Ukuran dalam MB" class="input @error('max_size') border-danger @enderror" type="number" name="max_size" value="{{ $jenisDokumen->max_size ?? '' }}">
<input placeholder="Ukuran dalam MB" class="input @error('max_size') border-danger bg-danger-light @enderror" type="number" name="max_size" value="{{ $jenisDokumen->max_size ?? '' }}">
@error('max_size')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -51,7 +51,7 @@
Description
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('description') border-danger @enderror" rows="2" type="number" id="description" name="description">{{ $jenisDokumen->description ?? '' }}</textarea>
<textarea class="textarea @error('description') border-danger bg-danger-light @enderror" rows="2" type="number" id="description" name="description">{{ $jenisDokumen->description ?? '' }}</textarea>
@error('description')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $jenisFasilitasKredit->code ?? '' }}">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisFasilitasKredit->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $jenisFasilitasKredit->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisFasilitasKredit->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -24,28 +24,50 @@
</div>
</div>
<div class="card-body grid gap-5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $jenisJaminan->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@if(isset($jenisJaminan->id))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisJaminan->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $jenisJaminan->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisJaminan->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">
Jenis Legalitas Jaminan
</label>
<div class="grid grid-cols-3 lg:grid-cols-4 w-full gap-2.5">
@foreach($jenisLegalitasJaminan as $row)
<label class="switch">
@if(isset($jenisJaminan->jenis_legalitas_jaminan_id))
<input type="checkbox" @if(in_array($row->code,json_decode($jenisJaminan->jenis_legalitas_jaminan_id,true))) {{ "checked" }} @endif value="{{ $row->code }}" name="jenis_legalitas_jaminan_id[]"/>
@else
<input type="checkbox" value="{{ $row->code }}" name="jenis_legalitas_jaminan_id[]"/>
@endif
<span class="switch-label">
{{ $row->name }}
</span>
</label>
@endforeach
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save

View File

@ -24,23 +24,25 @@
</div>
</div>
<div class="card-body grid gap-5">
@if(isset($jenisLegalitasJaminan->id))
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}">
<input readonly class="input border-warning bg-warning-light @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $jenisLegalitasJaminan->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
@endif
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $jenisLegalitasJaminan->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -29,7 +29,7 @@
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $nilaiPlafond->code ?? '' }}">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $nilaiPlafond->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $nilaiPlafond->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $nilaiPlafond->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -45,7 +45,7 @@
Hubungan Pemilik Jaminan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="hubungan_pemilik_jaminan_id" id="hubungan_pemilik_jaminan_id">
<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)
@ -71,21 +71,31 @@
Nama Lengkap
</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="{{ $pemilik->name ?? '' }}" placeholder="Nama Pemilik Jaminan">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<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('name') border-danger bg-danger-light @enderror" type="text " id="name" name="name" value="{{ $pemilik->name ?? '' }}" placeholder="Nama Pemilik Jaminan">
@error('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">
Nomor ID/KTP
&nbsp;
</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
<button type="button" id="tambah_sertifikat" class="btn btn-primary btn-xs">Tambah Nama di Sertifikat</button>
</div>
</div>
@ -94,7 +104,7 @@
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 ?? '' }}">
<input class="input @error('npwp') border-danger bg-danger-light @enderror" type="number" name="npwp" value="{{ $debitur->npwp ?? '' }}">
@error('npwp')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -105,7 +115,7 @@
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 ?? '' }}">
<input class="input @error('email') border-danger bg-danger-light @enderror" type="email" name="email" value="{{ $debitur->email ?? '' }}">
@error('email')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -116,7 +126,7 @@
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 ?? '' }}">
<input class="input @error('phone') border-danger bg-danger-light @enderror" type="number" name="phone" value="{{ $debitur->phone ?? '' }}">
@error('phone')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -130,7 +140,7 @@
<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">
<select id="province_code" name="province_code" class="select w-full @error('province_code') border-danger bg-danger-light @enderror">
<option value="">Select Province</option>
@foreach($provinces as $province)
@if(isset($pemilik))
@ -149,7 +159,7 @@
@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">
<select id="city_code" name="city_code" class="select w-full @error('city_code') border-danger bg-danger-light @enderror">
<option value="">Select City</option>
@if(isset($cities))
@foreach($cities as $city)
@ -173,7 +183,7 @@
</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">
<select id="district_code" name="district_code" class="select w-full @error('district_code') border-danger bg-danger-light @enderror">
<option value="">Select District</option>
@if(isset($districts))
@foreach($districts as $district)
@ -195,7 +205,7 @@
@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">
<select id="village_code" name="village_code" class="select w-full @error('district_code') border-danger bg-danger-light @enderror">
<option value="">Select Village</option>
@if(isset($villages))
@foreach($villages as $village)
@ -217,14 +227,14 @@
@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="{{ $pemilik->postal_code ?? '' }}" placeholder="Postal Code">
<input class="input @error('postal_code') border-danger bg-danger-light @enderror" type="number" id="postal_code" name="postal_code" value="{{ $pemilik->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">{{ $pemilik->address ?? '' }}</textarea>
<textarea class="textarea @error('address') border-danger bg-danger-light @enderror" rows="3" type="number" id="address" name="address">{{ $pemilik->address ?? '' }}</textarea>
@error('address')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -242,3 +252,43 @@
</div>
</div>
@endsection
@push('scripts')
<script>
document.getElementById('tambah_sertifikat').addEventListener('click', function() {
const namaSertifikatDiv = document.getElementById('nama_sertifikat');
const newDiv = document.createElement('div');
newDiv.innerHTML = `
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5 mb-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('name') border-danger bg-danger-light @enderror" type="text" id="name" name="name" value="{{ $pemilik->name ?? '' }}" placeholder="Nama Pemilik Jaminan">
@error('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>
<button type="button" class="btn btn-danger btn-xs delete-button">Hapus</button>
</div>
</div>
</div>
`;
namaSertifikatDiv.appendChild(newDiv);
// Event listener untuk tombol hapus
newDiv.querySelector('.delete-button').addEventListener('click', function() {
namaSertifikatDiv.removeChild(newDiv);
});
});
</script>
@endpush

View File

@ -0,0 +1,191 @@
@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 card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="permohonan-table" data-api-url="{{ route('authorization.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Daftar Permohonan
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Permohonan" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-light" href="{{ route('permohonan.export') }}"> Export to Excel </a>
</div>
</div>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
<thead>
<tr>
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[150px]" data-datatable-column="nomor_registrasi">
<span class="sort"> <span class="sort-label"> Nomor Registrasi </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tanggal_permohonan">
<span class="sort"> <span class="sort-label"> Tanggal Permohonan </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="user_id">
<span class="sort"> <span class="sort-label"> User Pemohon </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="branch_id">
<span class="sort"> <span class="sort-label"> Cabang Pemohon </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="debitur_id">
<span class="sort"> <span class="sort-label"> Debitur </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="tujuan_penilaian_id">
<span class="sort"> <span class="sort-label"> Tujuan Penilaian </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[150px]" data-datatable-column="status">
<span class="sort"> <span class="sort-label"> Status </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
</table>
</div>
<div class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
</div>
<div class="flex items-center gap-4">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@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(`permohonan/${data}`, {
type: 'DELETE'
}).then((response) => {
swal.fire('Deleted!', 'User 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>
<script type="module">
const element = document.querySelector('#permohonan-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
const dataTableOptions = {
apiEndpoint: apiUrl,
pageSize: 5,
columns: {
select: {
render: (item, data, context) => {
const checkbox = document.createElement('input');
checkbox.className = 'checkbox checkbox-sm';
checkbox.type = 'checkbox';
checkbox.value = data.id.toString();
checkbox.setAttribute('data-datatable-row-check', 'true');
return checkbox.outerHTML.trim();
},
},
nomor_registrasi: {
title: 'Nomor Registrasi',
},
tanggal_permohonan: {
title: 'Tanggal Permohonan'
},
user_id: {
title: 'User Pemohon',
render: (item, data) => {
return `${data.user.name}`;
},
},
branch_id: {
title: 'Cabang Pemohon',
render: (item, data) => {
return `${data.branch.name}`;
},
},
debitur_id: {
title: 'Debitur',
render: (item, data) => {
return `${data.debiture.name}`;
},
},
tujuan_penilaian_id: {
title: 'Tujuan Penilaian',
render: (item, data) => {
return `${data.tujuan_penilaian.name}`;
},
},
status: {
title: 'Status'
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center">
<a class="btn btn-sm btn-icon btn-clear btn-warning " href="authorization/${data.id}/edit">
<i class="ki-outline ki-eye"></i>
</a>
</div>`;
},
}
},
};
let dataTable = new KTDataTable(element, dataTableOptions);
// Custom search functionality
searchInput.addEventListener('input', function () {
const searchValue = this.value.trim();
dataTable.search(searchValue, true);
});
</script>
@endpush

View File

@ -0,0 +1,257 @@
@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">
<div class="card-header" id="advanced_settings_appearance">
<h3 class="card-title">
Data Permohonan
</h3>
</div>
<div class="card-body lg:py-7.5 grid grid-cols-3">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Nomor Register Permohonan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->nomor_registrasi }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemohon:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Tujan Permohonan:
</h3>
<span class="text-2sm text-gray-700">
{{ $permohonan->tujuanPenilaian->name }}
</span>
</div>
</div>
</div>
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Detail Debutur
</h3>
</div>
<div class="card-table scrollable-x-auto pb-3">
<div class="grid grid-cols-1 xl:grid-cols-2 gap-5 lg:gap-7.5">
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<tr>
<td class="py-2 text-gray-600 font-normal">
Name
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3">
Email
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $permohonan->debiture->email ?? "" }}
</td>
</tr>
<tr>
<td class="py-3">
Phone
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $permohonan->debiture->phone ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Address
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->address ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
&nbsp;
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }}
</td>
</tr>
</table>
</div>
<div class="col-span-1">
<table class="table align-middle text-sm text-gray-500">
<tr>
<td class="py-3 text-gray-600 font-normal">
Cabang
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->branch->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
CIF
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $permohonan->debiture->cif ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 text-gray-600 font-normal">
Nomor Rekening
</td>
<td class="py-3 text-gray-700 text-sm font-normal">
{{ $permohonan->debiture->nomor_rekening ?? "" }}
</td>
</tr>
<tr>
<td class="py-3">
NPWP
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $permohonan->debiture->npwp ?? "" }}
</td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div class="card min-w-full">
<div class="card-header">
<h3 class="card-title">
Data Jaminan
</h3>
</div>
<div data-accordion="true">
@foreach($permohonan->debiture->documents as $dokumen)
<div class="accordion-item [&:not(:last-child)]:border-b border-b-gray-200" data-accordion-item="true" id="accordion_1_item_1">
<button class="accordion-toggle py-4 group mx-8" data-accordion-toggle="#accordion_1_content_1">
<span class="text-base text-gray-900 font-medium">
Jaminan {{ $loop->index + 1 }}
</span>
<i class="ki-outline ki-plus text-gray-600 text-2sm accordion-active:hidden block">
</i>
<i class="ki-outline ki-minus text-gray-600 text-2sm accordion-active:block hidden">
</i>
</button>
<div class="accordion-content hidden" id="accordion_1_content_1">
<div class="card-body lg:py-7.5 grid grid-cols-2">
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Jenis Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->jenisJaminan->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Hubungan Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->hubungan_pemilik->name?? "" }}
</span>
</div>
<div class="mb-5">
<h3 class="text-md font-medium text-gray-900">
Alamat Pemilik Jaminan:
</h3>
<span class="text-2sm text-gray-700">
{{ $dokumen->pemilik->address ?? ""}},
<br> {{ $dokumen->pemilik->village->name ?? "" }}, {{ $dokumen->pemilik->district->name ?? "" }}, {{ $dokumen->pemilik->city->name ?? "" }}, {{ $dokumen->pemilik->province->name ?? "" }} - {{ $dokumen->pemilik->village->postal_code ?? "" }}
</span>
</div>
</div>
<div class="card-table scrollable-x-auto pb-3">
<table class="table align-middle text-sm text-gray-500">
@foreach($dokumen->detail as $detail)
<tr>
<td class="py-2 text-gray-600 font-normal max-w-[100px]">
{{ $loop->index + 1 }}. {{ $detail->jenisLegalitasJaminan->name }}
</td>
<td class="py-2 text-gray-800 font-normaltext-sm">
{{ $detail->name ?? "" }}
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Dokumen Jaminan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
@if(isset($detail->dokumen_jaminan))
<a href="{{ route('debitur.jaminan.download',['id'=>$permohonan->debiture->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
</td>
</tr>
<tr>
<td class="py-3 max-w-[100px]">
Keterangan
</td>
<td class="py-3 text-gray-700 text-2sm font-normal">
{{ $detail->keterangan ?? "" }}
</td>
</tr>
@endforeach
</table>
</div>
</div>
</div>
@endforeach
</div>
</div>
<div class="card">
<form action="{{ route('authorization.update', $permohonan->id) }}" method="POST">
<input type="hidden" name="_method" value="PUT">
@csrf
<div class="card-body lg:py-7.5">
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Catatan
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea" rows="3" type="number" id="address" name="address"></textarea>
</div>
</div>
</div>
<div class="card-footer flex justify-end">
<button type="submit" name="status" value="register" class="btn btn-success">
Approve
</button>
<button type="submit" name="status" value="revisi" class="btn btn-warning ml-3">
Revisi
</button>
</div>
</form>
</div>
</div>
@endsection

View File

@ -0,0 +1,188 @@
@extends('layouts.main')
@section('breadcrumbs')
{{ Breadcrumbs::render(request()->route()->getName()) }}
@endsection
@section('content')
<div class="grid">
<div class="card card-grid min-w-full" data-datatable="false" data-datatable-page-size="5" data-datatable-state-save="false" id="debitur-table" data-api-url="{{ route('debitur.datatables') }}">
<div class="card-header py-5 flex-wrap">
<h3 class="card-title">
Daftar Debitur
</h3>
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Debitur" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">
<div class="h-[24px] border border-r-gray-200"></div>
<a class="btn btn-sm btn-primary" href="{{ route('debitur.create') }}"> Tambah Debitur </a>
</div>
</div>
</div>
<div class="card-body">
<div class="scrollable-x-auto">
<table class="table table-auto table-border align-middle text-gray-700 font-medium text-sm" data-datatable-table="true">
<thead>
<tr>
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[50px]" data-datatable-column="cif">
<span class="sort"> <span class="sort-label"> Cif </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="nomor_rekening">
<span class="sort"> <span class="sort-label"> Nomor Rekening </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="name">
<span class="sort"> <span class="sort-label"> Debitur </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="branch">
<span class="sort"> <span class="sort-label"> Cabang </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="email">
<span class="sort"> <span class="sort-label"> Email </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="phone">
<span class="sort"> <span class="sort-label"> Phone </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px]" data-datatable-column="address">
<span class="sort"> <span class="sort-label"> Alamat </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[50px] text-center" data-datatable-column="actions">Action</th>
</tr>
</thead>
</table>
</div>
<div class="card-footer justify-center md:justify-between flex-col md:flex-row gap-3 text-gray-600 text-2sm font-medium">
<div class="flex items-center gap-2">
Show
<select class="select select-sm w-16" data-datatable-size="true" name="perpage"> </select> per page
</div>
<div class="flex items-center gap-4">
<span data-datatable-info="true"> </span>
<div class="pagination" data-datatable-pagination="true">
</div>
</div>
</div>
</div>
</div>
</div>
@endsection
@push('scripts')
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11"></script>
<script type="text/javascript">
window.addEventListener('DOMContentLoaded', function () {
})
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/${data}`, {
type: 'DELETE'
}).then((response) => {
swal.fire('Deleted!', 'User 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>
<script type="module">
const element = document.querySelector('#debitur-table');
const searchInput = document.getElementById('search');
const apiUrl = element.getAttribute('data-api-url');
const dataTableOptions = {
apiEndpoint: apiUrl,
pageSize: 5,
columns: {
select: {
render: (item, data, context) => {
const checkbox = document.createElement('input');
checkbox.className = 'checkbox checkbox-sm';
checkbox.type = 'checkbox';
checkbox.value = data.id.toString();
checkbox.setAttribute('data-datatable-row-check', 'true');
return checkbox.outerHTML.trim();
},
},
cif: {
title: 'CIF',
},
nomor_rekening: {
title: 'Nomor Rekening',
},
name: {
title: 'Debitur',
},
branch: {
title: 'Cabang',
render: (item, data, context) => {
return `${data.branch.name}`;
},
},
email: {
title: 'Email',
},
phone: {
title: 'Phone',
},
address: {
title: 'Alamat',
},
actions: {
title: 'Status',
render: (item, data) => {
return `<div class="flex flex-nowrap justify-center gap-1.5">
<a class="btn btn-sm btn-icon btn-outline btn-warning" href="/debitur/${data.id}/edit?from=permohonan">
<i class="ki-outline ki-eye"></i>
</a>
<a class="btn btn-sm btn-outline btn-info " href="/permohonan/${data.id}/create">
<i class="ki-outline ki-notepad-edit"></i> Buat Permohonan
</a>
</div>`;
},
}
},
};
let dataTable = new KTDataTable(element, dataTableOptions);
dataTable.showSpinner();
// Custom search functionality
searchInput.addEventListener('input', function () {
const searchValue = this.value.trim();
dataTable.search(searchValue, true);
});
</script>
@endpush

View File

@ -5,141 +5,320 @@
@endsection
@section('content')
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
@if(isset($permohonan))
<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('permohonan.edit',array_merge(request()->query(),['permohonan'=>$permohonan->id])) }}" class="btn btn-xs {{ request()->routeIs('permohonan.edit') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Permohonan</a>
<a href="{{ route('debitur.edit',array_merge(request()->query(),['debitur'=>$debitur->id,'permohonan_id' => $permohonan->id])) }}" class="btn btn-xs {{ request()->routeIs('debitur.edit') ? 'btn-outline btn-primary' : 'btn-light' }}">Data Debitur</a>
<a href="{{ route('debitur.jaminan.index',array_merge(request()->query(),['id'=>$debitur->id,'permohonan_id' => $permohonan->id])) }}" class="btn btn-xs {{ request()->routeIs('debitur.jaminan.index') ? 'btn-outline btn-primary' : 'btn-light' }}">Dokumen Jaminan</a>
<a href="{{ route('debitur.pemilik.index',array_merge(request()->query(),['id'=>$debitur->id,'permohonan_id' => $permohonan->id])) }}" class="btn btn-xs {{ request()->routeIs('debitur.pemilik.index') ? 'btn-outline btn-primary' : 'btn-light' }}">Pemilk Jaminan</a>
</div>
<div class="flex items-center gap-2">
@if(isset($debitur->id) && !isset($permohonan->id))
<a class="btn btn-sm btn-primary" href="{{ route('permohonan.create.debitur', $debitur->id) }}"> Buat Permohonan </a>
@endif
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($permohonan->id) ? 'Edit' : 'Tambah' }} Permohonan
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('permohonan.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@if(request()->get('from') == 'permohonan')
<a href="{{ route('permohonan.create') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@elseif($permohonan->id)
<a href="{{ route('permohonan.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@else
<a href="{{ route('debitur.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
@endif
</div>
</div>
<div class="card-body">
@if(request()->routeIs('permohonan.edit', $permohonan))
<form action="{{ isset($permohonan->id) ? route('permohonan.update', $permohonan) : route('permohonan.store') }}" method="POST" class="grid gap-5" enctype="multipart/form-data">
@if(isset($permohonan->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="debiture_id" value="{{ $debitur->id }}">
<p class="text-base text-bold">{{ $debitur->name }}</p>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tujuan Penilaian
</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="tujuan_penilaian_id" id="tujuan_penilaian_id">
<option value="">Pilih Tujuan Penilaian</option>
@if(isset($tujuanPenilaian))
@foreach($tujuanPenilaian as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->tujuan_penilaian_id) && $permohonan->tujuan_penilaian_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('tujuan_penilaian_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">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('jenis_fasilitas_kredit_id') border-danger bg-danger-light @enderror" name="jenis_fasilitas_kredit_id" id="jenis_fasilitas_kredit_id">
<option value="">Pilih Fasilitas Kredit</option>
@if(isset($fasilitasKredit))
@foreach($fasilitasKredit as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->jenis_fasilitas_kredit_id) && $permohonan->jenis_fasilitas_kredit_id == $row->id ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<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">
Nilai Plafond
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('nilai_plafond_id') border-danger bg-danger-light @enderror" name="nilai_plafond_id" id="nilai_plafond_id">
<option value="">Pilih Nilai Flafond</option>
@if(isset($plafond))
@foreach($plafond as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->nilai_plafond_id) && $permohonan->nilai_plafond_id == $row->id ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<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">
Status Permohonan
</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="status" id="status">
<option value="">Pilih Status Permohonan</option>
@if(isset($status))
@foreach($status as $row)
@if(isset($permohonan))
<option value="{{ $row->slug }}" {{ isset($permohonan->status) && $permohonan->status == $row->slug ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->slug }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>
@elseif(request()->routeIs('debitur.edit', $debitur))
@include('lpj::debitur.components.debitur')
@elseif(request()->routeIs('debitur.pemilik.index', $debitur))
@include('lpj::debitur.components.pemilik')
@else
@include('lpj::debitur.components.jaminan')
@endif
</div>
</div>
<div class="card-body">
<form action="{{ isset($permohonan->id) ? route('permohonan.update', $permohonan) : route('permohonan.store') }}" method="POST" class="grid gap-5" enctype="multipart/form-data">
@if(isset($permohonan->id))
@method('PUT')
@endif
@csrf
</div>
@else
<div class="w-full grid gap-5 lg:gap-7.5 mx-auto">
<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">
<select class="input tomselect w-full @error('debiture_id') border-danger @enderror" name="debiture_id" id="debiture_id">
<option value="">Pilih Debitur</option>
@if(isset($debitures))
@foreach($debitures as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->debiture_id) && $permohonan->debiture_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('debiture_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
<div class="card pb-2.5">
<div class="card-header" id="basic_settings">
<h3 class="card-title">
{{ isset($permohonan->id) ? 'Edit' : 'Tambah' }} Permohonan
</h3>
<div class="flex items-center gap-2">
<a href="{{ route('permohonan.index') }}" class="btn btn-xs btn-info"><i class="ki-filled ki-exit-left"></i> Back</a>
</div>
</div>
<div class="card-body">
<form action="{{ isset($permohonan->id) ? route('permohonan.update', $permohonan) : route('permohonan.store') }}" method="POST" class="grid gap-5" enctype="multipart/form-data">
@if(isset($permohonan->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">
Branch
</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 Branch</option>
@if(isset($branches))
@foreach($branches as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->branch_id) && $permohonan->branch_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('branch_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<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="debiture_id" value="{{ $debitur->id }}">
<p class="text-base text-bold">{{ $debitur->name }}</p>
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tujuan Penilaian
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="tujuan_penilaian_id" id="tujuan_penilaian_id">
<option value="">Pilih Tujuan Penilaian</option>
@if(isset($tujuanPenilaian))
@foreach($tujuanPenilaian as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->tujuan_penilaian_id) && $permohonan->tujuan_penilaian_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('tujuan_penilaian_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Tujuan Penilaian
</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="tujuan_penilaian_id" id="tujuan_penilaian_id">
<option value="">Pilih Tujuan Penilaian</option>
@if(isset($tujuanPenilaian))
@foreach($tujuanPenilaian as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->tujuan_penilaian_id) && $permohonan->tujuan_penilaian_id == $row->id?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('tujuan_penilaian_id')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
</div>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Status Permohonan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('branch_id') border-danger @enderror" name="status" id="status">
<option value="">Pilih Status Permohonan</option>
@if(isset($status))
@foreach($status as $key => $row)
@if(isset($permohonan))
<option value="{{ $key }}" {{ isset($permohonan->status) && $permohonan->status == $key ?'selected' : '' }}>
{{ $row }}
</option>
@else
<option value="{{ $key }}">
{{ $row }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<em class="alert text-danger text-sm">{{ $message }}</em>
<div class="flex items-baseline flex-wrap lg:flex-nowrap gap-2.5">
<label class="form-label max-w-56">
Fasilitas Kredit
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('jenis_fasilitas_kredit_id') border-danger bg-danger-light @enderror" name="jenis_fasilitas_kredit_id" id="jenis_fasilitas_kredit_id">
<option value="">Pilih Fasilitas Kredit</option>
@if(isset($fasilitasKredit))
@foreach($fasilitasKredit as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->jenis_fasilitas_kredit_id) && $permohonan->jenis_fasilitas_kredit_id == $row->id ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<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">
Nilai Plafond
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('nilai_plafond_id') border-danger bg-danger-light @enderror" name="nilai_plafond_id" id="nilai_plafond_id">
<option value="">Pilih Nilai Flafond</option>
@if(isset($plafond))
@foreach($plafond as $row)
@if(isset($permohonan))
<option value="{{ $row->id }}" {{ isset($permohonan->nilai_plafond_id) && $permohonan->nilai_plafond_id == $row->id ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->id }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<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">
Status Permohonan
</label>
<div class="flex flex-wrap items-baseline w-full">
<select class="input tomselect w-full @error('status') border-danger bg-danger-light @enderror" name="status" id="status">
<option value="">Pilih Status Permohonan</option>
@if(isset($status))
@foreach($status as $row)
@if(isset($permohonan))
<option value="{{ $row->slug }}" {{ isset($permohonan->status) && $permohonan->status == $row->slug ?'selected' : '' }}>
{{ $row->name }}
</option>
@else
<option value="{{ $row->slug }}">
{{ $row->name }}
</option>
@endif
@endforeach
@endif
</select>
@error('status')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
</div>
</div>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>
<div class="flex justify-end">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</form>
</div>
</div>
</div>
</div>
@endif
@endsection

View File

@ -15,7 +15,7 @@
<div class="flex flex-wrap gap-2 lg:gap-5">
<div class="flex">
<label class="input input-sm"> <i class="ki-filled ki-magnifier"> </i>
<input placeholder="Search Nilai Plafond" id="search" type="text" value="">
<input placeholder="Search Permohonan" id="search" type="text" value="">
</label>
</div>
<div class="flex flex-wrap gap-2.5">

View File

@ -27,7 +27,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $statusPermohonan->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $statusPermohonan->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -38,7 +38,7 @@
Description
</label>
<div class="flex flex-wrap items-baseline w-full">
<textarea class="textarea @error('description') border-danger @enderror" rows="3" type="number" id="description" name="description">{{ $statusPermohonan->description ?? '' }}</textarea>
<textarea class="textarea @error('description') border-danger bg-danger-light @enderror" rows="3" type="number" id="description" name="description">{{ $statusPermohonan->description ?? '' }}</textarea>
@error('description')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -32,10 +32,6 @@
<th class="w-14">
<input class="checkbox checkbox-sm" data-datatable-check="true" type="checkbox"/>
</th>
<th class="min-w-[250px]" data-datatable-column="code">
<span class="sort"> <span class="sort-label"> Code </span>
<span class="sort-icon"> </span> </span>
</th>
<th class="min-w-[250px]" data-datatable-column="name">
<span class="sort"> <span class="sort-label"> Status Permohonan </span>
<span class="sort-icon"> </span> </span>

View File

@ -29,7 +29,7 @@
Code
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('code') border-danger @enderror" type="text" name="code" value="{{ $tujuanPenilaian->code ?? '' }}">
<input class="input @error('code') border-danger bg-danger-light @enderror" type="text" name="code" value="{{ $tujuanPenilaian->code ?? '' }}">
@error('code')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror
@ -40,7 +40,7 @@
Name
</label>
<div class="flex flex-wrap items-baseline w-full">
<input class="input @error('name') border-danger @enderror" type="text" name="name" value="{{ $tujuanPenilaian->name ?? '' }}">
<input class="input @error('name') border-danger bg-danger-light @enderror" type="text" name="name" value="{{ $tujuanPenilaian->name ?? '' }}">
@error('name')
<em class="alert text-danger text-sm">{{ $message }}</em>
@enderror

View File

@ -39,17 +39,17 @@
Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata');
$trail->push('Jenis Jaminan', route('basicdata.jenis-jaminan.index'));
$trail->push('Jenis Aset', route('basicdata.jenis-jaminan.index'));
});
Breadcrumbs::for('basicdata.jenis-jaminan.create', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata.jenis-jaminan');
$trail->push('Tambah Jenis Jaminan', route('basicdata.jenis-jaminan.create'));
$trail->push('Tambah Jenis Aset', route('basicdata.jenis-jaminan.create'));
});
Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata.jenis-jaminan');
$trail->push('Edit Jenis Jaminan');
$trail->push('Edit Jenis Aset');
});
Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) {
@ -67,21 +67,6 @@
$trail->push('Edit Tujuan Penilaian');
});
Breadcrumbs::for('basicdata.jenis-aset', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata');
$trail->push('Jenis Aset', route('basicdata.jenis-aset.index'));
});
Breadcrumbs::for('basicdata.jenis-aset.create', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata.jenis-aset');
$trail->push('Tambah Jenis Aset', route('basicdata.jenis-aset.create'));
});
Breadcrumbs::for('basicdata.jenis-aset.edit', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata.jenis-aset');
$trail->push('Edit Jenis Aset');
});
Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) {
$trail->parent('basicdata');
$trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index'));
@ -257,8 +242,22 @@
$trail->push('Tambah Permohonan', route('permohonan.create'));
});
Breadcrumbs::for('permohonan.create.debitur', function (BreadcrumbTrail $trail) {
$trail->parent('permohonan.index');
$trail->push('Tambah Permohonan', route('permohonan.create'));
});
Breadcrumbs::for('permohonan.edit', function (BreadcrumbTrail $trail) {
$trail->parent('permohonan.index');
$trail->push('Data Permohonan');
});
Breadcrumbs::for('authorization.index', function (BreadcrumbTrail $trail) {
$trail->push('Permohonan', route('authorization.index'));
});
Breadcrumbs::for('authorization.show', function (BreadcrumbTrail $trail) {
$trail->parent('authorization.index');
$trail->push('Detail Permohonan');
});

View File

@ -48,7 +48,8 @@
});
Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class);
Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->group(function () {
Route::name('jenis-jaminan.')->prefix('jenis-aset')->group(function () {
Route::get('legalitas/{id}', [JenisJaminanController::class, 'legalitasJaminan'])->name('legalitas');
Route::get('restore/{id}', [JenisJaminanController::class, 'restore'])->name('restore');
Route::get('datatables', [JenisJaminanController::class, 'dataForDatatables'])
->name('datatables');
@ -64,14 +65,6 @@
});
Route::resource('tujuan-penilaian', TujuanPenilaianController::class);
Route::name('jenis-aset.')->prefix('jenis-aset')->group(function () {
Route::get('restore/{id}', [JenisAsetController::class, 'restore'])->name('restore');
Route::get('datatables', [JenisAsetController::class, 'dataForDatatables'])
->name('datatables');
Route::get('export', [JenisAsetController::class, 'export'])->name('export');
});
Route::resource('jenis-aset', JenisAsetController::class);
Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () {
Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore');
Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables'])
@ -161,6 +154,7 @@
});
Route::name('permohonan.')->prefix('permohonan')->group(function () {
Route::get('{id}/create', [PermohonanController::class, 'createPermohonan'])->name('create.debitur');
Route::get('download/{id}', [PermohonanController::class, 'download'])->name('download');
Route::get('restore/{id}', [PermohonanController::class, 'restore'])->name('restore');
Route::get('datatables', [PermohonanController::class, 'dataForDatatables'])
@ -168,33 +162,39 @@
Route::get('export', [PermohonanController::class, 'export'])->name('export');
});
Route::resource('permohonan', PermohonanController::class);
Route::resource('permohonan', PermohonanController::class);
Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index');
Route::get('authorization/datatables', [PermohonanController::class, 'dataForAuthorization'])
->name('authorization.datatables');
Route::get('authorization/{id}/edit', [PermohonanController::class, 'showAuthorization'])->name('authorization.show');
Route::put('authorization/{id}', [PermohonanController::class, 'updateAuthorization'])->name('authorization.update');
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('datatables', [DebitureController::class, 'dataForDatatables'])
->name('datatables');
Route::get('export', [DebitureController::class, 'export'])->name('export');
Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () {
Route::get('/', [DokumenJaminanController::class, 'index'])->name('index');
Route::get('create', [DokumenJaminanController::class, 'create'])->name('create');
Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit');
Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update');
Route::post('store', [DokumenJaminanController::class, 'store'])->name('store');
Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy');
});
Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () {
Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download');
Route::get('/', [DokumenJaminanController::class, 'index'])->name('index');
Route::get('create', [DokumenJaminanController::class, 'create'])->name('create');
Route::get('{jaminan}/edit', [DokumenJaminanController::class, 'edit'])->name('edit');
Route::put('{jaminan}', [DokumenJaminanController::class, 'update'])->name('update');
Route::post('store', [DokumenJaminanController::class, 'store'])->name('store');
Route::delete('{jaminan}', [DokumenJaminanController::class, 'destroy'])->name('destroy');
});
Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () {
Route::get('/', [PemilikJaminanController::class, 'index'])->name('index');
Route::get('create', [PemilikJaminanController::class, 'create'])->name('create');
Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit');
Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update');
Route::post('store', [PemilikJaminanController::class, 'store'])->name('store');
Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy');
});
Route::name('pemilik.')->prefix('{id}/pemilik')->group(function () {
Route::get('/', [PemilikJaminanController::class, 'index'])->name('index');
Route::get('create', [PemilikJaminanController::class, 'create'])->name('create');
Route::get('{pemilik}/edit', [PemilikJaminanController::class, 'edit'])->name('edit');
Route::put('{pemilik}', [PemilikJaminanController::class, 'update'])->name('update');
Route::post('store', [PemilikJaminanController::class, 'store'])->name('store');
Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy');
});
});
Route::resource('debitur', DebitureController::class);