From 7398ec02132cb03060c99db317ce6f6c7ec8050c Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Mon, 28 Oct 2024 17:26:32 +0700 Subject: [PATCH 001/100] Membuat Menu Penilai Part 1 --- app/Http/Controllers/PenilaiController.php | 135 ++++++++++++ app/Http/Controllers/SLAController.php | 65 ++++++ app/Models/SLA.php | 18 ++ .../2024_10_28_095337_create_s_l_as_table.php | 27 +++ module.json | 82 ++++--- resources/views/SLA/index.blade.php | 8 + resources/views/penilai/index.blade.php | 200 ++++++++++++++++++ resources/views/penilai/show.blade.php | 160 ++++++++++++++ routes/breadcrumbs.php | 14 ++ routes/web.php | 54 +++-- 10 files changed, 718 insertions(+), 45 deletions(-) create mode 100644 app/Http/Controllers/PenilaiController.php create mode 100644 app/Http/Controllers/SLAController.php create mode 100644 app/Models/SLA.php create mode 100644 database/migrations/2024_10_28_095337_create_s_l_as_table.php create mode 100644 resources/views/SLA/index.blade.php create mode 100644 resources/views/penilai/index.blade.php create mode 100644 resources/views/penilai/show.blade.php diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php new file mode 100644 index 0000000..6b2a0c0 --- /dev/null +++ b/app/Http/Controllers/PenilaiController.php @@ -0,0 +1,135 @@ +find($id); + + return view('lpj::penilai.show', 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) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('penilai.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = Permohonan::query()->where('status', '=', 'done'); + + // 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->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('jenisfasilitasKredit', 'name', 'LIKE', '%' . $search . '%'); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisfasilitasKredit'])->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, + ]); + } +} diff --git a/app/Http/Controllers/SLAController.php b/app/Http/Controllers/SLAController.php new file mode 100644 index 0000000..f411dc4 --- /dev/null +++ b/app/Http/Controllers/SLAController.php @@ -0,0 +1,65 @@ +id(); + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('sla'); + } +}; diff --git a/module.json b/module.json index 6ab8ec6..f8cc66a 100644 --- a/module.json +++ b/module.json @@ -6,9 +6,7 @@ "keywords": [], "priority": 0, "providers": ["Modules\\Lpj\\Providers\\LpjServiceProvider"], - "files": [ - "app/Helpers/Lpj.php" - ], + "files": ["app/Helpers/Lpj.php"], "menu": { "main": [ { @@ -184,7 +182,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["ssenior-officero"] + "roles": ["senior-officer"] } ] }, @@ -205,7 +203,13 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin","surveyor"] + "roles": [ + "administrator", + "pemohon-ao", + "pemohon-eo", + "admin", + "surveyor" + ] }, { "title": "Laporan", @@ -214,7 +218,22 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin", "senior-officer"] + "roles": [ + "administrator", + "pemohon-ao", + "pemohon-eo", + "admin", + "senior-officer" + ] + }, + { + "title": "Penilai", + "path": "penilai", + "icon": "ki-filled ki-brush text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] } ], "master": [ @@ -225,7 +244,13 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["administrator", "pemohon-ao", "pemohon-eo", "admin", "surveyor"], + "roles": [ + "administrator", + "pemohon-ao", + "pemohon-eo", + "admin", + "surveyor" + ], "sub": [ { "title": "Cabang", @@ -379,6 +404,14 @@ "permission": "", "roles": ["administrator", "admin"] }, + { + "title": "SLA", + "path": "basicdata.sla", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] + }, { "title": "Bentuk Tanah", "path": "basicdata.bentuk-tanah", @@ -386,73 +419,72 @@ "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Kontur Tanah", "path": "basicdata.kontur-tanah", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Posisi Kavling", "path": "basicdata.posisi-kavling", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Ketinggian Tanah", "path": "basicdata.ketinggian-tanah", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Kondisi Fisik Tanah", "path": "basicdata.kondisi-fisik-tanah", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Jenis Bangunan", "path": "basicdata.jenis-bangunan", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Kondisi Bangunan", "path": "basicdata.kondisi-bangunan", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, - { + }, + { "title": "Sifat Bangunan", "path": "basicdata.sifat-bangunan", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - }, + }, - { + { "title": "Sarana Pelengkap", "path": "basicdata.sarana-pelengkap", "classes": "", "attributes": [], "permission": "", "roles": ["surveyor"] - } - + } ] } ], diff --git a/resources/views/SLA/index.blade.php b/resources/views/SLA/index.blade.php new file mode 100644 index 0000000..8fc628d --- /dev/null +++ b/resources/views/SLA/index.blade.php @@ -0,0 +1,8 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('sla') }} +@endsection + +@section('content') +@endsection diff --git a/resources/views/penilai/index.blade.php b/resources/views/penilai/index.blade.php new file mode 100644 index 0000000..196b6c3 --- /dev/null +++ b/resources/views/penilai/index.blade.php @@ -0,0 +1,200 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render('penilai') }} +@endsection + +@section('content') +
+
+
+
+

+ Penilai +

+
+
+ +
+ +
+
+ +
+
+ + + + + + + + + + + + + + + +
+ + + Nomor Registrasi + + + Debitur + + + Pemohon(Cabang/Direktorat) + + + AO + + + Tujuan Penilaian + + + Fasilitas Kredit + + + Tanggal Survei + + + Due Date SLA + + Action
+
+ +
+
+
+
+@endsection + + +@push('scripts') + + +@endpush diff --git a/resources/views/penilai/show.blade.php b/resources/views/penilai/show.blade.php new file mode 100644 index 0000000..3087202 --- /dev/null +++ b/resources/views/penilai/show.blade.php @@ -0,0 +1,160 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection + +@section('content') +
+
+
+

+ Detail Penilai +

+
+ + Back +
+
+
+
+ +
+

{{ $permohonan->nomor_registrasi }}

+
+ +
+

{{ $permohonan->debiture->name }}

+
+
+
+ +
+

{{ $permohonan->branch->name }}

+
+ +
+

{{ $permohonan->debiture->address }}, Kel. + {{ $permohonan->debiture->village->name }}, Kec. {{ $permohonan->debiture->district->name }}, + {{ ucwords(strtolower($permohonan->debiture->city->name)) }}, Kode Pos. + {{ $permohonan->debiture->postal_code }}

+
+
+
+ +
+

{{ $permohonan->user->name }}

+
+ +
+

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

+
+
+
+ +
+

+ {{ formatTanggalIndonesia($permohonan->created_at) }}

+
+ +
+

+ {{ $permohonan->debiture->cif }}

+
+
+
+ +
+

+ {{ formatTanggalIndonesia($permohonan->created_at) }}

+
+
+
+ +
+

+ {{ $permohonan->penilaian->userSurveyor->name }}

+

+ Region 1

+
+ +
+

+ @foreach ($permohonan->penilaian->teams->teamsUsers as $index => $penilaian) + {{ $penilaian->user->name }}{{ $index + 1 < count($permohonan->penilaian->teams->teamsUsers) ? ', ' : '' }} + @endforeach +

+

+ {{ $permohonan->penilaian->teams->regions->name }} +

+
+
+
+ +

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

+ +

+ @foreach ($permohonan->debiture->documents as $document) + {{ $document->jenisjaminan->name }} + @endforeach +

+
+
+ +
+

+ {{ formatTanggalIndonesia($permohonan->created_at) }}

+
+
+
+ +
+

+ {{ formatTanggalIndonesia($permohonan->created_at) }}

+
+
+
+ +
+

+ PJ/001/001

