From 544933aa3748639c5966de622a2d190aebd439a6 Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 25 Sep 2024 15:11:26 +0700 Subject: [PATCH 01/23] penambahan menu surveyor --- app/Http/Controllers/SurveyorController.php | 140 +++++ module.json | 14 +- resources/views/surveyor/detail.blade.php | 152 ++++++ resources/views/surveyor/index.blade.php | 270 ++++++++++ routes/breadcrumbs.php | 10 + routes/web.php | 547 ++++++++++---------- 6 files changed, 864 insertions(+), 269 deletions(-) create mode 100644 app/Http/Controllers/SurveyorController.php create mode 100644 resources/views/surveyor/detail.blade.php create mode 100644 resources/views/surveyor/index.blade.php diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php new file mode 100644 index 0000000..b70a9b1 --- /dev/null +++ b/app/Http/Controllers/SurveyorController.php @@ -0,0 +1,140 @@ +findOrFail($id); + return view('lpj::surveyor.detail', compact('permohonan')); + } + + /** + * Show the form for editing the specified resource. + */ + public function edit($id) + { + return view('lpj::edit'); + } + + /** + * Update the specified resource in storage. + */ + public function update(Request $request, $id): RedirectResponse + { + // + } + + 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 . '%'); + }); + } + + $query->whereRaw('LOWER(status) = ?', ['assign']); + + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + $totalRecords = $query->count(); + + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + $filteredRecords = $query->count(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'penilaian', 'jenisFasilitasKredit'])->get(); + + $pageCount = ceil($totalRecords / $size); + + $currentPage = max(1, $request->get('page', 1)); + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); + } + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } +} diff --git a/module.json b/module.json index 4d62cc1..ac61330 100644 --- a/module.json +++ b/module.json @@ -70,7 +70,7 @@ { "title": "Activity", "path": "activity", - "icon": "ki-filled ki-some-files text-lg", + "icon": "ki-filled ki-questionnaire-tablet text-lg", "classes": "", "attributes": [], "permission": "", @@ -78,6 +78,18 @@ "Administrator" ] }, + { + "title": "Surveyor", + "path": "surveyor", + "icon": "ki-filled ki-notepad-edit text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "Administrator" + ] + }, + { "title": "Laporan", "path": "", diff --git a/resources/views/surveyor/detail.blade.php b/resources/views/surveyor/detail.blade.php new file mode 100644 index 0000000..989ffd6 --- /dev/null +++ b/resources/views/surveyor/detail.blade.php @@ -0,0 +1,152 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+
+
+

+ Surveyor +

+
+ + Back +
+
+
+
+

+ Nomor Register Permohonan: +

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

+ Waktu Survei: +

+ + {{ $permohonan->penilaian->tanggal_kunjungan }} + +
+ +
+

+ Keterangan: +

+ + {{ $permohonan->penilaian->keterangan }} + +
+ +
+
+ + +
+
+

+ Data Jaminan +

+
+
+ @foreach ($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
+
+ +
+ +@endsection diff --git a/resources/views/surveyor/index.blade.php b/resources/views/surveyor/index.blade.php new file mode 100644 index 0000000..6006e88 --- /dev/null +++ b/resources/views/surveyor/index.blade.php @@ -0,0 +1,270 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('surveyor') }} +@endsection +@section('content') + +@push('styles') + +@endpush + +
+
+
+
+ Surveyor +
+
+

+ {{-- Daftar {{}} --}} +

+
+
+ +
+ + +
+
+
+ +
+ +
+
+ + + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + + Tanggal Assigned + + + + User Pemohon + + + + Cabang Pemohon + + + + Debitur + + + + Tujuan Penilaian + + + + Fasilitas Kredit + + + Action
+
+ +
+
+
+
+ + +@endsection + +@push('scripts') + +@endpush diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 76d3098..8911635 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -303,6 +303,7 @@ $trail->push('Assignment'); }); + Breadcrumbs::for('authorization.index', function (BreadcrumbTrail $trail) { $trail->push('Permohonan', route('authorization.index')); }); @@ -321,3 +322,12 @@ $trail->parent('activity'); $trail->push('Activity activity'); }); + + Breadcrumbs::for('surveyor', function (BreadcrumbTrail $trail) { + $trail->push('Surveyor', route('surveyor.index')); + }); + + Breadcrumbs::for('surveyor.show', function (BreadcrumbTrail $trail) { + $trail->parent('surveyor'); + $trail->push('Detail'); + }); diff --git a/routes/web.php b/routes/web.php index 0f89fea..afca060 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,290 +1,301 @@ group(function () { - Route::name('basicdata.')->prefix('basic-data')->group(function () { - Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { - Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); - }); - Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); - - Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { - Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); - - 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'); - 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'); - Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); - }); - Route::resource('tujuan-penilaian', TujuanPenilaianController::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']) - ->name('datatables'); - Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); - }); - Route::resource('jenis-dokumen', JenisDokumenController::class); - - Route::name('currency.')->prefix('mata-uang')->group(function () { - Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); - Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [CurrencyController::class, 'export'])->name('export'); - }); - - Route::resource('mata-uang', CurrencyController::class, [ - 'names' => [ - 'index' => 'currency.index', - 'show' => 'currency.show', - 'create' => 'currency.create', - 'store' => 'currency.store', - 'edit' => 'currency.edit', - 'update' => 'currency.update', - 'destroy' => 'currency.destroy', - ], - ]); - - Route::name('branch.')->prefix('cabang')->group(function () { - Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); - Route::get('datatables', [BranchController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [BranchController::class, 'export'])->name('export'); - }); - - Route::resource('cabang', BranchController::class, [ - 'names' => [ - 'index' => 'branch.index', - 'show' => 'branch.show', - 'create' => 'branch.create', - 'store' => 'branch.store', - 'edit' => 'branch.edit', - 'update' => 'branch.update', - 'destroy' => 'branch.destroy', - ], - ]); - - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); - - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - - - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); - - Route::name('region.')->prefix('region')->group(function () { - Route::get('restore/{id}', [RegionController::class, 'restore'])->name('restore'); - Route::get('datatables', [RegionController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [RegionController::class, 'export'])->name('export'); - }); - - - Route::resource('region', RegionController::class, [ - 'names' => [ - 'index' => 'region.index', - 'show' => 'region.show', - 'create' => 'region.create', - 'store' => 'region.store', - 'edit' => 'region.edit', - 'update' => 'region.update', - 'destroy' => 'region.destroy', - ], - ]); - - Route::resource('region', RegionController::class); - - - Route::name('teams.')->prefix('teams')->group(function () { - Route::get('restore/{id}', [TeamsController::class, 'restore'])->name('restore'); - Route::get('datatables', [TeamsController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [TeamsController::class, 'export'])->name('export'); - }); - - Route::resource('teams', TeamsController::class, [ - 'names' => [ - 'index' => 'teams.index', - 'show' => 'teams.show', - 'create' => 'teams.create', - 'store' => 'teams.store', - 'edit' => 'teams.edit', - 'update' => 'teams.update', - 'destroy' => 'teams.destroy', - ], - ]); - - Route::name('jenis-penilaian.')->prefix('jenis-penilaian')->group(function () { - Route::get('restore/{id}', [JenisPenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisPenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); - }); - - Route::resource('jenis-penilaian', JenisPenilaianController::class, [ - 'names' => [ - 'index' => 'jenis-penilaian.index', - 'show' => 'jenis-penilaian.show', - 'create' => 'jenis-penilaian.create', - 'store' => 'jenis-penilaian.store', - 'edit' => 'jenis-penilaian.edit', - 'update' => 'jenis-penilaian.update', - 'destroy' => 'jenis-penilaian.destroy', - ], - ]); - }); - - 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']) +Route::middleware(['auth'])->group(function () { + Route::name('basicdata.')->prefix('basic-data')->group(function () { + Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { + Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables']) ->name('datatables'); - Route::get('export', [PermohonanController::class, 'export'])->name('export'); + Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); }); + Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::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('restore/{id}', [DebitureController::class, 'restore'])->name('restore'); - Route::get('datatables', [DebitureController::class, 'dataForDatatables']) + Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { + Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables']) ->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); + Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); + 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'); + Route::get('export', [JenisJaminanController::class, 'export'])->name('export'); + }); + Route::resource('jenis-jaminan', JenisJaminanController::class); - 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('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { + Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); + }); + Route::resource('tujuan-penilaian', TujuanPenilaianController::class); - 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('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { + Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); + }); + Route::resource('jenis-dokumen', JenisDokumenController::class); + + Route::name('currency.')->prefix('mata-uang')->group(function () { + Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); + Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [CurrencyController::class, 'export'])->name('export'); }); - Route::resource('debitur', DebitureController::class); + Route::resource('mata-uang', CurrencyController::class, [ + 'names' => [ + 'index' => 'currency.index', + 'show' => 'currency.show', + 'create' => 'currency.create', + 'store' => 'currency.store', + 'edit' => 'currency.edit', + 'update' => 'currency.update', + 'destroy' => 'currency.destroy', + ], + ]); - Route::name('penilaian.')->prefix('penilaian')->group(function () { - Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [PenilaianController::class, 'export'])->name('export'); - Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + Route::name('branch.')->prefix('cabang')->group(function () { + Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); + Route::get('datatables', [BranchController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [BranchController::class, 'export'])->name('export'); + }); - Route::get('/', [PenilaianController::class, 'index'])->name('index'); - Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); - Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); - Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); - Route::post('create', [PenilaianController::class, 'create'])->name('create'); - Route::post('store', [PenilaianController::class, 'store'])->name('store'); + Route::resource('cabang', BranchController::class, [ + 'names' => [ + 'index' => 'branch.index', + 'show' => 'branch.show', + 'create' => 'branch.create', + 'store' => 'branch.store', + 'edit' => 'branch.edit', + 'update' => 'branch.update', + 'destroy' => 'branch.destroy', + ], + ]); + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); + + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + + + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); + + Route::name('region.')->prefix('region')->group(function () { + Route::get('restore/{id}', [RegionController::class, 'restore'])->name('restore'); + Route::get('datatables', [RegionController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [RegionController::class, 'export'])->name('export'); }); - Route::name('activity.')->prefix('activity')->group(function () { - Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); - Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ActivityController::class, 'export'])->name('export'); - Route::get('/', [ActivityController::class, 'index'])->name('index'); + Route::resource('region', RegionController::class, [ + 'names' => [ + 'index' => 'region.index', + 'show' => 'region.show', + 'create' => 'region.create', + 'store' => 'region.store', + 'edit' => 'region.edit', + 'update' => 'region.update', + 'destroy' => 'region.destroy', + ], + ]); - Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); - Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + Route::resource('region', RegionController::class); + + + Route::name('teams.')->prefix('teams')->group(function () { + Route::get('restore/{id}', [TeamsController::class, 'restore'])->name('restore'); + Route::get('datatables', [TeamsController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [TeamsController::class, 'export'])->name('export'); + }); + + Route::resource('teams', TeamsController::class, [ + 'names' => [ + 'index' => 'teams.index', + 'show' => 'teams.show', + 'create' => 'teams.create', + 'store' => 'teams.store', + 'edit' => 'teams.edit', + 'update' => 'teams.update', + 'destroy' => 'teams.destroy', + ], + ]); + + Route::name('jenis-penilaian.')->prefix('jenis-penilaian')->group(function () { + Route::get('restore/{id}', [JenisPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisPenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); + }); + + Route::resource('jenis-penilaian', JenisPenilaianController::class, [ + 'names' => [ + 'index' => 'jenis-penilaian.index', + 'show' => 'jenis-penilaian.show', + 'create' => 'jenis-penilaian.create', + 'store' => 'jenis-penilaian.store', + 'edit' => 'jenis-penilaian.edit', + 'update' => 'jenis-penilaian.update', + 'destroy' => 'jenis-penilaian.destroy', + ], + ]); + }); + + 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']) + ->name('datatables'); + Route::get('export', [PermohonanController::class, 'export'])->name('export'); + }); + + 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']) + ->name('datatables'); + 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('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); + + Route::name('penilaian.')->prefix('penilaian')->group(function () { + Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [PenilaianController::class, 'export'])->name('export'); + Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + + Route::get('/', [PenilaianController::class, 'index'])->name('index'); + Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); + Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); + Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); + Route::post('create', [PenilaianController::class, 'create'])->name('create'); + Route::post('store', [PenilaianController::class, 'store'])->name('store'); + + }); + + + Route::name('activity.')->prefix('activity')->group(function () { + Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); + Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ActivityController::class, 'export'])->name('export'); + Route::get('/', [ActivityController::class, 'index'])->name('index'); + + Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); + Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + }); + + Route::name('surveyor.')->prefix('surveyor')->group(function () { + Route::get('restore/{id}', [SurveyorController::class, 'restore'])->name('restore'); + Route::get('datatables', [SurveyorController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [SurveyorController::class, 'export'])->name('export'); + Route::get('/', [SurveyorController::class, 'index'])->name('index'); + + Route::get('/{id}/show', [SurveyorController::class, 'show'])->name('show'); + Route::get('download/{id}', [SurveyorController::class, 'download'])->name('download'); + }); +}); From 6e47b231a209a212857a0d9d327b2e4a9de20b35 Mon Sep 17 00:00:00 2001 From: majid Date: Thu, 26 Sep 2024 09:47:38 +0700 Subject: [PATCH 02/23] penambahan menu surveyor --- module.json | 10 +- resources/views/surveyor/detail.blade.php | 272 ++++++++------- routes/web.php | 407 +++++++++++----------- 3 files changed, 357 insertions(+), 332 deletions(-) diff --git a/module.json b/module.json index 9141313..dd4d18f 100644 --- a/module.json +++ b/module.json @@ -19,7 +19,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "Administrator" ] }, { @@ -30,7 +30,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "Administrator" ], "sub": [ { @@ -67,7 +67,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "Administrator" ] }, { @@ -78,7 +78,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "Administrator" ] }, { @@ -134,7 +134,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "Administrator" ] } ], diff --git a/resources/views/surveyor/detail.blade.php b/resources/views/surveyor/detail.blade.php index 989ffd6..885d5fb 100644 --- a/resources/views/surveyor/detail.blade.php +++ b/resources/views/surveyor/detail.blade.php @@ -5,148 +5,158 @@ @endsection @section('content') -
-
-
-

- Surveyor -

-
- - Back +
+
+
+

+ Surveyor +

+
+ + Back +
+
+
+
+

+ Nomor Register Permohonan: +

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

+ Waktu Survei: +

+ + {{ $permohonan->penilaian->tanggal_kunjungan }} + +
+ +
+

+ Keterangan: +

+ + {{ $permohonan->penilaian->keterangan }} + +
+
-
-
-

- Nomor Register Permohonan: -

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

- Waktu Survei: -

- - {{ $permohonan->penilaian->tanggal_kunjungan }} - -
-
-

- Keterangan: +
+
+

+ Data Jaminan

- - {{ $permohonan->penilaian->keterangan }} -
- +
+ @foreach ($permohonan->debiture->documents as $dokumen) +
+ + +
+ @endforeach +
-

