부과제외정보 팝업 수정.

부과제외정보 update 추가.
main
jjh 1 year ago
parent 772e9ef622
commit c930c5380c

@ -92,6 +92,7 @@ public class Excl01Controller extends ApplicationController {
return new ModelAndView(json ? "jsonView" : "fims/excl/excl01020-info")
.addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("pageMode", "update") //
.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)
@ -100,6 +101,7 @@ public class Excl01Controller extends ApplicationController {
} else {
return new ModelAndView("fims/excl/excl01020-info")
.addObject("pageName", "excl01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("pageMode", "create") //
.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)
@ -114,7 +116,7 @@ public class Excl01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "부과제외 대장 등록", value = "/010/create.do")
@PostMapping(name = "부과제외 대장 등록", value = "/020/create.do")
public ModelAndView createLevyExclusion(Excl01 excl01) {
boolean saved = excl01Service.createLevyExclusion(excl01);
@ -129,7 +131,7 @@ public class Excl01Controller extends ApplicationController {
* "saved": true, false
* }</code></pre>
*/
@PostMapping(name = "부과제외 대장 수정", value = "/010/update.do")
@PostMapping(name = "부과제외 대장 수정", value = "/020/update.do")
public ModelAndView updateLevyExclusion(Excl01 excl01) {
boolean saved = excl01Service.updateLevyExclusion(excl01);

@ -238,13 +238,13 @@
<update id="updateLevyExcl" parameterType="map">/* 부과제외 대장 수정(excl01Mapper.updateLevyExcl) */
UPDATE TB_LEVY_EXCL
SET LEVY_EXCL_YMD = #{levyExclYmd} /* 부과 제외 일자 */
, LEVY_EXCL_SE_CD = #{levyExclSeCd} /* 부과 제외 구분 코드 */
, LEVY_EXCL_RSN_CD = #{levyExclRsnCd} /* 부과 제외 사유 코드 */
, ETC_CN = #{etcCn} /* 기타 내용 */
SET LEVY_EXCL_YMD = #{excl01.levyExclYmd} /* 부과 제외 일자 */
, LEVY_EXCL_SE_CD = #{excl01.levyExclSeCd} /* 부과 제외 구분 코드 */
, LEVY_EXCL_RSN_CD = #{excl01.levyExclRsnCd} /* 부과 제외 사유 코드 */
, ETC_CN = #{excl01.etcCn} /* 기타 내용 */
, MDFCN_DT = <include refid="utility.now" /> /* 수정 일시 */
, MDFR = #{currentUser.id} /* 수정자 */
WHERE LEVY_EXCL_ID = #{levyExclId} /* 부과 제외 ID */
WHERE LEVY_EXCL_ID = #{excl01.levyExclId} /* 부과 제외 ID */
AND DEL_YN = 'N' /* 삭제 여부 */
</update>

@ -37,7 +37,7 @@
<label>
<input type="radio" class="form-check-input" id="rdoTaskSeCd--${pageName}" name="taskSeCd" alt="업무구분"
value="${item.code}"
onchange="pageObject['${pageName}'].fnResetAndChangeBiz(this.value);"
onchange="fnResetAndChangeBiz${pageName}(this.value);"
required>
${item.value}
</label>
@ -244,77 +244,43 @@
</div>
<!-- Content wrapper -->
<!-- js -->
<script src="<c:url value="/resources/js/fims/excl/excl01010.js?${ver}"/>"></script>
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
// Control 생성
var ${pageName}Control = new LevyExclControl("${urlPrefix}");
var prefixUrl = "/excl/excl01";
/**************************************************************************
* 초기 셋팅
* DatasetControl
**************************************************************************/
// 검색조건 초기값 셋팅
function initSearch${pageName}() {
// 업무구분
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true);
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schDateTo--${pageName}").datepicker("setDate", new Date());
var ${pageName}Control = new DatasetControl({
prefix : "levyExcl"
, prefixName : "부과제외"
, infoSize : "lg"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclList
, appendData : true
, urls : {
load : wctx.url(prefixUrl + "/010/list.do")
, getInfo : wctx.url(prefixUrl + "/020/info.do")
, create : wctx.url(prefixUrl + "/020/create.do")
, update : wctx.url(prefixUrl + "/020/update.do")
, remove : wctx.url(prefixUrl + "/020/remove.do")
}
//
function setEvent${pageName}() {
// 버튼 이벤트
$("#btnReset--${pageName}").on("click", () => fnReset${pageName}()); // 초기화
$("#btnSearch--${pageName}").on("click", () => fnSearchList${pageName}()); // 검색
$("#btnExcle--${pageName}").on("click", () => fnSearchList${pageName}()); // 엑셀
$("#btnCreateNotLevy--${pageName}").on("click", () => fnCreate${pageName}("1")); // 비부과 등록
$("#btnCreateWarning--${pageName}").on("click", () => fnCreate${pageName}("2")); // 계고 등록
$("#btnUpdate--${pageName}").on("click", () => fnSearchList${pageName}()); // 수정
$("#btnRemove--${pageName}").on("click", () => fnSearchList${pageName}()); // 삭제
$("#term--${pageName}").onEnterPress(() => fnSearchList${pageName}()); // 동적 검색
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) return;
if ((el[0].scrollHeight - el.scrollTop() + 15) == el.outerHeight()) {
fnSearchList${pageName}(${pageName}Control.query.pageNum + 1);
, formats : {
LEVY_EXCL_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
, CVLCPT_RCPT_YMD : dateFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
});
}
/**************************************************************************
* Event
* DatasetControl.on
**************************************************************************/
// DataTables에 click, dbclick 이벤트
function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, 'onclick="${pageName}Control.setCurrent(\'' + dataItem.getValue("LEVY_EXCL_ID") + '\');"')
.replace(/{ondblclick}/gi, 'ondblclick="${pageName}Control.getInfo(\'' + 'levyExclId=' + dataItem.getValue("LEVY_EXCL_ID") + '\')"')
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
}
// Dataset 변경
// onDatasetChange 이벤트
${pageName}Control.onDatasetChange = obj => {
renderList${pageName}();
@ -328,17 +294,18 @@
});
};
// DataTables 클릭 이벤트
// onCurrentChange 이벤트
${pageName}Control.onCurrentChange = item => {
//
if (!item) return;
let key = item.data.LEVY_EXCL_ID;
$("#${infoPrefix}List").setCurrentRow(key);
$("#tbody--${pageName}").setCurrentRow(key);
};
// DataTables checkbox 클릭 이벤트
// onSelectionChange 이벤트
${pageName}Control.onSelectionChange = selected => {
let ${infoPrefix}List = ${pageName}Control.dataset;
let keys = selected.map(e => ${infoPrefix}List.getKey(e));
@ -352,6 +319,94 @@
// $("#btnRemove${infoPrefix}s").prop("disabled", keys.length < 1);
};
/**************************************************************************
*
**************************************************************************/
// DataTables에 click, dbclick 이벤트
function renderList${pageName}() {
let ${infoPrefix}List = ${pageName}Control.dataset;
let empty = ${infoPrefix}List.empty;
let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, 'onclick="${pageName}Control.setCurrent(\'' + dataItem.getValue("LEVY_EXCL_ID") + '\');"')
.replace(/{ondblclick}/gi, 'ondblclick="${pageName}Control.getInfo(\'' + 'levyExclId=' + dataItem.getValue("LEVY_EXCL_ID") + '\')"')
);
$("#tbody--${pageName}").html(trs.join());
$("th input[type='checkbox']").prop("checked", false);
}
// DataTables 더블클릭 이벤트
${pageName}Control.getInfo = (params) => {
let info = ${pageName}Control.dataset.getCurrent("item");
if (${pageName}Control.urls.getInfo) {
ajax.get({
url : ${pageName}Control.urls.getInfo
, data : params || {}
, success : resp => {
dialog.open({
id : ${pageName}Control.prefixed("dialog")
, title : ${pageName}Control.prefixName + " 정보"
, content : resp
, size : ${pageName}Control.infoSize
, init : () => ${pageName}Control.setInfo(info)
});
}
});
} else {
${pageName}Control.setInfo(info);
}
}
// Create 신규 등록
${pageName}Control.newInfo = (obj) => {
${pageName}Control.dataset.append(obj || {});
${pageName}Control.getInfo();
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 검색 조건 초기값
function initSearch${pageName}() {
// 업무구분
let defaultBizValue = $("#layout-navbar input[name='taskSeCd']:checked").val();
$("#frmSearch--${pageName} input[name='taskSeCd'][value='" + defaultBizValue + "']").prop("checked",true);
// 달력 초기화
initDatepicker("frmSearch--${pageName}");
$("#schDateFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-365).date);
$("#schDateTo--${pageName}").datepicker("setDate", new Date());
}
// 이벤트
function setEvent${pageName}() {
// 버튼 이벤트
$("#btnReset--${pageName}").on("click", () => fnReset${pageName}()); // 초기화
$("#btnSearch--${pageName}").on("click", () => fnSearchList${pageName}()); // 검색
$("#btnExcle--${pageName}").on("click", () => fnExcel${pageName}()); // 엑셀
$("#btnCreateNotLevy--${pageName}").on("click", () => fnCreate${pageName}("1")); // 비부과 등록
$("#btnCreateWarning--${pageName}").on("click", () => fnCreate${pageName}("2")); // 계고 등록
$("#btnRemove--${pageName}").on("click", () => fnRemove${pageName}()); // 삭제
$("#term--${pageName}").onEnterPress(() => fnSearchList${pageName}()); // 동적 검색
// DataTables 스크롤 이벤트
$("#table-responsive--${pageName}").scroll(function() {
let el = $(this);
if (el.scrollTop() == 0) return;
if ((el[0].scrollHeight - el.scrollTop() + 15) == el.outerHeight()) {
fnSearchList${pageName}(${pageName}Control.query.pageNum + 1);
}
});
}
/**************************************************************************
* function
**************************************************************************/
@ -371,8 +426,15 @@
${pageName}Control.load(pageNumber);
}
// 엑셀
function fnExcel${pageName}() {
}
// 등록
function fnCreate${pageName}(levyExclSeCd) {
let dialogInfo = {};
if (levyExclSeCd == "1") {
dialogInfo = {
id : "notLevy" + "dialog"
@ -383,16 +445,22 @@
id : "warning" + "dialog"
, title : "계고 등록"
}
, levyExclSeCd
} else {
return;
}
dialogInfo.levyExclSeCd = levyExclSeCd;
${pageName}Control.newInfo(dialogInfo);
}
// 삭제
function fnRemove${pageName}(levyExclSeCd) {
}
// 업무구분 변경
function fnResetAndChangeBiz(taskSeCd) {
function fnResetAndChangeBiz${pageName}(taskSeCd) {
$("tbody--${pageName}").html("");
}

@ -4,37 +4,32 @@
<!-- Page Body -->
<!-- 입력 영역 -->
<form id="frmInput--${pageName}" name="frmInput">
<input type="hidden" name="levyExclId" />
<input type="hidden" name="crdnId" />
<!-- 메인 조건 -->
<div class="container-search">
<div class="row g-1">
<!-- 부과제외 구분 -->
<div class="col-2 text-end">
<label class="form-label fw-bold">처리 구분</label>
</div>
<div class="col-10">
<select class="form-select" id="levyExclSeCd--${pageName}" name="levyExclSeCd">
<div class="col-md-12">
<label for="levyExclSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">처리 구분</label>
<select class="form-select" id="levyExclSeCd--${pageName}" name="levyExclSeCd" required >
<c:forEach items="${FIM021List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 부과제외 일자 -->
<div class="col-2 text-end">
<label class="form-label fw-bold">처리 일자</label>
</div>
<div class="col-10">
<span class="form-search-linebox">
<div class="col-md-12">
<label for="levyExclYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">처리 일자</label>
<input type="text" class="form-control form-date" id="levyExclYmd--${pageName}" name="levyExclYmd"
data-fmt-type="day" title="날짜 선택" />
data-fmt-type="day" title="날짜 선택" required />
<button type="button" class="bx bx-sm bx-calendar bg-white"></button>
</span>
</div>
<!-- 부과제외 사유 -->
<div class="col-2 text-end">
<label class="form-label fw-bold">처리 사유</label>
</div>
<div class="col-10">
<select class="form-select" id="levyExclRsnCd--${pageName}" name="levyExclRsnCd">
<div class="col-md-12">
<label for="levyExclRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">처리 사유</label>
<select class="form-select" id="levyExclRsnCd--${pageName}" name="levyExclRsnCd" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM022List}" var="item">
<option value="${item.code}">${item.value}</option>
@ -42,23 +37,21 @@
</select>
</div>
<!-- 기타 내용 -->
<div class="col-2 text-end">
<label class="form-label fw-bold">기타 내용</label>
</div>
<div class="col-10">
<input type="text" class="form-control w-px-500" id="etcCn--${pageName}" name="etcCn" />
<div class="col-md-12">
<label for="levyExclRsnCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">기타 내용</label>
<input type="text" class="form-control w-px-400" id="etcCn--${pageName}" name="etcCn" />
</div>
</div>
</div>
</form>
<!-- / 검색 조건 영역 -->
<!-- /입력 영역 -->
<!-- 업무 버튼 표시 -->
<div>
<span class="container-page-btn">
<span class="container-window-btn-right">
<!-- 업무 버튼 -->
<a href="#" class="btn btn-blue" id="btnUpdate--${pageName}" title="저장">저장</a>
<a href="#" class="btn btn-blue" id="btnSave--${pageName}" title="저장">저장</a>
</span>
</span>
</div>
@ -68,9 +61,58 @@
/**************************************************************************
* Global Variable
**************************************************************************/
// Control 생성
var ${pageName}Control = new LevyExclControl("${urlPrefix}");
var ${pageName}Fields = new FormFields("#frmInput--${pageName}");
var ${pageName}Mode = "${pageMode}";
/**************************************************************************
* Dataset
**************************************************************************/
var ${pageName}Info = new Dataset({
prefix : "levyExcl"
, keymapper : info => info ? info.levyExclId : ""
, urls : {
load : wctx.url(prefixUrl + "/010/list.do")
, getInfo : wctx.url(prefixUrl + "/020/info.do")
, create : wctx.url(prefixUrl + "/020/create.do")
, update : wctx.url(prefixUrl + "/020/update.do")
, remove : wctx.url(prefixUrl + "/020/remove.do")
}
, formats : {
levyExclYmd : dateFormat
}
, onCurrentChange : item => {
${pageName}Fields.set(item);
}
});
/**************************************************************************
*
**************************************************************************/
//
${pageName}Info.onSave = (resp) => {
if (resp.saved) {
dialog.alert("저장됐습니다.");
dialog.close(${pageName}Info.conf.prefix + "dialog");
excl01010Control.load("1");
}
}
/**************************************************************************
*
**************************************************************************/
//
${pageName}Info.save = (info) => {
if (!info) return;
let item = ${pageName}Info.getCurrent("item"),
create = "added" == item.state;
ajax.post({
url : !create ? ${pageName}Info.urls.update : ${pageName}Info.urls.create
, data : info
, success : resp => ${pageName}Info.onSave(resp)
});
}
/**************************************************************************
* 초기 셋팅
@ -85,21 +127,43 @@
//
function setEvent${pageName}() {
// 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => fnSave${pageName}()); // 저장
}
/**************************************************************************
* Event
* function
**************************************************************************/
// Dataset 변경
${pageName}Control.onDatasetChange = obj => {
console.log(obj);
// 저장
function fnSave${pageName}() {
if (!$("#frmInput--${pageName} input").validInputs()) return;
let formFields = new FimsFormFields("#frmInput--${pageName}");
let data = formFields.get();
if (${pageName}Mode == "create") {
create${pageName}(data);
} else if (${pageName}Mode == "update") {
}
}
/**************************************************************************
* function
**************************************************************************/
//
// 등록
function create${pageName}(data) {
ajax.post({
url : wctx.url(prefixUrl + "/020/create.do")
, data : data
, success : resp => ${pageName}Info.onSave(resp)
});
}
// 수정
function update${pageName}(data) {
ajax.post({
url : wctx.url(prefixUrl + "/020/update.do")
, data : data
, success : resp => ${pageName}Info.onSave(resp)
});
}
/**************************************************************************
* script 진입
@ -111,7 +175,14 @@
// 이벤트 설정
setEvent${pageName}();
${pageName}Control.addData(${levyExclInfo});
// Data 셋팅
if (${pageName}Mode == "create") {
} else if (${pageName}Mode == "update") {
${pageName}Info.setData([${levyExclInfo}]).setState();
} else {
}
});
// #sourceURL=excl01020-info.jsp

@ -1,54 +0,0 @@
class LevyExclControl extends DatasetControl {
constructor(prefixUrl) {
let conf = {
prefix : "levyExcl"
, prefixName : "부과제외"
, infoSize : "lg"
, keymapper : info => info ? info.LEVY_EXCL_ID : ""
, dataGetter : obj => obj.levyExclList
, appendData : true
, urls : {
load : wctx.url(prefixUrl + "/010/list.do")
, getInfo : wctx.url(prefixUrl + "/020/info.do")
, create : wctx.url(prefixUrl + "/020/create.do")
, update : wctx.url(prefixUrl + "/020/update.do")
, remove : wctx.url(prefixUrl + "/020/remove.do")
}
, formats : {
LEVY_EXCL_YMD : dateFormat
, CRDN_YMD_TM : datetimeFormat
, CVLCPT_RCPT_YMD : dateFormat
, REG_DT : datetimeFormat
, MDFCN_DT : datetimeFormat
}
}
super(conf);
}
getInfo(params) {
let info = this.dataset.getCurrent("item");
if (this.urls.getInfo)
ajax.get({
url : this.urls.getInfo
, data : params || {}
, success : resp => {
dialog.open({
id : info.data.id ? info.data.id : this.prefixed("dialog"),
title : info.data.title ? info.data.title : this.prefixName + " 정보",
content : resp,
size : this.infoSize,
init : () => this.setInfo(info)
});
}
});
else
this.setInfo(info);
}
newInfo(obj) {
this.dataset.append(obj || {});
this.getInfo();
}
}
Loading…
Cancel
Save