diff --git a/app/Http/Controllers/PenilaiController.php b/app/Http/Controllers/PenilaiController.php index 7e95fce..66ee6d8 100644 --- a/app/Http/Controllers/PenilaiController.php +++ b/app/Http/Controllers/PenilaiController.php @@ -13,6 +13,7 @@ use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Exports\KertasKerjaExport; use Modules\Lpj\Http\Controllers\SurveyorController; use Modules\Location\Models\Province; +use Illuminate\Support\Facades\Log; class PenilaiController extends Controller { @@ -243,10 +244,13 @@ class PenilaiController extends Controller } - $query->whereHas('penilaian.userPenilai', function ($q) { - $q->where('role', 'penilai') - ->where('user_id', Auth::user()->id); - }); + if(!Auth::user()->hasRole('administrator')) { + $query->whereHas('penilaian.userPenilai', function ($q) { + $q + ->where('role', 'penilai') + ->where('user_id', Auth::user()->id); + }); + } // Apply sorting if provided if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { @@ -604,20 +608,24 @@ class PenilaiController extends Controller $lpjData = json_decode($lpj->lpj, true); } + try { + $pdf = PDF::loadView('lpj::penilai.components.print-out', compact( + 'permohonan', + 'forminspeksi', + 'lpjData', + 'formFoto', + 'basicData', + 'inspeksi', + 'lpj' + )); - $pdf = PDF::loadView('lpj::penilai.components.print-out', compact( - 'permohonan', - 'forminspeksi', - 'lpjData', - 'formFoto', - 'basicData', - 'inspeksi', - 'lpj' - )); + $pdf->setPaper('A4', 'portrait'); - $pdf->setPaper('A4', 'portrait'); - - return $pdf->download('laporan.pdf'); + return $pdf->download('laporan.pdf'); + } catch (\Exception $e) { + Log::error('PDF generation failed: ' . $e->getMessage()); + return response()->json(['error' => 'Failed to generate PDF. Please check the log for details.'], 500); + } // return view('lpj::penilai.components.print-out', compact( // 'permohonan', diff --git a/app/Http/Controllers/PenilaianController.php b/app/Http/Controllers/PenilaianController.php index 0013891..1599ac8 100644 --- a/app/Http/Controllers/PenilaianController.php +++ b/app/Http/Controllers/PenilaianController.php @@ -536,7 +536,7 @@ $filteredRecords = $query->count(); // Ambil data dengan relasi - $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'region.teams.teamsUsers'])->get(); + $data = $query->with(['user', 'debiture', 'branch', 'tujuanPenilaian', 'approveSo'])->get(); // Hitung jumlah halaman diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index cdf6f97..d74c0a7 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -1412,10 +1412,12 @@ class SurveyorController extends Controller $query->whereRaw('LOWER(status) = ?', ['assign']); - $query->whereHas('penilaian.userPenilai', function ($q) { - $q->where('user_id', Auth::user()->id); - $q->where('role', 'surveyor'); - }); + if(!Auth::user()->hasRole('administrator')) { + $query->whereHas('penilaian.userPenilai', function ($q) { + $q->where('user_id', Auth::user()->id); + $q->where('role', 'surveyor'); + }); + } if ($request->has('sortOrder') && !empty($request->get('sortOrder'))) { diff --git a/app/Models/Permohonan.php b/app/Models/Permohonan.php index eac4ad8..0ed5c0a 100644 --- a/app/Models/Permohonan.php +++ b/app/Models/Permohonan.php @@ -193,4 +193,16 @@ public function approveBayar(){ return $this->belongsTo(User::class, 'approve_bayar_by', 'id'); } + + public function approveEo(){ + return $this->belongsTo(User::class, 'approval_eo', 'id'); + } + + public function approveDd(){ + return $this->belongsTo(User::class, 'approval_dd', 'id'); + } + + public function approveSo(){ + return $this->belongsTo(User::class, 'approval_so', 'id'); + } } diff --git a/module.json b/module.json index dd16ad9..15e7edd 100644 --- a/module.json +++ b/module.json @@ -245,7 +245,9 @@ "permission": "", "roles": [ "administrator", - "senior-officer" + "senior-officer", + "EO Appraisal", + "DD Appraisal" ], "sub": [ { diff --git a/resources/views/penilai/components/print-out.blade.php b/resources/views/penilai/components/print-out.blade.php index cdf906b..d2c5438 100644 --- a/resources/views/penilai/components/print-out.blade.php +++ b/resources/views/penilai/components/print-out.blade.php @@ -214,229 +214,229 @@ -
-
-

