1. 개별총정보 발송반송 정보 수정.

2. 반송등록 다이얼로그 수정.
main
jjh 10 months ago
parent be4843320e
commit 20b9571926

@ -87,7 +87,7 @@ public interface SndngDtlService {
* <li> false</li> * <li> false</li>
* </ul> * </ul>
*/ */
String createSndbk(String... sndngDtlIDs); String createSndbk(SndngDtl sndngDtl);
/** . /** .
* @param sndngDtl * @param sndngDtl

@ -145,6 +145,7 @@ public class SndngDtlBean extends AbstractComponent {
*/ */
public String createSndbkList(SndbQuery req) { public String createSndbkList(SndbQuery req) {
// 변수 선언 // 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
List<DataObject> sndngDtlList = sndngDtlMapper.selectSndngTrgtDtlIDs(req.getSndngId()); List<DataObject> sndngDtlList = sndngDtlMapper.selectSndngTrgtDtlIDs(req.getSndngId());
@ -157,34 +158,8 @@ public class SndngDtlBean extends AbstractComponent {
// 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다. // 발송상세(TB_SNDNG_DTL)에 반송 정보를 등록한다.
for (int iLoop = 0; iLoop < sndngDtlList.size(); iLoop++) { for (int iLoop = 0; iLoop < sndngDtlList.size(); iLoop++) {
//
rtnMsg = createSndbk(sndngDtlList.get(iLoop).string("SNDNG_DTL_ID"));
// 메시지 확인
if (rtnMsg.contains("[F]")) {
throw new RuntimeException("반송 확인 작업중 반송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createSndbk(String... sndngDtlIDs) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
for (int iLoop = 0; iLoop < sndngDtlIDs.length; iLoop++) {
// 반송 내역 조회 // 반송 내역 조회
DataObject sndbkInfo = sndngDtlMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtlIDs[iLoop])); DataObject sndbkInfo = sndngDtlMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtlList.get(iLoop).string("SNDNG_DTL_ID")));
// 반송 등록이 가능한지 확인. // 반송 등록이 가능한지 확인.
if (!("03,05".contains(sndbkInfo.string("SNDNG_DTL_STTS_CD")))) { if (!("03,05".contains(sndbkInfo.string("SNDNG_DTL_STTS_CD")))) {
@ -203,9 +178,11 @@ public class SndngDtlBean extends AbstractComponent {
} }
// 전자우편 배달 결과 조회 // 전자우편 배달 결과 조회
DataObject epostDlvrRsltInfo = epostDlvrRsltMapper.selectEpostDlvrRsltInfo(new EpostQuery().setConKey(sndbkInfo.string("CON_KEY")) EpostQuery epostQuery = new EpostQuery();
.setRegino(sndbkInfo.string("RG_NO"))); epostQuery.setConKey(sndbkInfo.string("CON_KEY"));
epostQuery.setRegino(sndbkInfo.string("RG_NO"));
DataObject epostDlvrRsltInfo = epostDlvrRsltMapper.selectEpostDlvrRsltInfo(epostQuery);
// 조회 건수 확인 // 조회 건수 확인
if (epostDlvrRsltInfo == null) { if (epostDlvrRsltInfo == null) {
rtnMsg = "[N] 반송 자료가 존재하지 않습니다."; rtnMsg = "[N] 반송 자료가 존재하지 않습니다.";
@ -219,8 +196,6 @@ public class SndngDtlBean extends AbstractComponent {
sndngDtl.setSndngDtlId(sndbkInfo.string("SNDNG_DTL_ID")); sndngDtl.setSndngDtlId(sndbkInfo.string("SNDNG_DTL_ID"));
sndngDtl.setDlvrYmd(epostDlvrRsltInfo.string("DELIVYMD")); // 배달일자 sndngDtl.setDlvrYmd(epostDlvrRsltInfo.string("DELIVYMD")); // 배달일자
sndngDtl.setDlvrTm(epostDlvrRsltInfo.string("DELIVHHMI")); // 배달시간 sndngDtl.setDlvrTm(epostDlvrRsltInfo.string("DELIVHHMI")); // 배달시간
// sndngDtl.setUndlvrRsnCd(epostDlvrRsltInfo.string("NONDELIVREASNCD")); // 미배달 사유 코드
// sndngDtl.setUndlvrRsnNm(epostDlvrRsltInfo.string("NONDELIVREASNCDNM")); // 미배달 사유 명
sndngDtl.setRcpnNm(epostDlvrRsltInfo.string("SUBRECPRSNNM")); // 수령인 명 sndngDtl.setRcpnNm(epostDlvrRsltInfo.string("SUBRECPRSNNM")); // 수령인 명
sndngDtl.setRcpnRelNm(epostDlvrRsltInfo.string("RELRECPRSNCDNM")); // 수령인 관계 명 sndngDtl.setRcpnRelNm(epostDlvrRsltInfo.string("RELRECPRSNCDNM")); // 수령인 관계 명
sndngDtl.setSndngDtlSttsCd("04"); // 발송 상세 상태 코드 FIM050 - 04:발송확인 sndngDtl.setSndngDtlSttsCd("04"); // 발송 상세 상태 코드 FIM050 - 04:발송확인
@ -231,8 +206,6 @@ public class SndngDtlBean extends AbstractComponent {
sndngDtl.setDlvrTm(epostDlvrRsltInfo.string("DELIVHHMI")); // 배달시간 sndngDtl.setDlvrTm(epostDlvrRsltInfo.string("DELIVHHMI")); // 배달시간
sndngDtl.setUndlvrRsnCd(epostDlvrRsltInfo.string("NONDELIVREASNCD")); // 미배달 사유 코드 sndngDtl.setUndlvrRsnCd(epostDlvrRsltInfo.string("NONDELIVREASNCD")); // 미배달 사유 코드
sndngDtl.setUndlvrRsnNm(epostDlvrRsltInfo.string("NONDELIVREASNCDNM")); // 미배달 사유 명 sndngDtl.setUndlvrRsnNm(epostDlvrRsltInfo.string("NONDELIVREASNCDNM")); // 미배달 사유 명
// sndngDtl.setRcpnNm(epostDlvrRsltInfo.string("SUBRECPRSNNM")); // 수령인 명
// sndngDtl.setRcpnRelNm(epostDlvrRsltInfo.string("RELRECPRSNCDNM")); // 수령인 관계 명
sndngDtl.setSndngDtlSttsCd("05"); // 발송 상세 상태 코드 FIM050 - 05:반송 sndngDtl.setSndngDtlSttsCd("05"); // 발송 상세 상태 코드 FIM050 - 05:반송
sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드
} }
@ -249,6 +222,29 @@ public class SndngDtlBean extends AbstractComponent {
return rtnMsg; return rtnMsg;
} }
/** .
* @param sndngDtl
* @return
* <ul><li> true</li>
* <li> false</li>
* </ul>
*/
public String createSndbk(SndngDtl sndngDtl) {
// 변수 선언
boolean rtnScs = false; // DB 처리 결과
String rtnMsg = "[F] "; // 처리 결과 메시지
rtnScs = sndngDtlMapper.createSndbk(sndngDtl);
if (!rtnScs) {
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
throw new RuntimeException("발송상세의 반송 정보 등록에 실패하였습니다.");
}
rtnMsg = "[S] 작업이 정상 처리 되었습니다.";
return rtnMsg;
}
/** . /** .
* @param sndngDtl * @param sndngDtl
* @return * @return
@ -286,14 +282,31 @@ public class SndngDtlBean extends AbstractComponent {
String rtnMsg = "[F] "; // 처리 결과 메시지 String rtnMsg = "[F] "; // 처리 결과 메시지
// 반송 내역 조회 // 반송 내역 조회
DataObject sndbkInfo = sndngDtlMapper.selectSndbkInfo(new SndbQuery().setSndngDtlId(sndngDtl.getSndngDtlId()) SndbQuery req = new SndbQuery();
.setDelYN("N")); req.setSndngDtlId(sndngDtl.getSndngDtlId());
req.setDelYN("N");
DataObject sndbkInfo = sndngDtlMapper.selectSndbkInfo(req);
// 반송 삭제가 가능한지 확인. // 반송 삭제가 가능한지 확인
if (sndbkInfo == null) {
rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다.";
return rtnMsg;
}
if (sndbkInfo.size() == 1) {
rtnMsg = "[F] 작업 중 대상 자료가 1건이 아닙니다.";
return rtnMsg;
}
// // 이전 발송상세 상태 코드가 발송확인(04) 이라면..
sndngDtl.setBfrSndngDtlSttsCd(sndbkInfo.string("SNDNG_DTL_STTS_CD")); // 전 발송 상세 상태 코드 <- 발송 상세 상태 코드 if (sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD").equals("04")) {
sndngDtl.setSndngDtlSttsCd(sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD")); // 발송 상세 상태 코드 <- 전 발송 상세 상태 코드 sndngDtl.setDlvrYmd(sndbkInfo.string("BFR_DLVR_YMD"));
sndngDtl.setDlvrTm(sndbkInfo.string("BFR_DLVR_HR"));
sndngDtl.setSndngDtlSttsCd(sndbkInfo.string("BFR_SNDNG_DTL_STTS_CD"));
} else {
sndngDtl.setDlvrYmd("");
sndngDtl.setDlvrTm("");
}
// 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다. // 발송 상세(TB_SNDNG_DTL) 대장에 반송 정보를 등록 한다.
rtnScs = sndngDtlMapper.deleteSndbk(sndngDtl); rtnScs = sndngDtlMapper.deleteSndbk(sndngDtl);

@ -85,8 +85,8 @@ public class SndngDtlServiceBean extends AbstractServiceBean implements SndngDtl
} }
@Override @Override
public String createSndbk(String... sndngDtlIDs) { public String createSndbk(SndngDtl sndngDtl) {
return sndngDtlBean.createSndbk(sndngDtlIDs); return sndngDtlBean.createSndbk(sndngDtl);
} }
@Override @Override

@ -1088,9 +1088,9 @@ public class Sndb01Controller extends ApplicationController {
* "saved": true, false * "saved": true, false
* }</code></pre> * }</code></pre>
*/ */
public ModelAndView createSendBack(String... sndngDtlIDs) { public ModelAndView createSendBack(SndngDtl sndngDtl) {
boolean saved = false; boolean saved = false;
String rtnMsg = sndngDtlService.createSndbk(sndngDtlIDs); String rtnMsg = sndngDtlService.createSndbk(sndngDtl);
if (rtnMsg.contains("[S]")) { if (rtnMsg.contains("[S]")) {
saved = true; saved = true;

@ -670,8 +670,8 @@ public class DpvController {
@Override @Override
@RequestMapping(name="발송상세의 반송 정보 등록", value=METHOD_URL.createSendBack) @RequestMapping(name="발송상세의 반송 정보 등록", value=METHOD_URL.createSendBack)
public ModelAndView createSendBack(String... sndngDtlIDs) { public ModelAndView createSendBack(SndngDtl sndngDtl) {
return super.createSendBack(sndngDtlIDs); return super.createSendBack(sndngDtl);
} }
@Override @Override

@ -1020,17 +1020,19 @@
<include refid="utility.orderBy" /> <include refid="utility.orderBy" />
</select> </select>
<update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 수정(sndngDtlMapper.createSndbk) */ <update id="createSndbk" parameterType="map">/* 발송상세의 반송 정보 등록(sndngDtlMapper.createSndbk) */
UPDATE TB_SNDNG_DTL UPDATE TB_SNDNG_DTL
SET DLVR_YMD = #{sndngDtl.dlvrYmd} <!-- 배달 일자 --> SET BFR_SNDNG_DTL_STTS_CD= SNDNG_DTL_STTS_CD <!-- 전 발송 상세 상태 코드 -->
, BFR_DLVR_YMD = DLVR_YMD <!-- 전 배달 일자 -->
, BFR_DLVR_HR = DLVR_TM <!-- 전 배달 시간 -->
, DLVR_YMD = #{sndngDtl.dlvrYmd} <!-- 배달 일자 -->
, DLVR_TM = #{sndngDtl.dlvrTm} <!-- 배달 시각 --> , DLVR_TM = #{sndngDtl.dlvrTm} <!-- 배달 시각 -->
, UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} <!-- 미배달 사유 코드 --> , UNDLVR_RSN_CD = #{sndngDtl.undlvrRsnCd} <!-- 미배달 사유 코드 -->
, UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} <!-- 미배달 사유 명 --> , UNDLVR_RSN_NM = #{sndngDtl.undlvrRsnNm} <!-- 미배달 사유 명 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 --> , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, BFR_SNDNG_DTL_STTS_CD= #{sndngDtl.bfrSndngDtlSttsCd} <!-- 전 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 --> , MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>
@ -1048,10 +1050,14 @@
<update id="deleteSndbk" parameterType="map">/* 발송상세의 반송 정보 삭제(sndngDtlMapper.deleteSndbk) */ <update id="deleteSndbk" parameterType="map">/* 발송상세의 반송 정보 삭제(sndngDtlMapper.deleteSndbk) */
UPDATE TB_SNDNG_DTL UPDATE TB_SNDNG_DTL
SET UNDLVR_RSN_CD = NULL <!-- 미배달 사유 코드 --> SET BFR_SNDNG_DTL_STTS_CD= NULL <!-- 전 발송 상세 상태 코드 -->
, BFR_DLVR_YMD = NULL <!-- 전 배달 일자 -->
, BFR_DLVR_HR = NULL <!-- 전 배달 시간 -->
, DLVR_YMD = #{sndngDtl.dlvrYmd} <!-- 배달 일자 -->
, DLVR_TM = #{sndngDtl.dlvrTm} <!-- 배달 시각 -->
, UNDLVR_RSN_CD = NULL <!-- 미배달 사유 코드 -->
, UNDLVR_RSN_NM = NULL <!-- 미배달 사유 명 --> , UNDLVR_RSN_NM = NULL <!-- 미배달 사유 명 -->
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 --> , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, BFR_SNDNG_DTL_STTS_CD= #{sndngDtl.bfrSndngDtlSttsCd} <!-- 전 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 --> , MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID --> WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
@ -1072,7 +1078,7 @@
, SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 --> , SNDNG_DTL_STTS_CD = #{sndngDtl.sndngDtlSttsCd} <!-- 발송 상세 상태 코드 -->
, MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 --> , MDFCN_DT = <include refid="utility.now" /> <!-- 수정 일시 -->
, MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 --> , MDFR = #{sndngDtl.modifiedBy} <!-- 수정자 -->
WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} WHERE SNDNG_DTL_ID = #{sndngDtl.sndngDtlId} <!-- 발송 상세 ID -->
AND DEL_YN = 'N' AND DEL_YN = 'N'
</update> </update>

@ -409,7 +409,11 @@
let btnTitle = $("#btnRemove--${pageName}").attr("title"); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); // 메시지 출력 // 메시지 출력
dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
$P.refreshList(); // 자료 재조회 $P.refreshList(); // 자료 재조회

@ -141,7 +141,11 @@
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage); // 메시지 출력
dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog");

@ -454,7 +454,11 @@
let btnTitle = $("#btnRemove--${pageName}").attr("title"); let btnTitle = $("#btnRemove--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); // 메시지 출력 // 메시지 출력
dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
$P.refreshList(); // 자료 재조회 $P.refreshList(); // 자료 재조회

@ -233,7 +233,11 @@
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage); // 메시지 출력
dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
// 폼을 리셋해서 uploadFiles에 출력된 선택 파일을 초기화시킨다. // 폼을 리셋해서 uploadFiles에 출력된 선택 파일을 초기화시킨다.

@ -179,7 +179,11 @@
let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage); // 메시지 출력
dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
dialog.close($P.control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog");

@ -49,7 +49,7 @@
<span class="container-page-btn"> <span class="container-page-btn">
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<!-- 업무 버튼 --> <!-- 업무 버튼 -->
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장" onclick="fnSave${pageName}()">저장</button> <button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">저장</button>
</span> </span>
</span> </span>
</div> </div>
@ -62,63 +62,82 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// URL pageObject["${pageName}"] = {};
var ${pageName}PrefixUrl = "/sndb/sndb01";
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정) // infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
var ${pageName}CallPurpose = "${callPurpose}"; var ${pageName}CallPurpose = "${callPurpose}";
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
var $P = pageObject["${pageName}"];
// URL
$P.PrefixUrl = "/sndb/sndb01";
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields("#frmEdit--${pageName}");
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ $P.control = new DatasetControl({
prefix : "sndbkInfo" prefix : "sndbk"
, prefixName : "반송" , prefixName : "반송"
, keymapper : info => info ? info.SNDNG_DTL_ID : "" , keymapper : info => info ? info.SNDNG_DTL_ID : ""
, dataGetter : obj => obj.sndbkInfo , dataGetter : obj => obj.sndbkInfo
}); });
${pageName}Control.onCurrentChange = item => { /**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
$P.control.onCurrentChange = item => {
if (!item) return; if (!item) return;
// Dataset 셋팅 // Dataset 셋팅
${pageName}Fields.set(item); $P.formFields.set(item);
// 업무구분에 따른 url 변경 // 업무구분에 따른 URL 변경
setURL${pageName}(item.data.TASK_SE_CD); $P.setURL(item.data.TASK_SE_CD);
// 배달일자 // 호출용도가 등록 이라면..
if ($("#dlvrYmd--${pageName}").val() == "") { if (${pageName}CallPurpose == "create") {
$("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); $("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); // 배달일자
} }
} }
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 저장 callback // 저장 callback
${pageName}Control.onSave = (resp) => { $P.control.onSave = (resp) => {
let dialogTitle = $("#" + ${pageName}Control.prefix + "Dialog").find("h5.modal-title").html(); let dialogTitle = $("#" + $P.control.prefix + "Dialog").find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
dialog.alert(showMessage); dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
dialog.close(${pageName}Control.prefix + "Dialog"); dialog.close($P.control.prefix + "Dialog");
} }
} }
// 저장 // 저장
${pageName}Control.save = (info) => { $P.control.save = (info) => {
if (!info) return; if (!info) return;
let create = (${pageName}CallPurpose == "create"); let create = false;
if (${pageName}CallPurpose == "create") {
create = true;
info.sndngDtlSttsCd = "05"; // FIM050 - 05 반송
} else {
create = false;
}
ajax.post({ ajax.post({
url : !create ? ${pageName}Control.urls.update : ${pageName}Control.urls.create url : !create ? $P.control.urls.update : $P.control.urls.create
, data : info , data : info
, success : resp => ${pageName}Control.onSave(resp) , success : resp => $P.control.onSave(resp)
}); });
} }
@ -126,14 +145,14 @@
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 저장 버튼 클릭 이벤트 // 저장 버튼 클릭 이벤트
fnSave${pageName} = () => { $P.fnSave = () => {
// validate 확인 // validate 확인
if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return; if (!customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({ dialog.alert({
content : "현재 " + ${pageName}Control.prefixName + " 정보를 저장하시겠습니까?" content : "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, onOK : () => { , onOK : () => {
${pageName}Control.save(${pageName}Fields.get()); $P.control.save($P.formFields.get());
} }
}); });
} }
@ -142,7 +161,7 @@
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // 이벤트 설정
setEvent${pageName} = () => { $P.setEvent = () => {
// form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용 // form-date 항목에서 키보드로 입력시 날짜 포맷팅 적용
$("#frmEdit--${pageName}").find(".form-date").each(function() { $("#frmEdit--${pageName}").find(".form-date").each(function() {
$(this).on("input",function() { $(this).on("input",function() {
@ -156,66 +175,59 @@
}); });
}); });
// 업무 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장
// 미배달 사유 변경 이벤트
$("#undlvrRsnCd--${pageName}").change(function() { $("#undlvrRsnCd--${pageName}").change(function() {
if ($("#undlvrRsnCd--${pageName}").val() == "00") { if ($("#undlvrRsnCd--${pageName}").val() == "00") {
$("#undlvrRsnNm--${pageName}").prop("readonly", false);
$("#undlvrRsnNm--${pageName}").val(""); $("#undlvrRsnNm--${pageName}").val("");
} else { } else {
$("#undlvrRsnNm--${pageName}").prop("readonly", true);
$("#undlvrRsnNm--${pageName}").val($("#undlvrRsnCd--${pageName} option:selected").text()); $("#undlvrRsnNm--${pageName}").val($("#undlvrRsnCd--${pageName} option:selected").text());
} }
}); });
} }
// 초기 기본 설정 // 초기 화면 설정
initForm${pageName} = () => { $P.initForm = () => {
// 화면 초기화
$("#frmEdit--${pageName}")[0].reset();
// 달력 초기화 // 달력 초기화
initDatepicker("frmEdit--${pageName}"); initDatepicker("frmEdit--${pageName}");
$("#dlvrYmd--${pageName}").datepicker("setDate", new Date()); $("#dlvrYmd--${pageName}").datepicker("setDate", new Date());
}
// 기본 데이터 설정
setFormData${pageName} = () => {
// 미배달 사유 변경 이벤트
$("#undlvrRsnCd--${pageName}").trigger("change");
if (${pageName}CallPurpose == "view") { if (${pageName}CallPurpose == "view") {
// input 요소들을 disabled // input 요소들을 disabled
$("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true); $("#frmEdit--${pageName}").find("input,textarea,select").prop("disabled", true);
// button 요소들을 disabled // button 요소들을 disabled
$("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼 $("#btnSave--${pageName}").prop("disabled", true); // 저장 버튼
} else if (${pageName}CallPurpose == "create") {
//
} else if (${pageName}CallPurpose == "update") {
//
} }
} }
// 업무구분에 따른 url 변경 // 기본 데이터 설정
setURL${pageName} = (taskSeCd) => { $P.initData = () => {
${pageName}Control.urls.create = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/220/create.do"); // 미배달 사유 변경 이벤트 실행
${pageName}Control.urls.update = wctx.url("/" + taskSeCd + ${pageName}PrefixUrl + "/220/update.do"); $("#undlvrRsnCd--${pageName}").trigger("change");
}
// 업무구분에 따른 URL 설정
$P.setURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/220/create.do");
$P.control.urls.update = wctx.url("/" + taskSeCd + $P.PrefixUrl + "/220/update.do");
} }
/************************************************************************** /**************************************************************************
* script 진입 * 최초 실행 함수
**************************************************************************/ **************************************************************************/
$(document).ready(function() { // 1. 이벤트 설정
// 이벤트 설정 $P.setEvent();
setEvent${pageName}();
// 초기 기본 설정 // 2. 초기 화면 설정
initForm${pageName}(); $P.initForm();
// Dataset 설정 // 3. 기본 데이터 설정
${pageName}Control.setData([${sndbkInfo}]); $P.initData();
// 기본 데이터 설정 // 4. Dataset 설정
setFormData${pageName}(); $P.control.setData([${sndbkInfo}]);
}); });
</script> </script>

@ -32,7 +32,7 @@
<button type="button" class="btn btn-primary" id="btnCreateCrdnReReg--${pageName}" title="단속 재등록"> <button type="button" class="btn btn-primary" id="btnCreateCrdnReReg--${pageName}" title="단속 재등록">
단속 재등록 단속 재등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnPrintNotice--${pageName}" title="고지서 출력"> <button type="button" class="btn btn-primary" id="btnPrintNht--${pageName}" title="고지서 출력">
고지서 출력 고지서 출력
</button> </button>
<button type="button" class="btn btn-primary" id="btnUpdateCrdnSttsCd--${pageName}" title="단속상태 변경"> <button type="button" class="btn btn-primary" id="btnUpdateCrdnSttsCd--${pageName}" title="단속상태 변경">
@ -382,7 +382,10 @@
let btnTitle = $("#btnRemoveCrdn--${pageName}").attr("title"); let btnTitle = $("#btnRemoveCrdn--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
fnClose${pageNameMain}(true); fnClose${pageNameMain}(true);
@ -520,7 +523,10 @@
let btnTitle = $("#btnDeleteCrdnPayer--${pageName}").attr("title"); let btnTitle = $("#btnDeleteCrdnPayer--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
$P.refreshDataInfo(); $P.refreshDataInfo();
@ -559,7 +565,7 @@
/************************************************************************** /**************************************************************************
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 민원원본보기 버튼 이벤트 // 민원원본보기
$P.fnViewCvlcptOrgnl = () => { $P.fnViewCvlcptOrgnl = () => {
let crdnId = $P.control.dataset.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.control.dataset.getValue("CRDN_ID"); // 단속 ID
let cvlcptLinkId = $P.control.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID let cvlcptLinkId = $P.control.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID
@ -583,7 +589,7 @@
$P.viewCvlcptOrgnl(params); $P.viewCvlcptOrgnl(params);
} }
// 민원답변보기 버튼 이벤트 // 민원답변보기
$P.fnViewAnswerPreview = () => { $P.fnViewAnswerPreview = () => {
let crdnId = $P.control.dataset.getValue("CRDN_ID"); // 단속 ID let crdnId = $P.control.dataset.getValue("CRDN_ID"); // 단속 ID
let cvlcptLinkId = $P.control.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID let cvlcptLinkId = $P.control.dataset.getValue("CVLCPT_LINK_ID"); // 민원 연계 ID
@ -607,7 +613,7 @@
$P.viewAnswerPreview(params); $P.viewAnswerPreview(params);
} }
// 단속정보수정 버튼 이벤트 // 단속정보수정
$P.fnUpdateCrdn = () => { $P.fnUpdateCrdn = () => {
let crdnId = $P.control.dataset.getValue("CRDN_ID"); let crdnId = $P.control.dataset.getValue("CRDN_ID");
@ -624,7 +630,7 @@
$P.control.getInfo(params); $P.control.getInfo(params);
} }
// 단속정보삭제 버튼 이벤트 // 단속정보삭제
$P.fnRemoveCrdn${pageName} = () => { $P.fnRemoveCrdn${pageName} = () => {
let crdnId = $P.control.dataset.getValue("CRDN_ID"); let crdnId = $P.control.dataset.getValue("CRDN_ID");
@ -646,7 +652,7 @@
}); });
} }
// 단속재등록 버튼 이벤트 // 단속재등록
$P.fnCreateCrdnReReg = () => { $P.fnCreateCrdnReReg = () => {
let bfrCrdnId = $P.control.dataset.getValue("CRDN_ID"); let bfrCrdnId = $P.control.dataset.getValue("CRDN_ID");
@ -668,12 +674,56 @@
}); });
} }
// 고지서출력 버튼 이벤트 // 고지서출력
$P.fnPrintNotice = () => { $P.fnPrintNht = () => {
console.log("고지서 출력"); var upDataset = $P.control;
if(upDataset.length <= 0){
dialog.alert("출력할 자료가 없습니다.");
return;
}
var crdnId = $P.control.dataset.getValue("CRDN_ID");
var url = wctx.url("/sprt/sprt01/150/info.do");
var dialogId = "printNhtDialog";
ajax.get({
url : url
, data : { crdnIds : crdnId }
, success : resp => {
dialog.open({
id : dialogId
, title : "종합조회-고지서"
, size : "xl"
, content : resp
, init : () => {
$("#"+dialogId).find("input[name='dialogId']").val(dialogId);
var found = $("#"+dialogId).find("template")[0].innerHTML;
var trs = upDataset.inStrings(found, null);
$("#"+dialogId).find("tbody").html(trs.join());
var parentRes = new Object();
var childReq = pageObject.childReq.pop();
for(var reqKey in childReq) {
if(integrationSearch.provide[reqKey]){
parentRes[reqKey] = integrationSearch.provide[reqKey];
} else {
parentRes[reqKey] = function(){};
}
}
pageObject.parentRes.push(parentRes);
}
, onClose : () => { }
});
}
});
} }
// 단속상태변경 버튼 이벤트 // 단속상태변경
$P.fnUpdateCrdnSttsCd = () => { $P.fnUpdateCrdnSttsCd = () => {
let crdnId = $P.control.dataset.getValue("CRDN_ID"); let crdnId = $P.control.dataset.getValue("CRDN_ID");
@ -724,7 +774,7 @@
}); });
} }
// 납부자수정 버튼 이벤트 // 납부자 수정
$P.fnUpdatePayer = () => { $P.fnUpdatePayer = () => {
let crdnId = $P.control.dataset.getValue("CRDN_ID"); let crdnId = $P.control.dataset.getValue("CRDN_ID");
@ -762,7 +812,7 @@
$("#btnUpdateCrdn--${pageName}").on("click", () => $P.fnUpdateCrdn()); // 단속 정보 수정 $("#btnUpdateCrdn--${pageName}").on("click", () => $P.fnUpdateCrdn()); // 단속 정보 수정
$("#btnRemoveCrdn--${pageName}").on("click", () => $P.fnRemoveCrdn()); // 단속 정보 삭제 $("#btnRemoveCrdn--${pageName}").on("click", () => $P.fnRemoveCrdn()); // 단속 정보 삭제
$("#btnCreateCrdnReReg--${pageName}").on("click", () => $P.fnCreateCrdnReReg()); // 단속 재등록 $("#btnCreateCrdnReReg--${pageName}").on("click", () => $P.fnCreateCrdnReReg()); // 단속 재등록
$("#btnPrintNotice--${pageName}").on("click", () => $P.fnPrintNotice()); // 고지서 출력 $("#btnPrintNht--${pageName}").on("click", () => $P.fnPrintNht()); // 고지서 출력
$("#btnUpdateCrdnSttsCd--${pageName}").on("click", () => $P.fnUpdateCrdnSttsCd()); // 단속 상태 변경 $("#btnUpdateCrdnSttsCd--${pageName}").on("click", () => $P.fnUpdateCrdnSttsCd()); // 단속 상태 변경
$("#btnDeleteCrdnPayer--${pageName}").on("click", () => $P.fnDeleteCrdnPayer()); // 납부자 초기화 $("#btnDeleteCrdnPayer--${pageName}").on("click", () => $P.fnDeleteCrdnPayer()); // 납부자 초기화
$("#btnUpdatePayer--${pageName}").on("click", () => $P.fnUpdatePayer()); // 납부자 수정 $("#btnUpdatePayer--${pageName}").on("click", () => $P.fnUpdatePayer()); // 납부자 수정

@ -231,9 +231,9 @@
let dialogTitle = ""; let dialogTitle = "";
if (params.callPurpose == "create") { if (params.callPurpose == "create") {
dialogTitle = "의견제출 등록"; dialogTitle = $("#btnCreateOpnnSbmsn--${pageName}").attr("title");
} else if (params.callPurpose == "update") { } else if (params.callPurpose == "update") {
dialogTitle = "의견제출 수정"; dialogTitle = $("#btnUpdateOpnnSbmsn--${pageName}").attr("title");
} else { } else {
return; return;
} }
@ -249,7 +249,7 @@
return; return;
} else { } else {
dialog.open({ dialog.open({
id : "opnnDialog" id : $P.control.prefixed("Dialog")
, title : dialogTitle , title : dialogTitle
, content : resp , content : resp
, size : "lg" , size : "lg"
@ -265,7 +265,10 @@
let btnTitle = $("#btnRemoveOpnnSbmsn--${pageName}").attr("title"); let btnTitle = $("#btnRemoveOpnnSbmsn--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
$P.refreshDataInfo(); $P.refreshDataInfo();

@ -12,16 +12,16 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">발송 이력</label> <label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">발송 이력</label>
<!-- 버튼 우측 정렬 --> <!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right"> <span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateSndbk--${pageName}" title="개별 반송 등록" onclick="fnCreateSndbk${pageName}();"> <button type="button" class="btn btn-primary" id="btnCreateSndbk--${pageName}" title="개별 반송 등록">
개별 반송 등록 개별 반송 등록
</button> </button>
<button type="button" class="btn btn-primary" id="btnUpdateSndbk--${pageName}" title="개별 반송 수정" onclick="fnUpdateSndbk${pageName}();"> <button type="button" class="btn btn-primary" id="btnUpdateSndbk--${pageName}" title="개별 반송 수정">
개별 반송 수정 개별 반송 수정
</button> </button>
<button type="button" class="btn btn-primary" id="btnRemoveSndbk--${pageName}" title="개별 반송 삭제" onclick="fnRemoveSndbk${pageName}();"> <button type="button" class="btn btn-primary" id="btnRemoveSndbk--${pageName}" title="개별 반송 삭제">
개별 반송 삭제 개별 반송 삭제
</button> </button>
<button type="button" class="btn btn-primary" id="btnViewPostTrace--${pageName}" title="우편 종적 보기" onclick="fnViewPostTrace${pageName}();"> <button type="button" class="btn btn-primary" id="btnViewPostTrace--${pageName}" title="우편 종적 보기">
우편 종적 보기 우편 종적 보기
</button> </button>
</span> </span>
@ -31,11 +31,12 @@
<!-- DataTables(그리드) --> <!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap"> <div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}"> <div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive" id="table-responsive--${pageName}" style="overflow-x:scroll; height:320px; overflow-y:scroll;" > <div class="table-responsive" id="table-responsive-sndng--${pageName}" style="overflow-x:scroll; height:320px; overflow-y:scroll;" >
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" <table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer"
id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info"> id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr id="theadTr--${pageName}"> <tr id="theadTrSndng--${pageName}">
<th class="cmn" style="width: 120px">발송상태</th>
<th class="cmn" style="width: 100px">수납</th> <th class="cmn" style="width: 100px">수납</th>
<th class="cmn" style="width: 140px">발송구분</th> <th class="cmn" style="width: 140px">발송구분</th>
<th class="cmn" style="width: 120px">발송일자</th> <th class="cmn" style="width: 120px">발송일자</th>
@ -53,7 +54,6 @@
<th class="cmn" style="width: 160px">미배달사유</th> <th class="cmn" style="width: 160px">미배달사유</th>
<th class="cmn" style="width: 120px">수령인</th> <th class="cmn" style="width: 120px">수령인</th>
<th class="cmn" style="width: 160px">수령인관계</th> <th class="cmn" style="width: 160px">수령인관계</th>
<th class="cmn" style="width: 120px">처리상태</th>
<th class="cmn" style="width: 180px">등록일시</th> <th class="cmn" style="width: 180px">등록일시</th>
<th class="cmn" style="width: 140px">등록사용자</th> <th class="cmn" style="width: 140px">등록사용자</th>
<th class="cmn" style="width: 180px">수정일시</th> <th class="cmn" style="width: 180px">수정일시</th>
@ -61,10 +61,11 @@
<th class="cmn dummy-th"></th> <th class="cmn dummy-th"></th>
</tr> </tr>
</thead> </thead>
<tbody id="tbody--${pageName}"> <tbody id="tbodySndng--${pageName}">
</tbody> </tbody>
<template id="${infoPrefix}Row--${pageName}"> <template id="sndngRow--${pageName}">
<tr data-key="{SNDNG_DTL_ID}"> <tr data-key="{SNDNG_DTL_ID}">
<td class="text-center" onclick="{onclick}">{SNDNG_DTL_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_RCVMT_NM}</td> <td class="text-center" onclick="{onclick}">{SNDNG_RCVMT_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_SE_NM}</td> <td class="text-center" onclick="{onclick}">{SNDNG_SE_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_YMD}</td> <td class="text-center" onclick="{onclick}">{SNDNG_YMD}</td>
@ -82,7 +83,6 @@
<td class="text-start" onclick="{onclick}">{UNDLVR_RSN_NM}</td> <td class="text-start" onclick="{onclick}">{UNDLVR_RSN_NM}</td>
<td class="text-start" onclick="{onclick}">{ACTL_RCPN_NM}</td> <td class="text-start" onclick="{onclick}">{ACTL_RCPN_NM}</td>
<td class="text-center" onclick="{onclick}">{RCPN_REL_NM}</td> <td class="text-center" onclick="{onclick}">{RCPN_REL_NM}</td>
<td class="text-center" onclick="{onclick}">{SNDNG_DTL_STTS_NM}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td> <td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td> <td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
<td class="text-center" onclick="{onclick}">{MDFCN_DT}</td> <td class="text-center" onclick="{onclick}">{MDFCN_DT}</td>
@ -90,7 +90,7 @@
<td class="cmn dummy-td"></td> <td class="cmn dummy-td"></td>
</tr> </tr>
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}"> <template id="sndngNotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="23" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td> <td valign="top" colspan="23" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td>
</tr> </tr>
@ -145,12 +145,12 @@
<div class="row g-1"> <div class="row g-1">
<!-- DataTables(그리드) --> <!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap"> <div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}${pageDataName2}"> <div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_1_wrapper--${pageName}">
<div class="table-responsive" id="table-responsive--${pageName}${pageDataName2}" style="overflow-x:scroll; height:200px; overflow-y:scroll;" > <div class="table-responsive" id="table-responsive-svbtc--${pageName}" style="overflow-x:scroll; height:200px; overflow-y:scroll;" >
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" <table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer"
id="DataTables_Table_0--${pageName}${pageDataName2}" aria-describedby="DataTables_Table_0_info"> id="DataTables_Table_1--${pageName}" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead"> <thead class="sticky-thead">
<tr id="theadTr--${pageName}${pageDataName2}"> <tr id="theadTrSvbtc--${pageName}">
<th class="cmn" style="width: 120px">공시송달일자</th> <th class="cmn" style="width: 120px">공시송달일자</th>
<th class="cmn" style="width: 180px">문서번호</th> <th class="cmn" style="width: 180px">문서번호</th>
<th class="cmn" style="width: 280px">제목</th> <th class="cmn" style="width: 280px">제목</th>
@ -160,9 +160,9 @@
<th class="cmn dummy-th"></th> <th class="cmn dummy-th"></th>
</tr> </tr>
</thead> </thead>
<tbody id="tbody--${pageName}${pageDataName2}"> <tbody id="tbodySvbtc--${pageName}">
</tbody> </tbody>
<template id="${infoPrefix}Row--${pageName}${pageDataName2}"> <template id="svbtcRow--${pageName}">
<tr data-key="{SVBTC_ID}"> <tr data-key="{SVBTC_ID}">
<td class="text-center" onclick="{onclick}">{SVBTC_YMD}</td> <td class="text-center" onclick="{onclick}">{SVBTC_YMD}</td>
<td class="text-start" onclick="{onclick}">{DOC_NO}</td> <td class="text-start" onclick="{onclick}">{DOC_NO}</td>
@ -173,7 +173,7 @@
<td class="cmn dummy-td"></td> <td class="cmn dummy-td"></td>
</tr> </tr>
</template> </template>
<template id="${infoPrefix}NotFound--${pageName}${pageDataName2}"> <template id="svbtcNotFound--${pageName}">
<tr class="odd"> <tr class="odd">
<td valign="top" colspan="7" class="dataTables_empty text-center">공시송달 정보를 찾지 못했습니다.</td> <td valign="top" colspan="7" class="dataTables_empty text-center">공시송달 정보를 찾지 못했습니다.</td>
</tr> </tr>
@ -192,15 +192,22 @@
/************************************************************************** /**************************************************************************
* Global Variable * Global Variable
**************************************************************************/ **************************************************************************/
// URL pageObject["${pageName}"] = {};
var ${pageName}PrefixUrl = "/sprt/sprt02";
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
var $P = pageObject["${pageName}"];
// FormFields // FormFields
var ${pageName}Fields = new FimsFormFields("#frmEdit--${pageName}"); $P.formFields = new FimsFormFields("#frmEdit--${pageName}");
/************************************************************************** /**************************************************************************
* DatasetControl * DatasetControl
**************************************************************************/ **************************************************************************/
var ${pageName}Control = new DatasetControl({ $P.sndngControl = new DatasetControl({
prefix : "sndng" prefix : "sndng"
, prefixName : "발송 정보" , prefixName : "발송 정보"
, keymapper : info => info ? info.SNDNG_DTL_ID : "" , keymapper : info => info ? info.SNDNG_DTL_ID : ""
@ -218,7 +225,7 @@
}); });
// 공시송달 정보 Dataset // 공시송달 정보 Dataset
var ${pageName}${pageDataName2}Dataset = new Dataset({ $P.svbtcControl = new DatasetControl({
prefix : "svbtc" prefix : "svbtc"
, prefixName : "공시송달 정보" , prefixName : "공시송달 정보"
, keymapper : info => info ? info.SVBTC_ID : "" , keymapper : info => info ? info.SVBTC_ID : ""
@ -228,33 +235,27 @@
SVBTC_YMD : dateFormat SVBTC_YMD : dateFormat
, REG_DT : datetimeFormat , REG_DT : datetimeFormat
} }
, onDatasetChange : obj => {
renderList${pageName}${pageDataName2}();
}
, onCurrentChange : item => {
if (!item) return;
let key = item.data.SVBTC_ID;
$("#tbody--${pageName}${pageDataName2}").setCurrentRow(key);
}
}); });
/************************************************************************** /**************************************************************************
* DatasetControl 이벤트 * DatasetControl 이벤트
**************************************************************************/ **************************************************************************/
// Dataset 변경 // Dataset 변경
${pageName}Control.onDatasetChange = obj => { $P.sndngControl.onDatasetChange = obj => {
renderList${pageName}(); $P.renderSndngList();
}; };
$P.svbtcControl.onDatasetChange = obj => {
$P.renderSvbtcList();
}
// 현재 선택 자료 변경 이벤트 // 현재 선택 자료 변경 이벤트
${pageName}Control.onCurrentChange = item => { $P.sndngControl.onCurrentChange = item => {
if (!item) return; if (!item) return;
let key = item.data.SNDNG_DTL_ID; let key = item.data.SNDNG_DTL_ID;
$("#tbody--${pageName}").setCurrentRow(key); $("#tbodySndng--${pageName}").setCurrentRow(key);
// 가상계좌번호 // 가상계좌번호
let vrActno = ""; let vrActno = "";
@ -284,8 +285,16 @@
$("#epayno--${pageName}").val(item.data.EPAYNO_MASK); // 전자납부번호 $("#epayno--${pageName}").val(item.data.EPAYNO_MASK); // 전자납부번호
} }
$P.svbtcControl.onCurrentChange = item => {
if (!item) return;
let key = item.data.SVBTC_ID;
$("#tbodySvbtc--${pageName}").setCurrentRow(key);
}
// 개별 반송 Info // 개별 반송 Info
${pageName}Control.getInfo = (params) => { $P.sndngControl.getInfo = (params) => {
if (!params) return; if (!params) return;
let dialogTitle = ""; let dialogTitle = "";
@ -295,7 +304,7 @@
} else if (params.callPurpose == "update") { } else if (params.callPurpose == "update") {
dialogTitle = $("#btnUpdateSndbk--${pageName}").attr("title"); dialogTitle = $("#btnUpdateSndbk--${pageName}").attr("title");
} else { } else {
dialogTitle = ${pageName}Control.prefixName + " 정보"; return;
} }
ajax.get({ ajax.get({
@ -303,38 +312,39 @@
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
dialog.open({ dialog.open({
id : "sndbkInfoDialog" id : "sndbkDialog"
, title : dialogTitle , title : dialogTitle
, content : resp , content : resp
, size : "md" , size : "md"
, onClose : () => { refreshDataInfo${pageName}(); } // callback 자료 조회 , onClose : () => { $P.refreshSndngDataInfo(); }
}); });
} }
}); });
} }
// 개별 반송 삭제 callback // 개별 반송 삭제 callback
${pageName}Control.onRemove = (resp) => { $P.sndngControl.onRemove = (resp) => {
let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title"); let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle); let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
dialog.alert(showMessage); dialog.alert({
content : showMessage
, onOK : () => { }
});
if (resp.saved) { if (resp.saved) {
refreshDataInfo${pageName}(); $P.refreshSndngDataInfo();
} }
} }
// 개별 반송 삭제 // 개별 반송 삭제
${pageName}Control.remove = (params) => { $P.sndngControl.remove = (params) => {
if (!params) return; if (!params) return;
params.sndngDtlSttsCd = "03"; // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 03 발송
ajax.post({ ajax.post({
url : wctx.url("/" + params.taskSeCd + "/sndb/sndb01/210/delete.do") url : wctx.url("/" + params.taskSeCd + "/sndb/sndb01/210/delete.do")
, data : params , data : params
, success : resp => ${pageName}Control.onRemove(resp) , success : resp => $P.sndngControl.onRemove(resp)
}); });
} }
@ -342,42 +352,42 @@
* DataTables 이벤트 * DataTables 이벤트
**************************************************************************/ **************************************************************************/
// DataTables에 click, dbclick 이벤트 // DataTables에 click, dbclick 이벤트
renderList${pageName} = () => { $P.renderSndngList = () => {
let ${infoPrefix}List = ${pageName}Control.dataset; let ${infoPrefix}List = $P.sndngControl.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
let trs = empty ? let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%> [document.getElementById("sndngNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings( ${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%> document.getElementById("sndngRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str (str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}Control.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].sndngControl.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
); );
$("#tbody--${pageName}").html(trs.join()); $("#tbodySndng--${pageName}").html(trs.join());
} }
// 공시송달 정보 DataTables에 click 이벤트 // 공시송달 정보 DataTables에 click 이벤트
renderList${pageName}${pageDataName2} = () => { $P.renderSvbtcList = () => {
let ${infoPrefix}List = ${pageName}${pageDataName2}Dataset; let ${infoPrefix}List = $P.svbtcControl.dataset;
let empty = ${infoPrefix}List.empty; let empty = ${infoPrefix}List.empty;
let trs = empty ? let trs = empty ?
[document.getElementById("${infoPrefix}NotFound--${pageName}${pageDataName2}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%> [document.getElementById("svbtcNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
${infoPrefix}List.inStrings( ${infoPrefix}List.inStrings(
document.getElementById("${infoPrefix}Row--${pageName}${pageDataName2}").innerHTML, <%-- from template#${infoPrefix}Row --%> document.getElementById("svbtcRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str (str, dataItem) => str
.replace(/{onclick}/gi, "${pageName}${pageDataName2}Dataset.setCurrent('" + dataItem.getValue("SVBTC_ID") + "');") .replace(/{onclick}/gi, "pageObject['${pageName}'].svbtcControl.setCurrent('" + dataItem.getValue("SVBTC_ID") + "');")
); );
$("#tbody--${pageName}${pageDataName2}").html(trs.join()); $("#tbodySvbtc--${pageName}").html(trs.join());
} }
/************************************************************************** /**************************************************************************
* 사용자 함수(function) * 사용자 함수(function)
**************************************************************************/ **************************************************************************/
// 자료 재조회 // 자료 재조회
refreshDataInfo${pageName} = () => { $P.refreshSndngDataInfo = () => {
let crdnId = $("#crdnId--${pageNameMain}").val(); let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return // 단속 ID 가 없다면.. return
@ -396,17 +406,18 @@
, headers: { Accept: "application/json; charset=utf-8" } // json , headers: { Accept: "application/json; charset=utf-8" } // json
, data : params || {} , data : params || {}
, success : resp => { , success : resp => {
// Dataset 초기화 // 초기화
${pageName}Control.dataset.clear(); $("#frmEdit--${pageName}")[0].reset(); // 화면 초기화
${pageName}${pageDataName2}Dataset.clear(); $P.sndngControl.dataset.clear(); // Dataset 초기화
$P.svbtcControl.dataset.clear(); // Dataset 초기화
// Dataset 셋팅 // Dataset 셋팅
${pageName}Control.setData(resp.sndngDtl); // 발송 이력 정보 $P.sndngControl.setData(resp.sndngDtl); // 발송 이력 정보
${pageName}${pageDataName2}Dataset.setData(resp.svbtcList); // 공시송달 이력 정보 $P.svbtcControl.setData(resp.svbtcList); // 공시송달 이력 정보
// 최상단 단속 Data 셋팅 // 최상단 단속 Data 셋팅
if (resp.totalInfo) { if (resp.totalInfo) {
${pageNameMain}Control.setData([resp.totalInfo]); pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
} }
} }
}); });
@ -416,11 +427,11 @@
* 버튼 clickEvent * 버튼 clickEvent
**************************************************************************/ **************************************************************************/
// 개별 반송 등록 // 개별 반송 등록
fnCreateSndbk${pageName} = () => { $P.fnCreateSndbk = () => {
let btnTitle = $("#btnCreateSndbk--${pageName}").attr("title"); let btnTitle = $("#btnCreateSndbk--${pageName}").attr("title");
let sndngDtlId = ${pageName}Control.dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID let sndngDtlId = $P.sndngControl.dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let undlvrRsnNm = ${pageName}Control.dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명 let undlvrRsnNm = $P.sndngControl.dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명
let sndngDtlSttsNm = ${pageName}Control.dataset.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 코드 let sndngDtlSttsNm = $P.sndngControl.dataset.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 코드
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return; if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
@ -446,27 +457,28 @@
let params = { let params = {
callPurpose : "create" callPurpose : "create"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.sndngControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.sndngControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId : sndngDtlId // 발송 상세 ID , sndngDtlId : sndngDtlId // 발송 상세 ID
}; };
${pageName}Control.getInfo(params); $P.sndngControl.getInfo(params);
} }
// 개별 반송 수정 // 개별 반송 수정
fnUpdateSndbk${pageName} = () => { $P.fnUpdateSndbk = () => {
let btnTitle = $("#btnUpdateSndbk--${pageName}").attr("title"); let btnTitle = $("#btnUpdateSndbk--${pageName}").attr("title");
let sndngDtlId = ${pageName}Control.dataset.getValue("SNDNG_DTL_ID"); let sndngDtlId = $P.sndngControl.dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let undlvrRsnNm = ${pageName}Control.dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명 let sndngDtlSttsCd = $P.sndngControl.dataset.getValue("SNDNG_DTL_STTS_CD"); // 발송 상세 상태 코드
let sndngDtlSttsNm = $P.sndngControl.dataset.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 명
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return; if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
// 미배달 사유 확인 // 발송상세 상태코드 확인 (FIM050 - 05:반송)
if (undlvrRsnNm == "" ) { if (sndngDtlSttsCd != "05") {
dialog.alert({ dialog.alert({
content : "미배달 사유가 없어 " + btnTitle + " 을(를) 할 수 없습니다." content : "발송 상세 상태가 " + sndngDtlSttsNm + " (으)로 " + btnTitle + " 을(를) 할 수 없습니다."
, onOK : () => { } , onOK : () => { }
}); });
@ -475,37 +487,28 @@
let params = { let params = {
callPurpose : "update" callPurpose : "update"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.sndngControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.sndngControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId : sndngDtlId // 발송 상세 ID , sndngDtlId : sndngDtlId // 발송 상세 ID
, sndngDtlSttsCd : ${pageName}Control.dataset.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드 , sndngDtlSttsCd : $P.sndngControl.dataset.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드
, undlvrRsnNm : ${pageName}Control.dataset.getValue("UNDLVR_RSN_NM") // 미배달 사유 명 , undlvrRsnNm : $P.sndngControl.dataset.getValue("UNDLVR_RSN_NM") // 미배달 사유 명
}; };
${pageName}Control.getInfo(params); $P.sndngControl.getInfo(params);
} }
// 개별 반송 삭제 // 개별 반송 삭제
fnRemoveSndbk${pageName} = () => { $P.fnRemoveSndbk = () => {
let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title"); let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title");
let sndngDtlId = ${pageName}Control.dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID let sndngDtlId = $P.sndngControl.dataset.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let undlvrRsnNm = ${pageName}Control.dataset.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명 let sndngDtlSttsCd = $P.sndngControl.dataset.getValue("SNDNG_DTL_STTS_CD"); // 발송 상세 상태 코드
let sndngDtlSttsNm = ${pageName}Control.dataset.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 코드 let sndngDtlSttsNm = $P.sndngControl.dataset.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 명
// 발송상세ID 가 없다면.. return // 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return; if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
// 미배달 사유 확인
if (undlvrRsnNm == "" ) {
dialog.alert({
content : "미배달 사유가 없어 " + btnTitle + " 을(를) 할 수 없습니다."
, onOK : () => {}
});
return;
}
// 발송상세 상태코드 확인 (FIM050 - 05:반송) // 발송상세 상태코드 확인 (FIM050 - 05:반송)
if (sndngDtlSttsNm != "반송") { if (sndngDtlSttsCd != "05") {
dialog.alert({ dialog.alert({
content : "발송 상세 상태가 " + sndngDtlSttsNm + " (으)로 " + btnTitle + " 을(를) 할 수 없습니다." content : "발송 상세 상태가 " + sndngDtlSttsNm + " (으)로 " + btnTitle + " 을(를) 할 수 없습니다."
, onOK : () => { } , onOK : () => { }
@ -516,23 +519,24 @@
let params = { let params = {
callPurpose : "delete" callPurpose : "delete"
, sggCd : ${pageName}Control.dataset.getValue("SGG_CD") // 시군구 코드 , sggCd : $P.sndngControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd : ${pageName}Control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드 , taskSeCd : $P.sndngControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId : sndngDtlId // 발송 상세 ID , sndngDtlId : sndngDtlId // 발송 상세 ID
, sndngDtlSttsCd : "03" // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 03 발송
}; };
dialog.alert({ dialog.alert({
content : "선택한 반송 정보 을(를) 삭제하시겠습니까?" content : "선택한 반송 정보 을(를) 삭제하시겠습니까?"
, onOK : () => { , onOK : () => {
${pageName}Control.remove(params); $P.sndngControl.remove(params);
} }
}); });
} }
// 우편 종적 보기 // 우편 종적 보기
fnViewPostTrace${pageName} = () => { $P.fnViewPostTrace = () => {
// 등기번호 // 등기번호
let rgNo = ${pageName}Control.dataset.getValue("RG_NO"); let rgNo = $P.sndngControl.dataset.getValue("RG_NO");
// 등기번호가 없다면.. // 등기번호가 없다면..
if (typeof rgNo == "undefined" || rgNo == null || rgNo == "") return; if (typeof rgNo == "undefined" || rgNo == null || rgNo == "") return;
@ -544,20 +548,20 @@
* 초기 셋팅 * 초기 셋팅
**************************************************************************/ **************************************************************************/
// 이벤트 설정 // 이벤트 설정
setEvent${pageName} = () => { $P.setEvent = () => {
// 업무 버튼 이벤트
$("#btnCreateSndbk--${pageName}").on("click", () => $P.fnCreateSndbk()); // 개별 반송 등록 버튼 이벤트
$("#btnUpdateSndbk--${pageName}").on("click", () => $P.fnUpdateSndbk()); // 개별 반송 수정 버튼 이벤트
$("#btnRemoveSndbk--${pageName}").on("click", () => $P.fnRemoveSndbk()); // 개별 반송 삭제 버튼 이벤트
$("#btnViewPostTrace--${pageName}").on("click", () => $P.fnViewPostTrace()); // 우편 종적 보기 버튼 이벤트
// DataTables width 변경 조정 // DataTables width 변경 조정
$("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} ); $("#DataTables_Table_0--${pageName}").find("th").resizable( {handles : "e"} );
$("#DataTables_Table_0--${pageName}${pageDataName2}").find("th").resizable( {handles : "e"} ); $("#DataTables_Table_1--${pageName}").find("th").resizable( {handles : "e"} );
}
// 화면 초기 설정
initForm${pageName} = () => {
// 화면 초기화
$("#frmEdit--${pageName}")[0].reset();
} }
// 화면 데이터 셋팅 // 기본 데이터 설정
setFormData${pageName} = () => { $P.initData = () => {
// 화면 호출(callPurpose)이 view 라면 버튼 비활성화 // 화면 호출(callPurpose)이 view 라면 버튼 비활성화
if (${pageNameMain}CallPurpose == "view") { if (${pageNameMain}CallPurpose == "view") {
$("#btnCreateSndbk--${pageName}").prop("disabled", true); $("#btnCreateSndbk--${pageName}").prop("disabled", true);
@ -567,22 +571,17 @@
} }
/************************************************************************** /**************************************************************************
* script 진입 * 최초 실행 함수
**************************************************************************/ **************************************************************************/
$(document).ready(function() { // 1. 이벤트 설정
// 이벤트 설정 $P.setEvent();
setEvent${pageName}();
// 화면 초기 설정
initForm${pageName}();
// Dataset 설정
${pageName}Control.setData(${sndngDtl}); // 발송 이력
${pageName}${pageDataName2}Dataset.setData(${svbtc}); // 공시송달 이력 // 2. 기본 데이터 설정
$P.initData();
// 화면 데이터 셋팅 // 3. Dataset 설정
setFormData${pageName}(); $P.sndngControl.setData(${sndngDtl}); // 발송 이력
$P.svbtcControl.setData(${svbtc}); // 공시송달 이력
}); });
</script> </script>

Loading…
Cancel
Save