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("
"
+ ); // 예외를 발생시켜서 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("
"
- ); // 예외를 발생시켜서 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 @@
-
-
+
감경부과 등록
@@ -194,36 +194,39 @@
-
NO.
-
업무구분
-
단속일시
-
차량번호
-
법정동
-
단속장소
-
위반항목
-
최초단속금액
-
과태료금액
-
사전통지금액
-
처리상태
-
민원접수일자
-
민원신청번호
-
민원접수번호
-
민원처리일시
-
민원전송결과
-
납부자명
-
납부자생일
-
우편번호
-
주소
-
상세주소
-
등록일시
-
등록사용자
-
수정일시
-
수정사용자
-
+
+
+
NO.
+
업무구분
+
단속일시
+
차량번호
+
법정동
+
단속장소
+
위반항목
+
최초단속금액
+
과태료금액
+
처리상태
+
민원접수일자
+
민원신청번호
+
민원접수번호
+
민원처리일시
+
민원전송결과
+
납부자구분
+
납부자번호
+
납부자명
+
우편번호
+
주소
+
상세주소
+
등록일시
+
등록사용자
+
수정일시
+
수정사용자
+
+
{ROW_NUM}
@@ -235,15 +238,15 @@
{VLTN_ARTCL}
{FFNLG_CRDN_AMT}
{FFNLG_AMT}
-
{ADVNTCE_AMT}
{CRDN_STTS_NM}
{CVLCPT_RCPT_YMD}
{CVLCPT_APLY_NO}
{CVLCPT_RCPT_NO}
{CVLCPT_PRCS_CMPTN_DT}
{CVLCPT_TRSM_NM}
+
{RTPYR_SE_NM}
+
{RTPYR_NO}
{RTPYR_NM}
-
{RTPYR_BRDT_MASK}
{ZIP}
{ADDR}
{DTL_ADDR}
@@ -255,7 +258,19 @@
-
+
+
${prefixName} 정보를 찾지 못했습니다.
+
+
+
${prefixName} 정보를 찾지 못했습니다.
+
+
+
${prefixName} 정보를 찾지 못했습니다.
+
+
+
${prefixName} 정보를 찾지 못했습니다.
+
+
${prefixName} 정보를 찾지 못했습니다.
@@ -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"));