From 8c3c3733b4b3b905e5f593cece4508b9fcfeee72 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 11 Sep 2024 14:42:38 +0700 Subject: [PATCH 01/13] Fix Table Status Permohonan --- resources/views/status_permohonan/index.blade.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/resources/views/status_permohonan/index.blade.php b/resources/views/status_permohonan/index.blade.php index d684445..e021e6a 100644 --- a/resources/views/status_permohonan/index.blade.php +++ b/resources/views/status_permohonan/index.blade.php @@ -32,10 +32,6 @@ - - Code - - Status Permohonan From 1b1d00a73072bc24f0399f8a2311fb4784dd491e Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 11 Sep 2024 16:54:42 +0700 Subject: [PATCH 02/13] add slug master jenis_jaminan --- .../migrations/2024_09_04_082059_update_jenis_jaminan_table.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php b/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php index 0f96b67..f148718 100644 --- a/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php +++ b/database/migrations/2024_09_04_082059_update_jenis_jaminan_table.php @@ -12,6 +12,7 @@ return new class extends Migration 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'); }); } @@ -22,6 +23,7 @@ return new class extends Migration public function down(): void { Schema::table('jenis_jaminan', function (Blueprint $table) { + $table->dropColumn('slug'); $table->dropColumn('jenis_legalitas_jaminan_id'); }); } From ed425c4b21d99528851b32e1847f39bf31dfc1f7 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 12 Sep 2024 11:03:00 +0700 Subject: [PATCH 03/13] Feature #18 : Module Approval Permohonan --- app/Http/Controllers/PermohonanController.php | 90 +++++++++ app/Models/Permohonan.php | 2 + module.json | 2 +- .../permohonan/authorization/index.blade.php | 191 ++++++++++++++++++ .../permohonan/authorization/show.blade.php | 164 +++++++++++++++ routes/breadcrumbs.php | 9 + routes/web.php | 6 + 7 files changed, 463 insertions(+), 1 deletion(-) create mode 100644 resources/views/permohonan/authorization/index.blade.php create mode 100644 resources/views/permohonan/authorization/show.blade.php diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index ea6d5f3..73d6b37 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -179,4 +179,94 @@ { 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'); + } } diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index 28b6de5..d1d4689 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -17,10 +17,12 @@ class Permohonan extends Base 'branch_id', 'tujuan_penilaian_id', 'debiture_id', + 'keterangan', 'status', 'authorized_at', 'authorized_status', 'authorized_by', + ]; public function user(){ diff --git a/module.json b/module.json index 2dbec76..c1f1567 100644 --- a/module.json +++ b/module.json @@ -46,7 +46,7 @@ }, { "title": "Authorization", - "path": "", + "path": "authorization", "icon": "ki-filled ki-some-files text-lg", "classes": "", "attributes": [], diff --git a/resources/views/permohonan/authorization/index.blade.php b/resources/views/permohonan/authorization/index.blade.php new file mode 100644 index 0000000..aed62c8 --- /dev/null +++ b/resources/views/permohonan/authorization/index.blade.php @@ -0,0 +1,191 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+ +
+
+

+ Daftar Permohonan +

+
+
+ +
+ +
+
+
+
+ + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Tanggal Permohonan + + + User Pemohon + + + Cabang Pemohon + + + Debitur + + + Tujuan Penilaian + + + Status + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + + +@endpush diff --git a/resources/views/permohonan/authorization/show.blade.php b/resources/views/permohonan/authorization/show.blade.php new file mode 100644 index 0000000..7a857a5 --- /dev/null +++ b/resources/views/permohonan/authorization/show.blade.php @@ -0,0 +1,164 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+
+
+

+ Data Permohonan +

+
+
+
+

+ Nomor Register Permohonan: +

+ + {{ $permohonan->nomor_registrasi }} + +
+ +
+

+ Pemohon: +

+ + {{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }} + +
+ +
+

+ Tujan Permohonan: +

+ + {{ $permohonan->tujuanPenilaian->name }} + +
+ +
+
+ +
+
+

+ Detail Debutur +

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ Name + + {{ $permohonan->debiture->name ?? "" }} +
+ Email + + {{ $permohonan->debiture->email ?? "" }} +
+ Phone + + {{ $permohonan->debiture->phone ?? "" }} +
+ Address + + {{ $permohonan->debiture->address ?? "" }} +
+   + + {{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }} +
+
+
+ + + + + + + + + + + + + + + + + +
+ Cabang + + {{ $permohonan->debiture->branch->name ?? "" }} +
+ CIF + + {{ $permohonan->debiture->cif ?? "" }} +
+ Nomor Rekening + + {{ $permohonan->debiture->nomor_rekening ?? "" }} +
+ NPWP + + {{ $permohonan->debiture->npwp ?? "" }} +
+
+
+
+
+ +
+
+ + @csrf +
+
+ +
+ +
+
+
+ +
+
+
+@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index f39cfcc..4ea45ad 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -267,3 +267,12 @@ $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'); + }); + diff --git a/routes/web.php b/routes/web.php index 92a5cd3..cfa177a 100644 --- a/routes/web.php +++ b/routes/web.php @@ -172,6 +172,12 @@ 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('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); Route::get('datatables', [DebitureController::class, 'dataForDatatables']) From 7eac0d0401382947df54713cfa7480d4f930b2c2 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 12 Sep 2024 11:28:17 +0700 Subject: [PATCH 04/13] Update Detail Approval --- app/Models/Debiture.php | 4 + .../permohonan/authorization/show.blade.php | 93 +++++++++++++++++++ 2 files changed, 97 insertions(+) diff --git a/app/Models/Debiture.php b/app/Models/Debiture.php index df5b9d2..8980513 100644 --- a/app/Models/Debiture.php +++ b/app/Models/Debiture.php @@ -56,4 +56,8 @@ return $this->belongsTo(Village::class, 'village_code', 'code'); } + public function documents(){ + return $this->hasMany(DokumenJaminan::class); + } + } diff --git a/resources/views/permohonan/authorization/show.blade.php b/resources/views/permohonan/authorization/show.blade.php index 7a857a5..336a324 100644 --- a/resources/views/permohonan/authorization/show.blade.php +++ b/resources/views/permohonan/authorization/show.blade.php @@ -136,6 +136,99 @@ +
+
+