+
+
+
+
+
+@endsection diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 39a97be..cdbf79a 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -534,3 +534,17 @@ Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) $trail->parent('otorisator'); $trail->push('Otorisator', route('otorisator.pelaporan.index')); }); + +Breadcrumbs::for('penilai', function (BreadcrumbTrail $trail) { + $trail->push('Penilai', route('penilai.index')); +}); + +Breadcrumbs::for('penilai.show', function (BreadcrumbTrail $trail) { + $trail->parent('penilai'); + $trail->push('Detail Penilai'); +}); + +Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) { + $trail->parent('basicdata'); + $trail->push('SLA', route('basicdata.sla.index')); +}); diff --git a/routes/web.php b/routes/web.php index 8292c9b..8a604a8 100644 --- a/routes/web.php +++ b/routes/web.php @@ -1,35 +1,37 @@ group(function () { Route::put('updateData/{type}/{id}', [SurveyorController::class, 'updateData'])->name('updateData'); Route::delete('deleteData/{id}/{type}', [SurveyorController::class, 'destroy'])->name('deleteData'); + // Start Activity SLA route + Route::name('sla.')->prefix('sla')->group(function () { + Route::get('/', [SLAController::class, 'index'])->name('index'); + }); + // End Activity SLA route + $headers = [ 'bentuk-tanah' => 'Bentuk Tanah', 'kontur-tanah' => 'Kontur Tanah', @@ -500,6 +508,12 @@ Route::middleware(['auth'])->group(function () { Route::get('data-pembanding/{id}', [SurveyorController::class, 'dataPembanding'])->name('data-pembanding'); Route::put('submitSurveyor/{id}', [SurveyorController::class, 'submitSurveyor'])->name('submitSurveyor'); }); + + Route::name('penilai.')->prefix('penilai')->group(function () { + Route::get('/', [PenilaiController::class, 'index'])->name('index'); + Route::get('/{id}/show', [PenilaiController::class, 'show'])->name('show'); + Route::get('datatables', [PenilaiController::class, 'dataForDatatables'])->name('dataForTables'); + }); }); require __DIR__ . '/registrasi.php'; From a7ac60c319aa413e63338b843ba84e60ed4c860d Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Tue, 29 Oct 2024 14:13:58 +0700 Subject: [PATCH 002/100] Memperbaiki Konflik pada module.json dan breadcrumb.php --- module.json | 60 ++++++++++++++++++++-------------------- routes/breadcrumbs.php | 63 +++++++++++++++--------------------------- 2 files changed, 52 insertions(+), 71 deletions(-) diff --git a/module.json b/module.json index f8cc66a..7a322e4 100644 --- a/module.json +++ b/module.json @@ -182,7 +182,7 @@ "classes": "", "attributes": [], "permission": "", - "roles": ["senior-officer"] + "roles": ["ssenior-officero"] } ] }, @@ -213,7 +213,7 @@ }, { "title": "Laporan", - "path": "", + "path": "laporan", "icon": "ki-filled ki-filter-tablet text-lg", "classes": "", "attributes": [], @@ -224,16 +224,40 @@ "pemohon-eo", "admin", "senior-officer" + ], + "sub": [ + { + "title": "Sederhana", + "path": "laporan.sederhana", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] + }, + { + "title": "Standard", + "path": "laporan.standard", + "classes": "", + "attributes": [], + "permission": "", + "roles": [ + "administrator", + "pemohon-ao", + "pemohon-eo", + "admin", + "senior-officer" + ] + } ] }, { - "title": "Penilai", - "path": "penilai", - "icon": "ki-filled ki-brush text-lg", + "title": "Resume", + "path": "resume", + "icon": "ki-filled ki-questionnaire-tablet text-lg", "classes": "", "attributes": [], "permission": "", - "roles": ["surveyor"] + "roles": ["administrator", "pemohon-ao", "pemohon-eo"] } ], "master": [ @@ -252,22 +276,6 @@ "surveyor" ], "sub": [ - { - "title": "Cabang", - "path": "basicdata.branch", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator", "pemohon-ao", "pemohon-eo"] - }, - { - "title": "Mata Uang", - "path": "basicdata.currency", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator", "pemohon-ao", "pemohon-eo"] - }, { "title": "Jenis Fasilitas Kredit", "path": "basicdata.jenis-fasilitas-kredit", @@ -404,14 +412,6 @@ "permission": "", "roles": ["administrator", "admin"] }, - { - "title": "SLA", - "path": "basicdata.sla", - "classes": "", - "attributes": [], - "permission": "", - "roles": ["administrator", "admin"] - }, { "title": "Bentuk Tanah", "path": "basicdata.bentuk-tanah", diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index cdbf79a..68a7260 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -3,9 +3,11 @@ use Diglactic\Breadcrumbs\Breadcrumbs; use Diglactic\Breadcrumbs\Generator as BreadcrumbTrail; -Breadcrumbs::for('basicdata', function (BreadcrumbTrail $trail) { - $trail->push('Basic Data'); -}); +if (!Breadcrumbs::exists('basicdata')) { + Breadcrumbs::for('basicdata', function (BreadcrumbTrail $trail) { + $trail->push('Basic Data'); + }); +} Breadcrumbs::for('basicdata.jenis-fasilitas-kredit', function (BreadcrumbTrail $trail) { $trail->parent('basicdata'); @@ -113,36 +115,6 @@ Breadcrumbs::for('basicdata.jenis-dokumen.edit', function (BreadcrumbTrail $trai }); -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')); @@ -535,16 +507,25 @@ Breadcrumbs::for('otorisator.pelaporan.index', function (BreadcrumbTrail $trail) $trail->push('Otorisator', route('otorisator.pelaporan.index')); }); -Breadcrumbs::for('penilai', function (BreadcrumbTrail $trail) { - $trail->push('Penilai', route('penilai.index')); +Breadcrumbs::for('laporan', function (BreadcrumbTrail $trail) { + $trail->push('Laporan', route('laporan.sederhana.index')); }); -Breadcrumbs::for('penilai.show', function (BreadcrumbTrail $trail) { - $trail->parent('penilai'); - $trail->push('Detail Penilai'); +Breadcrumbs::for('laporan.sederhana.index', function (BreadcrumbTrail $trail) { + $trail->parent('laporan'); + $trail->push('Sederhana', route('laporan.sederhana.index')); }); -Breadcrumbs::for('sla', function (BreadcrumbTrail $trail) { - $trail->parent('basicdata'); - $trail->push('SLA', route('basicdata.sla.index')); +Breadcrumbs::for('laporan.standard.index', function (BreadcrumbTrail $trail) { + $trail->parent('laporan'); + $trail->push('Standard', route('laporan.standard.index')); +}); + +Breadcrumbs::for('resume', function (BreadcrumbTrail $trail) { + $trail->push('Resume', route('resume.index')); +}); + +Breadcrumbs::for('resume.show', function (BreadcrumbTrail $trail) { + $trail->parent('resume'); + $trail->push('Detail'); }); From 4b0822540344acc2f944b248f1e4648b86651ff8 Mon Sep 17 00:00:00 2001 From: majid Date: Tue, 29 Oct 2024 14:22:25 +0700 Subject: [PATCH 003/100] update pemilihan team hanya surveyor atau penilai dan update form foto menggunakan camera --- app/Http/Controllers/ActivityController.php | 2 +- app/Http/Controllers/PenilaianController.php | 6 +- app/Http/Controllers/SurveyorController.php | 231 ++++++----- app/Http/Controllers/TeamsController.php | 39 +- app/Http/Requests/SurveyorRequest.php | 157 ++++++-- app/Models/GolonganMasySekitar.php | 4 +- app/Models/Lantai.php | 23 ++ app/Models/SpekBangunan.php | 2 +- app/Models/SpekKategoritBangunan.php | 2 +- app/Models/TingkatKeramaian.php | 1 + app/Models/ViewUnit.php | 23 ++ ...2024_10_16_153543_create_analisa_table.php | 1 + .../2024_10_16_153841_create_denah_table.php | 2 +- ...10_16_153902_create_foto_jaminan_table.php | 2 +- ...0_16_153918_create_objek_jaminan_table.php | 1 + ..._10_25_014340_create_lokasi_unit_table.php | 37 ++ ...24_10_25_014428_create_view_unit_table.php | 36 ++ module.json | 60 ++- .../activity/progres_activity/index.blade.php | 2 +- resources/views/penilaian/form.blade.php | 200 ++++++--- .../penilaian/otorisator/index.blade.php | 48 ++- .../views/penilaian/otorisator/show.blade.php | 30 +- .../surveyor/components/alat-berat.blade.php | 192 +++++++++ .../components/apartemen-kantor.blade.php | 14 +- .../views/surveyor/components/foto.blade.php | 379 ++++++++++++++++-- .../surveyor/components/inspeksi.blade.php | 164 ++++++-- .../components/tanah-bangunan.blade.php | 2 +- resources/views/surveyor/data/form.blade.php | 41 +- resources/views/surveyor/data/index.blade.php | 6 +- resources/views/surveyor/index.blade.php | 1 + resources/views/teams/form.blade.php | 1 + routes/breadcrumbs.php | 72 ++++ routes/web.php | 10 +- 33 files changed, 1477 insertions(+), 314 deletions(-) create mode 100644 app/Models/Lantai.php create mode 100644 app/Models/ViewUnit.php create mode 100644 database/migrations/2024_10_25_014340_create_lokasi_unit_table.php create mode 100644 database/migrations/2024_10_25_014428_create_view_unit_table.php create mode 100644 resources/views/surveyor/components/alat-berat.blade.php diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index 496f1b4..74bb5f7 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -195,7 +195,7 @@ class ActivityController extends Controller public function dataTablesForActivity(Request $request, $id) { // Query Penilaian dengan relasi yang diperlukan - $query = Penilaian::with(['permohonan', 'permohonan.debiture', 'permohonan.tujuanPenilaian']) + $query = Penilaian::with(['permohonan', 'permohonan.debiture', 'permohonan.tujuanPenilaian', 'permohonan.debiture.documents.jenisJaminan']) ->where(function($q) use ($id) { $q->where('surveyor_id', $id) ->orWhere('penilaian_id', $id) diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index f273b0a..3ae9cde 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -222,7 +222,8 @@ class PenilaianController extends Controller - public function otorisator(Request $request){ + public function otorisator(Request $request) + { $type = $request->route('type'); $header = ''; @@ -248,7 +249,8 @@ class PenilaianController extends Controller return view('lpj::penilaian.otorisator.index', compact('header')); } - public function show($id){ + public function show($id) + { $permohonan = Permohonan::find($id); diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 36b9ae2..d4e30df 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -32,9 +32,14 @@ use Modules\Lpj\Models\Denah; use Modules\Lpj\Models\FotoJaminan; use Modules\Lpj\Models\Lingkungan; use Modules\Lpj\Models\LantaiUnit; +use Modules\Lpj\Models\Lantai; +use Modules\Lpj\Models\ViewUnit; use Modules\Lpj\Models\ObjekJaminan; use Modules\Lpj\Models\RuteJaminan; use Modules\Lpj\Models\AnalisaUnit; +use Modules\Lpj\Models\GolonganMasySekitar; +use Modules\Lpj\Models\TingkatKeramaian; +use Modules\Lpj\Models\LaluLintasLokasi; use Modules\Lpj\Models\SpekBagunanAnalisaDetail; use Modules\Lpj\Http\Requests\SurveyorRequest; use Modules\Lpj\Http\Requests\FormSurveyorRequest; @@ -552,6 +557,8 @@ class SurveyorController extends Controller { $permohonan = $this->getPermohonanJaminanId($id, $jaminanId); + + $branches = Branch::all(); $provinces = Province::all(); @@ -570,6 +577,11 @@ class SurveyorController extends Controller $spekBangunan = SpekBangunan::all(); $saranaPelengkap = SaranaPelengkap::all(); $arahMataAngin = ArahMataAngin::all(); + $lantai = Lantai::all(); + $viewUnit = ViewUnit::all(); + $golMasySekitar = GolonganMasySekitar::all(); + $tingkatKeramaian = TingkatKeramaian::all(); + $laluLintasLokasi = LaluLintasLokasi::all(); $analisa = Analisa::with('analisaTanahBangunan', 'analisaLingkungan', 'analisaFakta', 'jenisJaminan') @@ -597,6 +609,12 @@ class SurveyorController extends Controller 'spekBangunan', 'saranaPelengkap', 'arahMataAngin', + 'lantai', + 'viewUnit', + 'golMasySekitar', + 'tingkatKeramaian', + 'laluLintasLokasi' + )); } @@ -625,10 +643,6 @@ class SurveyorController extends Controller $provinces = Province::all(); $fotoJaminan = FotoJaminan::with(['objekJaminan', 'lantaiUnit' ,'ruteJaminan', 'lingkungan'])->where('permohonan_id', $id)->where('jenis_jaminan_id', $jaminanId)->first(); - - // return response()->json([ - // 'data' => $fotoJaminan, - // ]); return view('lpj::surveyor.components.foto', compact('permohonan', 'surveyor', 'branches', 'provinces', 'fotoJaminan')); } @@ -658,25 +672,18 @@ class SurveyorController extends Controller } + + + private function getHeader(string $type): array + { + return self::HEADERS[$type] ?? []; + } + public function data(Request $request) { $type = $request->route('type'); - - $headers = [ - 'bentuk-tanah' => ['Bentuk Tanah', 'bentuk-tanah'], - 'kontur-tanah' => ['Kontur Tanah', 'kontur-tanah'], - 'posisi-kavling' => ['Posisi Kavling', 'posisi-kavling'], - 'ketinggian-tanah' => ['Ketinggian Tanah', 'ketinggian-tanah'], - 'kondisi-fisik-tanah' => ['Kondisi Fisik Tanah', 'kondisi-fisik-tanah'], - 'jenis-bangunan' => ['Jenis Bangunan', 'jenis-bangunan'], - 'kondisi-bangunan' => ['Kondisi Bangunan', 'kondisi-bangunan'], - 'sifat-bangunan' => ['Sifat Bangunan', 'sifat-bangunan'], - 'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap'], - ]; - - $header = $headers[$type] ?? ''; - + $header = $this->getHeader($request->route('type')); return view('lpj::surveyor.data.index', compact('header')); } @@ -684,21 +691,9 @@ class SurveyorController extends Controller public function createData($type) { - $headers = [ - 'bentuk-tanah' => ['Bentuk Tanah', 'bentuk-tanah'], - 'kontur-tanah' => ['Kontur Tanah', 'kontur-tanah'], - 'posisi-kavling' => ['Posisi Kavling', 'posisi-kavling'], - 'ketinggian-tanah' => ['Ketinggian Tanah', 'ketinggian-tanah'], - 'kondisi-fisik-tanah' => ['Kondisi Fisik Tanah', 'kondisi-fisik-tanah'], - 'jenis-bangunan' => ['Jenis Bangunan', 'jenis-bangunan'], - 'kondisi-bangunan' => ['Kondisi Bangunan', 'kondisi-bangunan'], - 'sifat-bangunan' => ['Sifat Bangunan', 'sifat-bangunan'], - 'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap'], - ]; - - - $header = $headers[$type] ?? ''; - return view('lpj::surveyor.data.form', compact('header')); + $spekKategoriBagunan = SpekKategoritBangunan::all(); + $header = $this->getHeader($type); + return view('lpj::surveyor.data.form', compact('header','spekKategoriBagunan')); } @@ -710,30 +705,21 @@ class SurveyorController extends Controller $type = $request->route('type'); - $modelClasses = [ - 'bentuk-tanah' => BentukTanah::class, - 'kontur-tanah' => KonturTanah::class, - 'posisi-kavling' => PosisiKavling::class, - 'bentuk-tanah' => BentukTanah::class, - 'kontur-tanah' => KonturTanah::class, - 'posisi-kavling' => PosisiKavling::class, - 'ketinggian-tanah' => KetinggianTanah::class, - 'kondisi-fisik-tanah' => KondisiFisikTanah::class, - 'jenis-bangunan' => JenisBangunan::class, - 'kondisi-bangunan' => KondisiBangunan::class, - 'sifat-bangunan' => SifatBangunan::class, - 'sarana-pelengkap' => SaranaPelengkap::class, - ]; + $modelClass = $this->getModelClass($type); - if (!array_key_exists($type, $modelClasses)) { + if (!$modelClass) { return redirect() ->route('basicdata.'. $type .'.index') ->with('error', 'Invalid type specified.'); } - $modelClass = $modelClasses[$type]; - $data = $request->all(); - $data['status'] = true; + if($type == 'spek-bangunan') { + $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; + + } + + + $data = array_merge($validate, ['status' => true]); $modelClass::create($data); return redirect() @@ -757,6 +743,9 @@ class SurveyorController extends Controller 'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan', SpekBangunan::class], 'spek-kategori-bangunan' => ['Spek Kategori Bangunan', 'spek-kategori-bangunan', SpekKategoritBangunan::class], 'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap', SaranaPelengkap::class], + 'lantai-unit' => ['Lantai Unit', 'lantai-unit', Lantai::class], + 'view-unit' => ['View Unit', 'view-unit', ViewUnit::class], + 'gol-mas-sekitar' => ['Golongan Masyarakat Sekitar', 'gol-mas-sekitar', GolonganMasySekitar::class], ]; @@ -769,7 +758,13 @@ class SurveyorController extends Controller $header = $dataMap[$type] ?? ''; $model = $modelClass::findOrFail($id); - return view('lpj::surveyor.data.form', compact('header', 'model')); + if ($type == 'spek-bangunan') { + $spekKategoriBagunan = SpekKategoritBangunan::all(); + + } + + + return view('lpj::surveyor.data.form', compact('header', 'model','spekKategoriBagunan')); } @@ -777,26 +772,22 @@ class SurveyorController extends Controller { $validate = $request->validated(); if ($validate) { - $modelClasses = [ - 'bentuk-tanah' => BentukTanah::class, - 'kontur-tanah' => KonturTanah::class, - 'posisi-kavling' => PosisiKavling::class, - 'ketinggian-tanah' => KetinggianTanah::class, - 'kondisi-fisik-tanah' => KondisiFisikTanah::class, - 'jenis-bangunan' => JenisBangunan::class, - 'kondisi-bangunan' => KondisiBangunan::class, - 'sifat-bangunan' => SifatBangunan::class, - 'sarana-pelengkap' => SaranaPelengkap::class, + $modelClass = $this->getModelClass($type); - ]; + if($type == 'spek-bangunan') { + $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; + + } // Check if the provided type exists in the modelClasses - if (!array_key_exists($type, $modelClasses)) { + if (!$modelClass) { return redirect() ->route('basicdata.' . $type . '.index') ->with('error', 'Invalid type specified.'); } - $modelClass = $modelClasses[$type]; + + + $model = $modelClass::findOrFail($id); $model->update($validate); @@ -817,8 +808,6 @@ class SurveyorController extends Controller //abort(403, 'Sorry! You are not allowed to view users.'); } - // Retrieve data from the database - $models = [ 'Bentuk Tanah' => BentukTanah::class, 'Kontur Tanah' => KonturTanah::class, @@ -828,9 +817,14 @@ class SurveyorController extends Controller 'Jenis Bangunan' => JenisBangunan::class, 'Kondisi Bangunan' => KondisiBangunan::class, 'Sifat Bangunan' => SifatBangunan::class, - // 'Spek Kategori Bangunan' => SpekKategoritBangunan::class, - // 'Spek Bangunan' => SpekBangunan::class, + 'Spek Kategori Bangunan' => SpekKategoritBangunan::class, + 'Spek Bangunan' => SpekBangunan::class, 'Sarana Pelengkap' => SaranaPelengkap::class, + 'Lalu Lintas Depan Lokasi' => LaluLintasLokasi::class, + 'Tingkat Keramaian' => TingkatKeramaian::class, + 'Golongan Masyarakat Sekitar' => GolonganMasySekitar::class, + 'Lantai Unit' => Lantai::class, + 'View Unit' => ViewUnit::class, ]; @@ -840,8 +834,6 @@ class SurveyorController extends Controller throw new InvalidArgumentException("Invalid type: $type"); } - - // Apply search filter if provided if ($request->has('search') && !empty($request->get('search'))) { $search = $request->get('search'); $query->where(function ($q) use ($search) { @@ -897,24 +889,13 @@ class SurveyorController extends Controller { try { - $modelClasses = [ - 'bentuk-tanah' => BentukTanah::class, - 'kontur-tanah' => KonturTanah::class, - 'posisi-kavling' => PosisiKavling::class, - 'ketinggian-tanah' => KetinggianTanah::class, - 'kondisi-fisik-tanah' => KondisiFisikTanah::class, - 'jenis-bangunan' => JenisBangunan::class, - 'kondisi-bangunan' => KondisiBangunan::class, - 'sifat-bangunan' => SifatBangunan::class, - 'sarana-pelengkap' => SaranaPelengkap::class, - ]; + $modelClass = $this->getModelClass($type); - - if (!array_key_exists($type, $modelClasses)) { + if (!$modelClass) { return response()->json(['success' => false, 'message' => 'Invalid type specified.'], 400); } - $modelClass = $modelClasses[$type]; + $model = $modelClass::findOrFail($id); $model->delete(); @@ -948,6 +929,47 @@ class SurveyorController extends Controller ->findOrFail($id); } + public function submitSurveyor(Request $request, $id) + { + $permohonan = Permohonan::find($id); + $permohonan->update([ + 'status' => 'done', + ]); + return redirect() + ->route('surveyor.index') + ->with('success', 'form surveyor submitted successfully'); + + } + + + private function getModelClass(string $type): ?string + { + return $this->modelClasses[$type] ?? null; + } + + + + private $modelClasses = [ + 'bentuk-tanah' => BentukTanah::class, + 'kontur-tanah' => KonturTanah::class, + 'posisi-kavling' => PosisiKavling::class, + 'ketinggian-tanah' => KetinggianTanah::class, + 'kondisi-fisik-tanah' => KondisiFisikTanah::class, + 'jenis-bangunan' => JenisBangunan::class, + 'kondisi-bangunan' => KondisiBangunan::class, + 'sifat-bangunan' => SifatBangunan::class, + 'sarana-pelengkap' => SaranaPelengkap::class, + 'lalu-lintas-lokasi' => LaluLintasLokasi::class, + 'tingkat-keramaian' => TingkatKeramaian::class, + 'gol-mas-sekitar' => GolonganMasySekitar::class, + 'spek-kategori-bangunan' => SpekKategoritBangunan::class, + 'lantai-unit' => Lantai::class, + 'view-unit' => ViewUnit::class, + ]; + + + + private function getCommonData() { return [ @@ -964,21 +986,34 @@ class SurveyorController extends Controller 'spekKategoriBangunan' => SpekKategoritBangunan::all(), 'spekBangunan' => SpekBangunan::all(), 'saranaPelengkap' => SaranaPelengkap::all(), - 'arahMataAngin' => ArahMataAngin::all() + 'arahMataAngin' => ArahMataAngin::all(), + 'lantai' => Lantai::all(), + 'viewUnit' => ViewUnit::all(), + 'golMasySekitar' => GolonganMasySekitar::all(), + 'tingkatKeramaian' => TingkatKeramaian::all(), + 'laluLintasLokasi' => LaluLintasLokasi::all(), + ]; } - public function submitSurveyor(Request $request, $id) - { - $permohonan = Permohonan::find($id); - $permohonan->update([ - 'status' => 'done', - ]); - return redirect() - ->route('surveyor.index') - ->with('success', 'form surveyor submitted successfully'); - - } + private const HEADERS = [ + 'bentuk-tanah' => ['Bentuk Tanah', 'bentuk-tanah'], + 'kontur-tanah' => ['Kontur Tanah', 'kontur-tanah'], + 'posisi-kavling' => ['Posisi Kavling', 'posisi-kavling'], + 'ketinggian-tanah' => ['Ketinggian Tanah', 'ketinggian-tanah'], + 'kondisi-fisik-tanah' => ['Kondisi Fisik Tanah', 'kondisi-fisik-tanah'], + 'jenis-bangunan' => ['Jenis Bangunan', 'jenis-bangunan'], + 'kondisi-bangunan' => ['Kondisi Bangunan', 'kondisi-bangunan'], + 'sifat-bangunan' => ['Sifat Bangunan', 'sifat-bangunan'], + 'sarana-pelengkap' => ['Sarana Pelengkap', 'sarana-pelengkap'], + 'lalu-lintas-lokasi' => ['Lalu Lintas Depan Lokasi', 'lalu-lintas-lokasi'], + 'tingkat-keramaian' => ['Tingkat Keramaian', 'tingkat-keramaian'], + 'gol-mas-sekitar' => ['Golongan Masyarakat Sekitar', 'gol-mas-sekitar'], + 'spek-kategori-bangunan' => ['Spek Kategori Bangunan', 'spek-kategori-bangunan'], + 'spek-bangunan' => ['Spek Bangunan', 'spek-bangunan'], + 'lantai-unit' => ['Lantai Unit', 'lantai-unit'], + 'view-unit' => ['View Unit', 'view-unit'], + ]; } diff --git a/app/Http/Controllers/TeamsController.php b/app/Http/Controllers/TeamsController.php index e360132..a6eb9ca 100644 --- a/app/Http/Controllers/TeamsController.php +++ b/app/Http/Controllers/TeamsController.php @@ -31,20 +31,26 @@ class TeamsController extends Controller * Show the form for creating a new resource. */ public function create() - { +{ - // cek region apakah sudah ada di tabel teams - $regionTeam = Teams::pluck('regions_id')->toArray(); - $region = Regions::whereNotIn('id', $regionTeam)->get(); + $regionTeam = Teams::pluck('regions_id')->toArray(); + $regions = Regions::whereNotIn('id', $regionTeam)->get(); - // cek user apakah sudah ada di tabel teams_users - $userTeam = TeamsUsers::pluck('user_id')->toArray(); - $user = User::whereNotIn('id', $userTeam) - ->with('roles') - ->get(); + $userTeam = TeamsUsers::pluck('user_id')->toArray(); + $usersWithRole = User::whereNotIn('id', $userTeam) + ->with('roles') // Eager load roles + ->get(); - return view('lpj::teams.form', compact('region', 'user')); - } + $user = $usersWithRole->filter(function ($user) { + return $user->roles->contains(function ($role) { + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai'; + }); + }); + + + + return view('lpj::teams.form', compact('regions', 'user')); +} /** * Store a newly created resource in storage. @@ -97,12 +103,19 @@ class TeamsController extends Controller { $teams = Teams::find($id); - $region = Regions::all(); $usedUsers = TeamsUsers::where('teams_id', '!=', $id)->pluck('user_id')->toArray(); - $user = User::whereNotIn('id', $usedUsers) + $usersWithRole = User::whereNotIn('id', $usedUsers) ->with('roles') ->get(); + + + $user = $usersWithRole->filter(function ($user) { + return $user->roles->contains(function ($role) { + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai'; + }); + }); + // Ambil user yang sudah ada di tim ini $selectedUsers = $teams->teamsUsers->pluck('user_id')->toArray(); diff --git a/app/Http/Requests/SurveyorRequest.php b/app/Http/Requests/SurveyorRequest.php index b986f8e..7fbb8b7 100644 --- a/app/Http/Requests/SurveyorRequest.php +++ b/app/Http/Requests/SurveyorRequest.php @@ -4,62 +4,137 @@ namespace Modules\Lpj\Http\Requests; use Illuminate\Foundation\Http\FormRequest; +use Illuminate\Validation\Rule; + class SurveyorRequest extends FormRequest { /** - * Get the validation rules that apply to the request. + * Table mapping for different actionszz */ - public function rules() - : array - { - - $action = $this->input('action'); - - $uniqueTable = [ - 'bentuk-tanah' => 'bentuk_tanah', - 'kontur-tanah' => 'kontur_tanah', - 'posisi-kavling' => 'posisi_kavling', - 'ketinggian-tanah' => 'ketinggian_tanah', - 'kondisi-fisik-tanah' => 'kondisi_fisik_tanah', - 'kondisi-bangunan' => 'kondisi_bangunan', - 'jenis-bangunan' => 'jenis_bangunan', - 'sifat-bangunan' => 'sifat_bangunan', - 'sarana-pelengkap' => 'sarana_pelengkap', - 'lalu_lintas_lokasi' => 'lalu_lintas_lokasi', - 'tingkat-keramaian' => 'tingkat_keramaian', - ]; - - - - $rules = [ - 'name' => 'required|max:255', - - ]; - - $id = $this->route('id'); - - if ($this->method() == 'PUT' || $this->method() == 'PATCH') { - $rules['code'] = 'required|max:50|unique:' . $uniqueTable[$action] . ',code,' . $id; - } else { - - $rules['code'] = 'required|max:50|unique:' . $uniqueTable[$action] . ',code'; - } - return $rules; - } + private const TABLE_MAPPING = [ + 'bentuk-tanah' => 'bentuk_tanah', + 'kontur-tanah' => 'kontur_tanah', + 'posisi-kavling' => 'posisi_kavling', + 'ketinggian-tanah' => 'ketinggian_tanah', + 'kondisi-fisik-tanah' => 'kondisi_fisik_tanah', + 'kondisi-bangunan' => 'kondisi_bangunan', + 'jenis-bangunan' => 'jenis_bangunan', + 'sifat-bangunan' => 'sifat_bangunan', + 'sarana-pelengkap' => 'sarana_pelengkap', + 'lalu-lintas-lokasi' => 'lalu_lintas_lokasi', + 'tingkat-keramaian' => 'tingkat_keramaian', + 'gol-mas-sekitar' => 'gol_mas_sekitar', + 'spek-kategori-bangunan' => 'spek_kategori_bangunan', + 'spek-bangunan' => 'spek_bangunan', + 'lantai-unit' => 'lantai', + 'view-unit' => 'view_unit', + ]; /** * Determine if the user is authorized to make this request. */ - public function authorize() - : bool + public function authorize(): bool { return true; } - protected function prepareForValidation() + /** + * Get the validation rules that apply to the request. + */ + public function rules(): array + { + return array_merge( + $this->getBaseRules(), + $this->getActionSpecificRules(), + $this->getCodeValidationRules() + ); + } + + /** + * Get base validation rules + */ + private function getBaseRules(): array + { + return [ + 'name' => 'required|max:255', + ]; + } + + /** + * Get action specific validation rules + */ + private function getActionSpecificRules(): array + { + $action = $this->input('action'); + + return match ($action) { + 'spek-bangunan' => [ + 'spek_kategori_bangunan_id' => [ + 'required' + ], + ], + // Add more action specific rules here + default => [], + }; + } + + /** + * Get code validation rules + */ + private function getCodeValidationRules(): array + { + $action = $this->input('action'); + $table = self::TABLE_MAPPING[$action] ?? null; + + if (!$table) { + return []; + } + + $rules = ['required', 'max:50']; + + if ($this->isMethod('PUT') || $this->isMethod('PATCH')) { + $rules[] = Rule::unique($table, 'code')->ignore($this->route('id')); + } else { + $rules[] = Rule::unique($table, 'code'); + } + + return ['code' => $rules]; + } + + /** + * Prepare the data for validation. + */ + protected function prepareForValidation(): void { $this->merge([ 'status' => true, ]); } + + /** + * Get custom messages for validator errors. + */ + public function messages(): array + { + return [ + 'name.required' => 'Nama harus diisi', + 'name.max' => 'Nama tidak boleh lebih dari 255 karakter', + 'code.required' => 'Kode harus diisi', + 'code.max' => 'Kode tidak boleh lebih dari 50 karakter', + 'code.unique' => 'Kode sudah digunakan', + 'spek_kategori_bangunan_id.required' => 'Kategori bangunan harus dipilih', + ]; + } + + /** + * Get custom attributes for validator errors. + */ + public function attributes(): array + { + return [ + 'name' => 'Nama', + 'code' => 'Kode', + 'spek_kategori_bangunan_id' => 'Kategori Bangunan', + ]; + } } diff --git a/app/Models/GolonganMasySekitar.php b/app/Models/GolonganMasySekitar.php index 5140710..a4d1f9a 100644 --- a/app/Models/GolonganMasySekitar.php +++ b/app/Models/GolonganMasySekitar.php @@ -10,10 +10,12 @@ class GolonganMasySekitar extends Model { use HasFactory; + protected $table = 'gol_mas_sekitar'; /** * The attributes that are mass assignable. */ - protected $fillable = []; + protected $fillable = ['code', 'name', 'status']; + protected static function newFactory(): GolonganMasySekitarFactory { diff --git a/app/Models/Lantai.php b/app/Models/Lantai.php new file mode 100644 index 0000000..3330df1 --- /dev/null +++ b/app/Models/Lantai.php @@ -0,0 +1,23 @@ +unsignedBigInteger('permohonan_id'); $table->foreign('permohonan_id')->references('id')->on('permohonan'); $table->string('luas'); + $table->unsignedBigInteger('jenis_jaminan_id'); $table->char('authorized_status', 1)->nullable(); $table->timestamp('authorized_at')->nullable(); $table->unsignedBigInteger('authorized_by')->nullable(); diff --git a/database/migrations/2024_10_16_153841_create_denah_table.php b/database/migrations/2024_10_16_153841_create_denah_table.php index 308a7ad..71475ff 100644 --- a/database/migrations/2024_10_16_153841_create_denah_table.php +++ b/database/migrations/2024_10_16_153841_create_denah_table.php @@ -18,7 +18,7 @@ return new class () extends Migration { $table->string('foto_denah'); $table->string('luas'); - + $table->unsignedBigInteger('jenis_jaminan_id'); $table->char('authorized_status', 1)->nullable(); $table->timestamp('authorized_at')->nullable(); $table->unsignedBigInteger('authorized_by')->nullable(); diff --git a/database/migrations/2024_10_16_153902_create_foto_jaminan_table.php b/database/migrations/2024_10_16_153902_create_foto_jaminan_table.php index f0e1000..3c7f514 100644 --- a/database/migrations/2024_10_16_153902_create_foto_jaminan_table.php +++ b/database/migrations/2024_10_16_153902_create_foto_jaminan_table.php @@ -16,7 +16,7 @@ return new class () extends Migration { $table->foreign('permohonan_id')->references('id')->on('permohonan'); $table->string('pendamping'); - + $table->unsignedBigInteger('jenis_jaminan_id'); $table->char('authorized_status', 1)->nullable(); $table->timestamp('authorized_at')->nullable(); $table->unsignedBigInteger('authorized_by')->nullable(); diff --git a/database/migrations/2024_10_16_153918_create_objek_jaminan_table.php b/database/migrations/2024_10_16_153918_create_objek_jaminan_table.php index b55f7eb..3d02a38 100644 --- a/database/migrations/2024_10_16_153918_create_objek_jaminan_table.php +++ b/database/migrations/2024_10_16_153918_create_objek_jaminan_table.php @@ -19,6 +19,7 @@ return new class () extends Migration { $table->string('name'); $table->string('foto_objek'); + $table->unsignedBigInteger('jenis_jaminan_id'); $table->char('authorized_status', 1)->nullable(); $table->timestamp('authorized_at')->nullable(); $table->unsignedBigInteger('authorized_by')->nullable(); diff --git a/database/migrations/2024_10_25_014340_create_lokasi_unit_table.php b/database/migrations/2024_10_25_014340_create_lokasi_unit_table.php new file mode 100644 index 0000000..cc51e6d --- /dev/null +++ b/database/migrations/2024_10_25_014340_create_lokasi_unit_table.php @@ -0,0 +1,37 @@ +id(); + $table->string('code')->unique()->index(); + $table->string('name'); + $table->boolean('status')->default(true); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('lokasi_unit'); + } +}; diff --git a/database/migrations/2024_10_25_014428_create_view_unit_table.php b/database/migrations/2024_10_25_014428_create_view_unit_table.php new file mode 100644 index 0000000..5a99cfe --- /dev/null +++ b/database/migrations/2024_10_25_014428_create_view_unit_table.php @@ -0,0 +1,36 @@ +id(); + $table->string('code')->unique()->index(); + $table->string('name'); + $table->boolean('status')->default(true); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('view_unit'); + } +}; diff --git a/module.json b/module.json index 427bfca..ed66671 100644 --- a/module.json +++ b/module.json @@ -344,7 +344,7 @@ "roles": ["administrator", "admin"] }, { - "title": "Bentuk Tanah", + "title": "Bentuk", "path": "basicdata.bentuk-tanah", "classes": "", "attributes": [], @@ -415,8 +415,66 @@ "attributes": [], "permission": "", "roles": ["surveyor"] + }, + + { + "title": "Lalu Lintas Sekitar", + "path": "basicdata.lalu-lintas-lokasi", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] + }, + { + "title": "Tingkat Keramaian", + "path": "basicdata.tingkat-keramaian", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] + }, + { + "title": "Masyarakat Sekitar", + "path": "basicdata.gol-mas-sekitar", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] + }, + { + "title": "Lantai Unit", + "path": "basicdata.lantai-unit", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] + }, + { + "title": "View unit", + "path": "basicdata.view-unit", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] + }, + { + "title": "Spesifikasi Bangunan", + "path": "basicdata.spek-bangunan", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] + }, + { + "title": "Kategori Speksikasi Bangunan", + "path": "basicdata.spek-kategori-bangunan", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["surveyor"] } + ] } ], diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index 7f824da..67942a7 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -180,7 +180,7 @@ }, jenis_asset: { title: 'Jenis Asset', - render: (item, data) => `${data.jenis_asset || ''}`, + render: (item, data) => `${data.permohonan.debiture.documents.map(d => d.jenis_jaminan.name) || ''}`, }, jenis_report: { title: 'Jenis Report', diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index 07e7061..8ac5c47 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -280,15 +280,14 @@ +
- + + type="text" value="{{ $jenisPenilaian->name }}" readonly> @error('jenis_penilaian_id') {{ $message }} @enderror @@ -300,9 +299,7 @@ Tim Penilai yang di tunjuk
- + @error('teams_id') @@ -311,62 +308,115 @@
+
- +
+ +
- @error('surveyor_id') + @error('surveyor_selection') {{ $message }} @enderror
- -
- -
- - @error('penilaian_id') - {{ $message }} - @enderror + -
- -
- - @error('penilai_surveyor_id') - {{ $message }} - @enderror + + -
- -
- -
- - -
@@ -473,8 +516,51 @@
@endsection @push('scripts') - + + + + +@endpush diff --git a/resources/views/surveyor/components/alat-berat.blade.php b/resources/views/surveyor/components/alat-berat.blade.php new file mode 100644 index 0000000..c010e38 --- /dev/null +++ b/resources/views/surveyor/components/alat-berat.blade.php @@ -0,0 +1,192 @@ + + +
+ + +
+

Identitas Debitur

+
+
+ +
+ + + @error('bentuk_tanah') + {{ $message }} + @enderror +
+
+ +
+

Lokasi Jaminan

+
+
+ @php + $inputDataLoaksi = []; + + $inputDataLoaksi = [ + ['label' => 'Nama Jalan', 'index' => 0], + ['label' => 'Perumahan/Gang', 'index' => 1], + ['label' => 'Blok/Nomor', 'index' => 2], + ['label' => 'Desa/Kelurahan', 'index' => 3], + ['label' => 'Kecamatan', 'index' => 4], + ['label' => 'Kota/Kotamadya', 'index' => 5], + ['label' => 'Provinsi', 'index' => 6] + ]; + + @endphp + + @if (count($inputDataLoaksi) > 0) + @foreach ($inputDataLoaksi as $item) + +
+ +
+ + + @error('bentuk_tanah') + {{ $message }} + @enderror +
+
+ @endforeach + @endif +
+
+ + +
+
+

Data Data Jaminan

+
+
+
+ +
+ + + @error('hadapMataAngin') + {{ $message }} + @enderror +
+
+ + @php + $inputDataJaminan = []; + + $inputDataJaminan = [ + ['label' => 'Nomor Lambung', 'index' => 0], + ['label' => 'Model Unit', 'index' => 1], + ['label' => 'Tahun Pembuatan', 'index' => 2], + ['label' => 'Merk', 'index' => 3], + ['label' => 'Negara Pembuat', 'index' => 4], + ['label' => 'Tahun Pembelian', 'index' => 5], + ['label' => 'Nomor Faktur/Invoice', 'index' => 6], + ['label' => 'Nomor Kontrak Pembelian', 'index' => 7], + ['label' => 'Nama Pemilik', 'index' => 8], + ['label' => 'Alamaat Pemilik', 'index' => 9], + ['label' => 'Nomor Asuransi', 'index' => 10], + ['label' => 'Nomor Rangka', 'index' => 11], + ['label' => 'Nomor Mesin', 'index' => 12], + ['label' => 'Hour Mesin', 'index' => 13], + ['label' => 'Overhaul Mesin', 'index' => 14], + ]; + + @endphp + + @if (count($inputDataJaminan) > 0) + @foreach ($inputDataJaminan as $item) + +
+ +
+ + + @error('bentuk_tanah') + {{ $message }} + @enderror +
+
+ @endforeach + @endif +
+
+ + + +
+
+

Kondisi Objek Jaminan

+
+
+
+ +
+ + + @error('hadapMataAngin') + {{ $message }} + @enderror +
+
+ + @php + $kondisiObjeck = []; + + $kondisiObjeck = [ + ['label' => 'Mesin dan Panel Instrument', 'index' => 0], + ['label' => 'Fungsi mesin dan panel instrument', 'index' => 1], + ['label' => 'Interior (jok, dll)', 'index' => 2], + ['label' => 'Rangka dan Karoseri', 'index' => 3], + ['label' => 'Ban', 'index' => 4], + ['label' => 'Velg', 'index' => 5], + ['label' => 'Air Conditioner', 'index' => 6], + ['label' => 'Aksesoris Tambahan lainnya', 'index' => 7], + ['label' => 'LCD', 'index' => 8], + ['label' => 'Perlengkapan Keamanan', 'index' => 9], + ['label' => 'Asuransi', 'index' => 10], + ]; + + @endphp + + @if (count($kondisiObjeck) > 0) + @foreach ($kondisiObjeck as $item) + +
+ +
+ + + @error('bentuk_tanah') + {{ $message }} + @enderror +
+
+ @endforeach + @endif +
+
diff --git a/resources/views/surveyor/components/apartemen-kantor.blade.php b/resources/views/surveyor/components/apartemen-kantor.blade.php index 05e0adb..28cb7e8 100644 --- a/resources/views/surveyor/components/apartemen-kantor.blade.php +++ b/resources/views/surveyor/components/apartemen-kantor.blade.php @@ -1,5 +1,5 @@
-
+

Analisa Unit

@@ -104,8 +104,8 @@ class="input tomselect w-full @error('lantai') border-danger bg-danger-light @enderror" name="lantai"> - @if (isset($posisiKavling)) - @foreach ($posisiKavling as $item) + @if (isset($lantai)) + @foreach ($lantai as $item) @endforeach @endif @@ -126,8 +126,8 @@ class="input tomselect w-full @error('view') border-danger bg-danger-light @enderror" name="view"> - @if (isset($kondisiFisikTanah)) - @foreach ($kondisiFisikTanah as $item) + @if (isset($viewUnit)) + @foreach ($viewUnit as $item) @endforeach @endif @@ -146,8 +146,8 @@ class="input tomselect w-full @error('bentuk_unit') border-danger bg-danger-light @enderror" name="bentuk_unit"> - @if (isset($kondisiFisikTanah)) - @foreach ($kondisiFisikTanah as $item) + @if (isset($bentukTanah)) + @foreach ($bentukTanah as $item) @endforeach @endif diff --git a/resources/views/surveyor/components/foto.blade.php b/resources/views/surveyor/components/foto.blade.php index 4ca2845..b31698f 100644 --- a/resources/views/surveyor/components/foto.blade.php +++ b/resources/views/surveyor/components/foto.blade.php @@ -5,6 +5,7 @@ @endsection --}} @section('content') +
@@ -120,7 +121,6 @@
-
+ +

