diff --git a/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java b/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java index 946cd652..194f5cd4 100644 --- a/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java +++ b/src/main/java/cokr/xit/fims/sndb/dao/SndngDtlMapper.java @@ -148,9 +148,6 @@ public interface SndngDtlMapper extends AbstractMapper { return sndngDtl != null && deleteSndngDtl(params().set("sndngDtl", sndngDtl)) == 1; } - - - /**지정한 조건에 따라 발송 상세 목록을 조회하여 반환한다. * @param req 발송 조회 조건 * @return 발송 상세 반송 정보 @@ -163,6 +160,12 @@ public interface SndngDtlMapper extends AbstractMapper { */ List selectSndbks(SndbQuery req); + /**지정한 조건에 따라 공시송달 대상 발송 상세 객체들을 반환한다. + * @param req 발송 조회 조건 + * @return 발송 상세 반송 정보 + */ + List selectSvbtcsTrgtSndngDtlIDs(SndbQuery req); + /**지정한 조건에 따라 발송 상세 객체의 마지막 1개를 반환한다. * @param req 발송 조회 조건 * @return 발송 상세 반송 정보 diff --git a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java index 143104d1..0f2ba0fc 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SndngDtlService.java @@ -129,14 +129,6 @@ public interface SndngDtlService { - /**공시송달 대장 정보를 등록한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - * - */ - String createSvbtc(Svbtc svbtc); /**공시송달 대장 정보를 삭제한다. * @param svbtc 공시송달 대장 diff --git a/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java b/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java index 1f98e929..750f12c6 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java +++ b/src/main/java/cokr/xit/fims/sndb/service/SvbtcService.java @@ -15,7 +15,7 @@ import cokr.xit.fims.sndb.SndbQuery; * *
  * ============ 변경 이력 ============
- * 2024-01-09	mjkhan 최초 작성
+ * 2024-01-09	JoJH 최초 작성
  * ================================
  * 
*/ @@ -57,6 +57,15 @@ public interface SvbtcService { */ Map makeSvbtcFileFromHwpFormat(String formatType, String formatName, PrintOption printOption, SndbQuery req); + /**공시송달 대장 정보를 등록한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
  • 저장됐으면 true
  • + *
  • 그렇지 않으면 false
  • + *
+ */ + String createSvbtc(SndbQuery req, Svbtc svbtc); + /**공시송달 대장 정보를 등록한다. * @param svbtc 공시송달 대장 * @return 저장 여부 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java index 3947fb28..8791aa14 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlBean.java @@ -10,7 +10,6 @@ import cokr.xit.foundation.AbstractComponent; import cokr.xit.foundation.data.DataObject; import cokr.xit.fims.sndb.SndngDtl; -import cokr.xit.fims.sndb.Svbtc; import cokr.xit.fims.cmmn.CmmnUtil; import cokr.xit.fims.epst.EpostQuery; import cokr.xit.fims.epst.dao.EpostDlvrRsltMapper; @@ -320,55 +319,6 @@ public class SndngDtlBean extends AbstractComponent { return rtnMsg; } - - - - - - - - - /**공시송달 대장 정보를 등록한다. - * @param svbtc 공시송달 대장 - * @return 저장 여부 - *
  • 저장됐으면 true
  • - *
  • 그렇지 않으면 false
  • - *
- */ - public String createSvbtc(Svbtc svbtc) { - // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 - - // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 등록 한다. - rtnScs = svbtcMapper.insert(svbtc); - if (!rtnScs) { - // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback - throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); - } - - // 발송 상세 대장에 공시송달 정보 수정 - for (int iLoop = 0; iLoop < svbtc.getSndngDtlIDs().length; iLoop++) { - // 발송 상세 - SndngDtl sndngDtl = new SndngDtl(); - - sndngDtl.setSvbtcId(svbtc.getSvbtcId()); - sndngDtl.setSndngDtlSttsCd("06"); - sndngDtl.setSndngDtlId(svbtc.getSndngDtlIDs()[iLoop]); - - rtnScs = sndngDtlMapper.updateSndngDtlSvbtc(sndngDtl); - if (!rtnScs) { - throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback - } - } - - rtnMsg = "[S] 작업이 정상 처리 되었습니다."; - - return rtnMsg; - } - - - /**공시송달ID 조건에 따라 발송상세 대장의 총 건수를 조회한다. * @param req 발송 대장 조회 조건 * @return 계도장 발송 대상 목록 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java index d2af319a..8efbce91 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngDtlServiceBean.java @@ -107,11 +107,6 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl - @Override - public String createSvbtc(Svbtc svbtc) { - return sndngDtlBean.createSvbtc(svbtc); - } - @Override public String removeSvbtcEach(Svbtc svbtc) { // 변수 선언 diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java index 6e54842d..21d57947 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcBean.java @@ -1,5 +1,6 @@ package cokr.xit.fims.sndb.service.bean; +import java.util.ArrayList; import java.util.List; import javax.annotation.Resource; @@ -125,12 +126,65 @@ public class SvbtcBean extends AbstractComponent { *
  • 그렇지 않으면 false
  • * */ + public String createSvbtc(SndbQuery req, Svbtc svbtc) { + // 변수 선언 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 + + // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 등록 한다. + rtnScs = svbtcMapper.insert(svbtc); + if (!rtnScs) { + // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback + throw new RuntimeException("공시송달 정보 등록에 실패하였습니다."); + } + + List sndngDtlList = new ArrayList(); + if (svbtc.getSndngDtlIDs() == null || svbtc.getSndngDtlIDs().length < 1) { + req.setOrderBy("SD.SNDNG_DTL_ID"); + + sndngDtlList = sndngDtlMapper.selectSvbtcsTrgtSndngDtlIDs(req); + } else { + SndbQuery query = new SndbQuery(); + + query.setSndngDtlIDs(svbtc.getSndngDtlIDs()); + query.setOrderBy("SD.SNDNG_DTL_ID"); + + sndngDtlList = sndngDtlMapper.selectSvbtcsTrgtSndngDtlIDs(query); + } + + // 발송 상세 대장에 공시송달 정보 수정 + for (int iLoop = 0; iLoop < sndngDtlList.size(); iLoop++) { + // 발송 상세 + SndngDtl sndngDtl = new SndngDtl(); + + sndngDtl.setSvbtcId(svbtc.getSvbtcId()); + sndngDtl.setSndngDtlSttsCd("06"); + sndngDtl.setSndngDtlId(sndngDtlList.get(iLoop).string("SNDNG_DTL_ID")); + + rtnScs = sndngDtlMapper.updateSndngDtlSvbtc(sndngDtl); + if (!rtnScs) { + throw new RuntimeException("발송상세 대장에 공시송달 정보 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback + } + } + + rtnMsg = "[S] 작업이 정상 처리 되었습니다."; + + return rtnMsg; + } + + /**공시송달 대장 정보를 수정한다. + * @param svbtc 공시송달 대장 + * @return 저장 여부 + *
    • 저장됐으면 true
    • + *
    • 그렇지 않으면 false
    • + *
    + */ public String create(Svbtc svbtc) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 - // 공시송달(TB_SVBTC) 정보를 등록 한다. + // 공시송달(TB_SNDNG_DTL) 대장에 공시송달 정보를 등록 한다. rtnScs = svbtcMapper.insert(svbtc); if (!rtnScs) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback @@ -151,8 +205,8 @@ public class SvbtcBean extends AbstractComponent { */ public String update(Svbtc svbtc) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 공시송달(TB_SVBTC) 정보를 수정 한다. rtnScs = svbtcMapper.update(svbtc); @@ -175,8 +229,8 @@ public class SvbtcBean extends AbstractComponent { */ public String removeSvbtc(Svbtc svbtc) { // 변수 선언 - boolean rtnScs = false; // DB 처리 결과 - String rtnMsg = "[F] "; // 처리 결과 메시지 + boolean rtnScs = false; // DB 처리 결과 + String rtnMsg = "[F] "; // 처리 결과 메시지 // 공시송달(TB_SVBTC) 대장을 삭제 한다. rtnScs = svbtcMapper.delete(svbtc); diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java index df6e5fb6..e641493c 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SvbtcServiceBean.java @@ -171,6 +171,11 @@ public class SvbtcServiceBean extends AbstractServiceBean implements SvbtcServic return result; } + @Override + public String createSvbtc(SndbQuery req, Svbtc svbtc) { + return svbtcBean.createSvbtc(req, svbtc); + } + @Override public String create(Svbtc svbtc) { return svbtcBean.create(svbtc); diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index 2f7faff9..e8c09f6a 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -1364,9 +1364,11 @@ public class Sndb01Controller extends ApplicationController { mav.setViewName("fims/sndb/sndb01250-info"); return mav - .addObject("pageName", "sndb01250") - .addObject("query", toJson(req)) - .addObject("svbtcDtlList", toJson(mav.getModel().get("svbtcDtlList"))) + .addObject("pageName", "sndb01250") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "svbtcDtl") // prefix + .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 + .addObject("mainQuery", toJson(req)) // 검색 조건 + .addObject("svbtcDtlList", toJson(mav.getModel().get("svbtcDtlList"))) // 자료 ; } @@ -1494,10 +1496,10 @@ public class Sndb01Controller extends ApplicationController { addCodes(commonCodes, mav, "FIM047", "FIM054"); return mav - .addObject("pageName", "sndb01260") + .addObject("pageName", "sndb01260") // View(jsp)에서 사용할 id 뒤에 붙일 suffix + .addObject("infoPrefix", "svbtc") // prefix .addObject("callPurpose", req.getCallPurpose()) // 호출 용도 - .addObject("FIM054List", commonCodes.get("FIM054")) // 업무 구분 코드(TASK_SE_CD) - .addObject("sndbkQuery", json ? req : toJson(req)) // Query + .addObject("mainQuery", json ? req : toJson(req)) // Query .addObject("svbtcInfo", json ? svbtcInfo : toJson(svbtcInfo)) // 공시송달 정보 ; } @@ -1512,7 +1514,7 @@ public class Sndb01Controller extends ApplicationController { */ public ModelAndView createServiceByPublicNotice(SndbQuery req, Svbtc svbtc) { boolean saved = false; - String rtnMsg = sndngDtlService.createSvbtc(svbtc); + String rtnMsg = svbtcService.createSvbtc(req, svbtc); if (rtnMsg.contains("[S]")) { saved = true; diff --git a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml index a7021ee5..5a589ecf 100644 --- a/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/sndngDtl-mapper.xml @@ -838,6 +838,12 @@ , P.ADDR , P.DTL_ADDR , (SELECT GET_CODE_NM('FIM011', P.RTPYR_SE_CD) FROM DUAL) AS RTPYR_SE_NM + + + + + + FROM TB_SNDNG_DTL SD INNER JOIN TB_CRDN C ON (SD.CRDN_ID = C.CRDN_ID) LEFT OUTER JOIN TB_PAYER P ON (C.RTPYR_ID = P.RTPYR_ID) @@ -848,6 +854,11 @@ AND (SD.SVBTC_ID IS NULL OR SD.SVBTC_ID = '') AND (SD.SNDNG_RCVMT_CD IS NULL OR SD.SNDNG_RCVMT_CD = '') AND (S.RESND_YN IS NULL OR S.RESND_YN = 'N') + + AND SD.SNDNG_DTL_ID IN ( + #{sndngDtlId} + ) + AND ( (SD.SNDNG_DTL_STTS_CD = #{sndngDtlSttsCd}) @@ -956,8 +967,12 @@ + + + @@ -994,11 +1009,6 @@ AND SD.SNDNG_DTL_ID = #{sndngDtlId} - - AND SD.SNDNG_ID IN ( - #{sndngId} - ) - AND SD.SNDNG_ID = #{sndngId} diff --git a/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml b/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml index 9d2cdca5..cf598d15 100644 --- a/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml +++ b/src/main/resources/sql/mapper/fims/sndb/svbtc-mapper.xml @@ -325,6 +325,14 @@ + + /* 공시송달 대장 등록(svbtcMapper.insertSvbtc) */ SELECT CONCAT(DATE_FORMAT(CURRENT_DATE, '%Y'), LPAD(CAST(IFNULL(MAX(SUBSTRING(SVBTC_ID, 5)) + 1, 1) AS INT), 16, '0')) AS NEW_ID diff --git a/src/main/resources/template/hwp/svbtcList_inner.hwp b/src/main/resources/template/hwp/svbtcList_inner.hwp index bb479c4d..b4e18a2c 100644 Binary files a/src/main/resources/template/hwp/svbtcList_inner.hwp and b/src/main/resources/template/hwp/svbtcList_inner.hwp differ diff --git a/src/main/resources/template/hwp/svbtcList_root.hwp b/src/main/resources/template/hwp/svbtcList_root.hwp index 68314f49..a67e5cb4 100644 Binary files a/src/main/resources/template/hwp/svbtcList_root.hwp and b/src/main/resources/template/hwp/svbtcList_root.hwp differ diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01220-main.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01220-main.jsp index 669edb30..4ff8c48c 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01220-main.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01220-main.jsp @@ -179,14 +179,14 @@ - - - @@ -507,8 +507,6 @@ , title : "개별총정보" , content : resp , size : "xxl" - , init : () => { } - , onClose : () => { } }); } }); @@ -533,7 +531,7 @@ , success : resp => { dialog.open({ id : "svbtcDialog" - , title : params.btnTitle + , title : params.title , content : resp , size : "md" , onClose : () => { $P.refreshList(); } @@ -642,11 +640,10 @@ params.taskSeCd = $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 params.sndngSeCd = $P.control.dataset.getValue("SNDNG_SE_CD") // 발송 구분 코드 params.tnocs = $P.control.dataset.getValue("TOT_CNT") // 총건수 - } // 공시송달 등록 버튼 이벤트 - $P.fnCreateSvbtc = (title) => { + $P.fnCreateWholSvbtc = (title) => { if ($P.control.dataset.empty) { dialog.alert({ content : "검색된 자료가 없습니다." @@ -708,8 +705,8 @@ $P.fnCreateWholSndngLink($(this).attr("title")); }); // 전체 공시송달 등록 버튼 이벤트 - $("#btnCreateSvbtc--${pageName}").on("click", function() { - $P.fnCreateSvbtc($(this).attr("title")); + $("#btnCreateWholSvbtc--${pageName}").on("click", function() { + $P.fnCreateWholSvbtc($(this).attr("title")); }); // DataTables width 변경 조정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-info.jsp index 9faae141..3feedeeb 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01230-info.jsp @@ -186,7 +186,6 @@ $("#btnSave--${pageName}").on("click", function() { $P.fnSave($(this).attr("title")); }); - } // 초기 화면 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp index ccf0f807..782a057a 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01250-info.jsp @@ -487,15 +487,15 @@ fnMakeResizableTable($("#table-responsive--${pageName}")[0]); // DataTables 스크롤 이벤트 생성 - fnMakeScrollableTable($("#table-responsive--${pageName}")[0], scrollDataList${pageName}); + fnMakeScrollableTable($("#table-responsive--${pageName}")[0], $P.scrollDataList); // DataTables 스크롤을 위해서 다이얼로그 화면이 생성된 후 Dataset을 설정한다. $("#${infoPrefix}Dialog").on("shown.bs.modal", function (e) { $P.control.setData({ - ${infoPrefix}List : ${advntceSndngDtlList} - , ${infoPrefix}Start : ${advntceSndngDtlStart} - , ${infoPrefix}Fetch : ${advntceSndngDtlFetch} - , ${infoPrefix}Total : ${advntceSndngDtlTotal} + ${infoPrefix}List : ${svbtcDtlList} + , ${infoPrefix}Start : ${svbtcDtlStart} + , ${infoPrefix}Fetch : ${svbtcDtlFetch} + , ${infoPrefix}Total : ${svbtcDtlTotal} }); // 초기 데이터 설정 diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp index 9e1718e9..700adf9c 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01260-info.jsp @@ -12,8 +12,6 @@
    - -
    @@ -53,7 +51,7 @@ - @@ -68,155 +66,175 @@ /************************************************************************** * Global Variable **************************************************************************/ - // URL - var ${pageName}PrefixUrl = "/sndb/sndb01"; - // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) - var ${pageName}CallPurpose = "${callPurpose}"; - // FormFields - var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); - // main 의 검색 조건을 그대로 유지 - var ${pageName}Query = ${sndbkQuery}; + pageObject["${pageName}"] = {}; + // 공통 코드 var FIM047 = new CommonCodes(${FIM047}, true); var FIM054 = new CommonCodes(${FIM054}, true); /************************************************************************** - * DatasetControl + * script 진입 **************************************************************************/ - var ${pageName}Control = new DatasetControl({ - prefix : "svbtc" - , prefixName : "공시송달" - , keymapper : info => info ? info.SVBTC_ID : "" - , dataGetter : obj => obj.svbtcInfo - }); + $(document).ready(function() { + // pageObject + var $P = pageObject["${pageName}"]; + + // URL + $P.PrefixUrl = "/sndb/sndb01"; + // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) + $P.callPurpose = "${callPurpose}"; + // FormFields + $P.formFields = new FimsFormFields("#frmEdit--${pageName}"); + // main 의 검색 조건을 그대로 유지 + $P.mainQuery = ${mainQuery}; + + /************************************************************************** + * DatasetControl + **************************************************************************/ + $P.control = new DatasetControl({ + prefix : "svbtc" + , prefixName : "공시송달" + , keymapper : info => info ? info.SVBTC_ID : "" + , dataGetter : obj => obj.svbtcInfo + }); - ${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); - // 호출용도가 등록이라면.. - if (${pageName}CallPurpose == "create") { - $("#svbtcYmd--${pageName}").datepicker("setDate", new Date()); + // 업무구분에 따른 URL 변경 + $P.setURL(item.data.TASK_SE_CD); - let taskSeCd = item.data.TASK_SE_CD; - let sndngSeCd = item.data.SNDNG_SE_CD; + // 호출용도가 등록이라면.. + if (${pageName}CallPurpose == "create") { + $("#svbtcYmd--${pageName}").datepicker("setDate", new Date()); - if (sndngSeCd == "") { - $("#ttlNm--${pageName}").val(FIM054[taskSeCd].value + " " + "공시송달"); - } else { - $("#ttlNm--${pageName}").val(FIM054[taskSeCd].value + " " + FIM047[sndngSeCd].value.replace("(개별)", "") + " " + "공시송달"); + let taskSeCd = item.data.TASK_SE_CD; + let sndngSeCd = item.data.SNDNG_SE_CD; + + if (sndngSeCd == "") { + $("#ttlNm--${pageName}").val(FIM054[taskSeCd].value + " " + "공시송달"); + } else { + $("#ttlNm--${pageName}").val(FIM047[sndngSeCd].value.replace("(개별)", "") + " " + "공시송달"); + } } } - // 업무구분에 따른 url 변경 - setURL${pageName}(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 create = ($P.callPurpose == "create"); - ajax.post({ - url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create - , data : params - , success : resp => ${pageName}Control.onSave(resp) - }); - } + ajax.post({ + url : !create ? $P.control.urls.update : $P.control.urls.create + , data : info + , success : resp => $P.control.onSave(resp) + }); + } - /************************************************************************** - * 사용자 함수 - **************************************************************************/ - // URL 설정 - setURL${pageName} = (taskSeCd) => { - ${pageName}Control.urls.create = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/260/create.do"); // 등록 - ${pageName}Control.urls.update = wctx.url(taskSeCd + ${pageName}PrefixUrl + "/260/update.do"); // 수정 - } + /************************************************************************** + * 사용자 함수(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()); - } - }); - } - /************************************************************************** - * 초기 셋팅 - **************************************************************************/ - // 이벤트 설정 - 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); + /************************************************************************** + * 버튼 clickEvent + **************************************************************************/ + // 저장 버튼 클릭 이벤트 + $P.fnSave = (title) => { + // validate 확인 + if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; + + // 파리미터 설정 + let params = $.extend({}, $P.mainQuery, $P.formFields.get()); // 객체를 합친다. + params.title = title; // 타이틀 + + dialog.alert({ + content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?" + , onOK : () => { + $P.control.save(params); } }); - }); - } - - // 화면 초기 설정 - initForm${pageName} = () => { - // 화면 초기화 - $("#frmEdit--${pageName}")[0].reset(); - - // 달력 초기화 - initDatepicker("frmEdit--${pageName}"); - $("#svbtcYmd--${pageName}").datepicker("setDate", new Date()); - - if (${pageName}CallPurpose == "view") { - // input 요소들을 disabled - $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); - // button 요소들을 disabled - $("#btnSvbtcYmd--${pageName}").prop("disabled", true); // 부과제외 일자 달력 버튼 - $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 } - } - /************************************************************************** - * 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", function() { + $P.fnSave($(this).attr("title")); + }); + } + + // 초기 화면 설정 + $P.initForm = () => { + // 달력 초기화 + initDatepicker("frmEdit--${pageName}"); + $("#svbtcYmd--${pageName}").datepicker("setDate", new Date()); + + if ($P.callPurpose == "view") { // view + // input 요소들을 disabled + $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); + // button 요소들을 disabled + $("#btnSvbtcYmd--${pageName}").prop("disabled", true); // 부과제외 일자 달력 버튼 + $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 + } + } + + // 업무구분에 따른 URL 설정 + $P.setURL = (taskSeCd) => { + $P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/260/create.do"); // 등록 + $P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/260/update.do"); // 수정 + } + + /************************************************************************** + * 최초 실행 함수 + **************************************************************************/ + // 1. 이벤트 설정 + $P.setEvent(); - // 화면 초기 설정 - initForm${pageName}(); + // 2. 초기 화면 설정 + $P.initForm(); - // Dataset 설정 - ${pageName}Control.setData([${svbtcInfo}]); + // 3. Dataset 설정 + $P.control.setData([${svbtcInfo}]); });