LAPORAN PENILAIAN ATAS TANAH DAN/ATAU BANGUNAN

-

NO: {{ $permohonan->nomor_registrasi }}

-
+
+
+

LAPORAN PENILAIAN ATAS TANAH DAN/ATAU BANGUNAN

+

NO: {{ $permohonan->nomor_registrasi }}

+
-
-
- - - - - -
- A - - TUJUAN PENILAIAN -
-
- +
+
+
- - - - - - - - @endif -
- - - - - - - - - -
Permintaan (A/O){{ $permohonan->user->name }}
Jenis Fasilitas {{ $permohonan->tujuanPenilaian->name }}
+
+ A - - - - - - - - - -
Tanggal{{ $permohonan->created_at->format('d/m/Y') }}
Kunjungan Tanggal{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}
-
- @if (isset($basicData['tujuanPenilaian'])) -
    - @foreach ($basicData['tujuanPenilaian'] as $item) -
  • name == $permohonan->tujuanPenilaian->name ? 'checked' : '' }}>{{ $item->name }} -
  • - @endforeach -
-
-
- -
-
- - - - - -
- B - - IDENTITAS DEBITUR -
-
- - - - - - - - - - - -
Nama Debitur{{ $permohonan->debiture->name ?? '' }}
Alamat dan Telepon{{ $permohonan->debiture->address ?? '' }} {{ $permohonan->debiture->phone ?? '' }}
Saat menilai, penilai didampingi oleh - - - - - - - - - -
Debitur / Wakil Debitur{{ $permohonan->debiture->name ?? '' }}
Pihak Bank selain PJ
+
+ TUJUAN PENILAIAN
+ + + + + -
-
-
+ + + + + + + + + +
Permintaan (A/O){{ $permohonan->user->name }}
Jenis Fasilitas {{ $permohonan->tujuanPenilaian->name }}
+
+ + + + + + + + + +
Tanggal{{ $permohonan->created_at->format('d/m/Y') }}
Kunjungan Tanggal{{ formatTanggalIndonesia($permohonan->penilaian->tanggal_kunjungan) }}
+
- - - - -
- C - - JENIS JAMINAN -
-
- - @php - $data = ''; - foreach ($permohonan->debiture->documents as $dokumen) { - $data .= $dokumen->jenisJaminan->name . ', '; - } - $data = rtrim($data, ', '); // Remove the trailing comma and space - @endphp - - @if (isset($basicData['jenisJaminan'])) - - @foreach ($basicData['jenisJaminan'] as $index => $item) - @if ($index % 3 === 0) - - @endif - - @if ($index % 3 === 2 || $loop->last) - - @endif - @endforeach -
- name, explode(',', $data)) ? 'checked' : '' }}> - {{ $item->name }} -
+ + + @if (isset($basicData['tujuanPenilaian'])) + + + @endif -
+ + - -
-
- - - - - -
- D - - LOKASI JAMINAN -
-
- +
+
+
- - - - - - - - - - - - - - - - - - + +
Terletak di {{ $dokumen->pemilik->address ?? '' }}
Kelurahan{{ $dokumen->pemilik->village->name ?? '' }}
Kecamatan{{ $dokumen->pemilik->district->name ?? '' }},
Kotamadya {{ $dokumen->pemilik->city->name ?? '' }},
Propinsi{{ $dokumen->pemilik->province->name ?? '' }} + B + + IDENTITAS DEBITUR +
+
+ + + + + + + + + + + + + +
Nama Debitur{{ $permohonan->debiture->name ?? '' }}
Alamat dan Telepon{{ $permohonan->debiture->address ?? '' }} {{ $permohonan->debiture->phone ?? '' }}
Saat menilai, penilai didampingi oleh + + + + + + + + + +
Debitur / Wakil Debitur{{ $permohonan->debiture->name ?? '' }}
Pihak Bank selain PJ
+
+ +
+
+ + + + + +
+ C + + JENIS JAMINAN +
-
-
- - - - - -
- E - - STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI -
-
+ @php + $data = ''; + foreach ($permohonan->debiture->documents as $dokumen) { + $data .= $dokumen->jenisJaminan->name . ', '; + } + $data = rtrim($data, ', '); // Remove the trailing comma and space + @endphp - + @if (isset($basicData['jenisJaminan'])) +
+ @foreach ($basicData['jenisJaminan'] as $index => $item) + @if ($index % 3 === 0) + + @endif + + @if ($index % 3 === 2 || $loop->last) + + @endif + @endforeach +
+ name, explode(',', $data)) ? 'checked' : '' }}> + {{ $item->name }} +
+ @endif +
+ + +
+
+ - - + + +
SHM No/Kelurahan/Desa{{ $dokumen->pemilik->address ?? '' }} + D + + LOKASI JAMINAN +
+
+ + + + + + + + + + + + + + + + + + + + + +
Terletak di {{ $dokumen->pemilik->address ?? '' }}
Kelurahan{{ $dokumen->pemilik->village->name ?? '' }}
Kecamatan{{ $dokumen->pemilik->district->name ?? '' }},
Kotamadya {{ $dokumen->pemilik->city->name ?? '' }},
Propinsi{{ $dokumen->pemilik->province->name ?? '' }}
+ +
+ +
+
+ - - + + - - - - - - - - - - - - - - - - - - @php +
Tanggal{{ $dokumen->pemilik->created_at->format('d-m-Y') ?? '' }} + E + + STATUS KEPEMILIKAN, HUBUNGAN DAN PENGHUNI +
Atas Nama{{ $dokumen->pemilik->name ?? '' }}
Gambar Situasi No/Tanggal
Luas Tanah /m2{{ $dokumen->luas_tanah ?? '' }}
IMB No/Tanggal{{ $dokumen->imb_no ?? '' }}
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + @php $cekHub = isset($forminspeksi['asset']['hub_cadeb']) && @@ -448,21 +448,23 @@ ? $forminspeksi['asset']['hub_cadeb']['tidak sesuai'] : $forminspeksi['asset']['hub_cadeb']['sesuai']; @endphp - - - - - @php + + + + + @php $cekHub = isset($forminspeksi['asset']['hub_cadeb_penghuni']) && @@ -474,78 +476,80 @@ ? $forminspeksi['asset']['hub_cadeb_penghuni']['tidak sesuai'] : $forminspeksi['asset']['hub_cadeb_penghuni']['sesuai']; @endphp - - + + +
SHM No/Kelurahan/Desa{{ $dokumen->pemilik->address ?? '' }}
Tanggal{{ $dokumen->pemilik->created_at->format('d-m-Y') ?? '' }}
Atas Nama{{ $dokumen->pemilik->name ?? '' }}
Gambar Situasi No/Tanggal
Luas Tanah /m2{{ $dokumen->luas_tanah ?? '' }}
IMB No/Tanggal{{ $dokumen->imb_no ?? '' }}
Hubungan Pemilik Jaminan dengan Debitur - @if (isset($basicData['hubCadeb'])) - - - @foreach ($basicData['hubCadeb'] as $item) - - @endforeach - -
name === $hubCadeb ? 'checked' : '' }} > {{ $item->name }}
- @endif -
Hubungan Pemilik Jaminan dengan Debitur + @if (isset($basicData['hubCadeb'])) + + + @foreach ($basicData['hubCadeb'] as $item) + + @endforeach + +
+ name === $hubCadeb ? 'checked' : '' }} > {{ $item->name }} +
+ @endif +
Hubungan Penghuni Jaminan dengan Debitur - @if (isset($basicData['hubPenghuni'])) - - - @foreach ($basicData['hubPenghuni'] as $item) - - @endforeach - -
name === $hubCadeb ? 'checked' : '' }} > {{ $item->name }}
- @endif +
Hubungan Penghuni Jaminan dengan Debitur + @if (isset($basicData['hubPenghuni'])) + + + @foreach ($basicData['hubPenghuni'] as $item) + + @endforeach + +
+ name === $hubCadeb ? 'checked' : '' }} > {{ $item->name }} +
+ @endif +
+ + +
+ +
+
+ + + +
+ F + + ANALISA TANAH DAN BANGUNAN
- -
+ + + @php -
-
-
- - - - -
- F - - ANALISA TANAH DAN BANGUNAN -
-
- - - @php + $cekLuas = + isset($forminspeksi['tanah']['luas_tanah']) && + $forminspeksi['tanah']['luas_tanah'] === 'sesuai' + ? 'sesuai' + : 'tidak sesuai'; - $cekLuas = - isset($forminspeksi['tanah']['luas_tanah']) && - $forminspeksi['tanah']['luas_tanah'] === 'sesuai' - ? 'sesuai' - : 'tidak sesuai'; - - $luas = isset($forminspeksi['tanah']['luas_tanah'][$cekLuas]) - ? $forminspeksi['tanah']['luas_tanah'][$cekLuas] - : null; - @endphp + $luas = isset($forminspeksi['tanah']['luas_tanah'][$cekLuas]) + ? $forminspeksi['tanah']['luas_tanah'][$cekLuas] + : null; + @endphp - - - - - - @@ -557,15 +561,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + @endforeach + +
Luas Tanah{{ $luas }}
Bentuk Tanah - @if (isset($basicData['bentukTanah'])) - - - @foreach ($basicData['bentukTanah'] as $index => $item) - @if ($index % 3 == 0 && $index > 0) - - - @endif - + + + + + + + @endforeach + +
- name, $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) ? 'checked' : '' }}> - {{ $item->name }} - Luas Tanah{{ $luas }}
Bentuk Tanah + @if (isset($basicData['bentukTanah'])) + + + @foreach ($basicData['bentukTanah'] as $index => $item) + @if ($index % 3 == 0 && $index > 0) + + + @endif + - @endforeach - -
+ name, $forminspeksi['tanah']['bentuk_tanah']['bentuk_tanah']) ? 'checked' : '' }}> + {{ $item->name }} +
- @endif -
+ @endif +
Kontur Tanah
+ name, $forminspeksi['tanah']['kontur_tanah']) ? 'checked' : '' }}> {{ $item->name }} +
@endif - - name, $forminspeksi['tanah']['kontur_tanah']) ? 'checked' : '' }}> {{ $item->name }} - @endforeach - - - @endif - Permukaan dengan Jalan @@ -577,15 +581,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $item->name }} + + @endforeach + + @endif - - {{ $item->name }} - @endforeach - - - @endif - Peruntukan Tanah @@ -597,15 +601,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $item->name }} + + @endforeach + + @endif - - {{ $item->name }} - @endforeach - - - @endif - Fisik Tanah @@ -617,15 +621,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $item->name }} + + @endforeach + + @endif - - {{ $item->name }} - @endforeach - - - @endif - Jenis Bangunan @@ -637,15 +641,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $item->name }} + + @endforeach + + @endif - - {{ $item->name }} - @endforeach - - - @endif - Kondisi Bangunan @@ -657,15 +661,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $item->name }} + + @endforeach + + @endif - - {{ $item->name }} - @endforeach - - - @endif - Sifat Bangunan @@ -677,15 +681,15 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $item->name }} + + @endforeach + + @endif - - {{ $item->name }} - @endforeach - - - @endif - @foreach ($basicData['spekKategoriBangunan'] as $kategori) @@ -698,72 +702,72 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + {{ $sifat->name }} + + @endforeach + + @endif - - {{ $sifat->name }} + @endforeach - - - @endif - - - @endforeach - + -
+ -
-
- - - - - -
- G - - SARANA PELENGKAP DAN LINGKUNGAN -
-
- +
+
+
- @php + + + +
+ G + + SARANA PELENGKAP DAN LINGKUNGAN +
+
+ + + @php - $cekLuas = - isset($forminspeksi['tanah']['luas_tanah']) && - $forminspeksi['tanah']['luas_tanah'] === 'sesuai' - ? 'sesuai' - : 'tidak sesuai'; + $cekLuas = + isset($forminspeksi['tanah']['luas_tanah']) && + $forminspeksi['tanah']['luas_tanah'] === 'sesuai' + ? 'sesuai' + : 'tidak sesuai'; - $luas = isset($forminspeksi['tanah']['luas_tanah'][$cekLuas]) - ? $forminspeksi['tanah']['luas_tanah'][$cekLuas] - : null; - @endphp + $luas = isset($forminspeksi['tanah']['luas_tanah'][$cekLuas]) + ? $forminspeksi['tanah']['luas_tanah'][$cekLuas] + : null; + @endphp - - - - - - - + + + + + + + @@ -776,13 +780,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + + @endforeach + +
Luas Tanah{{ $luas }}
Lapisan Perkerasan Jalan - @if (isset($basicData['perkerasanJalan'])) - - - @foreach ($basicData['perkerasanJalan'] as $index => $item) - @if ($index % 3 == 0 && $index > 0) - - - @endif - - @endforeach - -
{{ $item->name }}
- @endif -
Luas Tanah{{ $luas }}
Lapisan Perkerasan Jalan + @if (isset($basicData['perkerasanJalan'])) + + + @foreach ($basicData['perkerasanJalan'] as $index => $item) + @if ($index % 3 == 0 && $index > 0) + + + @endif + + @endforeach + +
{{ $item->name }}
+ @endif +
{{ $item->name }}
@endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -795,13 +799,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -814,13 +818,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -833,13 +837,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -852,13 +856,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -871,13 +875,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -890,13 +894,13 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach - - - @endif - + @@ -909,114 +913,113 @@ @if ($index % 3 == 0 && $index > 0) + @endif + {{ $item->name }} + @endforeach + + @endif - {{ $item->name }} - @endforeach + - - @endif - - - + - - + -
-
- - - - - -
- H - - ASURANSI -
-
- +
+
+
- - + +
Tidak Ada Ada + H + + ASURANSI +
-
+ + + + + +
Tidak Ada Ada
-
-
- - - - - -
- I - - KESIMPULAN DAN SARAN PENILAI, INFORMASI HARGA, - TOTAL NILAI JAMINAN DAN CATATAN PERLU DIPERHATIKAN -
-
- + + +
+
+
+ + + + +
+ I + + KESIMPULAN DAN SARAN PENILAI, INFORMASI HARGA, + TOTAL NILAI JAMINAN DAN CATATAN PERLU DIPERHATIKAN +
+
+ - - - - - - - - - - - - + + + + + + + + + + + + @@ -1065,114 +1068,125 @@ -
1. Kesimpulan dan saran penilai:
Faktor Positif - @isset($forminspeksi['fakta']['fakta_positif']) - - @foreach ($forminspeksi['fakta']['fakta_positif'] as $key => $item) - - - - @endforeach -
[{{ $key }}] {{ $item }}
- @endisset -
Faktor Negatif - @isset($forminspeksi['fakta']['fakta_negatif']) - - @foreach ($forminspeksi['fakta']['fakta_negatif'] as $key => $item) - - - - @endforeach -
[{{ $key }}] {{ $item }}
- @endisset -
Lain - lain : -

