가감산시행령률 계산

dev
박성영 3 months ago
parent 81bf42dc64
commit e8c4e35145

@ -0,0 +1,16 @@
create table tb_adsbmtn_rt
(
ADSBMTN_RT_CD varchar(5) not null comment '가감산 율 코드'
primary key,
ADSBMTN_RT_SE_CD varchar(1) null comment '가감산 율 구분 코드',
ADSBMTN_RT_APLCN_TRGT varchar(100) null comment '가감산 율 적용 대상',
ADSBMTN_RT_APLCN_TRGT_DTL varchar(100) null comment '가감산 율 적용 대상 상세',
ADSBMTN_RT decimal(3) null comment '가감산 율',
USE_YN char not null comment '사용 여부',
REG_DT datetime null comment '등록 일시',
RGTR varchar(11) null comment '등록자',
MDFCN_DT datetime null comment '수정 일시',
MDFR varchar(11) null comment '수정자'
)
comment '가감산 율';

@ -0,0 +1,45 @@
create table tb_levy_info
(
LEVY_INFO_ID varchar(10) not null comment '부과 정보 ID'
primary key,
SGG_CD varchar(5) not null comment '시군구 코드',
CRDN_YR char(4) null comment '단속 연도',
CRDN_NO varchar(6) null comment '단속 번호',
IMPLT_INFO_ID varchar(10) not null comment '이행 정보 ID',
ACT_NO varchar(2) null comment '행위 번호',
DOC_NO varchar(100) null comment '문서 번호',
IMPLT_CPSR_AMT decimal(13) null comment '이행 강제 금액',
MPRC_STD_AMT decimal(13) null comment '시가 표준 액',
VLTN_AREA decimal(10, 2) null comment '위반 면적',
ADTN_RT_CD varchar(5) null comment '가산 율 코드',
ADTN_RT decimal(3) null comment '가산 율',
SBTR_RT_CD varchar(5) null comment '감산 율 코드',
SBTR_RT decimal(3) null comment '감산 율',
ADSBMTN_ENFC_RT decimal(3) null comment '가감산 시행 률',
CMPTTN_RT_CD varchar(3) null comment '산정 률 코드',
CMPTTN_RT decimal(3) null comment '산정 률',
CMPTTN_RT_2_CD varchar(1) null comment '산정 률 2 코드',
CMPTTN_RT_2 decimal(3) null comment '산정 률 2',
CMPTTN_AMT decimal(13) null comment '산정 액',
LEVY_WHOL_AMT decimal(13) null comment '부과 총 액',
BLDG_CRTR_MPRC_AMT decimal(13) null comment '건물 기준 시가 액',
STRCT_IDX_CD varchar(3) null comment '구조 지수 코드',
STRCT_IDX decimal(10, 2) null comment '구조 지수',
USG_IDX_CD varchar(5) null comment '용도 지수 코드',
USG_IDX decimal(10, 2) null comment '용도 지수',
PSTN_IDX_CD varchar(2) null comment '위치 지수 코드',
PSTN_IDX decimal(10, 2) null comment '위치 지수',
ELPS_YR_RDVLRT decimal(10, 2) null comment '경과 연도 잔가율',
BSCS_CSTRN_SE_CD varchar(1) null comment '기초 공사 구분 코드',
BSCS_CSTRN_RT decimal(10, 2) null comment '기초 공사 율',
BDST_TXTN_MPRC decimal(13) null comment '건축물 과세 시가',
REG_DT datetime null comment '등록 일시',
RGTR varchar(11) null comment '등록자',
MDFCN_DT datetime null comment '수정 일시',
MDFR varchar(11) null comment '수정자',
DEL_YN char not null comment '삭제 여부',
DEL_DT datetime null comment '삭제 일시',
DLTR varchar(11) null comment '삭제자'
)
comment '부과 정보';

