사전 감경부과 수정.

main
jjh 9 months ago
parent cfae145996
commit af941b54c0

@ -172,7 +172,7 @@ public class Epst02Controller extends ApplicationController {
*/
public ModelAndView getEpostGuidanceDocumentInfo(EpostQuery req) {
//
DataObject epostGdccInfo = epostGdccService.getEpostGdccInfo(req);
DataObject info = epostGdccService.getEpostGdccInfo(req);
boolean json = jsonResponse();
@ -186,7 +186,7 @@ public class Epst02Controller extends ApplicationController {
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("FIM047List", commonCodes.get("FIM047")) // 발송 구분 코드(SNDNG_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("epostGdccInfo", json ? epostGdccInfo : toJson(epostGdccInfo))
.addObject("epostGdccInfo", json ? info : toJson(info)) //
;
}

@ -169,10 +169,10 @@ public class Excl01Controller extends ApplicationController {
*/
public ModelAndView getLevyExclusionInfo(String saveCallbackFuncName, String savedCallbackFuncName, LevyExclQuery req) {
//
DataObject levyExclInfo = levyExclService.getLevyExclInfo(req);
DataObject info = levyExclService.getLevyExclInfo(req);
// 등록을 호출하였지만 등록된 부과제외 ID가 있는지 확인.
if (req.getCallPurpose().equals("create") && !levyExclInfo.string("LEVY_EXCL_ID").equals("")) {
if (req.getCallPurpose().equals("create") && !info.string("LEVY_EXCL_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView");
return mav
@ -197,7 +197,7 @@ public class Excl01Controller extends ApplicationController {
.addObject("FIM021List", commonCodes.get("FIM021")) // 부과 제외 구분 코드(LEVY_EXCL_SE_CD)
.addObject("FIM022List", commonCodes.get("FIM022")) // 부과 제외 사유 코드(LEVY_EXCL_RSN_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("levyExclInfo", json ? levyExclInfo : toJson(levyExclInfo)) // 부과제외 정보
.addObject("levyExclInfo", json ? info : toJson(info)) // 부과제외 정보
;
}
}

@ -191,10 +191,10 @@ public class Excl02Controller extends ApplicationController {
*/
public ModelAndView getOpinionSubmissionInfo(LevyExclQuery req) {
// 의견제출 정보 조회
DataObject opnnSbmsnInfo = opnnSbmsnService.getOpnnSbmsnInfo(req);
DataObject info = opnnSbmsnService.getOpnnSbmsnInfo(req);
// 등록을 호출하였지만 등록된 의견제출 ID가 있는지 확인.
if (req.getCallPurpose().equals("create") && !opnnSbmsnInfo.string("OPNN_ID").equals("")) {
if (req.getCallPurpose().equals("create") && !info.string("OPNN_ID").equals("")) {
ModelAndView mav = new ModelAndView("jsonView");
return mav.addObject("rtnMsg", "이미 등록된 의견제출 정보가 있습니다.");
@ -214,7 +214,7 @@ public class Excl02Controller extends ApplicationController {
.addObject("FIM032List", commonCodes.get("FIM032")) // 소유주 관계 구분 코드(OWNR_REL_CD)
.addObject("FIM033List", commonCodes.get("FIM033")) // 의견 제출 구분 코드(OPNN_SBMSN_SE_CD)
.addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD)
.addObject("opnnSbmsnInfo", json ? opnnSbmsnInfo : toJson(opnnSbmsnInfo)) // 의견제출 정보
.addObject("opnnSbmsnInfo", json ? info : toJson(info)) // 의견제출 정보
;
}
}

@ -49,8 +49,9 @@ public class LevyQuery extends CmmnQuery {
// ETC
private String callPurpose; // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정, refresh 재조회).
private String delRsn; // 삭제 사유
private String tnocs; // 총건수
private String gramt; // 총금액
private String tnocs; // 총 건수
private String gramtFfnlgAmt; // 총 금액
private String gramtAdvntceAmt; // 총 감경부과 금액
// 부과 등록
private String fyr; // 회계연도
private String acntgSeCd; // 회계 구분 코드
@ -338,12 +339,22 @@ public class LevyQuery extends CmmnQuery {
return self();
}
public String getGramt() {
return ifEmpty(gramt, () -> null);
public String getGramtFfnlgAmt() {
return ifEmpty(gramtFfnlgAmt, () -> null);
}
public <T extends LevyQuery> T setGramt(String gramt) {
this.gramt = gramt;
public <T extends LevyQuery> T setGramtFfnlgAmt(String gramtFfnlgAmt) {
this.gramtFfnlgAmt = gramtFfnlgAmt;
return self();
}
public String getGramtAdvntceAmt() {
return ifEmpty(gramtAdvntceAmt, () -> null);
}
public <T extends LevyQuery> T setGramtAdvntceAmt(String gramtAdvntceAmt) {
this.gramtAdvntceAmt = gramtAdvntceAmt;
return self();
}

@ -167,7 +167,7 @@ public class Levy01Controller extends ApplicationController {
*/
public ModelAndView getReductionLevyTargetInfo(LevyQuery req) {
// 감경 부과일자
DataObject rductLevyYmdInfo = taskBean.getAdvntceYmdInfo(new CmmnQuery().setSggCd(req.getSggCd())
DataObject info = taskBean.getAdvntceYmdInfo(new CmmnQuery().setSggCd(req.getSggCd())
.setTaskSeCd(req.getTaskSeCd()));
boolean json = jsonResponse();
@ -175,14 +175,15 @@ public class Levy01Controller extends ApplicationController {
ModelAndView mav = new ModelAndView(json ? "jsonView" : "fims/levy/levy01020-info");
// 이전에 조회되었던 총건수, 금액
rductLevyYmdInfo.put("TNOCS", req.getTnocs());
rductLevyYmdInfo.put("GRAMT", req.getGramt());
info.put("TNOCS", req.getTnocs());
info.put("GRAMT_FFNLG_AMT", req.getGramtFfnlgAmt());
info.put("GRAMT_ADVNTCE_AMT", req.getGramtAdvntceAmt());
return mav
.addObject("pageName", "levy01020")
.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("levyQuery", json ? req : toJson(req)) // Query
.addObject("rductLevyYmdInfo", json ? rductLevyYmdInfo : toJson(rductLevyYmdInfo))
.addObject("mainQuery", json ? req : toJson(req)) // 검색 조건
.addObject("rductLevyTrgtInfo", json ? info : toJson(info))
;
}

@ -112,7 +112,8 @@
<select id="selectRductLevyTrgtList" parameterType="map" resultType="dataobject">/* 감경부과 대상 목록 조회(levyMapper.selectRductLevyTrgtList) */
<include refid="utility.paging-prefix" />
SELECT COUNT(*) OVER() AS TNOCS
, SUM(C.FFNLG_AMT) OVER() AS GRAMT
, SUM(C.FFNLG_AMT) OVER() AS GRAMT_FFNLG_AMT
, SUM(C.ADVNTCE_AMT) OVER() AS GRAMT_ADVNTCE_AMT
, C.CRDN_ID <!-- 단속 ID -->
, C.SGG_CD <!-- 시군구 코드 -->
, C.TASK_SE_CD <!-- 업무 구분 코드 -->

@ -107,7 +107,7 @@
prefix : "levyExcl"
, prefixName : "부과제외"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclInfo
, dataGetter : obj => obj.${infoPrefix}Info
, urls : {
create : wctx.url("/" + $P.PrefixUrl + "/020/create.do") // 등록
, update : wctx.url("/" + $P.PrefixUrl + "/020/update.do") // 수정

@ -177,8 +177,11 @@
</div>
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-120" id="btnCreate--${pageName}" title="감경부과 등록">
감경부과 등록
<button type="button" class="btn btn-primary w-px-120" id="btnCreateSlctnTrgtRductLevy--${pageName}" title="선택 대상 감경부과 등록">
선택 대상 감경부과 등록
</button>
<button type="button" class="btn btn-primary w-px-120" id="btnCreateWholTrgtRductLevy--${pageName}" title="전체 대상 감경부과 등록">
전체 대상 감경부과 등록
</button>
</span>
</span>
@ -322,7 +325,7 @@
, prefixName : "감경부과 대상"
, infoSize : "md"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.rductLevyTrgtList
, dataGetter : obj => obj.${infoPrefix}List
, appendData : true
, formats : {
CRDN_YMD_TM : datetimeFormat
@ -379,6 +382,9 @@
checkbox.prop("checked", keys.includes(checkbox.val()));
});
// 선택 대상 감경부과 등록 버튼
$("#btnCreateSlctnTrgtRductLevy--${pageName}").prop("disabled", keys.length < 1);
// DataTables(그리드) 전체 선택(checkbox)
if (keys.length < 1) {
$("th input[type='checkbox']").prop("checked", false); // 체크 해제
@ -393,23 +399,13 @@
$P.control.getInfo = (params) => {
if (!params) return;
let dialogTitle = "";
if (params.callPurpose == "create") {
dialogTitle = $P.control.prefixName + " 등록";
} else if (params.callPurpose == "update") {
dialogTitle = $P.control.prefixName + " 수정";
} else {
dialogTitle = $P.control.prefixName + " 정보";
}
ajax.get({
url : $P.control.urls.getInfo
, data : params || {}
, success : resp => {
dialog.open({
id : $P.control.prefixed("Dialog")
, title : dialogTitle
, title : params.title
, content : resp
, size : $P.control.infoSize
, onClose : () => { $P.refreshList(); } // 자료 재조회
@ -438,7 +434,7 @@
//
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');")
.replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');")
.replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');");
let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML]
@ -587,13 +583,58 @@
$P.getFindUser();
}
// 감경부과등록 버튼 이벤트
$P.fnCreate = () => {
let params = $P.control.query;
// 선택 감경부과 등록 버튼 이벤트
$P.fnCreateSlctnTrgtRductLevy = (title) => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return;
params.callPurpose = "create";
params.tnocs = $P.control.dataset.getValue("TNOCS");
params.gramt = $P.control.dataset.getValue("GRAMT");
let tnocs = selected.length;
let gramtFfnlgAmt = 0;
let gramtAdvntceAmt = 0;
selected.forEach (function (el, index) {
pageObject['${pageName}'].control.setCurrent(selected[index]);
let str = $P.control.dataset.getValue("FFNLG_AMT");
gramtFfnlgAmt = gramtFfnlgAmt + Number(str.replaceAll(",", ""));
gramtAdvntceAmt = gramtAdvntceAmt + Number($P.control.dataset.getValue("ADVNTCE_AMT"));
});
// 파라미터 설정
let params = $P.control.query; // 검색 조건
params.callPurpose = "create"; // 호출 용도 (등록)
params.title = title; // 타이틀
params.tnocs = tnocs; // 총 건수
params.gramtFfnlgAmt = gramtFfnlgAmt; // 총 과태료 금액
params.gramtAdvntceAmt = gramtAdvntceAmt; // 총 사전 감경 금액
params.delYN = "N"; // 삭제 여부
params.crdnIds = selected.join(","); // Ids
$P.control.getInfo(params);
}
// 전체 감경부과 등록 버튼 이벤트
$P.fnCreateWholTrgtRductLevy = (title) => {
if ($P.control.dataset.empty) {
dialog.alert({
content : "검색된 자료가 없습니다."
, onOK : () => { }
});
return;
}
// 파라미터 설정
let params = $P.control.query; // 검색 조건
params.callPurpose = "create"; // 호출 용도 (등록)
params.title = title; // 타이틀
params.tnocs = $P.control.dataset.getValue("TNOCS"); // 총 건수
params.gramtFfnlgAmt = $P.control.dataset.getValue("GRAMT_FFNLG_AMT"); // 총 과태료 금액
params.gramtAdvntceAmt = $P.control.dataset.getValue("GRAMT_ADVNTCE_AMT"); // 총 사전 감경 금액
params.delYN = "N"; // 삭제 여부
$P.control.getInfo(params);
}
@ -629,8 +670,14 @@
});
});
// 업무 버튼 이벤트
$("#btnCreate--${pageName}").on("click", () => $P.fnCreate()); // 부과제외 수정
// 선택 대상 등록 버튼 이벤트
$("#btnCreateSlctnTrgtRductLevy--${pageName}").on("click", function() {
$P.fnCreateSlctnTrgtRductLevy($(this).attr("title"));
});
// 전체 대상 감경부과 등록 버튼 이벤트
$("#btnCreateWholTrgtRductLevy--${pageName}").on("click", function() {
$P.fnCreateWholTrgtRductLevy($(this).attr("title"));
});
// DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고
fnMakeResizableTable($("#table-responsive--${pageName}")[0]);

@ -21,12 +21,17 @@
<div class="col-md-12">
<label for="tnocs--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">총 건수/금액</label>
<input type="text" class="form-control w-px-80 text-end" id="tnocs--${pageName}" name="tnocs" data-map="TNOCS" />
<input type="text" class="form-control w-px-140 text-end" id="gramt--${pageName}" name="gramt" data-map="GRAMT" />
<input type="text" class="form-control w-px-120 text-end" id="gramtFfnlgAmt--${pageName}" name="gramtFfnlgAmt" data-map="GRAMT_FFNLG_AMT" />
</div>
<!-- 감경 율 -->
<div class="col-md-12">
<label for="advntceRductRt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경율</label>
<input type="text" class="form-control w-px-80 text-end" id="advntceRductRt--${pageName}" name="advntceRductRt" data-map="ADVNTCE_RDUCT_RT" autocomplete="off" required /> %
<input type="text" class="form-control w-px-80 text-end" id="advntceRductRt--${pageName}" name="advntceRductRt" data-map="ADVNTCE_RDUCT_RT" /> %
</div>
<!-- 감경 부과 금액 -->
<div class="col-md-12">
<label for="advntceRductRt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">감경부과금액</label>
<input type="text" class="form-control w-px-120 text-end" id="gramtAdvntceAmt--${pageName}" name="gramtAdvntceAmt" data-map="GRAMT_ADVNTCE_AMT" />
</div>
<!-- 회계연도 -->
<div class="col-md-12">
@ -87,7 +92,7 @@
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
// main 의 검색 조건을 그대로 유지
$P.mainQuery = ${levyQuery};
$P.mainQuery = ${mainQuery};
/**************************************************************************
* DatasetControl
@ -96,10 +101,11 @@
prefix : "rductLevyTrgt"
, prefixName : "감경부과"
, keymapper : info => info ? info.CRDN_ID : ""
, dataGetter : obj => obj.rductLevyInfo
, dataGetter : obj => obj.${infoPrefix}Info
, formats : {
TNOCS : numberFormat
, GRAMT : numberFormat
, GRAMT_FFNLG_AMT : numberFormat
, GRAMT_ADVNTCE_AMT : numberFormat
}
});
@ -211,8 +217,9 @@
$("#dudtYmd--${pageName}").datepicker("setDate", new Date());
$("#tnocs--${pageName}").prop("readonly", true); // 총건수
$("#gramt--${pageName}").prop("readonly", true); // 총금액
$("#gramtFfnlgAmt--${pageName}").prop("readonly", true); // 총금액
$("#advntceRductRt--${pageName}").prop("readonly", true); // 감경율
$("#gramtAdvntceAmt--${pageName}").prop("readonly", true); // 감경 부과금액
if ($P.callPurpose == "view") {
// input 요소들을 disabled
@ -238,7 +245,7 @@
$P.initForm();
// 3. Dataset 설정
$P.control.setData([${rductLevyYmdInfo}]);
$P.control.setData([${rductLevyTrgtInfo}]);
});
</script>

@ -584,19 +584,17 @@
}
// 선택 발송대상 등록 버튼 이벤트
$P.fnCreateSlctnTrgt = () => {
$P.fnCreateSlctnTrgt = (title) => {
// 선택 자료
let selected = $P.control.dataset.getKeys("selected");
if (selected.length < 1) return;
// 버튼 title
let btnTitle = $("#btnCreateSlctnTrgt--${pageName}").attr("title");
// 파라미터 설정
let params = $P.control.query; // 검색 조건
params.callPurpose = "create"; // 호출 용도 (등록)
params.crdnIDs = selected.join(","); // IDs
params.title = title; // 타이틀
params.crdnIDs = selected.join(","); // Ids
params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서
params.resndYN = "N"; // 재발송 여부
params.delYN = "N"; // 삭제 여부
@ -605,7 +603,7 @@
}
// 전체 발송대상 등록 버튼 이벤트
$P.fnCreateWholTrgt = () => {
$P.fnCreateWholTrgt = (title) => {
if ($P.control.dataset.empty) {
dialog.alert({
content : "검색된 자료가 없습니다."
@ -615,12 +613,10 @@
return;
}
// 버튼 title
let btnTitle = $("#btnCreateWholTrgt--${pageName}").attr("title");
// 파라미터 설정
let params = $P.control.query; // 검색 조건
params.callPurpose = "create"; // 호출 용도 (등록)
params.title = title; // 타이틀
params.sndngSeCd = "02"; // 발송 구분 코드 - 02 사전통지서
params.resndYN = "N"; // 재발송 여부
params.delYN = "N"; // 삭제 여부
@ -659,9 +655,14 @@
});
});
// 업무 버튼 이벤트
$("#btnCreateSlctnTrgt--${pageName}").on("click", () => $P.fnCreateSlctnTrgt()); // 선택 대상 등록
$("#btnCreateWholTrgt--${pageName}").on("click", () => $P.fnCreateWholTrgt()); // 전체 대상 등록
// 선택 대상 감경부과 등록 버튼 이벤트
$("#btnCreateSlctnTrgt--${pageName}").on("click", function() {
$P.fnCreateSlctnTrgt($(this).attr("title"));
});
// 전체 대상 감경부과 등록 버튼 이벤트
$("#btnCreateWholTrgt--${pageName}").on("click", function() {
$P.fnCreateWholTrgt($(this).attr("title"));
});
// DataTables width 변경 조정
fnMakeResizableTable($("#table-responsive--${pageName}")[0]);

Loading…
Cancel
Save