|
|
|
|
@ -722,64 +722,64 @@
|
|
|
|
|
$('#vltnArea').val(existingData.vltnArea || '').trigger('focus');
|
|
|
|
|
|
|
|
|
|
// 산정률1 설정 (행위유형)
|
|
|
|
|
$('#cmpttnRtDisplay').val((existingData.cmpttnRt || '') + ' %');
|
|
|
|
|
$('#cmpttnRtCd').val(existingData.cmpttnRtCd || '');
|
|
|
|
|
$('#cmpttnRt').val(existingData.cmpttnRt || '');
|
|
|
|
|
$('#cmpttnRtDisplay').val((existingData.cmpttnRt || '') + ' %'); // 산정률 표시 필드 (퍼센트 포함)
|
|
|
|
|
$('#cmpttnRtCd').val(existingData.cmpttnRtCd || ''); // 산정률 코드 설정
|
|
|
|
|
$('#cmpttnRt').val(existingData.cmpttnRt || ''); // 산정률 값 설정
|
|
|
|
|
$('#cmpttnRtRate').val(existingData.cmpttnRtRate || ''); // 계산용 비율값
|
|
|
|
|
|
|
|
|
|
// 기초공사구분 및 비율
|
|
|
|
|
$('#bscsCstrnSeCd').val(existingData.bscsCstrnSeCd || '');
|
|
|
|
|
$('#bscsCstrnRt').val(existingData.bscsCstrnRt || '');
|
|
|
|
|
$('#bscsCstrnSeCd').val(existingData.bscsCstrnSeCd || ''); // 기초공사구분 코드 설정
|
|
|
|
|
$('#bscsCstrnRt').val(existingData.bscsCstrnRt || ''); // 기초공사율 값 설정
|
|
|
|
|
|
|
|
|
|
// 건물기준시가액
|
|
|
|
|
$('#bldgNewPrcCrtrAmtNo').val(existingData.bldgNewPrcCrtrAmtNo || '');
|
|
|
|
|
$('#bldgNewPrcCrtrAmtNo').val(existingData.bldgNewPrcCrtrAmtNo || ''); // 건물기준시가액 번호 설정
|
|
|
|
|
$('#bldgNewPrcCrtrAmtDisplay').val(existingData.bldgNewPrcCrtrAmtDisplay || ''); // 건축물용도명
|
|
|
|
|
$('#bldgNewPrcCrtrAmt').val(existingData.bldgCrtrMprcAmt || '').trigger('focus');
|
|
|
|
|
$('#bldgNewPrcCrtrAmt').val(existingData.bldgCrtrMprcAmt || '').trigger('focus'); // 건물기준시가액 값 설정
|
|
|
|
|
|
|
|
|
|
// 구조지수
|
|
|
|
|
$('#strctIdxCd').val(existingData.strctIdxCd || '');
|
|
|
|
|
$('#strctIdxCd').val(existingData.strctIdxCd || ''); // 구조지수 코드 설정
|
|
|
|
|
$('#strctIdx_nm').val(existingData.strctIdxCdNm || ''); // 구조지수명
|
|
|
|
|
$('#strctIdx').val(existingData.strctIdx || '');
|
|
|
|
|
$('#strctIdx').val(existingData.strctIdx || ''); // 구조지수 값 설정
|
|
|
|
|
|
|
|
|
|
// 용도지수
|
|
|
|
|
$('#usgIdxCd').val(existingData.usgIdxCd || '');
|
|
|
|
|
$('#usgIdxCd').val(existingData.usgIdxCd || ''); // 용도지수 코드 설정
|
|
|
|
|
$('#usgIdx_nm').val(existingData.usgIdxCdNm || ''); // 용도지수명
|
|
|
|
|
$('#usgIdx').val(existingData.usgIdx || '');
|
|
|
|
|
$('#usgIdx').val(existingData.usgIdx || ''); // 용도지수 값 설정
|
|
|
|
|
|
|
|
|
|
// 위치지수
|
|
|
|
|
$('#pstnIdxNo').val(existingData.pstnIdxNo || '');
|
|
|
|
|
$('#pstnIdxNo').val(existingData.pstnIdxNo || ''); // 위치지수 번호 설정
|
|
|
|
|
$('#pstnIdx_nm').val(existingData.oalp || '').trigger('focus').trigger('change'); // 공시지가
|
|
|
|
|
$('#pstnIdx').val(existingData.pstnIdx || '');
|
|
|
|
|
$('#pstnIdx').val(existingData.pstnIdx || ''); // 위치지수 값 설정
|
|
|
|
|
|
|
|
|
|
// 경과년수별잔가율
|
|
|
|
|
$('#elpsYrRdvlrt_yr').val((existingData.elpsYrRdvlrtYr || '') + ' 년'); // 행위시작년도
|
|
|
|
|
$('#elpsYrRdvlrt').val(existingData.elpsYrRdvlrt || '');
|
|
|
|
|
$('#elpsYrRdvlrt').val(existingData.elpsYrRdvlrt || ''); // 경과년수별잔가율 값 설정
|
|
|
|
|
|
|
|
|
|
// 산정률2
|
|
|
|
|
$('#cmpttnRt2Cd').val(existingData.cmpttnRt2Cd || '');
|
|
|
|
|
$('#cmpttnRt2').val(existingData.cmpttnRt2 || '');
|
|
|
|
|
$('#cmpttnRt2Display').val((existingData.cmpttnRt2 || '') + ' %');
|
|
|
|
|
$('#cmpttnRt2Cd').val(existingData.cmpttnRt2Cd || ''); // 산정률2 코드 설정
|
|
|
|
|
$('#cmpttnRt2').val(existingData.cmpttnRt2 || ''); // 산정률2 값 설정
|
|
|
|
|
$('#cmpttnRt2Display').val((existingData.cmpttnRt2 || '') + ' %'); // 산정률2 표시 필드 (퍼센트 포함)
|
|
|
|
|
$('#cmpttnRt2Rate').val(existingData.cmpttnRt2Rate || ''); // 계산용 비율값
|
|
|
|
|
|
|
|
|
|
// 가감산 정보
|
|
|
|
|
$('#adtnRtCd').val(existingData.adtnRtCd || '');
|
|
|
|
|
$('#adtnRt').val(existingData.adtnRt || '');
|
|
|
|
|
$('#adtnRtCd').val(existingData.adtnRtCd || ''); // 가산율 코드 설정
|
|
|
|
|
$('#adtnRt').val(existingData.adtnRt || ''); // 가산율 값 설정
|
|
|
|
|
$('#adtnRtRate').val(existingData.adtnRtRate || ''); // 계산용 비율값
|
|
|
|
|
$('#sbtrRtCd').val(existingData.sbtrRtCd || '');
|
|
|
|
|
$('#sbtrRt').val(existingData.sbtrRt || '');
|
|
|
|
|
$('#sbtrRtCd').val(existingData.sbtrRtCd || ''); // 감산율 코드 설정
|
|
|
|
|
$('#sbtrRt').val(existingData.sbtrRt || ''); // 감산율 값 설정
|
|
|
|
|
$('#sbtrRtRate').val(existingData.sbtrRtRate || ''); // 계산용 비율값
|
|
|
|
|
|
|
|
|
|
// 가감산시행령률
|
|
|
|
|
$('#adsbmtnEnfcRt').val(existingData.adsbmtnEnfcRt || '100');
|
|
|
|
|
$('#adsbmtnEnfcRtDisplay').val((existingData.adsbmtnEnfcRt || '100') + ' %');
|
|
|
|
|
$('#adsbmtnEnfcRt').val(existingData.adsbmtnEnfcRt || '100'); // 가감산시행령률 값 설정
|
|
|
|
|
$('#adsbmtnEnfcRtDisplay').val((existingData.adsbmtnEnfcRt || '100') + ' %'); // 가감산시행령률 표시 필드 (퍼센트 포함)
|
|
|
|
|
|
|
|
|
|
// 산정액 및 부과총액
|
|
|
|
|
$('#cmpttnAmt').val(existingData.cmpttnAmt || '').trigger('focus');
|
|
|
|
|
$('#levyWholAmt').val(existingData.levyWholAmt || '');
|
|
|
|
|
$('#cmpttnAmt').val(existingData.cmpttnAmt || '').trigger('focus'); // 산정액 값 설정
|
|
|
|
|
$('#levyWholAmt').val(existingData.levyWholAmt || ''); // 부과총액 값 설정
|
|
|
|
|
$('#levyWholAmtDisplay').text((existingData.levyWholAmt ? Number(existingData.levyWholAmt).toLocaleString() : '0') + ' 원');
|
|
|
|
|
|
|
|
|
|
// 기존 데이터 로딩 시 계산하기 버튼 숨김 (이미 계산된 결과가 있으므로)
|
|
|
|
|
hideCalculateButton();
|
|
|
|
|
LevyPrvntcPopup.hideCalculateButton(); // 기존 부과정보 로드 시 계산하기 버튼 숨김
|
|
|
|
|
|
|
|
|
|
// 시가표준액
|
|
|
|
|
$('#standardMarketPrice').val(existingData.mprcStdAmt || '').trigger('focus');
|
|
|
|
|
@ -825,10 +825,10 @@
|
|
|
|
|
$('#vltnArea').val(vltnArea).trigger('focus').trigger('change'); // 위반면적, change 이벤트 트리거
|
|
|
|
|
|
|
|
|
|
// 행위유형에 따른 산정률1 설정
|
|
|
|
|
$('#cmpttnRtDisplay').val(rowData.actCmpttnRt+ ' %');
|
|
|
|
|
$('#cmpttnRtCd').val(rowData.actTypeCd);
|
|
|
|
|
$('#cmpttnRt').val(rowData.actCmpttnRt);
|
|
|
|
|
$('#cmpttnRtRate').val(rowData.actCmpttnRtRate);
|
|
|
|
|
$('#cmpttnRtDisplay').val(rowData.actCmpttnRt+ ' %'); // 산정률 표시 필드 (퍼센트 포함)
|
|
|
|
|
$('#cmpttnRtCd').val(rowData.actTypeCd); // 산정률 코드 설정
|
|
|
|
|
$('#cmpttnRt').val(rowData.actCmpttnRt); // 산정률 값 설정
|
|
|
|
|
$('#cmpttnRtRate').val(rowData.actCmpttnRtRate); // 산정률 계산용 비율값 설정
|
|
|
|
|
|
|
|
|
|
$('#bscsCstrnRt').val(''); // 기초공사율
|
|
|
|
|
$('#bscsCstrnSeCd').val(''); // 기초공사구분
|
|
|
|
|
@ -865,7 +865,7 @@
|
|
|
|
|
$('#bscsCstrnSeCd').trigger('change'); // 기초공사구분 변경 이벤트 트리거
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 표시 (값이 변경된 경우)
|
|
|
|
|
showCalculateButton();
|
|
|
|
|
LevyPrvntcPopup.showCalculateButton(); // 신규 행위정보 선택 시 계산하기 버튼 표시
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -936,36 +936,36 @@
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#bscsCstrnSeCd').on('change', function () { // 기초공사구분 변경 시
|
|
|
|
|
var selectedValue = $(this).val();
|
|
|
|
|
var rate = '';
|
|
|
|
|
var selectedValue = $(this).val(); // 선택된 기초공사구분 값 가져오기
|
|
|
|
|
var rate = ''; // 기초공사율 값 저장 변수
|
|
|
|
|
|
|
|
|
|
// 먼저 기존 부과정보에서 온 hidden 값들 확인
|
|
|
|
|
var bscsCstrnYRate = $('#bscsCstrnYBdstCmpttnRt').val();
|
|
|
|
|
var bscsCstrnNRate = $('#bscsCstrnNBdstCmpttnRt').val();
|
|
|
|
|
var dupEtbldgRate = $('#dupEtbldgBdstCmpttnRt').val();
|
|
|
|
|
var bscsCstrnYRate = $('#bscsCstrnYBdstCmpttnRt').val(); // 기초공사Y건축물산정비율 값
|
|
|
|
|
var bscsCstrnNRate = $('#bscsCstrnNBdstCmpttnRt').val(); // 기초공사N건축물산정비율 값
|
|
|
|
|
var dupEtbldgRate = $('#dupEtbldgBdstCmpttnRt').val(); // 복측증축건축물산정비율 값
|
|
|
|
|
|
|
|
|
|
// 기존 부과정보에서 온 값이 있으면 사용, 없으면 그리드에서 조회
|
|
|
|
|
if (bscsCstrnYRate || bscsCstrnNRate || dupEtbldgRate) {
|
|
|
|
|
// 기존 부과정보 기준 비율 사용
|
|
|
|
|
if (selectedValue === '1') {
|
|
|
|
|
rate = bscsCstrnYRate || '';
|
|
|
|
|
} else if (selectedValue === '2') {
|
|
|
|
|
rate = bscsCstrnNRate || '';
|
|
|
|
|
} else if (selectedValue === '3') {
|
|
|
|
|
rate = dupEtbldgRate || '';
|
|
|
|
|
if (selectedValue === '1') { // 기초공사Y인 경우
|
|
|
|
|
rate = bscsCstrnYRate || ''; // 기초공사Y건축물산정비율 사용
|
|
|
|
|
} else if (selectedValue === '2') { // 기초공사N인 경우
|
|
|
|
|
rate = bscsCstrnNRate || ''; // 기초공사N건축물산정비율 사용
|
|
|
|
|
} else if (selectedValue === '3') { // 복측증축인 경우
|
|
|
|
|
rate = dupEtbldgRate || ''; // 복측증축건축물산정비율 사용
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// 그리드에서 현재 선택된 행 데이터 사용
|
|
|
|
|
var focusedCell = self.grid.instance.getFocusedCell();
|
|
|
|
|
var focusedCell = self.grid.instance.getFocusedCell(); // 현재 포커스된 셀 정보 가져오기
|
|
|
|
|
if (focusedCell && focusedCell.rowKey !== null) {
|
|
|
|
|
var rowData = self.grid.instance.getRow(focusedCell.rowKey);
|
|
|
|
|
var rowData = self.grid.instance.getRow(focusedCell.rowKey); // 해당 행의 데이터 가져오기
|
|
|
|
|
if (rowData) {
|
|
|
|
|
if (selectedValue === '1') {
|
|
|
|
|
rate = rowData.bscsCstrnYBdstCmpttnRt || '';
|
|
|
|
|
} else if (selectedValue === '2') {
|
|
|
|
|
rate = rowData.bscsCstrnNBdstCmpttnRt || '';
|
|
|
|
|
} else if (selectedValue === '3') {
|
|
|
|
|
rate = rowData.dupEtbldgBdstCmpttnRt || '';
|
|
|
|
|
if (selectedValue === '1') { // 기초공사Y인 경우
|
|
|
|
|
rate = rowData.bscsCstrnYBdstCmpttnRt || ''; // 그리드에서 기초공사Y건축물산정비율 사용
|
|
|
|
|
} else if (selectedValue === '2') { // 기초공사N인 경우
|
|
|
|
|
rate = rowData.bscsCstrnNBdstCmpttnRt || ''; // 그리드에서 기초공사N건축물산정비율 사용
|
|
|
|
|
} else if (selectedValue === '3') { // 복측증축인 경우
|
|
|
|
|
rate = rowData.dupEtbldgBdstCmpttnRt || ''; // 그리드에서 복측증축건축물산정비율 사용
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -974,37 +974,37 @@
|
|
|
|
|
$('#bscsCstrnRt').val(rate).trigger('focus'); // 기초공사율 설정
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 표시 (값이 변경된 경우)
|
|
|
|
|
showCalculateButton();
|
|
|
|
|
LevyPrvntcPopup.showCalculateButton(); // 기초공사구분 선택 시 계산하기 버튼 표시
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 산정률2 선택 시 산정률2 input에 값 설정
|
|
|
|
|
$('#cmpttnRt2Cd').on('change', function () {
|
|
|
|
|
var selectedOption = $(this).find('option:selected');
|
|
|
|
|
var rateValue = selectedOption.attr('rateValueAttribute');
|
|
|
|
|
var rateValue2 = selectedOption.attr('rateValueAttribute2');
|
|
|
|
|
$('#cmpttnRt2').val(rateValue || '');
|
|
|
|
|
$('#cmpttnRt2Rate').val(rateValue2 || '');
|
|
|
|
|
$('#cmpttnRt2Display').val((rateValue || '') + ' %').trigger('focus');
|
|
|
|
|
var selectedOption = $(this).find('option:selected'); // 선택된 옵션 가져오기
|
|
|
|
|
var rateValue = selectedOption.attr('rateValueAttribute'); // 산정률2 값 가져오기
|
|
|
|
|
var rateValue2 = selectedOption.attr('rateValueAttribute2'); // 산정률2 계산용 비율값 가져오기
|
|
|
|
|
$('#cmpttnRt2').val(rateValue || ''); // 산정률2 값 설정
|
|
|
|
|
$('#cmpttnRt2Rate').val(rateValue2 || ''); // 산정률2 계산용 비율값 설정
|
|
|
|
|
$('#cmpttnRt2Display').val((rateValue || '') + ' %').trigger('focus'); // 산정률2 표시 필드 설정
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 표시 (값이 변경된 경우)
|
|
|
|
|
showCalculateButton();
|
|
|
|
|
LevyPrvntcPopup.showCalculateButton(); // 산정률2 선택 시 계산하기 버튼 표시
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 위반면적 변경 시 계산하기 버튼 표시
|
|
|
|
|
$('#vltnArea').on('change keyup', function() {
|
|
|
|
|
showCalculateButton();
|
|
|
|
|
LevyPrvntcPopup.showCalculateButton(); // 위반면적 변경 시 계산하기 버튼 표시
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 계산에 사용되는 입력 필드 변경 시 계산하기 버튼 표시 (기초공사율 포함)
|
|
|
|
|
var calculationInputs = '#bldgNewPrcCrtrAmt, #strctIdx, #usgIdx, #pstnIdx, #elpsYrRdvlrt, #bscsCstrnRt';
|
|
|
|
|
var calculationInputs = '#bldgNewPrcCrtrAmt, #strctIdx, #usgIdx, #pstnIdx, #elpsYrRdvlrt, #bscsCstrnRt'; // 계산 관련 입력 필드들
|
|
|
|
|
$(document).on('change', calculationInputs, function() {
|
|
|
|
|
showCalculateButton();
|
|
|
|
|
LevyPrvntcPopup.showCalculateButton(); // 계산 관련 필드 변경 시 계산하기 버튼 표시
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 클릭 이벤트
|
|
|
|
|
$('#btnCalculate').on('click', function() {
|
|
|
|
|
performCalculation();
|
|
|
|
|
LevyPrvntcPopup.performCalculation(); // 계산하기 버튼 클릭 시 통합 계산 실행
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
@ -1128,42 +1128,42 @@
|
|
|
|
|
*/
|
|
|
|
|
collectFormData: function() {
|
|
|
|
|
return {
|
|
|
|
|
mode: $('#mode').val(),
|
|
|
|
|
levyInfoId: LevyPrvntcPopup.levyInfoIdSelect || null,
|
|
|
|
|
crdnYr: $('#crdnYr').val(),
|
|
|
|
|
crdnNo: $('#crdnNo').val(),
|
|
|
|
|
impltInfoId: $('#impltInfoId').val(),
|
|
|
|
|
impltTaskSeCd: this.impltTaskSeCd,
|
|
|
|
|
actInfoId: $('#actInfoId').val(),
|
|
|
|
|
pstnInfoId: $('#pstnInfoId').val(),
|
|
|
|
|
sggCd: $('#sggCd').val() || '000',
|
|
|
|
|
docNo: $('#docNo').val() || null,
|
|
|
|
|
impltCpsrAmt: $('#impltCpsrAmt').val() || null,
|
|
|
|
|
mprcStdAmt: $('#standardMarketPrice').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
vltnArea: $('#vltnArea').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
adtnRtCd: $('#adtnRtCd').val() || null,
|
|
|
|
|
adtnRt: $('#adtnRt').val() || null,
|
|
|
|
|
sbtrRtCd: $('#sbtrRtCd').val() || null,
|
|
|
|
|
sbtrRt: $('#sbtrRt').val() || null,
|
|
|
|
|
adsbmtnEnfcRt: $('#adsbmtnEnfcRt').val() || '100',
|
|
|
|
|
cmpttnRtCd: $('#cmpttnRtCd').val() || null,
|
|
|
|
|
cmpttnRt: $('#cmpttnRt').val() || null,
|
|
|
|
|
cmpttnRt2Cd: $('#cmpttnRt2Cd').val() || null,
|
|
|
|
|
cmpttnRt2: $('#cmpttnRt2').val() || null,
|
|
|
|
|
cmpttnAmt: $('#cmpttnAmt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
levyWholAmt: $('#levyWholAmt').val() || '0',
|
|
|
|
|
bldgNewPrcCrtrAmtNo: $('#bldgNewPrcCrtrAmtNo').val() || null,
|
|
|
|
|
bldgCrtrMprcAmt: $('#bldgNewPrcCrtrAmt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
strctIdxCd: $('#strctIdxCd').val() || null,
|
|
|
|
|
strctIdx: $('#strctIdx').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
usgIdxCd: $('#usgIdxCd').val() || null,
|
|
|
|
|
usgIdx: $('#usgIdx').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
pstnIdxNo: $('#pstnIdxNo').val() || null,
|
|
|
|
|
pstnIdx: $('#pstnIdx').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
elpsYrRdvlrt: $('#elpsYrRdvlrt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
bscsCstrnSeCd: $('#bscsCstrnSeCd').val() || null,
|
|
|
|
|
bscsCstrnRt: $('#bscsCstrnRt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
bdstTxtnMprc: $('#taxableMarketPrice').inputmask('unmaskedvalue') || '0'
|
|
|
|
|
mode: $('#mode').val(), // 모드 (C:등록, U:수정, V:보기)
|
|
|
|
|
levyInfoId: LevyPrvntcPopup.levyInfoIdSelect || null, // 부과정보 ID (수정 시 사용)
|
|
|
|
|
crdnYr: $('#crdnYr').val(), // 단속연도
|
|
|
|
|
crdnNo: $('#crdnNo').val(), // 단속번호
|
|
|
|
|
impltInfoId: $('#impltInfoId').val(), // 이행정보 ID
|
|
|
|
|
impltTaskSeCd: this.impltTaskSeCd, // 이행업무구분코드
|
|
|
|
|
actInfoId: $('#actInfoId').val(), // 행위정보 ID
|
|
|
|
|
pstnInfoId: $('#pstnInfoId').val(), // 위치정보 ID
|
|
|
|
|
sggCd: $('#sggCd').val() || '000', // 시군구코드
|
|
|
|
|
docNo: $('#docNo').val() || null, // 문서번호
|
|
|
|
|
impltCpsrAmt: $('#impltCpsrAmt').val() || null, // 이행강제금액
|
|
|
|
|
mprcStdAmt: $('#standardMarketPrice').inputmask('unmaskedvalue') || '0', // 시가표준액
|
|
|
|
|
vltnArea: $('#vltnArea').inputmask('unmaskedvalue') || '0', // 위반면적
|
|
|
|
|
adtnRtCd: $('#adtnRtCd').val() || null, // 가산율 코드
|
|
|
|
|
adtnRt: $('#adtnRt').val() || null, // 가산율 값
|
|
|
|
|
sbtrRtCd: $('#sbtrRtCd').val() || null, // 감산율 코드
|
|
|
|
|
sbtrRt: $('#sbtrRt').val() || null, // 감산율 값
|
|
|
|
|
adsbmtnEnfcRt: $('#adsbmtnEnfcRt').val() || '100', // 가감산시행령률
|
|
|
|
|
cmpttnRtCd: $('#cmpttnRtCd').val() || null, // 산정률 코드
|
|
|
|
|
cmpttnRt: $('#cmpttnRt').val() || null, // 산정률 값
|
|
|
|
|
cmpttnRt2Cd: $('#cmpttnRt2Cd').val() || null, // 산정률2 코드
|
|
|
|
|
cmpttnRt2: $('#cmpttnRt2').val() || null, // 산정률2 값
|
|
|
|
|
cmpttnAmt: $('#cmpttnAmt').inputmask('unmaskedvalue') || '0', // 산정액
|
|
|
|
|
levyWholAmt: $('#levyWholAmt').val() || '0', // 부과총액
|
|
|
|
|
bldgNewPrcCrtrAmtNo: $('#bldgNewPrcCrtrAmtNo').val() || null, // 건물기준시가액 번호
|
|
|
|
|
bldgCrtrMprcAmt: $('#bldgNewPrcCrtrAmt').inputmask('unmaskedvalue') || '0', // 건물기준시가액
|
|
|
|
|
strctIdxCd: $('#strctIdxCd').val() || null, // 구조지수 코드
|
|
|
|
|
strctIdx: $('#strctIdx').inputmask('unmaskedvalue') || '0', // 구조지수 값
|
|
|
|
|
usgIdxCd: $('#usgIdxCd').val() || null, // 용도지수 코드
|
|
|
|
|
usgIdx: $('#usgIdx').inputmask('unmaskedvalue') || '0', // 용도지수 값
|
|
|
|
|
pstnIdxNo: $('#pstnIdxNo').val() || null, // 위치지수 번호
|
|
|
|
|
pstnIdx: $('#pstnIdx').inputmask('unmaskedvalue') || '0', // 위치지수 값
|
|
|
|
|
elpsYrRdvlrt: $('#elpsYrRdvlrt').inputmask('unmaskedvalue') || '0', // 경과년수별잔가율
|
|
|
|
|
bscsCstrnSeCd: $('#bscsCstrnSeCd').val() || null, // 기초공사구분 코드
|
|
|
|
|
bscsCstrnRt: $('#bscsCstrnRt').inputmask('unmaskedvalue') || '0', // 기초공사율 값
|
|
|
|
|
bdstTxtnMprc: $('#taxableMarketPrice').inputmask('unmaskedvalue') || '0' // 건축물과세시가
|
|
|
|
|
};
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
@ -1282,273 +1282,264 @@
|
|
|
|
|
let rateForTotal = 100;
|
|
|
|
|
|
|
|
|
|
if (type === '1') { // '1' for 가산(add)
|
|
|
|
|
$('#adtnRtCd').val(selectedRow.adsbmtnRtCd);
|
|
|
|
|
$('#adtnRt').val(rate);
|
|
|
|
|
$('#adtnRtRate').val(rateForCalc);
|
|
|
|
|
$('#btnOpenAddPopup').text('+ 가산 [' + rateForDisplay + ']');
|
|
|
|
|
$('#adtnRtCd').val(selectedRow.adsbmtnRtCd); // 가산율 코드 설정
|
|
|
|
|
$('#adtnRt').val(rate); // 가산율 값 설정
|
|
|
|
|
$('#adtnRtRate').val(rateForCalc); // 가산율 계산용 비율값 설정
|
|
|
|
|
$('#btnOpenAddPopup').text('+ 가산 [' + rateForDisplay + ']'); // 가산 버튼 텍스트 업데이트
|
|
|
|
|
|
|
|
|
|
} else if (type === '2') { // '2' for 감산(minus)
|
|
|
|
|
$('#sbtrRtCd').val(selectedRow.adsbmtnRtCd);
|
|
|
|
|
$('#sbtrRt').val(rate);
|
|
|
|
|
$('#sbtrRtRate').val(rateForCalc);
|
|
|
|
|
$('#btnOpenMinusPopup').text('- 감산 [' + rateForDisplay + ']');
|
|
|
|
|
$('#sbtrRtCd').val(selectedRow.adsbmtnRtCd); // 감산율 코드 설정
|
|
|
|
|
$('#sbtrRt').val(rate); // 감산율 값 설정
|
|
|
|
|
$('#sbtrRtRate').val(rateForCalc); // 감산율 계산용 비율값 설정
|
|
|
|
|
$('#btnOpenMinusPopup').text('- 감산 [' + rateForDisplay + ']'); // 감산 버튼 텍스트 업데이트
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var addRate = $('#adtnRt').val();
|
|
|
|
|
var minusRate = $('#sbtrRt').val();
|
|
|
|
|
const totalRateCalcAdd = parseFloat(addRate) || 0;
|
|
|
|
|
const totalRateCalcMinus = parseFloat(minusRate) || 0;
|
|
|
|
|
const totalRateCalc = 100 + totalRateCalcAdd - totalRateCalcMinus;
|
|
|
|
|
var addRate = $('#adtnRt').val(); // 현재 설정된 가산율 값 가져오기
|
|
|
|
|
var minusRate = $('#sbtrRt').val(); // 현재 설정된 감산율 값 가져오기
|
|
|
|
|
const totalRateCalcAdd = parseFloat(addRate) || 0; // 가산율을 숫자로 변환
|
|
|
|
|
const totalRateCalcMinus = parseFloat(minusRate) || 0; // 감산율을 숫자로 변환
|
|
|
|
|
const totalRateCalc = 100 + totalRateCalcAdd - totalRateCalcMinus; // 최종 가감산시행령률 계산 (100% + 가산율 - 감산율)
|
|
|
|
|
|
|
|
|
|
$("#adsbmtnEnfcRt").val( totalRateCalc );
|
|
|
|
|
$("#adsbmtnEnfcRtDisplay").val( totalRateCalc+" %" );
|
|
|
|
|
$("#adsbmtnEnfcRt").val( totalRateCalc ); // 가감산시행령률 hidden 필드에 계산된 비율 값 설정
|
|
|
|
|
$("#adsbmtnEnfcRtDisplay").val( totalRateCalc+" %" ); // 가감산시행령률 표시 필드에 퍼센트 포함하여 설정
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 표시 (값이 변경된 경우)
|
|
|
|
|
showCalculateButton();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
LevyPrvntcPopup.showCalculateButton(); // 가감산시행령률 표시 영역 업데이트 후 계산하기 버튼 표시
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// ========================================
|
|
|
|
|
// 6. 계산 관련 유틸리티 함수들
|
|
|
|
|
// ========================================
|
|
|
|
|
/**
|
|
|
|
|
* 계산하기 버튼 표시 함수
|
|
|
|
|
* 중요로직: select box 값이 변경되었을 때 계산하기 버튼을 표시합니다.
|
|
|
|
|
*/
|
|
|
|
|
showCalculateButton: function() {
|
|
|
|
|
var btnCalculate = $('#btnCalculate'); // 계산하기 버튼 DOM 요소
|
|
|
|
|
if (btnCalculate.length > 0) {
|
|
|
|
|
btnCalculate.show().addClass('btn-highlight');
|
|
|
|
|
|
|
|
|
|
// ========================================
|
|
|
|
|
// 🧮 계산하기 버튼 방식 계산 시스템
|
|
|
|
|
// ========================================
|
|
|
|
|
// 건축물 과세시가, 시가표준액(상단), 시가표준액(하단), 산정액 값 초기화 처리
|
|
|
|
|
// 오류 시 필드 초기화
|
|
|
|
|
$('#taxableMarketPrice').val('').trigger('focus'); // 건축물과세시가 필드 초기화
|
|
|
|
|
$('#standardMarketPrice').val('').trigger('focus'); // 시가표준액(상단) 필드 초기화
|
|
|
|
|
$('#standardMarketPrice_bottom').val('').trigger('focus'); // 시가표준액(하단) 필드 초기화
|
|
|
|
|
$('#cmpttnAmt').val('').trigger('focus'); // 산정액 필드 초기화
|
|
|
|
|
$('#levyWholAmt').val(''); // 부과총액 hidden 필드 초기화
|
|
|
|
|
$('#levyWholAmtDisplay').text('0 원'); // 부과총액 표시 영역 초기화
|
|
|
|
|
|
|
|
|
|
console.log('🔄 계산하기 버튼 표시됨 - 값이 변경됨');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 계산하기 버튼 표시 함수
|
|
|
|
|
* 중요로직: select box 값이 변경되었을 때 계산하기 버튼을 표시합니다.
|
|
|
|
|
*/
|
|
|
|
|
function showCalculateButton() {
|
|
|
|
|
var btnCalculate = $('#btnCalculate');
|
|
|
|
|
if (btnCalculate.length > 0) {
|
|
|
|
|
btnCalculate.show().addClass('btn-highlight');
|
|
|
|
|
|
|
|
|
|
//건축물 과세시가, 시가표준액(상단), 시가표준액(하단), 산정액 값 초기화 처리
|
|
|
|
|
// 오류 시 필드 초기화
|
|
|
|
|
$('#taxableMarketPrice').val('').trigger('focus');
|
|
|
|
|
$('#standardMarketPrice').val('').trigger('focus');
|
|
|
|
|
$('#standardMarketPrice_bottom').val('').trigger('focus');
|
|
|
|
|
$('#cmpttnAmt').val('').trigger('focus');
|
|
|
|
|
$('#levyWholAmt').val('');
|
|
|
|
|
$('#levyWholAmtDisplay').text('0 원');
|
|
|
|
|
|
|
|
|
|
console.log('🔄 계산하기 버튼 표시됨 - 값이 변경됨');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 계산하기 버튼 숨김 함수
|
|
|
|
|
* 중요로직: 계산이 완료되었을 때 계산하기 버튼을 숨깁니다.
|
|
|
|
|
*/
|
|
|
|
|
hideCalculateButton: function() {
|
|
|
|
|
var btnCalculate = $('#btnCalculate'); // 계산하기 버튼 DOM 요소
|
|
|
|
|
if (btnCalculate.length > 0) {
|
|
|
|
|
btnCalculate.hide().removeClass('btn-highlight');
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 계산하기 버튼 숨김 함수
|
|
|
|
|
* 중요로직: 계산이 완료되었을 때 계산하기 버튼을 숨깁니다.
|
|
|
|
|
*/
|
|
|
|
|
function hideCalculateButton() {
|
|
|
|
|
var btnCalculate = $('#btnCalculate');
|
|
|
|
|
if (btnCalculate.length > 0) {
|
|
|
|
|
btnCalculate.hide().removeClass('btn-highlight');
|
|
|
|
|
console.log('✅ 계산하기 버튼 숨김됨 - 계산 완료');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
console.log('✅ 계산하기 버튼 숨김 - 계산 완료됨');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 계산 수행 함수 - 단일 API 호출
|
|
|
|
|
* 중요로직: 모든 필수값 validation 후 단일 API로 모든 계산을 한번에 수행합니다.
|
|
|
|
|
* - 감산, 가산은 선택사항 (기본 100%)
|
|
|
|
|
* - 나머지는 모두 필수
|
|
|
|
|
*/
|
|
|
|
|
function performCalculation() {
|
|
|
|
|
console.log('🧮 통합 계산하기 버튼 클릭됨');
|
|
|
|
|
|
|
|
|
|
// 1. 필수값 validation
|
|
|
|
|
var validationResult = validateCalculationInputs();
|
|
|
|
|
if (!validationResult.isValid) {
|
|
|
|
|
alert(validationResult.message);
|
|
|
|
|
if (validationResult.focusElement) {
|
|
|
|
|
$(validationResult.focusElement).focus();
|
|
|
|
|
/**
|
|
|
|
|
* 통합 계산 함수 - 건축물과세시가부터 부과총액까지 한번에 계산
|
|
|
|
|
* 중요로직: 모든 필수값 validation 후 단일 API로 모든 계산을 한번에 수행합니다.
|
|
|
|
|
*/
|
|
|
|
|
performCalculation: function() {
|
|
|
|
|
console.log('🧮 통합 계산하기 버튼 클릭됨');
|
|
|
|
|
|
|
|
|
|
// 1. 필수값 validation
|
|
|
|
|
var validationResult = this.validateCalculationInputs(); // validation 함수 호출
|
|
|
|
|
if (!validationResult.isValid) {
|
|
|
|
|
alert(validationResult.message); // 오류 메시지 표시
|
|
|
|
|
if (validationResult.focusElement) {
|
|
|
|
|
$(validationResult.focusElement).focus(); // 문제 필드로 포커스 이동
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 2. 입력값 수집
|
|
|
|
|
var params = collectAllCalculationInputs();
|
|
|
|
|
console.log('📊 수집된 통합 계산 파라미터:', params);
|
|
|
|
|
|
|
|
|
|
// 3. 로딩 상태 표시
|
|
|
|
|
$('#levyWholAmtDisplay').text('계산 중...');
|
|
|
|
|
$('#btnCalculate').prop('disabled', true).text('계산 중...');
|
|
|
|
|
|
|
|
|
|
// 4. 단일 API 호출로 모든 계산 수행
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: '<c:url value="/crdn/crndRegistAndView/crdnLevyPrvntc/calculateAll.ajax"/>',
|
|
|
|
|
type: 'POST',
|
|
|
|
|
data: params,
|
|
|
|
|
success: function(response) {
|
|
|
|
|
if (response && response.success && response.data) {
|
|
|
|
|
var data = response.data;
|
|
|
|
|
|
|
|
|
|
// 모든 결과값을 한번에 설정
|
|
|
|
|
// 1. 건축물과세시가
|
|
|
|
|
$('#taxableMarketPrice').val(data.bdstTxtnMprc).trigger('focus');
|
|
|
|
|
|
|
|
|
|
// 2. 시가표준액
|
|
|
|
|
$('#standardMarketPrice').val(data.mprcStdAmt).trigger('focus');
|
|
|
|
|
$('#standardMarketPrice_bottom').val(data.mprcStdAmt).trigger('focus');
|
|
|
|
|
|
|
|
|
|
// 3. 산정액
|
|
|
|
|
$('#cmpttnAmt').val(parseInt(data.cmpttnAmt)).trigger('focus');
|
|
|
|
|
|
|
|
|
|
// 4. 부과총액
|
|
|
|
|
$('#levyWholAmt').val(parseInt(data.levyWholAmt));
|
|
|
|
|
$('#levyWholAmtDisplay').text(data.levyWholAmtDisplay);
|
|
|
|
|
|
|
|
|
|
console.log('✅ 통합 계산 완료!', {
|
|
|
|
|
건축물과세시가: data.bdstTxtnMprc,
|
|
|
|
|
시가표준액: data.mprcStdAmt,
|
|
|
|
|
산정액: data.cmpttnAmt,
|
|
|
|
|
부과총액: data.levyWholAmt
|
|
|
|
|
});
|
|
|
|
|
// 2. 입력값 수집
|
|
|
|
|
var params = this.collectAllCalculationInputs(); // 계산 파라미터 수집
|
|
|
|
|
console.log('📊 수집된 통합 계산 파라미터:', params);
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 숨김
|
|
|
|
|
hideCalculateButton();
|
|
|
|
|
// 3. UI 로딩 상태 표시
|
|
|
|
|
$('#levyWholAmtDisplay').text('계산 중...'); // 부과총액 표시 영역에 로딩 메시지
|
|
|
|
|
$('#btnCalculate').prop('disabled', true).text('계산 중...'); // 계산하기 버튼 비활성화
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error(response.message || '서버에서 올바른 계산 결과를 받지 못했습니다.');
|
|
|
|
|
// 4. 단일 API 호출로 모든 계산 수행
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: '<c:url value="/crdn/crndRegistAndView/crdnLevyPrvntc/calculateAll.ajax"/>',
|
|
|
|
|
type: 'POST',
|
|
|
|
|
data: params,
|
|
|
|
|
success: function(response) {
|
|
|
|
|
if (response && response.success && response.data) {
|
|
|
|
|
var data = response.data; // 계산 결과 데이터
|
|
|
|
|
|
|
|
|
|
// 모든 결과값을 한번에 설정
|
|
|
|
|
// 1. 건축물과세시가
|
|
|
|
|
$('#taxableMarketPrice').val(data.bdstTxtnMprc).trigger('focus'); // 건축물과세시가 결과값 설정
|
|
|
|
|
|
|
|
|
|
// 2. 시가표준액
|
|
|
|
|
$('#standardMarketPrice').val(data.mprcStdAmt).trigger('focus'); // 시가표준액(상단) 결과값 설정
|
|
|
|
|
$('#standardMarketPrice_bottom').val(data.mprcStdAmt).trigger('focus'); // 시가표준액(하단) 결과값 설정
|
|
|
|
|
|
|
|
|
|
// 3. 산정액
|
|
|
|
|
$('#cmpttnAmt').val(parseInt(data.cmpttnAmt)).trigger('focus'); // 산정액 결과값 설정
|
|
|
|
|
|
|
|
|
|
// 4. 부과총액
|
|
|
|
|
$('#levyWholAmt').val(parseInt(data.levyWholAmt)); // 부과총액 hidden 필드 설정
|
|
|
|
|
$('#levyWholAmtDisplay').text(data.levyWholAmtDisplay); // 부과총액 표시 영역 설정
|
|
|
|
|
|
|
|
|
|
console.log('✅ 통합 계산 완료!', {
|
|
|
|
|
건축물과세시가: data.bdstTxtnMprc,
|
|
|
|
|
시가표준액: data.mprcStdAmt,
|
|
|
|
|
산정액: data.cmpttnAmt,
|
|
|
|
|
부과총액: data.levyWholAmt
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 계산하기 버튼 숨김
|
|
|
|
|
LevyPrvntcPopup.hideCalculateButton();
|
|
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
throw new Error(response.message || '서버에서 올바른 계산 결과를 받지 못했습니다.');
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function(xhr, status, error) {
|
|
|
|
|
console.error('❌ 통합 계산 오류:', error);
|
|
|
|
|
alert('계산 중 오류가 발생했습니다.');
|
|
|
|
|
|
|
|
|
|
// 오류 시 필드 초기화
|
|
|
|
|
$('#taxableMarketPrice').val('').trigger('focus'); // 건축물과세시가 필드 초기화
|
|
|
|
|
$('#standardMarketPrice').val('').trigger('focus'); // 시가표준액(상단) 필드 초기화
|
|
|
|
|
$('#standardMarketPrice_bottom').val('').trigger('focus'); // 시가표준액(하단) 필드 초기화
|
|
|
|
|
$('#cmpttnAmt').val('').trigger('focus'); // 산정액 필드 초기화
|
|
|
|
|
$('#levyWholAmt').val(''); // 부과총액 hidden 필드 초기화
|
|
|
|
|
$('#levyWholAmtDisplay').text('0 원'); // 부과총액 표시 영역 초기화
|
|
|
|
|
},
|
|
|
|
|
complete: function() {
|
|
|
|
|
// 버튼 상태 복원
|
|
|
|
|
$('#btnCalculate').prop('disabled', false).text('계산하기'); // 계산하기 버튼 활성화 복원
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
error: function(xhr, status, error) {
|
|
|
|
|
console.error('❌ 통합 계산 오류:', error);
|
|
|
|
|
alert('계산 중 오류가 발생했습니다.');
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 오류 시 필드 초기화
|
|
|
|
|
$('#taxableMarketPrice').val('').trigger('focus');
|
|
|
|
|
$('#standardMarketPrice').val('').trigger('focus');
|
|
|
|
|
$('#standardMarketPrice_bottom').val('').trigger('focus');
|
|
|
|
|
$('#cmpttnAmt').val('').trigger('focus');
|
|
|
|
|
$('#levyWholAmt').val('');
|
|
|
|
|
$('#levyWholAmtDisplay').text('0 원');
|
|
|
|
|
},
|
|
|
|
|
complete: function() {
|
|
|
|
|
// 로딩 상태 해제
|
|
|
|
|
$('#btnCalculate').prop('disabled', false).text('계산하기');
|
|
|
|
|
/**
|
|
|
|
|
* 통합 계산 필수값 검증 함수
|
|
|
|
|
* 중요로직: 건축물과세시가 계산부터 부과총액까지 전체 계산에 필요한 모든 필수값을 검증합니다.
|
|
|
|
|
*/
|
|
|
|
|
validateCalculationInputs: function() {
|
|
|
|
|
// 1. 건축물과세시가 계산에 필요한 값들 검증
|
|
|
|
|
var bldgNewPrcCrtrAmt = $('#bldgNewPrcCrtrAmt').inputmask('unmaskedvalue') || '0'; // 건물기준시가액
|
|
|
|
|
if (!bldgNewPrcCrtrAmt || parseFloat(bldgNewPrcCrtrAmt) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '건물기준시가액을 입력해주세요.',
|
|
|
|
|
focusElement: '#bldgNewPrcCrtrAmt'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 통합 계산 입력값 validation 함수
|
|
|
|
|
* 중요로직: 건축물과세시가 계산부터 부과총액까지 전체 계산에 필요한 모든 필수값을 검증합니다.
|
|
|
|
|
*/
|
|
|
|
|
function validateCalculationInputs() {
|
|
|
|
|
// 1. 건축물과세시가 계산에 필요한 값들 검증
|
|
|
|
|
var bldgNewPrcCrtrAmt = $('#bldgNewPrcCrtrAmt').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!bldgNewPrcCrtrAmt || parseFloat(bldgNewPrcCrtrAmt) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '건물기준시가액을 입력해주세요.',
|
|
|
|
|
focusElement: '#bldgNewPrcCrtrAmt'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
var strctIdx = $('#strctIdx').inputmask('unmaskedvalue') || '0'; // 구조지수
|
|
|
|
|
if (!strctIdx || parseFloat(strctIdx) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '구조지수를 입력해주세요.',
|
|
|
|
|
focusElement: '#strctIdx'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var strctIdx = $('#strctIdx').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!strctIdx || parseFloat(strctIdx) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '구조지수를 입력해주세요.',
|
|
|
|
|
focusElement: '#strctIdx'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
var usgIdx = $('#usgIdx').inputmask('unmaskedvalue') || '0'; // 용도지수
|
|
|
|
|
if (!usgIdx || parseFloat(usgIdx) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '용도지수를 입력해주세요.',
|
|
|
|
|
focusElement: '#usgIdx'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var usgIdx = $('#usgIdx').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!usgIdx || parseFloat(usgIdx) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '용도지수를 입력해주세요.',
|
|
|
|
|
focusElement: '#usgIdx'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
var pstnIdx = $('#pstnIdx').inputmask('unmaskedvalue') || '0'; // 위치지수
|
|
|
|
|
if (!pstnIdx || parseFloat(pstnIdx) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '위치지수를 입력해주세요.',
|
|
|
|
|
focusElement: '#pstnIdx'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var pstnIdx = $('#pstnIdx').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!pstnIdx || parseFloat(pstnIdx) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '위치지수를 입력해주세요.',
|
|
|
|
|
focusElement: '#pstnIdx'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
var elpsYrRdvlrt = $('#elpsYrRdvlrt').inputmask('unmaskedvalue') || '0'; // 경과년수별잔가율
|
|
|
|
|
if (!elpsYrRdvlrt || parseFloat(elpsYrRdvlrt) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '경과년수별잔가율을 입력해주세요.',
|
|
|
|
|
focusElement: '#elpsYrRdvlrt'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var elpsYrRdvlrt = $('#elpsYrRdvlrt').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!elpsYrRdvlrt || parseFloat(elpsYrRdvlrt) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '경과년수별잔가율을 입력해주세요.',
|
|
|
|
|
focusElement: '#elpsYrRdvlrt'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
var bscsCstrnRt = $('#bscsCstrnRt').inputmask('unmaskedvalue') || '0'; // 기초공사율
|
|
|
|
|
if (!bscsCstrnRt || parseFloat(bscsCstrnRt) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '기초공사율을 선택해주세요.',
|
|
|
|
|
focusElement: '#bscsCstrnSeCd'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var bscsCstrnRt = $('#bscsCstrnRt').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!bscsCstrnRt || parseFloat(bscsCstrnRt) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '기초공사율을 선택해주세요.',
|
|
|
|
|
focusElement: '#bscsCstrnSeCd'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
// 2. 위반면적 검증
|
|
|
|
|
var vltnArea = $('#vltnArea').inputmask('unmaskedvalue') || '0'; // 위반면적
|
|
|
|
|
if (!vltnArea || parseFloat(vltnArea) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '위반면적을 입력해주세요.',
|
|
|
|
|
focusElement: '#vltnArea'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 2. 위반면적 검증
|
|
|
|
|
var vltnArea = $('#vltnArea').inputmask('unmaskedvalue') || '0';
|
|
|
|
|
if (!vltnArea || parseFloat(vltnArea) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '위반면적을 입력해주세요.',
|
|
|
|
|
focusElement: '#vltnArea'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
// 3. 산정률 검증
|
|
|
|
|
var cmpttnRtRate = $('#cmpttnRtRate').val(); // 산정률 비율값
|
|
|
|
|
if (!cmpttnRtRate || parseFloat(cmpttnRtRate) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '산정률을 선택해주세요.',
|
|
|
|
|
focusElement: '#cmpttnRtCd'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 3. 산정률 검증
|
|
|
|
|
var cmpttnRtRate = $('#cmpttnRtRate').val();
|
|
|
|
|
if (!cmpttnRtRate || parseFloat(cmpttnRtRate) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '산정률을 선택해주세요.',
|
|
|
|
|
focusElement: '#cmpttnRtCd'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
// 4. 산정률2 검증
|
|
|
|
|
var cmpttnRt2Rate = $('#cmpttnRt2Rate').val(); // 산정률2 비율값
|
|
|
|
|
if (!cmpttnRt2Rate || parseFloat(cmpttnRt2Rate) <= 0) {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '산정률2를 선택해주세요.',
|
|
|
|
|
focusElement: '#cmpttnRt2Cd'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 4. 산정률2 검증
|
|
|
|
|
var cmpttnRt2Rate = $('#cmpttnRt2Rate').val();
|
|
|
|
|
if (!cmpttnRt2Rate || parseFloat(cmpttnRt2Rate) <= 0) {
|
|
|
|
|
return { isValid: true }; // 모든 검증 통과
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 통합 계산에 필요한 모든 입력값 수집 함수
|
|
|
|
|
* 중요로직: 건축물과세시가부터 부과총액까지 계산에 필요한 모든 파라미터를 수집합니다.
|
|
|
|
|
*/
|
|
|
|
|
collectAllCalculationInputs: function() {
|
|
|
|
|
return {
|
|
|
|
|
isValid: false,
|
|
|
|
|
message: '산정률2를 선택해주세요.',
|
|
|
|
|
focusElement: '#cmpttnRt2Cd'
|
|
|
|
|
// 건축물과세시가 계산용 파라미터
|
|
|
|
|
bldgNewPrcCrtrAmt: $('#bldgNewPrcCrtrAmt').inputmask('unmaskedvalue') || '0', // 건물기준시가액
|
|
|
|
|
strctIdx: $('#strctIdx').inputmask('unmaskedvalue') || '0', // 구조지수
|
|
|
|
|
usgIdx: $('#usgIdx').inputmask('unmaskedvalue') || '0', // 용도지수
|
|
|
|
|
pstnIdx: $('#pstnIdx').inputmask('unmaskedvalue') || '0', // 위치지수
|
|
|
|
|
elpsYrRdvlrt: $('#elpsYrRdvlrt').inputmask('unmaskedvalue') || '0', // 경과년수별잔가율
|
|
|
|
|
bscsCstrnRt: $('#bscsCstrnRt').inputmask('unmaskedvalue') || '0', // 기초공사율
|
|
|
|
|
|
|
|
|
|
// 산정액/부과총액 계산용 파라미터
|
|
|
|
|
vltnArea: $('#vltnArea').inputmask('unmaskedvalue') || '0', // 위반면적
|
|
|
|
|
adsbmtnEnfcRt: $('#adsbmtnEnfcRt').val() || '100', // 가감산시행령률
|
|
|
|
|
cmpttnRtRate: $('#cmpttnRtRate').val() || '0', // 산정률 비율값
|
|
|
|
|
cmpttnRt2Rate: $('#cmpttnRt2Rate').val() || '0' // 산정률2 비율값
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return { isValid: true };
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 통합 계산용 입력값 수집 함수
|
|
|
|
|
* 중요로직: 모든 계산에 필요한 파라미터를 한번에 수집합니다.
|
|
|
|
|
*/
|
|
|
|
|
function collectAllCalculationInputs() {
|
|
|
|
|
return {
|
|
|
|
|
// 건축물과세시가 계산용 파라미터
|
|
|
|
|
bldgNewPrcCrtrAmt: $('#bldgNewPrcCrtrAmt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
strctIdx: $('#strctIdx').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
usgIdx: $('#usgIdx').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
pstnIdx: $('#pstnIdx').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
elpsYrRdvlrt: $('#elpsYrRdvlrt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
bscsCstrnRt: $('#bscsCstrnRt').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
|
|
|
|
|
// 산정액/부과총액 계산용 파라미터
|
|
|
|
|
vltnArea: $('#vltnArea').inputmask('unmaskedvalue') || '0',
|
|
|
|
|
adsbmtnEnfcRt: $('#adsbmtnEnfcRt').val() || '100',
|
|
|
|
|
cmpttnRtRate: $('#cmpttnRtRate').val() || '0',
|
|
|
|
|
cmpttnRt2Rate: $('#cmpttnRt2Rate').val() || '0'
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// ========================================
|
|
|
|
|
|