+ Data Jaminan +

+
+
+ @foreach($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
+
+
From dadec5a397588785b876563112c11282e34b821e Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 12 Sep 2024 14:29:12 +0700 Subject: [PATCH 05/13] Update Edit Permohonan --- app/Http/Controllers/PermohonanController.php | 39 ++- resources/views/debitur/edit.blade.php | 8 +- resources/views/permohonan/form.blade.php | 269 +++++++++++++----- routes/web.php | 34 +-- 4 files changed, 246 insertions(+), 104 deletions(-) diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 73d6b37..6e0bf9a 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -6,10 +6,15 @@ 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\Permohonan; use Modules\Lpj\Models\StatusPermohonan; use Modules\Lpj\Models\TujuanPenilaian; @@ -47,8 +52,8 @@ } } - public function create(){ - + public function create() + { return view('lpj::permohonan.create'); } @@ -66,13 +71,29 @@ { $permohonan = Permohonan::find($id); $branches = Branch::all(); - $debitur = Debiture::find($permohonan->debiture_id); + $debitur = Debiture::find($permohonan->debiture_id); $tujuanPenilaian = TujuanPenilaian::all(); $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(); return view( 'lpj::permohonan.form', - compact('permohonan', 'branches', 'debitur', 'tujuanPenilaian', 'status'), + compact( + 'permohonan', + 'branches', + 'debitur', + 'tujuanPenilaian', + 'status', + 'provinces', + 'cities', + 'districts', + 'villages', + 'documents' + ), ); } @@ -231,7 +252,8 @@ $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->where('status','=','order')->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->where('status', '=', 'order')->get( + ); // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); @@ -254,16 +276,17 @@ public function showAuthorization($id) { $permohonan = Permohonan::find($id); - return view('lpj::permohonan.authorization.show',compact('permohonan')); + return view('lpj::permohonan.authorization.show', compact('permohonan')); } - public function updateAuthorization(Request $request, $id){ + public function updateAuthorization(Request $request, $id) + { try { $permohonan = Permohonan::find($id); $permohonan->status = $request->status; $permohonan->keterangan = $request->keterangan; $permohonan->save(); - }catch (Exception $e) { + } catch (Exception $e) { return redirect()->route('authorization.show', $id)->with('error', 'Failed to update permohonan'); } diff --git a/resources/views/debitur/edit.blade.php b/resources/views/debitur/edit.blade.php index 0a8e218..8940f5a 100644 --- a/resources/views/debitur/edit.blade.php +++ b/resources/views/debitur/edit.blade.php @@ -6,21 +6,25 @@ @section('content')
-
+ @if(request()->get('permohonan_id')) + Data Permohonan + @endif Data Debitur Dokumen Jaminan Pemilk Jaminan
- @if(isset($debitur->id)) + @if(isset($debitur->id) && request()->get('permohonan_id') == null) Buat Permohonan @endif @if(request()->get('from') == 'permohonan') Back + @elseif(request()->get('permohonan_id')) + Back @else Back @endif diff --git a/resources/views/permohonan/form.blade.php b/resources/views/permohonan/form.blade.php index 8615b75..baca23a 100644 --- a/resources/views/permohonan/form.blade.php +++ b/resources/views/permohonan/form.blade.php @@ -5,97 +5,212 @@ @endsection @section('content') -
+ @if(isset($permohonan)) +
+
+
+ +
+ @if(isset($debitur->id) && !isset($permohonan->id)) + Buat Permohonan + @endif -
-
-

- {{ isset($permohonan->id) ? 'Edit' : 'Tambah' }} Permohonan -

-
- Back + @if(request()->get('from') == 'permohonan') + Back + @elseif($permohonan->id) + Back + @else + Back + @endif +
+
+
+ @if(request()->routeIs('permohonan.edit', $permohonan)) + + @if(isset($permohonan->id)) + @method('PUT') + @endif + @csrf + +
+ +
+ +

{{ $debitur->name }}

+
+
+ +
+ +
+ + @error('tujuan_penilaian_id') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('status') + {{ $message }} + @enderror +
+
+ + +
+ +
+ + @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
-
-
- @if(isset($permohonan->id)) - @method('PUT') - @endif - @csrf +
+ @else +
-
- -
- -

{{ $debitur->name }}

-
+
+
+

+ {{ isset($permohonan->id) ? 'Edit' : 'Tambah' }} Permohonan +

+ +
+
+ + @if(isset($permohonan->id)) + @method('PUT') + @endif + @csrf -
- -
- - @error('tujuan_penilaian_id') - {{ $message }} - @enderror +
+ +
+ +

{{ $debitur->name }}

+
-
-
- -
- - @error('status') - {{ $message }} +
+ +
+ + @error('tujuan_penilaian_id') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('status') + {{ $message }} @enderror
-
- -
- +
+ +
+ +
-
+ @endif @endsection diff --git a/routes/web.php b/routes/web.php index cfa177a..b0bfdee 100644 --- a/routes/web.php +++ b/routes/web.php @@ -185,24 +185,24 @@ Route::get('export', [DebitureController::class, 'export'])->name('export'); - 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('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); From 72e4ff31609d52a15647ac1d74029ee51f02260b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 13 Sep 2024 14:10:40 +0700 Subject: [PATCH 06/13] Update Module Permohonan, penambahan field jenis_fasilitas_kredit dan nilai_plafond --- app/Exports/PermohonanExport.php | 9 +- app/Http/Controllers/PermohonanController.php | 20 ++- app/Http/Requests/PermohonanRequest.php | 16 +-- app/Models/Permohonan.php | 10 ++ ...4_09_13_030119_update_permohonan_table.php | 33 +++++ resources/views/permohonan/form.blade.php | 116 +++++++++++++++++- 6 files changed, 187 insertions(+), 17 deletions(-) create mode 100644 database/migrations/2024_09_13_030119_update_permohonan_table.php diff --git a/app/Exports/PermohonanExport.php b/app/Exports/PermohonanExport.php index 07b83fe..c6ce0a2 100644 --- a/app/Exports/PermohonanExport.php +++ b/app/Exports/PermohonanExport.php @@ -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 ]; } } diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 6e0bf9a..2cd35d0 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -15,6 +15,8 @@ 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; @@ -30,8 +32,8 @@ public function store(PermohonanRequest $request) { - $validate = $request->validated(); + $validate = $request->validated(); if ($validate) { try { // Save to database @@ -63,8 +65,13 @@ $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')); + return view( + 'lpj::permohonan.form', + compact('branches', 'debitur', 'tujuanPenilaian', 'status', 'fasilitasKredit', 'plafond'), + ); } public function edit($id) @@ -78,7 +85,10 @@ $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(); + $documents = DokumenJaminan::with('pemilik', 'detail')->where('debiture_id', $id)->get(); + + $fasilitasKredit = JenisFasilitasKredit::all(); + $plafond = NilaiPlafond::all(); return view( 'lpj::permohonan.form', @@ -92,7 +102,9 @@ 'cities', 'districts', 'villages', - 'documents' + 'documents', + 'fasilitasKredit', + 'plafond', ), ); } diff --git a/app/Http/Requests/PermohonanRequest.php b/app/Http/Requests/PermohonanRequest.php index e4c4bd8..edd4169 100644 --- a/app/Http/Requests/PermohonanRequest.php +++ b/app/Http/Requests/PermohonanRequest.php @@ -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; diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index d1d4689..cf6d5e6 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -18,6 +18,8 @@ class Permohonan extends Base 'tujuan_penilaian_id', 'debiture_id', 'keterangan', + 'jenis_fasilitas_kredit_id', + 'nilai_plafond_id', 'status', 'authorized_at', 'authorized_status', @@ -44,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); + } } diff --git a/database/migrations/2024_09_13_030119_update_permohonan_table.php b/database/migrations/2024_09_13_030119_update_permohonan_table.php new file mode 100644 index 0000000..1906224 --- /dev/null +++ b/database/migrations/2024_09_13_030119_update_permohonan_table.php @@ -0,0 +1,33 @@ +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']); + }); + } +}; diff --git a/resources/views/permohonan/form.blade.php b/resources/views/permohonan/form.blade.php index baca23a..45be1d5 100644 --- a/resources/views/permohonan/form.blade.php +++ b/resources/views/permohonan/form.blade.php @@ -22,9 +22,9 @@ @if(request()->get('from') == 'permohonan') Back - @elseif($permohonan->id) - Back - @else + @elseif($permohonan->id) + Back + @else Back @endif
@@ -74,6 +74,60 @@
+
+ +
+ + @error('status') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('status') + {{ $message }} + @enderror +
+
+
+
+ +
+ + @error('status') + {{ $message }} + @enderror +
+
+ +
+ +
+ + @error('status') + {{ $message }} + @enderror +
+
+
- @if(isset($status)) @foreach($status as $row) From dcf9e4fd5e77f19f3627bfa790d9e1c14cf5ed83 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 13 Sep 2024 14:11:08 +0700 Subject: [PATCH 07/13] Remove Module Jenis Jaminan --- module.json | 10 +--------- routes/breadcrumbs.php | 21 +++------------------ routes/web.php | 10 +--------- 3 files changed, 5 insertions(+), 36 deletions(-) diff --git a/module.json b/module.json index c1f1567..2c5b5af 100644 --- a/module.json +++ b/module.json @@ -111,17 +111,9 @@ "permission": "", "roles": [] }, - { - "title": "Jenis Jaminan", - "path": "basicdata.jenis-jaminan", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, { "title": "Jenis Aset", - "path": "basicdata.jenis-aset", + "path": "basicdata.jenis-jaminan", "classes": "", "attributes": [], "permission": "", diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 4ea45ad..0068876 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -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')); diff --git a/routes/web.php b/routes/web.php index b0bfdee..0a8075f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -48,7 +48,7 @@ }); 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']) @@ -65,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']) From 5619c52b0a8fb1f194e95216fd8291832ba3bc95 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 13 Sep 2024 14:11:35 +0700 Subject: [PATCH 08/13] Update Module Approval Permohonan, Chnage reject to Revisi --- resources/views/permohonan/authorization/show.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/permohonan/authorization/show.blade.php b/resources/views/permohonan/authorization/show.blade.php index 336a324..0267b19 100644 --- a/resources/views/permohonan/authorization/show.blade.php +++ b/resources/views/permohonan/authorization/show.blade.php @@ -247,8 +247,8 @@ -
From 9ecdaa0cddafa924a69c38a4c057b470f1217d66 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 13 Sep 2024 14:12:35 +0700 Subject: [PATCH 09/13] Update Module Debitur penambahan default cif 0x10 dan di buat mandatory update field npwp input harus minimal 15 dan maksimal 16 digit penambahan rules --- app/Http/Controllers/DebitureController.php | 1 + app/Http/Requests/DebitureRequest.php | 11 ++++---- app/Rules/UniqueCifExceptZero.php | 25 +++++++++++++++++++ .../debitur/components/debitur.blade.php | 3 ++- 4 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 app/Rules/UniqueCifExceptZero.php diff --git a/app/Http/Controllers/DebitureController.php b/app/Http/Controllers/DebitureController.php index e6762e3..b429265 100644 --- a/app/Http/Controllers/DebitureController.php +++ b/app/Http/Controllers/DebitureController.php @@ -71,6 +71,7 @@ public function update(DebitureRequest $request, $id) { + //print_r($request->all());exit; $validate = $request->validated(); if ($validate) { diff --git a/app/Http/Requests/DebitureRequest.php b/app/Http/Requests/DebitureRequest.php index ff87263..7f83fbb 100644 --- a/app/Http/Requests/DebitureRequest.php +++ b/app/Http/Requests/DebitureRequest.php @@ -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; diff --git a/app/Rules/UniqueCifExceptZero.php b/app/Rules/UniqueCifExceptZero.php new file mode 100644 index 0000000..e7236ce --- /dev/null +++ b/app/Rules/UniqueCifExceptZero.php @@ -0,0 +1,25 @@ +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); + } + } +} diff --git a/resources/views/debitur/components/debitur.blade.php b/resources/views/debitur/components/debitur.blade.php index 8170af7..157ad1b 100644 --- a/resources/views/debitur/components/debitur.blade.php +++ b/resources/views/debitur/components/debitur.blade.php @@ -1,5 +1,6 @@
@if(isset($debitur->id)) + @method('PUT') @endif @csrf @@ -29,7 +30,7 @@ CIF
- + @error('cif') {{ $message }} @enderror From b0c8a433046d133be7f8c81961ffaeb94256723b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 19 Sep 2024 10:27:02 +0700 Subject: [PATCH 10/13] Fix Slug Status Permohonan --- app/Http/Requests/StatusPermohonanRequest.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/Http/Requests/StatusPermohonanRequest.php b/app/Http/Requests/StatusPermohonanRequest.php index 21bd8e5..d0a9ac6 100644 --- a/app/Http/Requests/StatusPermohonanRequest.php +++ b/app/Http/Requests/StatusPermohonanRequest.php @@ -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), ]); } } From 2cc5d75dbcd2c5e63f9e0018c05fd9ecf1f727ea Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 19 Sep 2024 10:27:32 +0700 Subject: [PATCH 11/13] Update Module Debitur Dokumen Jaminan --- resources/views/debitur/components/dokumen.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 0dfcc6f..4485b8d 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -59,7 +59,7 @@ @if(isset($document->id)) @endif - @foreach($jenisJaminan as $row) @if(isset($document)) From 491e206229e16020341d9ccde989fb087d67b5b6 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 19 Sep 2024 10:27:56 +0700 Subject: [PATCH 12/13] update pemilik jaminan, add multiple nama pada sertifikat --- .../views/pemilik_jaminan/form.blade.php | 68 ++++++++++++++++--- 1 file changed, 59 insertions(+), 9 deletions(-) diff --git a/resources/views/pemilik_jaminan/form.blade.php b/resources/views/pemilik_jaminan/form.blade.php index cc39a92..1efcb79 100644 --- a/resources/views/pemilik_jaminan/form.blade.php +++ b/resources/views/pemilik_jaminan/form.blade.php @@ -71,21 +71,31 @@ Nama Lengkap
- - @error('name') - {{ $message }} - @enderror +
+
+ + @error('name') + {{ $message }} + @enderror +
+
+ + @error('nomor_id') + {{ $message }} + @enderror +
+
+
+
+
- - @error('nomor_id') - {{ $message }} - @enderror +
@@ -242,3 +252,43 @@
@endsection + + +@push('scripts') + +@endpush From 9a238ddb8327afdc7b0311ea907b79319e8f86b9 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 19 Sep 2024 11:09:59 +0700 Subject: [PATCH 13/13] penambahan detail permonan pada form assignment --- app/Http/Controllers/PenilaianController.php | 368 +++++++++--------- app/Http/Controllers/PermohonanController.php | 156 +------- resources/views/penilaian/form.blade.php | 228 ++++++++++- 3 files changed, 413 insertions(+), 339 deletions(-) diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 194cde6..dadfd09 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -1,211 +1,203 @@ validated(); - /** - * Store a newly created resource in storage. - */ - public function store(PenilaianRequest $request) - { - $validatedData = $request->validated(); + if ($validatedData) { + try { + $penilaian = Penilaian::create($validatedData); - if ($validatedData) { - try { + $permohonan = Permohonan::findOrFail($request->permohonan_id); + $permohonan->update([ + 'status' => 'assign', + ]); - $penilaian = Penilaian::create($validatedData); - - $permohonan = Permohonan::findOrFail($request->permohonan_id); - $permohonan->update([ - 'status' => 'assign', - ]); - - return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan'); - } catch (Exception $e) { - return redirect()->route('penilaian.index')->with('error', $e->getMessage()); + return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan'); + } catch (Exception $e) { + return redirect()->route('penilaian.index')->with('error', $e->getMessage()); + } } } - } + /** + * Show the form for creating a new resource. + */ + public function create($id) + { + return view('lpj::penilaian.form'); + } - /** - * Show the specified resource. - */ - public function show($id) - { - return view('lpj::show'); - } + /** + * Update the specified resource in storage. + */ + public function update(PenilaianRequest $request, $id) + { + $validate = $request->validated(); - /** - * Show the form for editing the specified resource. - */ - public function edit($id) - { + if ($validate) { + try { + $penilaian = Penilaian::where('permohonan_id', $id)->firstOrFail(); - $permohonan = Permohonan::with(['user', 'debiture.province','debiture.city','debiture.district','debiture.village','branch', 'tujuanPenilaian'])->findOrFail($id); + $penilaian->update($validate); + $permohonan = Permohonan::findOrFail($id); + $permohonan->update([ + 'status' => 'assign', + ]); - $jenisPenilaian = JenisPenilaian::all(); - $teamPenilai = Teams::with(['regions', 'teamsUsers'])->get(); - - $penilaian = Penilaian::where('permohonan_id', $id)->first(); - - return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian')); - } - - /** - * Update the specified resource in storage. - */ - public function update(PenilaianRequest $request, $id) - { - $validate = $request->validated(); - - if ($validate) { - try { - $penilaian = Penilaian::where('permohonan_id', $id)->firstOrFail(); - - $penilaian->update($validate); - $permohonan = Permohonan::findOrFail($id); - $permohonan->update([ - 'status' => 'assign', - ]); - - return redirect()->route('penilaian.index', $id)->with('success', 'Penilaian berhasil diubah'); - } catch (Exception $e) { - return redirect()->route('penilaian.index', $id)->with('error', $e->getMessage()); + return redirect()->route('penilaian.index', $id)->with('success', 'Penilaian berhasil diubah'); + } catch (Exception $e) { + return redirect()->route('penilaian.index', $id)->with('error', $e->getMessage()); + } } } - } - - /** - * Remove the specified resource from storage. - */ - public function destroy($id) - { - // - } - - public function dataForDatatables(Request $request) -{ - if (is_null($this->user) || !$this->user->can('debitur.view')) { - // abort(403, 'Sorry! You are not allowed to view users.'); - } - - - $query = Permohonan::query(); - - 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 . '%'); - }); - } - - // Filter to show only records with status 'register' - $query->where('status', 'register'); - - - if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { - $order = $request->get('sortOrder'); - $column = $request->get('sortField'); - $query->orderBy($column, $order); - } - - $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); - } - - $filteredRecords = $query->count(); - - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - - $pageCount = ceil($totalRecords / $request->get('size')); - - $currentPage = $page; - - - return response()->json([ - 'draw' => $request->get('draw'), - 'recordsTotal' => $totalRecords, - 'recordsFiltered' => $filteredRecords, - 'pageCount' => $pageCount, - 'page' => $currentPage, - 'totalCount' => $totalRecords, - 'data' => $data, - ]); -} - - - - - - public function getUserTeams($id) - { - - $teamsUser = TeamsUsers::where('teams_id', $id)->get(); - $userIds = $teamsUser->pluck('user_id'); - $users = User::whereIn('id', $userIds)->get(); - - if ($users->isNotEmpty()) { - return response()->json($users, 200); + /** + * Show the specified resource. + */ + public function show($id) + { + return view('lpj::show'); } - return response()->json([], 200); + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + $permohonan = Permohonan::with( + [ + 'user', + 'debiture.province', + 'debiture.city', + 'debiture.district', + 'debiture.village', + 'branch', + 'tujuanPenilaian', + ], + )->findOrFail($id); + + $jenisPenilaian = JenisPenilaian::all(); + $teamPenilai = Teams::with(['regions', 'teamsUsers'])->get(); + + $penilaian = Penilaian::where('permohonan_id', $id)->first(); + + return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian')); + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + + $query = Permohonan::query(); + + 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 . '%'); + }); + } + + // Filter to show only records with status 'register' + $query->where('status', 'register'); + + + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $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); + } + + $filteredRecords = $query->count(); + + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); + + $pageCount = ceil($totalRecords / $request->get('size')); + + $currentPage = $page; + + + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + + + public function getUserTeams($id) + { + $teamsUser = TeamsUsers::where('teams_id', $id)->get(); + $userIds = $teamsUser->pluck('user_id'); + $users = User::whereIn('id', $userIds)->get(); + + if ($users->isNotEmpty()) { + return response()->json($users, 200); + } + + return response()->json([], 200); + } + + } - - -} diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 5fe6996..2cd35d0 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -1,6 +1,6 @@ validated(); + public function index() + { + return view('lpj::permohonan.index'); + } public function store(PermohonanRequest $request) { @@ -53,7 +49,8 @@ class PermohonanController extends Controller } else { return redirect() ->route('permohonan.create') - ->with('error', 'Failed to create permohonan' . $e->getMessage()); + ->with('success', 'error naon iye') + ->withInput(); } } @@ -308,138 +305,3 @@ class PermohonanController extends Controller return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully'); } } - - public function create() - { - - return view('lpj::permohonan.create'); - } - - public function createPermohonan($debitur) - { - $branches = Branch::all(); - $debitur = Debiture::find($debitur); - $tujuanPenilaian = TujuanPenilaian::all(); - $status = StatusPermohonan::all(); - - return view('lpj::permohonan.form', compact('branches', 'debitur', 'tujuanPenilaian', 'status')); - } - - public function edit($id) - { - $permohonan = Permohonan::find($id); - $branches = Branch::all(); - $debitur = Debiture::find($permohonan->debiture_id); - $tujuanPenilaian = TujuanPenilaian::all(); - $status = StatusPermohonan::all(); - - return view( - 'lpj::permohonan.form', - compact('permohonan', 'branches', 'debitur', 'tujuanPenilaian', 'status'), - ); - } - - public function update(PermohonanRequest $request, $id) - { - $validate = $request->validated(); - - if ($validate) { - try { - // Update in database - $permohonan = Permohonan::find($id); - $permohonan->update($validate); - return redirect() - ->route('permohonan.index') - ->with('success', 'Permohonan updated successfully'); - } catch (Exception $e) { - return redirect() - ->route('permohonan.edit', $id) - ->with('error', 'Failed to update permohonan'); - } - } - } - - public function destroy($id) - { - try { - // Delete from database - $permohonan = Permohonan::find($id); - $permohonan->delete(); - - echo json_encode(['success' => true, 'message' => 'Permohonan deleted successfully']); - } catch (Exception $e) { - echo json_encode(['success' => false, 'message' => 'Failed to delete permohonan']); - } - } - - public function dataForDatatables(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'])->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 export() - { - return Excel::download(new PermohonanExport(), 'permohonan.xlsx'); - } -} diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 6ea1260..68e7bc0 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -18,7 +18,229 @@ @section('content')
+
+
+

