157 lines
6.6 KiB
PHP
157 lines
6.6 KiB
PHP
@extends('layouts.main')
|
|
|
|
@section('breadcrumbs')
|
|
{{-- {{ Breadcrumbs::render(request()->route()->getName()) }}
|
|
--}}
|
|
Standard
|
|
@endsection
|
|
|
|
@section('content')
|
|
@include('lpj::assetsku.includenya')
|
|
<form id="form-lpj" method="post" class="w-full grid gap-5">
|
|
<input type="hidden" name="permohonan_id" value="{{ $permohonan->id }}">
|
|
<input type="hidden" name="dokument_id" value="{{ request('documentId') }}">
|
|
@include('lpj::component.form-penilai')
|
|
<div class="flex card-footer justify-end gap-5">
|
|
<button type="button" class="btn btn-success" id="saveButton" onclick="saveLpjSederhanadanStandard()">
|
|
<span id="saveButtonText">Save</span>
|
|
</button>
|
|
</div>
|
|
</form>
|
|
@endsection
|
|
|
|
<script type="text/javascript">
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
document.querySelectorAll('.currency-format').forEach(input => {
|
|
input.addEventListener('input', function() {
|
|
formatCurrency(this);
|
|
});
|
|
});
|
|
|
|
document.querySelectorAll('.number-format').forEach(input => {
|
|
input.addEventListener('input', function() {
|
|
formatNumber(this);
|
|
});
|
|
});
|
|
});
|
|
|
|
function calculateTotal() {
|
|
// Fungsi untuk menghapus format ribuan/koma
|
|
const parseInput = (value) => parseFloat(value.replace(/[^0-9]/g, '')) || 0;
|
|
|
|
// Ambil elemen input dan parse nilainya
|
|
let luasTanah = parseInput(document.getElementById('luas_tanah').value);
|
|
let hargaPerMeterTanah = parseInput(document.querySelector('input[name="nilai_tanah_1"]').value);
|
|
let totalLuasTanah = document.querySelector('input[name="nilai_tanah_2"]');
|
|
|
|
let luasBangunan = parseInput(document.getElementById('luas_bangunan').value);
|
|
let hargaPerMeterBangunan = parseInput(document.querySelector('input[name="nilai_bangunan_1"]').value);
|
|
let totalLuasBangunan = document.querySelector('input[name="nilai_bangunan_2"]');
|
|
|
|
let saranaPelengkap = parseInput(document.getElementById('sarana_pelengkap_penilai').value);
|
|
let hargaPerMeterSarana = parseInput(document.querySelector('input[name="nilai_sarana_pelengkap_1"]').value);
|
|
let totalLuasSarana = document.querySelector('input[name="nilai_sarana_pelengkap_2"]');
|
|
|
|
// Bagian Likuidasi
|
|
let persentaseLikuidasi = parseInput(document.getElementById('likuidasi').value);
|
|
let totalNilaiPasarLikuidasi = document.querySelector('input[name="likuidasi_nilai_1"]');
|
|
let totalLikuidasi = document.querySelector('input[name="likuidasi_nilai_2"]');
|
|
|
|
// Bagian Asuransi
|
|
let luasBangunanAsuransi = parseInput(document.getElementById('asuransi_luas_bangunan').value);
|
|
let hargaPerMeterAsuransi = parseInput(document.querySelector('input[name="asuransi_nilai_1"]').value);
|
|
let totalNilaiAsuransi = document.querySelector('input[name="asuransi_nilai_2"]');
|
|
|
|
let total = document.querySelector('input[name="total_nilai_pasar_wajar"]');
|
|
|
|
// Hitung hasil
|
|
const hasilTanah = luasTanah * hargaPerMeterTanah;
|
|
const hasilBangunan = luasBangunan * hargaPerMeterBangunan;
|
|
const hasilSarana = saranaPelengkap * hargaPerMeterSarana;
|
|
|
|
const totalNilaiPasarWajar = hasilTanah + hasilBangunan + hasilSarana;
|
|
|
|
// Perhitungan Likuidasi
|
|
const hasilLikuidasi = (persentaseLikuidasi / 100) * totalNilaiPasarWajar;
|
|
|
|
// Perhitungan Asuransi
|
|
const hasilAsuransi = luasBangunanAsuransi * hargaPerMeterAsuransi;
|
|
|
|
// Tampilkan hasil dalam format currency
|
|
totalLuasTanah.value = formatCurrency(hasilTanah.toString());
|
|
totalLuasBangunan.value = formatCurrency(hasilBangunan.toString());
|
|
totalLuasSarana.value = formatCurrency(hasilSarana.toString());
|
|
total.value = formatCurrency(totalNilaiPasarWajar.toString());
|
|
|
|
// Tampilkan nilai likuidasi dan asuransi
|
|
totalNilaiPasarLikuidasi.value = formatCurrency(totalNilaiPasarWajar.toString());
|
|
totalNilaiAsuransi.value = formatCurrency(hasilAsuransi.toString());
|
|
|
|
// Total likuidasi (total nilai pasar wajar + nilai likuidasi)
|
|
// const totalPasarWajarDenganLikuidasi = totalNilaiPasarWajar + hasilLikuidasi;
|
|
totalLikuidasi.value = formatCurrency(hasilLikuidasi.toString());
|
|
}
|
|
|
|
|
|
|
|
function saveLpjSederhanadanStandard() {
|
|
const form = document.getElementById('form-lpj');
|
|
const formData = new FormData(form);
|
|
showLoadingSwal('Mengirim data ke server...');
|
|
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
const permohonanId = {{ $permohonan->id }};
|
|
const documentId = urlParams.get('documentId');
|
|
const inspeksiId = urlParams.get('inspeksiId');
|
|
|
|
const requestUrl = `{{ route('penilai.storeLpjSederhanadanStandard') }}?permohonanId=${permohonanId}&inspeksiId=${inspeksiId}&documentId=${documentId}`;
|
|
$.ajax({
|
|
url: requestUrl,
|
|
type: 'POST',
|
|
data: formData,
|
|
processData: false,
|
|
contentType: false,
|
|
headers: {
|
|
'X-CSRF-TOKEN': '{{ csrf_token() }}'
|
|
},
|
|
success: function(response) {
|
|
hideLoadingSwal();
|
|
if (response.success) {
|
|
Swal.fire({
|
|
title: 'Berhasil!',
|
|
text: response.message,
|
|
icon: 'success',
|
|
confirmButtonText: 'OK'
|
|
}).then((response) => {
|
|
if (response.isConfirmed) {
|
|
window.location.href =
|
|
'{{ route('penilai.show', ['id' => $permohonan->id]) }}';
|
|
}
|
|
});
|
|
} else {
|
|
Swal.fire({
|
|
title: 'Error!',
|
|
text: response.message || 'Terjadi kesalahan',
|
|
icon: 'error',
|
|
confirmButtonText: 'OK'
|
|
});
|
|
}
|
|
console.log(response);
|
|
},
|
|
error: function(xhr, status, error) {
|
|
let errors = xhr.responseJSON?.errors;
|
|
$('.alert').text('');
|
|
if (errors) {
|
|
$.each(errors, function(key, value) {
|
|
$(`#error-${key}`).text(value[0]);
|
|
toastrErrorBuild(value[0]);
|
|
});
|
|
}
|
|
hideLoadingSwal();
|
|
console.log(errors);
|
|
}
|
|
});
|
|
}
|
|
</script>
|
|
@include('lpj::surveyor.js.utils')
|