부과예고, 이행정보 삭제 처리 오타 수정, 팝업페이지 스크립트 상세 주석 추가

dev
박성영 3 months ago
parent e0a2370771
commit 7b4bb0d621

@ -335,7 +335,7 @@
UPDATE tb_levy_info UPDATE tb_levy_info
SET DEL_YN = 'Y', SET DEL_YN = 'Y',
DEL_DT = NOW(), DEL_DT = NOW(),
DLTR = #{userId} DLTR = #{dltr}
WHERE LEVY_INFO_ID = #{levyInfoId} WHERE LEVY_INFO_ID = #{levyInfoId}
</delete> </delete>

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

Loading…
Cancel
Save