@ -237,5 +237,49 @@ public class CrdnLevyPrvntcController {
}
}
/**
*
* @param type (A:, M:)
* @param model
* @return
*/
@GetMapping("/LevyAddMinusPopup.do")
@Operation(summary = "가감산 팝업", description = "가감산 팝업 화면을 제공합니다.")
public ModelAndView levyAddMinusPopup(
@Parameter(description = "타입") @RequestParam String type,
Model model) {
ModelAndView mav = new ModelAndView("crdn/crndRegistAndView/main/crdnLevyPrvntc/LevyAddMinusPopup" + TilesConstants.POPUP);
mav.addObject("type", type);
String typeNm = "A".equals(type) ? "가산" : "감산";
mav.addObject("typeNm", typeNm);
return mav;
}
/**
* (AJAX)
* @param vo
* @return
*/
@Operation(summary = "가감산 목록 조회", description = "가감산 목록을 조회합니다.")
@ApiResponses(value = {
@ApiResponse(responseCode = "200", description = "조회 성공"),
@ApiResponse(responseCode = "500", description = "서버 오류")
})
@PostMapping("/adsbmtnRtList.ajax")
public ResponseEntity<?> adsbmtnRtListAjax(@ModelAttribute AdsbmtnRtVO vo) {
List<AdsbmtnRtVO> list = crdnLevyPrvntcService.selectAdsbmtnRtList(vo);
// 1. 총 개수 조회
int totalCount = list.size();
// 2. 응답 데이터 구성
vo.setTotalCount(totalCount);
// 3. 페이징 처리
//vo.setPagingYn("Y");
return ApiResponseUtil.successWithGrid(list, vo);
}
}

@ -1,11 +1,9 @@
package go.kr.project.crdn.crndRegistAndView.main.mapper;
import go.kr.project.crdn.crndRegistAndView.main.model.AdsbmtnRtVO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnCmpttnRt2VO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTaskVO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTrprInfoVO;
import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@ -28,4 +26,6 @@ public interface CrdnLevyPrvntcMapper {
List<CrdnCmpttnRt2VO> getAllCmpttnRt2(CrdnCmpttnRt2VO vo);
List<AdsbmtnRtVO> selectAdsbmtnRtList(AdsbmtnRtVO vo);
}

@ -0,0 +1,71 @@
package go.kr.project.crdn.crndRegistAndView.main.model;
import go.kr.project.common.model.PagingVO;
import lombok.*;
import java.math.BigDecimal;
@EqualsAndHashCode(callSuper=true)
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class AdsbmtnRtVO extends PagingVO {
/**
*
*/
private String adsbmtnRtCd;
/**
*
*/
private String adsbmtnRtSeCd;
/**
*
*/
private String adsbmtnRtSeCdNm;
/**
*
*/
private String adsbmtnRtAplcnTrgt;
/**
*
*/
private String adsbmtnRtAplcnTrgtDtl;
/**
*
*/
private BigDecimal adsbmtnRt;
/**
* ( )
*/
private BigDecimal adsbmtnRtRate;
/**
*
*/
private String useYn;
/**
* adsbmtnRt , 100 adsbmtnRtRate .
* @param adsbmtnRt (: 90, 70)
*/
public void setAdsbmtnRt(BigDecimal adsbmtnRt) {
this.adsbmtnRt = adsbmtnRt;
if (adsbmtnRt != null) {
// 100으로 나누고, 소수점 2자리까지 반올림하여 설정
this.adsbmtnRtRate = adsbmtnRt.divide(new BigDecimal("100"), 2, java.math.RoundingMode.HALF_UP);
} else {
this.adsbmtnRtRate = null;
}
}
}

@ -1,8 +1,7 @@
package go.kr.project.crdn.crndRegistAndView.main.service;
import go.kr.project.crdn.crndRegistAndView.main.model.AdsbmtnRtVO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnCmpttnRt2VO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTaskVO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnImpltTrprInfoVO;
import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO;
import java.util.List;
@ -28,4 +27,6 @@ public interface CrdnLevyPrvntcService {
List<CrdnCmpttnRt2VO> getAllCmpttnRt2(CrdnCmpttnRt2VO vo);
List<AdsbmtnRtVO> selectAdsbmtnRtList(AdsbmtnRtVO vo);
}

