부과예고 초기 작업 진행중...

dev
박성영 3 months ago
parent a25c39e40e
commit b7c95e0349

@ -40,8 +40,10 @@ public class LevyPrvntcActInfoVO extends PagingVO {
private String crcLaw1; //시정법
private String impltLaw1; //이행법
private String strctIdxCd; //구조지수코드
private BigDecimal strctIdx; //구조지수
private String strctIdxCdNm; //구조지수명
private String usgIdxCd; //용도지수코드
private BigDecimal usgIdx; //용도지수
private String usgIdxCdNm; //용도지수명
private BigDecimal area; //면적
@ -49,6 +51,7 @@ public class LevyPrvntcActInfoVO extends PagingVO {
private BigDecimal bldgNewPrcCrtrAmt; //건물 신축 가격 기준액
private String pstnIdxNo; //위치지수 NO
private BigDecimal pstnIdx; //위치지수
private String elpsYrRdvlrtYr; //경과년수별잔가율-최초위반행위 년도
private BigDecimal elpsYrRdvlrt; //경과년수별잔가율
private BigDecimal bscsCstrnYBdstCmpttnRt; //기초공사율(철콘)
private BigDecimal bscsCstrnNBdstCmpttnRt; //기초공사율(철콘 이외)

@ -22,13 +22,16 @@
vltn1.CRC_LAW as CRC_LAW_1,
t3.STRCT_IDX_CD,
strct.STRCT_NM AS STRCT_IDX_CD_NM,
strct.STRCT_IDX,
t3.USG_IDX_CD,
usg.USG_NM AS USG_IDX_CD_NM,
usg.USG_IDX AS USG_IDX,
t3.AREA,
bnpca.no, -- 건물기준가액 NO
bnpca.BLDG_NEW_PRC_CRTR_AMT, -- 건물기준시가액
pi.PSTN_IDX_NO, -- 위치지수 NO
pi.PSTN_IDX, -- 위치지수
substring(t3.ACT_BGNG_YMD,1,4) as ELPS_YR_RDVLRT_YR,
CASE WHEN (CAST(substring(t3.ACT_BGNG_YMD,1,4) as SIGNED)-CAST(t1.CRDN_YR as SIGNED)) >= strct.RDVLRT_CN_YR_CNT THEN strct.LAST_YR_RDVLRT
ELSE 1-((CAST(substring(t3.ACT_BGNG_YMD,1,4) as SIGNED)-CAST(t1.CRDN_YR as SIGNED)) * strct.DPRT)
end as ELPS_YR_RDVLRT, -- 경과 연도 잔가율

@ -160,9 +160,10 @@
</table>
</div>
</div>
<%-- 해당년도 시가표준액 계산 --%>
<div class="containers">
<div class="tabels cols2 no-info">
<table class="display">
<table class="display" id="calculationTable">
<tr>
<th rowspan="3" style="width: 100px;">${crdnData.crdnYr} 년도</th>
<th style="border-right: 0; border-bottom: 0;">건물<br/>기준시가액</th>
@ -181,25 +182,15 @@
<th style="border-bottom: 0;">시가표준액<br/>(1,000원미만절삭)</th>
</tr>
<tr>
<td style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value="" readonly/>
</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="bldgNewPrcCrtrAmt_nm" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value="" readonly/>
</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="strctIdx_nm" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value="" readonly/>
</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="usgIdx_nm" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value="" readonly/>
</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="pstnIdx_nm" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<input type="text" class="input" value="" readonly/>
</td>
<td style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="elpsYrRdvlrt_yr" readonly/></td>
<td rowspan="2" style="width: 23px; border-right: 0;">X</td>
<td style="border-right: 0; border-bottom: 0;">
<select id="bscsCstrnSeCd" name="bscsCstrnSeCd" class="input" style="width: 180px;" validation-check="required">
@ -210,16 +201,16 @@
</select>
</td>
<td rowspan="2" style="width: 23px; border-right: 0;">=</td>
<td rowspan="2" style="border-right: 0; border-bottom: 0;"><input type="text" class="input" value=""/></td>
<td rowspan="2" style="border-bottom: 0;"><input type="text" class="input" value=""/></td>
<td rowspan="2" style="border-right: 0; border-bottom: 0;"><input type="text" class="input" id="taxableMarketPrice" readonly/></td>
<td rowspan="2" style="border-bottom: 0;"><input type="text" class="input" id="standardMarketPrice" readonly/></td>
</tr>
<tr>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" value=""/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" value=""/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" value=""/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" value=""/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" value=""/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" value=""/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" id="bldgNewPrcCrtrAmt"/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" id="strctIdx"/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" id="usgIdx"/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" id="pstnIdx"/></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" id="elpsYrRdvlrt" value="" /></td>
<td style="border-right: 0; border-top: 0;"><input type="text" class="input" id="bscsCstrnRt" readonly/></td>
</tr>
</table>
</div>
@ -327,8 +318,10 @@
}
},
{ header: '구조지수코드', name: 'strctIdxCd', align: 'center', width: 60, hidden: true},
{ header: '구조지수', name: 'strctIdx', align: 'right', width: 150, formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : ''; } },
{ header: '구조지수명', name: 'strctIdxCdNm', align: 'left', width: 150},
{ header: '용도지수코드', name: 'usgIdxCd', align: 'center', width: 60, hidden: true},
{ header: '용도지수', name: 'usgIdx', align: 'right', formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 }) : ''; } },
{ header: '용도지수명', name: 'usgIdxCdNm', align: 'left'},
{ header: '건물신축가격기준액NO', name: 'no', hidden: true },
{ header: '건물신축가격기준액', name: 'bldgNewPrcCrtrAmt', align: 'right', width: 140, formatter: function(e){ return e.value != null ? Number(e.value).toLocaleString() : ''; } },
@ -398,18 +391,16 @@
// 렌더링완료 후 check box
this.instance.on('onGridUpdated', function() {
var allRows = self.instance.getData();
var rowKey = null;
allRows.forEach(function(row) {
if (row.selected) {
rowKey = row.rowKey
}
// 1. 체크박스 선택
self.instance.check(rowKey);
});
});
this.instance.on('focusChange', function(ev) {
if (ev.rowKey !== undefined && ev.rowKey !== null) {
var rowData = self.instance.getRow(ev.rowKey);
window.handleRowSelection(rowData);
}
});
},
},
@ -447,6 +438,27 @@
e.preventDefault();
self.cancel();
});
$('#bscsCstrnSeCd').on('change', function() {
var focusedCell = self.grid.instance.getFocusedCell();
if (focusedCell && focusedCell.rowKey !== null) {
var rowData = self.grid.instance.getRow(focusedCell.rowKey);
if (rowData) {
var selectedValue = $(this).val();
var rate = 0;
if (selectedValue === '1') {
rate = rowData.bscsCstrnYBdstCmpttnRt;
} else if (selectedValue === '2') {
rate = rowData.bscsCstrnNBdstCmpttnRt;
} else if (selectedValue === '3') {
rate = rowData.dupEtbldgBdstCmpttnRt;
} else {
rate = "";
}
$('#bscsCstrnRt').val(rate);
}
}
});
},
/**
@ -530,42 +542,6 @@
};
},
/**
* 그리드에서 선택된 이행 대상자 정보 수집
* 중요한 로직 주석: 체크박스가 선택된 행의 데이터를 수집하여 이행 대상자 정보 배열을 생성합니다.
*/
collectSelectedTrprInfo: function() {
var selectedTrprInfoList = [];
var checkedRowKeys = this.grid.instance.getCheckedRowKeys();
if (checkedRowKeys && checkedRowKeys.length > 0) {
for (var i = 0; i < checkedRowKeys.length; i++) {
var rowKey = checkedRowKeys[i];
var rowData = this.grid.instance.getRow(rowKey);
if (rowData) {
// 이행 대상자 정보 객체 생성
var trprInfo = {
ownrActrInfoId: rowData.ownrActrInfoId,
impltTrprSeCd: rowData.impltTrprSeCd || '1', // 1:소유자, 2:행위자 (기본값: 소유자)
impltTrprFlnm: rowData.impltTrprFlnm,
impltTrprZip: rowData.impltTrprZip,
impltTrprAddr: rowData.impltTrprAddr,
impltTrprDaddr: rowData.impltTrprDaddr,
actNo: rowData.actNo,
actTypeCd: rowData.actTypeCd,
lotnoMno: rowData.lotnoMno,
lotnoSno: rowData.lotnoSno
};
selectedTrprInfoList.push(trprInfo);
}
}
}
return selectedTrprInfoList;
},
/**
* 폼 유효성 검증
*/
@ -593,6 +569,32 @@
};
/**
* 그리드 행 선택시 실행되는 함수
* @param rowData
*/
window.handleRowSelection = function(rowData) {
if (!rowData) return;
$('#bscsCstrnRt').val('');
$('#bldgNewPrcCrtrAmt_nm').val(rowData.bldgNewPrcCrtrAmt ? parseFloat(rowData.bldgNewPrcCrtrAmt).toLocaleString() : '');
$('#bldgNewPrcCrtrAmt').val();
$('#strctIdx_nm').val(rowData.strctIdxCdNm);
$('#strctIdx').val(rowData.strctIdx);
$('#usgIdx_nm').val(rowData.usgIdxCdNm);
$('#usgIdx').val(rowData.usgIdx);
$('#pstnIdx_nm').val(rowData.oalp);
$('#pstnIdx').val(rowData.pstnIdx);
$('#elpsYrRdvlrt_yr').val(rowData.elpsYrRdvlrtYr);
$('#elpsYrRdvlrt').val(rowData.elpsYrRdvlrt);
$('#bscsCstrnSeCd').trigger('change');
};
/**
* 행정처분 간격일 자동 계산 함수
* 중요한 로직 주석: 시작일과 종료일 입력시 자동으로 간격일을 계산한다.

Loading…
Cancel
Save