From ab2c34da7aa5d64a29d1bfe2620326d18cc12fd0 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 28 Aug 2024 15:34:50 +0700 Subject: [PATCH] menerapkan feature approve permohonan (blm selesai) --- .../Controllers/AuthorizationController.php | 200 +++++++ app/Models/PermohonanJaminan.php | 23 + ...075121_create_permohonan_jaminan_table.php | 37 ++ ..._legalitas_jaminan_id_to_jenis_jaminan.php | 28 + module.json | 504 +++++++++--------- resources/views/authorization/index.blade.php | 138 +++++ routes/web.php | 18 +- 7 files changed, 678 insertions(+), 270 deletions(-) create mode 100644 app/Http/Controllers/AuthorizationController.php create mode 100644 app/Models/PermohonanJaminan.php create mode 100644 database/migrations/2024_08_23_075121_create_permohonan_jaminan_table.php create mode 100644 database/migrations/2024_08_27_083927_add_jenis_legalitas_jaminan_id_to_jenis_jaminan.php create mode 100644 resources/views/authorization/index.blade.php diff --git a/app/Http/Controllers/AuthorizationController.php b/app/Http/Controllers/AuthorizationController.php new file mode 100644 index 0000000..5f6d270 --- /dev/null +++ b/app/Http/Controllers/AuthorizationController.php @@ -0,0 +1,200 @@ +get()); + return view('lpj::authorization.index'); + } + + public function store(BranchRequest $request) + { + $validate = $request->validated(); + + if ($validate) { + try { + // Save to database + Branch::create($validate); + return redirect() + ->route('basicdata.branch.index') + ->with('success', 'Branch created successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.branch.create') + ->with('error', 'Failed to create branch'); + } + } + } + + public function create() + { + return view('lpj::branch.create'); + } + + public function edit($id) + { + $branch = Branch::find($id); + return view('lpj::branch.create', compact('branch')); + } + + public function update(BranchRequest $request, $id) + { + $validate = $request->validated(); + + if ($validate) { + try { + // Update in database + $branch = Branch::find($id); + $branch->update($validate); + return redirect() + ->route('basicdata.branch.index') + ->with('success', 'Branch updated successfully'); + } catch (Exception $e) { + return redirect() + ->route('basicdata.branch.edit', $id) + ->with('error', 'Failed to update branch'); + } + } + } + + public function destroy($id) + { + try { + // Delete from database + $branch = Branch::find($id); + $branch->delete(); + + echo json_encode(['success' => true, 'message' => 'Branch deleted successfully']); + } catch (Exception $e) { + echo json_encode(['success' => false, 'message' => 'Failed to delete branch']); + } + } + + public function dataForDatatables(Request $request) + { + // if (is_null($this->user) || !$this->user->can('branch.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + // } + + // Retrieve data from the database + $query = Permohonan::query(); + // 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->get(); + $data = $query->select('permohonan.id', 'permohonan.nomor_registrasi' + , 'branches.name AS branche_name' + , 'debitures.name AS debiture_name' + // , 'tujuan_penilaian.name AS debiture_name' + , DB::raw("CONCAT(tujuan_penilaian.code,' - ', tujuan_penilaian.name) AS nama_tujuan_penilaian") + , 'users.name AS account_officer') + ->leftJoin('branches', 'branches.id', '=', 'permohonan.branch_id') + ->leftJoin('debitures', 'debitures.id', '=', 'permohonan.debiture_id') + ->leftJoin('tujuan_penilaian', 'tujuan_penilaian.id', '=', 'permohonan.tujuan_penilaian_id') + ->leftJoin('users', 'users.id', '=', 'permohonan.user_id') + ->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, + ]); + /* + // 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('code', 'LIKE', "%$search%"); + $q->orWhere('name', '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->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 BranchExport, 'branch.xlsx'); + } + } diff --git a/app/Models/PermohonanJaminan.php b/app/Models/PermohonanJaminan.php new file mode 100644 index 0000000..86e4b3f --- /dev/null +++ b/app/Models/PermohonanJaminan.php @@ -0,0 +1,23 @@ +id(); + $table->foreignIdFor(Permohonan::class)->constrained('permohonan'); + $table->foreignIdFor(DokumenJaminan::class)->contrained('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'); + } +}; diff --git a/database/migrations/2024_08_27_083927_add_jenis_legalitas_jaminan_id_to_jenis_jaminan.php b/database/migrations/2024_08_27_083927_add_jenis_legalitas_jaminan_id_to_jenis_jaminan.php new file mode 100644 index 0000000..2d76120 --- /dev/null +++ b/database/migrations/2024_08_27_083927_add_jenis_legalitas_jaminan_id_to_jenis_jaminan.php @@ -0,0 +1,28 @@ +text('jenis_legalitas_jaminan_id')->nullable()->after('id')->comment('fk dari table jenis_legalitas_jaminan'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('jenis_jaminan', function (Blueprint $table) { + $table->dropColumn('jenis_legalitas_jaminan_id'); + }); + } +}; diff --git a/module.json b/module.json index 568633b..ea04db7 100644 --- a/module.json +++ b/module.json @@ -92,274 +92,256 @@ ], "files": [], "menu": { - "main": [ + "main": [ + { + "title": "Permohonan", + "path": "permohonan", + "icon": "ki-filled ki-questionnaire-tablet text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator"] + }, + { + "title": "Tender", + "path": "tender", + "icon": "ki-filled ki-category text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator"], + "sub": [ { - "title": "Permohonan", - "path": "permohonan", - "icon": "ki-filled ki-questionnaire-tablet text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator" - ] + "title": "Data Penawaran", + "path": "tender.penawaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] }, { - "title": "Tender", - "path": "tender", - "icon": "ki-filled ki-category text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator" - ], - "sub": [ - { - "title": "Data Penawaran", - "path": "tender.penawaran", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Data Proses Penawaran", - "path": "tender.proses_penawaran", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Data Penawaran Ulang", - "path": "tender.penawaran_ulang", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - } - ] + "title": "Data Proses Penawaran", + "path": "tender.proses_penawaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] }, { - "title": "Pembatalan", - "path": "", - "icon": "ki-filled ki-file-deleted text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator" - ] - }, - { - "title": "Data Debitur", - "path": "debitur", - "icon": "ki-filled ki-people text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator" - ] - }, - { - "title": "Authorization", - "path": "authorization", - "icon": "ki-filled ki-some-files text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator" - ] - }, - { - "title": "Assignment", - "path": "penilaian", - "icon": "ki-filled ki-badge", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "Administrator" - ] - }, - { - "title": "Activity", - "path": "activity", - "icon": "ki-filled ki-some-files text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "Administrator" - ] - }, - { - "title": "Laporan", - "path": "", - "icon": "ki-filled ki-some-files text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "administrator" - ] + "title": "Data Penawaran Ulang", + "path": "tender.penawaran_ulang", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] } - ], - "master": [ + ] + }, + { + "title": "Pembatalan", + "path": "", + "icon": "ki-filled ki-file-deleted text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator"] + }, + { + "title": "Data Debitur", + "path": "debitur", + "icon": "ki-filled ki-people text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator"] + }, + { + "title": "Authorization", + "path": "authorization", + "icon": "ki-filled ki-some-files text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator"] + }, + { + "title": "Assignment", + "path": "penilaian", + "icon": "ki-filled ki-badge", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["Administrator"] + }, + { + "title": "Activity", + "path": "activity", + "icon": "ki-filled ki-some-files text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["Administrator"] + }, + { + "title": "Laporan", + "path": "", + "icon": "ki-filled ki-some-files text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator"] + } + ], + "master": [ + { + "title": "Basic Data", + "path": "basicdata", + "icon": "ki-filled ki-category text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["Administrator"], + "sub": [ { - "title": "Basic Data", - "path": "basicdata", - "icon": "ki-filled ki-category text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "Administrator" - ], - "sub": [ - { - "title": "Cabang", - "path": "basicdata.branch", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Mata Uang", - "path": "basicdata.currency", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Jenis Fasilitas Kredit", - "path": "basicdata.jenis-fasilitas-kredit", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Jenis Legalitas Jaminan", - "path": "basicdata.jenis-legalitas-jaminan", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Jenis Aset", - "path": "basicdata.jenis-jaminan", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Jenis Dokumen", - "path": "basicdata.jenis-dokumen", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Tujuan Penilaian", - "path": "basicdata.tujuan-penilaian", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Nilai Plafond", - "path": "basicdata.nilai-plafond", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Hubungan Pemilik Jaminan", - "path": "basicdata.hubungan-pemilik-jaminan", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Hubungan Penghuni Jaminan", - "path": "basicdata.hubungan-penghuni-jaminan", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Arah Mata Angin", - "path": "basicdata.arah-mata-angin", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Status Permohonan", - "path": "basicdata.status-permohonan", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Region", - "path": "basicdata.region", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Staff Appraisal", - "path": "basicdata.teams", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Jenis Penilaian", - "path": "basicdata.jenis-penilaian", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "KJPP", - "path": "basicdata.kjpp", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - }, - { - "title": "Ijin Usaha", - "path": "basicdata.ijin_usaha", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] - } - ] + "title": "Cabang", + "path": "basicdata.branch", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Mata Uang", + "path": "basicdata.currency", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Jenis Fasilitas Kredit", + "path": "basicdata.jenis-fasilitas-kredit", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Jenis Legalitas Jaminan", + "path": "basicdata.jenis-legalitas-jaminan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Jenis Aset", + "path": "basicdata.jenis-jaminan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Jenis Dokumen", + "path": "basicdata.jenis-dokumen", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Tujuan Penilaian", + "path": "basicdata.tujuan-penilaian", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Nilai Plafond", + "path": "basicdata.nilai-plafond", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Hubungan Pemilik Jaminan", + "path": "basicdata.hubungan-pemilik-jaminan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Hubungan Penghuni Jaminan", + "path": "basicdata.hubungan-penghuni-jaminan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Arah Mata Angin", + "path": "basicdata.arah-mata-angin", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Status Permohonan", + "path": "basicdata.status-permohonan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Region", + "path": "basicdata.region", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Staff Appraisal", + "path": "basicdata.teams", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Jenis Penilaian", + "path": "basicdata.jenis-penilaian", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "KJPP", + "path": "basicdata.kjpp", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, + { + "title": "Ijin Usaha", + "path": "basicdata.ijin_usaha", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] } - ], - "system": [] + ] + } + ], + "system": [] } -} + } } diff --git a/resources/views/authorization/index.blade.php b/resources/views/authorization/index.blade.php new file mode 100644 index 0000000..320d9bb --- /dev/null +++ b/resources/views/authorization/index.blade.php @@ -0,0 +1,138 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('authorization') }} +@endsection + +@section('content') +
+
+
+

+ Daftar Authorization +

+ +
+
+
+ + + + + + + + + + + + +
+ + + Nomor Permohonan + + + Cabang + + + Debitur + + + Tujuan Penilain + + + Account Officer + + Action
+
+ +
+
+
+@endsection + +@push('scripts') + + +@endpush + diff --git a/routes/web.php b/routes/web.php index a4ad27a..80ada10 100644 --- a/routes/web.php +++ b/routes/web.php @@ -57,14 +57,14 @@ Route::middleware(['auth'])->group(function () { }); Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); - Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->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'); - Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-jaminan', JenisJaminanController::class); + Route::name('jenis-jaminan.')->prefix('jenis-jaminan')->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'); + Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-jaminan', JenisJaminanController::class); Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); @@ -98,7 +98,7 @@ Route::middleware(['auth'])->group(function () { Route::name('debitur.')->prefix('debitur')->group(function () { Route::get('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); Route::get('datatables', [DebitureController::class, 'dataForDatatables']) - ->name('datatables'); + ->name('datatables'); Route::get('export', [DebitureController::class, 'export'])->name('export');