부과총액 계산

dev
박성영 3 months ago
parent 0dec765079
commit a579f61626

@ -222,7 +222,7 @@
<input type="hidden" id="sbtrRt" value=""/><!-- 감산율(% 표기) -->
<input type="hidden" id="sbtrRtRate" value=""/><!-- 감산비율(실제계산에 필요한 값 : 감산율 / 100 ) -->
<input type="hidden" class="input" id="adsbmtnEnfcRt" value="" readonly/><!-- 가감산 시행령률 -->
<input type="hidden" class="input" id="adsbmtnEnfcRt" value="100" readonly/><!-- 가감산 시행령률 -->
</td>
<td rowspan="2" class="op-cell b-right-0 b-bottom-0">X</td>
<td rowspan="2" class="b-right-0 b-bottom-0">
@ -244,7 +244,7 @@
<input type="hidden" id="cmpttnRt2Rate" class="input text-right" value="" readonly/><!-- 산정률2(값) -->
</td>
<td rowspan="2" class="op-cell b-right-0 b-bottom-0">=</td>
<td rowspan="2" class="b-bottom-0"><input type="text" class="input" value=""/><!-- 산정액 --></td>
<td rowspan="2" class="b-bottom-0"><input type="text" class="input numericMask" id="cmpttnAmt" value="" readonly/><!-- 산정액 --></td>
</tr>
<tr>
@ -257,7 +257,10 @@
</tr>
<tr>
<td colspan="12" class="b-top-0"><strong>부과총액 = 결과값 계산로직 진행 중</strong></td>
<td colspan="12" class="b-top-0">
<h2><strong>부과총액 = <span id="levyWholAmtDisplay">0 원</span></strong></h2>
<input type="hidden" class="input numericMask" id="levyWholAmt" value="">
</td>
</tr>
</table>
</div>
@ -456,7 +459,7 @@
if (!rowData) return;
var vltnArea = rowData.calcArea; // 면적 - 조치면적 : 위반면적
$('#vltnArea').val(vltnArea); // 위반면적
$('#vltnArea').val(vltnArea).trigger('change'); // 위반면적, change 이벤트 트리거
// 행위유형에 따른 산정률1 설정
$('#cmpttnRtDisplay').val(rowData.actCmpttnRt+ ' %');
@ -482,6 +485,9 @@
$('#elpsYrRdvlrt').val(rowData.elpsYrRdvlrt); // 경과년수별잔가율(하단)
$('#bscsCstrnSeCd').trigger('change'); // 기초공사구분 변경 이벤트 트리거
// 산정액 계산 함수 호출
calculateLevyAmount();
};
this.instance.on('focusChange', function(ev) {
@ -571,6 +577,13 @@
$('#cmpttnRt2').val(rateValue || '');
$('#cmpttnRt2Rate').val(rateValue2 || '');
$('#cmpttnRt2Display').val((rateValue || '') + ' %').trigger('focus');
// 산정액 계산 함수 호출
calculateLevyAmount();
});
// 위반면적 변경 시 산정액 계산 함수 호출
$('#vltnArea').on('change keyup', function() {
calculateLevyAmount();
});
// 계산에 사용되는 입력 필드 변경 시 자동 계산 호출
@ -701,6 +714,48 @@
};
/**
* 중요로직: 이행강제금 산정액 및 부과총액 자동 계산
* @description 시가표준액, 위반면적, 가감산시행령률, 산정률, 산정률2가 모두 입력되었을 때 산정액과 부과총액을 자동으로 계산합니다.
* - 산정액 = 시가표준액 * 위반면적 * (가감산시행령률 / 100) * 산정률(비율) * 산정률2(비율)
* - 부과총액 = 산정액의 1의 자리 절사 (10원 단위 버림)
*/
function calculateLevyAmount() {
var standardMarketPrice = parseFloat($('#standardMarketPrice_top').inputmask('unmaskedvalue')) || 0;
var vltnArea = parseFloat($('#vltnArea').inputmask('unmaskedvalue')) || 0;
var adsbmtnEnfcRt = parseFloat($('#adsbmtnEnfcRt').val()) || 0;
var cmpttnRtRate = parseFloat($('#cmpttnRtRate').val()) || 0;
var cmpttnRt2Rate = parseFloat($('#cmpttnRt2Rate').val()) || 0;
var cmpttnAmt = 0; // 산정액
var levyWholAmt = 0; // 부과총액
// 모든 값이 0보다 큰지 확인 (필수 입력값 체크)
if (standardMarketPrice > 0 && vltnArea > 0 && adsbmtnEnfcRt > 0 && cmpttnRtRate > 0 && cmpttnRt2Rate > 0) {
// 산정액 계산 (소수점 버림)
cmpttnAmt = Math.floor(standardMarketPrice * vltnArea * (adsbmtnEnfcRt / 100) * cmpttnRtRate * cmpttnRt2Rate);
// 부과총액 계산: 산정액에서 1의 자리 절사 (10원 단위로 버림)
levyWholAmt = Math.floor(cmpttnAmt / 10) * 10;
}
// '산정액' 필드에 값 설정
if (cmpttnAmt > 0) {
$('#cmpttnAmt').val(cmpttnAmt).trigger('focus');
} else {
$('#cmpttnAmt').val('').trigger('focus');
}
// '부과총액' 필드 및 표시에 값 설정
if (levyWholAmt > 0) {
$('#levyWholAmt').val(levyWholAmt);
$('#levyWholAmtDisplay').text(levyWholAmt.toLocaleString() + ' 원');
} else {
$('#levyWholAmt').val('');
$('#levyWholAmtDisplay').text('');
}
}
/**
* 자동 계산 (서버 API 호출)
* @description 각 항목의 값을 서버로 보내 건축물과세시가를 계산하고, 그 결과를 받아 시가표준액을 계산합니다.
@ -720,6 +775,7 @@
$('#taxableMarketPrice').val('').trigger('focus'); // 건축물과세시가
$('#standardMarketPrice').val('').trigger('focus'); // 시가표준액
$('#standardMarketPrice_top').val('').trigger('focus'); // 시가표준액(상단)
calculateLevyAmount(); // 산정액 계산
return;
}
@ -753,12 +809,15 @@
$('#standardMarketPrice').val('').trigger('focus'); // 시가표준액
$('#standardMarketPrice_top').val('').trigger('focus'); // 시가표준액(상단)
}
// 산정액 계산 함수 호출
calculateLevyAmount();
},
error: function() {
alert('서버와 통신 중 오류가 발생했습니다.');
$('#taxableMarketPrice').val('').trigger('focus'); // 건축물과세시가
$('#standardMarketPrice').val('').trigger('focus'); // 시가표준액
$('#standardMarketPrice_top').val('').trigger('focus'); // 시가표준액(상단)
calculateLevyAmount(); // 산정액 계산
}
});
}
@ -831,6 +890,8 @@
$("#adsbmtnEnfcRt").val( totalRateCalc );
$("#adsbmtnEnfcRtDisplay").val( totalRateCalc+" %" );
// 산정액 계산 함수 호출
calculateLevyAmount();
};
})(window, jQuery);

Loading…
Cancel
Save