diff --git a/app/Http/Controllers/SurveyorController.php b/app/Http/Controllers/SurveyorController.php index 747e22a..f71e327 100644 --- a/app/Http/Controllers/SurveyorController.php +++ b/app/Http/Controllers/SurveyorController.php @@ -3263,24 +3263,35 @@ class SurveyorController extends Controller ?string $extraField = null ): array { if ($checkKesesuaian) { - return [ - $data[$fieldName] ?? '' => ($data[$fieldName] ?? '') === 'sesuai' - ? ($data["{$fieldName}_sesuai"] ?? '') - : ($data["{$fieldName}_tidak_sesuai"] ?? '') + // Mengecek apakah status kesesuaian adalah 'sesuai' + $isSesuai = ($data[$fieldName] ?? '') === 'sesuai'; + + // Menggunakan key berdasarkan status kesesuaian + $result = [ + $isSesuai ? 'sesuai' : 'tidak_sesuai' => $data[$fieldName] ?? null ]; + + // Tambahkan field ekstra jika ada + if ($extraField) { + $result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null; + } + + return $result; } - + + // Jika tidak melakukan pengecekan kesesuaian, hanya ambil data berdasarkan fieldName $result = [ - $fieldName => $data[$fieldName] ?? null + $fieldName => $data[$fieldName] ?? null, ]; - + + // Jika ada extra field, tambahkan ke result if ($extraField) { $result[$extraField] = $data["{$fieldName}_{$extraField}"] ?? null; } - + return $result; } - + public function export(string $type) { diff --git a/resources/views/activity/index.blade.php b/resources/views/activity/index.blade.php index 2e73d0c..798fe44 100644 --- a/resources/views/activity/index.blade.php +++ b/resources/views/activity/index.blade.php @@ -6,30 +6,41 @@ @section('content') @push('styles') @endpush @@ -258,6 +269,7 @@ `, + } }, }; diff --git a/resources/views/component/form-penilai.blade.php b/resources/views/component/form-penilai.blade.php index 4ccb04b..d16a4fa 100644 --- a/resources/views/component/form-penilai.blade.php +++ b/resources/views/component/form-penilai.blade.php @@ -343,13 +343,19 @@

{{ $title ?? 'Data Jaminan' }}

+ @php + use Illuminate\Support\Facades\Route; + @endphp
- @if (isset($id)) - + @if (Auth::user()->hasAnyRole(['administrator', 'senior-officer', 'EO Appraisal', 'DD Appraisal']) && + Route::currentRouteName('otorisator.show')) + Back - @else - + + @elseif (Auth::user()->hasAnyRole(['administrator','surveyor']) && Route::currentRouteName('penilai.show')) + Back @endif @@ -616,8 +622,8 @@ -
@@ -670,18 +676,24 @@ Tambah NPW - -
- +
+ + * Masukkan Angka Saja +
@@ -795,6 +807,10 @@
- diff --git a/resources/views/penilai/components/informasi-pembanding.blade.php b/resources/views/penilai/components/informasi-pembanding.blade.php index 3245888..8b0b252 100644 --- a/resources/views/penilai/components/informasi-pembanding.blade.php +++ b/resources/views/penilai/components/informasi-pembanding.blade.php @@ -28,37 +28,39 @@
- +
- {{ $item['harga_diskon'] }} + Rp. {{ $item['harga_diskon'] }}
- {{ $item['harga'] }} + Rp. {{ $item['harga'] }}
- {{ $item['harga'] }} + Rp. {{ $item['harga'] }}
- {{ $item['luas_tanah'] }} + {{ $item['luas_tanah'] }} + m2
- {{ $item['luas_bangunan'] }} + {{ $item['luas_bangunan'] }} + m2
diff --git a/resources/views/surveyor/components/inspeksi.blade.php b/resources/views/surveyor/components/inspeksi.blade.php index 99014f2..9683b77 100644 --- a/resources/views/surveyor/components/inspeksi.blade.php +++ b/resources/views/surveyor/components/inspeksi.blade.php @@ -81,7 +81,7 @@ diff --git a/resources/views/surveyor/js/utils.blade.php b/resources/views/surveyor/js/utils.blade.php index 3c5c55b..c0b19f8 100644 --- a/resources/views/surveyor/js/utils.blade.php +++ b/resources/views/surveyor/js/utils.blade.php @@ -336,4 +336,174 @@ }); }); } + + function updateAnalisa(params) { + const inputMap = { + jenis_asset: 'jenis_asset_tidak_sesuai', + analisa_tanah: 'analisa_tanah_tidak_sesuai', + analisa_unit: 'analisa_luas_unit_tidak_sesuai', + analisa_bangunan: 'analisa_bangunan_tidak_sesuai', + }; + + // Pastikan elemen ID ada di inputMap + if (!inputMap[params]) { + console.error('Parameter tidak valid:', params); + return; + } + + // Ambil nilai berdasarkan parameter + const inputValue = document.getElementById(inputMap[params]).value; + const data = { + [params === 'jenis_asset' ? 'jenis_asset' : params.replace('analisa_', 'luas_')]: inputValue, + types: params + }; + + $.ajax({ + url: '{{ route('surveyor.update_analisa', ['id' => $permohonan->id]) }}', + type: 'POST', + data: data, + headers: { + 'X-CSRF-TOKEN': '{{ csrf_token() }}' + }, + success: function(response) { + console.log(response); + if (response.success) { + // window.location.href = + // '{{ route('surveyor.show', ['id' => $permohonan->id]) }}'; + toastrSuccessBuild(response.message); + } + }, + error: function(xhr, status, error) { + console.error('Terjadi error:', error); + console.log('Status:', status); + console.log('Response:', xhr.responseText); + if (xhr.responseJSON.message) { + toastrErrorBuild(xhr.responseJSON.message); + } else { + toastrErrorBuild('Terjadi kesalahan'); + } + } + }); + } + + function updateAlamatFields(status) { + // Ambil elemen formulir + const addressForm = document.getElementById('alamat_form'); + const inputs = addressForm.querySelectorAll('input, select'); + const addressInput = document.getElementById('address'); + + if (status === 'sesuai') { + addressInput.value = "{{ $dokumen->address ?? '' }}"; + inputs.forEach(element => { + if (element.tagName === 'INPUT') { + element.setAttribute('readonly', true); + } else if (element.tagName === 'SELECT') { + element.setAttribute('disabled', true); + element.classList.add('disabled-input') + } + }); + + addressForm.style.display = 'grid'; + addressForm.disabled = true; + addressForm.classList.add('disabled-input') + + + } else if (status === 'tidak sesuai') { + addressForm.style.display = 'grid'; + + addressForm.removeAttribute('disabled'); + addressForm.classList.remove('disabled-input') + const formInspeksi = @json($forminspeksi ?? ''); + const addressInput = document.getElementById('address'); + + if (formInspeksi && formInspeksi.asset && formInspeksi.asset.alamat) { + if (formInspeksi.asset.alamat['tidak sesuai'] && formInspeksi.asset.alamat['tidak sesuai'].address) { + addressInput.value = formInspeksi.asset.alamat['tidak sesuai'].address; + } else if (formInspeksi.asset.alamat['sesuai'] && formInspeksi.asset.alamat['sesuai'].address) { + addressInput.value = formInspeksi.asset.alamat['sesuai'].address; + } else { + addressInput.value = ""; + } + } + + inputs.forEach(element => { + if (element.tagName === 'INPUT') { + element.removeAttribute('readonly'); + } else if (element.tagName === 'SELECT') { + element.removeAttribute('disabled'); + element.classList.remove('disabled-input') + } + }); + } + } + + function toggleFieldVisibility(fieldName, inputId, visibleValues = []) { + const selectedValue = $(`[name="${fieldName}"]:checked`).val(); + const inputField = $(`#${inputId}`); + + if (visibleValues.includes(selectedValue)) { + inputField.show(); + } else { + inputField.hide().val(''); + } + } + + + function toggleCheckboxVisibility(fieldName, inputId, visibleValues = []) { + const selectedValues = $(`[name="${fieldName}[]"]:checked`) + .map(function() { + return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil + }) + .get(); + + const inputField = $(`#${inputId}`); + + // Cek apakah salah satu nilai yang dipilih cocok dengan visibleValues + const shouldShow = visibleValues.some(value => selectedValues.includes(value.toLowerCase())); + + if (shouldShow) { + inputField.show(); + } else { + inputField.hide().val(''); + } + } + + + function toggleMultipleFields(fieldName, mappings) { + // Ambil semua nilai checkbox yang dicentang + const selectedValues = $(`[name="${fieldName}[]"]:checked`) + .map(function() { + return $(this).val().toLowerCase(); // Konversi nilai ke huruf kecil + }) + .get(); + + // Iterasi melalui setiap mapping + for (const [key, inputId] of Object.entries(mappings)) { + const inputField = $(`#${inputId}`); + + // Tampilkan input jika nilai yang relevan dipilih + if (selectedValues.includes(key.toLowerCase())) { + inputField.show(); + } else { + inputField.hide().val(''); // Sembunyikan dan reset nilai + } + } + } + + + function toggleAlamatVisibility(idSesuai, idTidakSesuai, selectedValue) { + // Ambil elemen berdasarkan ID + const alamatSesuai = document.getElementById(idSesuai); + const alamatTidakSesuai = document.getElementById(idTidakSesuai); + + // Periksa nilai yang dipilih dan tampilkan elemen yang sesuai + if (selectedValue === 'sesuai') { + alamatSesuai.style.display = 'grid'; // Tampilkan "Alamat Sesuai" + alamatTidakSesuai.style.display = 'none'; // Sembunyikan "Alamat Tidak Sesuai" + } else if (selectedValue === 'tidak sesuai') { + alamatSesuai.style.display = 'none'; // Sembunyikan "Alamat Sesuai" + alamatTidakSesuai.style.display = 'grid'; // Tampilkan "Alamat Tidak Sesuai" + } + } +