- Berdasarkan hasil kunjungan di lapangan dapat disampaikan sebagai berikut :

- - @isset($forminspeksi['fakta']) - @foreach ($forminspeksi['fakta'] as $key => $item) - @if ( - !in_array($key, [ - 'fakta_positif', - 'fakta_negatif', - 'rute_menuju', - 'batas_batas', - 'batas_batas_input', - 'kondisi_lingkungan', - 'kondisi_lain_bangunan', - 'informasi_dokument', - ])) -

{{ $item }}

- @endif +
Faktor Positif + @isset($forminspeksi['fakta']['fakta_positif']) + + @foreach ($forminspeksi['fakta']['fakta_positif'] as $key => $item) + + + @endforeach - @endisset - - +
[{{ $key }}] {{ $item }}
+ @endisset +
Faktor Negatif + @isset($forminspeksi['fakta']['fakta_negatif']) + + @foreach ($forminspeksi['fakta']['fakta_negatif'] as $key => $item) + + + + @endforeach +
[{{ $key }}] {{ $item }}
+ @endisset +
Lain - lain : +

- Berdasarkan hasil kunjungan di lapangan dapat disampaikan sebagai berikut :

+ + @isset($forminspeksi['fakta']) + @foreach ($forminspeksi['fakta'] as $key => $item) + @if ( + !in_array($key, [ + 'fakta_positif', + 'fakta_negatif', + 'rute_menuju', + 'batas_batas', + 'batas_batas_input', + 'kondisi_lingkungan', + 'kondisi_lain_bangunan', + 'informasi_dokument', + ])) +