- -
-
+
+ {{--

Data Jaminan

-
-
- @foreach ($permohonan->debiture->documents as $dokumen) -
- - -
- @endforeach +
--}} + +
+ +
- -
- @endsection diff --git a/routes/web.php b/routes/web.php index f25095e..3372840 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,30 +1,31 @@ group(function () { }); Route::resource('tujuan-penilaian', TujuanPenilaianController::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']) - ->name('datatables'); - Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); - }); - Route::resource('jenis-dokumen', JenisDokumenController::class); - Route::name('currency.')->prefix('mata-uang')->group(function () { - Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); - Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [CurrencyController::class, 'export'])->name('export'); - }); + Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { + Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); + }); + Route::resource('jenis-dokumen', JenisDokumenController::class); + Route::name('currency.')->prefix('mata-uang')->group(function () { + Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); + Route::get('datatables', [CurrencyController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [CurrencyController::class, 'export'])->name('export'); + }); Route::resource('mata-uang', CurrencyController::class, [ 'names' => [ @@ -204,152 +205,152 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [JenisPenilaianController::class, 'export'])->name('export'); }); - Route::resource('jenis-penilaian', JenisPenilaianController::class, [ - 'names' => [ - 'index' => 'jenis-penilaian.index', - 'show' => 'jenis-penilaian.show', - 'create' => 'jenis-penilaian.create', - 'store' => 'jenis-penilaian.store', - 'edit' => 'jenis-penilaian.edit', - 'update' => 'jenis-penilaian.update', - 'destroy' => 'jenis-penilaian.destroy', - ], - ]); + Route::resource('jenis-penilaian', JenisPenilaianController::class, [ + 'names' => [ + 'index' => 'jenis-penilaian.index', + 'show' => 'jenis-penilaian.show', + 'create' => 'jenis-penilaian.create', + 'store' => 'jenis-penilaian.store', + 'edit' => 'jenis-penilaian.edit', + 'update' => 'jenis-penilaian.update', + 'destroy' => 'jenis-penilaian.destroy', + ], + ]); - Route::resource('mata-uang', CurrencyController::class, [ - 'names' => [ - 'index' => 'currency.index', - 'show' => 'currency.show', - 'create' => 'currency.create', - 'store' => 'currency.store', - 'edit' => 'currency.edit', - 'update' => 'currency.update', - 'destroy' => 'currency.destroy', - ], - ]); + Route::resource('mata-uang', CurrencyController::class, [ + 'names' => [ + 'index' => 'currency.index', + 'show' => 'currency.show', + 'create' => 'currency.create', + 'store' => 'currency.store', + 'edit' => 'currency.edit', + 'update' => 'currency.update', + 'destroy' => 'currency.destroy', + ], + ]); - Route::name('branch.')->prefix('cabang')->group(function () { - Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); - Route::get('datatables', [BranchController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [BranchController::class, 'export'])->name('export'); - }); - - Route::resource('cabang', BranchController::class, [ - 'names' => [ - 'index' => 'branch.index', - 'show' => 'branch.show', - 'create' => 'branch.create', - 'store' => 'branch.store', - 'edit' => 'branch.edit', - 'update' => 'branch.update', - 'destroy' => 'branch.destroy', - ], - ]); - - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); - - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); - - 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('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); - - Route::name('kjpp.')->prefix('kjpp')->group(function () { - Route::get('datatables', [KJPPController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [KJPPController::class, 'export'])->name('export'); - }); - - Route::resource('kjpp', KJPPController::class); - - Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { - Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables']) - ->name('datatables'); - Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); - }); - - Route::resource('ijin_usaha', IjinUsahaController::class); + Route::name('branch.')->prefix('cabang')->group(function () { + Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); + Route::get('datatables', [BranchController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [BranchController::class, 'export'])->name('export'); }); - Route::resource('debitur', DebitureController::class); + Route::resource('cabang', BranchController::class, [ + 'names' => [ + 'index' => 'branch.index', + 'show' => 'branch.show', + 'create' => 'branch.create', + 'store' => 'branch.store', + 'edit' => 'branch.edit', + 'update' => 'branch.update', + 'destroy' => 'branch.destroy', + ], + ]); - Route::name('penilaian.')->prefix('penilaian')->group(function () { - Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [PenilaianController::class, 'export'])->name('export'); - Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); - Route::get('/', [PenilaianController::class, 'index'])->name('index'); - Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); - Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); - Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); - Route::post('create', [PenilaianController::class, 'create'])->name('create'); - Route::post('store', [PenilaianController::class, 'store'])->name('store'); + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); + + 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('activity.')->prefix('activity')->group(function () { - Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); - Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ActivityController::class, 'export'])->name('export'); - Route::get('/', [ActivityController::class, 'index'])->name('index'); - - Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); - Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + 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('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); + + Route::name('kjpp.')->prefix('kjpp')->group(function () { + Route::get('datatables', [KJPPController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [KJPPController::class, 'export'])->name('export'); + }); + + Route::resource('kjpp', KJPPController::class); + + Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { + Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables']) + ->name('datatables'); + Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); + }); + + Route::resource('ijin_usaha', IjinUsahaController::class); + }); + + Route::resource('debitur', DebitureController::class); + + Route::name('penilaian.')->prefix('penilaian')->group(function () { + Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [PenilaianController::class, 'export'])->name('export'); + Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + + Route::get('/', [PenilaianController::class, 'index'])->name('index'); + Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); + Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); + Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); + Route::post('create', [PenilaianController::class, 'create'])->name('create'); + Route::post('store', [PenilaianController::class, 'store'])->name('store'); + }); + + + Route::name('activity.')->prefix('activity')->group(function () { + Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); + Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ActivityController::class, 'export'])->name('export'); + Route::get('/', [ActivityController::class, 'index'])->name('index'); + + Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); + Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + }); + 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'); @@ -361,15 +362,15 @@ Route::middleware(['auth'])->group(function () { 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::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'); @@ -400,19 +401,33 @@ Route::middleware(['auth'])->group(function () { Route::resource('debitur', DebitureController::class); - Route::name('tender.')->prefix('tender')->group(function () { - // Penawaran - Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); - Route::get('penawaran/create', [TenderController::class, 'penawaran_create'])->name('penawaran.create'); + Route::name('tender.')->prefix('tender')->group(function () { + // Penawaran + Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); + Route::get('penawaran/create', [TenderController::class, 'penawaran_create'])->name('penawaran.create'); - // Proses Penawaran - Route::get('proses_penawaran', [TenderController::class, 'proses_penawaran_index'])->name( - 'proses_penawaran.index', - ); + // Proses Penawaran + Route::get('proses_penawaran', [TenderController::class, 'proses_penawaran_index'])->name( + 'proses_penawaran.index', + ); - // Penawaran Ulang - Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name( - 'penawaran_ulang.index', - ); - }); + // Penawaran Ulang + Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name( + 'penawaran_ulang.index', + ); }); + + + Route::name('surveyor.')->prefix('surveyor')->group(function () { + Route::get('restore/{id}', [SurveyorController::class, 'restore'])->name('restore'); + Route::get('datatables', [SurveyorController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [SurveyorController::class, 'export'])->name('export'); + Route::get('/', [SurveyorController::class, 'index'])->name('index'); + + Route::get('/{id}/show', [SurveyorController::class, 'show'])->name('show'); + Route::get('download/{id}', [SurveyorController::class, 'download'])->name('download'); + }); + + + +}); From 5fcce527b48560ca13f5d9edf13d91e3c23fbba6 Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 27 Sep 2024 15:08:13 +0700 Subject: [PATCH 03/23] perbaikan activity pemohonan ( seacrh filter status multiple, Penilai/Surveyor tidak tampil dan status aktivitas pada permohonan akan berjalan dari bawah ke atas) --- app/Exports/PermohonanExport.php | 4 +- app/Http/Controllers/ActivityController.php | 67 ++++--- app/Models/Penilaian.php | 25 ++- module.json | 11 ++ .../views/activity/activitydetail.blade.php | 181 +++++++++--------- .../activity/components/status.blade.php | 37 ---- resources/views/activity/index.blade.php | 118 ++++++++++-- .../activity/senior_officer/index.blade.php | 15 ++ resources/views/penilaian/form.blade.php | 2 +- routes/web.php | 27 ++- 10 files changed, 307 insertions(+), 180 deletions(-) create mode 100644 resources/views/activity/senior_officer/index.blade.php diff --git a/app/Exports/PermohonanExport.php b/app/Exports/PermohonanExport.php index c6ce0a2..4b8d74b 100644 --- a/app/Exports/PermohonanExport.php +++ b/app/Exports/PermohonanExport.php @@ -28,8 +28,8 @@ $row->branch->name, $row->tujuanPenilaian->name, $row->debiture->name, - $row->fasilitasKredit->name, - $row->plafond->name, + $row->jenisFasilitasKredit->name, + $row->nilaiPlafond->name, $row->status, $row->authorized_at, $row->authorized_status, diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index c24eee2..12bd5b3 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -8,7 +8,8 @@ use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\StatusPermohonan; - +use Modules\Lpj\Exports\PermohonanExport; +use Maatwebsite\Excel\Facades\Excel; class ActivityController extends Controller { public $user; @@ -25,6 +26,11 @@ class ActivityController extends Controller * Show the form for creating a new resource. */ + public function senior() + { + return view('lpj::activity.senior_officer.index'); + } + /** * Store a newly created resource in storage. */ @@ -39,7 +45,7 @@ class ActivityController extends Controller public function show($id) { - $status_permohonan = StatusPermohonan::orderBy('id')->get(); + $status_permohonan = StatusPermohonan::orderBy('id')->get()->reverse(); $permohonan = Permohonan::with( [ @@ -67,9 +73,9 @@ class ActivityController extends Controller /** * Update the specified resource in storage. - */ - public function dataForDatatables(Request $request) + */public function dataForDatatables(Request $request) { + // Check permissions if (is_null($this->user) || !$this->user->can('debitur.view')) { // abort(403, 'Sorry! You are not allowed to view users.'); } @@ -81,20 +87,19 @@ class ActivityController extends Controller 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 . '%'); - }); - } + $q->where('nomor_registrasi', 'LIKE', '%' . $search . '%') + ->orWhere('tanggal_permohonan', 'LIKE', '%' . $search . '%') + ->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%') + ->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%') + ->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%') + ->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); - // Apply status filter if provided - if ($request->has('status') && !empty($request->get('status'))) { - $status = $request->get('status'); - $query->where('status', '=', $status); + // Split search term by comma to allow multiple statuses + $statusKeywords = explode(',', $search); + foreach ($statusKeywords as $keyword) { + $q->orWhere('status', 'LIKE', '%' . trim($keyword) . '%'); + } + }); } // Default sorting if no sort provided @@ -103,32 +108,29 @@ class ActivityController extends Controller $column = $request->get('sortField'); $query->orderBy($column, $order); } else { - $query->orderBy('nomor_registrasi', 'asc'); // Default order by nomor_registrasi + $query->orderBy('nomor_registrasi', 'asc'); } - // Get the total count of records before paginating + // Get total count of records before pagination $totalRecords = $query->count(); - // Apply pagination if provided + // Pagination if ($request->has('page') && $request->has('size')) { - $page = (int) $request->get('page', 1); // Default page is 1 - $size = (int) $request->get('size', 10); // Default size is 10 - $offset = ($page - 1) * $size; // Calculate the offset - - // Limit results based on pagination + $page = (int) $request->get('page', 1); + $size = (int) $request->get('size', 10); + $offset = ($page - 1) * $size; $query->skip($offset)->take($size); } - // Get the filtered count of records (after search & filters applied) + // Get filtered count $filteredRecords = $query->count(); - // Get the data for the current page + // Get data $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - // Calculate the total number of pages + // Calculate total pages $pageCount = ceil($totalRecords / $request->get('size', 10)); - // Return the response data as a JSON object return response()->json([ 'draw' => $request->get('draw'), 'recordsTotal' => $totalRecords, @@ -141,6 +143,7 @@ class ActivityController extends Controller } + /** * Download the specified resource from storage. */ @@ -149,4 +152,10 @@ class ActivityController extends Controller $document = Permohonan::find($id); return response()->download(storage_path('app/public/' . $document->dokumen)); } + + public function export() + { + return Excel::download(new PermohonanExport, 'activity.xlsx'); + } + } diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index 93bd3e8..cb2f44c 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -10,45 +10,50 @@ use Modules\Lpj\Models\Teams; use Modules\Lpj\Models\Permohonan; use Modules\Usermanagement\Models\User; - class Penilaian extends Model { - /** * The attributes that are mass assignable. */ protected $table = 'penilaian'; protected $fillable = [ - 'jenis_penilaian_id', 'teams_id', 'user_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi','penilaian_id','surveyor_id','penilai_surveyor_id', + 'jenis_penilaian_id', 'teams_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi','penilaian_id','surveyor_id','penilai_surveyor_id', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; - public function jenis_penilaian(){ + public function jenis_penilaian() + { return $this->belongsTo(JenisPenilaian::class, 'jenis_penilaian_id', 'id'); } - public function teams(){ + public function teams() + { return $this->belongsTo(Teams::class, 'teams_id', 'id'); } - public function users(){ + public function users() + { return $this->belongsTo(User::class, 'user_id', 'id'); } - public function userPenilai(){ + public function userPenilai() + { return $this->belongsTo(User::class, 'penilaian_id', 'id'); } - public function userSurveyor(){ + public function userSurveyor() + { return $this->belongsTo(User::class, 'surveyor_id', 'id'); } - public function userPenilaiSurveyor(){ + public function userPenilaiSurveyor() + { return $this->belongsTo(User::class, 'penilai_surveyor_id', 'id'); } - public function permohonan(){ + public function permohonan() + { return $this->belongsTo(Permohonan::class, 'nomor_registrasi', 'nomor_registrasi'); } diff --git a/module.json b/module.json index dd4d18f..bca6ad3 100644 --- a/module.json +++ b/module.json @@ -114,6 +114,17 @@ "Administrator" ] }, + { + "title": "Activity Progress", + "path": "activity", + "icon": "ki-filled ki-questionnaire-tablet text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "Administrator" + ] + }, { "title": "Surveyor", "path": "surveyor", diff --git a/resources/views/activity/activitydetail.blade.php b/resources/views/activity/activitydetail.blade.php index ec335f0..df4b3e2 100644 --- a/resources/views/activity/activitydetail.blade.php +++ b/resources/views/activity/activitydetail.blade.php @@ -13,108 +13,115 @@ @endpush
-
-
-

- Activity Permohonan -

-
- - Back +
+
+

+ Activity Permohonan +

+
+ + Back +
+
+
+
+

+ Nomor Register Permohonan: +

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

+ Pemohon: +

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

+ Tujuan Permohonan: +

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

- Nomor Register Permohonan: + Status Activity

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

- Pemohon: -

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

- Tujan Permohonan: -

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

- Status Activity -

-
-
-
- @foreach ($status_permohonan as $index => $status) - {{-- Cek apakah status adalah "Revisi" dan status permohonan tidak sama, maka tidak ditampilkan --}} - @if (strtolower($status->name) == 'revisi' && strtolower($status->name) != strtolower($permohonan->status)) - @continue - @endif - -
- @if ($index < count($status_permohonan) - 1) -
-
+
+
+ @foreach ($status_permohonan as $index => $status) + {{-- Cek apakah status adalah "Revisi" dan status permohonan tidak sama, maka tidak ditampilkan --}} + @if (strtolower($status->name) == 'revisi' && strtolower($status->name) != strtolower($permohonan->status)) + @continue @endif -
- @switch(strtolower($status->name)) - @case('order') - - @break +
+ @if ($index > 0) +
+
+ @endif - @case('revisi') - - @break +
+ @switch(strtolower($status->name)) + @case('order') + + @break - @case('register') - - @break + @case('revisi') + + @break - @case('assign') - - @break + @case('register') + + @break - @case('survey') - - @break + @case('assign') + + @break - @default - - @endswitch + @case('survey') + + @break + @case('proses laporan') + + @break + @case('approved') + + @break + @case('delivered') + + @break + @default + + @endswitch +
+ @include('lpj::activity.components.status')
- @include('lpj::activity.components.status') -
- @endforeach + @endforeach +
+
+
-
-
@endsection diff --git a/resources/views/activity/components/status.blade.php b/resources/views/activity/components/status.blade.php index 0952cc3..19d1107 100644 --- a/resources/views/activity/components/status.blade.php +++ b/resources/views/activity/components/status.blade.php @@ -43,47 +43,10 @@
@endif - {{-- Tampilkan informasi assign jika status 'assign' --}} @if (strtolower($status->name) == 'assign' && $isCurrentStatus)
- {{-- Informasi Penilai, Surveyor, dan Penilai Surveyor --}} -
- @isset($permohonan->penilaian) - @if ($penilai = $permohonan->penilaian->userPenilai->name ?? null) -
-

Penilai:

- {{ $penilai }} -
- @endif - @if ($surveyor = $permohonan->penilaian->userSurveyor->name ?? null) -
-

Surveyor:

- {{ $surveyor }} -
- @endif - - @if ($penilaiSurveyor = $permohonan->penilaian->userPenilaiSurveyor->name ?? null) -
-

Penilai Surveyor:

- {{ $penilaiSurveyor }} -
- @endif - @endisset -
- - {{-- Teams --}} -
-

Teams:

-
    - @foreach ($permohonan->penilaian->teams->teamsUsers as $item) -
  • {{ $item->user->name }}
  • - @endforeach -
-
- - {{-- Catatan --}}

Catatan:

{{ $permohonan->penilaian->keterangan }} diff --git a/resources/views/activity/index.blade.php b/resources/views/activity/index.blade.php index 4dd0179..72e4efc 100644 --- a/resources/views/activity/index.blade.php +++ b/resources/views/activity/index.blade.php @@ -4,16 +4,45 @@ {{ Breadcrumbs::render('activity') }} @endsection @section('content') +@push('styles') + + +@endpush
Activity
+ +
-

- {{-- Daftar {{}} --}} -

+
-
- + + +
Export to Excel @@ -203,9 +260,44 @@ dataTable.search(searchValue, true); }); - statusFilter.addEventListener('change', function() { - const selectedStatus = this.value; - dataTable.search(selectedStatus); + + const selectAllCheckbox = document.getElementById('select-all'); + const statusCheckboxes = document.querySelectorAll('.status-checkbox'); + + statusCheckboxes.forEach(checkbox => { + checkbox.addEventListener('change', applyStatusFilter); }); + + // Event listener untuk "Select All" + selectAllCheckbox.addEventListener('change', function() { + const isChecked = this.checked; + statusCheckboxes.forEach(checkbox => { + checkbox.checked = isChecked; + }); + applyStatusFilter(); + }); + + function applyStatusFilter() { + const selectedStatuses = Array.from(statusCheckboxes) + .filter(checkbox => checkbox.checked) + .map(checkbox => checkbox.value); + + + if (selectedStatuses.length === 0) { + dataTable.search(''); + console.log(selectedStatuses); + + } else { + + dataTable.search(selectedStatuses.join(','), true); + console.log(selectedStatuses); + + } + + const allChecked = Array.from(statusCheckboxes).every(cb => cb.checked); + selectAllCheckbox.checked = allChecked; + } + + @endpush diff --git a/resources/views/activity/senior_officer/index.blade.php b/resources/views/activity/senior_officer/index.blade.php new file mode 100644 index 0000000..aee45bb --- /dev/null +++ b/resources/views/activity/senior_officer/index.blade.php @@ -0,0 +1,15 @@ +@extends('layouts.main') + +{{-- @section('breadcrumbs') + {{ Breadcrumbs::render('activity') }} +@endsection --}} +@section('content') + + +
+
+ hello +
+
+ +@endsection diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 63b642c..484ac33 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -335,7 +335,7 @@
diff --git a/routes/web.php b/routes/web.php index 34777c0..248a223 100644 --- a/routes/web.php +++ b/routes/web.php @@ -353,6 +353,11 @@ Route::middleware(['auth'])->group(function () { Route::resource('debitur', DebitureController::class); + + /** + * Route start Penilaian + */ + Route::name('penilaian.')->prefix('penilaian')->group(function () { Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); @@ -367,6 +372,13 @@ Route::middleware(['auth'])->group(function () { Route::post('store', [PenilaianController::class, 'store'])->name('store'); }); + /** + * Route end Penilaian + */ + + /** + * Route start activity + */ Route::name('activity.')->prefix('activity')->group(function () { Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); @@ -376,8 +388,13 @@ Route::middleware(['auth'])->group(function () { Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + Route::get('senior', [ActivityController::class, 'senior'])->name('senior'); }); + /** + * Route end activity + */ + 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'); @@ -445,7 +462,11 @@ Route::middleware(['auth'])->group(function () { }); - Route::name('surveyor.')->prefix('surveyor')->group(function () { + /** + * Route start surveyor + */ + + Route::name('surveyor.')->prefix('surveyor')->group(function () { Route::get('restore/{id}', [SurveyorController::class, 'restore'])->name('restore'); Route::get('datatables', [SurveyorController::class, 'dataForDatatables'])->name('datatables'); Route::get('export', [SurveyorController::class, 'export'])->name('export'); @@ -455,6 +476,10 @@ Route::middleware(['auth'])->group(function () { Route::get('download/{id}', [SurveyorController::class, 'download'])->name('download'); }); + /** + * Route end activity + */ + }); From 2f27d5f24c95ba2697538649ef250b143b9fe112 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 3 Oct 2024 11:55:14 +0700 Subject: [PATCH 04/23] update roles --- module.json | 124 +++++++++++++++++++++++++++++++++++----------------- 1 file changed, 83 insertions(+), 41 deletions(-) diff --git a/module.json b/module.json index d3775b8..47e9b8e 100644 --- a/module.json +++ b/module.json @@ -19,7 +19,18 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator","pemohon-ao","pemohon-eo" + ] + }, + { + "title": "Registrasi", + "path": "registrasi", + "icon": "ki-filled ki-file-added text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator","admin" ] }, { @@ -30,7 +41,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator","admin" ], "sub": [ { @@ -39,7 +50,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin" + ] }, { "title": "Data Proses Penawaran", @@ -47,7 +60,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin" + ] }, { "title": "Data Penawaran Ulang", @@ -55,7 +70,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin" + ] } ] }, @@ -67,7 +84,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator","pemohon-ao","pemohon-eo" ] }, { @@ -78,7 +95,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator","pemohon-ao","pemohon-eo" ] }, { @@ -89,18 +106,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" - ] - }, - { - "title": "Registrasi", - "path": "registrasi", - "icon": "ki-filled ki-file-added text-lg", - "classes": "", - "attributes": [], - "permission": "", - "roles": [ - "Administrator" + "administrator","pemohon-eo" ] }, { @@ -111,7 +117,7 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" + "administrator" ] }, { @@ -122,7 +128,7 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" + "administrator","pemohon-ao","pemohon-eo","admin" ] }, { @@ -133,7 +139,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator","pemohon-ao","pemohon-eo","admin" ] } ], @@ -146,7 +152,7 @@ "attributes": [], "permission": "", "roles": [ - "Administrator" + "administrator","pemohon-ao","pemohon-eo","admin" ], "sub": [ { @@ -155,7 +161,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Mata Uang", @@ -163,7 +171,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Jenis Fasilitas Kredit", @@ -171,7 +181,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Jenis Legalitas Jaminan", @@ -179,7 +191,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Jenis Aset", @@ -187,7 +201,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Jenis Dokumen", @@ -195,7 +211,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Tujuan Penilaian", @@ -203,7 +221,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Nilai Plafond", @@ -211,7 +231,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Hubungan Pemilik Jaminan", @@ -219,7 +241,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Hubungan Penghuni Jaminan", @@ -227,7 +251,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","pemohon-ao","pemohon-eo" + ] }, { "title": "Arah Mata Angin", @@ -235,7 +261,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator" + ] }, { "title": "Status Permohonan", @@ -243,7 +271,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator" + ] }, { "title": "Region", @@ -251,7 +281,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin","so" + ] }, { "title": "Staff Appraisal", @@ -259,7 +291,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","so" + ] }, { "title": "Jenis Penilaian", @@ -267,7 +301,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin","so" + ] }, { "title": "KJPP", @@ -275,7 +311,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin" + ] }, { "title": "Tujuan Penilaian KJPP", @@ -283,7 +321,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin" + ] }, { "title": "Ijin Usaha", @@ -291,7 +331,9 @@ "classes": "", "attributes": [], "permission": "", - "roles": [] + "roles": [ + "administrator","admin" + ] } ] } From c98c7d50c799b25a1b6f720d5730d3767544d4d4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 3 Oct 2024 13:27:37 +0700 Subject: [PATCH 05/23] remove removeErrorCssMsg(); --- .../views/registrasi/js/editjs.blade.php | 66 +++++++++---------- .../views/registrasi/js/showjs.blade.php | 50 +++++++------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index bb23884..db6bda7 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -1,11 +1,11 @@ @push('scripts') - -@endpush +@endpush diff --git a/resources/views/registrasi/js/showjs.blade.php b/resources/views/registrasi/js/showjs.blade.php index 97a5110..5309d38 100644 --- a/resources/views/registrasi/js/showjs.blade.php +++ b/resources/views/registrasi/js/showjs.blade.php @@ -1,16 +1,16 @@ @push('scripts') - -@endpush +@endpush From fd1d460acc4a5e9ea89d8d3a6658b1c859688692 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 3 Oct 2024 13:37:05 +0700 Subject: [PATCH 06/23] update register --- .../views/registrasi/js/editjs.blade.php | 2 +- resources/views/registrasi/show.blade.php | 524 ++++++++++-------- 2 files changed, 299 insertions(+), 227 deletions(-) diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index db6bda7..b26360f 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -149,7 +149,7 @@ } else { - toastr.success(response.message); + //toastr.success(response.message); var url = "{{ route('registrasi.index') }}"; $(location).attr('href',url); } diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index f2d6e18..d599468 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -1,244 +1,316 @@ @extends('layouts.main') @section('breadcrumbs') - {{ Breadcrumbs::render(request()->route()->getName()) }} + {{ Breadcrumbs::render(request()->route()->getName()) }} @endsection @php - // $route = Route::currentRouteName(); - // dd($route); registrasi.show - $route = explode('.', Route::currentRouteName()); + // $route = Route::currentRouteName(); + // dd($route); registrasi.show + $route = explode('.', Route::currentRouteName()); @endphp @section('content') -
-
-
-

- Data Permohonan -

+
+
+
+

+ Data Permohonan +

- -
-
-
-

- Nomor Register Permohonan: -

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

+ Nomor Register Permohonan: +

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

- Pemohon: -

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

+ Pemohon: +

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

- Tujan Permohonan: -

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

+ Tujan Permohonan: +

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

- Detail Debutur -

-
-
-
-
- - - - - - - - - - - - - +
+
+

+ Detail Debutur +

+
+
+
+
+
- Name - - {{ $permohonan->debiture->name ?? "" }} -
- Email - - {{ $permohonan->debiture->email ?? "" }} -
- Phone - - {{ $permohonan->debiture->phone ?? "" }} -
+ + + + + + + + + + + + - - - - - - - - -
+ 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 ?? "" }} -
-
-
-
-
+ + + 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 -
-
-
+
+
+

+ Data Jaminan +

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

+ Registrasi +

+ +
+
+
+ + @method('PUT') + @csrf + +
+ +
+    + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+ + +
+
+
+ +
+
+
+
+
+ @endsection @include('lpj::registrasi.js.showjs') +@include('lpj::registrasi.js.editjs') From 5cc18fa0e16b77af9ea9f32e247efbf3f298ac99 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Thu, 3 Oct 2024 17:20:03 +0700 Subject: [PATCH 07/23] Memperbaiki KJPP create dan edit di bagian jenis kantor yang tadi nya relasi dengan cabang menjadi opsi manual --- resources/views/kjpp/create.blade.php | 32 +++++++++++++-------------- 1 file changed, 15 insertions(+), 17 deletions(-) diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index c03ab45..0fb62fc 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -53,23 +53,21 @@
@error('jenis_kantor') From 07c0276c342c3fce7586eb37a90f1c75b5fe10c2 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Thu, 3 Oct 2024 17:48:21 +0700 Subject: [PATCH 08/23] Membuat Sub Menu Data Penawaran dari Menu Tender part 4 --- app/Http/Controllers/TenderController.php | 13 +- app/Http/Requests/TenderPenawaranRequest.php | 18 +- ...24_10_03_073923_update_penawaran_table.php | 32 + ...24_10_03_074430_update_penawaran_table.php | 28 + module.json | 52 +- resources/views/penawaran/create.blade.php | 41 +- resources/views/penawaran/index.blade.php | 50 +- resources/views/penawaran/show.blade.php | 52 ++ routes/web.php | 841 +++++++++--------- 9 files changed, 614 insertions(+), 513 deletions(-) create mode 100644 database/migrations/2024_10_03_073923_update_penawaran_table.php create mode 100644 database/migrations/2024_10_03_074430_update_penawaran_table.php diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 6829346..4fca97d 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -55,9 +55,12 @@ class TenderController extends Controller $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; - $validated['nama_kjpp_sebelumnya'] = json_encode($request->input('nama_kjpp_sebelumnya')); + // Mengatasi null untuk nama_kjpp_sebelumnya, biaya_kjpp_sebelumnya, dan tanggal_penilaian_sebelumnya + $validated['nama_kjpp_sebelumnya'] = json_encode($request->input('nama_kjpp_sebelumnya') ?? []); + $validated['biaya_kjpp_sebelumnya'] = $request->input('biaya_kjpp_sebelumnya') ?? ''; + $validated['tanggal_penilaian_sebelumnya'] = $request->input('tanggal_penilaian_sebelumnya') ?? ''; - dd($validated); + // dd($validated); PenawaranTender::create($validated); @@ -77,7 +80,9 @@ class TenderController extends Controller public function penawaran_show($id) { $penawaran = PenawaranTender::find($id); - return view('lpj::penawaran.show', compact('id', 'penawaran')); + $kjpps = KJPP::find($id); + + return view('lpj::penawaran.show', compact('id', 'penawaran', 'kjpps')); } /** @@ -111,7 +116,7 @@ class TenderController extends Controller } // Retrieve data from the database - $query = PenawaranTender::query(); + $query = PenawaranTender::query()->where('status', '=', 'Registered'); // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { diff --git a/app/Http/Requests/TenderPenawaranRequest.php b/app/Http/Requests/TenderPenawaranRequest.php index 16ed5bc..63e0b8b 100644 --- a/app/Http/Requests/TenderPenawaranRequest.php +++ b/app/Http/Requests/TenderPenawaranRequest.php @@ -12,10 +12,10 @@ class TenderPenawaranRequest extends FormRequest public function rules(): array { $rules = [ - 'nama_kjpp_sebelumnya' => 'required|array', + 'nama_kjpp_sebelumnya' => 'nullable|array', 'nama_kjpp_sebelumnya.*' => 'exists:kjpp,name', - 'biaya_kjpp_sebelumnya' => 'required|numeric', - 'tanggal_penilaian_sebelumnya' => 'required', + 'biaya_kjpp_sebelumnya' => 'nullable|numeric', + 'tanggal_penilaian_sebelumnya' => 'nullable', 'nomor_registrasi' => 'required', 'tujuan_penilaian_kjpp_id' => 'required', 'jenis_laporan_id' => 'required', @@ -48,10 +48,6 @@ class TenderPenawaranRequest extends FormRequest 'code.required' => 'Kode Penawaran Wajib diisi!', 'code.max' => 'Kode Penawaran maksimal 255 huruf!', 'code.unique' => 'Kode Penawaran tidak boleh sama!', - 'nama_kjpp_sebelumnya.required' => 'Nama KJPP Sebelumnya Wajib diisi!', - 'biaya_kjpp_sebelumnya.required' => 'Biaya KJPP Sebelumnya Wajib diisi!', - 'biaya_kjpp_sebelumnya.numeric' => 'Biaya KJPP Sebelumnya harus berupa angka!', - 'tanggal_penilaian_sebelumnya.required' => 'Tanggal Penilaian Sebelumnya Wajib diisi!', 'nomor_registrasi.required' => 'Nomor Registrasi Wajib diisi!', 'tujuan_penilaian_kjpp_id.required' => 'Tujuan Penilaian KJPP Wajib diisi!', 'jenis_laporan_id.required' => 'Jenis Laporan Wajib diisi!', @@ -70,6 +66,14 @@ class TenderPenawaranRequest extends FormRequest if ($endDate < $startDate) { $validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.'); } + + // Validasi minimal 3 pilihan pada nama_kjpp_sebelumnya + $namaKjppSebelumnya = $this->input('nama_kjpp_sebelumnya', []); + + // Abaikan jika array kosong, tetapi validasi jika terisi kurang dari 3 item + if (!empty($namaKjppSebelumnya) && is_array($namaKjppSebelumnya) && count($namaKjppSebelumnya) < 3) { + $validator->errors()->add('nama_kjpp_sebelumnya', 'Nama KJPP Sebelumnya harus memiliki minimal 3 pilihan jika diisi.'); + } }); } } diff --git a/database/migrations/2024_10_03_073923_update_penawaran_table.php b/database/migrations/2024_10_03_073923_update_penawaran_table.php new file mode 100644 index 0000000..a22d315 --- /dev/null +++ b/database/migrations/2024_10_03_073923_update_penawaran_table.php @@ -0,0 +1,32 @@ +string('nama_kjpp_sebelumnya')->nullable()->change(); + $table->string('biaya_kjpp_sebelumnya')->nullable()->change(); + $table->datetime('tanggal_penilaian_sebelumnya')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->string('nama_kjpp_sebelumnya')->change(); + $table->string('biaya_kjpp_sebelumnya')->change(); + $table->datetime('tanggal_penilaian_sebelumnya')->change(); + }); + } +}; diff --git a/database/migrations/2024_10_03_074430_update_penawaran_table.php b/database/migrations/2024_10_03_074430_update_penawaran_table.php new file mode 100644 index 0000000..9ceb263 --- /dev/null +++ b/database/migrations/2024_10_03_074430_update_penawaran_table.php @@ -0,0 +1,28 @@ +text('catatan')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->text('catatan')->change(); + }); + } +}; diff --git a/module.json b/module.json index d3775b8..374c181 100644 --- a/module.json +++ b/module.json @@ -5,9 +5,7 @@ "description": "", "keywords": [], "priority": 0, - "providers": [ - "Modules\\Lpj\\Providers\\LpjServiceProvider" - ], + "providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"], "files": [], "menu": { "main": [ @@ -18,9 +16,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "administrator" - ] + "roles": ["administrator"] }, { "title": "Tender", @@ -29,9 +25,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "administrator" - ], + "roles": ["administrator"], "sub": [ { "title": "Data Penawaran", @@ -66,9 +60,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "administrator" - ] + "roles": ["administrator"] }, { "title": "Data Debitur", @@ -77,9 +69,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "administrator" - ] + "roles": ["administrator"] }, { "title": "Authorization", @@ -88,9 +78,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "administrator" - ] + "roles": ["administrator"] }, { "title": "Registrasi", @@ -99,9 +87,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["administrator"] }, { "title": "Assignment", @@ -110,9 +96,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["administrator"] }, { "title": "Activity", @@ -121,9 +105,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ] + "roles": ["administrator"] }, { "title": "Laporan", @@ -132,9 +114,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "administrator" - ] + "roles": ["administrator"] } ], "master": [ @@ -145,9 +125,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": [ - "Administrator" - ], + "roles": ["administrator"], "sub": [ { "title": "Cabang", @@ -197,6 +175,14 @@ "permission": "", "roles": [] }, + { + "title": "Jenis Laporan", + "path": "basicdata.jenis_laporan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [] + }, { "title": "Tujuan Penilaian", "path": "basicdata.tujuan-penilaian", diff --git a/resources/views/penawaran/create.blade.php b/resources/views/penawaran/create.blade.php index c494a4e..7f41fd6 100644 --- a/resources/views/penawaran/create.blade.php +++ b/resources/views/penawaran/create.blade.php @@ -29,7 +29,7 @@
+ class="flex w-full text-gray-600 font-medium text-sm input-custom" readonly> @error('nomor_registrasi') {{ $message }} @enderror @@ -40,7 +40,7 @@ Nomor Penawaran
- @error('code') {{ $message }} @@ -170,18 +170,22 @@
- +
+ + @error('status') + {{ $message }} + @enderror +
@endsection + +@push('styles') + +@endpush diff --git a/resources/views/penawaran/index.blade.php b/resources/views/penawaran/index.blade.php index 93b5ad2..31b95cc 100644 --- a/resources/views/penawaran/index.blade.php +++ b/resources/views/penawaran/index.blade.php @@ -90,38 +90,6 @@ 1]; } - +@endpush diff --git a/resources/views/teams/form.blade.php b/resources/views/teams/form.blade.php index b9569f0..ecd88c4 100644 --- a/resources/views/teams/form.blade.php +++ b/resources/views/teams/form.blade.php @@ -126,3 +126,4 @@
@endsection + diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 9b0a5a9..a2bebea 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -351,6 +351,10 @@ $trail->push('Activity activity'); }); + Breadcrumbs::for('activity.progres', function (BreadcrumbTrail $trail) { + $trail->push('Team activity'); + }); + Breadcrumbs::for('tender', function (BreadcrumbTrail $trail) { $trail->push('Tender'); }); diff --git a/routes/web.php b/routes/web.php index 248a223..f32bf45 100644 --- a/routes/web.php +++ b/routes/web.php @@ -389,6 +389,15 @@ Route::middleware(['auth'])->group(function () { Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); Route::get('senior', [ActivityController::class, 'senior'])->name('senior'); + + Route::name('progres.')->prefix('progres')->group(function () { + Route::get('/', [ActivityController::class, 'progres_activity'])->name('index'); + Route::get('/datatables/{id}', [ActivityController::class, 'dataTablesForActivity'])->name('datatables'); + + }); + + Route::get('/teams/{regionId}', [ActivityController::class, 'dataTablesForActivity']); + }); /** From 6134820480f32457d78778b9b353ecb7109124c0 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 4 Oct 2024 10:45:02 +0700 Subject: [PATCH 11/23] update mennu roles --- module.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/module.json b/module.json index 47e9b8e..7652469 100644 --- a/module.json +++ b/module.json @@ -117,7 +117,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "administrator","so" ] }, { From 0b5820375b30d721b41b648e5a896de203c26561 Mon Sep 17 00:00:00 2001 From: majid Date: Fri, 4 Oct 2024 10:58:52 +0700 Subject: [PATCH 12/23] penambahan menu aktivity --- module.json | 14 +- routes/web.php | 540 +++++++++++++++++++++++++------------------------ 2 files changed, 292 insertions(+), 262 deletions(-) diff --git a/module.json b/module.json index 47e9b8e..51e8689 100644 --- a/module.json +++ b/module.json @@ -117,9 +117,21 @@ "attributes": [], "permission": "", "roles": [ - "administrator" + "so" ] }, + { + "title": "Team Activity", + "path": "activity.progres", + "icon": "ki-filled ki-questionnaire-tablet text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "so" + ] + }, + { "title": "Activity", "path": "activity", diff --git a/routes/web.php b/routes/web.php index 6c9fd1c..258152b 100644 --- a/routes/web.php +++ b/routes/web.php @@ -13,7 +13,7 @@ use Modules\Lpj\Http\Controllers\IjinUsahaController; use Modules\Lpj\Http\Controllers\JenisDokumenController; use Modules\Lpj\Http\Controllers\JenisFasilitasKreditController; use Modules\Lpj\Http\Controllers\JenisJaminanController; - use Modules\Lpj\Http\Controllers\JenisLaporanController; +use Modules\Lpj\Http\Controllers\JenisLaporanController; use Modules\Lpj\Http\Controllers\JenisLegalitasJaminanController; use Modules\Lpj\Http\Controllers\JenisPenilaianController; use Modules\Lpj\Http\Controllers\KJPPController; @@ -26,110 +26,109 @@ use Modules\Lpj\Http\Controllers\StatusPermohonanController; use Modules\Lpj\Http\Controllers\TeamsController; use Modules\Lpj\Http\Controllers\TenderController; use Modules\Lpj\Http\Controllers\TujuanPenilaianController; - use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController; - - // use Modules\Lpj\Http\Controllers\ActivityController; +use Modules\Lpj\Http\Controllers\TujuanPenilaianKJPPController; +// use Modules\Lpj\Http\Controllers\ActivityController; use Modules\Lpj\Http\Controllers\SurveyorController; - /* - |-------------------------------------------------------------------------- - | Web Routes - |-------------------------------------------------------------------------- - | - | Here is where you can register web routes for your application. These - | routes are loaded by the RouteServiceProvider within a group which - | contains the "web" middleware group. Now create something great! - | - */ +/* + |-------------------------------------------------------------------------- + | Web Routes + |-------------------------------------------------------------------------- + | + | Here is where you can register web routes for your application. These + | routes are loaded by the RouteServiceProvider within a group which + | contains the "web" middleware group. Now create something great! + | + */ - Route::middleware(['auth'])->group(function () { - Route::name('basicdata.')->prefix('basic-data')->group(function () { - Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { - Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); - }); - Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); +Route::middleware(['auth'])->group(function () { + Route::name('basicdata.')->prefix('basic-data')->group(function () { + Route::name('jenis-fasilitas-kredit.')->prefix('jenis-fasilitas-kredit')->group(function () { + Route::get('restore/{id}', [JenisFasilitasKreditController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisFasilitasKreditController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [JenisFasilitasKreditController::class, 'export'])->name('export'); + }); + Route::resource('jenis-fasilitas-kredit', JenisFasilitasKreditController::class); - Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { - Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); - }); - Route::resource('jenis-legalitas-jaminan', JenisLegalitasJaminanController::class); + Route::name('jenis-legalitas-jaminan.')->prefix('jenis-legalitas-jaminan')->group(function () { + Route::get('restore/{id}', [JenisLegalitasJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisLegalitasJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [JenisLegalitasJaminanController::class, 'export'])->name('export'); + }); + 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'); - Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); - }); - Route::resource('tujuan-penilaian', TujuanPenilaianController::class); + Route::name('tujuan-penilaian.')->prefix('tujuan-penilaian')->group(function () { + Route::get('restore/{id}', [TujuanPenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [TujuanPenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [TujuanPenilaianController::class, 'export'])->name('export'); + }); + Route::resource('tujuan-penilaian', TujuanPenilaianController::class); - Route::name('tujuan_penilaian_kjpp.')->prefix('tujuan_penilaian_kjpp')->group(function () { - Route::get('datatables', [TujuanPenilaianKJPPController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [TujuanPenilaianKJPPController::class, 'export'])->name('export'); - }); - Route::resource('tujuan_penilaian_kjpp', TujuanPenilaianKJPPController::class); + Route::name('tujuan_penilaian_kjpp.')->prefix('tujuan_penilaian_kjpp')->group(function () { + Route::get('datatables', [TujuanPenilaianKJPPController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [TujuanPenilaianKJPPController::class, 'export'])->name('export'); + }); + Route::resource('tujuan_penilaian_kjpp', TujuanPenilaianKJPPController::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'])->name('datatables'); - Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); - }); - Route::resource('jenis-dokumen', JenisDokumenController::class); - Route::name('currency.')->prefix('mata-uang')->group(function () { - Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); - Route::get('datatables', [CurrencyController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [CurrencyController::class, 'export'])->name('export'); + Route::name('jenis-dokumen.')->prefix('jenis-dokumen')->group(function () { + Route::get('restore/{id}', [JenisDokumenController::class, 'restore'])->name('restore'); + Route::get('datatables', [JenisDokumenController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisDokumenController::class, 'export'])->name('export'); + }); + Route::resource('jenis-dokumen', JenisDokumenController::class); + Route::name('currency.')->prefix('mata-uang')->group(function () { + Route::get('restore/{id}', [CurrencyController::class, 'restore'])->name('restore'); + Route::get('datatables', [CurrencyController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [CurrencyController::class, 'export'])->name('export'); + }); + + Route::name('debitur.')->prefix('debitur')->group(function () { + 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('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('debitur.')->prefix('debitur')->group(function () { - 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('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); + Route::resource('debitur', DebitureController::class); - Route::name('branch.')->prefix('cabang')->group(function () { - Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); - Route::get('datatables', [BranchController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [BranchController::class, 'export'])->name('export'); - }); + Route::name('branch.')->prefix('cabang')->group(function () { + Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); + Route::get('datatables', [BranchController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [BranchController::class, 'export'])->name('export'); + }); Route::resource('cabang', BranchController::class, [ 'names' => [ @@ -143,45 +142,45 @@ use Modules\Lpj\Http\Controllers\SurveyorController; ], ]); - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); Route::name('region.')->prefix('region')->group(function () { Route::get('restore/{id}', [RegionController::class, 'restore'])->name('restore'); @@ -253,11 +252,11 @@ use Modules\Lpj\Http\Controllers\SurveyorController; ], ]); - Route::name('branch.')->prefix('cabang')->group(function () { - Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); - Route::get('datatables', [BranchController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [BranchController::class, 'export'])->name('export'); - }); + Route::name('branch.')->prefix('cabang')->group(function () { + Route::get('restore/{id}', [BranchController::class, 'restore'])->name('restore'); + Route::get('datatables', [BranchController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [BranchController::class, 'export'])->name('export'); + }); Route::resource('cabang', BranchController::class, [ 'names' => [ @@ -271,37 +270,37 @@ use Modules\Lpj\Http\Controllers\SurveyorController; ], ]); - Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { - Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); - Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); - }); - Route::resource('nilai-plafond', NilaiPlafondController::class); + Route::name('nilai-plafond.')->prefix('nilai-plafond')->group(function () { + Route::get('restore/{id}', [NilaiPlafondController::class, 'restore'])->name('restore'); + Route::get('datatables', [NilaiPlafondController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [NilaiPlafondController::class, 'export'])->name('export'); + }); + Route::resource('nilai-plafond', NilaiPlafondController::class); - Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); + Route::name('hubungan-pemilik-jaminan.')->prefix('hubungan-pemilik-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPemilikJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPemilikJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPemilikJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-pemilik-jaminan', HubunganPemilikJaminanController::class); - Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { - Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); - Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( - 'datatables', - ); - Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); - }); - Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); + Route::name('hubungan-penghuni-jaminan.')->prefix('hubungan-penghuni-jaminan')->group(function () { + Route::get('restore/{id}', [HubunganPenghuniJaminanController::class, 'restore'])->name('restore'); + Route::get('datatables', [HubunganPenghuniJaminanController::class, 'dataForDatatables'])->name( + 'datatables', + ); + Route::get('export', [HubunganPenghuniJaminanController::class, 'export'])->name('export'); + }); + Route::resource('hubungan-penghuni-jaminan', HubunganPenghuniJaminanController::class); - Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { - Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); - Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); - }); - Route::resource('arah-mata-angin', ArahMataAnginController::class); + Route::name('arah-mata-angin.')->prefix('arah-mata-angin')->group(function () { + Route::get('restore/{id}', [ArahMataAnginController::class, 'restore'])->name('restore'); + Route::get('datatables', [ArahMataAnginController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ArahMataAnginController::class, 'export'])->name('export'); + }); + Route::resource('arah-mata-angin', ArahMataAnginController::class); Route::name('jaminan.')->prefix('{id}/jaminan')->group(function () { Route::get('download/{dokumen}', [DokumenJaminanController::class, 'download'])->name('download'); @@ -322,68 +321,68 @@ use Modules\Lpj\Http\Controllers\SurveyorController; Route::delete('{pemilik}', [PemilikJaminanController::class, 'destroy'])->name('destroy'); }); - Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { - Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); - Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); - }); - Route::resource('status-permohonan', StatusPermohonanController::class); - - // Start Activity KJPP route - Route::name('kjpp.')->prefix('kjpp')->group(function () { - Route::get('datatables', [KJPPController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [KJPPController::class, 'export'])->name('export'); - }); - - Route::resource('kjpp', KJPPController::class); - // End Activity KJPP route - - // Start Activity Ijin Usaha route - Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { - Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); - }); - - Route::resource('ijin_usaha', IjinUsahaController::class); - // End Activity Ijin Usaha route - - // Start Activity Jenis Laporan route - Route::name('jenis_laporan.')->prefix('jenis_laporan')->group(function () { - Route::get('datatables', [JenisLaporanController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [JenisLaporanController::class, 'export'])->name('export'); - }); - - Route::resource('jenis_laporan', JenisLaporanController::class); - // End Activity Jenis Laporan route - + Route::name('status-permohonan.')->prefix('status-permohonan')->group(function () { + Route::get('restore/{id}', [StatusPermohonanController::class, 'restore'])->name('restore'); + Route::get('datatables', [StatusPermohonanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [StatusPermohonanController::class, 'export'])->name('export'); + }); + Route::resource('status-permohonan', StatusPermohonanController::class); + // Start Activity KJPP route + Route::name('kjpp.')->prefix('kjpp')->group(function () { + Route::get('datatables', [KJPPController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [KJPPController::class, 'export'])->name('export'); }); - 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'])->name('datatables'); - Route::get('export', [PermohonanController::class, 'export'])->name('export'); + Route::resource('kjpp', KJPPController::class); + // End Activity KJPP route + + // Start Activity Ijin Usaha route + Route::name('ijin_usaha.')->prefix('ijin_usaha')->group(function () { + Route::get('datatables', [IjinUsahaController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [IjinUsahaController::class, 'export'])->name('export'); }); + Route::resource('ijin_usaha', IjinUsahaController::class); + // End Activity Ijin Usaha route + + // Start Activity Jenis Laporan route + Route::name('jenis_laporan.')->prefix('jenis_laporan')->group(function () { + Route::get('datatables', [JenisLaporanController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [JenisLaporanController::class, 'export'])->name('export'); + }); + + Route::resource('jenis_laporan', JenisLaporanController::class); + // End Activity Jenis Laporan route + + + }); + + 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'])->name('datatables'); + Route::get('export', [PermohonanController::class, 'export'])->name('export'); + }); + 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::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'])->name('datatables'); - Route::get('export', [DebitureController::class, 'export'])->name('export'); + Route::name('debitur.')->prefix('debitur')->group(function () { + 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 () { @@ -408,59 +407,78 @@ use Modules\Lpj\Http\Controllers\SurveyorController; Route::resource('debitur', DebitureController::class); - Route::name('tender.')->prefix('tender')->group(function () { - // Penawaran - Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); - Route::get('penawaran/{id}/show', [TenderController::class, 'penawaran_show'])->name('penawaran.show'); - Route::get('penawaran/{id}/create', [TenderController::class, 'penawaran_create'])->name( - 'penawaran.createPenawaran', - ); - Route::post('penawaran/{id}/store', [TenderController::class, 'penawaran_store'])->name( - 'penawaran.storePenawaran', - ); - Route::post('penawaran/{id}/update', [TenderController::class, 'penawaran_store'])->name( - 'penawaran.updatePenawaran', - ); - Route::get('penawaran/exportPenawaran', [TenderController::class, 'exportPenawaran'])->name( - 'penawaran.exportPenawaran', - ); - Route::get('penawaran/datatables', [TenderController::class, 'datatablesPenawaran'])->name( - 'penawaran.datatables', - ); + Route::name('tender.')->prefix('tender')->group(function () { + // Penawaran + Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); + Route::get('penawaran/{id}/show', [TenderController::class, 'penawaran_show'])->name('penawaran.show'); + Route::get('penawaran/{id}/create', [TenderController::class, 'penawaran_create'])->name( + 'penawaran.createPenawaran', + ); + Route::post('penawaran/{id}/store', [TenderController::class, 'penawaran_store'])->name( + 'penawaran.storePenawaran', + ); + Route::post('penawaran/{id}/update', [TenderController::class, 'penawaran_store'])->name( + 'penawaran.updatePenawaran', + ); + Route::get('penawaran/exportPenawaran', [TenderController::class, 'exportPenawaran'])->name( + 'penawaran.exportPenawaran', + ); + Route::get('penawaran/datatables', [TenderController::class, 'datatablesPenawaran'])->name( + 'penawaran.datatables', + ); // Proses Penawaran Route::get('proses_penawaran', [TenderController::class, 'proses_penawaran_index'])->name( 'proses_penawaran.index', ); - // Penawaran Ulang - Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name( - 'penawaran_ulang.index', - ); - }); - - Route::name('penilaian.')->prefix('penilaian')->group(function () { - Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); - Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [PenilaianController::class, 'export'])->name('export'); - Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); - - Route::get('/', [PenilaianController::class, 'index'])->name('index'); - Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); - Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); - Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); - Route::post('create', [PenilaianController::class, 'create'])->name('create'); - Route::post('store', [PenilaianController::class, 'store'])->name('store'); - }); - - Route::name('activity.')->prefix('activity')->group(function () { - Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); - Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); - Route::get('export', [ActivityController::class, 'export'])->name('export'); - Route::get('/', [ActivityController::class, 'index'])->name('index'); - Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); - Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); - }); + // Penawaran Ulang + Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name( + 'penawaran_ulang.index', + ); }); - require __DIR__ . '/registrasi.php'; + Route::name('penilaian.')->prefix('penilaian')->group(function () { + Route::get('restore/{id}', [PenilaianController::class, 'restore'])->name('restore'); + Route::get('datatables', [PenilaianController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [PenilaianController::class, 'export'])->name('export'); + Route::get('/getUserTeams/{id}', [PenilaianController::class, 'getUserTeams']); + + Route::get('/', [PenilaianController::class, 'index'])->name('index'); + Route::get('{id}/assignment', [PenilaianController::class, 'assignment'])->name('assignment'); + Route::put('{id}', [PenilaianController::class, 'update'])->name('update'); + Route::put('revisi/{nomor_registrasi}', [PenilaianController::class, 'revisi'])->name('revisi'); + Route::post('create', [PenilaianController::class, 'create'])->name('create'); + Route::post('store', [PenilaianController::class, 'store'])->name('store'); + }); + + /** + * Route start activity + */ + + Route::name('activity.')->prefix('activity')->group(function () { + Route::get('restore/{id}', [ActivityController::class, 'restore'])->name('restore'); + Route::get('datatables', [ActivityController::class, 'dataForDatatables'])->name('datatables'); + Route::get('export', [ActivityController::class, 'export'])->name('export'); + Route::get('/', [ActivityController::class, 'index'])->name('index'); + + Route::get('/{id}/show', [ActivityController::class, 'show'])->name('show'); + Route::get('download/{id}', [ActivityController::class, 'download'])->name('download'); + Route::get('senior', [ActivityController::class, 'senior'])->name('senior'); + + Route::name('progres.')->prefix('progres')->group(function () { + Route::get('/', [ActivityController::class, 'progres_activity'])->name('index'); + Route::get('/datatables/{id}', [ActivityController::class, 'dataTablesForActivity'])->name('datatables'); + + }); + + Route::get('/teams/{regionId}', [ActivityController::class, 'dataTablesForActivity']); + + }); + + /** + * Route end activity + */ +}); + +require __DIR__ . '/registrasi.php'; From f0c2f873c4706b57310ed571a0ba07a510139e12 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Fri, 4 Oct 2024 17:25:41 +0700 Subject: [PATCH 13/23] Membuat Menu Tender di Data Penawaran: Tambah Data Penawaran dan Detail Data Penawaran --- app/Http/Controllers/TenderController.php | 61 +++++-- app/Http/Requests/TenderPenawaranRequest.php | 17 +- app/Models/PenawaranDetailTender.php | 19 +++ ...24_10_04_072406_update_penawaran_table.php | 28 +++ ...4_080210_update_detail_penawaran_table.php | 32 ++++ module.json | 8 - resources/views/penawaran/create.blade.php | 143 ++++++++-------- resources/views/penawaran/index.blade.php | 12 +- resources/views/penawaran/show.blade.php | 160 +++++++++++++++--- 9 files changed, 341 insertions(+), 139 deletions(-) create mode 100644 app/Models/PenawaranDetailTender.php create mode 100644 database/migrations/2024_10_04_072406_update_penawaran_table.php create mode 100644 database/migrations/2024_10_04_080210_update_detail_penawaran_table.php diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 4fca97d..2e26ed1 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -2,19 +2,22 @@ namespace Modules\Lpj\Http\Controllers; +use Exception; use Illuminate\Http\Request; +use Modules\Lpj\Models\KJPP; use Illuminate\Http\Response; use Modules\Lpj\Models\Penawaran; +use Illuminate\Support\Facades\DB; +use Modules\Lpj\Models\Permohonan; use App\Http\Controllers\Controller; use Maatwebsite\Excel\Facades\Excel; -use Modules\Lpj\Models\PenawaranTender; -use Modules\Lpj\Exports\PenawaranTenderExport; -use Modules\Lpj\Http\Requests\TenderPenawaranRequest; use Modules\Lpj\Models\JenisLaporan; -use Modules\Lpj\Models\KJPP; -use Modules\Lpj\Models\Permohonan; +use Modules\Lpj\Models\PenawaranTender; use Modules\Lpj\Models\StatusPermohonan; use Modules\Lpj\Models\TujuanPenilaianKJPP; +use Modules\Lpj\Models\PenawaranDetailTender; +use Modules\Lpj\Exports\PenawaranTenderExport; +use Modules\Lpj\Http\Requests\TenderPenawaranRequest; class TenderController extends Controller { @@ -38,9 +41,11 @@ class TenderController extends Controller $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); $jenis_laporan = JenisLaporan::all(); - $kjpp = KJPP::all(); - return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id')); + $kjpps = PenawaranDetailTender::pluck('kjpp_rekanan_id')->toArray(); + $kjpp = KJPP::whereNotIn('id', $kjpps)->get(); + + return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id', 'kjpps')); } /** @@ -50,27 +55,42 @@ class TenderController extends Controller { $validated = $request->validated(); - if ($validated) { + // dd($validated); + + DB::beginTransaction(); + + try { $penawaran = PenawaranTender::find($id); $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; - // Mengatasi null untuk nama_kjpp_sebelumnya, biaya_kjpp_sebelumnya, dan tanggal_penilaian_sebelumnya - $validated['nama_kjpp_sebelumnya'] = json_encode($request->input('nama_kjpp_sebelumnya') ?? []); - $validated['biaya_kjpp_sebelumnya'] = $request->input('biaya_kjpp_sebelumnya') ?? ''; - $validated['tanggal_penilaian_sebelumnya'] = $request->input('tanggal_penilaian_sebelumnya') ?? ''; + $validated['status'] = $request->input('status') ?? 'Tender'; + // dd($validated['status']); - // dd($validated); + $penawaranId = PenawaranTender::create($validated); - PenawaranTender::create($validated); + $kjpps = $request->input('kjpp', []); + + // loop untuk insert data users ke tabel teams_users + foreach ($kjpps as $kjpp) { + PenawaranDetailTender::create([ + 'penawaran_id' => $penawaranId->id, + 'kjpp_rekanan_id' => $kjpp + ]); + } + + // Commit the transaction + DB::commit(); return redirect() ->route('tender.penawaran.index') ->with('success', 'Data Penawaran created successfully'); - } else { + } catch (Exception $e) { + DB::rollBack(); + return redirect() ->route('tender.penawaran.createPenawaran', $id) - ->with('error', 'Validation failed'); + ->with('error', 'Validation failed: ' . $e); } } @@ -80,9 +100,14 @@ class TenderController extends Controller public function penawaran_show($id) { $penawaran = PenawaranTender::find($id); - $kjpps = KJPP::find($id); + $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $id)->pluck('kjpp_rekanan_id')->toArray(); + $kjpps = KJPP::whereIn('id', $detail_penawaran)->get(); + $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get(); + $jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get(); - return view('lpj::penawaran.show', compact('id', 'penawaran', 'kjpps')); + // dd($kjpps); + + return view('lpj::penawaran.show', compact('id', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan')); } /** diff --git a/app/Http/Requests/TenderPenawaranRequest.php b/app/Http/Requests/TenderPenawaranRequest.php index 63e0b8b..3ea1309 100644 --- a/app/Http/Requests/TenderPenawaranRequest.php +++ b/app/Http/Requests/TenderPenawaranRequest.php @@ -12,17 +12,17 @@ class TenderPenawaranRequest extends FormRequest public function rules(): array { $rules = [ - 'nama_kjpp_sebelumnya' => 'nullable|array', - 'nama_kjpp_sebelumnya.*' => 'exists:kjpp,name', + 'nama_kjpp_sebelumnya' => 'nullable', 'biaya_kjpp_sebelumnya' => 'nullable|numeric', 'tanggal_penilaian_sebelumnya' => 'nullable', 'nomor_registrasi' => 'required', + 'kjpp.*' => 'exists:kjpp,id', 'tujuan_penilaian_kjpp_id' => 'required', 'jenis_laporan_id' => 'required', 'start_date' => 'required', 'end_date' => 'required', 'catatan' => 'nullable', - 'status' => 'required' + 'status' => 'nullable' ]; if ($this->method() == 'PUT') { @@ -53,7 +53,6 @@ class TenderPenawaranRequest extends FormRequest 'jenis_laporan_id.required' => 'Jenis Laporan Wajib diisi!', 'start_date.required' => 'Tanggal Awal Wajib diisi!', 'end_date.required' => 'Tanggal Akhir Wajib diisi!', - 'status.required' => 'Status Wajib diisi!' ]; } @@ -67,12 +66,12 @@ class TenderPenawaranRequest extends FormRequest $validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.'); } - // Validasi minimal 3 pilihan pada nama_kjpp_sebelumnya - $namaKjppSebelumnya = $this->input('nama_kjpp_sebelumnya', []); + // Validasi minimal 3 pilihan pada nama_kjpp + $namaKjpp = $this->input('kjpp', []); - // Abaikan jika array kosong, tetapi validasi jika terisi kurang dari 3 item - if (!empty($namaKjppSebelumnya) && is_array($namaKjppSebelumnya) && count($namaKjppSebelumnya) < 3) { - $validator->errors()->add('nama_kjpp_sebelumnya', 'Nama KJPP Sebelumnya harus memiliki minimal 3 pilihan jika diisi.'); + // jika terisi kurang dari 3 item + if (is_array($namaKjpp) && count($namaKjpp) < 3) { + $validator->errors()->add('kjpp', 'Nama KJPP Sebelumnya harus memiliki minimal 3 pilihan jika diisi.'); } }); } diff --git a/app/Models/PenawaranDetailTender.php b/app/Models/PenawaranDetailTender.php new file mode 100644 index 0000000..85b2532 --- /dev/null +++ b/app/Models/PenawaranDetailTender.php @@ -0,0 +1,19 @@ +string('status')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->string('status')->change(); + }); + } +}; diff --git a/database/migrations/2024_10_04_080210_update_detail_penawaran_table.php b/database/migrations/2024_10_04_080210_update_detail_penawaran_table.php new file mode 100644 index 0000000..25e6d73 --- /dev/null +++ b/database/migrations/2024_10_04_080210_update_detail_penawaran_table.php @@ -0,0 +1,32 @@ +string('biaya_penawaran')->nullable()->change(); + $table->string('attachment')->nullable()->change(); + $table->string('dokumen_persetujuan')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_penawaran', function (Blueprint $table) { + $table->string('biaya_penawaran')->change(); + $table->string('attachment')->change(); + $table->string('dokumen_persetujuan')->change(); + }); + } +}; diff --git a/module.json b/module.json index 14514c4..7222a11 100644 --- a/module.json +++ b/module.json @@ -42,14 +42,6 @@ "attributes": [], "permission": "", "roles": [] - }, - { - "title": "Data Penawaran Ulang", - "path": "tender.penawaran_ulang", - "classes": "", - "attributes": [], - "permission": "", - "roles": [] } ] }, diff --git a/resources/views/penawaran/create.blade.php b/resources/views/penawaran/create.blade.php index 7f41fd6..7891851 100644 --- a/resources/views/penawaran/create.blade.php +++ b/resources/views/penawaran/create.blade.php @@ -28,11 +28,34 @@ Nomor Registrasi
- - @error('nomor_registrasi') - {{ $message }} - @enderror + +
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+
@@ -49,44 +72,22 @@
- + @foreach ($kjpp as $row) - + @if (isset($kjpp)) + + @endif @endforeach - @error('nama_kjpp_sebelumnya') - {{ $message }} - @enderror -
-
-
- -
- - @error('biaya_kjpp_sebelumnya') - {{ $message }} - @enderror -
- -
- - @error('tanggal_penilaian_sebelumnya') + @error('kjpp') {{ $message }} @enderror
@@ -113,6 +114,39 @@ {{ $message }} @enderror
+
+
+ +
+ + @error('start_date') + {{ $message }} + @enderror +
+ - +
+ + @error('end_date') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('catatan') + {{ $message }} + @enderror +
+
+
@@ -137,39 +171,8 @@
-
- - @error('start_date') - {{ $message }} - @enderror -
- -
- - @error('end_date') - {{ $message }} - @enderror -
-
-
- -
- - @error('catatan') - {{ $message }} - @enderror -
-
-
-
+
+
+
+ +
+ +
+
+
+ +
+ +
+ +
+ +
+
+
+ +
+ + @error('code') + {{ $message }} + @enderror +
+
+
+ +
+ + + @error('kjpp') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('tujuan_penilaian_kjpp_id') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('start_date') + {{ $message }} + @enderror +
+ - +
+ + @error('end_date') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('catatan') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('jenis_laporan_id') + {{ $message }} + @enderror +
+
+
+ +
+ + @error('status') + {{ $message }} + @enderror +
+
+ +
+ +
+
+
+ +
+@endsection + +@push('styles') + +@endpush diff --git a/resources/views/penawaran/show.blade.php b/resources/views/penawaran/show.blade.php index f18f7ff..9716e4f 100644 --- a/resources/views/penawaran/show.blade.php +++ b/resources/views/penawaran/show.blade.php @@ -44,6 +44,8 @@ Detail Penawaran
+ Penawaran Ulang Penawaran push('Basic Data'); - }); - - Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index')); - }); - - Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-fasilitas-kredit'); - $trail->push('Tambah Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.create')); - }); - - Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-fasilitas-kredit'); - $trail->push('Edit Jenis Fasilitas Kredit'); - }); - - Breadcrumbs::for('basicdata.jenis-legalitas-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.index')); - }); - - Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-legalitas-jaminan'); - $trail->push('Tambah Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.create')); - }); - - Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-legalitas-jaminan'); - $trail->push('Edit Jenis Legalitas Jaminan'); - }); - - Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $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 Aset', route('basicdata.jenis-jaminan.create')); - }); - - Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-jaminan'); - $trail->push('Edit Jenis Aset'); - }); - - Breadcrumbs::for('basicdata.jenis_laporan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Laporan', route('basicdata.jenis_laporan.index')); - }); - - Breadcrumbs::for('basicdata.jenis_laporan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis_laporan'); - $trail->push('Tambah Jenis Laporan', route('basicdata.jenis_laporan.create')); - }); - - Breadcrumbs::for('basicdata.jenis_laporan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis_laporan'); - $trail->push('Edit Jenis Laporan'); - }); - - Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Tujuan Penilaian', route('basicdata.tujuan-penilaian.index')); - }); - - Breadcrumbs::for('basicdata.tujuan-penilaian.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan-penilaian'); - $trail->push('Tambah Tujuan Penilaian', route('basicdata.tujuan-penilaian.create')); - }); - - Breadcrumbs::for('basicdata.tujuan-penilaian.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan-penilaian'); - $trail->push('Edit Tujuan Penilaian'); - }); - - Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.index')); - }); - - Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan_penilaian_kjpp'); - $trail->push('Tambah Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.create')); - }); - - Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.tujuan_penilaian_kjpp'); - $trail->push('Edit Tujuan Penilaian KJPP'); - }); - - Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index')); - }); - - Breadcrumbs::for('basicdata.jenis-dokumen.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-dokumen'); - $trail->push('Tambah Jenis Dokumen', route('basicdata.jenis-dokumen.create')); - }); - - Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-dokumen'); - $trail->push('Edit Jenis Dokumen'); - }); - - - Breadcrumbs::for('basicdata.currency', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Mata Uang', route('basicdata.currency.index')); - }); - - Breadcrumbs::for('basicdata.currency.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.currency'); - $trail->push('Tambah Mata Uang', route('basicdata.currency.create')); - }); - - Breadcrumbs::for('basicdata.currency.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.currency'); - $trail->push('Edit Mata Uang'); - }); - - Breadcrumbs::for('basicdata.branch', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Cabang', route('basicdata.branch.index')); - }); - - Breadcrumbs::for('basicdata.branch.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.branch'); - $trail->push('Tambah Cabang', route('basicdata.branch.create')); - }); - - Breadcrumbs::for('basicdata.branch.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.branch'); - $trail->push('Edit Cabang'); - }); - - Breadcrumbs::for('basicdata.nilai-plafond', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Nilai Plafond', route('basicdata.nilai-plafond.index')); - }); - - Breadcrumbs::for('basicdata.nilai-plafond.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.nilai-plafond'); - $trail->push('Tambah Nilai Plafond', route('basicdata.nilai-plafond.create')); - }); - - Breadcrumbs::for('basicdata.nilai-plafond.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.nilai-plafond'); - $trail->push('Edit Nilai Plafond'); - }); - - Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.index')); - }); - - Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-pemilik-jaminan'); - $trail->push('Tambah Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.create')); - }); - - Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-pemilik-jaminan'); - $trail->push('Edit Hubungan Pemilik Jaminan'); - }); - - Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.index')); - }); - - Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Tambah Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.create')); - }); - - Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Edit Hubungan Penghuni Jaminan'); - }); - - Breadcrumbs::for('basicdata.arah-mata-angin', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Arah Mata Angin', route('basicdata.arah-mata-angin.index')); - }); - - Breadcrumbs::for('basicdata.arah-mata-angin.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.arah-mata-angin'); - $trail->push('Tambah Arah Mata Angin', route('basicdata.arah-mata-angin.create')); - }); - - Breadcrumbs::for('basicdata.arah-mata-angin.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.hubungan-penghuni-jaminan'); - $trail->push('Edit Arah Mata Angin'); - }); - - Breadcrumbs::for('basicdata.status-permohonan', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Status Permohonan', route('basicdata.status-permohonan.index')); - }); - - Breadcrumbs::for('basicdata.status-permohonan.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.status-permohonan'); - $trail->push('Tambah Status Permohonan', route('basicdata.status-permohonan.create')); - }); - - Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.status-permohonan'); - $trail->push('Edit Status Permohonan'); - }); - - // KJPP - Breadcrumbs::for('basicdata.kjpp', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('KJPP', route('basicdata.kjpp.index')); - }); - - Breadcrumbs::for('basicdata.kjpp.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.kjpp'); - $trail->push('Tambah KJPP', route('basicdata.kjpp.create')); - }); - - Breadcrumbs::for('basicdata.kjpp.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.kjpp'); - $trail->push('Edit KJPP'); - }); - - Breadcrumbs::for('basicdata.kjpp.show', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.kjpp'); - $trail->push('Show KJPP'); - }); - // End KJPP - - // Ijin Usaha - Breadcrumbs::for('basicdata.ijin_usaha', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Ijin Usaha', route('basicdata.ijin_usaha.index')); - }); - - Breadcrumbs::for('basicdata.ijin_usaha.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.ijin_usaha'); - $trail->push('Tambah Ijin Usaha', route('basicdata.ijin_usaha.create')); - }); - - Breadcrumbs::for('basicdata.ijin_usaha.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.ijin_usaha'); - $trail->push('Edit Ijin Usaha'); - }); - - Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { - $trail->push('Debitur', route('debitur.index')); - }); - - Breadcrumbs::for('debitur.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Tambah Debitur', route('debitur.create')); - }); - - Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Debitur'); - }); - - Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Jaminan Debitur'); - }); - - Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan.index'); - $trail->push('Tambah Data Jaminan Debitur'); - }); - - Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.jaminan.index'); - $trail->push('Edit Data Jaminan Debitur'); - }); - - - Breadcrumbs::for('debitur.pemilik.index', function (BreadcrumbTrail $trail) { - $trail->parent('debitur'); - $trail->push('Data Pemilik Jaminan Debitur'); - }); - - Breadcrumbs::for('debitur.pemilik.create', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.pemilik.index'); - $trail->push('Tambah Data Pemilik Jaminan Debitur'); - }); - - Breadcrumbs::for('debitur.pemilik.edit', function (BreadcrumbTrail $trail) { - $trail->parent('debitur.pemilik.index'); - $trail->push('Edit Data Pemilik Jaminan Debitur'); - }); - - Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) { - $trail->push('Permohonan', route('permohonan.index')); - }); - - Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) { - $trail->parent('permohonan.index'); - $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('basicdata.region', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Region', route('basicdata.region.index')); - }); - Breadcrumbs::for('basicdata.region.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.region'); - $trail->push('Tambah Region', route('basicdata.region.create')); - }); - Breadcrumbs::for('basicdata.region.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.region'); - $trail->push('Edit Region'); - }); - - Breadcrumbs::for('basicdata.teams', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Team', route('basicdata.teams.index')); - }); - Breadcrumbs::for('basicdata.teams.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.teams'); - $trail->push('Tambah Team', route('basicdata.teams.create')); - }); - - Breadcrumbs::for('basicdata.teams.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.teams'); - $trail->push('Edit Team'); - }); - - - Breadcrumbs::for('basicdata.jenis-penilaian', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('Jenis Penilaian', route('basicdata.jenis-penilaian.index')); - }); - Breadcrumbs::for('basicdata.jenis-penilaian.create', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-penilaian'); - $trail->push('Tambah Jenis Penilaian', route('basicdata.jenis-penilaian.create')); - }); - - Breadcrumbs::for('basicdata.jenis-penilaian.edit', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata.jenis-penilaian'); - $trail->push('Edit Jenis Penilaian'); - }); - - Breadcrumbs::for('penilaian', function (BreadcrumbTrail $trail) { - $trail->push('Penilaian', route('penilaian.index')); - }); - Breadcrumbs::for('penilaian.assignment', function (BreadcrumbTrail $trail) { - $trail->parent('penilaian'); - $trail->push('Assignment'); - }); - - 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'); - }); - - Breadcrumbs::for('activity', function (BreadcrumbTrail $trail) { - $trail->push('Activity', route('activity.index')); - }); - - Breadcrumbs::for('activity.show', function (BreadcrumbTrail $trail) { - $trail->parent('activity'); - $trail->push('Activity activity'); - }); - - Breadcrumbs::for('tender', function (BreadcrumbTrail $trail) { - $trail->push('Tender'); - }); - - Breadcrumbs::for('tender.penawaran', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Penawaran', route('tender.penawaran.index')); - }); - - Breadcrumbs::for('tender.penawaran.show', function (BreadcrumbTrail $trail, $id) { - $trail->parent('tender'); - $trail->push('Detail Penawaran', route('tender.penawaran.show', $id)); - }); - - Breadcrumbs::for('tender.penawaran.createPenawaran', function (BreadcrumbTrail $trail, $id) { - $trail->parent('tender.penawaran'); - $trail->push('Tambah Data Penawaran', route('tender.penawaran.createPenawaran', $id)); - }); - - Breadcrumbs::for('tender.proses.penawaran', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Proses Penawaran', route('tender.proses_penawaran.index')); - }); - - - Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Penawaran Ulang', route('tender.penawaran_ulang.index')); - }); - - Breadcrumbs::for('registrasi', function (BreadcrumbTrail $trail) { - $trail->push('Registrasi', route('registrasi.index')); - }); - - Breadcrumbs::for('registrasi.edit', function (BreadcrumbTrail $trail) { - $trail->parent('registrasi'); - $trail->push('Tambah Registrasi'); - }); - - Breadcrumbs::for('registrasi.show', function (BreadcrumbTrail $trail) { - $trail->parent('registrasi'); - $trail->push('Detail Permohona'); - }); +use Diglactic\Breadcrumbs\Breadcrumbs; +use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail; + +Breadcrumbs::for('basicdata', function (BreadcrumbTrail $trail) { + $trail->push('Basic Data'); +}); + +Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.index')); +}); + +Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-fasilitas-kredit'); + $trail->push('Tambah Jenis Fasilitas Kredit', route('basicdata.jenis-fasilitas-kredit.create')); +}); + +Breadcrumbs::for('basicdata.jenis-fasilitas-kredit.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-fasilitas-kredit'); + $trail->push('Edit Jenis Fasilitas Kredit'); +}); + +Breadcrumbs::for('basicdata.jenis-legalitas-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.index')); +}); + +Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-legalitas-jaminan'); + $trail->push('Tambah Jenis Legalitas Jaminan', route('basicdata.jenis-legalitas-jaminan.create')); +}); + +Breadcrumbs::for('basicdata.jenis-legalitas-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-legalitas-jaminan'); + $trail->push('Edit Jenis Legalitas Jaminan'); +}); + +Breadcrumbs::for('basicdata.jenis-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $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 Aset', route('basicdata.jenis-jaminan.create')); +}); + +Breadcrumbs::for('basicdata.jenis-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-jaminan'); + $trail->push('Edit Jenis Aset'); +}); + +Breadcrumbs::for('basicdata.jenis_laporan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Laporan', route('basicdata.jenis_laporan.index')); +}); + +Breadcrumbs::for('basicdata.jenis_laporan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis_laporan'); + $trail->push('Tambah Jenis Laporan', route('basicdata.jenis_laporan.create')); +}); + +Breadcrumbs::for('basicdata.jenis_laporan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis_laporan'); + $trail->push('Edit Jenis Laporan'); +}); + +Breadcrumbs::for('basicdata.tujuan-penilaian', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Tujuan Penilaian', route('basicdata.tujuan-penilaian.index')); +}); + +Breadcrumbs::for('basicdata.tujuan-penilaian.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan-penilaian'); + $trail->push('Tambah Tujuan Penilaian', route('basicdata.tujuan-penilaian.create')); +}); + +Breadcrumbs::for('basicdata.tujuan-penilaian.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan-penilaian'); + $trail->push('Edit Tujuan Penilaian'); +}); + +Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.index')); +}); + +Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan_penilaian_kjpp'); + $trail->push('Tambah Tujuan Penilaian KJPP', route('basicdata.tujuan_penilaian_kjpp.create')); +}); + +Breadcrumbs::for('basicdata.tujuan_penilaian_kjpp.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.tujuan_penilaian_kjpp'); + $trail->push('Edit Tujuan Penilaian KJPP'); +}); + +Breadcrumbs::for('basicdata.jenis-dokumen', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Dokumen', route('basicdata.jenis-dokumen.index')); +}); + +Breadcrumbs::for('basicdata.jenis-dokumen.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-dokumen'); + $trail->push('Tambah Jenis Dokumen', route('basicdata.jenis-dokumen.create')); +}); + +Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-dokumen'); + $trail->push('Edit Jenis Dokumen'); +}); + + +Breadcrumbs::for('basicdata.currency', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Mata Uang', route('basicdata.currency.index')); +}); + +Breadcrumbs::for('basicdata.currency.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.currency'); + $trail->push('Tambah Mata Uang', route('basicdata.currency.create')); +}); + +Breadcrumbs::for('basicdata.currency.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.currency'); + $trail->push('Edit Mata Uang'); +}); + +Breadcrumbs::for('basicdata.branch', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Cabang', route('basicdata.branch.index')); +}); + +Breadcrumbs::for('basicdata.branch.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.branch'); + $trail->push('Tambah Cabang', route('basicdata.branch.create')); +}); + +Breadcrumbs::for('basicdata.branch.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.branch'); + $trail->push('Edit Cabang'); +}); + +Breadcrumbs::for('basicdata.nilai-plafond', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Nilai Plafond', route('basicdata.nilai-plafond.index')); +}); + +Breadcrumbs::for('basicdata.nilai-plafond.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.nilai-plafond'); + $trail->push('Tambah Nilai Plafond', route('basicdata.nilai-plafond.create')); +}); + +Breadcrumbs::for('basicdata.nilai-plafond.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.nilai-plafond'); + $trail->push('Edit Nilai Plafond'); +}); + +Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.index')); +}); + +Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-pemilik-jaminan'); + $trail->push('Tambah Hubungan Pemilik Jaminan', route('basicdata.hubungan-pemilik-jaminan.create')); +}); + +Breadcrumbs::for('basicdata.hubungan-pemilik-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-pemilik-jaminan'); + $trail->push('Edit Hubungan Pemilik Jaminan'); +}); + +Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.index')); +}); + +Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Tambah Hubungan Penghuni Jaminan', route('basicdata.hubungan-penghuni-jaminan.create')); +}); + +Breadcrumbs::for('basicdata.hubungan-penghuni-jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Edit Hubungan Penghuni Jaminan'); +}); + +Breadcrumbs::for('basicdata.arah-mata-angin', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Arah Mata Angin', route('basicdata.arah-mata-angin.index')); +}); + +Breadcrumbs::for('basicdata.arah-mata-angin.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.arah-mata-angin'); + $trail->push('Tambah Arah Mata Angin', route('basicdata.arah-mata-angin.create')); +}); + +Breadcrumbs::for('basicdata.arah-mata-angin.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.hubungan-penghuni-jaminan'); + $trail->push('Edit Arah Mata Angin'); +}); + +Breadcrumbs::for('basicdata.status-permohonan', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Status Permohonan', route('basicdata.status-permohonan.index')); +}); + +Breadcrumbs::for('basicdata.status-permohonan.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.status-permohonan'); + $trail->push('Tambah Status Permohonan', route('basicdata.status-permohonan.create')); +}); + +Breadcrumbs::for('basicdata.status-permohonan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.status-permohonan'); + $trail->push('Edit Status Permohonan'); +}); + +// KJPP +Breadcrumbs::for('basicdata.kjpp', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('KJPP', route('basicdata.kjpp.index')); +}); + +Breadcrumbs::for('basicdata.kjpp.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Tambah KJPP', route('basicdata.kjpp.create')); +}); + +Breadcrumbs::for('basicdata.kjpp.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Edit KJPP'); +}); + +Breadcrumbs::for('basicdata.kjpp.show', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.kjpp'); + $trail->push('Show KJPP'); +}); +// End KJPP + +// Ijin Usaha +Breadcrumbs::for('basicdata.ijin_usaha', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Ijin Usaha', route('basicdata.ijin_usaha.index')); +}); + +Breadcrumbs::for('basicdata.ijin_usaha.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.ijin_usaha'); + $trail->push('Tambah Ijin Usaha', route('basicdata.ijin_usaha.create')); +}); + +Breadcrumbs::for('basicdata.ijin_usaha.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.ijin_usaha'); + $trail->push('Edit Ijin Usaha'); +}); + +Breadcrumbs::for('debitur', function (BreadcrumbTrail $trail) { + $trail->push('Debitur', route('debitur.index')); +}); + +Breadcrumbs::for('debitur.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Tambah Debitur', route('debitur.create')); +}); + +Breadcrumbs::for('debitur.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Debitur'); +}); + +Breadcrumbs::for('debitur.jaminan.index', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Jaminan Debitur'); +}); + +Breadcrumbs::for('debitur.jaminan.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.jaminan.index'); + $trail->push('Tambah Data Jaminan Debitur'); +}); + +Breadcrumbs::for('debitur.jaminan.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.jaminan.index'); + $trail->push('Edit Data Jaminan Debitur'); +}); + + +Breadcrumbs::for('debitur.pemilik.index', function (BreadcrumbTrail $trail) { + $trail->parent('debitur'); + $trail->push('Data Pemilik Jaminan Debitur'); +}); + +Breadcrumbs::for('debitur.pemilik.create', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.pemilik.index'); + $trail->push('Tambah Data Pemilik Jaminan Debitur'); +}); + +Breadcrumbs::for('debitur.pemilik.edit', function (BreadcrumbTrail $trail) { + $trail->parent('debitur.pemilik.index'); + $trail->push('Edit Data Pemilik Jaminan Debitur'); +}); + +Breadcrumbs::for('permohonan.index', function (BreadcrumbTrail $trail) { + $trail->push('Permohonan', route('permohonan.index')); +}); + +Breadcrumbs::for('permohonan.create', function (BreadcrumbTrail $trail) { + $trail->parent('permohonan.index'); + $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('basicdata.region', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Region', route('basicdata.region.index')); +}); +Breadcrumbs::for('basicdata.region.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.region'); + $trail->push('Tambah Region', route('basicdata.region.create')); +}); +Breadcrumbs::for('basicdata.region.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.region'); + $trail->push('Edit Region'); +}); + +Breadcrumbs::for('basicdata.teams', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Team', route('basicdata.teams.index')); +}); +Breadcrumbs::for('basicdata.teams.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.teams'); + $trail->push('Tambah Team', route('basicdata.teams.create')); +}); + +Breadcrumbs::for('basicdata.teams.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.teams'); + $trail->push('Edit Team'); +}); + + +Breadcrumbs::for('basicdata.jenis-penilaian', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('Jenis Penilaian', route('basicdata.jenis-penilaian.index')); +}); +Breadcrumbs::for('basicdata.jenis-penilaian.create', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-penilaian'); + $trail->push('Tambah Jenis Penilaian', route('basicdata.jenis-penilaian.create')); +}); + +Breadcrumbs::for('basicdata.jenis-penilaian.edit', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata.jenis-penilaian'); + $trail->push('Edit Jenis Penilaian'); +}); + +Breadcrumbs::for('penilaian', function (BreadcrumbTrail $trail) { + $trail->push('Penilaian', route('penilaian.index')); +}); +Breadcrumbs::for('penilaian.assignment', function (BreadcrumbTrail $trail) { + $trail->parent('penilaian'); + $trail->push('Assignment'); +}); + +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'); +}); + +Breadcrumbs::for('activity', function (BreadcrumbTrail $trail) { + $trail->push('Activity', route('activity.index')); +}); + +Breadcrumbs::for('activity.show', function (BreadcrumbTrail $trail) { + $trail->parent('activity'); + $trail->push('Activity activity'); +}); + +Breadcrumbs::for('tender', function (BreadcrumbTrail $trail) { + $trail->push('Tender'); +}); + +Breadcrumbs::for('tender.penawaran', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran', route('tender.penawaran.index')); +}); + +Breadcrumbs::for('tender.penawaran.editPenawaran', function (BreadcrumbTrail $trail, $id) { + $trail->parent('tender.penawaran'); + $trail->push('Data Penawaran Ulang', route('tender.penawaran.editPenawaran', $id)); +}); + +Breadcrumbs::for('tender.penawaran.show', function (BreadcrumbTrail $trail, $id) { + $trail->parent('tender.penawaran'); + $trail->push('Detail Penawaran', route('tender.penawaran.show', $id)); +}); + +Breadcrumbs::for('tender.penawaran.createPenawaran', function (BreadcrumbTrail $trail, $id) { + $trail->parent('tender.penawaran'); + $trail->push('Tambah Data Penawaran', route('tender.penawaran.createPenawaran', $id)); +}); + +Breadcrumbs::for('tender.proses.penawaran', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Proses Penawaran', route('tender.proses_penawaran.index')); +}); + + +Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran Ulang', route('tender.penawaran_ulang.index')); +}); + +Breadcrumbs::for('registrasi', function (BreadcrumbTrail $trail) { + $trail->push('Registrasi', route('registrasi.index')); +}); + +Breadcrumbs::for('registrasi.edit', function (BreadcrumbTrail $trail) { + $trail->parent('registrasi'); + $trail->push('Tambah Registrasi'); +}); + +Breadcrumbs::for('registrasi.show', function (BreadcrumbTrail $trail) { + $trail->parent('registrasi'); + $trail->push('Detail Permohona'); +}); diff --git a/routes/web.php b/routes/web.php index 24643b0..7096b35 100644 --- a/routes/web.php +++ b/routes/web.php @@ -414,7 +414,10 @@ Route::middleware(['auth'])->group(function () { Route::post('penawaran/{id}/store', [TenderController::class, 'penawaran_store'])->name( 'penawaran.storePenawaran', ); - Route::post('penawaran/{id}/update', [TenderController::class, 'penawaran_store'])->name( + Route::get('penawaran/{id}/edit', [TenderController::class, 'penawaran_edit'])->name( + 'penawaran.editPenawaran', + ); + Route::put('penawaran/{id}/update', [TenderController::class, 'penawaran_update'])->name( 'penawaran.updatePenawaran', ); Route::get('penawaran/exportPenawaran', [TenderController::class, 'exportPenawaran'])->name( From d1be0c3aa900828eb13e8aad88ad11dff307069d Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Mon, 7 Oct 2024 17:37:37 +0700 Subject: [PATCH 15/23] Mengubah Menu Tender pada sub menu data penawaran dan data penawaran ulang ketika nama kjpp status nya 1 maka munculkan datanya --- app/Http/Controllers/TenderController.php | 218 ++++++++++++++---- app/Http/Requests/TenderPenawaranRequest.php | 2 +- resources/views/penawaran/create.blade.php | 8 +- resources/views/penawaran/edit.blade.php | 23 +- resources/views/penawaran/index.blade.php | 84 ++++--- resources/views/penawaran/show.blade.php | 38 +-- .../views/penawaran_ulang/index.blade.php | 177 +++++++++++++- .../views/penawaran_ulang/show.blade.php | 196 ++++++++++++++++ routes/breadcrumbs.php | 27 ++- routes/web.php | 24 +- 10 files changed, 666 insertions(+), 131 deletions(-) create mode 100644 resources/views/penawaran_ulang/show.blade.php diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index 7de57f0..e302c08 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -34,9 +34,10 @@ class TenderController extends Controller /** * Show the form for creating a new resource. */ - public function penawaran_create($id) + public function penawaran_create($noreg) { - $penawaran = PenawaranTender::find($id); + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); @@ -44,20 +45,20 @@ class TenderController extends Controller $kjpp = KJPP::all(); - return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id')); + return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg')); } /** * Store a newly created resource in storage. */ - public function penawaran_store(TenderPenawaranRequest $request, $id) + public function penawaran_store(TenderPenawaranRequest $request, $noreg) { $validated = $request->validated(); DB::beginTransaction(); try { - $penawaran = PenawaranTender::find($id); + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; @@ -84,7 +85,7 @@ class TenderController extends Controller DB::rollBack(); return redirect() - ->route('tender.penawaran.createPenawaran', $id) + ->route('tender.penawaran.createPenawaran', $noreg) ->with('error', 'Validation failed: ' . $e); } } @@ -92,89 +93,120 @@ class TenderController extends Controller /** * Show the specified resource. */ - public function penawaran_show($id) + public function penawaran_show($noreg) { - $penawaran = PenawaranTender::find($id); - $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $id)->pluck('kjpp_rekanan_id')->toArray(); - $kjpps = KJPP::whereIn('id', $detail_penawaran)->get(); - $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get(); - $jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get(); + $penawaran = null; + $kjpps = null; + $tujuan_penilaian_kjpp = null; + $jenis_laporan = null; + + $penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + // dd($penawaran1->id); + if ($penawaran1) { + $penawaran = $penawaran1; + $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran1->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray(); + $kjpps = KJPP::whereIn('id', $detail_penawaran)->get(); + $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get(); + $jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get(); + } else { + $penawaran2 = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + $penawaran = $penawaran2; + } // dd($kjpps); - return view('lpj::penawaran.show', compact('id', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan')); + return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan')); } /** * Show the form for editing the specified resource. */ - public function penawaran_edit($id) + public function penawaran_edit($noreg) { // Find the specific penawaran by its ID - $penawaran = PenawaranTender::find($id); + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); $jenis_laporan = JenisLaporan::all(); - $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $id)->pluck('kjpp_rekanan_id')->toArray(); + $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray(); $kjpps = KJPP::whereIn('id', $detail_penawaran)->pluck('id')->toArray(); $kjpp = KJPP::all(); - return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'id', 'kjpps')); + return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps')); } /** * Update the specified resource in storage. */ - public function penawaran_update(TenderPenawaranRequest $request, $id) + public function penawaran_update(TenderPenawaranRequest $request, $noreg) { $validated = $request->validated(); - // dd($validated); - DB::beginTransaction(); try { - $penawaran = PenawaranTender::find($id); - + // Ambil data penawaran berdasarkan nomor registrasi + $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; - - $validated['status'] = $request->input('status') ?? 'Tender'; - + $validated['status'] = $request->input('status') ?? 'tender'; $penawaran->update($validated); $kjpps = $request->input('kjpp', []); + // Ubah status KJPP lama menjadi 0 jika tidak ada dalam request foreach ($penawaran->penawaranKjpp as $kjpp) { - $kjpp->delete(); // Assuming penawaranKjpp is a relationship on the PenawaranTender model + if (!in_array($kjpp->kjpp_rekanan_id, $kjpps)) { + // Ubah status KJPP lama menjadi 0 + $kjpp->status = 0; + $kjpp->save(); + } } + // Tangani penambahan atau perubahan KJPP baru foreach ($kjpps as $kjpp) { - PenawaranDetailTender::create([ - 'penawaran_id' => $penawaran->id, - 'kjpp_rekanan_id' => $kjpp - ]); + $existingDetail = PenawaranDetailTender::where('penawaran_id', $penawaran->id) + ->where('kjpp_rekanan_id', $kjpp) + ->first(); + + if ($existingDetail) { + // Jika KJPP sudah ada, pastikan statusnya aktif (1) + if ($existingDetail->status == 0) { + $existingDetail->status = 1; + $existingDetail->save(); + } + } else { + // Buat data baru jika tidak ada dalam database + PenawaranDetailTender::create([ + 'penawaran_id' => $penawaran->id, + 'kjpp_rekanan_id' => $kjpp, + 'status' => 1, // Default status untuk KJPP baru adalah 1 + ]); + } } - // Commit the transaction + // Commit transaksi DB::commit(); return redirect() ->route('tender.penawaran.index') - ->with('success', 'Data Penawaran created successfully'); + ->with('success', 'Data Penawaran updated successfully'); } catch (Exception $e) { + // Rollback jika ada kesalahan DB::rollBack(); return redirect() - ->route('tender.penawaran.createPenawaran', $id) - ->with('error', 'Validation failed: ' . $e); + ->route('tender.penawaran.createPenawaran', $noreg) + ->with('error', 'Validation failed: ' . $e->getMessage()); } } + + /** * Remove the specified resource from storage. */ @@ -190,15 +222,19 @@ class TenderController extends Controller } // Retrieve data from the database - $query = PenawaranTender::query()->where('status', '=', 'Registered'); + $query = Permohonan::query()->where('status', '=', 'registered')->where('jenis_penilaian_id', '=', 2); // 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('nama_kjpp_sebelumnya', 'LIKE', "%$search%"); - $q->orWhere('tanggal_penilaian_sebelumnya', 'LIKE', "%$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 . '%'); }); } @@ -225,7 +261,7 @@ class TenderController extends Controller $filteredRecords = $query->count(); // Get the data for the current page - $data = $query->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); // Calculate the page count $pageCount = ceil($totalRecords / $request->get('size')); @@ -247,16 +283,108 @@ class TenderController extends Controller public function exportPenawaran() { - return Excel::download(new PenawaranTenderExport, 'kjpp.xlsx'); + return Excel::download(new PenawaranTenderExport, 'penawarantender.xlsx'); + } + + // penawaran ulang + public function penawaran_ulang_index() + { + return view('lpj::penawaran_ulang/index'); + } + + public function datatablesPenawaranUlang(Request $request) + { + if (is_null($this->user) || !$this->user->can('penawaran_ulang.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = Permohonan::query()->where('status', '=', 'tender')->where('jenis_penilaian_id', '=', 2); + + // 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 penawaran_ulang_show($noreg) + { + $penawaran = null; + $kjpps = null; + $tujuan_penilaian_kjpp = null; + $jenis_laporan = null; + + $penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + // dd($penawaran1->id); + if ($penawaran1) { + $penawaran = $penawaran1; + $detail_penawaran = PenawaranDetailTender::where('penawaran_id', '=', $penawaran1->id)->where('status', '=', 1)->pluck('kjpp_rekanan_id')->toArray(); + $kjpps = KJPP::whereIn('id', $detail_penawaran)->get(); + $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::where('id', $penawaran->tujuan_penilaian_kjpp_id)->get(); + $jenis_laporan = JenisLaporan::where('id', $penawaran->jenis_laporan_id)->get(); + } else { + $penawaran2 = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + $penawaran = $penawaran2; + } + + // dd($kjpps); + + return view('lpj::penawaran_ulang.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan')); } public function proses_penawaran_index() { return view('lpj::proses_penawaran/index'); } - - public function penawaran_ulang_index() - { - return view('lpj::penawaran_ulang/index'); - } } diff --git a/app/Http/Requests/TenderPenawaranRequest.php b/app/Http/Requests/TenderPenawaranRequest.php index 3ea1309..f05313f 100644 --- a/app/Http/Requests/TenderPenawaranRequest.php +++ b/app/Http/Requests/TenderPenawaranRequest.php @@ -26,7 +26,7 @@ class TenderPenawaranRequest extends FormRequest ]; if ($this->method() == 'PUT') { - $rules['code'] = 'required|max:50|unique:penawaran,code,' . $this->id; + $rules['code'] = 'required|max:50'; } else { $rules['code'] = 'required|max:50|unique:penawaran,code'; } diff --git a/resources/views/penawaran/create.blade.php b/resources/views/penawaran/create.blade.php index 7891851..8f3161b 100644 --- a/resources/views/penawaran/create.blade.php +++ b/resources/views/penawaran/create.blade.php @@ -1,12 +1,12 @@ @extends('layouts.main') @section('breadcrumbs') - {{ Breadcrumbs::render(request()->route()->getName(), request()->route('id')) }} + {{ Breadcrumbs::render(request()->route()->getName(), request()->route('noreg')) }} @endsection @section('content')
-
+ @csrf
@@ -15,8 +15,8 @@ Tambah Data Penawaran
- Detail + Detail Back diff --git a/resources/views/penawaran/edit.blade.php b/resources/views/penawaran/edit.blade.php index 144cfa6..1369e67 100644 --- a/resources/views/penawaran/edit.blade.php +++ b/resources/views/penawaran/edit.blade.php @@ -1,22 +1,22 @@ @extends('layouts.main') @section('breadcrumbs') - {{ Breadcrumbs::render(request()->route()->getName(), request()->route('id')) }} + {{ Breadcrumbs::render(request()->route()->getName(), request()->route('noreg')) }} @endsection @section('content')
- + @csrf @method('PUT')
+ @@ -36,16 +38,32 @@ - - Nomor Penawaran + + Nomor Registrasi - - Nama KJPP Sebelumnya + + Tanggal Permohonan - - Tanggal Penilaian Sebelumnya + + User Pemohon + + + + Cabang Pemohon + + + + Debitur + + + + Tujuan Penilaian + + + + Status Action @@ -109,38 +127,50 @@ return checkbox.outerHTML.trim(); }, }, - code: { - title: 'Nomor Penawaran', + nomor_registrasi: { + title: 'Nomor Registrasi', }, - nama_kjpp_sebelumnya: { - title: 'Nama KJPP Sebelumnya', + tanggal_permohonan: { + title: 'Tanggal Permohonan', render: (item, data) => { - const nama = data.nama_kjpp_sebelumnya; - if (nama === null || nama === '') { - return 'Tidak Ada' - } else { - return nama; - } + return `${formatDate(new Date(data.tanggal_permohonan))}` } }, - tanggal_penilaian_sebelumnya: { - title: 'Tanggal Penilaian Sebelumnya', + user_id: { + title: 'User Pemohon', render: (item, data) => { - const tanggal = data.tanggal_penilaian_sebelumnya; - if (!tanggal) { - return 'Tidak ada'; - } - return formatDate(new Date(tanggal)); - } + 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: 'Action', render: (item, data) => { return `
- + - + diff --git a/resources/views/penawaran/show.blade.php b/resources/views/penawaran/show.blade.php index 9716e4f..d0ed980 100644 --- a/resources/views/penawaran/show.blade.php +++ b/resources/views/penawaran/show.blade.php @@ -33,7 +33,7 @@ @extends('layouts.main') @section('breadcrumbs') - {{ Breadcrumbs::render(request()->route()->getName(), request()->route('id')) }} + {{ Breadcrumbs::render(request()->route()->getName(), request()->route('noreg')) }} @endsection @section('content') @@ -44,10 +44,10 @@ Detail Penawaran @@ -71,6 +71,20 @@

+
+ + @if (isset($penawaran->status)) +

+ {{ ucwords($penawaran->status) }} +

+ @else +

+ Tidak Ada +

+ @endif +
-
- - @if (isset($penawaran->status)) -

- {{ $penawaran->status }} -

- @else -

- Tidak Ada -

- @endif -
@endsection diff --git a/resources/views/penawaran_ulang/index.blade.php b/resources/views/penawaran_ulang/index.blade.php index 037539a..522488f 100644 --- a/resources/views/penawaran_ulang/index.blade.php +++ b/resources/views/penawaran_ulang/index.blade.php @@ -7,16 +7,185 @@ @section('content')
-
-
+
+

Data Penawaran Ulang

- +
+
+ +
+ +
- {{-- @include('lpj::debitur.form') --}} +
+ + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Tanggal Permohonan + + + User Pemohon + + + Cabang Pemohon + + + Debitur + + + Tujuan Penilaian + + + Status + + Action
+
+
@endsection + +@push('scripts') + + + +@endpush diff --git a/resources/views/penawaran_ulang/show.blade.php b/resources/views/penawaran_ulang/show.blade.php new file mode 100644 index 0000000..bdee9eb --- /dev/null +++ b/resources/views/penawaran_ulang/show.blade.php @@ -0,0 +1,196 @@ +@php + function formatTanggalIndonesia($date) + { + $carbonDate = \Carbon\Carbon::parse($date); + $indonesianMonths = [ + 'Januari', + 'Februari', + 'Maret', + 'April', + 'Mei', + 'Juni', + 'Juli', + 'Agustus', + 'September', + 'Oktober', + 'November', + 'Desember', + ]; + $month = $indonesianMonths[$carbonDate->month - 1]; + return $carbonDate->format('d') . ' ' . $month . ' ' . $carbonDate->format('Y'); + } + + function formatRupiah($number) + { + // Convert to float if the input is a string + $number = (float) $number; + + return 'Rp ' . number_format($number, 2, ',', '.'); + } +@endphp + + +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName(), request()->route('noreg')) }} +@endsection + +@section('content') +
+
+
+

+ Detail Penawaran Ulang +

+ +
+
+
+ +
+

+ {{ $penawaran->nomor_registrasi ?? '' }} +

+
+ +
+

+ {{ $penawaran->code ?? '' }} +

+
+
+
+ + @if (isset($penawaran->status)) +

+ {{ ucwords($penawaran->status) }} +

+ @else +

+ Tidak Ada +

+ @endif +
+
+ +
+ @if (isset($penawaran->nama_kjpp_sebelumnya) && !empty($penawaran->nama_kjpp_sebelumnya)) +
+ {{ $penawaran->nama_kjpp_sebelumnya }} +
+ @else +
+ Tidak ada +
+ @endif +
+ +

+ @if (isset($penawaran->biaya_kjpp_sebelumnya)) + {{ formatRupiah($penawaran->biaya_kjpp_sebelumnya) }} + @else + {{ formatRupiah(0) }} + @endif +

+
+
+ + @if (isset($penawaran->tanggal_penilaian_sebelumnya) && !empty($penawaran->tanggal_penilaian_sebelumnya)) +

+ {{ formatTanggalIndonesia($penawaran->tanggal_penilaian_sebelumnya) }} +

+ @else +

+ Tidak Ada +

+ @endif +
+
+ +

+ @if (isset($tujuan_penilaian_kjpp)) + @foreach ($tujuan_penilaian_kjpp as $tpk) + {{ $tpk->name }} + @endforeach + @else + Tidak Ada + @endif +

+ +

+ @if (isset($jenis_laporan)) + @foreach ($jenis_laporan as $jl) + {{ $jl->name }} + @endforeach + @else + Tidak Ada + @endif +

+
+
+ +

+ {{ formatTanggalIndonesia($penawaran->start_date) }} - + {{ formatTanggalIndonesia($penawaran->end_date) }} +

+
+
+ + @if (isset($penawaran->catatan)) +

+ {{ $penawaran->catatan }} +

+ @else +

+ Tidak Ada +

+ @endif +
+
+ +
+ @if (isset($kjpps) && !empty(json_decode($kjpps, true))) + @foreach ($kjpps as $kjpp) + @if (isset($kjpp)) +
+ {{ $kjpp->name }}
+ @endif + @endforeach + @else +
Tidak Ada
+ @endif +
+
+
+ @endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 5dfd373..be3abf0 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -397,19 +397,29 @@ Breadcrumbs::for('tender.penawaran', function (BreadcrumbTrail $trail) { $trail->push('Data Penawaran', route('tender.penawaran.index')); }); -Breadcrumbs::for('tender.penawaran.editPenawaran', function (BreadcrumbTrail $trail, $id) { +Breadcrumbs::for('tender.penawaran.editPenawaran', function (BreadcrumbTrail $trail, $noreg) { $trail->parent('tender.penawaran'); - $trail->push('Data Penawaran Ulang', route('tender.penawaran.editPenawaran', $id)); + $trail->push('Penawaran Ulang', route('tender.penawaran.editPenawaran', $noreg)); }); -Breadcrumbs::for('tender.penawaran.show', function (BreadcrumbTrail $trail, $id) { +Breadcrumbs::for('tender.penawaran.show', function (BreadcrumbTrail $trail, $noreg) { $trail->parent('tender.penawaran'); - $trail->push('Detail Penawaran', route('tender.penawaran.show', $id)); + $trail->push('Detail Penawaran', route('tender.penawaran.show', $noreg)); }); -Breadcrumbs::for('tender.penawaran.createPenawaran', function (BreadcrumbTrail $trail, $id) { +Breadcrumbs::for('tender.penawaran.createPenawaran', function (BreadcrumbTrail $trail, $noreg) { $trail->parent('tender.penawaran'); - $trail->push('Tambah Data Penawaran', route('tender.penawaran.createPenawaran', $id)); + $trail->push('Tambah Data Penawaran', route('tender.penawaran.createPenawaran', $noreg)); +}); + +Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { + $trail->parent('tender'); + $trail->push('Data Penawaran Ulang', route('tender.penawaran.ulang.index')); +}); + +Breadcrumbs::for('tender.penawaran.ulang.show', function (BreadcrumbTrail $trail, $noreg) { + $trail->parent('tender.penawaran'); + $trail->push('Detail Penawaran Ulang', route('tender.penawaran.ulang.show', $noreg)); }); Breadcrumbs::for('tender.proses.penawaran', function (BreadcrumbTrail $trail) { @@ -418,11 +428,6 @@ Breadcrumbs::for('tender.proses.penawaran', function (BreadcrumbTrail $trail) { }); -Breadcrumbs::for('tender.penawaran.ulang', function (BreadcrumbTrail $trail) { - $trail->parent('tender'); - $trail->push('Data Penawaran Ulang', route('tender.penawaran_ulang.index')); -}); - Breadcrumbs::for('registrasi', function (BreadcrumbTrail $trail) { $trail->push('Registrasi', route('registrasi.index')); }); diff --git a/routes/web.php b/routes/web.php index 7096b35..994b2c1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -407,17 +407,17 @@ Route::middleware(['auth'])->group(function () { Route::name('tender.')->prefix('tender')->group(function () { // Penawaran Route::get('penawaran', [TenderController::class, 'penawaran_index'])->name('penawaran.index'); - Route::get('penawaran/{id}/show', [TenderController::class, 'penawaran_show'])->name('penawaran.show'); - Route::get('penawaran/{id}/create', [TenderController::class, 'penawaran_create'])->name( + Route::get('penawaran/{noreg}/show', [TenderController::class, 'penawaran_show'])->name('penawaran.show'); + Route::get('penawaran/{noreg}/create', [TenderController::class, 'penawaran_create'])->name( 'penawaran.createPenawaran', ); - Route::post('penawaran/{id}/store', [TenderController::class, 'penawaran_store'])->name( + Route::post('penawaran/{noreg}/store', [TenderController::class, 'penawaran_store'])->name( 'penawaran.storePenawaran', ); - Route::get('penawaran/{id}/edit', [TenderController::class, 'penawaran_edit'])->name( + Route::get('penawaran/{noreg}/edit', [TenderController::class, 'penawaran_edit'])->name( 'penawaran.editPenawaran', ); - Route::put('penawaran/{id}/update', [TenderController::class, 'penawaran_update'])->name( + Route::put('penawaran/{noreg}/update', [TenderController::class, 'penawaran_update'])->name( 'penawaran.updatePenawaran', ); Route::get('penawaran/exportPenawaran', [TenderController::class, 'exportPenawaran'])->name( @@ -427,15 +427,19 @@ Route::middleware(['auth'])->group(function () { 'penawaran.datatables', ); + // Penawaran Ulang + Route::get('penawaran/ulang', [TenderController::class, 'penawaran_ulang_index'])->name( + 'penawaran.ulang.index', + ); + Route::get('penawaran/ulang/{noreg}/show', [TenderController::class, 'penawaran_ulang_show'])->name('penawaran.ulang.show'); + Route::get('penawaran/ulang/datatables', [TenderController::class, 'datatablesPenawaranUlang'])->name( + 'penawaran.ulang.datatables', + ); + // Proses Penawaran Route::get('proses_penawaran', [TenderController::class, 'proses_penawaran_index'])->name( 'proses_penawaran.index', ); - - // Penawaran Ulang - Route::get('penawaran_ulang', [TenderController::class, 'penawaran_ulang_index'])->name( - 'penawaran_ulang.index', - ); }); Route::name('penilaian.')->prefix('penilaian')->group(function () { From 0fbbb8f081fa52c90716422d9a613effdce0904c Mon Sep 17 00:00:00 2001 From: majid Date: Tue, 8 Oct 2024 14:35:59 +0700 Subject: [PATCH 16/23] integarasi admin ke so dan penambahan menu otorisator so --- app/Http/Controllers/PenilaianController.php | 163 +++++++++++++++-- module.json | 56 +++++- resources/views/penilaian/form.blade.php | 129 ++++++------- resources/views/penilaian/index.blade.php | 10 +- .../penilaian/otorisator/index.blade.php | 163 +++++++++++++++++ .../views/penilaian/otorisator/show.blade.php | 173 ++++++++++++++++++ routes/breadcrumbs.php | 7 + routes/web.php | 14 ++ 8 files changed, 619 insertions(+), 96 deletions(-) create mode 100644 resources/views/penilaian/otorisator/index.blade.php create mode 100644 resources/views/penilaian/otorisator/show.blade.php diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 0576671..f273b0a 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -30,10 +30,11 @@ class PenilaianController extends Controller /** * Store a newly created resource in storage. */ + public function store(PenilaianRequest $request) { - //print_r($request->all());exit; $validatedData = $request->validated(); + if ($validatedData) { try { $penilaian = Penilaian::create($validatedData); @@ -98,12 +99,28 @@ class PenilaianController extends Controller ], )->findOrFail($id); - $jenisPenilaian = JenisPenilaian::all(); - $teamPenilai = Teams::with(['regions', 'teamsUsers'])->get(); + $idPenilaian = $permohonan->jenis_penilaian_id; + $idRegion = $permohonan->region_id; + + $jenisPenilaian = JenisPenilaian::find($idPenilaian); + + + $teamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user', ]) + ->whereHas('regions', function ($q) use ($idRegion) { + $q->where('id', $idRegion); + })->get(); + + + $regionName = null; + foreach ($teamPenilai as $item) { + $regionName = $item->regions; + } + + // dd($teamPenilai); $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); - return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian')); + return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName')); } /** @@ -128,15 +145,13 @@ class PenilaianController extends Controller 'status' => 'revisi', ]; - // dump($dataToUpdate); $permohonan = Permohonan::where('nomor_registrasi', $nomor_registrasi)->first(); $permohonan->update($dataToUpdate); return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil direvisi'); } catch (Exception $e) { - dump($e->getMessage()); - // return redirect()->route('penilaian.index')->with('error', $e->getMessage()); + return redirect()->route('penilaian.index')->with('error', $e->getMessage()); } } } @@ -164,7 +179,7 @@ class PenilaianController extends Controller }); } - $query->whereRaw('LOWER(status) = ?', ['register']); + $query->whereRaw('LOWER(status) = ?', ['registered']); if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { $order = $request->get('sortOrder'); @@ -205,20 +220,132 @@ class PenilaianController extends Controller - public function getUserTeams($id) - { - $teamsUser = TeamsUsers::where('teams_id', $id)->get(); - $userIds = $teamsUser->pluck('user_id'); - $users = User::whereIn('id', $userIds) - ->with('roles') - ->get(); - if ($users->isNotEmpty()) { - return response()->json($users, 200); + public function otorisator(Request $request){ + + $type = $request->route('type'); + $header = ''; + + switch ($type) { + case 'pelaporan': + $header = 'Pelaporan'; + break; + case 'pembayaran': + $header = 'Pembayaran'; + break; + case 'pembatalan': + $header = 'Pembatalan'; + break; + case 'sla': + $header = 'SLA'; + break; + default: + $header = 'Pelaporan'; + break; } - return response()->json([], 200); + return view('lpj::penilaian.otorisator.index', compact('header')); + } + + public function show($id){ + + $permohonan = Permohonan::find($id); + + return view('lpj::penilaian.otorisator.show', compact('permohonan')); + } + + + + public function dataForAuthorization(Request $request, $otorisator) + { + + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } + + + $status = ''; + + switch ($otorisator) { + case 'Pelaporan': + $status = 'proses paparan'; + break; + case 'Pembayaran': + $status = 'proses pembayaran'; + break; + default: + $status = ''; + break; + } + + + $query = Permohonan::query(); + + // Pencarian berdasarkan parameter search + 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 . '%'); + }); + } + + + if (!empty($otorisator)) { + $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); + } + + // Sorting berdasarkan sortField dan sortOrder + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Hitung total records + $totalRecords = $query->count(); + + // Pagination (default page size 10) + $size = $request->get('size', 10); + if ($size == 0) { + $size = 10; + } + + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page', 1); + $offset = ($page - 1) * $size; + + $query->skip($offset)->take($size); + } + + // Filtered records + $filteredRecords = $query->count(); + + // Ambil data dengan relasi + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); + + // Hitung jumlah halaman + $pageCount = ceil($totalRecords / $size); + + // Ambil current page + $currentPage = max(1, $request->get('page', 1)); + + // Return JSON response + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); } diff --git a/module.json b/module.json index 51e8689..6431f9d 100644 --- a/module.json +++ b/module.json @@ -131,6 +131,60 @@ "so" ] }, + { + "title": "Otorisator", + "path": "otorisator", + "icon": "ki-filled ki-security-user text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "so" + ], + "sub": [ + { + "title": "Pelaporan", + "path": "otorisator.pelaporan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "so" + ] + }, + { + "title": "Pembayaran", + "path": "otorisator.pembayaran", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "so" + ] + }, + { + "title": "Pembatalan", + "path": "otorisator.pembatalan", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "so" + ] + }, + { + "title": "SLA", + "path": "otorisator.sla", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "so" + ] + } + ] + + }, { "title": "Activity", @@ -151,7 +205,7 @@ "attributes": [], "permission": "", "roles": [ - "administrator","pemohon-ao","pemohon-eo","admin" + "administrator","pemohon-ao","pemohon-eo","admin", "so" ] } ], diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 484ac33..cd60966 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -163,7 +163,7 @@

- Data Jaminan + Laporan

@@ -283,21 +283,12 @@
- + + @error('jenis_penilaian_id') {{ $message }} @enderror @@ -309,20 +300,11 @@ Tim Penilai yang di tunjuk
- + + @error('teams_id') {{ $message }} @enderror @@ -335,8 +317,11 @@
@error('surveyor_id') @@ -351,8 +336,11 @@
@error('penilaian_id') {{ $message }} @@ -366,8 +354,11 @@
@error('penilai_surveyor_id') {{ $message }} @@ -482,7 +473,7 @@
@endsection @push('scripts') - + --}} - + @endpush diff --git a/resources/views/penilaian/index.blade.php b/resources/views/penilaian/index.blade.php index 0a5db4c..90ef1e3 100644 --- a/resources/views/penilaian/index.blade.php +++ b/resources/views/penilaian/index.blade.php @@ -7,13 +7,10 @@ @section('content')
-
-
- Daftar Penilaian -
+

- {{-- Daftar {{}} --}} + Daftar assignment

@@ -27,9 +24,6 @@
-
- -
diff --git a/resources/views/penilaian/otorisator/index.blade.php b/resources/views/penilaian/otorisator/index.blade.php new file mode 100644 index 0000000..be0fc59 --- /dev/null +++ b/resources/views/penilaian/otorisator/index.blade.php @@ -0,0 +1,163 @@ +@extends('layouts.main') + +{{-- @section('breadcrumbs') + {{ Breadcrumbs::render('penilaian') }} +@endsection --}} + +@section('content') +
+
+
+
+

+ Daftar {{$header}} +

+
+
+ +
+ +
+
+ +
+
+ + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Tanggal Permohonan + + + User Pemohon + + + Cabang Pemohon + + + Debitur + + + Tujuan Penilaian + + + Status + + Action
+
+ +
+
+
+
+@endsection + + + +@push('scripts') + + +@endpush diff --git a/resources/views/penilaian/otorisator/show.blade.php b/resources/views/penilaian/otorisator/show.blade.php new file mode 100644 index 0000000..3555a45 --- /dev/null +++ b/resources/views/penilaian/otorisator/show.blade.php @@ -0,0 +1,173 @@ +@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 ?? "" }} +
+
+
+
+
+ +
+
+

+ Laporan +

+
+ +
+ +
+ + + @csrf +
+
+ +
+ +
+
+
+ + +
+
+@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 6a1814d..c449005 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -445,3 +445,10 @@ $trail->parent('registrasi'); $trail->push('Detail Permohona'); }); + + + + Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) { + $trail->parent('otorisator'); + $trail->push('Otorisator', route('otorisator.pelaporan.index')); + }); diff --git a/routes/web.php b/routes/web.php index 258152b..7f2d6e1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -479,6 +479,20 @@ Route::middleware(['auth'])->group(function () { /** * Route end activity */ + + + Route::name('otorisator.')->prefix('otorisator')->group(function () { + Route::get('pelaporan', [PenilaianController::class, 'otorisator'])->name('pelaporan.index')->defaults('type', 'pelaporan'); + Route::get('pembayaran', [PenilaianController::class, 'otorisator'])->name('pembayaran.index')->defaults('type', 'pembayaran'); + Route::get('pembatalan', [PenilaianController::class, 'otorisator'])->name('pembatalan.index')->defaults('type', 'pembatalan'); + Route::get('sla', [PenilaianController::class, 'otorisator'])->name('sla.index')->defaults('type', 'sla'); + Route::get('/datatables/{otorisator}', [PenilaianController::class, 'dataForAuthorization'])->name('datatables'); + Route::get('show/{id}', [PenilaianController::class, 'show'])->name('show'); + }); + + + + }); require __DIR__ . '/registrasi.php'; From ed4a381c20ff28a0ec534c8228435ebf2edad45c Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 8 Oct 2024 17:15:00 +0700 Subject: [PATCH 17/23] Memperbaiki fitur menu tender di bagian data penawaran --- app/Http/Controllers/TenderController.php | 56 +++++++++++++++---- app/Http/Requests/TenderPenawaranRequest.php | 11 +++- ...24_10_08_075401_update_penawaran_table.php | 30 ++++++++++ ...8_075434_update_detail_penawaran_table.php | 30 ++++++++++ resources/views/penawaran/create.blade.php | 16 ++++-- resources/views/penawaran/edit.blade.php | 9 ++- resources/views/penawaran/index.blade.php | 47 ++++++++++++---- resources/views/penawaran/show.blade.php | 30 ++++++---- .../views/penawaran_ulang/index.blade.php | 11 +++- .../views/penawaran_ulang/show.blade.php | 2 +- 10 files changed, 201 insertions(+), 41 deletions(-) create mode 100644 database/migrations/2024_10_08_075401_update_penawaran_table.php create mode 100644 database/migrations/2024_10_08_075434_update_detail_penawaran_table.php diff --git a/app/Http/Controllers/TenderController.php b/app/Http/Controllers/TenderController.php index e302c08..d98f7e9 100644 --- a/app/Http/Controllers/TenderController.php +++ b/app/Http/Controllers/TenderController.php @@ -5,8 +5,6 @@ namespace Modules\Lpj\Http\Controllers; use Exception; use Illuminate\Http\Request; use Modules\Lpj\Models\KJPP; -use Illuminate\Http\Response; -use Modules\Lpj\Models\Penawaran; use Illuminate\Support\Facades\DB; use Modules\Lpj\Models\Permohonan; use App\Http\Controllers\Controller; @@ -36,8 +34,14 @@ class TenderController extends Controller */ public function penawaran_create($noreg) { - $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $penawaranExists = PenawaranTender::where('nomor_registrasi', '=', $noreg)->exists(); + // Jika nomor_registrasi sudah ada, kembalikan respon 403 Forbidden + if ($penawaranExists) { + abort(403, 'Penawaran dengan nomor registrasi ini sudah ada.'); + } + + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); @@ -45,7 +49,7 @@ class TenderController extends Controller $kjpp = KJPP::all(); - return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg')); + return view('lpj::penawaran/create', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'noreg', 'permohonan')); } /** @@ -58,12 +62,19 @@ class TenderController extends Controller DB::beginTransaction(); try { - $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); - $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; + // Add created_by/updated_by from the authenticated user + $userId = auth()->user()->id; - $validated['status'] = $request->input('status') ?? 'Tender'; + $validated['nomor_registrasi'] = $permohonan->nomor_registrasi; + $validated['status'] = $request->input('status') ?? 'tender'; + $validated['updated_by'] = $userId; // Updating the record + $permohonan->update($validated); + + // Adding created_by for the new PenawaranTender record + $validated['created_by'] = $userId; $penawaranId = PenawaranTender::create($validated); $kjpps = $request->input('kjpp', []); @@ -71,7 +82,9 @@ class TenderController extends Controller foreach ($kjpps as $kjpp) { PenawaranDetailTender::create([ 'penawaran_id' => $penawaranId->id, - 'kjpp_rekanan_id' => $kjpp + 'kjpp_rekanan_id' => $kjpp, + 'created_by' => $userId, // Set created_by for details + 'updated_by' => $userId ]); } @@ -100,6 +113,8 @@ class TenderController extends Controller $tujuan_penilaian_kjpp = null; $jenis_laporan = null; + $penawaranExists = PenawaranTender::where('nomor_registrasi', $noreg)->exists(); + $penawaran1 = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); // dd($penawaran1->id); if ($penawaran1) { @@ -115,7 +130,7 @@ class TenderController extends Controller // dd($kjpps); - return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan')); + return view('lpj::penawaran.show', compact('noreg', 'penawaran', 'kjpps', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'penawaranExists')); } /** @@ -125,6 +140,7 @@ class TenderController extends Controller { // Find the specific penawaran by its ID $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); $status = StatusPermohonan::all(); $tujuan_penilaian_kjpp = TujuanPenilaianKJPP::all(); @@ -135,7 +151,7 @@ class TenderController extends Controller $kjpp = KJPP::all(); - return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps')); + return view('lpj::penawaran.edit', compact('status', 'tujuan_penilaian_kjpp', 'jenis_laporan', 'kjpp', 'penawaran', 'noreg', 'kjpps', 'permohonan')); } @@ -151,9 +167,20 @@ class TenderController extends Controller try { // Ambil data penawaran berdasarkan nomor registrasi $penawaran = PenawaranTender::where('nomor_registrasi', '=', $noreg)->first(); + $permohonan = Permohonan::where('nomor_registrasi', '=', $noreg)->first(); + + // Ambil ID user yang sedang login + $userId = auth()->user()->id; + + // Jangan ubah created_by untuk data yang sudah ada $validated['nomor_registrasi'] = $penawaran->nomor_registrasi; $validated['status'] = $request->input('status') ?? 'tender'; + $validated['created_by'] = $userId; + $validated['updated_by'] = $userId; // Hanya update 'updated_by' + + // Update data penawaran dan permohonan $penawaran->update($validated); + $permohonan->update($validated); $kjpps = $request->input('kjpp', []); @@ -162,6 +189,8 @@ class TenderController extends Controller if (!in_array($kjpp->kjpp_rekanan_id, $kjpps)) { // Ubah status KJPP lama menjadi 0 $kjpp->status = 0; + $kjpp->created_by = $userId; + $kjpp->updated_by = $userId; // Set updated_by $kjpp->save(); } } @@ -172,10 +201,14 @@ class TenderController extends Controller ->where('kjpp_rekanan_id', $kjpp) ->first(); + // dd($existingDetail); + if ($existingDetail) { // Jika KJPP sudah ada, pastikan statusnya aktif (1) if ($existingDetail->status == 0) { $existingDetail->status = 1; + $existingDetail->created_by = $userId; + $existingDetail->updated_by = $userId; // Set updated_by $existingDetail->save(); } } else { @@ -184,6 +217,8 @@ class TenderController extends Controller 'penawaran_id' => $penawaran->id, 'kjpp_rekanan_id' => $kjpp, 'status' => 1, // Default status untuk KJPP baru adalah 1 + 'created_by' => $userId, // Set created_by untuk data baru + 'updated_by' => $userId, // Set updated_by juga ]); } } @@ -207,6 +242,7 @@ class TenderController extends Controller + /** * Remove the specified resource from storage. */ diff --git a/app/Http/Requests/TenderPenawaranRequest.php b/app/Http/Requests/TenderPenawaranRequest.php index f05313f..6472638 100644 --- a/app/Http/Requests/TenderPenawaranRequest.php +++ b/app/Http/Requests/TenderPenawaranRequest.php @@ -61,16 +61,25 @@ class TenderPenawaranRequest extends FormRequest $validator->after(function ($validator) { $startDate = strtotime($this->input('start_date')); $endDate = strtotime($this->input('end_date')); + $today = strtotime(date('Y-m-d')); if ($endDate < $startDate) { $validator->errors()->add('end_date', 'Tanggal Akhir tidak boleh lebih awal dari Tanggal Awal.'); } + if ($startDate < $today) { + $validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.'); + } + // Validasi minimal 3 pilihan pada nama_kjpp $namaKjpp = $this->input('kjpp', []); + // jika nama KJPP itu kosong + if (empty($namaKjpp)) { + $validator->errors()->add('kjpp', 'Nama KJPP wajib diisi.'); + } // jika terisi kurang dari 3 item - if (is_array($namaKjpp) && count($namaKjpp) < 3) { + elseif (is_array($namaKjpp) && count($namaKjpp) < 3) { $validator->errors()->add('kjpp', 'Nama KJPP Sebelumnya harus memiliki minimal 3 pilihan jika diisi.'); } }); diff --git a/database/migrations/2024_10_08_075401_update_penawaran_table.php b/database/migrations/2024_10_08_075401_update_penawaran_table.php new file mode 100644 index 0000000..34e6978 --- /dev/null +++ b/database/migrations/2024_10_08_075401_update_penawaran_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('created_by')->nullable()->after('created_at'); + $table->unsignedBigInteger('updated_by')->nullable()->after('updated_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penawaran', function (Blueprint $table) { + $table->dropColumn('created_by'); + $table->dropColumn('updated_by'); + }); + } +}; diff --git a/database/migrations/2024_10_08_075434_update_detail_penawaran_table.php b/database/migrations/2024_10_08_075434_update_detail_penawaran_table.php new file mode 100644 index 0000000..f4ce896 --- /dev/null +++ b/database/migrations/2024_10_08_075434_update_detail_penawaran_table.php @@ -0,0 +1,30 @@ +unsignedBigInteger('created_by')->nullable()->after('created_at'); + $table->unsignedBigInteger('updated_by')->nullable()->after('updated_at'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('detail_penawaran', function (Blueprint $table) { + $table->dropColumn('created_by'); + $table->dropColumn('updated_by'); + }); + } +}; diff --git a/resources/views/penawaran/create.blade.php b/resources/views/penawaran/create.blade.php index 8f3161b..bc023e5 100644 --- a/resources/views/penawaran/create.blade.php +++ b/resources/views/penawaran/create.blade.php @@ -29,7 +29,7 @@
+ name="nomor_registrasi" readonly value="{{ $permohonan->nomor_registrasi ?? '-' }}">
@@ -38,7 +38,7 @@
+ name="nama_kjpp_sebelumnya" readonly value="">
@@ -47,15 +47,14 @@
+ name="biaya_kjpp_sebelumnya" readonly value="">
+ name="tanggal_penilaian_sebelumnya" readonly value="">
@@ -207,5 +206,12 @@ outline: none; box-shadow: none; } + + @media (prefers-color-scheme: dark) { + input.input-custom { + background: none; + color: var(--tw-gray-600); + } + } @endpush diff --git a/resources/views/penawaran/edit.blade.php b/resources/views/penawaran/edit.blade.php index 1369e67..d94e8d9 100644 --- a/resources/views/penawaran/edit.blade.php +++ b/resources/views/penawaran/edit.blade.php @@ -31,7 +31,7 @@
+ name="nomor_registrasi" readonly value="{{ $permohonan->nomor_registrasi ?? '-' }}">
@@ -212,5 +212,12 @@ outline: none; box-shadow: none; } + + @media (prefers-color-scheme: dark) { + input.input-custom { + background: none; + color: var(--tw-gray-600); + } + } @endpush diff --git a/resources/views/penawaran/index.blade.php b/resources/views/penawaran/index.blade.php index 897182e..e306437 100644 --- a/resources/views/penawaran/index.blade.php +++ b/resources/views/penawaran/index.blade.php @@ -107,6 +107,12 @@ return months[month - 1]; } + + function capitalizeWords(str) { + return str.replace(/\b\w/g, function(char) { + return char.toUpperCase(); + }); + }