@ -1,9 +1,8 @@
package go.kr.project.crdn.crndRegistAndView.main.service.impl;
import go.kr.project.crdn.crndRegistAndView.main.mapper.CrdnImpltTaskMapper;
import go.kr.project.crdn.crndRegistAndView.main.mapper.CrdnLevyPrvntcMapper;
import go.kr.project.crdn.crndRegistAndView.main.model.AdsbmtnRtVO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnCmpttnRt2VO;
import go.kr.project.crdn.crndRegistAndView.main.model.CrdnRegistAndViewVO;
import go.kr.project.crdn.crndRegistAndView.main.model.LevyPrvntcActInfoVO;
import go.kr.project.crdn.crndRegistAndView.main.service.CrdnLevyPrvntcService;
import lombok.RequiredArgsConstructor;
@ -31,8 +30,6 @@ import java.util.List;
@RequiredArgsConstructor
public class CrdnLevyPrvntcServiceImpl extends EgovAbstractServiceImpl implements CrdnLevyPrvntcService {
private final CrdnImpltTaskMapper crdnImpltTaskMapper;
private final CrdnLevyPrvntcMapper crdnLevyPrvntcMapper;
/**
@ -67,4 +64,9 @@ public class CrdnLevyPrvntcServiceImpl extends EgovAbstractServiceImpl implement
return crdnLevyPrvntcMapper.getAllCmpttnRt2(vo);
}
@Override
public List<AdsbmtnRtVO> selectAdsbmtnRtList(AdsbmtnRtVO vo) {
return crdnLevyPrvntcMapper.selectAdsbmtnRtList(vo);
}
}

@ -74,4 +74,28 @@
order by CMPTTN_RT_2_CD asc
</select>
<select id="selectAdsbmtnRtList" parameterType="go.kr.project.crdn.crndRegistAndView.main.model.AdsbmtnRtVO" resultType="go.kr.project.crdn.crndRegistAndView.main.model.AdsbmtnRtVO">
SELECT
ar.ADSBMTN_RT_CD,
ar.ADSBMTN_RT_SE_CD,
adsb.CD_NM as adsbmtnRtSeCdNm,
ar.ADSBMTN_RT_APLCN_TRGT,
ar.ADSBMTN_RT_APLCN_TRGT_DTL,
ar.ADSBMTN_RT,
ar.USE_YN,
ar.REG_DT,
ar.RGTR,
ar.MDFCN_DT,
ar.MDFR
FROM
tb_adsbmtn_rt ar
LEFT JOIN tb_cd_detail adsb ON adsb.CD_GROUP_ID = 'ADSBMTN_RT_SE_CD' AND adsb.CD_ID = ar.ADSBMTN_RT_SE_CD
WHERE
ar.USE_YN = 'Y'
<if test="adsbmtnRtSeCd != null and adsbmtnRtSeCd != ''">
AND ar.ADSBMTN_RT_SE_CD = #{adsbmtnRtSeCd}
</if>
ORDER BY ar.ADSBMTN_RT_CD ASC
</select>
</mapper>

@ -0,0 +1,151 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<!-- 가감산 팝업 -->
<div class="popup_wrap">
<div class="popup_inner">
<div class="popup_tit">
<h2 class="tit">${typeNm} 항목 선택</h2>
<a href="#" class="pop-x-btn modalclose"></a>
</div>
<div class="popup_con">
<div class="box_column">
<div class="containers">
<div id="grid"></div>
</div>
</div>
</div>
<div class="popup_foot">
<button type="button" id="btnSelect" class="newbtns bg1">선택</button>
<button type="button" class="newbtns bg2 modalclose">닫기</button>
</div>
</div>
</div>
<script type="text/javascript">
(function(window, $) {
'use strict';
var LevyAddMinusPopup = {
type: '${type}',
checkedRowData: null,
grid: {
instance: null,
initConfig: function() {
var dataSource = this.createDataSource();
var gridConfig = new XitTuiGridConfig();
gridConfig.setOptDataSource(dataSource);
gridConfig.setOptGridId('grid');
gridConfig.setOptGridHeight(400);
gridConfig.setOptRowHeight(30);
gridConfig.setOptRowHeaderType('');
gridConfig.setOptColumns(this.getGridColumns());
return gridConfig;
},
getGridColumns: function() {
return [
{ header: '코드', name: 'adsbmtnRtCd', hidden: true },
{ header: '구분', name: 'adsbmtnRtSeCdNm', align: 'center', width: 80 },
{ header: '가감산율', name: 'adsbmtnRt', align: 'center', width: 100, sortable: true,
formatter: function(e) {
return e.value + '%';
}
},
{ header: '가감산율(계산에 적용될값)', name: 'adsbmtnRtRate', align: 'center', width: 250, hidden: true},
{ header: '적용 대상', name: 'adsbmtnRtAplcnTrgt', align: 'left', width: 300 },
{ header: '적용 대상 상세', name: 'adsbmtnRtAplcnTrgtDtl', align: 'left', width: 400 },
];
},
createDataSource: function() {
var self = this;
return {
api: {
readData: {
url: '<c:url value="/crdn/crndRegistAndView/crdnLevyPrvntc/adsbmtnRtList.ajax"/>',
method: 'POST'
}
},
initialRequest: true,
serializer: function(params) {
var query = {};
query.adsbmtnRtSeCd = (self.type === 'add') ? 'A' : 'M';
return $.param(query);
}
};
},
create: function() {
var gridConfig = this.initConfig();
this.instance = gridConfig.instance(tui.Grid);
tui.Grid.applyTheme('striped');
this.gridBindEvents();
},
/**
* 그리드 이벤트 바인딩
*/
gridBindEvents: function() {
var self = this;
this.instance.on('focusChange', function(ev) {
if (ev.rowKey !== undefined && ev.rowKey !== null) {
var rowData = self.instance.getRow(ev.rowKey);
LevyAddMinusPopup.checkedRowData = rowData;
}
});
// 행 더블클릭 이벤트 - 중요로직: 수정모드로 팝업 호출
this.instance.on('dblclick', function(ev) {
var rowData = self.instance.getRow(ev.rowKey);
LevyAddMinusPopup.checkedRowData = rowData;
LevyAddMinusPopup.select();
});
}
},
init: function() {
this.grid.create();
this.bindEvents();
},
bindEvents: function() {
var self = this;
$('.modalclose').on('click', function(e) {
e.preventDefault();
window.close();
});
$('#btnSelect').on('click', function() {
self.select();
});
},
select: function() {
console.log(LevyAddMinusPopup.checkedRowData);
if (!LevyAddMinusPopup.checkedRowData) {
alert('항목을 선택해주세요.');
return;
}
if (window.opener && typeof window.opener.setAddMinusData === 'function') {
window.opener.setAddMinusData(this.type, LevyAddMinusPopup.checkedRowData);
}
window.close();
}
};
$(document).ready(function() {
LevyAddMinusPopup.init();
});
})(window, jQuery);
</script>