{{ $item }}

+ @endif + @endforeach + @endisset +
2. Informasi Harga:
+ + + +
+ +
+
+ PETA LOKASI +
+ @php + $fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat']; + @endphp +
+ @if (isset($forminspeksi)) + @forelse ($fotoTypes as $type) +
+ @php + $imagePath = $forminspeksi[$type]; + @endphp -
- -
-
- PETA LOKASI -
-
- @php - $fotoTypes = ['foto_gistaru', 'foto_bhumi', 'foto_argis_region', 'foto_tempat']; - @endphp -
- @if (isset($forminspeksi)) - @forelse ($fotoTypes as $type) -
- @php - $imagePath = $forminspeksi[$type]; - @endphp - + @if($imagePath && file_exists(storage_path('app/public/'. $imagePath))) {{ $type }} -

{{ Str::title(str_replace('_', ' ', $type)) }}

+ class="photo-image"> + @endif +

{{ Str::title(str_replace('_', ' ', $type)) }}

-
- @empty -

Tidak ada tipe foto yang tersedia

- @endforelse - @endif -
-
- -
-
-
- FOTO JAMINAN -
-
-
- @if (isset($formFoto)) - @foreach ($formFoto['rute_menuju_lokasi'] as $item) -
-

- {{ $item['name_rute'] . ' ' . $loop->index + 1 }} -

