From c603a99c0d2d04dbb1f2a6fcb152bc74c07d1b2b Mon Sep 17 00:00:00 2001 From: majid Date: Wed, 4 Dec 2024 12:08:14 +0700 Subject: [PATCH] update kertas kerja dan column name table inspeksi --- app/Exports/KertasKerjaExport.php | 74 ++++ app/Http/Controllers/PenilaiController.php | 265 ++++++++---- app/Http/Controllers/PenilaianController.php | 11 +- app/Http/Controllers/SurveyorController.php | 11 +- ...2_04_041852_update_name_inspeksi_table.php | 28 ++ resources/views/penilai/show.blade.php | 87 +++- resources/views/penilaian/form.blade.php | 2 +- .../components/data-pembanding.blade.php | 19 +- .../surveyor/components/header.blade.php | 137 +++--- .../surveyor/components/inspeksi.blade.php | 136 +++--- resources/views/surveyor/index.blade.php | 391 ++++++++++-------- routes/web.php | 2 + 12 files changed, 753 insertions(+), 410 deletions(-) create mode 100644 app/Exports/KertasKerjaExport.php create mode 100644 database/migrations/2024_12_04_041852_update_name_inspeksi_table.php diff --git a/app/Exports/KertasKerjaExport.php b/app/Exports/KertasKerjaExport.php new file mode 100644 index 0000000..c931d47 --- /dev/null +++ b/app/Exports/KertasKerjaExport.php @@ -0,0 +1,74 @@ +data = $data; + } + + public function collection() + { + return collect([ + [ + 'Pendekatan pasar', + 'Nama Pemilik Aset', + '', + ], + [ + 'Metode Perbandingan Data Pasar', + 'Nama Pemberi Tugas: ', + '', + '', + ], + [ + 'Tanggal Penilaian: ', + 'Lokasi: ', + '', + '', + ], + [ + 'No.', + 'Objek Penilaian', + 'Data Pembanding 1', + 'Data Pembanding 2', + 'Data Pembanding 3' + ], + ]); + } + + // Tambahkan method map() + public function map($row): array + { + return $row; + + } + + public function headings(): array + { + return []; + } + + public function columnFormats(): array + { + return [ + 'A' => NumberFormat::FORMAT_NUMBER, + 'C' => NumberFormat::FORMAT_NUMBER, + 'D' => NumberFormat::FORMAT_NUMBER, + 'F' => NumberFormat::FORMAT_NUMBER, + 'G' => NumberFormat::FORMAT_NUMBER, + 'P' => NumberFormat::FORMAT_DATE_DATETIME, + 'Q' => NumberFormat::FORMAT_DATE_DATETIME + ]; + } +} diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index a141468..968d631 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -7,7 +7,8 @@ use Modules\Lpj\Models\Permohonan; use Modules\Lpj\Models\Inspeksi; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; - +use Maatwebsite\Excel\Facades\Excel; +use Modules\Lpj\Exports\KertasKerjaExport; class PenilaiController extends Controller { public $user; @@ -89,83 +90,209 @@ class PenilaiController extends Controller } 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.'); - } + { + 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(); + // Retrieve data from the database + $query = Permohonan::query(); - // Apply search filter if provided - if ($request->has('search') && !empty($request->get('search'))) { - $search = $request->get('search'); - $columns = ['nomor_registrasi', 'debiture.name', 'branch.name', 'user.name', 'tujuanPenilaian.name', 'jenisfasilitasKredit.name']; + // Apply search filter if provided + if ($request->has('search') && !empty($request->get('search'))) { + $search = $request->get('search'); + $columns = ['nomor_registrasi', 'debiture.name', 'branch.name', 'user.name', 'tujuanPenilaian.name', 'jenisfasilitasKredit.name']; - $query->where(function ($q) use ($search, $columns) { - foreach ($columns as $column) { - $q->orWhereRelation(explode('.', $column)[0], explode('.', $column)[1], 'LIKE', '%' . $search . '%'); - } + $query->where(function ($q) use ($search, $columns) { + foreach ($columns as $column) { + $q->orWhereRelation(explode('.', $column)[0], explode('.', $column)[1], 'LIKE', '%' . $search . '%'); + } + }); + } + + // Apply whereHas to check penilai_id, role, and user_id specifically for 'penilai' role + $query->whereHas('penilaian.userPenilai', function ($q) { + $q->where('role', 'penilai') // Ensure the role is 'penilai' + ->where('user_id', 12); // Ganti dengan Auth::user()->id jika dinamis }); + + // 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; + + $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', + 'penilaian.userPenilai' // Ensure this relation is included + ])->get(); + + // Calculate the page count + $pageCount = ceil($totalRecords / $request->get('size')); + + // Calculate the current page number + $currentPage = $request->get('page', 1); + + // Return the response data as a JSON object + return response()->json([ + 'draw' => $request->get('draw'), + 'recordsTotal' => $totalRecords, + 'recordsFiltered' => $filteredRecords, + 'pageCount' => $pageCount, + 'page' => $currentPage, + 'totalCount' => $totalRecords, + 'data' => $data, + ]); } - // Apply whereHas to check penilai_id, role, and user_id specifically for 'penilai' role - $query->whereHas('penilaian.userPenilai', function ($q) { - $q->where('role', 'penilai') // Ensure the role is 'penilai' - ->where('user_id', 12); // Ganti dengan Auth::user()->id jika dinamis - }); + public function kertas_kerja() + { + $data = [ + [ + 'Pendekatan pasar', + 'Nama Pemilik Aset', + '', + ], + [ + 'Metode Perbandingan Data Pasar', + 'Nama Pemberi Tugas: ', + '', + '', + ], + [ + 'Tanggal Penilaian: ', + 'Lokasi: ', + '', + '', + ], + [ + 'No.', + 'Objek Penilaian', + 'Data Pembanding 1', + 'Data Pembanding 2', + 'Data Pembanding 3' + ],[ + '1', + 'Jenis Aset', + 'Pembanding 1', + 'Pembanding 1', + 'Pembanding 1' + ], + [ + '2', + 'Luas Tanah', + 'Pembanding 2', + 'Pembanding 2', + 'Pembanding 2' + ], + [ + '3', + 'Penawaran/Transaksi', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '4', + 'Harga penawaran/Transaksi', + '', + 'Pembanding 3', + 'Pembanding 3' + ],[ + '5', + 'Nomor Telepon', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '6', + 'Estimasi Harga Transaksi', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '7', + 'Nama Nara sumber', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '8', + 'Status Nara sumber', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '9', + 'Waktu Penawaran/Transaksi', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '10', + 'Titik GPS', + '', + 'Pembanding 3', + ], + [ + '11', + 'Alamat', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '12', + 'Jarak Pembanding dengan Objek (m)', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '13', + 'Estimasi Rangking Tanah', + '', + 'Pembanding 3', + 'Pembanding 3' + ], + [ + '14', + 'Estimasi Rangking Bangunan', + '', + 'Pembanding 3', + 'Pembanding 3' + ] - // Apply sorting if provided - if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { - $order = $request->get('sortOrder'); - $column = $request->get('sortField'); - $query->orderBy($column, $order); + ]; + return Excel::download(new KertasKerjaExport($data), 'kertas-kerja.xlsx'); } - // 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; - - $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', - 'penilaian.userPenilai' // Ensure this relation is included - ])->get(); - - // Calculate the page count - $pageCount = ceil($totalRecords / $request->get('size')); - - // Calculate the current page number - $currentPage = $request->get('page', 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/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index e0ebfa8..0d4c94a 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -298,10 +298,15 @@ class PenilaianController extends Controller $q->orWhere('status', 'LIKE', '%' . $search . '%'); }); } + $query->whereIn('status', ['registered', 'registrasi-final']); - $query->whereHas('region.teams.teamsUsers.user', function ($q) { - $q->where('id', Auth::user()->id); - }); + + // Filter berdasarkan role + if (Auth::user()->roles[0]->name !== 'administrator') { + $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'); diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 38e5473..d9bec91 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -22,6 +22,7 @@ use Modules\Lpj\Models\PosisiKavling; use Modules\Lpj\Models\KondisiFisikTanah; use Modules\Lpj\Models\KetinggianTanah; use Modules\Lpj\Models\SifatBangunan; +use Modules\Lpj\Models\JenisJaminan; use Modules\Lpj\Models\JenisBangunan; use Modules\Lpj\Models\KondisiBangunan; use Modules\Lpj\Models\SpekBangunan; @@ -57,7 +58,7 @@ use Modules\Lpj\Models\DetailDokumenJaminan; use Modules\Lpj\Models\JenisKapal; use Modules\Lpj\Models\JenisKendaraan; use Modules\Lpj\Models\RuteJaminan; -use Modules\Lpj\Models\JenisJaminan; + use Modules\Lpj\Models\HubunganPemilikJaminan; use Modules\Lpj\Models\HubunganPenghuniJaminan; use Modules\Lpj\Models\AnalisaUnit; @@ -550,6 +551,11 @@ class SurveyorController extends Controller } + public function storeFreeze() { + + } + + private function formatDataPembanding($request) { $dataPembanding = []; @@ -1416,8 +1422,7 @@ class SurveyorController extends Controller 'fasilitasObjek' => FasilitasObjek::all(), 'merupakanDaerah' => MerupakanDaerah::all(), 'jenisUnit' => JenisUnit::all(), - - + 'jenisJaminan' => JenisJaminan::all(), ]; } diff --git a/database/migrations/2024_12_04_041852_update_name_inspeksi_table.php b/database/migrations/2024_12_04_041852_update_name_inspeksi_table.php new file mode 100644 index 0000000..424957e --- /dev/null +++ b/database/migrations/2024_12_04_041852_update_name_inspeksi_table.php @@ -0,0 +1,28 @@ +string('name')->nullable()->change(); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('inspeksi', function (Blueprint $table) { + $table->string('name')->nullable(false)->change(); + }); + } +}; diff --git a/resources/views/penilai/show.blade.php b/resources/views/penilai/show.blade.php index ef1e068..f88589f 100644 --- a/resources/views/penilai/show.blade.php +++ b/resources/views/penilai/show.blade.php @@ -176,16 +176,67 @@ LAMPIRAN FOTO DAN DOKUMEN - + KERTAS KERJA PAPARAN - - WORKSHEET - +
@@ -211,6 +262,7 @@ +
@endsection + + + diff --git a/resources/views/penilaian/form.blade.php b/resources/views/penilaian/form.blade.php index ef62489..88e0105 100644 --- a/resources/views/penilaian/form.blade.php +++ b/resources/views/penilaian/form.blade.php @@ -254,7 +254,7 @@
diff --git a/resources/views/surveyor/components/data-pembanding.blade.php b/resources/views/surveyor/components/data-pembanding.blade.php index 9dc3a0b..046e426 100644 --- a/resources/views/surveyor/components/data-pembanding.blade.php +++ b/resources/views/surveyor/components/data-pembanding.blade.php @@ -67,7 +67,7 @@ alt="Uploaded Image">
@@ -77,7 +77,7 @@
-
@@ -94,19 +94,18 @@ diff --git a/resources/views/surveyor/components/header.blade.php b/resources/views/surveyor/components/header.blade.php index 4674a06..3b669f8 100644 --- a/resources/views/surveyor/components/header.blade.php +++ b/resources/views/surveyor/components/header.blade.php @@ -141,8 +141,8 @@ @endforeach @endif - + {{-- --}}
@@ -162,133 +162,90 @@
-
- - -
- + +
- {{-- Alamat Sesuai --}} -
- @foreach ($permohonan->debiture->documents as $dokumen) - @php - $fields = [ - [ - 'label' => 'Jl.', - 'value' => $dokumen->address ?? '', - 'name' => 'nama_jalan', - 'readonly' => false, - ], - [ - 'label' => 'Provinsi', - 'value' => $dokumen->province->name ?? '', - 'name' => 'provinsi', - 'readonly' => true, - ], - [ - 'label' => 'Kota/Kabupaten', - 'value' => $dokumen->city->name ?? '', - 'name' => 'kota_kabupaten', - 'readonly' => true, - ], - [ - 'label' => 'Kecamatan', - 'value' => $dokumen->district->name ?? '', - 'name' => 'kecamatan', - 'readonly' => true, - ], - [ - 'label' => 'Kelurahan', - 'value' => $dokumen->village->name ?? '', - 'name' => 'desa_kelurahan', - 'readonly' => true, - ], - ]; - @endphp - @foreach ($fields as $field) -
- -
- -
-
- @endforeach - @endforeach -
- - {{-- Alamat Tidak Sesuai --}} -
+
@php - $inputDataLokasi = [ - ['label' => 'Jl.', 'id' => 'address', 'name' => 'address', 'type' => 'text'], + $fields = [ + [ + 'label' => 'Jl.', + 'name' => 'nama_jalan', + 'id' => 'nama_jalan', + 'readonly' => false, + ], [ 'label' => 'Provinsi', - 'id' => 'province_code', 'name' => 'provinsi', + 'id' => 'provinsi', 'type' => 'select', 'options' => $provinces, ], [ 'label' => 'Kota/Kabupaten', - 'id' => 'city_code', 'name' => 'kota_kabupaten', + 'id' => 'kota_kabupaten', 'type' => 'select', 'options' => $provinces, ], [ 'label' => 'Kecamatan', - 'id' => 'district_code', 'name' => 'kecamatan', + 'id' => 'kecamatan', 'type' => 'select', 'options' => $provinces, ], [ - 'label' => 'Desa/Kelurahan', - 'id' => 'village_code', + 'label' => 'Kelurahan', 'name' => 'desa_kelurahan', + 'id' => 'desa_kelurahan', 'type' => 'select', 'options' => $provinces, ], ]; @endphp - @foreach ($inputDataLokasi as $item) + @foreach ($fields as $field)
- +
- @if ($item['type'] === 'text') - - @else - + + @foreach ($field['options'] as $option) + + @endforeach + @else + @endif
@endforeach
+
diff --git a/resources/views/surveyor/components/inspeksi.blade.php b/resources/views/surveyor/components/inspeksi.blade.php index 013c7f1..de979fe 100644 --- a/resources/views/surveyor/components/inspeksi.blade.php +++ b/resources/views/surveyor/components/inspeksi.blade.php @@ -44,8 +44,8 @@ - -