+ Data Permohonan +

+
+
+
+

+ Nomor Register Permohonan: +

+ + {{ $permohonan->nomor_registrasi }} + +
+
+

+ Pemohon: +

+ + {{ $permohonan->user->nik }} | {{ $permohonan->user->name }} | {{ $permohonan->user->branch->name }} + +
+ +
+

+ Tujan Permohonan: +

+ + {{ $permohonan->tujuanPenilaian->name }} + +
+ +
+
+ +
+
+

+ Detail Debutur +

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ Name + + {{ $permohonan->debiture->name ?? "" }} +
+ Email + + {{ $permohonan->debiture->email ?? "" }} +
+ Phone + + {{ $permohonan->debiture->phone ?? "" }} +
+ Address + + {{ $permohonan->debiture->address ?? "" }} +
+   + + {{ $permohonan->debiture->village->name ?? "" }}, {{ $permohonan->debiture->district->name ?? "" }}, {{ $permohonan->debiture->city->name ?? "" }}, {{ $permohonan->debiture->province->name ?? "" }} - {{ $permohonan->debiture->village->postal_code ?? "" }} +
+
+
+ + + + + + + + + + + + + + + + + +
+ Cabang + + {{ $permohonan->debiture->branch->name ?? "" }} +
+ CIF + + {{ $permohonan->debiture->cif ?? "" }} +
+ Nomor Rekening + + {{ $permohonan->debiture->nomor_rekening ?? "" }} +
+ NPWP + + {{ $permohonan->debiture->npwp ?? "" }} +
+
+
+
+
+ +
+
+

+ Data Jaminan +

+
+
+ @foreach($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
+
+

@@ -34,12 +256,8 @@ - @if (isset($penilaian->permohonan_id)) @method('PUT') - - @else - @endif @csrf
@@ -47,11 +265,13 @@ +