Rute Menuju Lokasi

@@ -177,25 +179,33 @@ @if (isset($fotoJaminan)) @foreach ($fotoJaminan->ruteJaminan as $item) - + @if (isset($item->foto_rute)) + Gambar Pendamping + @endif
- @if (isset($item->foto_rute)) - Gambar Pendamping - @endif - - - -
+ +
+ + + +
+ + +
@error('foto_rute.*') {{ $message }} @@ -211,9 +221,17 @@ - - + +
+ + + +
+
+
@@ -289,7 +314,7 @@
-
+
@@ -336,10 +361,16 @@ - - +
+ + + +
+
+
+ +
+
+ + + + + @endsection @push('scripts') + + + + @include('lpj::surveyor.js.camera-editor') +@endpush diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 556342e..2ea8c02 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -550,7 +550,8 @@ Breadcrumbs::for('basicdata.editData', function (BreadcrumbTrail $trail, $type = $otorisatorSurveyor = [ 'pelaporan' => 'Pelaporan', 'pembayaran' => 'Pembayaran', - 'pembayaran' => 'Pembayaran' + 'pembatalan' => 'Pembatalan', + 'sla' => 'SLA', ]; foreach ($otorisatorSurveyor as $route => $title) { From e00ba0675411e418efcf88fc399308f6406abd77 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Wed, 30 Oct 2024 15:30:54 +0700 Subject: [PATCH 008/100] Mengambil Tanggal Konfirmasi Kunjungan dari tabel penilaian --- resources/views/penilai/show.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/penilai/show.blade.php b/resources/views/penilai/show.blade.php index 3087202..107256e 100644 --- a/resources/views/penilai/show.blade.php +++ b/resources/views/penilai/show.blade.php @@ -85,7 +85,7 @@

- {{ formatTanggalIndonesia($permohonan->created_at) }}

+ {{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}

From 5343c424b1a17594d7929b8346b99d35f7f64747 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 31 Oct 2024 10:03:19 +0700 Subject: [PATCH 009/100] Add PDF preview feature in detail-jaminan component Introduced a "Preview" button that allows users to view PDF documents directly within the application. Added a modal for PDF viewing and included scripts to handle PDF embedding and modal visibility. --- .../views/component/detail-jaminan.blade.php | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index b710872..66005fb 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -74,8 +74,8 @@ @if(isset($detail->dokumen_jaminan)) - {{ basename($detail->dokumen_jaminan) }} - + Download + Preview @endif @@ -95,3 +95,29 @@ @endforeach
+ + + + +@push('scripts') + + +@endpush From 3346c350ccb97f7d01a78ddc6a96ed3ea7f5dd3b Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Thu, 31 Oct 2024 13:59:37 +0700 Subject: [PATCH 010/100] Mengubah menjadi freetext di nomor ijin usaha di tambah kjpp --- resources/views/kjpp/create.blade.php | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) diff --git a/resources/views/kjpp/create.blade.php b/resources/views/kjpp/create.blade.php index abb7af3..41284bb 100644 --- a/resources/views/kjpp/create.blade.php +++ b/resources/views/kjpp/create.blade.php @@ -80,28 +80,8 @@
- + @error('nomor_ijin_usaha') {{ $message }} @enderror From 1d1492b636e7970c2a7131d8e63a74956110bd29 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 31 Oct 2024 14:14:48 +0700 Subject: [PATCH 011/100] Add PDF preview feature and improve permohonan management Introduced a "Preview" button for jaminan documents to view PDFs directly. Refactored Permohonan management to include a show view and print functionality, and updated relevant views and routes accordingly. --- app/Http/Controllers/PermohonanController.php | 16 ++++++++++++ .../views/component/detail-jaminan.blade.php | 26 +------------------ .../debitur/components/jaminan.blade.php | 6 ++++- resources/views/permohonan/index.blade.php | 19 +++++++++++--- routes/breadcrumbs.php | 6 +++++ routes/web.php | 1 + 6 files changed, 44 insertions(+), 30 deletions(-) diff --git a/app/Http/Controllers/PermohonanController.php b/app/Http/Controllers/PermohonanController.php index 2cd35d0..e2a3da4 100644 --- a/app/Http/Controllers/PermohonanController.php +++ b/app/Http/Controllers/PermohonanController.php @@ -3,6 +3,7 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; + use Barryvdh\DomPDF\Facade\Pdf; use Exception; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; @@ -304,4 +305,19 @@ return redirect()->route('authorization.index')->with('success', 'Permohonan updated successfully'); } + + public function show($id) + { + $permohonan = Permohonan::find($id); + + return view('lpj::permohonan.show', compact('permohonan')); + } + + public function print($id){ + $permohonan = Permohonan::find($id); + return view('lpj::permohonan.print', compact('permohonan')); + +// $pdf = Pdf::loadView('lpj::permohonan.print', compact('permohonan')); + // return $pdf->stream(); + } } diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index 66005fb..ab9c649 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -96,28 +96,4 @@
- - - -@push('scripts') - - -@endpush +@include('lpj::component.pdfviewer') diff --git a/resources/views/debitur/components/jaminan.blade.php b/resources/views/debitur/components/jaminan.blade.php index d25496c..437e4ab 100644 --- a/resources/views/debitur/components/jaminan.blade.php +++ b/resources/views/debitur/components/jaminan.blade.php @@ -68,7 +68,10 @@ {{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }} - {{ basename($detail->dokumen_jaminan) }} +
+ Download + Preview +
@@ -129,6 +132,7 @@ +@include('lpj::component.pdfviewer') @push('scripts') + +@endpush diff --git a/resources/views/permohonan/print.blade.php b/resources/views/permohonan/print.blade.php new file mode 100644 index 0000000..4c6e47f --- /dev/null +++ b/resources/views/permohonan/print.blade.php @@ -0,0 +1,221 @@ +@extends('layouts.auth') +@section('content') +
+
+
+
+
+
+

+ Nomor Register Permohonan +

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

+ Pemohon +

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

+ Tujan Permohonan +

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

+ Status Permohonan +

+ + : {{ ucwords($permohonan->status) }} + +
+ +
+

+ Cabang Pemohon +

+ + : {{ $permohonan->user->branch->name }} + +
+ +
+

+ Tanggal Permohonan +

+ + : {{ formatTanggalIndonesia($permohonan->created_at) }} + +
+
+
+
+
+
+
+
+
+

+ 1. Fasilitas Kredit +

+
+
+
+

+ Jenis Fasilitas +

+ + : {{ $permohonan->jenisFasilitasKredit->name }} + +
+ +
+

+ Nilai Plafond +

+ + : {{ $permohonan->nilaiPlafond->name }} + +
+ +
+

+ Nilai NJOP +

+ + : {{ $permohonan->nilai_njop }} + +
+
+
+ +
+
+

+ 2. Identitas Debutur +

+
+
+
+
+ + + + + + + + + + + + + + + + + + + + + + +
+ Name + + {{ $permohonan->debiture->name ?? "" }} +
+ Cabang + + {{ $permohonan->debiture->branch->name ?? "" }} +
+ CIF + + {{ $permohonan->debiture->cif ?? "" }} +
+ 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 ?? "" }} +
+
+
+
+
+
+
+
+
+

+ Data Jaminan +

+
+
+ @foreach($permohonan->debiture->documents as $dokumen) +
+ + Jaminan {{ $loop->index + 1 }} + + +
+

+ Pemilik Jaminan +

+ + : {{ $dokumen->pemilik->name?? "" }} + +
+
+

+ Jenis Jaminan: +

+ + : {{ $dokumen->jenisJaminan->name?? "" }} + +
+
+

+ Hubungan Pemilik Jaminan: +

+ + : {{ $dokumen->pemilik->hubungan_pemilik->name?? "" }} + +
+
+

+ Alamat Pemilik Jaminan: +

+ + : {{ $dokumen->pemilik->address ?? ""}}, +
{{ $dokumen->pemilik->village->name ?? "" }}, {{ $dokumen->pemilik->district->name ?? "" }}, {{ $dokumen->pemilik->city->name ?? "" }}, {{ $dokumen->pemilik->province->name ?? "" }} - {{ $dokumen->pemilik->village->postal_code ?? "" }} +
+
+
+ @endforeach +
+
+
+
+@endsection + +@push('scripts') + +@endpush diff --git a/resources/views/permohonan/show.blade.php b/resources/views/permohonan/show.blade.php new file mode 100644 index 0000000..8f8ac0d --- /dev/null +++ b/resources/views/permohonan/show.blade.php @@ -0,0 +1,189 @@ +@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 }} + +
+ +
+
+ +
+
+

+ Fasilitas Kredit +

+
+
+
+

+ Jenis Fasilitas +

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

+ Nilai Plafond: +

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

+ Nilai NJOP: +

+ + {{ $permohonan->nilai_njop }} + +
+
+
+
+
+
+

