From 8e01e685c7399c8e012dc09dab9c17ed01715e3f Mon Sep 17 00:00:00 2001 From: jjh Date: Fri, 2 Feb 2024 16:50:13 +0900 Subject: [PATCH] =?UTF-8?q?1.=20=EC=82=AC=EC=A0=84=20=EA=B0=90=EA=B2=BD?= =?UTF-8?q?=EB=B6=80=EA=B3=BC=20=EC=88=98=EC=A0=95.=202.=20=EB=B6=80?= =?UTF-8?q?=EA=B3=BC=20=EA=B4=80=EB=A6=AC=20=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/levy/web/Levy01Controller.java | 5 +- .../xit/fims/sndb/service/bean/SndngBean.java | 72 +- .../WEB-INF/jsp/fims/excl/excl01010-main.jsp | 2 +- .../WEB-INF/jsp/fims/excl/excl01020-info.jsp | 11 +- .../WEB-INF/jsp/fims/excl/excl02020-info.jsp | 15 +- .../WEB-INF/jsp/fims/excl/excl02030-info.jsp | 9 +- .../WEB-INF/jsp/fims/levy/levy01010-main.jsp | 760 ++++++++++-------- .../WEB-INF/jsp/fims/levy/levy01020-info.jsp | 281 ++++--- .../WEB-INF/jsp/fims/levy/levy01050-main.jsp | 9 +- 9 files changed, 617 insertions(+), 547 deletions(-) diff --git a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java index 3a6c0fdf..2ce3c33c 100644 --- a/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java +++ b/src/main/java/cokr/xit/fims/levy/web/Levy01Controller.java @@ -134,8 +134,9 @@ public class Levy01Controller extends ApplicationController { , Map.entry("민원접수번호", xlsx.style("CVLCPT_RCPT_NO", center)) , Map.entry("민원접수일자", xlsx.format(o -> xlsx.str2date(o.get("CVLCPT_RCPT_YMD"))).style(dateYMD)) , Map.entry("민원전송결과", xlsx.style("CVLCPT_TRSM_NM", center)) + , Map.entry("납부자구분", xlsx.style("RTPYR_SE_NM", center)) + , Map.entry("납부자번호", xlsx.style("RTPYR_NO", center)) , Map.entry("납부자명", "RTPYR_NM") - , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) , Map.entry("우편번호", xlsx.style("ZIP", center)) , Map.entry("주소", "ADDR") , Map.entry("상세주소", "DTL_ADDR") @@ -309,8 +310,8 @@ public class Levy01Controller extends ApplicationController { , Map.entry("최초단속금액", xlsx.style("FFNLG_CRDN_AMT", numeric)) , Map.entry("처리상태", "CRDN_STTS_NM") , Map.entry("납부자구분", xlsx.style("RTPYR_SE_NM", center)) + , Map.entry("납부자번호", xlsx.style("RTPYR_NO", center)) , Map.entry("납부자명", "RTPYR_NM") - , Map.entry("납부자생일", xlsx.style("RTPYR_BRDT_MASK", center)) , Map.entry("우편번호", xlsx.style("ZIP", center)) , Map.entry("주소", "ADDR") , Map.entry("상세주소", "DTL_ADDR") diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index 301b3ad1..82e009f4 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -457,23 +457,8 @@ public class SndngBean extends AbstractComponent { ); // 예외를 발생시켜서 DB Rollback } - // 부과 ID가 없다면 부과대장 등록 - if (crdnPayerInfo.string("LEVY_ID").equals("")) { - Levy levy = new Levy(); - - levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID - levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 - levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 - levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 - - rtnMsg = levyBean.createRductLevy(levy); - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg.replace("[F]", "사전통지 발송상세 등록 작업중 ")); // 예외를 발생시켜서 DB Rollback - } - - // 단속, 납부자 정보 재조회 ///////////////////////////////////////// - crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId); - } else { + if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) { + // 부과 가산금 확인 if (crdnPayerInfo.number("LEVY_ADAMT").intValue() != 0) { throw new RuntimeException("

발송상세 등록 작업중 부과 가산금액이 0원이 아닙니다.

" + "

" @@ -483,6 +468,19 @@ public class SndngBean extends AbstractComponent { + "

" ); // 예외를 발생시켜서 DB Rollback } + // 사전 감경금액과 부과 본세금액 확인 + if (crdnPayerInfo.number("ADVNTCE_AMT").intValue() != crdnPayerInfo.number("LEVY_PCPTAX").intValue()) { + throw new RuntimeException("

발송상세 등록 작업중 사전 감경금액과 부과 본세금액이 다릅니다.

" + + "

" + + "단속ID : " + crdnPayerInfo.string("CRDN_ID") + + "
단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK") + + "
차량번호 : " + crdnPayerInfo.string("VHRNO") + + "
사전 감경금액 : " + crdnPayerInfo.string("ADVNTCE_AMT") + + "
부과 본세금액 : " + crdnPayerInfo.string("LEVY_PCPTAX") + + "

" + ); // 예외를 발생시켜서 DB Rollback + } + // 부과 본세와 합계 금액이 같은지 확인 if (crdnPayerInfo.number("LEVY_PCPTAX").intValue() != crdnPayerInfo.number("SUM_AMT").intValue()) { throw new RuntimeException("

발송상세 등록 작업중 본세금액과 합계금액이 다릅니다.

" + "

" @@ -495,38 +493,24 @@ public class SndngBean extends AbstractComponent { ); // 예외를 발생시켜서 DB Rollback } - if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) { - // 사전 감경금액과 부과 본세금액 확인 - if (crdnPayerInfo.number("ADVNTCE_AMT").intValue() != crdnPayerInfo.number("LEVY_PCPTAX").intValue()) { - throw new RuntimeException("

발송상세 등록 작업중 사전 감경금액과 부과 본세금액이 다릅니다.

" - + "

" - + "단속ID : " + crdnPayerInfo.string("CRDN_ID") - + "
단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK") - + "
차량번호 : " + crdnPayerInfo.string("VHRNO") - + "
사전 감경금액 : " + crdnPayerInfo.string("ADVNTCE_AMT") - + "
부과 본세금액 : " + crdnPayerInfo.string("LEVY_PCPTAX") - + "

" - ); // 예외를 발생시켜서 DB Rollback - } - - // 부과일자, 최초납기일자, 납기일자를 변경한다. - Levy levy = new Levy(); + // 부과일자, 최초납기일자, 납기일자를 변경한다. + Levy levy = new Levy(); - levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID - levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 - levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 - levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 - levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액 - levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액 - levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 + levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID + levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자 + levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자 + levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자 + levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액 + levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액 + levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 - rtnMsg = levyBean.updateRductLevyYmd(levy); - if (!rtnMsg.contains("[S]")) { - throw new RuntimeException(rtnMsg.replace("[F]", "사전통지 발송상세 등록 작업중 ")); // 예외를 발생시켜서 DB Rollback - } + rtnMsg = levyBean.updateRductLevyYmd(levy); + if (!rtnMsg.contains("[S]")) { + throw new RuntimeException(rtnMsg.replace("[F]", "사전통지 발송상세 등록 작업중 ")); // 예외를 발생시켜서 DB Rollback } } + // 발송상세(TB_SNDNG_DTL) 등록 SndngDtl sndngDtl = new SndngDtl(); sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp index 0b127a5f..e05db155 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01010-main.jsp @@ -563,7 +563,7 @@ /************************************************************************** * 버튼 clickEvent **************************************************************************/ - // 업무 구분 변경 + // 업무 구분 변경 이벤트 $P.fnResetAndChangeBiz = (taskSeCd) => { // 업무 구분 코드 if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp index 6cb45a96..bed5e523 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl01020-info.jsp @@ -82,9 +82,6 @@ **************************************************************************/ pageObject["${pageName}"] = {}; - // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) - var ${pageName}CallPurpose = "${callPurpose}"; - // 공통 코드 var FIM021 = new CommonCodes(${FIM021}, true); var FIM022 = new CommonCodes(${FIM022}, true); @@ -98,6 +95,8 @@ // URL $P.PrefixUrl = "/excl/excl01"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; // FormFields $P.formFields = new FimsFormFields("#frmEdit--${pageName}"); @@ -131,7 +130,7 @@ $P.setFim021(item.data.LEVY_EXCL_SE_CD, item.data.LEVY_EXCL_RSN_CD); // 호출용도가 등록 이라면.. - if (${pageName}CallPurpose = "create") { + if ($P.callPurpose == "create") { $("#levyExclYmd--${pageName}").datepicker("setDate", new Date()); } } @@ -160,7 +159,7 @@ $P.control.save = (info) => { if (!info) return; - let create = isEmpty(info.levyExclId); + let create = ($P.callPurpose == "create"); // 민원 접수 관리에서 호출했다면.. if (create && "${saveCallbackFuncName}" != "") { @@ -241,7 +240,7 @@ $("#vhrno--${pageName}").prop("readonly", true); // 차량번호 $("#levyExclSeNm--${pageName}").prop("readonly", true); // 부과 제외 구분 - if (${pageName}CallPurpose == "view") { + if ($P.callPurpose == "view") { // input 요소들을 disabled $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); // button 요소들을 disabled diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp index 7a030774..7b5267ce 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02020-info.jsp @@ -180,9 +180,6 @@ **************************************************************************/ pageObject["${pageName}"] = {}; - // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) - var ${pageName}CallPurpose = "${callPurpose}"; - /************************************************************************** * script 진입 **************************************************************************/ @@ -192,6 +189,8 @@ // URL $P.PrefixUrl = "/excl/excl02"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; // FormFields $P.formFields = new FimsFormFields("#frmEdit--${pageName}"); // 파일 리스트 @@ -220,7 +219,7 @@ $P.setURL(item.data.TASK_SE_CD); // 호출용도가 등록 이라면.. - if (${pageName}CallPurpose == "create") { + if ($P.callPurpose == "create") { $("#rcptYmd--${pageName}").datepicker("setDate", new Date()); } else { // 첨부파일 조회 @@ -252,7 +251,7 @@ if (!info) return; let formData = new FormData(); - let create = (${pageName}CallPurpose == "create"); + let create = ($P.callPurpose == "create"); // 첨부파일 배열에 있는 내용을 등록 for (let iLoop = 0; iLoop < $P.fileListArr.length; iLoop++) { @@ -488,7 +487,7 @@ $("#crdnYmdTm--${pageName}").prop("readonly", true); // 단속 일자 $("#rtpyrNm--${pageName}").prop("readonly", true); // 납부자 명 - if (${pageName}CallPurpose == "view") { + if ($P.callPurpose == "view") { // input 요소들을 disabled $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); // button 요소들을 disabled @@ -497,10 +496,10 @@ $("#btnSearchAddr--${pageName}").prop("disabled", true); // 우편번호 버튼 $("#btnAddFile--${pageName}").prop("disabled", true); // 파일 추가 버튼 $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 - } else if (${pageName}CallPurpose == "create") { + } else if ($P.callPurpose == "create") { $("#rcptNo--${pageName}").prop("readonly", true); // 접수 번호 $("#rcptYmd--${pageName}").datepicker("setDate", new Date()); // 접수 일자 - } else if (${pageName}CallPurpose == "update") { + } else if ($P.callPurpose == "update") { // } } diff --git a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp index 3ec136dd..a6aac151 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/excl/excl02030-info.jsp @@ -125,9 +125,6 @@ **************************************************************************/ pageObject["${pageName}"] = {}; - // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) - var ${pageName}CallPurpose = "${callPurpose}"; - /************************************************************************** * script 진입 **************************************************************************/ @@ -137,6 +134,8 @@ // URL $P.PrefixUrl = "/excl/excl02"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; // FormFields $P.formFields = new FimsFormFields("#frmEdit--${pageName}"); @@ -166,7 +165,7 @@ $P.fnChangeOpnnSbmsnSttsCd(item.data.OPNN_SBMSN_STTS_CD); // 호출용도가 등록 이라면.. - if (${pageName}CallPurpose = "create") { + if ($P.callPurpose == "create") { // 날짜 $("#ansYmd--${pageName}").datepicker("setDate", new Date()); // 시간 "09:51:35 GMT+0900 (한국 표준시)"의 형식에서 공백을 기준으로 잘라 시간 부분만 가져와줍니다. @@ -287,7 +286,7 @@ $("#ansTm--${pageName}").val(new Date().toTimeString().split(" ")[0]); // view 로 호출됐을 경우.. - if (${pageName}CallPurpose == "view") { + if ($P.callPurpose == "view") { $("btnSave--${pageName}").attr("disabled", true); } } diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp index 218f8c4b..7e4c02c7 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01010-main.jsp @@ -13,14 +13,14 @@
- - - @@ -178,7 +178,7 @@
- @@ -194,36 +194,39 @@ - NO. - 업무구분 - 단속일시 - 차량번호 - 법정동 - 단속장소 - 위반항목 - 최초단속금액 - 과태료금액 - 사전통지금액 - 처리상태 - 민원접수일자 - 민원신청번호 - 민원접수번호 - 민원처리일시 - 민원전송결과 - 납부자명 - 납부자생일 - 우편번호 - 주소 - 상세주소 - 등록일시 - 등록사용자 - 수정일시 - 수정사용자 - + + @@ -269,8 +284,6 @@
- -
@@ -279,373 +292,436 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/levy/levy01"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmSearch--${pageName}"); + pageObject["${pageName}"] = {}; + // 공통 코드 - var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 - var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 - var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 - var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 - var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 + var FIM004 = new CommonCodes(${FIM004}, true); // 주정차위반 내역 코드 + var FIM005 = new CommonCodes(${FIM005}, true); // 전용차로위반 내역 코드 + var FIM006 = new CommonCodes(${FIM006}, true); // 장애인주차위반 내역 코드 + var FIM061 = new CommonCodes(${FIM061}, true); // 전기차 충전구역 및 충전방해 위반 코드 + var FIM064 = new CommonCodes(${FIM064}, true); // 화물자동차 밤샘주차 위반 코드 /************************************************************************** - * DatasetControl + * script 진입 **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "rductLevyTrgt" - , prefixName : "감경부과 대상" - , infoSize : "md" - , keymapper : info => info ? info.CRDN_ID : "" - , dataGetter : obj => obj.rductLevyTrgtList - , appendData : true - , untilPageNum : 0 // 현재 페이지 번호 - , tableRenderComplete : false // dataTables 에 자료 추가 완료 여부 - , formats : { - CRDN_YMD_TM : datetimeFormat - , CVLCPT_RCPT_YMD : dateFormat - , FFNLG_CRDN_AMT : numberFormat - , FFNLG_AMT : numberFormat - , ADVNTCE_AMT : numberFormat - , CVLCPT_PRCS_CMPTN_DT : datetimeFormat - , REG_DT : datetimeFormat - , MDFCN_DT : datetimeFormat + $(document).ready(function() { + // pageObject + var $P = pageObject["${pageName}"]; + + // URL + $P.PrefixUrl = "/levy/levy01"; + // FormFields + $P.formFields = new FimsFormFields("#frmSearch--${pageName}"); + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "rductLevyTrgt" + , prefixName : "감경부과 대상" + , infoSize : "md" + , keymapper : info => info ? info.CRDN_ID : "" + , dataGetter : obj => obj.rductLevyTrgtList + , appendData : true + , formats : { + CRDN_YMD_TM : datetimeFormat + , CVLCPT_RCPT_YMD : dateFormat + , FFNLG_CRDN_AMT : numberFormat + , FFNLG_AMT : numberFormat + , CVLCPT_PRCS_CMPTN_DT : datetimeFormat + , REG_DT : datetimeFormat + , MDFCN_DT : datetimeFormat + } + }); + // $P.control 설정 + $P.control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 + $P.control.untilPageNum = 0; // 현재 페이지 번호 + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 완료 여부 + $P.control.beforeCurrent = null; + + /************************************************************************** + * DatasetControl 이벤트 + **************************************************************************/ + // Dataset 변경 이벤트 + $P.control.onDatasetChange = obj => { + $P.renderList(obj.${infoPrefix}Total); + + $("#paging--${pageName}").setPagingInfo({ + list : $P.control.dataset + , prefix : "paging--${pageName}" + , start : obj.${infoPrefix}Start + , totalSize : obj.${infoPrefix}Total + , fetchSize : obj.${infoPrefix}Fetch + , func : "$P.control.load({index})" + }); + + $P.control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 + }; + + // 현재 선택 자료 변경 이벤트 + $P.control.onCurrentChange = item => { + if (!item) return; + + let key = item.data.CRDN_ID; + + $("#tbody--${pageName}").setCurrentRow(key); + }; + + // 부과 정보 dialog + $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 + , content : resp + , size : $P.control.infoSize + , onClose : () => { $P.refreshList(); } // 자료 재조회 + }); + } + }); } - }); - /************************************************************************** - * DatasetControl 이벤트 - **************************************************************************/ - // Dataset 변경 이벤트 - ${pageName}Control.onDatasetChange = obj => { - renderList${pageName}(obj.${infoPrefix}Total); - - $("#paging--${pageName}").setPagingInfo({ - list : ${pageName}Control.dataset - , prefix : "paging--${pageName}" - , start : obj.${infoPrefix}Start - , totalSize : obj.${infoPrefix}Total - , fetchSize : obj.${infoPrefix}Fetch - , func : "${pageName}Control.load({index})" - }); + /************************************************************************** + * DataTables 이벤트 + **************************************************************************/ + // DataTables에 click, dbclick 이벤트 + $P.renderList = (totalSize) => { + let ${infoPrefix}List = $P.control.dataset; + let empty = ${infoPrefix}List.empty; + let clsForTask = $("#frmSearch--${pageName} input[name='taskSeCd']:checked").val().toLowerCase(); // 소문자 + + // 업무별 DataTables(그리드) tr, td + let foundContent = document.getElementById("${infoPrefix}Row--${pageName}").content; + let foundTr = $(foundContent).find("tr")[0].cloneNode(false); + let foundTds = $(foundContent).find("." + clsForTask + ",.cmn"); + + foundTds.each(function() { + foundTr.appendChild(this.cloneNode(true)); + }); - ${pageName}Control.tableRenderComplete = true; // dataTables 에 자료 추가 완료 - }; + // + let replacer = (str, dataItem) => str + .replace(/{onclick}/gi, "pageObject['${pageName}'].control.setCurrent('" + dataItem.getValue("LEVY_EXCL_ID") + "');") + .replace(/{ondblclick}/gi, "pageObject['${pageName}'].getTotalInfo('" + dataItem.getValue("CRDN_ID") + "');"); - // 현재 선택 자료 변경 이벤트 - ${pageName}Control.onCurrentChange = item => { - if (!item) return; + let trs = empty ? [document.getElementById("${infoPrefix}NotFound--${pageName}").content.querySelector("." + clsForTask + ",.cmn").outerHTML] + : ${infoPrefix}List.inStrings(foundTr.outerHTML, replacer); - let key = item.data.CRDN_ID; + let noMore = (totalSize == ${infoPrefix}List.length); + let initScroll = ($P.control.query.pageNum < 2) && ($P.control.untilPageNum == 0); - $("#tbody--${pageName}").setCurrentRow(key); - }; + $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); - // 부과 정보 dialog - ${pageName}Control.getInfo = (params) => { - if (!params) return; + if ($P.control.untilPageNum != 0) { + $P.control.query.fetchSize = $P.control.defaultFetchSize; + $P.control.query.pageNum = $P.control.untilPageNum; + $P.control.untilPageNum = 0; + } - let dialogTitle = ""; + // checkbox 체크 해제 + $("th input[type='checkbox']").prop("checked", false); - if (params.callPurpose == "create") { - dialogTitle = ${pageName}Control.prefixName + " 등록"; - } else if (params.callPurpose == "update") { - dialogTitle = ${pageName}Control.prefixName + " 수정"; - } else { - dialogTitle = ${pageName}Control.prefixName + " 정보"; + // 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); } - ajax.get({ - url : ${pageName}Control.urls.getInfo - , data : params || {} - , success : resp => { - dialog.open({ - id : ${pageName}Control.prefixed("Dialog") - , title : dialogTitle - , content : resp - , size : ${pageName}Control.infoSize - , onClose : () => { refreshList${pageName}(); } // 자료 재조회 - }); + // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 + $P.scrollDataList = () => { + $P.control.tableRenderComplete = false; // dataTables 에 자료 추가 false + + $P.control.load($P.control.query.pageNum + 1); + } + + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ + // callback 사용자 검색 + $P.callbackFindUser = (userId, userNm) => { + $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID + $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 + } + + // 사용자 검색 + $P.getFindUser = () => { + let params = { + callbackFuncName : "$P.callbackFindUser" } - }); - } - /************************************************************************** - * DataTables 이벤트 - **************************************************************************/ - // DataTables에 click, dbclick 이벤트 - renderList${pageName} = (totalSize) => { - 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, "${pageName}Control.setCurrent('" + dataItem.getValue("CRDN_ID") + "');") - .replace(/{ondblclick}/gi, "getTotalInfo${pageName}('" + dataItem.getValue("CRDN_ID") + "');") - ); - - let noMore = (totalSize == ${infoPrefix}List.length); - let initScroll = (${pageName}Control.query.pageNum < 2) && (${pageName}Control.untilPageNum == 0); - - $("#table-responsive--${pageName}")[0].changeContent(trs.join(), initScroll, noMore); - - if (${pageName}Control.untilPageNum != 0) { - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; - ${pageName}Control.query.pageNum = ${pageName}Control.untilPageNum; - ${pageName}Control.untilPageNum = 0; + ajax.get({ + url : wctx.url("/user/user02/010/main.do") + , data : params || {} + , success : resp => { + dialog.open({ + id : "userDialog" + , title : "사용자 검색" + , content : resp + , size : "lg" + }); + } + }); } - // checkbox 체크 해제 - $("th input[type='checkbox']").prop("checked", false); + // 개별총정보 dialog + $P.getTotalInfo = (crdnId) => { + if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; - //보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); - } + let params = { + callControlName : "pageObject['${pageName}'].control" + , sggCd : $("#sggCd--${pageName}").val() + , taskSeCd : $("input[name=taskSeCd]:checked").val() + , crdnId : crdnId + } - // DataTables에 스크롤이 맨 밑으로 이동했을 때 이벤트 - scrollDataList${pageName} = () => { - ${pageName}Control.tableRenderComplete = false; // dataTables 에 자료 추가 false + ajax.get({ + url : wctx.url("/" + params.taskSeCd + "/sprt/sprt02/010/main.do") + , data : params + , success : resp => { + dialog.open({ + id : "totalInfoMainDialog" + , title : "개별총정보" + , content : resp + , size : "xxl" + }); + } + }); + } - ${pageName}Control.load(${pageName}Control.query.pageNum + 1); - } + // 검색 자료 재조회 + $P.refreshList = () => { + $P.control.untilPageNum = $P.control.query.pageNum; + $P.control.query.fetchSize = $P.control.defaultFetchSize * $P.control.query.pageNum; - /************************************************************************** - * 사용자 함수(function) - **************************************************************************/ - // callback 사용자 검색 - callbackFindUser${pageName} = (userId, userNm) => { - $("#schRgtrCd--${pageName}").val(userId); // 사용자 ID - $("#schRgtrNm--${pageName}").val(userNm); // 사용자 명 - } - - // 사용자 검색 - getFindUser${pageName} = () => { - let params = { - callbackFuncName : "callbackFindUser${pageName}" + $P.control.load(1); } - ajax.get({ - url : wctx.url("/user/user02/010/main.do") - , data : params || {} - , success : resp => { - dialog.open({ - id : "userDialog" - , title : "사용자 검색" - , content : resp - , size : "lg" - }); + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 업무 구분 변경 이벤트 + $P.fnResetAndChangeBiz = (taskSeCd) => { + // 업무 구분 코드 + if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { + taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); } - }); - } - // 개별총정보 dialog - getTotalInfo${pageName} = (crdnId) => { - if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return; + // 초기 기본 설정 + $P.initForm(); + // 기본 데이터 설정 + $P.initData(taskSeCd); + // 업무 구분별 설정 + $P.setTask(taskSeCd); + + // dataset 초기화 + $P.control.dataset.clear(); + } + + // 검색 버튼 이벤트 + $P.fnSearchList = () => { + // 검색조건 + $P.control.query = $P.formFields.get(); + $P.control.query.fetchSize = $P.control.defaultFetchSize; // 한번에 조회되는 자료 건수 + $P.control.query.delYN = "N"; // 삭제 여부 - let params = { - callControlName : "${pageName}Control" - , sggCd : $("#sggCd--${pageName}").val() - , taskSeCd : $("input[name=taskSeCd]:checked").val() - , crdnId : crdnId + $P.control.load(1); } - ajax.get({ - url : wctx.url(params.taskSeCd + "/sprt/sprt02/010/main.do") - , data : params - , success : resp => { - dialog.open({ - id : "totalInfoMainDialog" - , title : "개별총정보" - , content : resp - , size : "xxl" + // 엑셀 버튼 이벤트 + $P.fnExcel = () => { + if ($P.control.dataset.empty) { + dialog.alert({ + content : "검색된 자료가 없습니다." + , onOK : () => { } }); + + return; } - }); - } - // 검색 자료 재조회 - refreshList${pageName} = () => { - ${pageName}Control.untilPageNum = ${pageName}Control.query.pageNum; - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize * ${pageName}Control.query.pageNum; + // DataTables(그리드) + let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") + , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); + $P.control.query.cellDefs = cellDefs; - ${pageName}Control.load(1); - } + $P.control.download(); + } - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 업무 구분 변경 - fnResetAndChangeBiz${pageName} = (taskSeCd) => { - // 업무 구분 코드 - if (typeof taskSeCd == "undefined" || taskSeCd == null || taskSeCd == "") { - taskSeCd = $("#layout-navbar input[name='taskSeCd']:checked").val(); + // 사용자 조회 버튼 이벤트 + $P.fnFindUser = () => { + $P.getFindUser(); } - // 초기 기본 설정 - initForm${pageName}(); + // 감경부과등록 버튼 이벤트 + $P.fnCreate = () => { + let params = $P.control.query; - // 기본 데이터 설정 - setFormData${pageName}(taskSeCd); - } - - // 검색 버튼 이벤트 - fnSearchList${pageName} = () => { - // 검색조건 - ${pageName}Control.query = ${pageName}Fields.get(); - - ${pageName}Control.query.fetchSize = ${pageName}Control.defaultFetchSize; // 1 페이지당 조회되는 자료 건수 - ${pageName}Control.query.delYn = "N"; // 삭제 여부 - - ${pageName}Control.load(1); - } - - // 엑셀 버튼 이벤트 - fnExcel${pageName} = () => { - if (${pageName}Control.dataset.empty) { - dialog.alert({ - content : "검색된 자료가 없습니다." - , onOK : () => { } - }); + params.callPurpose = "create"; + params.tnocs = $P.control.dataset.getValue("TNOCS"); + params.gramt = $P.control.dataset.getValue("GRAMT"); - return; - } + $P.control.getInfo(params); + } - // DataTables(그리드) - let cellDefs = getCellDefs($("#theadTr--${pageName} th").not(".dummy-th").not(":eq(0)") - , $($("#${infoPrefix}Row--${pageName}")[0].content).find("td").not(".dummy-td").not(":eq(0)")); - ${pageName}Control.query.cellDefs = cellDefs; + /************************************************************************** + * 초기 설정 + **************************************************************************/ + // 이벤트 설정 + $P.setEvent = () => { + // 기본 버튼 이벤트 + $("#btnReset--${pageName}").on("click", () => $P.fnResetAndChangeBiz()); // 초기화 + $("#btnSearch--${pageName}").on("click", () => $P.fnSearchList()); // 검색 + $("#btnExcel--${pageName}").on("click", () => $P.fnExcel()); // 엑셀 + $("#btnFindUser--${pageName}").on("click", () => $P.fnFindUser()); // 사용자 검색 + + // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. + $("#term--${pageName}").keypress(function(e) { + if (e.keyCode == 13) { + fnSearchList${pageName}();    + }     + }); - ${pageName}Control.download(); - } + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 + $("#frmSearch--${pageName}").find(".form-date").each(function() { + $(this).on("input", function() { + let value = this.value.replaceAll("-", ""); - // 사용자 조회 버튼 이벤트 - fnFindUser${pageName} = () => { - getFindUser${pageName}(); - } + if (value.length > 7) { + this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); + } else if(value.length > 5) { + this.value = value.substring(0, 4) + "-" + value.substring(4); + } + }); + }); - // 감경부과등록 버튼 이벤트 - fnCreate${pageName} = () => { - let params = ${pageName}Control.query; + // 업무 버튼 이벤트 + $("#btnCreate--${pageName}").on("click", () => $P.fnCreate()); // 부과제외 수정 - params.callPurpose = "create"; - params.tnocs = ${pageName}Control.dataset.getValue("TNOCS"); - params.gramt = ${pageName}Control.dataset.getValue("GRAMT"); + // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - ${pageName}Control.getInfo(params); - } + // DataTables 스크롤 이벤트 생성 + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); + } - /************************************************************************** - * 초기 설정 - **************************************************************************/ - // 이벤트 - setEvent${pageName} = () => { - // 동적검색에서 엔터(Enter) 키를 누르면 검색한다. - $("#term--${pageName}").keypress(function(e) { - if (e.keyCode == 13) { - fnSearchList${pageName}();    - }     - }); + // 초기 화면 설정 + $P.initForm = () => { + // 화면 초기화 + $("#frmSearch--${pageName}")[0].reset(); + + // input, select 초기화 + let searchForm = $("#frmSearch--${pageName}"); + searchForm.find("input[type='radio']").not("[name='taskSeCd']").prop("checked", false); + searchForm.find("input[type='checkbox']").prop("checked", false); + searchForm.find("input[type='text']").val(""); + searchForm.find("input[type='hidden']").val(""); + searchForm.find("select").each(function() { $(this).find("option:eq(0)").prop("selected", true); }); + + // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. + $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { + $(this).prop("disabled", "true"); + }); + + // 달력 초기화 + initDatepicker("frmSearch--${pageName}"); + $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", new Date()); + $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); + + // 동적 검색 + $("#byOutput--${pageName}").val("동적 검색"); + + // 사용자 이름 + $("#schRgtrNm--${pageName}").prop("readonly", true); + } - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmSearch--${pageName}").find(".form-date").each(function() { - $(this).on("input", function() { - let value = this.value.replaceAll("-", ""); + // 기본 데이터 설정 + $P.initData = (taskSeCd) => { + // 시군구 코드 + $("#sggCd--${pageName}").val("${sggCd}"); + // 업무 구분 코드 + $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); + // 일자 + $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); + $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); + + // 업무에 따른 위반 내용 + let vltnCd = []; + if (taskSeCd == "PVS") { // 주정차 위반 + vltnCd = FIM004.list(); + } else if (taskSeCd == "BPV") { // 전용차로 위반 + vltnCd = FIM005.list(); + } else if (taskSeCd == "DPV") { // 장애인 전용 + vltnCd = FIM006.list(); + } else if (taskSeCd == "ECA") { // 전기차 주차 위반 + vltnCd = FIM061.list(); + } else if (taskSeCd == "TPV") { // 밤샘 주차 위반 + vltnCd = FIM064.list(); + } else { + return; + } + // 위반 항목 + $("#schVltnCd--${pageName}").empty(); - if (value.length > 7) { - this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); - } else if(value.length > 5) { - this.value = value.substring(0, 4) + "-" + value.substring(4); - } + $("#schVltnCd--${pageName}").append(""); + $(vltnCd).each(function(index, item) { + $("#schVltnCd--${pageName}").append(""); }); - }); + } - // DataTables width 변경 조정 업무별 그리드가 존재 한다면.. crdn06010-main.jsp 참고 - $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); + // 업무 구분별 설정 + $P.setTask = (taskSeCd) => { + let clsForTask = taskSeCd.toLowerCase(); - // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); - } + // 업무별 조회조건 + renderForTask("frmSearch--${pageName}", clsForTask); - // 화면 초기 설정 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmSearch--${pageName}")[0].reset(); + // 업무별 그리드 th + $("#DataTables_Table_0--${pageName}").find("th").resizable( "destroy" ); - // 최고 관리자 경우 업무구분을 선택할 수 있도록 하자. - $("#frmSearch--${pageName} input[name='taskSeCd']").each(function(i) { - $(this).prop("disabled", "true"); - }); + let colContent = document.getElementById("${infoPrefix}Col--${pageName}").content; + let cols = $(colContent).find("." + clsForTask + ",.cmn"); + let colsOuterHTML = ""; - // 달력 초기화 - initDatepicker("frmSearch--${pageName}"); - $("#schCrdnYmdFrom--${pageName}").datepicker("setDate", DateUtil.getDateDay(-7).date); - $("#schCrdnYmdTo--${pageName}").datepicker("setDate", new Date()); - - // 사용자 이름 - $("#schRgtrNm--${pageName}").prop("readonly", true); - - // dataset 초기화 - ${pageName}Control.dataset.clear(); - } - - // 기본 데이터 설정 - setFormData${pageName} = (taskSeCd) => { - // ${pageName}Control 설정 - ${pageName}Control.defaultFetchSize = FETCH_XS; // 1 페이지당 조회되는 자료 건수 index.jsp에서 확인 FETCH_XS = 30 - - // 화면 데이터 설정 - $("#sggCd--${pageName}").val("${sggCd}"); // 시군구 코드 - $("#frmSearch--${pageName} input[name='taskSeCd'][value='" + taskSeCd + "']").prop("checked", true); // 업무 구분 - - // 업무에 따른 위반 내용 - let vltnCd = []; - if (taskSeCd == "PVS") { // 주정차 위반 - vltnCd = FIM004.list(); - } else if (taskSeCd == "BPV") { // 전용차로 위반 - vltnCd = FIM005.list(); - } else if (taskSeCd == "DPV") { // 장애인 전용 - vltnCd = FIM006.list(); - } else if (taskSeCd == "ECA") { // 전기차 주차 위반 - vltnCd = FIM061.list(); - } else if (taskSeCd == "TPV") { // 밤샘 주차 위반 - vltnCd = FIM064.list(); - } else { - return; - } - // 위반 항목 - $("#schVltnCd--${pageName}").empty(); + cols.each(function() { + colsOuterHTML += this.outerHTML; + }); - $("#schVltnCd--${pageName}").append(""); - $(vltnCd).each(function(index, item) { - $("#schVltnCd--${pageName}").append(""); - }); + $("#theadTr--${pageName}").html(colsOuterHTML); + $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); - // URL 설정 - setURL${pageName}(taskSeCd); - } + // URL 설정 + $P.setURL(taskSeCd); + } - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.load = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/010/list.do"); // 조회 - ${pageName}Control.urls.getInfo = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/020/info.do"); // 등록 - } + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.load = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/010/list.do"); // 조회 + $P.control.urls.getInfo = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/info.do"); // 등록 + } - /************************************************************************** - * script 진입 - **************************************************************************/ - $(document).ready(function() { - // 이벤트 설정 - setEvent${pageName}(); + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); - // 보안모드 - fn_securityModeToggle($("#securityMode--top").is(":checked")); + // 2. 화면 초기 설정 및 업무 구분 변경 + $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); - // 화면 초기 설정 및 업무 구분 변경 - fnResetAndChangeBiz${pageName}($("#layout-navbar input[name='taskSeCd']:checked").val()); + // 3. 보안모드 + fn_securityModeToggle($("#securityMode--top").is(":checked")); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp index 67ff72ab..df49d92a 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01020-info.jsp @@ -14,6 +14,7 @@ +
@@ -55,7 +56,7 @@ - @@ -70,165 +71,177 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/levy/levy01"; - // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) - var ${pageName}CallPurpose = "${callPurpose}"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); - // main 의 검색 조건을 그대로 유지 - var ${pageName}Query = ${levyQuery}; + pageObject["${pageName}"] = {}; /************************************************************************** - * DatasetControl + * script 진입 **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "rductLevyTrgt" - , prefixName : "감경부과" - , keymapper : info => info ? info.CRDN_ID : "" - , dataGetter : obj => obj.rductLevyInfo - , formats : { - TNOCS : numberFormat - , GRAMT : numberFormat - } - }); + $(document).ready(function() { + // pageObject + var $P = pageObject["${pageName}"]; + + // URL + $P.PrefixUrl = "/levy/levy01"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; + // FormFields + $P.formFields = new FimsFormFields("#frmEdit--${pageName}"); + // main 의 검색 조건을 그대로 유지 + $P.mainQuery = ${levyQuery}; + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "rductLevyTrgt" + , prefixName : "감경부과" + , keymapper : info => info ? info.CRDN_ID : "" + , dataGetter : obj => obj.rductLevyInfo + , formats : { + TNOCS : numberFormat + , GRAMT : numberFormat + } + }); - ${pageName}Control.onCurrentChange = item => { - if (!item) return; + /************************************************************************** + * DatasetControl 이벤트 + **************************************************************************/ + $P.control.onCurrentChange = item => { + if (!item) return; - // Dataset 셋팅 - ${pageName}Fields.set(item); + // Dataset 셋팅 + $P.formFields.set(item); - // 업무구분에 따른 url 변경 - ${pageName}Control.urls.create = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/createRductLevyList.do"); - ${pageName}Control.urls.update = wctx.url(item.data.TASK_SE_CD + ${pageName}PrefixUrl + "/020/updateRductLevyList.do"); - } + // 업무구분에 따른 URL 변경 + $P.setURL(item.data.TASK_SE_CD); + } - /************************************************************************** - * DatasetControl 이벤트 - **************************************************************************/ - // 저장 callback - ${pageName}Control.onSave = (resp) => { - let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); - let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); + // 저장 callback + $P.control.onSave = (resp) => { + let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); + let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); - dialog.alert(showMessage); + // 메시지 출력 + dialog.alert({ + content : showMessage + , onOK : () => { } + }); - if (resp.saved) { - dialog.close(${pageName}Control.prefix + "Dialog"); + if (resp.saved) { + dialog.close($P.control.prefix + "Dialog"); + } } - } - // 저장 - ${pageName}Control.save = (info) => { - if (!info) return; + // 저장 + $P.control.save = (info) => { + if (!info) return; - let create = (${pageName}CallPurpose == "create"); - let params = $.extend({}, ${pageName}Query, info); // 객체를 합친다. + // 메인에서 받은 검색 조건과 객체를 합친다. + let params = $.extend({}, $P.mainQuery, info); - ajax.post({ - url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create - , data : params - , success : resp => ${pageName}Control.onSave(resp) - }); - } + ajax.post({ + url : $P.control.urls.create + , data : params + , success : resp => $P.control.onSave(resp) + }); + } - /************************************************************************** - * 사용자 함수(function) - **************************************************************************/ + /************************************************************************** + * 사용자 함수(function) + **************************************************************************/ - /************************************************************************** - * 버튼 clickEvent - **************************************************************************/ - // 저장 버튼 클릭 이벤트 - fnSave${pageName} = () => { - // validate 확인 - if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; - - dialog.alert({ - content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" - , onOK : () => { - ${pageName}Control.save(${pageName}Fields.get()); - } - }); - } + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 저장 버튼 클릭 이벤트 + $P.fnSave = () => { + // validate 확인 + if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 이벤트 설정 - setEvent${pageName} = () => { - // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 - $("#frmEdit--${pageName}").find(".form-date").each(function() { - $(this).on("input", function() { - let value = this.value.replaceAll("-",""); - - if (value.length > 7) { - this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); - } else if(value.length > 5) { - this.value = value.substring(0, 4) + "-" + value.substring(4); + dialog.alert({ + content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" + , onOK : () => { + $P.control.save($P.formFields.get()); } }); - }); - - $("#levyYmd--${pageName}").on("change", function() { - let levyYmd = $("#levyYmd--${pageName}").val(); - let advntceDaycnt = $("#advntceDaycnt--${pageName}").val(); - - $("#dudtYmd--${pageName}").val(addDate(levyYmd, Number(advntceDaycnt))); - }); - } - - // 화면 초기 설정 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmEdit--${pageName}")[0].reset(); - - // 달력 초기화 - initDatepicker("frmEdit--${pageName}"); - - $("#levyYmd--${pageName}").datepicker("setDate", new Date()); - $("#dudtYmd--${pageName}").datepicker("setDate", new Date()); - } - - // 기본 데이터 설정 - setFormData${pageName} = () => { - $("#tnocs--${pageName}").prop("readonly", true); // 총건수 - $("#gramt--${pageName}").prop("readonly", true); // 총금액 - $("#advntceRductRt--${pageName}").prop("readonly", true); // 감경율 - - if (${pageName}CallPurpose == "view") { - // input 요소들을 disabled - $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); - // button 요소들을 disabled - $("#btnLevyYmd--${pageName}").prop("disabled", true); // 부과 일자 버튼 - $("#btnDudtYmd--${pageName}").prop("disabled", true); // 납기 일자 버튼 - $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 - } else if (${pageName}CallPurpose == "create") { -// let advntceDayCnt = ${pageName}Control.dataset.getValue("ADVNTCE_DAY_CNT"); -// $("#levyYmd--${pageName}").datepicker("setDate", new Date()); -// $("#dudtYmd--${pageName}").datepicker("setDate", DateUtil.getDateDay(advntceDayCnt).date); - } else if (${pageName}CallPurpose == "update") { - // } - } - /************************************************************************** - * script 진입 - **************************************************************************/ - $(document).ready(function() { + /************************************************************************** + * 초기 셋팅 + **************************************************************************/ // 이벤트 설정 - setEvent${pageName}(); + $P.setEvent = () => { + // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 + $("#frmEdit--${pageName}").find(".form-date").each(function() { + $(this).on("input", function() { + let value = this.value.replaceAll("-",""); + + if (value.length > 7) { + this.value = value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6); + } else if(value.length > 5) { + this.value = value.substring(0, 4) + "-" + value.substring(4); + } + }); + }); + + // 업무 버튼 이벤트 + $("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 - // 초기 기본 설정 - initForm${pageName}(); + // 부과 일자 변경 이벤트 + $("#levyYmd--${pageName}").on("change", function() { + let levyYmd = $("#levyYmd--${pageName}").val(); + let advntceDayCnt = $("#advntceDayCnt--${pageName}").val(); + + $("#dudtYmd--${pageName}").val(addDate(levyYmd, Number(advntceDayCnt))); + }); + } - // Dataset 설정 - ${pageName}Control.setData([${rductLevyYmdInfo}]); + // 초기 화면 설정 + $P.initForm = () => { + // 달력 초기화 + initDatepicker("frmEdit--${pageName}"); + $("#levyYmd--${pageName}").datepicker("setDate", new Date()); + $("#dudtYmd--${pageName}").datepicker("setDate", new Date()); + + $("#tnocs--${pageName}").prop("readonly", true); // 총건수 + $("#gramt--${pageName}").prop("readonly", true); // 총금액 + $("#advntceRductRt--${pageName}").prop("readonly", true); // 감경율 + + if ($P.callPurpose == "view") { + // input 요소들을 disabled + $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); + // button 요소들을 disabled + $("#btnLevyYmd--${pageName}").prop("disabled", true); // 부과 일자 버튼 + $("#btnDudtYmd--${pageName}").prop("disabled", true); // 납기 일자 버튼 + $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 + } + } // 기본 데이터 설정 - setFormData${pageName}(); + $P.initData = () => { + + } + + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/020/createRductLevyList.do"); // 등록 + } + + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); + + // 2. 초기 화면 설정 + $P.initForm(); + + // 3. 기본 데이터 설정 + $P.initData(); + + // 4. Dataset 설정 + $P.control.setData([${rductLevyYmdInfo}]); }); diff --git a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp index 88f666b2..eef68258 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/levy/levy01050-main.jsp @@ -249,8 +249,8 @@ 최초금액 처리상태 납부자구분 + 납부자번호 납부자명 - 납부자생일 우편번호 주소 상세주소 @@ -304,8 +304,8 @@ {FFNLG_CRDN_AMT} {CRDN_STTS_NM} {RTPYR_SE_NM} + {RTPYR_NO} {RTPYR_NM} - {RTPYR_BRDT_MASK} {ZIP} {ADDR} {DTL_ADDR} @@ -407,7 +407,7 @@ /************************************************************************** * DatasetControl 이벤트 **************************************************************************/ - // Dataset 변경 + // Dataset 변경 이벤트 $P.control.onDatasetChange = obj => { $P.renderList(obj.${infoPrefix}Total); @@ -746,8 +746,7 @@ $P.setEvent(); // 2. 화면 초기 설정 및 업무 구분 변경 -// $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); - $P.fnResetAndChangeBiz("DPV"); + $P.fnResetAndChangeBiz($("#layout-navbar input[name='taskSeCd']:checked").val()); // 3. 보안모드 fn_securityModeToggle($("#securityMode--top").is(":checked"));