@ -146,6 +146,7 @@
<th class="b-right-0 b-bottom-0">건축물<br/>과세시가</th>
<th class="b-bottom-0">시가표준액<br/>(1,000원미만절삭)</th>
</tr>
<tr>
<td class="b-right-0 b-bottom-0"><input type="text" class="input numericMask" id="bldgNewPrcCrtrAmt_nm" readonly/><!-- 건물기준시가액(명칭) --></td>
<td rowspan="2" class="op-cell b-right-0">X</td>
@ -169,6 +170,7 @@
<td rowspan="2" class="b-right-0 b-bottom-0"><input type="text" class="input numericMask" id="taxableMarketPrice" readonly/><!-- 건축물과세시가 --></td>
<td rowspan="2" class="b-bottom-0"><input type="text" class="input numericMask" id="standardMarketPrice" readonly/><!-- 시가표준액 --></td>
</tr>
<tr>
<td class="b-right-0 b-top-0"><input type="text" class="input numericMask" id="bldgNewPrcCrtrAmt" readonly/><!-- 건물기준시가액(값) --></td>
<td class="b-right-0 b-top-0"><input type="text" class="input decimalMask" id="strctIdx" readonly/><!-- 구조지수(값) --></td>
@ -177,6 +179,7 @@
<td class="b-right-0 b-top-0"><input type="text" class="input decimalMask4" id="elpsYrRdvlrt" readonly/><!-- 경과년수별잔가율(값) --></td>
<td class="b-right-0 b-top-0"><input type="text" class="input decimalMask" id="bscsCstrnRt" readonly/><!-- 기초공사율(값) --></td>
</tr>
</table>
</div>
</div>
@ -208,18 +211,23 @@
</td>
<td rowspan="2" class="op-cell b-right-0 b-bottom-0">X</td>
<td class="b-right-0 b-bottom-0 pad-0">
<button type="button" id="btnOpenAddPopup" class="newbtn bg2-1 btn-levy-add">+ 가산 [100%]</button>
<button type="button" id="btnOpenMinusPopup" class="newbtn bg6 btn-levy-minus">- 감산 [100%]</button>
<input type="hidden" id="adsbmtnRtCdAdd" value=""/><!-- 가산-코드 -->
<input type="hidden" id="adsbmtnRtAdd" value=""/><!-- 가산-명 -->
<input type="hidden" id="adsbmtnRtRateAdd" value=""/><!-- 가산-비율 -->
<input type="hidden" id="adsbmtnRtCdMinus" value=""/><!-- 감산-코드 -->
<input type="hidden" id="adsbmtnRtMinus" value=""/><!-- 감산-명 -->
<input type="hidden" id="adsbmtnRtRateMinus" value=""/><!-- 감산-비율 -->
<button type="button" id="btnOpenAddPopup" class="newbtn bg2-1 btn-levy-add">+ 가산 [0%]</button>
<button type="button" id="btnOpenMinusPopup" class="newbtn bg6 btn-levy-minus">- 감산 [0%]</button>
<input type="hidden" id="adtnRtCd" value=""/><!-- 가산-코드 -->
<input type="hidden" id="adtnRt" value=""/><!-- 가산율(% 표기) -->
<input type="hidden" id="adtnRtRate" value=""/><!-- 가산율(실제계산에 필요한 값 : 가산율 / 100 ) -->
<input type="hidden" id="sbtrRtCd" value=""/><!-- 감산-코드 -->
<input type="hidden" id="sbtrRt" value=""/><!-- 감산율(% 표기) -->
<input type="hidden" id="sbtrRtRate" value=""/><!-- 감산비율(실제계산에 필요한 값 : 감산율 / 100 ) -->
<input type="hidden" class="input" id="adsbmtnEnfcRt" value="" 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">
<input type="text" class="input text-right" id="cmpttnRt" value="" readonly/><!-- 산정률 -->
<input type="text" class="input text-right" id="cmpttnRtDisplay" value="" readonly/><!-- 산정률 -->
<input type="hidden" class="input text-right" id="cmpttnRt" value="" readonly/><!-- 산정률 -->
<input type="hidden" class="input" id="cmpttnRtRate" value="" readonly/><!-- 산정률(비율값) -->
</td>
<td rowspan="2" class="op-cell b-right-0 b-bottom-0">X</td>
@ -227,23 +235,26 @@
<select id="cmpttnRt2Cd" class="input">
<option value="">선택하세요.</option>
<c:forEach var="code" items="${crdnCmpttnRt2List}">
<option value="${code.cmpttnRt2Cd}" rateValueAttribute="${code.cmpttnRt2} %" rateValueAttribute2="${code.cmpttnRt2Rate}" >
<option value="${code.cmpttnRt2Cd}" rateValueAttribute="${code.cmpttnRt2}" rateValueAttribute2="${code.cmpttnRt2Rate}" >
${code.vltnMttr}
</option>
</c:forEach>
</select><!-- 산정률2 -->
<input type="hidden" id="actCmpttnRt" 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>
</tr>
<tr>
<td class="b-top-0 b-right-0 b-bottom-0">
<input type="text" class="input" id="" value="" readonly/><!-- 가감산 시행령률 -->
<input type="text" class="input text-right" id="adsbmtnEnfcRtDisplay" value="100 %" readonly/><!-- 가감산 시행령률, % 표기 -->
</td>
<td class="b-top-0 b-right-0 b-bottom-0">
<input type="text" id="actCmpttnRt" class="input text-right" value="" readonly/><!-- 산정률2(값) -->
<input type="text" id="actCmpttnRtDisplay" class="input text-right" value="" readonly/><!-- 산정률2(값) - % 표기 -->
</td>
</tr>
<tr>
<td colspan="12" class="b-top-0"><strong>부과총액 = 결과값 계산로직 진행 중</strong></td>
</tr>
@ -447,7 +458,8 @@
$('#vltnArea').val(vltnArea); // 위반면적
// 행위유형에 따른 산정률1 설정
$('#cmpttnRt').val(rowData.actCmpttnRt+ ' %');
$('#cmpttnRtDisplay').val(rowData.actCmpttnRt+ ' %');
$('#cmpttnRt').val(rowData.actCmpttnRt);
$('#cmpttnRtRate').val(rowData.actCmpttnRtRate);
$('#bscsCstrnRt').val(''); // 기초공사율
@ -517,13 +529,13 @@
});
// 가산 버튼 이벤트 바인딩
$('.btnOpenAddPopup').on('click', function (e) {
self.openAddMinusPopup('add');
$('#btnOpenAddPopup').on('click', function (e) {
self.openAddMinusPopup('1');
});
// 감산 버튼 이벤트 바인딩
$('.btnOpenMinusPopup').on('click', function (e) {
self.openAddMinusPopup('minus');
$('#btnOpenMinusPopup').on('click', function (e) {
self.openAddMinusPopup('2');
});
$('#bscsCstrnSeCd').on('change', function () { // 기초공사구분 변경 시
@ -554,7 +566,8 @@
$('#cmpttnRt2Cd').on('change', function () {
var selectedOption = $(this).find('option:selected');
var rateValue = selectedOption.attr('rateValueAttribute');
$('#actCmpttnRt').val(rateValue || '').trigger('focus');
$('#actCmpttnRt').val(rateValue || '');
$('#actCmpttnRtDisplay').val((rateValue || '') + ' %').trigger('focus');
});
// 계산에 사용되는 입력 필드 변경 시 자동 계산 호출
@ -572,10 +585,13 @@
openAddMinusPopup: function (type) {
var adsbmtnRtCd = "";
if( type === 'add' ){
if( type === '1' ){
adsbmtnRtCd = $('#adsbmtnRtCdAdd').val();
}else{
}else if( type === '2' ){
adsbmtnRtCd = $('#adsbmtnRtCdMinus').val();
}else{
alert('감가산 구분이 선택되지 않았습니다.');
return false;
}
var url = '<c:url value="/crdn/crndRegistAndView/crdnLevyPrvntc/LevyAddMinusPopup.do"/>?type=' +
encodeURIComponent(type) + '&adsbmtnRtCd=' +
@ -775,9 +791,44 @@
// 전역 네임스페이스에 모듈 노출
window.LevyPrvntcPopup = LevyPrvntcPopup;
})(window, jQuery);
</script><3E>임스페이스에 모듈 노출
window.LevyPrvntcPopup = LevyPrvntcPopup;
/**
* 가감산 팝업에서 선택된 데이터를 받아 처리하는 함수
* @param {string} type - 'add' 또는 'minus'
* @param {Array} data - 선택된 행 데이터 배열
*/
window.setAddMinusData = function(type, data) {
// 단건 선택
const selectedRow = data;
if (!selectedRow) return;
const rate = parseFloat(selectedRow.adsbmtnRt) || 0;
const rateForCalc = parseFloat(selectedRow.adsbmtnRtRate) || 0;
const rateForDisplay = rate + '%';
let rateForTotal = 100;
if (type === '1') { // '1' for 가산(add)
$('#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 + ']');
}
var addRate = $('#adtnRt').val();
var minusRate = $('#sbtrRt').val();
const totalRateCalcAdd = parseFloat(addRate) || 0;
const totalRateCalcMinus = parseFloat(minusRate) || 0;
const totalRateCalc = 100 + totalRateCalcAdd - totalRateCalcMinus;
$("#adsbmtnEnfcRt").val( totalRateCalc );
$("#adsbmtnEnfcRtDisplay").val( totalRateCalc+" %" );
};
})(window, jQuery);
</script>
Loading…
Cancel
Save