+ 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 ?? "" }} +
+
+
+
+
+ @include('lpj::component.detail-jaminan') + +
+ + + @csrf + + +
+
+@endsection From bccac76c6ad6b366fafb1ad561bb04bc57707aff Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 31 Oct 2024 14:24:44 +0700 Subject: [PATCH 013/100] Add multiple database seeders This commit introduces seeders for various entities in the database, including HubunganPemilikJaminan, JenisFasilitasKredit, and others. These seeders populate the database with initial data for testing and development purposes. --- app/Http/Controllers/PenilaiController.php | 135 +++++++++++++++ database/seeders/ArahMataAnginSeeder.php | 42 +++++ database/seeders/BranchSeeder.php | 27 +++ database/seeders/CurrencySeeder.php | 48 ++++++ database/seeders/DebitureSeeder.php | 158 ++++++++++++++++++ .../seeders/DetailDokumenJaminanSeeder.php | 139 +++++++++++++++ database/seeders/DetailPenawaranSeeder.php | 90 ++++++++++ database/seeders/DokumenJaminanSeeder.php | 66 ++++++++ .../seeders/HubunganPemilikJaminanSeeder.php | 36 ++++ .../seeders/HubunganPenghuniJaminanSeeder.php | 33 ++++ database/seeders/IjinUsahaSeeder.php | 39 +++++ database/seeders/JenisDokumenSeeder.php | 68 ++++++++ .../seeders/JenisFasilitasKreditSeeder.php | 90 ++++++++++ database/seeders/JenisJaminanSeeder.php | 73 ++++++++ database/seeders/JenisLaporanSeeder.php | 32 ++++ .../seeders/JenisLegalitasJaminanSeeder.php | 90 ++++++++++ database/seeders/JenisPenilaianSeeder.php | 30 ++++ database/seeders/KJPPSeeder.php | 102 +++++++++++ database/seeders/LpjDatabaseSeeder.php | 48 ++++-- database/seeders/NilaiPlatformSeeder.php | 45 +++++ database/seeders/PemilikJaminanSeeder.php | 118 +++++++++++++ database/seeders/PenawaranSeeder.php | 46 +++++ database/seeders/PenilaianSeeder.php | 51 ++++++ database/seeders/PermohonanSeeder.php | 126 ++++++++++++++ database/seeders/RegionSeeder.php | 30 ++++ database/seeders/StatusPermohonanSeeder.php | 128 ++++++++++++++ .../seeders/TujuanPenilaianKJPPSeeder.php | 46 +++++ database/seeders/TujuanPenilaianSeeder.php | 95 +++++++++++ 28 files changed, 2020 insertions(+), 11 deletions(-) create mode 100644 app/Http/Controllers/PenilaiController.php create mode 100644 database/seeders/ArahMataAnginSeeder.php create mode 100644 database/seeders/BranchSeeder.php create mode 100644 database/seeders/CurrencySeeder.php create mode 100644 database/seeders/DebitureSeeder.php create mode 100644 database/seeders/DetailDokumenJaminanSeeder.php create mode 100644 database/seeders/DetailPenawaranSeeder.php create mode 100644 database/seeders/DokumenJaminanSeeder.php create mode 100644 database/seeders/HubunganPemilikJaminanSeeder.php create mode 100644 database/seeders/HubunganPenghuniJaminanSeeder.php create mode 100644 database/seeders/IjinUsahaSeeder.php create mode 100644 database/seeders/JenisDokumenSeeder.php create mode 100644 database/seeders/JenisFasilitasKreditSeeder.php create mode 100644 database/seeders/JenisJaminanSeeder.php create mode 100644 database/seeders/JenisLaporanSeeder.php create mode 100644 database/seeders/JenisLegalitasJaminanSeeder.php create mode 100644 database/seeders/JenisPenilaianSeeder.php create mode 100644 database/seeders/KJPPSeeder.php create mode 100644 database/seeders/NilaiPlatformSeeder.php create mode 100644 database/seeders/PemilikJaminanSeeder.php create mode 100644 database/seeders/PenawaranSeeder.php create mode 100644 database/seeders/PenilaianSeeder.php create mode 100644 database/seeders/PermohonanSeeder.php create mode 100644 database/seeders/RegionSeeder.php create mode 100644 database/seeders/StatusPermohonanSeeder.php create mode 100644 database/seeders/TujuanPenilaianKJPPSeeder.php create mode 100644 database/seeders/TujuanPenilaianSeeder.php diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php new file mode 100644 index 0000000..6b2a0c0 --- /dev/null +++ b/app/Http/Controllers/PenilaiController.php @@ -0,0 +1,135 @@ +find($id); + + return view('lpj::penilai.show', 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) + { + // + } + + /** + * Remove the specified resource from storage. + */ + public function destroy($id) + { + // + } + + public function dataForDatatables(Request $request) + { + if (is_null($this->user) || !$this->user->can('penilai.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query = Permohonan::query()->where('status', '=', 'done'); + + // 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->orWhereRelation('debiture', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('branch', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('user', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('tujuanPenilaian', 'name', 'LIKE', '%' . $search . '%'); + $q->orWhereRelation('jenisfasilitasKredit', 'name', 'LIKE', '%' . $search . '%'); + }); + } + + // Apply sorting if provided + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { + $order = $request->get('sortOrder'); + $column = $request->get('sortField'); + $query->orderBy($column, $order); + } + + // Get the total count of records + $totalRecords = $query->count(); + + // Apply pagination if provided + if ($request->has('page') && $request->has('size')) { + $page = $request->get('page'); + $size = $request->get('size'); + $offset = ($page - 1) * $size; // Calculate the offset + + $query->skip($offset)->take($size); + } + + // Get the filtered count of records + $filteredRecords = $query->count(); + + // Get the data for the current page + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'jenisfasilitasKredit'])->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, + ]); + } +} diff --git a/database/seeders/ArahMataAnginSeeder.php b/database/seeders/ArahMataAnginSeeder.php new file mode 100644 index 0000000..1e012ea --- /dev/null +++ b/database/seeders/ArahMataAnginSeeder.php @@ -0,0 +1,42 @@ + 'Utara', + ], + [ + 'name' => 'Timur Laut', + ], + [ + 'name' => 'Timur', + ], + [ + 'name' => 'Tenggara', + ], + [ + 'name' => 'Selatan', + ], + [ + 'name' => 'Barat Daya', + ], + [ + 'name' => 'Barat', + ], + [ + 'name' => 'Barat Laut', + ], + ]); + } +} diff --git a/database/seeders/BranchSeeder.php b/database/seeders/BranchSeeder.php new file mode 100644 index 0000000..65a64a1 --- /dev/null +++ b/database/seeders/BranchSeeder.php @@ -0,0 +1,27 @@ + 'C01', + 'name' => 'KPNO', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ] + ]); + } +} diff --git a/database/seeders/CurrencySeeder.php b/database/seeders/CurrencySeeder.php new file mode 100644 index 0000000..f75a763 --- /dev/null +++ b/database/seeders/CurrencySeeder.php @@ -0,0 +1,48 @@ + 'IDR', + 'name' => 'Rupiah', + 'decimal_places' => 2, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'code' => 'MYR', + 'name' => 'Ringgit', + 'decimal_places' => 2, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'code' => 'SAR', + 'name' => 'Riyadh', + 'decimal_places' => 2, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/DebitureSeeder.php b/database/seeders/DebitureSeeder.php new file mode 100644 index 0000000..70b9336 --- /dev/null +++ b/database/seeders/DebitureSeeder.php @@ -0,0 +1,158 @@ + 1, + 'cif' => '1234567890', + 'name' => 'Willy', + 'npwp' => '123455432109876', + 'email' => 'w@gmail.com', + 'phone' => '08113242341', + 'nomor_rekening' => '1081666666', + 'province_code' => '31', + 'city_code' => '31.74', + 'district_code' => '31.74.09', + 'village_code' => '31.74.09.1003', + 'postal_code' => '12630', + 'address' => null, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'branch_id' => 1, + 'cif' => '0987654321', + 'name' => 'Antonius Ginting', + 'npwp' => '234567890123456', + 'email' => 'x@gmail.com', + 'phone' => '081234567891', + 'nomor_rekening' => '987654310', + 'province_code' => '31', + 'city_code' => '31.71', + 'district_code' => '31.71.06', + 'village_code' => '31.71.06.1001', + 'postal_code' => '10310', + 'address' => 'Jl. Menteng Tengah No.66', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'branch_id' => 1, + 'cif' => '1518467', + 'name' => 'PT ABCD SEJATI', + 'npwp' => '00185260002', + 'email' => 'abcd@ag.co.id', + 'phone' => '081111555', + 'nomor_rekening' => '0082346', + 'province_code' => '31', + 'city_code' => '31.74', + 'district_code' => '31.74.04', + 'village_code' => '31.74.04.1005', + 'postal_code' => '10420', + 'address' => 'Jl. Raya Kwitang No. 105, Senen, Kwitang, Jakarta Pusat', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'branch_id' => 1, + 'cif' => '12345', + 'name' => 'Testing', + 'npwp' => '1029280183912111', + 'email' => 'testing@email.com', + 'phone' => '098172386', + 'nomor_rekening' => '12345', + 'province_code' => '11', + 'city_code' => '11.01', + 'district_code' => '11.01.01', + 'village_code' => '11.01.01.2001', + 'postal_code' => '23773', + 'address' => 'alamat', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'branch_id' => 1, + 'cif' => '0000000000', + 'name' => 'Gartika Pertiwi', + 'npwp' => '123456789101112', + 'email' => 'Gartika_Pertiwi@gmail.com', + 'phone' => '1234567', + 'nomor_rekening' => '1234567', + 'province_code' => '31', + 'city_code' => '31.71', + 'district_code' => '31.71.04', + 'village_code' => '31.71.04.1005', + 'postal_code' => '10420', + 'address' => null, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'branch_id' => 1, + 'cif' => '1235464575', + 'name' => 'Fleming', + 'npwp' => '123455432109876', + 'email' => 'x@gmail.com', + 'phone' => '08113242341', + 'nomor_rekening' => '1081666666', + 'province_code' => '31', + 'city_code' => '31.74', + 'district_code' => '31.74.09', + 'village_code' => '31.74.09.1001', + 'postal_code' => '12620', + 'address' => 'testt', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'branch_id' => 1, + 'cif' => '1234689743', + 'name' => 'Testing 2', + 'npwp' => '1234689743418451', + 'email' => 'testing@mail.com', + 'phone' => '081385777611', + 'nomor_rekening' => '3575467279562', + 'province_code' => '31', + 'city_code' => '31.71', + 'district_code' => '31.71.06', + 'village_code' => '31.71.06.1001', + 'postal_code' => '10310', + 'address' => 'Jl. Menteng Raya no. 13', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 3, + 'updated_by' => 3 + ], + ]); + } +} diff --git a/database/seeders/DetailDokumenJaminanSeeder.php b/database/seeders/DetailDokumenJaminanSeeder.php new file mode 100644 index 0000000..59c5f36 --- /dev/null +++ b/database/seeders/DetailDokumenJaminanSeeder.php @@ -0,0 +1,139 @@ + 'Tanah Bangunan', + 'dokumen_jaminan_id' => 1, + 'jenis_legalitas_jaminan_id' => 1, + 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 1, + 'jenis_legalitas_jaminan_id' => 3, + 'dokumen_jaminan' => 'jaminan/1/2/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 1, + 'jenis_legalitas_jaminan_id' => 7, + 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 1, + 'jenis_legalitas_jaminan_id' => 8, + 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 1, + 'jenis_legalitas_jaminan_id' => 9, + 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 2, + 'jenis_legalitas_jaminan_id' => 1, + 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 2, + 'jenis_legalitas_jaminan_id' => 3, + 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 2, + 'jenis_legalitas_jaminan_id' => 7, + 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 2, + 'jenis_legalitas_jaminan_id' => 8, + 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tanah Bangunan', + 'dokumen_jaminan_id' => 2, + 'jenis_legalitas_jaminan_id' => 9, + 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Gedung', + 'dokumen_jaminan_id' => 3, + 'jenis_legalitas_jaminan_id' => 1, + 'dokumen_jaminan' => 'jaminan/7/3/Test.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/DetailPenawaranSeeder.php b/database/seeders/DetailPenawaranSeeder.php new file mode 100644 index 0000000..b33bd83 --- /dev/null +++ b/database/seeders/DetailPenawaranSeeder.php @@ -0,0 +1,90 @@ + 1, + 'penawaran_id' => 1, + 'biaya_penawaran' => 15000000, + 'attachment' => 'Test.pdf', + 'dokumen_persetujuan' => 'uploads/penawaran/1_1_Test_2_1729826174.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'kjpp_rekanan_id' => 2, + 'penawaran_id' => 1, + 'biaya_penawaran' => 30000000, + 'attachment' => 'Test.pdf', + 'dokumen_persetujuan' => 'uploads/penawaran/2_2_Test_2_1729826198.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'kjpp_rekanan_id' => 3, + 'penawaran_id' => 1, + 'biaya_penawaran' => 20000000, + 'attachment' => 'Test.pdf', + 'dokumen_persetujuan' => 'uploads/penawaran/3_3_Test_2_1729826215.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'kjpp_rekanan_id' => 1, + 'penawaran_id' => 2, + 'biaya_penawaran' => null, + 'attachment' => null, + 'dokumen_persetujuan' => null, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'kjpp_rekanan_id' => 2, + 'penawaran_id' => 2, + 'biaya_penawaran' => null, + 'attachment' => null, + 'dokumen_persetujuan' => null, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'kjpp_rekanan_id' => 3, + 'penawaran_id' => 2, + 'biaya_penawaran' => null, + 'attachment' => null, + 'dokumen_persetujuan' => null, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/DokumenJaminanSeeder.php b/database/seeders/DokumenJaminanSeeder.php new file mode 100644 index 0000000..d1fe608 --- /dev/null +++ b/database/seeders/DokumenJaminanSeeder.php @@ -0,0 +1,66 @@ + 1, + 'jenis_jaminan_id' => 1, + 'pemilik_jaminan_id' => 3, + 'province_code' => '32', + 'city_code' => '32.75', + 'district_code' => '32.75.03', + 'village_code' => '32.75.03.1001', + 'postal_code' => '17125', + 'address' => 'Jl. Apel No. 9', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'debiture_id' => 4, + 'jenis_jaminan_id' => 1, + 'pemilik_jaminan_id' => 4, + 'province_code' => '16', + 'city_code' => '16.05', + 'district_code' => '16.05.03', + 'village_code' => '16.05.03.2002', + 'postal_code' => '31663', + 'address' => 'alamat', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'debiture_id' => 7, + 'jenis_jaminan_id' => 4, + 'pemilik_jaminan_id' => 5, + 'province_code' => '13', + 'city_code' => '13.72', + 'district_code' => '13.72.02', + 'village_code' => '13.72.02.1001', + 'postal_code' => '27323', + 'address' => 'Jl. Merdeka II no. 1', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/HubunganPemilikJaminanSeeder.php b/database/seeders/HubunganPemilikJaminanSeeder.php new file mode 100644 index 0000000..662d7ee --- /dev/null +++ b/database/seeders/HubunganPemilikJaminanSeeder.php @@ -0,0 +1,36 @@ + 'Milik Pribadi' + ], + [ + 'name' => 'Suami/Istri' + ], + [ + 'name' => 'Anak' + ], + [ + 'name' => 'Saudara Kandung' + ], + [ + 'name' => 'Ayah' + ], + [ + 'name' => 'Ibu' + ] + ]); + } +} diff --git a/database/seeders/HubunganPenghuniJaminanSeeder.php b/database/seeders/HubunganPenghuniJaminanSeeder.php new file mode 100644 index 0000000..74abbc8 --- /dev/null +++ b/database/seeders/HubunganPenghuniJaminanSeeder.php @@ -0,0 +1,33 @@ + 'Suami/Istri', + ], + [ + 'name' => 'Anak', + ], + [ + 'name' => 'Saudara Kandung', + ], + [ + 'name' => 'Orang Tua', + ], + [ + 'name' => 'Kontrak/Kost' + ] + ]); + } +} diff --git a/database/seeders/IjinUsahaSeeder.php b/database/seeders/IjinUsahaSeeder.php new file mode 100644 index 0000000..10ccc2a --- /dev/null +++ b/database/seeders/IjinUsahaSeeder.php @@ -0,0 +1,39 @@ + 'IU001', + 'name' => 'Bisnis', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'IU002', + 'name' => 'Properti', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'IU003', + 'name' => 'Personal Properti', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} diff --git a/database/seeders/JenisDokumenSeeder.php b/database/seeders/JenisDokumenSeeder.php new file mode 100644 index 0000000..4d38695 --- /dev/null +++ b/database/seeders/JenisDokumenSeeder.php @@ -0,0 +1,68 @@ + 'Sertifikat', + 'max_size' => 15, + 'description' => 'Foto copy Sertifikat sesuai dengan asli', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'PBB/NJOP', + 'max_size' => 15, + 'description' => 'Foto Copy PBB/NJOP Tahun Terakhir', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'NPWP Perorangan/Perusahaan', + 'max_size' => 10, + 'description' => 'Copy NPWP Perorangan/Perusahaan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Siteplan', + 'max_size' => 10, + 'description' => 'Siteplan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Surat Pernyataan Kebenaran Data', + 'max_size' => 5, + 'description' => 'Surat Pernyataan Kebenaran Data (Surat Representasi)', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/JenisFasilitasKreditSeeder.php b/database/seeders/JenisFasilitasKreditSeeder.php new file mode 100644 index 0000000..27512b4 --- /dev/null +++ b/database/seeders/JenisFasilitasKreditSeeder.php @@ -0,0 +1,90 @@ + 'JFK001', + 'name' => 'KPR FLPP', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK002', + 'name' => 'KPR KERJASAMA', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK003', + 'name' => 'KPR ≤ 500 JT', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK004', + 'name' => 'KPR > 500 JT', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK005', + 'name' => 'KKB', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK006', + 'name' => 'KPA', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK007', + 'name' => 'MODAL KERJA', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JFK008', + 'name' => 'INVESTASI', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + ]); + } +} diff --git a/database/seeders/JenisJaminanSeeder.php b/database/seeders/JenisJaminanSeeder.php new file mode 100644 index 0000000..76cb361 --- /dev/null +++ b/database/seeders/JenisJaminanSeeder.php @@ -0,0 +1,73 @@ + 'JJ001', + 'name' => 'Tanah', + 'slug' => 'tanah', + 'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ003","JLJ004","JLJ005","JLJ006"]', + 'created_at' => now(), + 'updated_at' => now(), + 'authorized_at' => 't', + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JJ002', + 'name' => 'Rumah Tinggal / Ruko (Unit) / Apartemen (Unit) / Gudang', + 'slug' => 'rumah-tinggal-ruko-unit-apartemen-unit-gudang', + 'jenis_legalitas_jaminan_id' => null, + 'created_at' => now(), + 'updated_at' => now(), + 'authorized_at' => 'r', + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JJ003', + 'name' => 'Kawasan Industrial / Komersil / Residensial - Perumahan', + 'slug' => 'kawasan-industrial-komersil-residensial-perumahan', + 'jenis_legalitas_jaminan_id' => null, + 'created_at' => now(), + 'updated_at' => now(), + 'authorized_at' => 'k', + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JJ004', + 'name' => 'Gedung Apartement / Kantor / Condotel (Strata Tittle)', + 'slug' => 'gedung-apartement-kantor-condotel-strata-tittle', + 'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ002"]', + 'created_at' => now(), + 'updated_at' => now(), + 'authorized_at' => 'g', + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'JJ005', + 'name' => 'Mall', + 'slug' => 'mall', + 'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ006"]', + 'created_at' => now(), + 'updated_at' => now(), + 'authorized_at' => null, + 'created_by' => 1, + 'updated_by' => 1 + ] + ]); + } +} diff --git a/database/seeders/JenisLaporanSeeder.php b/database/seeders/JenisLaporanSeeder.php new file mode 100644 index 0000000..b979f74 --- /dev/null +++ b/database/seeders/JenisLaporanSeeder.php @@ -0,0 +1,32 @@ + 'JL001', + 'name' => 'Short Report', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'JL002', + 'name' => 'Full Report', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} diff --git a/database/seeders/JenisLegalitasJaminanSeeder.php b/database/seeders/JenisLegalitasJaminanSeeder.php new file mode 100644 index 0000000..fa45d3a --- /dev/null +++ b/database/seeders/JenisLegalitasJaminanSeeder.php @@ -0,0 +1,90 @@ + 'JLJ001', + 'name' => 'Sertifikat', + 'slug' => 'sertifikat', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'JLJ002', + 'name' => 'SHGB', + 'slug' => 'shgb', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => now(), + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => 1 + ], + [ + 'code' => 'JLJ003', + 'name' => 'Copy PBB / NJOP Tahun Terakhir (Jika Ada)', + 'slug' => 'copy-pbb-njop-tahun-terakhir-jika-ada', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'JLJ004', + 'name' => 'Copy NPWP Perusahaan/Perorangan', + 'slug' => 'copy-npwp-perusahaanperorangan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'JLJ005', + 'name' => 'Siteplan', + 'slug' => 'siteplan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'JLJ006', + 'name' => 'Surat Pernyataan Kebenaran Data (Surat Representasi)', + 'slug' => 'surat-pernyataan-kebenaran-data-surat-representasi', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + ]); + } +} diff --git a/database/seeders/JenisPenilaianSeeder.php b/database/seeders/JenisPenilaianSeeder.php new file mode 100644 index 0000000..2534811 --- /dev/null +++ b/database/seeders/JenisPenilaianSeeder.php @@ -0,0 +1,30 @@ + 'JP1', + 'name' => 'Internal', + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'JP2', + 'name' => 'External', + 'created_at' => now(), + 'updated_at' => now() + ], + ]); + } +} diff --git a/database/seeders/KJPPSeeder.php b/database/seeders/KJPPSeeder.php new file mode 100644 index 0000000..97a583f --- /dev/null +++ b/database/seeders/KJPPSeeder.php @@ -0,0 +1,102 @@ + 'K000101', + 'name' => 'Bank Anda', + 'jenis_kantor' => 'Kantor Pusat', + 'nomor_ijin_usaha' => 'IU001', + 'province_code' => '32', + 'city_code' => '32.75', + 'district_code' => '32.75.03', + 'village_code' => '32.75.03.1001', + 'address' => 'Jl. Apel no. 1', + 'postal_code' => '17125', + 'nomor_telepon_kantor' => '0219976896', + 'email_kantor' => 'bankanda@bankanda.id', + 'nama_pimpinan' => 'Ida Royani', + 'nomor_hp_pimpinan' => '081800908070', + 'nama_pic_reviewer' => 'Beno', + 'nomor_hp_pic_reviewer' => '081765489070', + 'nama_pic_admin' => 'Dani', + 'nomor_hp_pic_admin' => '081278786666', + 'nama_pic_marketing' => 'Feni', + 'nomor_hp_pic_marketing' => '087867590801', + 'ijin_usaha_id' => '["IU001","IU002"]', + 'jenis_aset_id' => '["JJ001","JJ002","JJ003"]', + 'attachment' => 'default.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'K000201', + 'name' => 'Bank Juri', + 'jenis_kantor' => 'Kantor Pusat', + 'nomor_ijin_usaha' => 'IU001', + 'province_code' => '12', + 'city_code' => '12.04', + 'district_code' => '12.04.11', + 'village_code' => '12.04.11.2005', + 'address' => 'Jl. Mangga no. 1', + 'postal_code' => '22876', + 'nomor_telepon_kantor' => '0219976890', + 'email_kantor' => 'bankjuri@bankjuri.id', + 'nama_pimpinan' => 'Arif Simbolo bolo', + 'nomor_hp_pimpinan' => '089643475023', + 'nama_pic_reviewer' => 'Beno Harefa', + 'nomor_hp_pic_reviewer' => '081765489080', + 'nama_pic_admin' => 'Dani Harefa', + 'nomor_hp_pic_admin' => '081278786667', + 'nama_pic_marketing' => 'Feni Harefa', + 'nomor_hp_pic_marketing' => '081765489075', + 'ijin_usaha_id' => '["IU001","IU002","IU003"]', + 'jenis_aset_id' => '["JJ001","JJ004","JJ003"]', + 'attachment' => 'default.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'K000301', + 'name' => 'Bank Gantra', + 'jenis_kantor' => 'Kantor Pusat', + 'nomor_ijin_usaha' => 'IU001', + 'province_code' => '12', + 'city_code' => '12.21', + 'district_code' => '12.21.05', + 'village_code' => '12.21.05.2005', + 'address' => 'Jl. Apel no. 1', + 'postal_code' => '22776', + 'nomor_telepon_kantor' => '0219976889', + 'email_kantor' => 'bankgantra@bankgantra.id', + 'nama_pimpinan' => 'Arif Simantra', + 'nomor_hp_pimpinan' => '089643475020', + 'nama_pic_reviewer' => 'Beno Aditya', + 'nomor_hp_pic_reviewer' => '081765489079', + 'nama_pic_admin' => 'Dani Maulana', + 'nomor_hp_pic_admin' => '081278786680', + 'nama_pic_marketing' => 'Feni Rose', + 'nomor_hp_pic_marketing' => '081890901234', + 'ijin_usaha_id' => '["IU001","IU002","IU003"]', + 'jenis_aset_id' => '["JJ001","JJ002","JJ005"]', + 'attachment' => 'default.pdf', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} diff --git a/database/seeders/LpjDatabaseSeeder.php b/database/seeders/LpjDatabaseSeeder.php index 242ef68..b4ec8f1 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -1,17 +1,43 @@ call([]); - } + $this->call([ + ArahMataAnginSeeder::class, + BranchSeeder::class, + CurrencySeeder::class, + DebitureSeeder::class, + DetailDokumenJaminanSeeder::class, + DetailPenawaranSeeder::class, + DokumenJaminanSeeder::class, + HubunganPemilikJaminanSeeder::class, + HubunganPenghuniJaminanSeeder::class, + IjinUsahaSeeder::class, + JenisDokumenSeeder::class, + JenisFasilitasKreditSeeder::class, + JenisJaminanSeeder::class, + JenisLaporanSeeder::class, + JenisLegalitasJaminanSeeder::class, + JenisPenilaianSeeder::class, + KJPPSeeder::class, + NilaiPlatformSeeder::class, + PemilikJaminanSeeder::class, + PenawaranSeeder::class, + PenilaianSeeder::class, + PermohonanSeeder::class, + RegionSeeder::class, + StatusPermohonanSeeder::class, + TujuanPenilaianSeeder::class, + TujuanPenilaianKJPPSeeder::class + ]); } +} diff --git a/database/seeders/NilaiPlatformSeeder.php b/database/seeders/NilaiPlatformSeeder.php new file mode 100644 index 0000000..5631324 --- /dev/null +++ b/database/seeders/NilaiPlatformSeeder.php @@ -0,0 +1,45 @@ + 'NP001', + 'name' => '5 M - 10 M', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'NP002', + 'name' => '2 M - 5 M', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'code' => 'NP003', + 'name' => '< 2M', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ] + ]); + } +} diff --git a/database/seeders/PemilikJaminanSeeder.php b/database/seeders/PemilikJaminanSeeder.php new file mode 100644 index 0000000..1b1d045 --- /dev/null +++ b/database/seeders/PemilikJaminanSeeder.php @@ -0,0 +1,118 @@ + 2, + 'hubungan_pemilik_jaminan_id' => 1, + 'name' => 'Antonius Ginting', + 'npwp' => '234567890123456', + 'nomor_id' => '13144213123', + 'email' => 'x@gmail.com', + 'phone' => '081234567891', + 'province_code' => '31', + 'city_code' => '31.71', + 'district_code' => '31.71.06', + 'village_code' => '31.71.06.1001', + 'postal_code' => '10310', + 'address' => 'Jl. Menteng Tengah No.66', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'debiture_id' => 7, + 'hubungan_pemilik_jaminan_id' => 1, + 'name' => 'Rahmat Rafli', + 'npwp' => '1234689743418451', + 'nomor_id' => '32754590325823', + 'email' => 'testing@mail.com', + 'phone' => '081385777611', + 'province_code' => '32', + 'city_code' => '32.75', + 'district_code' => '32.75.03', + 'village_code' => '32.75.03.1001', + 'postal_code' => '10310', + 'address' => 'Jl. Apel 1 no. 9', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 3, + 'updated_by' => 3 + ], + [ + 'debiture_id' => 1, + 'hubungan_pemilik_jaminan_id' => 1, + 'name' => 'Willy', + 'npwp' => '123455432109876', + 'nomor_id' => null, + 'email' => 'w@gmail.com', + 'phone' => '08113242341', + 'province_code' => '31', + 'city_code' => '31.74', + 'district_code' => '31.74.09', + 'village_code' => '31.74.09.1003', + 'postal_code' => '12630', + 'address' => null, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'debiture_id' => 4, + 'hubungan_pemilik_jaminan_id' => 1, + 'name' => 'Testing', + 'npwp' => '1029280183912111', + 'nomor_id' => null, + 'email' => 'testing@email.com', + 'phone' => '098172386', + 'province_code' => '11', + 'city_code' => '11.01', + 'district_code' => '11.01.01', + 'village_code' => '11.01.01.2001', + 'postal_code' => '23773', + 'address' => 'alamat', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'debiture_id' => 7, + 'hubungan_pemilik_jaminan_id' => 1, + 'name' => 'Testing 2', + 'npwp' => '1234689743418451', + 'nomor_id' => null, + 'email' => 'testing@mail.com', + 'phone' => '081385777611', + 'province_code' => '31', + 'city_code' => '31.71', + 'district_code' => '31.71.06', + 'village_code' => '31.71.06.1001', + 'postal_code' => '10310', + 'address' => 'Jl. Menteng Raya no. 13', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/PenawaranSeeder.php b/database/seeders/PenawaranSeeder.php new file mode 100644 index 0000000..ecc3d49 --- /dev/null +++ b/database/seeders/PenawaranSeeder.php @@ -0,0 +1,46 @@ + 'NP001', + 'nomor_registrasi' => 'REG0000002', + 'tujuan_penilaian_kjpp_id' => 3, + 'jenis_laporan_id' => 2, + 'start_date' => '2024-10-21', + 'end_date' => '2024-10-28', + 'catatan' => 'Hai', + 'status' => 'persetujuan-penawaran', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'code' => 'NP002', + 'nomor_registrasi' => 'REG0000003', + 'tujuan_penilaian_kjpp_id' => 1, + 'jenis_laporan_id' => 1, + 'start_date' => '2024-10-28', + 'end_date' => '2024-10-31', + 'catatan' => null, + 'status' => 'tender', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/PenilaianSeeder.php b/database/seeders/PenilaianSeeder.php new file mode 100644 index 0000000..efed9ea --- /dev/null +++ b/database/seeders/PenilaianSeeder.php @@ -0,0 +1,51 @@ + 2, + 'teams_id' => 2, + 'tanggal_kunjungan' => now(), + 'keterangan' => 'Hai', + 'status' => 'done', + 'nomor_registrasi' => 'REG0000010', + 'penilaian_id' => 2, + 'surveyor_id' => 1, + 'penilai_surveyor_id' => 1 + ], + [ + 'jenis_penilaian_id' => 2, + 'teams_id' => 1, + 'tanggal_kunjungan' => now(), + 'keterangan' => 'Hello', + 'status' => 'done', + 'nomor_registrasi' => 'REG0000008', + 'penilaian_id' => 2, + 'surveyor_id' => 1, + 'penilai_surveyor_id' => 1 + ], + [ + 'jenis_penilaian_id' => 2, + 'teams_id' => 2, + 'tanggal_kunjungan' => now(), + 'keterangan' => 'Hello', + 'status' => 'done', + 'nomor_registrasi' => 'REG0000007', + 'penilaian_id' => 1, + 'surveyor_id' => 1, + 'penilai_surveyor_id' => 1 + ] + ]); + } +} diff --git a/database/seeders/PermohonanSeeder.php b/database/seeders/PermohonanSeeder.php new file mode 100644 index 0000000..9cbee5b --- /dev/null +++ b/database/seeders/PermohonanSeeder.php @@ -0,0 +1,126 @@ + 'REG0000002', + 'tanggal_permohonan' => '2024-09-11', + 'user_id' => 1, + 'branch_id' => 1, + 'tujuan_penilaian_id' => 1, + 'debiture_id' => 1, + 'status' => 'persetujuan-penawaran', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2, + 'jenis_fasilitas_kredit_id' => 1, + 'nilai_plafond_id' => 1, + 'status_bayar' => 'sudah_bayar', + 'nilai_njop' => 'KJM3413259230951024', + 'jenis_penilaian_id' => 2 + ], + [ + 'nomor_registrasi' => 'REG0000003', + 'tanggal_permohonan' => '2024-09-13', + 'user_id' => 1, + 'branch_id' => 1, + 'tujuan_penilaian_id' => 1, + 'debiture_id' => 1, + 'status' => 'tender', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2, + 'jenis_fasilitas_kredit_id' => 1, + 'nilai_plafond_id' => 1, + 'status_bayar' => 'sudah_bayar', + 'nilai_njop' => 'KJM3413259230951025', + 'jenis_penilaian_id' => 2 + ], + [ + 'nomor_registrasi' => 'REG0000006', + 'tanggal_permohonan' => '2024-10-18', + 'user_id' => 2, + 'branch_id' => 1, + 'tujuan_penilaian_id' => 1, + 'debiture_id' => 2, + 'status' => 'registered', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2, + 'jenis_fasilitas_kredit_id' => 4, + 'nilai_plafond_id' => 1, + 'status_bayar' => 'sudah_bayar', + 'nilai_njop' => '23425654765868', + 'jenis_penilaian_id' => 2 + ], + [ + 'nomor_registrasi' => 'REG0000007', + 'tanggal_permohonan' => '2024-10-28', + 'user_id' => 3, + 'branch_id' => 1, + 'tujuan_penilaian_id' => 7, + 'debiture_id' => 4, + 'status' => 'done', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2, + 'jenis_fasilitas_kredit_id' => 7, + 'nilai_plafond_id' => 1, + 'status_bayar' => 'sudah_bayar', + 'nilai_njop' => '421354365747658', + 'jenis_penilaian_id' => null + ], + [ + 'nomor_registrasi' => 'REG0000008', + 'tanggal_permohonan' => '2024-10-28', + 'user_id' => 3, + 'branch_id' => 1, + 'tujuan_penilaian_id' => 1, + 'debiture_id' => 7, + 'status' => 'done', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 3, + 'updated_by' => 3, + 'jenis_fasilitas_kredit_id' => 7, + 'nilai_plafond_id' => 2, + 'status_bayar' => 'sudah_bayar', + 'nilai_njop' => '421354365747659', + 'jenis_penilaian_id' => null + ], + [ + 'nomor_registrasi' => 'REG0000010', + 'tanggal_permohonan' => '2024-10-28', + 'user_id' => 3, + 'branch_id' => 1, + 'tujuan_penilaian_id' => 5, + 'debiture_id' => 7, + 'status' => 'done', + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 3, + 'updated_by' => 3, + 'jenis_fasilitas_kredit_id' => 4, + 'nilai_plafond_id' => 1, + 'status_bayar' => 'sudah_bayar', + 'nilai_njop' => '421354365747660', + 'jenis_penilaian_id' => null + ] + ]); + } +} diff --git a/database/seeders/RegionSeeder.php b/database/seeders/RegionSeeder.php new file mode 100644 index 0000000..9b118a3 --- /dev/null +++ b/database/seeders/RegionSeeder.php @@ -0,0 +1,30 @@ + 'R01', + 'name' => 'Region 1', + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'R02', + 'name' => 'Region 2', + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} diff --git a/database/seeders/StatusPermohonanSeeder.php b/database/seeders/StatusPermohonanSeeder.php new file mode 100644 index 0000000..a34127c --- /dev/null +++ b/database/seeders/StatusPermohonanSeeder.php @@ -0,0 +1,128 @@ + 'Order', + 'slug' => 'order', + 'description' => 'Status pengisian pengajuan dari AO sampai dengan approval dari BD atau EO Pemohon', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Revisi', + 'slug' => 'revisi', + 'description' => 'Back to pemohon dari admin', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Register', + 'slug' => 'register', + 'description' => 'pengajuan pemohon yang sudah diperiksa admin dan diproses ke SO', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Assign', + 'slug' => 'assign', + 'description' => 'posisi dari SO ke penilai setelah penunjukkan penilai', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Survey', + 'slug' => 'survey', + 'description' => 'tanggal kunjungan yang sudah ditentukan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Proses Laporan', + 'slug' => 'proses-laporan', + 'description' => 'posisi penginputan yang dilakukan oleh penilai, dengan indikator tanggal kunjungan sampai laporan selesai (sesuai SLA)', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Approved', + 'slug' => 'approved', + 'description' => 'Laporan atau resume selesai', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Delivered', + 'slug' => 'delivered', + 'description' => 'Sudah isi nilai likuidasi', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 1, + 'updated_by' => 1 + ], + [ + 'name' => 'Registered', + 'slug' => 'registered', + 'description' => 'abc', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Tender', + 'slug' => 'tender', + 'description' => 'abc', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ], + [ + 'name' => 'Done', + 'slug' => 'done', + 'description' => 'abc', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'created_by' => 2, + 'updated_by' => 2 + ] + ]); + } +} diff --git a/database/seeders/TujuanPenilaianKJPPSeeder.php b/database/seeders/TujuanPenilaianKJPPSeeder.php new file mode 100644 index 0000000..4e36cf6 --- /dev/null +++ b/database/seeders/TujuanPenilaianKJPPSeeder.php @@ -0,0 +1,46 @@ + 'TPK01', + 'name' => 'Transaksi Jual Beli Aset', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'TPK02', + 'name' => 'Penjaminan Utang atau Pembiayaan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'TPK03', + 'name' => 'Pelaporan Keuangan', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'code' => 'TPK04', + 'name' => 'Pengambilalihan atau Merger dan Akuisisi (M&A)', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} diff --git a/database/seeders/TujuanPenilaianSeeder.php b/database/seeders/TujuanPenilaianSeeder.php new file mode 100644 index 0000000..75f3a76 --- /dev/null +++ b/database/seeders/TujuanPenilaianSeeder.php @@ -0,0 +1,95 @@ + 'TP0001', + 'name' => 'Penilaian Baru', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'TP0002', + 'name' => 'Penilaian Ulang', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'TP0003', + 'name' => 'Review', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => now(), + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => 1 + ], + [ + 'code' => 'TP0004', + 'name' => 'Lelang', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'TP0005', + 'name' => 'RAP', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'TP0006', + 'name' => 'Revaluasi Aset', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ], + [ + 'code' => 'TP0007', + 'name' => 'Asuransi', + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now(), + 'deleted_at' => null, + 'created_by' => 1, + 'updated_by' => 1, + 'deleted_by' => null + ] + ]); + } +} From d89482adf127e1f2b47512c0efaf3375b0b1d198 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 31 Oct 2024 14:35:16 +0700 Subject: [PATCH 014/100] Restrict download links to specific user roles Add conditional checks to show download links only to users with 'administrator' or 'pemohon-eo' roles in the 'jaminan.blade.php' and 'detail-jaminan.blade.php' views. This enhances security by limiting access to sensitive document downloads. --- resources/views/component/detail-jaminan.blade.php | 2 ++ resources/views/debitur/components/jaminan.blade.php | 2 ++ 2 files changed, 4 insertions(+) diff --git a/resources/views/component/detail-jaminan.blade.php b/resources/views/component/detail-jaminan.blade.php index ab9c649..bc2ee80 100644 --- a/resources/views/component/detail-jaminan.blade.php +++ b/resources/views/component/detail-jaminan.blade.php @@ -74,7 +74,9 @@ @if(isset($detail->dokumen_jaminan)) + @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) Download + ) @endif Preview @endif diff --git a/resources/views/debitur/components/jaminan.blade.php b/resources/views/debitur/components/jaminan.blade.php index 437e4ab..80439ff 100644 --- a/resources/views/debitur/components/jaminan.blade.php +++ b/resources/views/debitur/components/jaminan.blade.php @@ -69,7 +69,9 @@ {{ $loop->index+1 }}. {{ $detail->jenisLegalitasJaminan->name }}
+ @if(in_array(Auth::user()->roles[0]->name,['administrator','pemohon-eo'])) Download + @endif Preview
From e592af39290ed6c5379e5ac5baaeec14296f63b6 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 31 Oct 2024 14:42:28 +0700 Subject: [PATCH 015/100] Restrict bulk download option to specific roles Added conditional logic to display the bulk download button only for users with 'administrator' or 'pemohon-eo' roles. This ensures that only authorized roles have access to this functionality. --- resources/views/debitur/components/jaminan.blade.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/resources/views/debitur/components/jaminan.blade.php b/resources/views/debitur/components/jaminan.blade.php index 80439ff..a45cf24 100644 --- a/resources/views/debitur/components/jaminan.blade.php +++ b/resources/views/debitur/components/jaminan.blade.php @@ -23,9 +23,11 @@ diff --git a/resources/views/permohonan/form.blade.php b/resources/views/permohonan/form.blade.php index 7c82edd..cfb066b 100644 --- a/resources/views/permohonan/form.blade.php +++ b/resources/views/permohonan/form.blade.php @@ -155,38 +155,15 @@ @enderror - -
- -
- - @error('status') - {{ $message }} - @enderror + @if($permohonan->status=='revisi') +
+ Catatan :
+ {{ $permohonan->keterangan }}
-
- - + @endif
diff --git a/resources/views/permohonan/index.blade.php b/resources/views/permohonan/index.blade.php index 5f38583..15819c7 100644 --- a/resources/views/permohonan/index.blade.php +++ b/resources/views/permohonan/index.blade.php @@ -63,6 +63,10 @@ Status + + Keterangan + + Action @@ -173,6 +177,9 @@ status: { title: 'Status' }, + keterangan: { + title: 'Keterangan' + }, actions: { title: 'Actions', render: (item, data) => { From 5201cdb0e305760d5ac6106c33f50c0149c5f6de Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 1 Nov 2024 09:39:41 +0700 Subject: [PATCH 017/100] Drop unique constraint on 'cif' in debitures table Remove the unique constraint on the 'cif' field in the debitures table and refactor the `UniqueCifExceptZero` validation rule to handle the uniqueness check more robustly. Also, add an unused import statement for `UniqueExcept` in `DebitureRequest`. --- app/Http/Requests/DebitureRequest.php | 1 + app/Rules/UniqueCifExceptZero.php | 41 +++++++++++-------- ...24_11_01_023117_update_debitures_table.php | 28 +++++++++++++ 3 files changed, 53 insertions(+), 17 deletions(-) create mode 100644 database/migrations/2024_11_01_023117_update_debitures_table.php diff --git a/app/Http/Requests/DebitureRequest.php b/app/Http/Requests/DebitureRequest.php index 7f83fbb..40b608e 100644 --- a/app/Http/Requests/DebitureRequest.php +++ b/app/Http/Requests/DebitureRequest.php @@ -4,6 +4,7 @@ use Illuminate\Foundation\Http\FormRequest; use Modules\Lpj\Rules\UniqueCifExceptZero; + use Modules\Lpj\Rules\UniqueExcept; class DebitureRequest extends FormRequest { diff --git a/app/Rules/UniqueCifExceptZero.php b/app/Rules/UniqueCifExceptZero.php index c8173d1..03accd3 100644 --- a/app/Rules/UniqueCifExceptZero.php +++ b/app/Rules/UniqueCifExceptZero.php @@ -1,25 +1,32 @@ id = $id; - } + protected $id; - public function validate($attribute, $value, $fail): void - { - if (Debiture::where($attribute, $value) - ->where('id', '!=', $this->id) - ->where($attribute, '!=', '0000000000') - ->exists()) { - $fail('The :attribute field must be uniquse.'.$this->id); + public function __construct($id = null) + { + $this->id = $id; + } + + /** + * Run the validation rule. + */ + public function validate(string $attribute, mixed $value, Closure $fail) + : void { + if ($value !== '0000000000' && $value !== null && Debiture::query()->where($attribute, $value)->when( + $this->id, + function ($query) { + $query->where('id', '!=', $this->id); + }, + )->exists()) { + $fail('The :attribute field must be unique.'); + } } } -} diff --git a/database/migrations/2024_11_01_023117_update_debitures_table.php b/database/migrations/2024_11_01_023117_update_debitures_table.php new file mode 100644 index 0000000..cadf6b0 --- /dev/null +++ b/database/migrations/2024_11_01_023117_update_debitures_table.php @@ -0,0 +1,28 @@ +dropUnique(['cif']); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('debitures', function (Blueprint $table) { + $table->string('cif')->unique()->change(); + }); + } +}; From 44c56a02ac780b33beec9298fd012bc9dc472dd7 Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Fri, 1 Nov 2024 11:02:39 +0700 Subject: [PATCH 018/100] Mengubah keadaan ketika tambah penawaran maka munculkan pesan "Tanggal Awal tidak boleh sebelum hari ini." --- app/Http/Requests/TenderPenawaranRequest.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/Http/Requests/TenderPenawaranRequest.php b/app/Http/Requests/TenderPenawaranRequest.php index 6472638..85e66a5 100644 --- a/app/Http/Requests/TenderPenawaranRequest.php +++ b/app/Http/Requests/TenderPenawaranRequest.php @@ -63,13 +63,17 @@ class TenderPenawaranRequest extends FormRequest $endDate = strtotime($this->input('end_date')); $today = strtotime(date('Y-m-d')); + // Jika dalam keadaan tambah penawaran maka munculkan pesan ini + if ($this->method() !== 'PUT') { + if ($startDate < $today) { + $validator->errors()->add('start_date', 'Tanggal Awal tidak boleh sebelum hari ini.'); + } + } + 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', []); From 24b38ca4f19fc671af5b0101c0957a49e1dc36e4 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 1 Nov 2024 16:53:31 +0700 Subject: [PATCH 019/100] Add support for multiple detail sertifikat Enhanced the request validation, model, and Blade template to support multiple detail sertifikat entries, which are now encoded in JSON format. Additionally, added a dynamic form for entry, including delete functionality for each sertifikat entry. --- .../Controllers/PemilikJaminanController.php | 3 + app/Http/Requests/PemilikJaminanRequest.php | 23 +++++ app/Models/PemilikJaminan.php | 3 +- .../views/pemilik_jaminan/form.blade.php | 92 ++++++++++++------- 4 files changed, 87 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/PemilikJaminanController.php b/app/Http/Controllers/PemilikJaminanController.php index 7c38601..b8e0ecd 100644 --- a/app/Http/Controllers/PemilikJaminanController.php +++ b/app/Http/Controllers/PemilikJaminanController.php @@ -63,6 +63,7 @@ public function update(PemilikJaminanRequest $request, $id, $pemilik) { $validate = $request->validated(); + if ($validate) { try { $pemilik = PemilikJaminan::find($pemilik); @@ -88,6 +89,7 @@ $districts = District::where('city_code', $pemilik->city_code)->get(); $villages = Village::where('district_code', $pemilik->district_code)->get(); $hubunganPemilik = HubunganPemilikJaminan::all(); + $detailSertifikat = $pemilik->detail_sertifikat; return view( 'lpj::pemilik_jaminan.form', @@ -99,6 +101,7 @@ 'villages', 'hubunganPemilik', 'pemilik', + 'detailSertifikat' ), ); } diff --git a/app/Http/Requests/PemilikJaminanRequest.php b/app/Http/Requests/PemilikJaminanRequest.php index b6e267d..ca76c83 100644 --- a/app/Http/Requests/PemilikJaminanRequest.php +++ b/app/Http/Requests/PemilikJaminanRequest.php @@ -26,6 +26,7 @@ 'address' => 'nullable|string', 'postal_code' => 'nullable|string|max:10', 'status' => 'nullable|boolean', + 'detail_sertifikat' => 'nullable|string|max:255', ]; //$rules['nomor_id'] = 'nullable|max:16|unique:pemilik_jaminan,nomor_id,debiture_id,' . $this->debiture_id; @@ -41,4 +42,26 @@ { return true; } + + public function prepareForValidation() { + + $detailSertifikat = []; + $names = $this->input('detail_sertifikat.name', []); + $nomorIds = $this->input('detail_sertifikat.nomor_id', []); + + foreach ($names as $index => $name) { + if (isset($nomorIds[$index])) { + $detailSertifikat[] = [ + 'name' => $name, + 'nomor_id' => $nomorIds[$index] + ]; + } + } + + $this->merge([ + 'detail_sertifikat' => json_encode($detailSertifikat), + ]); + + + } } diff --git a/app/Models/PemilikJaminan.php b/app/Models/PemilikJaminan.php index d92dc0c..6f0addc 100644 --- a/app/Models/PemilikJaminan.php +++ b/app/Models/PemilikJaminan.php @@ -30,7 +30,8 @@ class PemilikJaminan extends Base 'status', 'authorized_at', 'authorized_status', - 'authorized_by' + 'authorized_by', + 'detail_sertifikat', ]; public function province() diff --git a/resources/views/pemilik_jaminan/form.blade.php b/resources/views/pemilik_jaminan/form.blade.php index 03c4a11..27af2b1 100644 --- a/resources/views/pemilik_jaminan/form.blade.php +++ b/resources/views/pemilik_jaminan/form.blade.php @@ -79,7 +79,7 @@ @enderror
- + @error('nomor_id') {{ $message }} @enderror @@ -88,7 +88,28 @@
+ @if(isset($detailSertifikat)) + @foreach(json_decode($detailSertifikat) as $sertifikat) +
+ +
+
+
+ +
+
+ + +
+ +
+
+
+ @endforeach + @endif
@endsection - @push('scripts') From 5f5882d4204011a8ec2e80d1851ec32d515929fb Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 1 Nov 2024 16:57:34 +0700 Subject: [PATCH 020/100] Add detail_sertifikat column to pemilik_jaminan table This migration introduces a new nullable string column named detail_sertifikat to the pemilik_jaminan table. It allows adding certificate details for each pemilik jaminan. The down method ensures this column is dropped if the migration is rolled back. --- ...01_083625_update_pemilik_jaminan_table.php | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php diff --git a/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php b/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php new file mode 100644 index 0000000..48f8921 --- /dev/null +++ b/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php @@ -0,0 +1,28 @@ +string('detail_sertifikat')->nullable()->after('nama_pemilik'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('pemilik_jaminan', function (Blueprint $table) { + $table->dropColumn('detail_sertifikat'); + }); + } +}; From 56ba6ddae15ef765fe9684347a39bb8d72714576 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Fri, 1 Nov 2024 16:59:19 +0700 Subject: [PATCH 021/100] Update column position in pemilik_jaminan migration Changed the position of 'detail_sertifikat' column to come after 'name' instead of 'nama_pemilik' in the migration. This ensures consistency with other tables and prevents errors during deployment. --- .../2024_11_01_083625_update_pemilik_jaminan_table.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php b/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php index 48f8921..ec38fd5 100644 --- a/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php +++ b/database/migrations/2024_11_01_083625_update_pemilik_jaminan_table.php @@ -12,7 +12,7 @@ return new class extends Migration public function up(): void { Schema::table('pemilik_jaminan', function (Blueprint $table) { - $table->string('detail_sertifikat')->nullable()->after('nama_pemilik'); + $table->string('detail_sertifikat')->nullable()->after('name'); }); } From 3ae95288f08ac487e05a59e396e6f18a9d11d78a Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Sat, 2 Nov 2024 13:48:46 +0700 Subject: [PATCH 022/100] Mengubah posisi pada saat seeder di module LPJ --- database/seeders/CurrencySeeder.php | 12 ++--- database/seeders/DebitureSeeder.php | 4 +- .../seeders/DetailDokumenJaminanSeeder.php | 44 +++++++++---------- database/seeders/DetailPenawaranSeeder.php | 24 +++++----- database/seeders/DokumenJaminanSeeder.php | 12 ++--- database/seeders/JenisDokumenSeeder.php | 2 +- database/seeders/JenisJaminanSeeder.php | 8 ++-- database/seeders/LpjDatabaseSeeder.php | 32 +++++++------- database/seeders/PemilikJaminanSeeder.php | 20 ++++----- database/seeders/PenawaranSeeder.php | 8 ++-- database/seeders/PermohonanSeeder.php | 38 ++++++++-------- database/seeders/StatusPermohonanSeeder.php | 12 ++--- 12 files changed, 108 insertions(+), 108 deletions(-) diff --git a/database/seeders/CurrencySeeder.php b/database/seeders/CurrencySeeder.php index f75a763..c2cd553 100644 --- a/database/seeders/CurrencySeeder.php +++ b/database/seeders/CurrencySeeder.php @@ -20,8 +20,8 @@ class CurrencySeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'code' => 'MYR', @@ -30,8 +30,8 @@ class CurrencySeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'code' => 'SAR', @@ -40,8 +40,8 @@ class CurrencySeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/DebitureSeeder.php b/database/seeders/DebitureSeeder.php index 70b9336..68ec9fe 100644 --- a/database/seeders/DebitureSeeder.php +++ b/database/seeders/DebitureSeeder.php @@ -150,8 +150,8 @@ class DebitureSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 3, - 'updated_by' => 3 + 'created_by' => 1, + 'updated_by' => 1 ], ]); } diff --git a/database/seeders/DetailDokumenJaminanSeeder.php b/database/seeders/DetailDokumenJaminanSeeder.php index 59c5f36..2eb665d 100644 --- a/database/seeders/DetailDokumenJaminanSeeder.php +++ b/database/seeders/DetailDokumenJaminanSeeder.php @@ -21,8 +21,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -32,8 +32,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -43,8 +43,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -54,8 +54,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -65,8 +65,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -76,8 +76,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -87,8 +87,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -98,8 +98,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -109,8 +109,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tanah Bangunan', @@ -120,8 +120,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Gedung', @@ -131,8 +131,8 @@ class DetailDokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/DetailPenawaranSeeder.php b/database/seeders/DetailPenawaranSeeder.php index b33bd83..c9369c2 100644 --- a/database/seeders/DetailPenawaranSeeder.php +++ b/database/seeders/DetailPenawaranSeeder.php @@ -22,8 +22,8 @@ class DetailPenawaranSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'kjpp_rekanan_id' => 2, @@ -34,8 +34,8 @@ class DetailPenawaranSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'kjpp_rekanan_id' => 3, @@ -46,8 +46,8 @@ class DetailPenawaranSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'kjpp_rekanan_id' => 1, @@ -58,8 +58,8 @@ class DetailPenawaranSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'kjpp_rekanan_id' => 2, @@ -70,8 +70,8 @@ class DetailPenawaranSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'kjpp_rekanan_id' => 3, @@ -82,8 +82,8 @@ class DetailPenawaranSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/DokumenJaminanSeeder.php b/database/seeders/DokumenJaminanSeeder.php index d1fe608..e1c8465 100644 --- a/database/seeders/DokumenJaminanSeeder.php +++ b/database/seeders/DokumenJaminanSeeder.php @@ -26,8 +26,8 @@ class DokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'debiture_id' => 4, @@ -42,8 +42,8 @@ class DokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'debiture_id' => 7, @@ -58,8 +58,8 @@ class DokumenJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/JenisDokumenSeeder.php b/database/seeders/JenisDokumenSeeder.php index 4d38695..6535c47 100644 --- a/database/seeders/JenisDokumenSeeder.php +++ b/database/seeders/JenisDokumenSeeder.php @@ -61,7 +61,7 @@ class JenisDokumenSeeder extends Seeder 'created_at' => now(), 'updated_at' => now(), 'created_by' => 1, - 'updated_by' => 2 + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/JenisJaminanSeeder.php b/database/seeders/JenisJaminanSeeder.php index 76cb361..1f79185 100644 --- a/database/seeders/JenisJaminanSeeder.php +++ b/database/seeders/JenisJaminanSeeder.php @@ -20,7 +20,7 @@ class JenisJaminanSeeder extends Seeder 'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ003","JLJ004","JLJ005","JLJ006"]', 'created_at' => now(), 'updated_at' => now(), - 'authorized_at' => 't', + 'authorized_at' => now(), 'created_by' => 1, 'updated_by' => 1 ], @@ -31,7 +31,7 @@ class JenisJaminanSeeder extends Seeder 'jenis_legalitas_jaminan_id' => null, 'created_at' => now(), 'updated_at' => now(), - 'authorized_at' => 'r', + 'authorized_at' => now(), 'created_by' => 1, 'updated_by' => 1 ], @@ -42,7 +42,7 @@ class JenisJaminanSeeder extends Seeder 'jenis_legalitas_jaminan_id' => null, 'created_at' => now(), 'updated_at' => now(), - 'authorized_at' => 'k', + 'authorized_at' => now(), 'created_by' => 1, 'updated_by' => 1 ], @@ -53,7 +53,7 @@ class JenisJaminanSeeder extends Seeder 'jenis_legalitas_jaminan_id' => '["JLJ001","JLJ002"]', 'created_at' => now(), 'updated_at' => now(), - 'authorized_at' => 'g', + 'authorized_at' => now(), 'created_by' => 1, 'updated_by' => 1 ], diff --git a/database/seeders/LpjDatabaseSeeder.php b/database/seeders/LpjDatabaseSeeder.php index b4ec8f1..81b63e7 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -12,32 +12,32 @@ class LpjDatabaseSeeder extends Seeder public function run(): void { $this->call([ - ArahMataAnginSeeder::class, BranchSeeder::class, CurrencySeeder::class, - DebitureSeeder::class, - DetailDokumenJaminanSeeder::class, - DetailPenawaranSeeder::class, - DokumenJaminanSeeder::class, + JenisFasilitasKreditSeeder::class, + JenisLegalitasJaminanSeeder::class, + JenisJaminanSeeder::class, + JenisDokumenSeeder::class, + TujuanPenilaianSeeder::class, + NilaiPlatformSeeder::class, HubunganPemilikJaminanSeeder::class, HubunganPenghuniJaminanSeeder::class, - IjinUsahaSeeder::class, - JenisDokumenSeeder::class, - JenisFasilitasKreditSeeder::class, - JenisJaminanSeeder::class, - JenisLaporanSeeder::class, - JenisLegalitasJaminanSeeder::class, + ArahMataAnginSeeder::class, + StatusPermohonanSeeder::class, + RegionSeeder::class, JenisPenilaianSeeder::class, + TujuanPenilaianKJPPSeeder::class, + IjinUsahaSeeder::class, + JenisLaporanSeeder::class, KJPPSeeder::class, - NilaiPlatformSeeder::class, + DebitureSeeder::class, PemilikJaminanSeeder::class, PenawaranSeeder::class, + DetailPenawaranSeeder::class, PenilaianSeeder::class, PermohonanSeeder::class, - RegionSeeder::class, - StatusPermohonanSeeder::class, - TujuanPenilaianSeeder::class, - TujuanPenilaianKJPPSeeder::class + DokumenJaminanSeeder::class, + DetailDokumenJaminanSeeder::class, ]); } } diff --git a/database/seeders/PemilikJaminanSeeder.php b/database/seeders/PemilikJaminanSeeder.php index 1b1d045..57e1c09 100644 --- a/database/seeders/PemilikJaminanSeeder.php +++ b/database/seeders/PemilikJaminanSeeder.php @@ -30,8 +30,8 @@ class PemilikJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'debiture_id' => 7, @@ -50,8 +50,8 @@ class PemilikJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 3, - 'updated_by' => 3 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'debiture_id' => 1, @@ -70,8 +70,8 @@ class PemilikJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'debiture_id' => 4, @@ -90,8 +90,8 @@ class PemilikJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'debiture_id' => 7, @@ -110,8 +110,8 @@ class PemilikJaminanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/PenawaranSeeder.php b/database/seeders/PenawaranSeeder.php index ecc3d49..50070e6 100644 --- a/database/seeders/PenawaranSeeder.php +++ b/database/seeders/PenawaranSeeder.php @@ -24,8 +24,8 @@ class PenawaranSeeder extends Seeder 'status' => 'persetujuan-penawaran', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'code' => 'NP002', @@ -38,8 +38,8 @@ class PenawaranSeeder extends Seeder 'status' => 'tender', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } diff --git a/database/seeders/PermohonanSeeder.php b/database/seeders/PermohonanSeeder.php index 9cbee5b..f43aafb 100644 --- a/database/seeders/PermohonanSeeder.php +++ b/database/seeders/PermohonanSeeder.php @@ -23,8 +23,8 @@ class PermohonanSeeder extends Seeder 'status' => 'persetujuan-penawaran', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2, + 'created_by' => 1, + 'updated_by' => 1, 'jenis_fasilitas_kredit_id' => 1, 'nilai_plafond_id' => 1, 'status_bayar' => 'sudah_bayar', @@ -41,8 +41,8 @@ class PermohonanSeeder extends Seeder 'status' => 'tender', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2, + 'created_by' => 1, + 'updated_by' => 1, 'jenis_fasilitas_kredit_id' => 1, 'nilai_plafond_id' => 1, 'status_bayar' => 'sudah_bayar', @@ -52,15 +52,15 @@ class PermohonanSeeder extends Seeder [ 'nomor_registrasi' => 'REG0000006', 'tanggal_permohonan' => '2024-10-18', - 'user_id' => 2, + 'user_id' => 1, 'branch_id' => 1, 'tujuan_penilaian_id' => 1, 'debiture_id' => 2, 'status' => 'registered', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2, + 'created_by' => 1, + 'updated_by' => 1, 'jenis_fasilitas_kredit_id' => 4, 'nilai_plafond_id' => 1, 'status_bayar' => 'sudah_bayar', @@ -70,56 +70,56 @@ class PermohonanSeeder extends Seeder [ 'nomor_registrasi' => 'REG0000007', 'tanggal_permohonan' => '2024-10-28', - 'user_id' => 3, + 'user_id' => 1, 'branch_id' => 1, 'tujuan_penilaian_id' => 7, 'debiture_id' => 4, 'status' => 'done', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2, + 'created_by' => 1, + 'updated_by' => 1, 'jenis_fasilitas_kredit_id' => 7, 'nilai_plafond_id' => 1, 'status_bayar' => 'sudah_bayar', 'nilai_njop' => '421354365747658', - 'jenis_penilaian_id' => null + 'jenis_penilaian_id' => 2 ], [ 'nomor_registrasi' => 'REG0000008', 'tanggal_permohonan' => '2024-10-28', - 'user_id' => 3, + 'user_id' => 1, 'branch_id' => 1, 'tujuan_penilaian_id' => 1, 'debiture_id' => 7, 'status' => 'done', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 3, - 'updated_by' => 3, + 'created_by' => 1, + 'updated_by' => 1, 'jenis_fasilitas_kredit_id' => 7, 'nilai_plafond_id' => 2, 'status_bayar' => 'sudah_bayar', 'nilai_njop' => '421354365747659', - 'jenis_penilaian_id' => null + 'jenis_penilaian_id' => 2 ], [ 'nomor_registrasi' => 'REG0000010', 'tanggal_permohonan' => '2024-10-28', - 'user_id' => 3, + 'user_id' => 1, 'branch_id' => 1, 'tujuan_penilaian_id' => 5, 'debiture_id' => 7, 'status' => 'done', 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 3, - 'updated_by' => 3, + 'created_by' => 1, + 'updated_by' => 1, 'jenis_fasilitas_kredit_id' => 4, 'nilai_plafond_id' => 1, 'status_bayar' => 'sudah_bayar', 'nilai_njop' => '421354365747660', - 'jenis_penilaian_id' => null + 'jenis_penilaian_id' => 2 ] ]); } diff --git a/database/seeders/StatusPermohonanSeeder.php b/database/seeders/StatusPermohonanSeeder.php index a34127c..1cd6526 100644 --- a/database/seeders/StatusPermohonanSeeder.php +++ b/database/seeders/StatusPermohonanSeeder.php @@ -100,8 +100,8 @@ class StatusPermohonanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Tender', @@ -110,8 +110,8 @@ class StatusPermohonanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ], [ 'name' => 'Done', @@ -120,8 +120,8 @@ class StatusPermohonanSeeder extends Seeder 'status' => 1, 'created_at' => now(), 'updated_at' => now(), - 'created_by' => 2, - 'updated_by' => 2 + 'created_by' => 1, + 'updated_by' => 1 ] ]); } From 8b1c9516aa6802d7228916679fa13cd47bb6475a Mon Sep 17 00:00:00 2001 From: rahmatrafli1 Date: Sun, 3 Nov 2024 01:20:22 +0700 Subject: [PATCH 023/100] Menambahkan seeder Teams dan TeamsUsers pada module Lpj --- database/seeders/DebitureSeeder.php | 4 +- .../seeders/DetailDokumenJaminanSeeder.php | 76 ++----------------- database/seeders/DetailPenawaranSeeder.php | 36 --------- database/seeders/DokumenJaminanSeeder.php | 32 -------- database/seeders/LpjDatabaseSeeder.php | 8 +- database/seeders/PenawaranSeeder.php | 2 +- database/seeders/TeamUsersSeeder.php | 32 ++++++++ database/seeders/TeamsSeeder.php | 32 ++++++++ 8 files changed, 77 insertions(+), 145 deletions(-) create mode 100644 database/seeders/TeamUsersSeeder.php create mode 100644 database/seeders/TeamsSeeder.php diff --git a/database/seeders/DebitureSeeder.php b/database/seeders/DebitureSeeder.php index 68ec9fe..d8f57c1 100644 --- a/database/seeders/DebitureSeeder.php +++ b/database/seeders/DebitureSeeder.php @@ -57,7 +57,7 @@ class DebitureSeeder extends Seeder 'branch_id' => 1, 'cif' => '1518467', 'name' => 'PT ABCD SEJATI', - 'npwp' => '00185260002', + 'npwp' => '001852600023342', 'email' => 'abcd@ag.co.id', 'phone' => '081111555', 'nomor_rekening' => '0082346', @@ -77,7 +77,7 @@ class DebitureSeeder extends Seeder 'branch_id' => 1, 'cif' => '12345', 'name' => 'Testing', - 'npwp' => '1029280183912111', + 'npwp' => '102928018391211', 'email' => 'testing@email.com', 'phone' => '098172386', 'nomor_rekening' => '12345', diff --git a/database/seeders/DetailDokumenJaminanSeeder.php b/database/seeders/DetailDokumenJaminanSeeder.php index 2eb665d..0fb3f84 100644 --- a/database/seeders/DetailDokumenJaminanSeeder.php +++ b/database/seeders/DetailDokumenJaminanSeeder.php @@ -28,17 +28,6 @@ class DetailDokumenJaminanSeeder extends Seeder 'name' => 'Tanah Bangunan', 'dokumen_jaminan_id' => 1, 'jenis_legalitas_jaminan_id' => 3, - 'dokumen_jaminan' => 'jaminan/1/2/Test.pdf', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'name' => 'Tanah Bangunan', - 'dokumen_jaminan_id' => 1, - 'jenis_legalitas_jaminan_id' => 7, 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', 'status' => 1, 'created_at' => now(), @@ -49,7 +38,7 @@ class DetailDokumenJaminanSeeder extends Seeder [ 'name' => 'Tanah Bangunan', 'dokumen_jaminan_id' => 1, - 'jenis_legalitas_jaminan_id' => 8, + 'jenis_legalitas_jaminan_id' => 4, 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', 'status' => 1, 'created_at' => now(), @@ -60,7 +49,7 @@ class DetailDokumenJaminanSeeder extends Seeder [ 'name' => 'Tanah Bangunan', 'dokumen_jaminan_id' => 1, - 'jenis_legalitas_jaminan_id' => 9, + 'jenis_legalitas_jaminan_id' => 5, 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', 'status' => 1, 'created_at' => now(), @@ -70,64 +59,9 @@ class DetailDokumenJaminanSeeder extends Seeder ], [ 'name' => 'Tanah Bangunan', - 'dokumen_jaminan_id' => 2, - 'jenis_legalitas_jaminan_id' => 1, - 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'name' => 'Tanah Bangunan', - 'dokumen_jaminan_id' => 2, - 'jenis_legalitas_jaminan_id' => 3, - 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'name' => 'Tanah Bangunan', - 'dokumen_jaminan_id' => 2, - 'jenis_legalitas_jaminan_id' => 7, - 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'name' => 'Tanah Bangunan', - 'dokumen_jaminan_id' => 2, - 'jenis_legalitas_jaminan_id' => 8, - 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'name' => 'Tanah Bangunan', - 'dokumen_jaminan_id' => 2, - 'jenis_legalitas_jaminan_id' => 9, - 'dokumen_jaminan' => 'jaminan/4/2/Test.pdf', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'name' => 'Gedung', - 'dokumen_jaminan_id' => 3, - 'jenis_legalitas_jaminan_id' => 1, - 'dokumen_jaminan' => 'jaminan/7/3/Test.pdf', + 'dokumen_jaminan_id' => 1, + 'jenis_legalitas_jaminan_id' => 6, + 'dokumen_jaminan' => 'jaminan/1/1/Test.pdf', 'status' => 1, 'created_at' => now(), 'updated_at' => now(), diff --git a/database/seeders/DetailPenawaranSeeder.php b/database/seeders/DetailPenawaranSeeder.php index c9369c2..de38595 100644 --- a/database/seeders/DetailPenawaranSeeder.php +++ b/database/seeders/DetailPenawaranSeeder.php @@ -48,42 +48,6 @@ class DetailPenawaranSeeder extends Seeder 'updated_at' => now(), 'created_by' => 1, 'updated_by' => 1 - ], - [ - 'kjpp_rekanan_id' => 1, - 'penawaran_id' => 2, - 'biaya_penawaran' => null, - 'attachment' => null, - 'dokumen_persetujuan' => null, - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'kjpp_rekanan_id' => 2, - 'penawaran_id' => 2, - 'biaya_penawaran' => null, - 'attachment' => null, - 'dokumen_persetujuan' => null, - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'kjpp_rekanan_id' => 3, - 'penawaran_id' => 2, - 'biaya_penawaran' => null, - 'attachment' => null, - 'dokumen_persetujuan' => null, - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 ] ]); } diff --git a/database/seeders/DokumenJaminanSeeder.php b/database/seeders/DokumenJaminanSeeder.php index e1c8465..17f53c6 100644 --- a/database/seeders/DokumenJaminanSeeder.php +++ b/database/seeders/DokumenJaminanSeeder.php @@ -28,38 +28,6 @@ class DokumenJaminanSeeder extends Seeder 'updated_at' => now(), 'created_by' => 1, 'updated_by' => 1 - ], - [ - 'debiture_id' => 4, - 'jenis_jaminan_id' => 1, - 'pemilik_jaminan_id' => 4, - 'province_code' => '16', - 'city_code' => '16.05', - 'district_code' => '16.05.03', - 'village_code' => '16.05.03.2002', - 'postal_code' => '31663', - 'address' => 'alamat', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 - ], - [ - 'debiture_id' => 7, - 'jenis_jaminan_id' => 4, - 'pemilik_jaminan_id' => 5, - 'province_code' => '13', - 'city_code' => '13.72', - 'district_code' => '13.72.02', - 'village_code' => '13.72.02.1001', - 'postal_code' => '27323', - 'address' => 'Jl. Merdeka II no. 1', - 'status' => 1, - 'created_at' => now(), - 'updated_at' => now(), - 'created_by' => 1, - 'updated_by' => 1 ] ]); } diff --git a/database/seeders/LpjDatabaseSeeder.php b/database/seeders/LpjDatabaseSeeder.php index 81b63e7..d81021d 100644 --- a/database/seeders/LpjDatabaseSeeder.php +++ b/database/seeders/LpjDatabaseSeeder.php @@ -25,19 +25,21 @@ class LpjDatabaseSeeder extends Seeder ArahMataAnginSeeder::class, StatusPermohonanSeeder::class, RegionSeeder::class, + TeamsSeeder::class, + TeamUsersSeeder::class, JenisPenilaianSeeder::class, TujuanPenilaianKJPPSeeder::class, IjinUsahaSeeder::class, JenisLaporanSeeder::class, KJPPSeeder::class, DebitureSeeder::class, + PermohonanSeeder::class, PemilikJaminanSeeder::class, + DokumenJaminanSeeder::class, + DetailDokumenJaminanSeeder::class, PenawaranSeeder::class, DetailPenawaranSeeder::class, PenilaianSeeder::class, - PermohonanSeeder::class, - DokumenJaminanSeeder::class, - DetailDokumenJaminanSeeder::class, ]); } } diff --git a/database/seeders/PenawaranSeeder.php b/database/seeders/PenawaranSeeder.php index 50070e6..3c20c12 100644 --- a/database/seeders/PenawaranSeeder.php +++ b/database/seeders/PenawaranSeeder.php @@ -21,7 +21,7 @@ class PenawaranSeeder extends Seeder 'start_date' => '2024-10-21', 'end_date' => '2024-10-28', 'catatan' => 'Hai', - 'status' => 'persetujuan-penawaran', + 'status' => 'tender', 'created_at' => now(), 'updated_at' => now(), 'created_by' => 1, diff --git a/database/seeders/TeamUsersSeeder.php b/database/seeders/TeamUsersSeeder.php new file mode 100644 index 0000000..959c1e4 --- /dev/null +++ b/database/seeders/TeamUsersSeeder.php @@ -0,0 +1,32 @@ + 1, + 'user_id' => 3, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'teams_id' => 2, + 'user_id' => 4, + 'status' => 1, + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} diff --git a/database/seeders/TeamsSeeder.php b/database/seeders/TeamsSeeder.php new file mode 100644 index 0000000..a3f2595 --- /dev/null +++ b/database/seeders/TeamsSeeder.php @@ -0,0 +1,32 @@ + 1, + 'code' => 'T01', + 'name' => 'Penilai 1', + 'created_at' => now(), + 'updated_at' => now() + ], + [ + 'regions_id' => 2, + 'code' => 'T02', + 'name' => 'Penilai 2', + 'created_at' => now(), + 'updated_at' => now() + ] + ]); + } +} From 2908a21454beb07ae3d14b25c9800b31f7ad3b19 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Mon, 4 Nov 2024 09:47:55 +0700 Subject: [PATCH 024/100] Add new owner relationships and form for guarantee owners This commit introduces the capability to select and define relationships for guarantee owners that are different from the debiture. Additionally, a dynamic form is added to manage the details of multiple guarantee owners, including their IDs and names. Adjustments have also been made to the views and controllers to support these features. --- .../Controllers/DokumenJaminanController.php | 65 ++++++++- app/Http/Requests/PemilikJaminanRequest.php | 2 - .../debitur/components/dokumen.blade.php | 128 ++++++++++++++++-- 3 files changed, 179 insertions(+), 16 deletions(-) diff --git a/app/Http/Controllers/DokumenJaminanController.php b/app/Http/Controllers/DokumenJaminanController.php index 2ae5384..83b75e0 100644 --- a/app/Http/Controllers/DokumenJaminanController.php +++ b/app/Http/Controllers/DokumenJaminanController.php @@ -14,6 +14,7 @@ use Modules\Lpj\Models\Debiture; use Modules\Lpj\Models\DetailDokumenJaminan; use Modules\Lpj\Models\DokumenJaminan; + use Modules\Lpj\Models\HubunganPemilikJaminan; use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisLegalitasJaminan; use Modules\Lpj\Models\PemilikJaminan; @@ -125,10 +126,18 @@ $jenisJaminan = JenisJaminan::all(); $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); $pemilikJaminan = PemilikJaminan::where('debiture_id', $id)->get(); + $hubunganPemilik = HubunganPemilikJaminan::all(); return view( 'lpj::debitur.jaminan', - compact('debitur', 'provinces', 'jenisJaminan', 'jenisLegalitasJaminan', 'pemilikJaminan'), + compact( + 'debitur', + 'provinces', + 'jenisJaminan', + 'jenisLegalitasJaminan', + 'pemilikJaminan', + 'hubunganPemilik', + ), ); } @@ -142,6 +151,49 @@ DB::beginTransaction(); $validate['debiture_id'] = $id; + if ($validate['pemilik_jaminan_id'] == 00) { + $pemilik_jaminan = [ + 'hubungan_pemilik_jaminan_id' => request()->get('hubungan_pemilik_jaminan_id'), + 'province_code' => $debitur->province_code, + 'city_code' => $debitur->city_code, + 'district_code' => $debitur->district_code, + 'village_code' => $debitur->village_code, + 'postal_code' => $debitur->postal_code, + 'address' => $debitur->address, + 'nomor_id' => request()->get('nomor_id'), + 'name' => request()->get('pemilik_name'), + ]; + + $detailSertifikat = []; + $names = request()->input('detail_sertifikat.name', []); + $nomorIds = request()->input('detail_sertifikat.nomor_id', []); + + foreach ($names as $index => $name) { + if (isset($nomorIds[$index])) { + $detailSertifikat[] = [ + 'name' => $name, + 'nomor_id' => $nomorIds[$index], + ]; + } + } + + $pemilik_jaminan['detail_sertifikat'] = json_encode($detailSertifikat); + + //dd($pemilik_jaminan); + + try{ + $pemilikJaminan = PemilikJaminan::updateOrCreate([ + 'debiture_id' => $id, + 'name' => request()->get('pemilik_name'), + ], $pemilik_jaminan); + } catch (Exception $e){ + return redirect()->route('debitur.jaminan.index', $id)->with('error', 'Gagal update pemilik jaminan: '. $e->getMessage()); + } + + $validate['pemilik_jaminan_id']=$pemilikJaminan->id; + } + + if ($validate['pemilik_jaminan_id'] == 0) { $pemilik_jaminan = [ 'hubungan_pemilik_jaminan_id' => 1, @@ -160,11 +212,14 @@ 'debiture_id' => $id, 'name' => $debitur->name, ], $pemilik_jaminan); + + $validate['pemilik_jaminan_id'] = $pemilikJaminan->id; } $document = DokumenJaminan::find($jaminan); $document->update($validate); + if ($request->detail_dokumen_jaminan_id) { foreach ($request->detail_dokumen_jaminan_id as $key => $value) { if (isset($request->dokumen_jaminan[$key])) { @@ -239,6 +294,7 @@ $jenisJaminan = JenisJaminan::all(); $jenisLegalitasJaminan = JenisLegalitasJaminan::all(); $pemilikJaminan = PemilikJaminan::where('debiture_id', $document->debiture_id)->get(); + $hubunganPemilik = HubunganPemilikJaminan::all(); return view( 'lpj::debitur.jaminan', @@ -253,6 +309,7 @@ 'districts', 'villages', 'pemilikJaminan', + 'hubunganPemilik', ), ); } @@ -305,11 +362,11 @@ } else { return redirect()->back()->with('error', 'Failed to create ZIP file.'); } - + return response()->download($zipFilePath, $zipFileName, [ - 'Content-Type' => 'application/zip', + 'Content-Type' => 'application/zip', 'Content-Disposition' => 'attachment; filename="' . $zipFileName . '"', - 'Content-Length' => filesize($zipFilePath), + 'Content-Length' => filesize($zipFilePath), ])->deleteFileAfterSend(false); } diff --git a/app/Http/Requests/PemilikJaminanRequest.php b/app/Http/Requests/PemilikJaminanRequest.php index ca76c83..e139f55 100644 --- a/app/Http/Requests/PemilikJaminanRequest.php +++ b/app/Http/Requests/PemilikJaminanRequest.php @@ -61,7 +61,5 @@ $this->merge([ 'detail_sertifikat' => json_encode($detailSertifikat), ]); - - } } diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 1e5eed3..e15a2b8 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -22,9 +22,10 @@
- + @if(isset($pemilikJaminan)) @foreach($pemilikJaminan as $pemilik) @if(isset($document)) @@ -39,19 +40,71 @@ @endforeach @endif - @if(isset($document->id)) - - Tambah Pemilik Jaminan - - @else - - Tambah Pemilik Jaminan - - @endif
@error('pemilik_jaminan_id') {{ $message }} @enderror +
@@ -244,6 +297,61 @@ @push('scripts') + {{--Pemilik Jaminan--}} + + + {{--Legalitas Jaminan--}} @@ -354,12 +366,12 @@ {{--Legalitas Jaminan--}} -@endpush \ No newline at end of file +@endpush diff --git a/resources/views/prosespenawaranulang/js/editjs.blade.php b/resources/views/prosespenawaranulang/js/editjs.blade.php index 7d8d9da..0bde8e5 100644 --- a/resources/views/prosespenawaranulang/js/editjs.blade.php +++ b/resources/views/prosespenawaranulang/js/editjs.blade.php @@ -1,19 +1,19 @@ @push('scripts') @include('lpj::assetsku.includenya') - @include('lpj::prosespenawaranulang.js.editextjs') - -@endpush \ No newline at end of file +@endpush From d2afeaa845ecfa083cb672b18808f9b3653aec1f Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Mon, 4 Nov 2024 19:12:57 +0700 Subject: [PATCH 037/100] add feature SPK --- app/Http/Controllers/SpkController.php | 226 +++++++++++++++++++++- module.json | 9 + resources/views/spk/documentSPK.blade.php | 189 ++++++++++++++++++ resources/views/spk/dokumennya.blade.php | 185 ++++++++++++++++++ resources/views/spk/edit.blade.php | 211 ++++++++++++++++++++ resources/views/spk/index.blade.php | 207 +++++++++++--------- resources/views/spk/js/editjs.blade.php | 39 ++++ routes/breadcrumbs.php | 9 + routes/registrasi.php | 10 + routes/web.php | 13 -- 10 files changed, 989 insertions(+), 109 deletions(-) create mode 100644 resources/views/spk/documentSPK.blade.php create mode 100644 resources/views/spk/dokumennya.blade.php create mode 100644 resources/views/spk/edit.blade.php create mode 100644 resources/views/spk/js/editjs.blade.php diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index 5b4d9de..ec96a62 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -1,14 +1,22 @@ user) || !$this->user->can('debitur.view')) { + //abort(403, 'Sorry! You are not allowed to view users.'); + } + + // Retrieve data from the database + $query =Permohonan::query() + ->leftJoin('penawaran', 'penawaran.nomor_registrasi','=','permohonan.nomor_registrasi') + ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') + ->where('permohonan.status','=','spk') + ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name', 'permohonan.dokumen as dokumenSPK'); + + // 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->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(); + + $data = $query->get(); + + $i=0; + foreach($data as $obj) + { + if($obj->tanggal_penilaian_sebelumnya) + { + $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); + } + + if($obj->biaya_kjpp_sebelumnya) + { + $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); + + } + + // date_range + if($obj->start_date && $obj->end_date) + { + $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y'); + + } + + $i++; + } + + + // 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 viewSpk() { // return Excel::download(new TujuanPenilaianExport, 'tujuan_penilaian.xlsx'); return view('lpj::spk.view'); } + + public function show($id) + { + $penawaran = PenawaranTender::find($id); + // return view('lpj::spk.show', compact('id','permohonan')); + } + + public function edit($id) + { + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->where('detail_penawaran.status','=',1) + ->where('penawaran.id','=', $id) + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', + 'kjpp.name as kjpp_name', + 'kjpp.address as kjpp_address', + 'jenis_laporan.name as jenis_laporan_name' + )->first(); + + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) + ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') + ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + 'dokumen_jaminan.address as dokumen_jaminan_address'); + + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); + + return view('lpj::spk.edit', compact('data', 'penawaran')); + } + + public function update(Request $request, $id): JsonResponse + { + // init + $data1 = array(); + $dataPermohonan = array(); + // data + + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->where('detail_penawaran.status','=',1) + ->where('penawaran.id','=', $id) + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + 'kjpp.name as kjpp_name', + 'kjpp.address as kjpp_address', + 'jenis_laporan.name as jenis_laporan_name' + )->first(); + + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) + ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') + ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name'); + + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); + + $folderPath = 'uploads/spk/'; + $extension = '.pdf'; + $newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension; + $newFileNameWithPath = $folderPath . $newFileName; + + // update table permohonan + $dataPermohonan=['dokumen' => $newFileNameWithPath]; + $data->update($dataPermohonan); + // update table permohonan + + // pdf path + $spkpenawaran_path = Storage::url($newFileNameWithPath); + + $pdf =Pdf::loadView('lpj::spk.documentSPK', compact('data', 'penawaran')); + + $content = $pdf->download()->getOriginalContent(); + Storage::put('public/'.$newFileNameWithPath,$content); + + $data1['status'] = 'success'; + $data1['spkpenawaran_path'] = $spkpenawaran_path; + $data1['message']['message_success'] = array('Generate SPK PDF successfully'); + + return response()->json($data1); + } + + public function dokumennya() + { + // return view('lpj::spk.dokumennya'); + $id="3"; + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->where('detail_penawaran.status','=',1) + ->where('penawaran.id','=', $id) + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', + 'kjpp.name as kjpp_name', + 'kjpp.address as kjpp_address', + 'jenis_laporan.name as jenis_laporan_name' + )->first(); + + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) + ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') + ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + 'dokumen_jaminan.address as dokumen_jaminan_address'); + + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); + + return view('lpj::spk.dokumennya', compact('data', 'penawaran')); + } } diff --git a/module.json b/module.json index 6ab8ec6..63e608d 100644 --- a/module.json +++ b/module.json @@ -91,6 +91,15 @@ } ] }, + { + "title": "SPK", + "path": "spk", + "icon": "ki-filled ki-file-added text-lg", + "classes": "", + "attributes": [], + "permission": "", + "roles": ["administrator", "admin"] + }, { "title": "Registrasi Final", "path": "registrasifinal", diff --git a/resources/views/spk/documentSPK.blade.php b/resources/views/spk/documentSPK.blade.php new file mode 100644 index 0000000..7fa8ade --- /dev/null +++ b/resources/views/spk/documentSPK.blade.php @@ -0,0 +1,189 @@ + + + + + + + +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/spk/dokumennya.blade.php b/resources/views/spk/dokumennya.blade.php new file mode 100644 index 0000000..f4db8fa --- /dev/null +++ b/resources/views/spk/dokumennya.blade.php @@ -0,0 +1,185 @@ +@php + use Nwidart\Modules\Module; +@endphp +@vite(Module::getAssets()) + @stack('styles') +
+
+ +
+
\ No newline at end of file diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php new file mode 100644 index 0000000..6ff8488 --- /dev/null +++ b/resources/views/spk/edit.blade.php @@ -0,0 +1,211 @@ +@extends('layouts.main') + +@section('breadcrumbs') + {{ Breadcrumbs::render(request()->route()->getName()) }} +@endsection +@php + // $route = Route::currentRouteName(); + // dd($route); + $route = explode('.', Route::currentRouteName()); +@endphp + +@section('content') +
+
+
+

Buat SPK

+
+ +
+ +
+
+
+ +
+
+
+
+@endsection +@include('lpj::spk.js.editjs') diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index fb973a3..65d6e92 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -1,27 +1,26 @@ @extends('layouts.main') @section('breadcrumbs') - {{ Breadcrumbs::render('basicdata.tujuan-penilaian') }} + {{ Breadcrumbs::render('spk') }} @endsection @section('content')
-
+

- SPK Menu + Daftar SPK

@@ -32,12 +31,28 @@ - - No SPK + + Nomor Registrasi - - Perihal + + Kode Penawaran + + + + Tanggal Penawaran + + + + Tujuan Penilaian + + + + KJPP Data + + + + Status Action @@ -62,87 +77,103 @@ @endsection @push('scripts') - - - + + let dataTable = new KTDataTable(element, dataTableOptions); + // Custom search functionality + searchInput.addEventListener('input', function () { + const searchValue = this.value.trim(); + dataTable.search(searchValue, true); + + }); + + @endpush diff --git a/resources/views/spk/js/editjs.blade.php b/resources/views/spk/js/editjs.blade.php new file mode 100644 index 0000000..813e378 --- /dev/null +++ b/resources/views/spk/js/editjs.blade.php @@ -0,0 +1,39 @@ +@push('scripts') + @include('lpj::assetsku.includenya') + +@endpush \ No newline at end of file diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index 39a97be..0f54909 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -515,6 +515,15 @@ Breadcrumbs::for('otorisasitender.penawaran.show', function (BreadcrumbTrail $tr $trail->push('Detail Data Otorisasi Penawaran'); }); // andy add Otorisasi Tender +// spk +Breadcrumbs::for('spk', function (BreadcrumbTrail $trail) { + $trail->push('SPK', route('spk.index')); +}); +Breadcrumbs::for('spk.edit', function (BreadcrumbTrail $trail) { + $trail->parent('spk'); + $trail->push('Buat SPK'); +}); +// spk // andy add registrasi final Breadcrumbs::for('registrasifinal', function (BreadcrumbTrail $trail) { $trail->push('Registrasi Final', route('registrasifinal.index')); diff --git a/routes/registrasi.php b/routes/registrasi.php index f8b3893..a9334bd 100644 --- a/routes/registrasi.php +++ b/routes/registrasi.php @@ -4,6 +4,7 @@ use Modules\Lpj\Http\Controllers\RegistrasiController; use Modules\Lpj\Http\Controllers\ProsesPenawaranController; use Modules\Lpj\Http\Controllers\ProsesPenawaranUlangController; use Modules\Lpj\Http\Controllers\OtorisasiPenawaranController; +use Modules\Lpj\Http\Controllers\SpkController; use Modules\Lpj\Http\Controllers\RegistrasiFinalController; Route::middleware(['auth'])->group(function () { @@ -85,6 +86,15 @@ Route::middleware(['auth'])->group(function () { }); }); + Route::controller(SpkController::class)->group(function(){ + Route::get('/spk/dokumennya', 'dokumennya')->name('spk.dokumennya'); + Route::get('/spk', 'index')->name('spk.index'); + Route::get('/spk/datatables', 'dataForDatatables')->name('spk.datatables'); + Route::get('/spk/{spk}', 'show')->name('spk.show'); + Route::get('/spk/{spk}/edit', 'edit')->name('spk.edit'); + Route::put('/spk/{spk}', 'update')->name('spk.update'); + }); + Route::controller(RegistrasiFinalController::class)->group(function(){ Route::get('/registrasifinal', 'index')->name('registrasifinal.index'); Route::get('/registrasifinal/datatables', 'dataForDatatables')->name('registrasifinal.datatables'); diff --git a/routes/web.php b/routes/web.php index 8292c9b..eadf6f9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -27,7 +27,6 @@ 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\SpkController; // use Modules\Lpj\Http\Controllers\ActivityController; use Modules\Lpj\Http\Controllers\SurveyorController; @@ -376,18 +375,6 @@ Route::middleware(['auth'])->group(function () { Route::get('export', [PermohonanController::class, 'export'])->name('export'); }); - Route::name('spk.')->prefix('spk')->group(function () { - // Route::get('download', [PermohonanController::class, 'createPermohonan'])->name('create.debitur'); - Route::get('view', [SpkController::class, 'viewSpk'])->name('spk.view'); - // 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('spk', SpkController::class); - Route::get('authorization', [PermohonanController::class, 'authorization'])->name('authorization.index'); Route::resource('permohonan', PermohonanController::class); From 10c9567b4f1546871b9a5cf39f47cd1aad4b6cbf Mon Sep 17 00:00:00 2001 From: majid Date: Tue, 5 Nov 2024 08:29:27 +0700 Subject: [PATCH 038/100] update assigment lintas region --- app/Http/Controllers/ActivityController.php | 79 ++++-- app/Http/Controllers/PenilaianController.php | 199 ++++++++++--- app/Http/Controllers/SurveyorController.php | 25 +- app/Http/Controllers/TeamsController.php | 4 +- app/Http/Requests/PenilaianRequest.php | 9 +- app/Models/Penilaian.php | 13 +- app/Models/PenilaianTeam.php | 39 +++ app/Models/Permohonan.php | 5 + app/Models/Teams.php | 4 +- ...24227_create_kategori_jenis_aset_table.php | 37 +++ ...24_10_31_032505_update_penilaian_table.php | 38 +++ ...10_31_032940_create_penilai_team_table.php | 38 +++ ...e_kategori_form_analisa_inspeksi_table.php | 38 +++ ...81225_create_label_name_inspeksi_table.php | 28 ++ .../activity/progres_activity/index.blade.php | 20 +- resources/views/penilaian/form.blade.php | 265 +++++++++++------- .../surveyor/components/inspeksi.blade.php | 90 +++--- resources/views/surveyor/detail.blade.php | 2 +- resources/views/surveyor/index.blade.php | 18 +- 19 files changed, 699 insertions(+), 252 deletions(-) create mode 100644 app/Models/PenilaianTeam.php create mode 100644 database/migrations/2024_10_31_024227_create_kategori_jenis_aset_table.php create mode 100644 database/migrations/2024_10_31_032505_update_penilaian_table.php create mode 100644 database/migrations/2024_10_31_032940_create_penilai_team_table.php create mode 100644 database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php create mode 100644 database/migrations/2024_11_01_081225_create_label_name_inspeksi_table.php diff --git a/app/Http/Controllers/ActivityController.php b/app/Http/Controllers/ActivityController.php index 74bb5f7..816e1e8 100644 --- a/app/Http/Controllers/ActivityController.php +++ b/app/Http/Controllers/ActivityController.php @@ -30,31 +30,44 @@ class ActivityController extends Controller */ - public function progres_activity() - { - // Ambil user yang sedang login - $user = auth()->user(); - $roles = $user->load('roles'); - $regionId = null; + public function progres_activity() + { + // Ambil user yang sedang login + $user = auth()->user(); + $roles = $user->load('roles'); - // Cek apakah user memiliki role 'senior officer' - if ($roles->roles->pluck('name')->contains('senior officer')) { - $regionId = TeamsUsers::with('team.regions') - ->where('user_id', $user->id) - ->first()?->team->regions_id; - } + // Inisialisasi regionId dan teamId sebagai null agar bisa dinamis + $regionId = null; + $teamId = null; - $teamsActivity = TeamsUsers::with(['user', 'team', 'team.regions']) - ->whereHas('team', function ($q) use ($regionId) { - if ($regionId) { - $q->where('regions_id', $regionId); - } - }) - ->where('user_id', '!=', $user->id) - ->get(); + if ($roles->roles->pluck('name')->contains('senior-officer')) { + $userTeam = TeamsUsers::with('team') + ->where('user_id', $user->id) + ->first(); + $regionId = $userTeam?->team->regions_id; + $teamId = $userTeam?->teams_id; + + } + + $teamsActivity = TeamsUsers::with(['user', 'team', 'team.regions', 'user.roles']) + ->whereHas('team', function ($q) use ($regionId, $teamId) { + if ($regionId) { + $q->where('regions_id', $regionId); + } + if ($teamId) { + $q->where('id', $teamId); // Hanya tim yang sama + } + }) + ->where('user_id', '!=', $user->id) + ->whereHas('user.roles', function ($query) { + // Filter hanya peran 'surveyor' atau 'surveyor-penilai' + $query->whereIn('name', ['surveyor', 'surveyor-penilai']); + }) + ->get(); + + return view('lpj::activity.progres_activity.index', compact('teamsActivity')); + } - return view('lpj::activity.progres_activity.index', compact('teamsActivity')); - } public function senior() @@ -194,13 +207,23 @@ class ActivityController extends Controller public function dataTablesForActivity(Request $request, $id) { + + if (is_null($this->user) || !$this->user->can('debitur.view')) { + // abort(403, 'Sorry! You are not allowed to view users.'); + } // Query Penilaian dengan relasi yang diperlukan - $query = Penilaian::with(['permohonan', 'permohonan.debiture', 'permohonan.tujuanPenilaian', 'permohonan.debiture.documents.jenisJaminan']) - ->where(function($q) use ($id) { - $q->where('surveyor_id', $id) - ->orWhere('penilaian_id', $id) - ->orWhere('penilai_surveyor_id', $id); - }); + $query = Penilaian::with([ + 'permohonan', + 'permohonan.debiture', + 'permohonan.tujuanPenilaian', + 'permohonan.debiture.documents.jenisJaminan', + 'userPenilai' + ]) + ->whereHas('userPenilai', function ($q) use ($id) { + $q->where('user_id', $id); + }); + + // Filter pencarian if ($request->has('search') && !empty($request->get('search'))) { diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index c25f341..c0730a6 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -5,14 +5,18 @@ namespace Modules\Lpj\Http\Controllers; use App\Http\Controllers\Controller; use Exception; use Illuminate\Http\Request; +use Illuminate\Support\Facades\DB; use Modules\Lpj\Http\Requests\PenilaianRequest; use Modules\Lpj\Models\JenisPenilaian; use Modules\Lpj\Models\Penilaian; +use Modules\Lpj\Models\PenilaianTeam; use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\StatusPermohonan; use Modules\Lpj\Models\Teams; +use Modules\Lpj\Models\Regions; use Modules\Lpj\Models\TeamsUsers; use Modules\Usermanagement\Models\User; +use Illuminate\Support\Facades\Auth; class PenilaianController extends Controller { @@ -37,17 +41,84 @@ class PenilaianController extends Controller if ($validatedData) { try { - $penilaian = Penilaian::create($validatedData); + DB::beginTransaction(); + + $penilaian = Penilaian::create($validatedData); + $validatedData['penilaian_id'] = $penilaian->id; + + $teams_ids = []; + $user_ids = []; + $roles = []; + + if ($validatedData['surveyor_id'] === 'pilih_dari_region') { + $surveyor_region_id = $validatedData['surveyor_region_id']; + + // Hapus team_id sebelumnya di Permohonan jika ada + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + if ($permohonan) { + $permohonan->update([ + 'region_id' => $surveyor_region_id, + ]); + } + + $teams_ids[] = $surveyor_region_id; + $user_ids[] = null; + $roles[] = 'surveyor'; + } else { + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $teams_ids[] = $validatedData['teams_id']; + $user_ids[] = $validatedData['surveyor_id']; + $roles[] = 'surveyor'; + + } + + if ($validatedData['penilai_id'] === 'pilih_dari_region') { + $penilaian_region_id = $validatedData['penilai_region_id']; + + // Hapus team_id sebelumnya di Permohonan jika ada + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + if ($permohonan) { + $permohonan->update([ + 'region_id' => $penilaian_region_id, + ]); + } + + $teams_ids[] = $penilaian_region_id; + $user_ids[] = null; + $roles[] = 'penilai'; + } else { + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi)->first(); + $teams_ids[] = $validatedData['teams_id']; + $user_ids[] = $validatedData['penilai_id']; + $roles[] = 'penilai'; + + } + + foreach ($teams_ids as $key => $teams_id) { + PenilaianTeam::create([ + 'penilaian_id' => $validatedData['penilaian_id'], + 'team_id' => $teams_id, + 'user_id' => $user_ids[$key], + 'role' => $roles[$key], + ]); + } + + if ($validatedData['surveyor_id'] === 'pilih_dari_region' || $validatedData['penilai_id'] === 'pilih_dari_region') { + $status = 'registered'; + } else { + $status = 'assign'; + } - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); $permohonan->update([ - 'status' => 'assign', + 'status' => $status, ]); + DB::commit(); + return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan'); } catch (Exception $e) { - - return redirect()->route('penilaian.index')->with('error', $e->getMessage()); + DB::rollBack(); + return response()->json(array('error' => $e->getMessage())); } } } @@ -63,22 +134,43 @@ class PenilaianController extends Controller /** * Update the specified resource in storage. */ - public function update(PenilaianRequest $request, $id) + public function update(Request $request, $id) { - $validate = $request->validated(); - if ($validate) { - try { - $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->firstOrFail(); - $penilaian->update($validate); - $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); - $permohonan->update([ - 'status' => 'assign', - ]); + try { + DB::beginTransaction(); + $penilaian = Penilaian::where('nomor_registrasi', $request->nomor_registrasi)->first(); + + $penilaianId = $penilaian->id; + + $penilainTeam = PenilaianTeam::where('penilaian_id', $penilaianId)->get(); + + + foreach ($penilainTeam as $item) { + if ($item->role === 'surveyor' && $item->user_id === null) { + $item->update([ + 'user_id' => $request->surveyor_id, + 'role' => 'surveyor', + ]); + } + + if ($item->role === 'penilai' && $item->user_id === null) { + $item->update([ + 'user_id' => $request->penilai_id, + 'role' => 'penilai', + ]); + } - return redirect()->route('penilaian.index', $id)->with('success', 'Penilaian berhasil diubah'); - } catch (Exception $e) { - return redirect()->route('penilaian.index', $id)->with('error', $e->getMessage()); } + + $permohonan = Permohonan::where('nomor_registrasi', $request->nomor_registrasi); + $permohonan->update([ + 'status' => 'assign', + ]); + DB::commit(); + return redirect()->route('penilaian.index')->with('success', 'Penilaian berhasil disimpan'); + } catch (Exception $e) { + DB::rollBack(); + return response()->json(array('error' => $e->getMessage())); } } @@ -87,29 +179,36 @@ class PenilaianController extends Controller */ public function assignment($id) { - $permohonan = Permohonan::with( - [ - 'user', - 'debiture.province', - 'debiture.city', - 'debiture.district', - 'debiture.village', - 'branch', - 'tujuanPenilaian', - ], - )->findOrFail($id); + $permohonan = Permohonan::with([ + 'user', + 'debiture.province', + 'debiture.city', + 'debiture.district', + 'debiture.village', + 'branch', + 'tujuanPenilaian', + ])->findOrFail($id); - $idPenilaian = $permohonan->jenis_penilaian_id; + $idPenilaian = $permohonan->jenis_penilaian_id; $idRegion = $permohonan->region_id; $jenisPenilaian = JenisPenilaian::find($idPenilaian); + $userTeam = Teams::with(['regions', 'teamsUsers.user']) + ->whereHas('regions', function ($q) use ($idRegion) { + $q->where('id', $idRegion); + }) + ->get(); - $teamPenilai = Teams::with(['regions', 'teamsUsers', 'teamsUsers.user']) - ->whereHas('regions', function ($q) use ($idRegion) { - $q->where('id', $idRegion); - })->get(); - + $teamPenilai = $userTeam->flatMap(function ($team) { + return $team->teamsUsers->filter(function ($teamUser) { + return $teamUser->user->roles->contains(function ($role) { + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai'; + }); + })->map(function ($teamUser) { + return $teamUser->user; + }); + })->unique('id'); $existingTeamIds = $teamPenilai->pluck('id')->toArray(); @@ -117,19 +216,29 @@ class PenilaianController extends Controller ->whereNotIn('id', $existingTeamIds) ->get(); - $regionName = null; - foreach ($teamPenilai as $item) { + foreach ($userTeam as $item) { $regionName = $item->regions; } + // $regionName = $userTeam->first()?->regions->name; + - // dd($teamPenilai); $penilaian = Penilaian::where('nomor_registrasi', $permohonan->nomor_registrasi)->first(); - return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName', 'updateTeamPenilai')); - } + $penilaianTeam = collect(); + if ($penilaian && $penilaian->id) { + $penilaianTeam = PenilaianTeam::where('penilaian_id', $penilaian->id)->get(); + } + + // return response()->json([ + // 'penilaianTeam' => $penilaianTeam + // ]); + + + return view('lpj::penilaian.form', compact('permohonan', 'teamPenilai', 'jenisPenilaian', 'penilaian', 'regionName', 'updateTeamPenilai', 'penilaianTeam')); + } /** * Remove the specified resource from storage. */ @@ -167,8 +276,9 @@ class PenilaianController extends Controller 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(); @@ -187,6 +297,9 @@ class PenilaianController extends Controller } $query->whereRaw('LOWER(status) = ?', ['registered']); + $query->whereHas('region.teams.teamsUsers.user', function ($q) { + $q->where('id', Auth::user()->id); + }); if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { $order = $request->get('sortOrder'); @@ -209,7 +322,7 @@ class PenilaianController extends Controller } $filteredRecords = $query->count(); - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers.user'])->get(); $pageCount = ceil($totalRecords / $size); @@ -312,7 +425,7 @@ class PenilaianController extends Controller if (!empty($otorisator)) { if ($status == 'proses') { $query->whereIn('status_bayar', ['sudah_bayar', 'belum_bayar']); - }else{ + } else { $query->whereRaw('LOWER(status) = ?', [strtolower($status)]); } } diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index d4e30df..c9ff799 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -6,6 +6,7 @@ use App\Http\Controllers\Controller; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Illuminate\Support\Facades\Auth; use Illuminate\Http\Response; use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Branch; @@ -47,6 +48,7 @@ use Modules\Lpj\Http\Requests\FormSurveyorRequest; class SurveyorController extends Controller { public $user; + /** * Display a listing of the resource. */ @@ -118,6 +120,8 @@ class SurveyorController extends Controller ->where('permohonan_id', $id) ->get(); + + return view('lpj::surveyor.detail', compact( 'buttonDisable', 'fotojaminan', @@ -513,6 +517,11 @@ class SurveyorController extends Controller $query->whereRaw('LOWER(status) = ?', ['assign']); + $query->whereHas('region.teams.teamsUsers.user', function ($q) { + $q->where('id', Auth::user()->id); + }); + + if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { $order = $request->get('sortOrder'); $column = $request->get('sortField'); @@ -614,7 +623,6 @@ class SurveyorController extends Controller 'golMasySekitar', 'tingkatKeramaian', 'laluLintasLokasi' - )); } @@ -693,7 +701,7 @@ class SurveyorController extends Controller $spekKategoriBagunan = SpekKategoritBangunan::all(); $header = $this->getHeader($type); - return view('lpj::surveyor.data.form', compact('header','spekKategoriBagunan')); + return view('lpj::surveyor.data.form', compact('header', 'spekKategoriBagunan')); } @@ -713,7 +721,7 @@ class SurveyorController extends Controller ->with('error', 'Invalid type specified.'); } - if($type == 'spek-bangunan') { + if ($type == 'spek-bangunan') { $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; } @@ -764,7 +772,7 @@ class SurveyorController extends Controller } - return view('lpj::surveyor.data.form', compact('header', 'model','spekKategoriBagunan')); + return view('lpj::surveyor.data.form', compact('header', 'model', 'spekKategoriBagunan')); } @@ -774,7 +782,7 @@ class SurveyorController extends Controller if ($validate) { $modelClass = $this->getModelClass($type); - if($type == 'spek-bangunan') { + if ($type == 'spek-bangunan') { $validate['spek_kategori_bagunan_id'] = $request->spek_kategori_bagunan_id; } @@ -931,6 +939,8 @@ class SurveyorController extends Controller public function submitSurveyor(Request $request, $id) { + + $permohonan = Permohonan::find($id); $permohonan->update([ 'status' => 'done', @@ -942,6 +952,11 @@ class SurveyorController extends Controller } + public function validateSubmit(){ + + } + + private function getModelClass(string $type): ?string { return $this->modelClasses[$type] ?? null; diff --git a/app/Http/Controllers/TeamsController.php b/app/Http/Controllers/TeamsController.php index a6eb9ca..c699c81 100644 --- a/app/Http/Controllers/TeamsController.php +++ b/app/Http/Controllers/TeamsController.php @@ -43,7 +43,7 @@ class TeamsController extends Controller $user = $usersWithRole->filter(function ($user) { return $user->roles->contains(function ($role) { - return $role->name === 'surveyor' || $role->name === 'surveyor-penilai'; + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'senior-officer'; }); }); @@ -112,7 +112,7 @@ class TeamsController extends Controller $user = $usersWithRole->filter(function ($user) { return $user->roles->contains(function ($role) { - return $role->name === 'surveyor' || $role->name === 'surveyor-penilai'; + return $role->name === 'surveyor' || $role->name === 'surveyor-penilai' || $role->name === 'senior-officer'; }); }); diff --git a/app/Http/Requests/PenilaianRequest.php b/app/Http/Requests/PenilaianRequest.php index 0d9c1bf..af33782 100644 --- a/app/Http/Requests/PenilaianRequest.php +++ b/app/Http/Requests/PenilaianRequest.php @@ -33,9 +33,12 @@ class PenilaianRequest extends FormRequest 'tanggal_kunjungan' => 'required|max:255', 'status' => 'required|string', 'nomor_registrasi' => 'required|string', - 'surveyor_id' => 'nullable|required_without:penilai_surveyor_id', - 'penilaian_id' => 'nullable|required_without:penilai_surveyor_id', - 'penilai_surveyor_id' => 'nullable|required_without_all:surveyor_id,penilaian_id', + 'surveyor_id' => 'nullable| required_without:penilai_surveyor_id', + 'penilai_id' => 'nullable|required_without:penilai_surveyor_id', + 'penilai_surveyor_id' => 'nullable|required_without_all:surveyor_id,penilai_id', + 'surveyor_region_id' => 'nullable|required_without:surveyor_id', + 'penilai_region_id' => 'nullable|required_without:penilai_id', + 'keterangan' => 'nullable', ]; } diff --git a/app/Models/Penilaian.php b/app/Models/Penilaian.php index cb2f44c..b77937a 100644 --- a/app/Models/Penilaian.php +++ b/app/Models/Penilaian.php @@ -17,7 +17,7 @@ class Penilaian extends Model */ protected $table = 'penilaian'; protected $fillable = [ - 'jenis_penilaian_id', 'teams_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi','penilaian_id','surveyor_id','penilai_surveyor_id', + 'jenis_penilaian_id', 'tanggal_kunjungan', 'keterangan','nomor_registrasi', 'status', 'authorized_status', 'authorized_at', 'authorized_by', 'created_at', 'created_by', 'updated_at', 'updated_by', 'deleted_at', 'deleted_by' ]; @@ -39,18 +39,9 @@ class Penilaian extends Model public function userPenilai() { - return $this->belongsTo(User::class, 'penilaian_id', 'id'); + return $this->hasMany(PenilaianTeam::class, 'penilaian_id', 'id'); } - public function userSurveyor() - { - return $this->belongsTo(User::class, 'surveyor_id', 'id'); - } - - public function userPenilaiSurveyor() - { - return $this->belongsTo(User::class, 'penilai_surveyor_id', 'id'); - } public function permohonan() { diff --git a/app/Models/PenilaianTeam.php b/app/Models/PenilaianTeam.php new file mode 100644 index 0000000..8df88ef --- /dev/null +++ b/app/Models/PenilaianTeam.php @@ -0,0 +1,39 @@ +belongsTo(User::class, 'user_id', 'id'); + } + + public function team(){ + + return $this->belongsTo(Team::class, 'team_id', 'id'); + } + + public function penilaian(){ + + return $this->belongsTo(Penilaian::class, 'penilaian_id', 'id'); + } + + protected static function newFactory(): PenilaianTeamFactory + { + //return PenilaianTeamFactory::new(); + } +} diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index 8e4676b..8f6b0bd 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -83,4 +83,9 @@ class Permohonan extends Base { return $this->belongsTo(Penilaian::class, 'nomor_registrasi', 'nomor_registrasi'); } + + public function region() + { + return $this->belongsTo(Regions::class, 'region_id'); + } } diff --git a/app/Models/Teams.php b/app/Models/Teams.php index 0fd48a8..1348a6c 100644 --- a/app/Models/Teams.php +++ b/app/Models/Teams.php @@ -30,8 +30,8 @@ class Teams extends Model return $this->hasMany(TeamsUsers::class, 'teams_id', 'id'); } - public function penilaian(){ - return $this->hasMany(Penilaian::class, 'teams_id', 'id'); + public function penilaianTeam(){ + return $this->hasMany(penilaianTeam::class, 'team_id', 'id'); } diff --git a/database/migrations/2024_10_31_024227_create_kategori_jenis_aset_table.php b/database/migrations/2024_10_31_024227_create_kategori_jenis_aset_table.php new file mode 100644 index 0000000..50b5cb3 --- /dev/null +++ b/database/migrations/2024_10_31_024227_create_kategori_jenis_aset_table.php @@ -0,0 +1,37 @@ +id(); + $table->string('name'); + $table->string('code'); + $table->boolean('status')->default(true); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kategori_jenis_aset'); + } +}; diff --git a/database/migrations/2024_10_31_032505_update_penilaian_table.php b/database/migrations/2024_10_31_032505_update_penilaian_table.php new file mode 100644 index 0000000..53d1715 --- /dev/null +++ b/database/migrations/2024_10_31_032505_update_penilaian_table.php @@ -0,0 +1,38 @@ +dropColumn('teams_id'); + + + $table->dropColumn('surveyor_id'); + $table->dropColumn('penilaian_id'); + + $table->dropColumn('penilai_surveyor_id'); + + }); + } + + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('penilaian', function (Blueprint $table) { + $table->foreignIdFor(Teams::class); + $table->foreignIdFor(User::class); + }); + } +}; diff --git a/database/migrations/2024_10_31_032940_create_penilai_team_table.php b/database/migrations/2024_10_31_032940_create_penilai_team_table.php new file mode 100644 index 0000000..db287b2 --- /dev/null +++ b/database/migrations/2024_10_31_032940_create_penilai_team_table.php @@ -0,0 +1,38 @@ +id(); + $table->unsignedBigInteger('penilaian_id'); + $table->unsignedBigInteger('team_id'); + $table->unsignedBigInteger('user_id'); + $table->string('role'); + $table->boolean('status')->default(true); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('penilai_team'); + } +}; diff --git a/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php b/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php new file mode 100644 index 0000000..7b14758 --- /dev/null +++ b/database/migrations/2024_11_01_081201_create_kategori_form_analisa_inspeksi_table.php @@ -0,0 +1,38 @@ +id(); + $table->string('name'); + $table->string('code'); + $table->foreign('kategori_jenis_aset_id')->references('id')->on('kategori_jenis_aset'); + $table->boolean('status')->default(true); + $table->char('authorized_status', 1)->nullable(); + $table->timestamps(); + $table->timestamp('authorized_at')->nullable(); + $table->unsignedBigInteger('authorized_by')->nullable(); + $table->softDeletes(); + $table->unsignedBigInteger('created_by')->nullable(); + $table->unsignedBigInteger('updated_by')->nullable(); + $table->unsignedBigInteger('deleted_by')->nullable(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('kategori_form_analisa_inspeksi'); + } +}; diff --git a/database/migrations/2024_11_01_081225_create_label_name_inspeksi_table.php b/database/migrations/2024_11_01_081225_create_label_name_inspeksi_table.php new file mode 100644 index 0000000..814024d --- /dev/null +++ b/database/migrations/2024_11_01_081225_create_label_name_inspeksi_table.php @@ -0,0 +1,28 @@ +id(); + + $table->timestamps(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::dropIfExists('label_name_inspeksi'); + } +}; diff --git a/resources/views/activity/progres_activity/index.blade.php b/resources/views/activity/progres_activity/index.blade.php index 67942a7..6bf9a2b 100644 --- a/resources/views/activity/progres_activity/index.blade.php +++ b/resources/views/activity/progres_activity/index.blade.php @@ -46,14 +46,14 @@ @php $sortedTeamsActivity = $teamsActivity->sortBy(function ($item) { - return $item->team->penilaian - ->filter(function ($penilaian) use ($item) { - return $penilaian->penilaian_id == $item->user->id || - $penilaian->surveyor_id == $item->user->id || - $penilaian->penilai_surveyor_id == $item->user->id; + + return $item->team->penilaianTeam + ->filter(function ($penilaianTeam) use ($item) { + return $penilaianTeam->user_id == $item->user->id; }) ->count(); }); + @endphp @foreach ($sortedTeamsActivity as $index => $item) @@ -70,11 +70,9 @@ @php - $totalTasks = $item->team->penilaian - ->filter(function ($penilaian) use ($item) { - return $penilaian->penilaian_id == $item->user->id || - $penilaian->surveyor_id == $item->user->id || - $penilaian->penilai_surveyor_id == $item->user->id; + $totalTasks = $item->team->penilaianTeam + ->filter(function ($penilaianTeam) use ($item) { + return $penilaianTeam->user_id == $item->user->id; }) ->count(); @endphp @@ -156,8 +154,6 @@ const apiUrl = accordion.querySelector('.card-grid').getAttribute( 'data-api-url'); - console.log("This is the API URL: " + apiUrl); - const dataTableOptions = { apiEndpoint: apiUrl, pageSize: 5, diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index d068566..2986624 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -308,8 +308,12 @@
+ {{-- @php + var_dump($penilaianTeam); + @endphp --}} -
+
@@ -328,6 +332,7 @@ @enderror
+ - - -@if ($analisaType == 'tanah_bangunan') -
-
-

Analisa Bangunan

-
-
-
- -
-
- - -
- - @error('luas_tanah_bagunan') - {{ $message }} - @enderror -
-
- - - -
- -
- - - @error('jenis_bangunan') - {{ $message }} - @enderror -
-
- - -
- -
- - - @error('kondisi_bangunan') - {{ $message }} - @enderror -
-
- - -
- -
- - - @error('sifat_bangunan') - {{ $message }} - @enderror -
-
- - -
-
- - -
-
- -
- @if (@isset($spekKategoriBagunan)) - @foreach ($spekKategoriBagunan as $item) -
- -
- - - @error('name') - {{ $message }} - @enderror -
-
- @endforeach - @endif -
- -
-
-
- -
- -
-
- - - - -
- -
- - - @error('sarana_pelengkap') - {{ $message }} - @enderror -
-
-
-
-@endif - -@push('scripts') - -@endpush diff --git a/routes/web.php b/routes/web.php index e40bd3c..0ec7f55 100644 --- a/routes/web.php +++ b/routes/web.php @@ -437,6 +437,7 @@ Route::middleware(['auth'])->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'); From 54b3bed665c79599c6382206bddde435ff14c6d3 Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Tue, 5 Nov 2024 17:21:44 +0700 Subject: [PATCH 052/100] pada Feature Registrasi, menambahkan inputan Catatan Opsional saat tindakan Yes --- app/Http/Controllers/RegistrasiController.php | 2 ++ resources/views/registrasi/edit.blade.php | 9 +++++++++ resources/views/registrasi/js/editjs.blade.php | 5 +++++ resources/views/registrasi/show.blade.php | 11 ++++++++++- 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/RegistrasiController.php b/app/Http/Controllers/RegistrasiController.php index adc0f3e..99e5f4f 100644 --- a/app/Http/Controllers/RegistrasiController.php +++ b/app/Http/Controllers/RegistrasiController.php @@ -167,6 +167,8 @@ $dataku['jenis_penilaian_id'] =$request->jenis_penilaian; $dataku['region_id'] =$request->region; $dataku['status'] = 'registered'; + if($request->catatan2) + $dataku['registrasi_catatan'] =$request->catatan2; } else { diff --git a/resources/views/registrasi/edit.blade.php b/resources/views/registrasi/edit.blade.php index 167fa25..c606451 100644 --- a/resources/views/registrasi/edit.blade.php +++ b/resources/views/registrasi/edit.blade.php @@ -81,6 +81,15 @@ +
+
+
+ +
+ +
diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index 1863f78..80bc38d 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -13,6 +13,7 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_div_catatan").hide(); $("#{{ $route[0] }}_div_region").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); // prepare data setData(); } @@ -94,12 +95,14 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_catatan").val(''); $("#{{ $route[0] }}_div_catatan").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); } else { $("#{{$route[0]}}_jenis_penilaian option[value=0]").prop('selected', true); $("#{{ $route[0] }}_div_jenis_pilihan").hide(); $("#{{ $route[0] }}_div_catatan").show(); + $("#{{ $route[0] }}_div_catatan2").hide(); } }); @@ -115,6 +118,7 @@ let jenis_penilaian = $("#{{$route[0]}}_jenis_penilaian").val(); let region = $("#{{$route[0]}}_region").val(); let catatan = $("#{{$route[0]}}_catatan").val(); + let catatan2 = $("#{{$route[0]}}_catatan2").val(); if(jenis_penilaian==0) jenis_penilaian=''; @@ -129,6 +133,7 @@ input_data.jenis_penilaian= jenis_penilaian; input_data.region= region; input_data.catatan = catatan; + input_data.catatan2 = catatan2; let useURL= '{{ route($route[0].'.update', $id) }}'; $.ajax({ diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index 9ff7791..22cc87f 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -199,7 +199,7 @@
-
+
@@ -208,6 +208,15 @@ +
+

+
+ +
+ +
From 43e6573bf24f185e870a8ded442e801a3306908b Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 5 Nov 2024 19:00:11 +0700 Subject: [PATCH 053/100] Add multiple file upload functionality Enhanced the document upload section to support multiple file uploads for "Dokumen Jaminan". Added "Add More" and "Remove" buttons for dynamically managing file inputs. Implemented helper functions to handle dynamic input fields and update the UI accordingly. --- .../debitur/components/dokumen.blade.php | 139 +++++++++++------- 1 file changed, 89 insertions(+), 50 deletions(-) diff --git a/resources/views/debitur/components/dokumen.blade.php b/resources/views/debitur/components/dokumen.blade.php index 23acee9..be5c1c0 100644 --- a/resources/views/debitur/components/dokumen.blade.php +++ b/resources/views/debitur/components/dokumen.blade.php @@ -158,7 +158,14 @@ Dokumen Jaminan
- +
+
+ + +
+
+
+ @if(isset($detail->dokumen_jaminan)) {{ basename($detail->dokumen_jaminan) }} @@ -444,7 +451,7 @@ -
+
+ +
+ +
diff --git a/resources/views/registrasi/js/editjs.blade.php b/resources/views/registrasi/js/editjs.blade.php index 1863f78..80bc38d 100644 --- a/resources/views/registrasi/js/editjs.blade.php +++ b/resources/views/registrasi/js/editjs.blade.php @@ -13,6 +13,7 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_div_catatan").hide(); $("#{{ $route[0] }}_div_region").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); // prepare data setData(); } @@ -94,12 +95,14 @@ $("#{{ $route[0] }}_div_jenis_pilihan").show(); $("#{{ $route[0] }}_catatan").val(''); $("#{{ $route[0] }}_div_catatan").hide(); + $("#{{ $route[0] }}_div_catatan2").show(); } else { $("#{{$route[0]}}_jenis_penilaian option[value=0]").prop('selected', true); $("#{{ $route[0] }}_div_jenis_pilihan").hide(); $("#{{ $route[0] }}_div_catatan").show(); + $("#{{ $route[0] }}_div_catatan2").hide(); } }); @@ -115,6 +118,7 @@ let jenis_penilaian = $("#{{$route[0]}}_jenis_penilaian").val(); let region = $("#{{$route[0]}}_region").val(); let catatan = $("#{{$route[0]}}_catatan").val(); + let catatan2 = $("#{{$route[0]}}_catatan2").val(); if(jenis_penilaian==0) jenis_penilaian=''; @@ -129,6 +133,7 @@ input_data.jenis_penilaian= jenis_penilaian; input_data.region= region; input_data.catatan = catatan; + input_data.catatan2 = catatan2; let useURL= '{{ route($route[0].'.update', $id) }}'; $.ajax({ diff --git a/resources/views/registrasi/show.blade.php b/resources/views/registrasi/show.blade.php index 9ff7791..22cc87f 100644 --- a/resources/views/registrasi/show.blade.php +++ b/resources/views/registrasi/show.blade.php @@ -199,7 +199,7 @@
-
+
@@ -208,6 +208,15 @@ +
+

+
+ +
+ +
diff --git a/resources/views/registrasifinal/show.blade.php b/resources/views/registrasifinal/show.blade.php index 7592d0d..b9471ad 100644 --- a/resources/views/registrasifinal/show.blade.php +++ b/resources/views/registrasifinal/show.blade.php @@ -45,10 +45,9 @@ Tujan Permohonan: - {{ $permohonan->tujuanPenilaian->name }} + {{ $permohonan->tujuanPenilaian->name }} {!! $permohonan->dokumen !!}
-
From 315a52a78db08170d268472af2fdcc922adfc21f Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 10:58:03 +0700 Subject: [PATCH 067/100] Perbaiki referensi ID permohonan dan relasi di Registrasi Final Mengubah referensi ID dari `data.id` ke `data.permohonan.id` pada tombol aksi di view registrasifinal.index.blade.php. Juga, menambahkan relasi `permohonan` pada query dan menghapus beberapa spasi kosong yang tidak perlu di RegistrasiFinalController.php untuk meningkatkan keterbacaan kode. --- .../Controllers/RegistrasiFinalController.php | 48 +++++++++---------- .../views/registrasifinal/index.blade.php | 4 +- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index deb2781..4ccb0e7 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -28,7 +28,7 @@ use Exception; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Storage; - + use Modules\Lpj\Models\PenawaranTender; class RegistrasiFinalController extends Controller @@ -51,15 +51,15 @@ use Modules\Lpj\Models\PenawaranTender; ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') ->where('penawaran.status','=','spk') - ->withCount('penawarandetails'); - + ->withCount('penawarandetails'); + // 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->orWhere('status', 'LIKE', '%' . $search . '%'); }); } @@ -85,10 +85,10 @@ use Modules\Lpj\Models\PenawaranTender; // Get the filtered count of records $filteredRecords = $query->count(); - + // Get the data for the current page //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - $data = $query->get(); + $data = $query->with(['permohonan'])->get(); // dd($data); $i=0; foreach($data as $obj) @@ -97,18 +97,18 @@ use Modules\Lpj\Models\PenawaranTender; { $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); } - + if($obj->biaya_kjpp_sebelumnya) { $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); - + } // date_range if($obj->start_date && $obj->end_date) { $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y'); - + } $i++; @@ -141,7 +141,7 @@ use Modules\Lpj\Models\PenawaranTender; $pdfSPK_path = Storage::url($permohonan->dokumen); $permohonan->dokumen = $pdfSPK_path; $permohonan->dokumen = '| Dokumen SPK.pdf   '; - } + } return view('lpj::registrasifinal.show', compact('id','permohonan')); } @@ -159,7 +159,7 @@ use Modules\Lpj\Models\PenawaranTender; if (request()->ajax()) { $id = $request->id; $datas = Permohonan::find($id); - + if ($datas) { $penawaran=null; $regions=null; @@ -171,13 +171,13 @@ use Modules\Lpj\Models\PenawaranTender; { $penawaranString = convertSlug($penawaran->status); $penawaran->status = $penawaranString; - } - + } + if($datas->dokumen) { $pdfSPK_path = Storage::url($datas->dokumen); $datas->dokumen = $pdfSPK_path; - } + } $data['status'] = 'success'; $data['regions'] = $regions; @@ -203,14 +203,14 @@ use Modules\Lpj\Models\PenawaranTender; $data = array(); $dataPermohonan = array(); $dataPenawaran = array(); - + if (request()->ajax()) { $validator = RegistrasiFinalController::rulesEditnya($request, $id); - + if ($validator['fails']) { $data['message'] = $validator['errors']; $data['status'] = 'error'; - } + } else { DB::beginTransaction(); @@ -224,18 +224,18 @@ use Modules\Lpj\Models\PenawaranTender; 'keterangan' => $request->catatan, 'authorized_at' => now(), 'authorized_status' =>1, - 'authorized_by' => Auth::id() + 'authorized_by' => Auth::id() ]; $dataPenawaran = ['status' => 'registrasi-final']; - + $permohonan = Permohonan::find($id); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); - + $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); + $permohonan->update($dataPermohonan); $penawaran->update($dataPenawaran); - // + // DB::commit(); $data['status'] = 'success'; @@ -246,7 +246,7 @@ use Modules\Lpj\Models\PenawaranTender; $data['message']['message_try_catch'] = array('Regitrasi Final '.$permohonan->nomor_registrasi.' failed.'); } } - + } else { $data['status'] = 'error'; $data['message']['message_ajax'] = array("no ajax request"); @@ -259,7 +259,7 @@ use Modules\Lpj\Models\PenawaranTender; public function rulesEditnya($request, $id) { $validate_catatan=''; - + $validateIt = [ // 'name' diambil dari definisi parameter yang di kirim pada POST Data 'region' => 'required', diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index 4e50882..b25be3f 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -133,10 +133,10 @@ title: 'Status', render: (item, data) => { return ``; From a41d8e0edb720593568c8888dec95145cc49b6ac Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 6 Nov 2024 11:13:58 +0700 Subject: [PATCH 068/100] Perbaikan Feature Registrasi Final, Konsistensi id => penawaran.id --- .../Controllers/RegistrasiFinalController.php | 26 ++++++++++++------- .../views/registrasifinal/edit.blade.php | 3 ++- .../views/registrasifinal/js/editjs.blade.php | 4 ++- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/RegistrasiFinalController.php b/app/Http/Controllers/RegistrasiFinalController.php index deb2781..033a044 100644 --- a/app/Http/Controllers/RegistrasiFinalController.php +++ b/app/Http/Controllers/RegistrasiFinalController.php @@ -47,6 +47,7 @@ use Modules\Lpj\Models\PenawaranTender; } // Retrieve data from the database + // data.id => penawaran.id $query =PenawaranTender::query() ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name') ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') @@ -135,7 +136,10 @@ use Modules\Lpj\Models\PenawaranTender; public function show($id) { - $permohonan = Permohonan::find($id); + // $id => penawaran.id + $penawaran = PenawaranTender::find($id); + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); + if($permohonan->dokumen) { $pdfSPK_path = Storage::url($permohonan->dokumen); @@ -148,6 +152,7 @@ use Modules\Lpj\Models\PenawaranTender; public function edit($id) { + // $id => penawaran.id return view('lpj::registrasifinal.edit', compact('id')); } @@ -155,16 +160,17 @@ use Modules\Lpj\Models\PenawaranTender; { $data = array(); $datas = array(); + $penawaran=null; + $regions=null; if (request()->ajax()) { + // $id => penawaran.id $id = $request->id; - $datas = Permohonan::find($id); - + $penawaran = PenawaranTender::find($id); + $datas = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); if ($datas) { - $penawaran=null; - $regions=null; + $regions=Regions::pluck('name', 'id'); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$datas->nomor_registrasi)->first(); $penawaranString = ""; if($penawaran->status) @@ -229,10 +235,10 @@ use Modules\Lpj\Models\PenawaranTender; $dataPenawaran = ['status' => 'registrasi-final']; - - $permohonan = Permohonan::find($id); - $penawaran = PenawaranTender::where('nomor_registrasi','=',$permohonan->nomor_registrasi)->first(); - + // $id => penawaran.id + $penawaran = PenawaranTender::find($id); + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi)->first(); + $permohonan->update($dataPermohonan); $penawaran->update($dataPenawaran); // diff --git a/resources/views/registrasifinal/edit.blade.php b/resources/views/registrasifinal/edit.blade.php index a2e15e7..c0b365e 100644 --- a/resources/views/registrasifinal/edit.blade.php +++ b/resources/views/registrasifinal/edit.blade.php @@ -13,7 +13,8 @@
- + + @method('PUT') @csrf
diff --git a/resources/views/registrasifinal/js/editjs.blade.php b/resources/views/registrasifinal/js/editjs.blade.php index c46596d..89f2a5e 100644 --- a/resources/views/registrasifinal/js/editjs.blade.php +++ b/resources/views/registrasifinal/js/editjs.blade.php @@ -17,7 +17,8 @@ function setData() { - let id = $("#id").val(); + // id => penawaran.id + let id = $("#{{$route[0]}}_id").val(); let token = "{{ csrf_token() }}"; // alert('token = ' + token); var useURL = "{{ route('registrasifinal.setData') }}"; @@ -81,6 +82,7 @@ let token = "{{ csrf_token() }}"; let _method = $('input[name=_method]').val(); + // id => penawaran.id let id = $('#{{$route[0]}}_id').val(); let region = $("#{{$route[0]}}_region").val(); let catatan = $("#{{$route[0]}}_catatan").val(); From 4f8afe4ea720a59210ac8ee780f1c8cc12c648be Mon Sep 17 00:00:00 2001 From: Andy Chaerudin Date: Wed, 6 Nov 2024 11:28:21 +0700 Subject: [PATCH 069/100] Perbaikan parameter kembali ke data.id --- resources/views/registrasifinal/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resources/views/registrasifinal/index.blade.php b/resources/views/registrasifinal/index.blade.php index b25be3f..4e50882 100644 --- a/resources/views/registrasifinal/index.blade.php +++ b/resources/views/registrasifinal/index.blade.php @@ -133,10 +133,10 @@ title: 'Status', render: (item, data) => { return ``; From f135cf0a1aa37f9114ad8183b3b89abb29c112de Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 11:48:01 +0700 Subject: [PATCH 070/100] Perbaiki format kode dan tambahkan relasi pada pengecekan penawaran Menghilangkan whitespace yang tidak perlu di dalam file SpkController.php untuk meningkatkan kerapian kode. Juga menambahkan eager loading relasi 'permohonan' saat mengambil data penawaran untuk meningkatkan efisiensi query SQL. Menyesuaikan URL download di file view untuk memastikan ID yang benar digunakan. --- app/Http/Controllers/SpkController.php | 64 +++++++++++++------------- resources/views/spk/index.blade.php | 4 +- 2 files changed, 34 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/SpkController.php b/app/Http/Controllers/SpkController.php index 8496397..77389f0 100644 --- a/app/Http/Controllers/SpkController.php +++ b/app/Http/Controllers/SpkController.php @@ -39,14 +39,14 @@ use Illuminate\Support\Facades\Auth; ->leftJoin('tujuan_penilaian_kjpp', 'tujuan_penilaian_kjpp.id','=','penawaran.tujuan_penilaian_kjpp_id') ->where('permohonan.status','=','spk') ->select('penawaran.*', 'tujuan_penilaian_kjpp.name as tujuan_penilaian_kjpp_name', 'permohonan.dokumen as dokumenSPK'); - + // 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->orWhere('status', 'LIKE', '%' . $search . '%'); }); } @@ -72,12 +72,12 @@ use Illuminate\Support\Facades\Auth; // Get the filtered count of records $filteredRecords = $query->count(); - + // Get the data for the current page //$data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->get(); - - $data = $query->get(); - + + $data = $query->with(['permohonan'])->get(); + $i=0; foreach($data as $obj) { @@ -85,18 +85,18 @@ use Illuminate\Support\Facades\Auth; { $data[$i]->tanggal_penilaian_sebelumnya = Carbon::parse($obj->tanggal_penilaian_sebelumnya)->format('d F Y H:i:s'); } - + if($obj->biaya_kjpp_sebelumnya) { $data[$i]->biaya_kjpp_sebelumnya = formatRupiah($obj->biaya_kjpp_sebelumnya); - + } // date_range if($obj->start_date && $obj->end_date) { $data[$i]->date_range = Carbon::parse($obj->start_date)->format('d M Y').' - '.Carbon::parse($obj->end_date)->format('d M Y'); - + } $i++; @@ -137,25 +137,25 @@ use Illuminate\Support\Facades\Auth; public function edit($id) { $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') - ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') - ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') ->where('detail_penawaran.status','=',1) ->where('penawaran.id','=', $id) - ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', 'kjpp.name as kjpp_name', 'kjpp.address as kjpp_address', 'jenis_laporan.name as jenis_laporan_name' )->first(); - + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') - ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', 'dokumen_jaminan.address as dokumen_jaminan_address'); - + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); - + return view('lpj::spk.edit', compact('data', 'penawaran')); } @@ -165,30 +165,30 @@ use Illuminate\Support\Facades\Auth; $data1 = array(); $dataPermohonan = array(); // data - + $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') - ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') - ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') ->where('detail_penawaran.status','=',1) ->where('penawaran.id','=', $id) - ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', 'kjpp.name as kjpp_name', 'kjpp.address as kjpp_address', 'jenis_laporan.name as jenis_laporan_name' )->first(); - + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name'); $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); - + $folderPath = 'uploads/spk/'; $extension = '.pdf'; $newFileName = "SPK_".$penawaran->nomor_registrasi."_".Auth::user()->id."_".time(). $extension; $newFileNameWithPath = $folderPath . $newFileName; - + // update table permohonan $dataPermohonan=['dokumen' => $newFileNameWithPath]; $data->update($dataPermohonan); @@ -210,35 +210,35 @@ use Illuminate\Support\Facades\Auth; } public function dokumennya() - { + { // return view('lpj::spk.dokumennya'); $id="3"; $penawaran = PenawaranTender::leftJoin('detail_penawaran', 'detail_penawaran.penawaran_id','=','penawaran.id') - ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') - ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') + ->leftJoin('jenis_laporan', 'jenis_laporan.id','=','penawaran.jenis_laporan_id') + ->leftJoin('kjpp', 'kjpp.id','=','detail_penawaran.kjpp_rekanan_id') ->where('detail_penawaran.status','=',1) ->where('penawaran.id','=', $id) - ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', + ->select('penawaran.*', 'detail_penawaran.attachment as attachmentku', 'detail_penawaran.biaya_penawaran as detail_penawaran_biaya_penawaran', 'kjpp.name as kjpp_name', 'kjpp.address as kjpp_address', 'jenis_laporan.name as jenis_laporan_name' )->first(); - + $permohonan = Permohonan::where('nomor_registrasi','=',$penawaran->nomor_registrasi) ->leftJoin('dokumen_jaminan', 'dokumen_jaminan.permohonan_id','=','permohonan.id') ->leftJoin('jenis_jaminan', 'jenis_jaminan.id','=','dokumen_jaminan.jenis_jaminan_id') - ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', + ->select('permohonan.*', 'jenis_jaminan.name as jenis_jaminan_name', 'dokumen_jaminan.address as dokumen_jaminan_address'); - + $data = $permohonan->with(['user', 'debiture', 'branch', 'tujuanPenilaian'])->first(); - + return view('lpj::spk.dokumennya', compact('data', 'penawaran')); } public function download($id) { $document = Permohonan::find($id); - + return response()->download(storage_path('app/public/' .$document->dokumen)); } } diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index 7739980..0d70282 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -150,7 +150,7 @@ else { spkShow =`
- + `; spkCreate=` @@ -158,7 +158,7 @@ `; } - return `
` + return `
` +spkShow+spkCreate+ `
`; }, From 019e12535e27dbfeba959f4dff430a8d8eff8e0c Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Wed, 6 Nov 2024 11:52:23 +0700 Subject: [PATCH 071/100] Enhance table styling in SPK edit view Tambahkan padding pada bagian yang dapat di-scroll dan perbaharui kelas pada tabel untuk meningkatkan tampilan dan keterbacaan. Perubahan ini akan memberikan margin yang lebih baik dan membuat tabel lebih responsif dalam tampilan mobile. --- resources/views/spk/edit.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index 03edfae..80b780a 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -15,7 +15,7 @@

Buat SPK

- +
@@ -25,9 +25,9 @@
-
+
-
\ No newline at end of file +
diff --git a/resources/views/spk/edit.blade.php b/resources/views/spk/edit.blade.php index 80b780a..30563d7 100644 --- a/resources/views/spk/edit.blade.php +++ b/resources/views/spk/edit.blade.php @@ -104,7 +104,7 @@ Jangka Waktu : - + {{ formatTanggalIndonesia($penawaran->start_date) - formatTanggalIndonesia($penawaran->end_date) }} i diff --git a/resources/views/spk/index.blade.php b/resources/views/spk/index.blade.php index eb06f5c..1f6bb0c 100644 --- a/resources/views/spk/index.blade.php +++ b/resources/views/spk/index.blade.php @@ -78,12 +78,6 @@ @push('scripts')