- - {{ $item['foto_rute'] }} -
- @endforeach - @endif - - @if (isset($formFoto['object_jaminan'])) - @foreach ($formFoto['object_jaminan'] as $item) -
-

- {{ $item['name_objek'] }} -

- - {{ $item['foto_objek'] }} -
- @endforeach - @endif - - @if (isset($formFoto['foto_basement'])) -
-

- Basement -

- - {{ $formFoto['foto_basement'] }}
- @endif - - @if (isset($formFoto['foto_gerbang'])) -
-

- Gerbang -

- - {{ $formFoto['foto_gerbang'] }} -
- @endif - @if (isset($formFoto['pendamping'])) -
-

- Pendamping -

- - {{ $formFoto['pendamping'] }} -
- @endif -
+ @empty +

Tidak ada tipe foto yang tersedia

+ @endforelse + @endif
- + diff --git a/resources/views/penilaian/otorisator/index.blade.php b/resources/views/penilaian/otorisator/index.blade.php index 282d63a..ff486a8 100644 --- a/resources/views/penilaian/otorisator/index.blade.php +++ b/resources/views/penilaian/otorisator/index.blade.php @@ -8,8 +8,8 @@
+ data-datatable-state-save="false" id="permohonan-table" + data-api-url="{{ route('otorisator.datatables', ['otorisator' => $header]) }}">

Daftar {{ $header }} @@ -30,46 +30,59 @@
+ data-datatable-table="true"> - - - - - - - - + + + + + + + + - @if ($header == 'Pembayaran') - - @endif + - - + + + + + + + +
- - - Nomor Registrasi - - - Tanggal Permohonan - - - User Pemohon - - - Cabang Pemohon - - - Debitur - - - Tujuan Penilaian - -
+ + + Nomor Registrasi + + + Tanggal Permohonan + + + User Pemohon + + + Cabang Pemohon + + + Debitur + + + Tujuan Penilaian + + - Status Bayar - - + Status Bayar + + Action
+ Approval SO + + + Approval EO + + + Approval DD + + Action
@@ -182,34 +195,80 @@ return `${data.tujuan_penilaian.name}`; }, }, - ...(dataHeader === 'Pembayaran' && { - status_bayar: { - title: 'Status Bayar', - render: (item, data) => { - const status = data.status_bayar.replace(/_/g, - ' '); - const statusClass = data.status_bayar === 'belum_bayar' ? 'text-red-600' : - 'text-green-600'; - return ` + status_bayar: { + title: 'Status Bayar', + render: (item, data) => { + const status = data.status_bayar.replace(/_/g, + ' '); + const statusClass = data.status_bayar === 'belum_bayar' ? 'text-red-600' : + 'text-green-600'; + return ` ${status} `; - }, }, - }), - + }, + approval_so: { + title: 'Approval SO', + render: (item, data) => { + if(data.approve_so) { + return `${data.approve_so.name} | ${window.formatTanggalIndonesia(data.approval_so_at)}`; + } + return ''; + }, + }, + approval_eo: { + title: 'Approval EO', + render: (item, data) => { + if(data.approve_eo) { + return `${data.approve_eo.name} | ${window.formatTanggalIndonesia(data.approval_eo_at)}`; + } + return ''; + }, + }, + approval_dd: { + title: 'Approval DD', + render: (item, data) => { + if(data.approve_dd) { + return `${data.approve_dd.name} | ${window.formatTanggalIndonesia(data.approval_dd_at)}`; + } + return ''; + }, + }, actions: { title: 'Status', render: (item, data) => { - return `
- - - + const userRoles = @json(Auth::user()->getRoleNames()); + const isAdmin = userRoles.includes('administrator'); - - - -
`; + let buttons = ` +
+ + + + `; + if ((isAdmin || userRoles.includes('senior-officer')) && !data.approval_so) { + buttons += ` + + + + `; + } else if ((isAdmin || userRoles.includes('EO Appraisal')) && data.approval_so && !data.approval_eo) { + buttons += ` + + + + `; + } else if ((isAdmin || userRoles.includes('DD Appraisal')) && data.approval_eo && !data.approval_dd) { + buttons += ` + + + + `; + } + + buttons += `
`; + return buttons; }, } }, @@ -217,7 +276,7 @@ let dataTable = new KTDataTable(element, dataTableOptions); // Custom search functionality - searchInput.addEventListener('input', function() { + searchInput.addEventListener('input', function () { const searchValue = this.value.trim(); dataTable.search(searchValue, true); @@ -257,7 +316,7 @@ message: userMessage // Kirim pesan sebagai bagian dari data }, success: (response) => { - Swal.fire('Berhasil!', 'Data berhasil diotorisasi.', 'success').then(() => { + Swal.fire('Berhasil!', 'Data berhasil diotorisasi. Menunggu Approval EO dan atau DD', 'success').then(() => { window.location.reload(); }); console.log(response); @@ -265,7 +324,7 @@ error: (error) => { console.error('Error:', error); Swal.fire('Gagal!', 'Terjadi kesalahan saat melakukan otorisator.', - 'error'); + 'error'); } }); } diff --git a/resources/views/penilaian/otorisator/show.blade.php b/resources/views/penilaian/otorisator/show.blade.php index 0b8638e..f621cba 100644 --- a/resources/views/penilaian/otorisator/show.blade.php +++ b/resources/views/penilaian/otorisator/show.blade.php @@ -16,16 +16,16 @@ @if($permohonan->approval_so) -
-
-

- Approval -

-
+
+
+

+ Approval +

+
-
- - +
+
+ @@ -41,12 +41,13 @@ - -
Diperiksa Oleh {{ getUser($permohonan->approval_so)->name ?? 'N/A' }}{{ getUser($permohonan->approval_dd)->name ?? 'N/A' }} {{ $permohonan->approval_dd_at ? formatTanggalIndonesia($permohonan->approval_dd_at,1) : 'N/A' }}
+ + +
-
@endif
+
@php $inspeksiId = null; @@ -68,10 +69,26 @@ @endif - + @if(Auth::user()->hasAnyRole(['administrator','senior-officer']) && $permohonan->approval_so==null) + + @endif + + @if(Auth::user()->hasAnyRole(['administrator','EO Appraisal']) && $permohonan->approval_so && $permohonan->approval_eo==null) + + @endif + + @if(Auth::user()->hasAnyRole(['administrator','DD Appraisal']) && $permohonan->approval_eo && $permohonan->approval_dd==null) + + @endif
@@ -111,7 +128,7 @@ message: userMessage }, success: (response) => { - Swal.fire('Berhasil!', 'Data berhasil diotorisasi.', 'success').then(() => { + Swal.fire('Berhasil!', 'Data berhasil diotorisasi. Menunggu Approval EO dan atau DD', 'success').then(() => { window.location.reload(); }); console.log(response); diff --git a/resources/views/surveyor/components/foto.blade.php b/resources/views/surveyor/components/foto.blade.php index c61805a..c48e202 100644 --- a/resources/views/surveyor/components/foto.blade.php +++ b/resources/views/surveyor/components/foto.blade.php @@ -418,11 +418,6 @@
- Foto Lantai -
@@ -204,9 +204,9 @@ setupCanvas() { // Set initial canvas size this.canvas.width = 1280; - this.canvas.height = 960; - this.drawingCanvas.width = 1280; - this.drawingCanvas.height = 960; + this.canvas.height = (this.canvas.width * 3) / 4; + this.drawingCanvas.width = this.canvas.width; + this.drawingCanvas.height = this.canvas.height; } setupDrawingContext() { @@ -277,6 +277,43 @@ this.saveDrawingState(); } + takePhoto() { + const context = this.canvas.getContext('2d'); + + // Determine if the video is in portrait or landscape mode + const isPortrait = this.video.videoHeight > this.video.videoWidth; + + if (isPortrait) { + // Portrait mode + this.canvas.width = this.video.videoWidth; + this.canvas.height = this.video.videoHeight; + context.drawImage(this.video, 0, 0, this.canvas.width, this.canvas.height); + } else { + // Landscape mode + this.canvas.width = 1280; + this.canvas.height = (this.canvas.width * this.video.videoHeight) / this.video.videoWidth; + context.drawImage(this.video, 0, 0, this.canvas.width, this.canvas.height); + } + + // Adjust drawing canvas to match main canvas + this.drawingCanvas.width = this.canvas.width; + this.drawingCanvas.height = this.canvas.height; + + // Hide video, show canvases + this.video.style.display = 'none'; + this.canvas.style.display = 'block'; + this.drawingCanvas.style.display = 'block'; + + // Show editor controls, hide camera controls + document.getElementById('editorControls').classList.remove('hidden'); + document.getElementById('cameraControls').classList.add('hidden'); + + // Clear drawing history + this.drawingHistory = []; + this.historyIndex = -1; + this.saveDrawingState(); + } + switchCamera() { this.currentFacingMode = this.currentFacingMode === 'environment' ? 'user' : 'environment'; this.startCamera();