개별총정보 수정.

main
jjh 3 months ago
parent 2e952e60b4
commit a30bd41dfe

@ -157,7 +157,7 @@
<!-- 기타 내용 -->
<div class="col-md-8">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="etcCn">기타내용</label>
<textarea is="id-input" type="text" class="form-control w-80" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly></textarea>
<textarea is="id-textarea" type="text" class="form-control w-80" name="etcCn" data-map="ETC_CN" cols="100%" rows="3" readonly></textarea>
</div>
<!-- 과태료 단속원금 -->
<div class="col-md-3">
@ -263,10 +263,10 @@
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">납부자 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" name="btnDeleteCrdnPayer" title="납부자 초기화">
<button type="button" class="btn btn-primary w-px-120" name="btnDeleteCrdnPayer" title="납부자 초기화">
납부자 초기화
</button>
<button type="button" class="btn btn-primary" name="btnUpdatePayer" title="납부자 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdatePayer" title="납부자 수정">
납부자 수정
</button>
</span>
@ -362,7 +362,7 @@
* DatasetControl
**************************************************************************/
$P.ctrl = new DatasetControl({
prefix: "crdnPayer"
prefix: "crdn"
, prefixName: "단속"
, keymapper: info => info ? info.CRDN_ID : ""
, dataGetter: obj => obj.crdnPayerInfo
@ -405,14 +405,14 @@
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/020/info.do")
, data: params || {}
, success: (resp) => {
let dialogName = "crdnDialog";
let dialogName = $P.ctrl.prefixed("Dialog");
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: dialogId
, title: params.title
, content: resp
, title: params.btnTitle
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
@ -433,11 +433,10 @@
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
if (resp.saved) {
pageObject["${mainPageName}"].fnClose(true);
, onClose: () => {
if (resp.saved) { pageObject["${mainPageName}"].fnClose(true); }
}
});
}
// 삭제
@ -458,8 +457,8 @@
**************************************************************************/
// 자료 재조회
$P.fnRefreshDataInfo = () => {
// 단속 ID
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID");
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
@ -478,6 +477,7 @@
, success: (resp) => {
// 초기화
$P.find("frmEdit").reset(); // 화면 초기화
$P.ctrl.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보
@ -502,7 +502,7 @@
dialog.open({
id: dialogId
, title: params.title
, title: params.btnTitle
, size: "xl"
, content: resp
, init: () => {
@ -529,7 +529,7 @@
dialog.open({
id: dialogId
, title: params.title
, title: params.btnTitle
, size: "xl"
, content: resp
, init: () => {
@ -547,10 +547,11 @@
$P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
callPurpose: "remove"
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
, btnTitle: obj.reason // 버튼 title
, btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유
};
@ -589,7 +590,7 @@
dialog.open({
id: dialogId
, title: params.title
, title: params.btnTitle
, size: "lg"
, content: resp
, init: () => {
@ -612,18 +613,19 @@
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/removeCrdnPayer.do")
, data: params || {}
, success: (resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.title);
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
dialog.alert({
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
, onClose: () => {
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
}
});
}
});
}
// 납부자 정보 수정
$P.updatePayer = (params) => {
@ -674,8 +676,8 @@
// 민원 연계 ID가 없다면.. return
if (typeof cvlcptLinkId == "undefined" || cvlcptLinkId == null || cvlcptLinkId == "") {
dialog.alert({
content: "조회된 단속 민원 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
content: "조회된 민원 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -684,7 +686,7 @@
let params = {
callPurpose: "view"
, title: btnTitle
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -703,8 +705,8 @@
// 민원 연계 ID가 없다면.. return
if (typeof cvlcptLinkId == "undefined" || cvlcptLinkId == null || cvlcptLinkId == "") {
dialog.alert({
content: "조회된 단속 민원 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
content: "조회된 민원 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -713,7 +715,7 @@
let params = {
callPurpose : "view"
, title: btnTitle
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -731,7 +733,7 @@
let params = {
callPurpose: "update"
, title: btnTitle
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -748,8 +750,8 @@
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
// 단속 상태 코드
let crdnSttsCd = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_NM");
let crdnSttsCd = $P.ctrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = $P.ctrl.getValue("CRDN_STTS_NM");
// 단속 상태 코드 확인
if (Number(crdnSttsCd) > 51) {
@ -797,15 +799,15 @@
if (typeof bfrCrdnId == "undefined" || bfrCrdnId == null || bfrCrdnId == "") return;
// 단속 상태 코드
let crdnSttsCd = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_STTS_NM");
let crdnSttsCd = $P.ctrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = $P.ctrl.getValue("CRDN_STTS_NM");
// 단속 상태 코드 확인
if (Number(crdnSttsCd) < 80 || Number(crdnSttsCd) > 88) {
dialog.alert({
content: "[" + title + "]" + " 작업은 단속상태가 '비부과', '계고', '부과취소' 자료만 처리 가능합니다."
content: "[" + btnTitle + "]" + " 작업은 단속상태가 '비부과', '계고', '부과취소' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -818,7 +820,7 @@
, onOK: () => {
let params = {
callPurpose: "create"
, title: btnTitle
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, bfrCrdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -831,6 +833,9 @@
// 고지서출력
$P.fnMakeFileNht = (title, fileType, paper) => {
let url = "";
let fileTypeName = "";
if (fileType == "pdf") {
url = wctx.url("/sprt/sprt01/150/makeNhtPdf.do");
fileTypeName = "PDF 파일";
@ -886,7 +891,7 @@
}
// 단속 상태 변경
$P.fnUpdateCrdnSttsCd = (title) => {
$P.fnUpdateCrdnSttsCd = (btnTitle) => {
let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
@ -894,7 +899,7 @@
let params = {
callPurpose: "update"
, title: title
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -904,7 +909,7 @@
}
// 납부자 초기화
$P.fnDeleteCrdnPayer = (title) => {
$P.fnDeleteCrdnPayer = (btnTitle) => {
let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID
let rtpyrId = $P.ctrl.getValue("RTPYR_ID"); // 납부자 ID
@ -914,7 +919,7 @@
if (rtpyrId == null || rtpyrId == "") {
dialog.alert({
content: "조회된 납부자 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -926,7 +931,8 @@
, init: () => { setDialogZindex(); }
, onOK: () => {
let params = {
title: title
callPurpose: "initialize"
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -940,7 +946,7 @@
}
// 납부자 수정
$P.fnUpdatePayer = (title) => {
$P.fnUpdatePayer = (btnTitle) => {
let crdnId = $P.ctrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
@ -948,7 +954,7 @@
let params = {
callPurpose: "update"
, title: title
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
@ -988,10 +994,10 @@
$P.fnCreateCrdnReReg($P.$find("btnCreateCrdnReReg").attr("title")); // 단속 재등록
});
$P.$find("btnPrintNhtPdf01").on("click", () => {
$P.fnMakeFileNht($P.$find("btnPrintNhtPdf01").attr("title")); // 고지서 출력
$P.fnMakeFileNht($P.$find("btnPrintNhtPdf01").attr("title"), "pdf", "01"); // 고지서 출력
});
$P.$find("btnPrintNhtPdf02").on("click", () => {
$P.fnMakeFileNht($P.$find("btnPrintNhtPdf02").attr("title")); // 고지서 출력
$P.fnMakeFileNht($P.$find("btnPrintNhtPdf02").attr("title"), "pdf", "02"); // 고지서 출력
});
$P.$find("btnUpdateCrdnSttsCd").on("click", () => {
$P.fnUpdateCrdnSttsCd($P.$find("btnUpdateCrdnSttsCd").attr("title")); // 단속 상태 변경

@ -2,10 +2,10 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body -->
<div class="content-pop">
<div class="content-pop" data-doctx="${pageName}">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<input type="text" id="opnnId--${pageName}" name="opnnId" data-map="OPNN_ID" hidden />
<form name="frmEdit">
<input type="hidden" name="opnnId" data-map="OPNN_ID" />
<div class="d-flex flex-row justify-content-evenly">
<!-- 의견제출 정보 -->
@ -13,19 +13,19 @@
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">의견제출 정보</label>
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">의견제출 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateOpnnSbmsn--${pageName}" title="의견제출 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateOpnnSbmsn" title="의견제출 등록">
의견제출 등록
</button>
<button type="button" class="btn btn-primary" id="btnUpdateOpnnSbmsn--${pageName}" title="의견제출 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsn" title="의견제출 수정">
의견제출 수정
</button>
<button type="button" class="btn btn-primary" id="btnRemoveOpnnSbmsn--${pageName}" title="의견제출 삭제">
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveOpnnSbmsn" title="의견제출 삭제">
의견제출 삭제
</button>
<button type="button" class="btn btn-primary" id="btnPrintDlbrDecsn--${pageName}" title="심의의결서 출력">
<button type="button" class="btn btn-primary w-px-120" name="btnPrintDlbrDecsn" title="심의의결서 출력">
심의의결서 출력
</button>
</span>
@ -34,91 +34,90 @@
<div class="row g-1">
<!-- 접수 번호 -->
<div class="col-md-4">
<label for="rcptNoMask--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수번호</label>
<input type="text" class="form-control w-30" id="rcptNoMask--${pageName}" name="rcptNoMask" data-map="RCPT_NO_MASK" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcptNoMask">접수번호</label>
<input is="id-input" type="text" class="form-control w-30" name="rcptNoMask" data-map="RCPT_NO_MASK" readonly />
</div>
<!-- 접수 일자 -->
<div class="col-md-4">
<label for="rcptYmd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수일자</label>
<input type="text" class="form-control w-30" id="rcptYmd--${pageName}" name="rcptYmd" data-map="RCPT_YMD" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcptYmd">접수일자</label>
<input is="id-input" type="text" class="form-control w-30" name="rcptYmd" data-map="RCPT_YMD" readonly />
</div>
<!-- 접수 구분 -->
<div class="col-md-4">
<label for="rcptSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">접수구분</label>
<input type="text" class="form-control w-30" id="rcptSeNm--${pageName}" name="rcptSeNm" data-map="RCPT_SE_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcptSeNm">접수구분</label>
<input is="id-input" type="text" class="form-control w-30" name="rcptSeNm" data-map="RCPT_SE_NM" readonly />
</div>
<!-- 진술자 이름 -->
<div class="col-md-4">
<label for="sttrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">성명</label>
<input type="text" class="form-control w-40" id="sttrNm--${pageName}" name="sttrNm" data-map="STTR_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrNm">성명</label>
<input is="id-input" type="text" class="form-control w-40" name="sttrNm" data-map="STTR_NM" readonly />
</div>
<!-- 진술자 생년월일 -->
<div class="col-md-4">
<label for="sttrBrdtMask--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">생년월일</label>
<input type="text" class="form-control w-30" id="sttrBrdtMask--${pageName}" name="sttrBrdtMask" data-map="STTR_BRDT_MASK" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrBrdtMask">생년월일</label>
<input is="id-input" type="text" class="form-control w-30" name="sttrBrdtMask" data-map="STTR_BRDT_MASK" readonly />
</div>
<!-- 소유주 관계 구분 명 -->
<div class="col-md-4">
<label for="ownrRelNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">소유주관계</label>
<input type="text" class="form-control w-40" id="ownrRelNm--${pageName}" name="ownrRelNm" data-map="OWNR_REL_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ownrRelNm">소유주관계</label>
<input is="id-input" type="text" class="form-control w-40" name="ownrRelNm" data-map="OWNR_REL_NM" readonly />
</div>
<!-- 진술자 주소 --><!-- 진술자 우편번호 -->
<div class="col-md-12">
<label for="sttrAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">주소</label>
<input type="text" class="form-control w-80" id="sttrAddr--${pageName}" name="sttrAddr" data-map="STTR_ADDR" readonly />
<input type="text" class="form-control w-px-75" id="sttrZip--${pageName}" name="sttrZip" data-map="STTR_ZIP" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrAddr">주소</label>
<input is="id-input" type="text" class="form-control w-80" name="sttrAddr" data-map="STTR_ADDR" readonly />
<input is="id-input" type="text" class="form-control w-px-75" name="sttrZip" data-map="STTR_ZIP" readonly />
</div>
<!-- 진술자 상세주소 -->
<div class="col-md-12">
<label for="sttrDaddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세주소</label>
<input type="text" class="form-control w-87" id="sttrDaddr--${pageName}" name="sttrDaddr" data-map="STTR_DADDR" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrDaddr">상세주소</label>
<input is="id-input" type="text" class="form-control w-87" name="sttrDaddr" data-map="STTR_DADDR" readonly />
</div>
<!-- 진술자 연락처 -->
<div class="col-md-4">
<label for="sttrCttpc--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">연락처</label>
<input type="text" class="form-control w-35" id="sttrCttpc--${pageName}" name="sttrCttpc" data-map="STTR_CTTPC" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrCttpc">연락처</label>
<input is="id-input" type="text" class="form-control w-35" name="sttrCttpc" data-map="STTR_CTTPC" readonly />
</div>
<!-- 진술자 이메일 -->
<div class="col-md-8">
<label for="sttrEml--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">이메일</label>
<input type="text" class="form-control w-35" id="sttrEml--${pageName}" name="sttrEml" data-map="STTR_EML" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sttrEml">이메일</label>
<input is="id-input" type="text" class="form-control w-35" name="sttrEml" data-map="STTR_EML" readonly />
</div>
<!-- 의견 제출 내용 -->
<div class="col-md-12">
<label for="opnnSbmsnCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출내용</label>
<textarea type="text" class="form-control w-87" id="opnnSbmsnCn--${pageName}" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly></textarea>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="opnnSbmsnCn">의견제출내용</label>
<textarea is="id-textarea" type="text" class="form-control w-87" name="opnnSbmsnCn" data-map="OPNN_SBMSN_CN" rows="4" data-maxlengthb="4000" readonly></textarea>
</div>
<!-- 의견 제출 구분 명 -->
<div class="col-md-4">
<label for="opnnSbmsnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출구분</label>
<input type="text" class="form-control w-50" id="opnnSbmsnSeNm--${pageName}" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="opnnSbmsnSeNm">의견제출구분</label>
<input is="id-input" type="text" class="form-control w-50" name="opnnSbmsnSeNm" data-map="OPNN_SBMSN_SE_NM" readonly />
</div>
<!-- 의견 제출 요지 -->
<div class="col-md-8">
<label for="opnnSbmsnGist--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">의견제출요지</label>
<input type="text" class="form-control w-80" id="opnnSbmsnGist--${pageName}" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="opnnSbmsnGist">의견제출요지</label>
<input is="id-input" type="text" class="form-control w-80" name="opnnSbmsnGist" data-map="OPNN_SBMSN_GIST" data-maxlengthb="300" readonly />
</div>
<!-- 담당자 검토 의견 -->
<div class="col-md-12">
<label for="picRvwOpnn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">검토의견</label>
<textarea class="form-control w-87" id="picRvwOpnn--${pageName}" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="3" data-maxlengthb="1000" readonly>
</textarea>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="picRvwOpnn">검토의견</label>
<textarea is="id-textarea" type="text" class="form-control w-87" name="picRvwOpnn" data-map="PIC_RVW_OPNN" rows="2" data-maxlengthb="1000" readonly></textarea>
</div>
<!-- 등록 일시 / 등록자 -->
<div class="col-md-6">
<label for="regDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">등록일시</label>
<input type="text" class="form-control w-30" id="regDt--${pageName}" name="regDt" data-map="REG_DT" readonly />
<input type="text" class="form-control w-25" id="rgtrNm--${pageName}" name="rgtrNm" data-map="RGTR_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="regDt">등록일시</label>
<input is="id-input" type="text" class="form-control w-30" name="regDt" data-map="REG_DT" readonly />
<input is="id-input" type="text" class="form-control w-25" name="rgtrNm" data-map="RGTR_NM" readonly />
</div>
<!-- 수정 일시 / 수정자 -->
<div class="col-md-6">
<label for="mdfcnDt--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">수정일시</label>
<input type="text" class="form-control w-30" id="mdfcnDt--${pageName}" name="mdfcnDt" data-map="MDFCN_DT" readonly />
<input type="text" class="form-control w-25" id="mdfrNm--${pageName}" name="mdfrNm" data-map="MDFR_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mdfcnDt">수정일시</label>
<input is="id-input" type="text" class="form-control w-30" name="mdfcnDt" data-map="MDFCN_DT" readonly />
<input is="id-input" type="text" class="form-control w-25" name="mdfrNm" data-map="MDFR_NM" readonly />
</div>
<!-- 첨부 파일 테이블 -->
<div class="table-responsive">
<table class="table table-bordered table-hover table-striped" id="fileList--${pageName}">
<table class="table table-bordered table-hover table-striped" name="fileList">
<thead>
<th class="text-center" style="width: 24px">No.</th>
<th class="text-center" style="width: 200px">파일번호</th>
@ -126,7 +125,8 @@
<th class="text-center" style="width: 200px">파일크기</th>
<th class="text-center" style="width: 120px">다운로드</th>
</thead>
<tbody></tbody>
<tbody name="tbodyFileList">
</tbody>
</table>
</div> <!-- 첨부 파일 테이블 <div class="table-responsive"> -->
</div> <!-- <div class="row g-1"> -->
@ -142,7 +142,7 @@
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">심의 정보</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnUpdateOpnnSbmsnDlbrt--${pageName}" title="의견제출 심의">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsnDlbrt" title="의견제출 심의">
의견제출 심의
</button>
</span>
@ -151,39 +151,37 @@
<div class="row g-1">
<!-- 문서 번호 -->
<div class="col-md-12">
<label for="docNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">문서번호</label>
<input type="text" class="form-control w-45" id="docNo--${pageName}" name="docNo" data-map="DOC_NO" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="docNo">문서번호</label>
<input is="id-input" type="text" class="form-control w-45" name="docNo" data-map="DOC_NO" readonly />
</div>
<!-- 통보 구분 -->
<div class="col-md-12">
<label for="ntfctnSeNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">통보구분</label>
<input type="text" class="form-control w-30" id="ntfctnSeNm--${pageName}" name="ntfctnSeNm" data-map="NTFCTN_SE_NM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ntfctnSeNm">통보구분</label>
<input is="id-input" type="text" class="form-control w-30" name="ntfctnSeNm" data-map="NTFCTN_SE_NM" readonly />
</div>
<!-- 의견 제출 상태 코드 -->
<div class="col-md-12">
<label for="opnnSbmsnSttsNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">심의결과</label>
<input type="text" class="form-control w-30" id="opnnSbmsnSttsNm--${pageName}" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly />
<input type="hidden" id="opnnSbmsnSttsCd--${pageName}" name="opnnSbmsnSttsCd" data-map="OPNN_SBMSN_STTS_CD" />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="opnnSbmsnSttsNm">심의결과</label>
<input is="id-input" type="text" class="form-control w-30" name="opnnSbmsnSttsNm" data-map="OPNN_SBMSN_STTS_NM" readonly />
<input is="id-input" type="hidden" name="opnnSbmsnSttsCd" data-map="OPNN_SBMSN_STTS_CD" />
</div>
<!-- 답변 일시 -->
<div class="col-md-12">
<label for="ansYmdTm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">심의일시</label>
<input type="text" class="form-control w-45" id="ansYmdTm--${pageName}" name="ansYmdTm" data-map="ANS_YMD_TM" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ansYmdTm">심의일시</label>
<input is="id-input" type="text" class="form-control w-45" name="ansYmdTm" data-map="ANS_YMD_TM" readonly />
</div>
<!-- 답변 내용 -->
<!-- 심의 내용 -->
<div class="col-md-12">
<label for="ansCn--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">심의내용</label>
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ansCn">심의내용</label>
</div>
<div class="col-md-12">
<textarea type="text" class="form-control w-100" id="ansCn--${pageName}" name="ansCn" data-map="ANS_CN" rows="14" data-maxlengthb="4000"></textarea>
<textarea is="id-textarea" type="text" class="form-control w-100" name="ansCn" data-map="ANS_CN" rows="14" data-maxlengthb="4000"></textarea>
</div>
</div>
</div> <!-- <div class="card"> -->
</div> <!-- <div class="col-xl-3 mx-0"> -->
<!-- 심의 정보 -->
</div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
<span id="tempArea--${pageName}" hidden></span>
</form>
<!-- 입력 영역 -->
</div> <!-- <div class="content-pop"> -->
@ -192,7 +190,7 @@
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/**************************************************************************
* script 진입
@ -202,18 +200,18 @@
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
$P.formFields = new FimsFormFields($P.selector("frmEdit"));
// 파일 리스트
$P.fileListArr = new Array();
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
$P.ctrl = new DatasetControl({
prefix: "opnn"
, prefixName: "의견제출"
, keymapper: info => info ? info.OPNN_ID : ""
, dataGetter: obj => obj.opnnSbmsnInfo
, dataGetter: obj => obj.opnnInfo
, formats: {
RCPT_YMD: dateFormat
, ANS_YMD_TM: datetimeFormat
@ -226,38 +224,45 @@
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = item => {
$P.ctrl.onCurrentChange = (item) => {
if (!item) return;
$P.formFields.set($P.control, item);
$P.formFields.set($P.ctrl, item);
let key = item.data.OPNN_ID;
// 첨부파일 조회
if (key != null) {
$P.fnSearchFileList(item.data.OPNN_ID);
}
if (key != null) { $P.fnSearchFileList(key); }
}
// 의견제출 dialog
$P.control.getInfo = (params) => {
// 의견제출 정보 dialog
$P.ctrl.getInfo = (params) => {
if (!params) return;
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/020/info.do") + "?openerPageName=${pageName}"
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/020/info.do")
, data: params || {}
, success: resp => {
, success: (resp) => {
if ((typeof resp) != "string") {
if (resp.rtnMsg != "") {
dialog.alert(resp.rtnMsg);
}
return;
} else {
let dialogName = $P.ctrl.prefixed("Dialog");
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: $P.control.prefixed("Dialog--${pageName}")
, title: params.title
, content: resp
id: dialogId
, title: params.btnTitle
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
}
@ -266,26 +271,32 @@
}
// 삭제 callback
$P.control.onRemove = (resp) => {
let btnTitle = $("#btnRemoveOpnnSbmsn--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
$P.ctrl.onRemove = (params, resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
dialog.alert({
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) {
$P.fnSearchFileList(); // 첨부파일 조회
$P.fnRefreshDataInfo(); // 자료 재조회
}
}
});
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
}
// 삭제
$P.control.remove = (params) => {
$P.ctrl.remove = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/010/remove.do")
, data: params || {}
, success: resp => $P.control.onRemove(resp)
, success: (resp) => {
$P.ctrl.onRemove(params, resp);
}
});
}
@ -294,16 +305,16 @@
**************************************************************************/
// 자료 재조회
$P.fnRefreshDataInfo = () => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, crdnId: crdnId
, sggCd: $("#sggCd--${pageNameMain}").val()
, taskSeCd: $("#taskSeCd--${pageNameMain}").val()
, sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD")
, taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD")
, crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID")
, delYn: "N"
};
@ -311,16 +322,19 @@
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: resp => {
, success: (resp) => {
// 초기화
$("#frmEdit--${pageName}")[0].reset(); // 화면 초기화
$P.control.dataset.clear(); // Dataset 초기화
$P.find("frmEdit").reset(); // 화면 초기화
$P.ctrl.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
pageObject["${mainPageName}"].mainCtrl.setData([resp.totalInfo]);
// 의견제출 정보
if (resp.opnnSbmsnInfo) { $P.control.setData([resp.opnnSbmsnInfo]); }
// Dataset 셋팅
if (resp.opnnInfo) {
$P.ctrl.setData([resp.opnnInfo]); // 의견제출 정보
}
}
});
}
@ -330,32 +344,42 @@
if (!params) return;
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/030/info.do") + "?openerPageName=${pageName}"
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/030/info.do")
, data: params || {}
, success: resp => {
, success: (resp) => {
let dialogName = "opnnDlbrDialog";
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: "opnnDlbrDialog--${pageName}"
, title: params.title
, content: resp
id: dialogId
, title: params.btnTitle
, size: "lg"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
}
});
}
// 사유 callback
// 삭제 사유 callback
$P.callbackRsn = (obj) => {
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose: "remove"
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: $P.control.dataset.getValue("OPNN_ID") // 의견제출 ID
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
, btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유
};
$P.control.remove(params);
$P.ctrl.remove(params);
}
// 심의의결서 출력
@ -376,46 +400,33 @@
* 버튼 clickEvent
**************************************************************************/
// 의견제출 등록 버튼 이벤트
$P.fnCreateOpnnSbmsn = (title) => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
$P.fnCreateOpnnSbmsn = (btnTitle) => {
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 상태 코드
let crdnSttsCd = $("#crdnSttsCd--${pageNameMain}").val();
let crdnSttsNm = $("#crdnSttsNm--${pageNameMain}").val();
// 단속 상태 코드 확인
if (Number(crdnSttsCd) < 01 || Number(crdnSttsCd) > 45) {
dialog.alert({
content: "[" + title + "]" + " 작업은 단속상태가 '부과 이전' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
}
// 단속 ID 가 없다면.. return
if (!crdnId) return;
let params = {
callPurpose: "create"
, title: title
, sggCd: $("#sggCd--${pageNameMain}").val() // 시군구 코드
, taskSeCd: $("#taskSeCd--${pageNameMain}").val() // 업무 구분 코드
, crdnId: crdnId // 단속 ID
, btnTitle: btnTitle
, sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID") // 단속 ID
, delYn: "N"
};
$P.control.getInfo(params);
$P.ctrl.getInfo(params);
}
// 의견제출 수정 버튼 이벤트
$P.fnUpdateOpnnSbmsn = (title) => {
// 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
$P.fnUpdateOpnnSbmsn = (btnTitle) => {
let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
// 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") {
if (!opnnId) {
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
@ -423,38 +434,40 @@
let params = {
callPurpose: "update"
, title: title
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: opnnId // 의견제출 ID
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrl.getValue("CRDN_ID") // 단속 ID
, opnnId: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
};
$P.control.getInfo(params);
$P.ctrl.getInfo(params);
}
// 의견제출 삭제 버튼 이벤트
$P.fnRemoveOpnnSbmsn = (title) => {
// 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
$P.fnRemoveOpnnSbmsn = (btnTitle) => {
let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
// 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") {
if (!opnnId) {
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
}
// 의견제출 상태 코드
let opnnSbmsnSttsCd = $("#opnnSbmsnSttsCd--${pageName}").val();
let opnnSbmsnSttsNm = $("#opnnSbmsnSttsNm--${pageName}").val();
let opnnSbmsnSttsCd = $P.ctrl.getValue("OPNN_SBMSN_STTS_CD");
let opnnSbmsnSttsNm = $P.ctrl.getValue("OPNN_SBMSN_STTS_NM");
// 의견제출 상태 코드 확인
if (opnnSbmsnSttsCd != '00' && opnnSbmsnSttsCd != '03') {
dialog.alert({
content: "[" + title + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다."
content: "[" + btnTitle + "]" + " 작업은 심의결과가 '접수', '자진취하' 자료만 삭제 가능합니다."
+ "<br>" + "심의결과 : " + opnnSbmsnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
@ -462,7 +475,7 @@
// 삭제 메세지 확인
dialog.alert({
content: "선택하신 " + selected.length + "건의 " + $P.control.prefixName + " 정보를 삭제하시겠습니까?"
content: "선택하신 " + $P.ctrl.prefixName + " 정보를 삭제하시겠습니까?"
, onOK: () => {
// 삭제 사유 입력
fetch(wctx.url("/resources/html/inputRsnDialog.html"))
@ -470,12 +483,15 @@
.then(function(template) {
dialog.open({
id: "inputDelRsnDialog"
, title: title
, title: btnTitle
, size: "lg"
, content: template
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.callbackRsn({ reason: $("#reason").val() });
$P.callbackRsn({
btnTitle: btnTitle // 버튼 title
, reason: $("#reason").val() // 삭제 사유
});
}
});
});
@ -484,14 +500,14 @@
}
// 심의의결서 출력 버튼 이벤트
$P.fnPrintDlbrDecsn = (title) => {
// 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
$P.fnPrintDlbrDecsn = (btnTitle) => {
let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
// 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") {
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
@ -499,38 +515,39 @@
let params = {
callPurpose: "download"
, title: title
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnIds: opnnId // 의견제출 ID
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnIds: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
};
$P.makeHwpFileDlbrDecsn(params);
}
// 의견제출 심의 버튼 이벤트
$P.fnUpdateOpnnSbmsnDlbrt = (title) => {
// 의견제출 ID
let opnnId = $P.control.dataset.getValue("OPNN_ID");
$P.fnUpdateOpnnSbmsnDlbrt = (btnTitle) => {
let opnnId = $P.ctrl.getValue("OPNN_ID"); // 의견제출 ID
// 의견제출 ID 가 없다면.. return
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") {
dialog.alert({
content: "조회된 의견제출 대장 정보가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
}
// 단속 상태 코드
let crdnSttsCd = $("#crdnSttsCd--${pageNameMain}").val();
let crdnSttsNm = $("#crdnSttsNm--${pageNameMain}").val();
let crdnSttsCd = $P.ctrl.getValue("CRDN_STTS_CD");
let crdnSttsNm = $P.ctrl.getValue("CRDN_STTS_NM");
// 단속 상태 코드 확인
if ( (Number(crdnSttsCd) != 82 && Number(crdnSttsCd) != 87) && (Number(crdnSttsCd) < 21 || Number(crdnSttsCd) > 45) ) {
dialog.alert({
content: "[" + title + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다."
content: "[" + btnTitle + "]" + " 작업은 단속상태가 '의견제출수용', '경찰서이첩', '부과 이전' 자료만 처리 가능합니다."
+ "<br>" + "단속상태 : " + crdnSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, onOK: () => { }
});
return;
@ -538,10 +555,10 @@
let params = {
callPurpose: "update"
, title: title
, sggCd: $P.control.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.control.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: opnnId // 의견제출 ID
, btnTitle: btnTitle
, sggCd: $P.ctrl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrl.getValue("TASK_SE_CD") // 업무 구분 코드
, opnnId: $P.ctrl.getValue("OPNN_ID") // 의견제출 ID
};
$P.getOpnnSbmsnDlbrtInfo(params);
@ -549,20 +566,17 @@
// 첨부파일 조회
$P.fnSearchFileList = (opnnId) => {
// 의견제출 등록일 경우에는 첨부파일을 조회하지 안는다..
if (typeof opnnId == "undefined" || opnnId == null || opnnId == "") return;
let iLoop = 0;
// 기존 table에 자료가 존재하면 table 삭제
let fileListTable = document.getElementById("fileList--${pageName}"); // table element 찾기
if (fileListTable.rows.length == 1) { iLoop = 2; }
else { iLoop = 1; }
let tableFileList = $P.find("fileList"); // table element 찾기
let fileLength = tableFileList.rows.length;
for (iLoop; iLoop <= fileListTable.rows.length; iLoop++) {
let newRow = fileListTable.deleteRow(fileListTable.rows.length-1); // table 행(Row) 삭제
// 기존 table에 자료가 존재하면 tableRow 삭제
for (let iLoop = 1; iLoop < fileLength; iLoop++) {
tableFileList.deleteRow(1); // table 행(Row) 삭제
}
// 의견제출 ID 가 없다면 첨부파일을 조회하지 않는다..
if (!opnnId) return;
// 첨부파일 리스트
ajax.get({
url: "file/list.do"
@ -589,7 +603,7 @@
innerHtml += "pageObject['${pageName}'].fnFileDownload(" + item.FILE_ID + ");" + "><i class='bx bx-download me-1'></i></button>" + "</td>";
innerHtml += "</tr>";
$("#fileList--${pageName} > tbody:last").append(innerHtml);
$P.$find("tbodyFileList").append(innerHtml);
});
}
});
@ -597,7 +611,7 @@
// 첨부파일 다운로드 버튼 이벤트
$P.fnFileDownload = (fileID) => {
if (pageObject['${pageNameMain}'].callPurpose == "view") { return; }
if (pageObject['${mainPageName}'].callPurpose == "view") { return; }
top.location.href = "/file/download.do?fileID=" + fileID;
}
@ -607,42 +621,37 @@
**************************************************************************/
// 이벤트 설정
$P.setEvent = () => {
// 의견제출 등록 버튼 이벤트
$("#btnCreateOpnnSbmsn--${pageName}").on("click", function() {
$P.fnCreateOpnnSbmsn($(this).attr("title"));
// 업무 버튼 이벤트
$P.$find("btnCreateOpnnSbmsn").on("click", function() {
$P.fnCreateOpnnSbmsn($P.$find("btnCreateOpnnSbmsn").attr("title")); // 의견제출 등록
});
// 의견제출 수정 버튼 이벤트
$("#btnUpdateOpnnSbmsn--${pageName}").on("click", function() {
$P.fnUpdateOpnnSbmsn($(this).attr("title"));
$P.$find("btnUpdateOpnnSbmsn").on("click", function() {
$P.fnUpdateOpnnSbmsn($P.$find("btnUpdateOpnnSbmsn").attr("title")); // 의견제출 수정
});
// 의견제출 삭제 버튼 이벤트
$("#btnRemoveOpnnSbmsn--${pageName}").on("click", function() {
$P.fnRemoveOpnnSbmsn($(this).attr("title"));
$P.$find("btnRemoveOpnnSbmsn").on("click", function() {
$P.fnRemoveOpnnSbmsn($P.$find("btnRemoveOpnnSbmsn").attr("title")); // 의견제출 삭제
});
// 심의의결서 출력 버튼 이벤트
$("#btnPrintDlbrDecsn--${pageName}").on("click", function() {
$P.fnPrintDlbrDecsn($(this).attr("title"));
$P.$find("btnPrintDlbrDecsn").on("click", function() {
$P.fnPrintDlbrDecsn($P.$find("btnPrintDlbrDecsn").attr("title")); // 심의의결서 출력
});
// 의견제출 심의 버튼 이벤트
$("#btnUpdateOpnnSbmsnDlbrt--${pageName}").on("click", function() {
$P.fnUpdateOpnnSbmsnDlbrt($(this).attr("title"));
$P.$find("btnUpdateOpnnSbmsnDlbrt").on("click", function() {
$P.fnUpdateOpnnSbmsnDlbrt($P.$find("btnUpdateOpnnSbmsnDlbrt").attr("title")); // 의견제출 심의
});
}
// 초기 화면 설정
$P.initForm = () => {
// button 요소들을 disabled = true
$("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", true);
$("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", true);
$("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", true);
$("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", true);
// 화면 호출(callPurpose)이 view가 아니라면 버튼 비활성화 disabled = false
if (pageObject['${pageNameMain}'].callPurpose != "view") {
$("#btnCreateOpnnSbmsn--${pageName}").prop("disabled", false);
$("#btnUpdateOpnnSbmsn--${pageName}").prop("disabled", false);
$("#btnRemoveOpnnSbmsn--${pageName}").prop("disabled", false);
$("#btnUpdateOpnnSbmsnDlbrt--${pageName}").prop("disabled", false);
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject['${mainPageName}'].callPurpose == "view") {
$P.$find("btnCreateOpnnSbmsn").prop("disabled", true);
$P.$find("btnUpdateOpnnSbmsn").prop("disabled", true);
$P.$find("btnRemoveOpnnSbmsn").prop("disabled", true);
$P.$find("btnUpdateOpnnSbmsnDlbrt").prop("disabled", true);
} else {
$P.$find("btnCreateOpnnSbmsn").prop("disabled", false);
$P.$find("btnUpdateOpnnSbmsn").prop("disabled", false);
$P.$find("btnRemoveOpnnSbmsn").prop("disabled", false);
$P.$find("btnUpdateOpnnSbmsnDlbrt").prop("disabled", false);
}
}
@ -656,10 +665,8 @@
$P.initForm();
// 3. Dataset 설정
let opnnSbmsnInfo = ${opnnSbmsnInfo}; // 의견제출 정보
if (opnnSbmsnInfo) {
$P.control.setData([opnnSbmsnInfo]);
}
let opnnInfo = ${opnnInfo}; // 의견제출 정보
if (opnnInfo) { $P.ctrl.setData([opnnInfo]); }
});
</script>

@ -2,26 +2,26 @@
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>
<!-- Page Body -->
<div class="content-pop">
<div class="content-pop" data-doctx="${pageName}">
<div class="d-flex flex-row justify-content-evenly">
<!-- 발송 정보 -->
<div class="col-xl-12 mx-1">
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">발송 이력</label>
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">발송 이력</label>
<!-- 버튼 우측 정렬 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary" id="btnCreateSndbk--${pageName}" title="개별 반송 등록">
개별 반송 등록
<button type="button" class="btn btn-primary w-px-120" name="btnCreateSndbk" title="개별 반송 등록">
반송 등록
</button>
<button type="button" class="btn btn-primary" id="btnUpdateSndbk--${pageName}" title="개별 반송 수정">
개별 반송 수정
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateSndbk" title="개별 반송 수정">
반송 수정
</button>
<button type="button" class="btn btn-primary" id="btnRemoveSndbk--${pageName}" title="개별 반송 삭제">
개별 반송 삭제
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveSndbk" title="개별 반송 삭제">
반송 삭제
</button>
<button type="button" class="btn btn-primary" id="btnViewPostTrace--${pageName}" title="우편 종적 보기">
<button type="button" class="btn btn-primary w-px-120" name="btnViewPostTrace" title="우편 종적 보기">
우편 종적 보기
</button>
</span>
@ -30,12 +30,11 @@
<div class="row g-1">
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_0_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-300" id="table-responsive-sndngDtl--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer"
id="DataTables_Table_0--${pageName}" aria-describedby="DataTables_Table_0_info">
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
<div class="table-responsive ox-scroll oy-scroll h-px-300" name="tableRspnsSndngDtl">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTrSndngDtl--${pageName}">
<tr name="theadTrSndngDtl">
<th class="cmn" style="width: 120px">발송상태</th>
<th class="cmn" style="width: 100px">수납</th>
<th class="cmn" style="width: 100px">취급구분</th>
@ -55,6 +54,7 @@
<th class="cmn" style="width: 160px">미배달사유</th>
<th class="cmn" style="width: 120px">수령인</th>
<th class="cmn" style="width: 160px">수령인관계</th>
<th class="cmn" style="width: 200px">발송상세ID</th>
<th class="cmn" style="width: 180px">등록일시</th>
<th class="cmn" style="width: 140px">등록사용자</th>
<th class="cmn" style="width: 180px">수정일시</th>
@ -62,10 +62,10 @@
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbodySndngDtl--${pageName}">
<tbody name="tableTbodySndngDtl">
</tbody>
<template id="sndngDtlRow--${pageName}">
<tr data-key="{SNDNG_DTL_ID}">
<template is="curly-brackets" name="tableRowsSndngDtl">
<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}">{DIV_KB_NM}</td>
@ -85,6 +85,7 @@
<td class="text-start" onclick="{onclick}">{UNDLVR_RSN_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}">{SNDNG_DTL_ID}</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}">{MDFCN_DT}</td>
@ -92,9 +93,9 @@
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="sndngDtlNotFound--${pageName}">
<template name="notFoundSndngDtl">
<tr class="odd">
<td valign="top" colspan="23" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="25" class="dataTables_empty text-center">발송 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -111,25 +112,25 @@
<!-- 가상계좌 정보 -->
<div class="col-xl-3 mx-1">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<form name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sndngDtlId--${pageName}" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<input type="hidden" id="sndngId--${pageName}" name="sndngId" data-map="SNDNG_ID" />
<input type="hidden" name="sndngDtlId" data-map="SNDNG_DTL_ID" />
<input type="hidden" name="sndngId" data-map="SNDNG_ID" />
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">가상계좌 정보</label>
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">가상계좌 정보</label>
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 가상계좌 -->
<div class="col-md-12">
<textarea type="text" class="form-control w-100" id="vrActno--${pageName}" name="vrActno" cols="100%" rows="10" readonly></textarea>
<textarea is="id-textarea" type="text" class="form-control w-100" name="vrActno" cols="100%" rows="10" readonly></textarea>
</div>
<!-- 전자납부번호 -->
<div class="col-md-12">
<label for="epayno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">전자납부번호</label>
<input type="text" class="form-control w-65" id="epayno--${pageName}" name="epayno" data-map="EPAYNO" readonly />
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="epayno">전자납부번호</label>
<input is="id-input" type="text" class="form-control w-65" name="epayno" data-map="EPAYNO" readonly />
</div>
</div>
</div> <!-- <div class="card"> -->
@ -142,42 +143,47 @@
<div class="card">
<!-- 업무 버튼 -->
<div class="container-page-btn">
<label class="w-px-120 bg-label-danger pe-2 col-form-label text-sm-center">공시송달 이력</label>
<label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">공시송달 이력</label>
</div>
<div class="row g-1">
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer" id="DataTables_Table_1_wrapper--${pageName}">
<div class="table-responsive ox-scroll oy-scroll h-px-250" id="table-responsive-1--${pageName}">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer"
id="DataTables_Table_1--${pageName}" aria-describedby="DataTables_Table_0_info">
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
<div class="table-responsive ox-scroll oy-scroll h-px-250" name="tableRspnsSvbtc">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr id="theadTrSvbtc--${pageName}">
<th class="cmn" style="width: 120px">공시송달일자</th>
<th class="cmn" style="width: 180px">문서번호</th>
<th class="cmn" style="width: 280px">제목</th>
<th class="cmn" style="width: 280px">기타내용</th>
<th class="cmn" style="width: 180px">등록일시</th>
<th class="cmn" style="width: 140px">등록사용자</th>
<tr name="theadTrSvbtc">
<th class="cmn sorting" style="width: 140px" data-field="SNDNG_SE_NM">발송구분</th>
<th class="cmn sorting" style="width: 120px" data-field="SNDNG_YMD">발송일자</th>
<th class="cmn sorting" style="width: 120px" data-field="SVBTC_YMD">공시송달일자</th>
<th class="cmn sorting" style="width: 180px" data-field="DOC_NO">문서번호</th>
<th class="cmn sorting" style="width: 300px" data-field="TTL_NM">제목</th>
<th class="cmn sorting" style="width: 300px" data-field="ETC_CN">기타내용</th>
<th class="cmn sorting" style="width: 200px" data-field="SNDNG_DTL_ID">발송상세ID</th>
<th class="cmn sorting" style="width: 180px" data-field="REG_DT">등록일시</th>
<th class="cmn sorting" style="width: 140px" data-field="RGTR_NM">등록사용자</th>
<th class="cmn dummy-th"></th>
</tr>
</thead>
<tbody id="tbodySvbtc--${pageName}">
<tbody name="tableTbodySvbtc">
</tbody>
<template id="svbtcRow--${pageName}">
<tr data-key="{SVBTC_ID}">
<td class="text-center" onclick="{onclick}">{SVBTC_YMD}</td>
<td class="text-start" onclick="{onclick}">{DOC_NO}</td>
<td class="text-start" onclick="{onclick}">{TTL_NM}</td>
<td class="text-start" onclick="{onclick}">{ETC_CN}</td>
<td class="text-center" onclick="{onclick}">{REG_DT}</td>
<td class="text-center" onclick="{onclick}">{RGTR_NM}</td>
<template is="curly-brackets" name="tableRowsSvbtc">
<tr data-key="SNDNG_DTL_ID">
<td class="text-center" onclick>{SNDNG_SE_NM}</td>
<td class="text-center" onclick>{SNDNG_YMD}</td>
<td class="text-center" onclick>{SVBTC_YMD}</td>
<td class="text-start" onclick>{DOC_NO}</td>
<td class="text-start" onclick>{TTL_NM}</td>
<td class="text-start" onclick>{ETC_CN}</td>
<td class="text-center" onclick>{SNDNG_DTL_ID}</td>
<td class="text-center" onclick>{REG_DT}</td>
<td class="text-center" onclick>{RGTR_NM}</td>
<td class="cmn dummy-td"></td>
</tr>
</template>
<template id="svbtcNotFound--${pageName}">
<template name="notFoundSvbtc">
<tr class="odd">
<td valign="top" colspan="7" class="dataTables_empty text-center">공시송달 정보를 찾지 못했습니다.</td>
<td valign="top" colspan="9" class="dataTables_empty text-center">공시송달 정보를 찾지 못했습니다.</td>
</tr>
</template>
</table>
@ -195,7 +201,7 @@
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/**************************************************************************
* script 진입
@ -205,13 +211,13 @@
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
$P.formFields = new FimsFormFields($P.selector("frmEdit"));
/**************************************************************************
* DatasetControl
**************************************************************************/
// 발송 상세 정보 DatasetControl
$P.sndngDtlControl = new DatasetControl({
$P.ctrlSndngDtl = new DatasetControl({
prefix: "sndng"
, prefixName: "발송반송"
, keymapper: info => info ? info.SNDNG_DTL_ID : ""
@ -229,14 +235,15 @@
});
// 공시송달 정보 DatasetControl
$P.svbtcDtlControl = new DatasetControl({
$P.ctrlSvbtc = new DatasetControl({
prefix: "svbtc"
, prefixName: "공시송달"
, keymapper: info => info ? info.SVBTC_ID : ""
, keymapper: info => info ? info.SNDNG_DTL_ID : ""
, dataGetter: obj => obj.svbtcDtls
, appendData: true
, formats: {
SVBTC_YMD: dateFormat
SNDNG_YMD: dateFormat
, SVBTC_YMD: dateFormat
, REG_DT: datetimeFormat
}
});
@ -244,61 +251,62 @@
/**************************************************************************
* 발송 상세 DatasetControl 이벤트
**************************************************************************/
// Dataset 변경
$P.sndngDtlControl.onDatasetChange = (obj, option) => {
$P.renderSndngList();
// Dataset 변경 이벤트
$P.ctrlSndngDtl.onDatasetChange = (obj, option) => {
$P.renderSndngDtlList();
};
// 현재 선택 자료 변경 이벤트
$P.sndngDtlControl.onCurrentChange = (item) => {
$P.ctrlSndngDtl.onCurrentChange = (item) => {
if (!item) return;
let key = item.data.SNDNG_DTL_ID;
$("#tbodySndngDtl--${pageName}").setCurrentRow(key);
$P.$find("tableTbodySndngDtl").setCurrentRow(key);
// 가상계좌번호
let vrActno = "";
if (item.data.BANK_NM != null && item.data.BANK_NM != "") vrActno += item.data.BANK_NM + " " + item.data.VR_ACTNO + "\n"; // 가상 계좌번호
if (item.data.BANK_NM2 != null && item.data.BANK_NM2 != "") vrActno += item.data.BANK_NM2 + " " + item.data.VR_ACTNO2 + "\n"; // 가상 계좌번호2
if (item.data.BANK_NM3 != null && item.data.BANK_NM3 != "") vrActno += item.data.BANK_NM3 + " " + item.data.VR_ACTNO3 + "\n"; // 가상 계좌번호3
if (item.data.BANK_NM4 != null && item.data.BANK_NM4 != "") vrActno += item.data.BANK_NM4 + " " + item.data.VR_ACTNO4 + "\n"; // 가상 계좌번호4
if (item.data.BANK_NM5 != null && item.data.BANK_NM5 != "") vrActno += item.data.BANK_NM5 + " " + item.data.VR_ACTNO5 + "\n"; // 가상 계좌번호5
if (item.data.BANK_NM6 != null && item.data.BANK_NM6 != "") vrActno += item.data.BANK_NM6 + " " + item.data.VR_ACTNO6 + "\n"; // 가상 계좌번호6
if (item.data.BANK_NM7 != null && item.data.BANK_NM7 != "") vrActno += item.data.BANK_NM7 + " " + item.data.VR_ACTNO7 + "\n"; // 가상 계좌번호7
if (item.data.BANK_NM8 != null && item.data.BANK_NM8 != "") vrActno += item.data.BANK_NM8 + " " + item.data.VR_ACTNO8 + "\n"; // 가상 계좌번호8
if (item.data.BANK_NM9 != null && item.data.BANK_NM9 != "") vrActno += item.data.BANK_NM9 + " " + item.data.VR_ACTNO9 + "\n"; // 가상 계좌번호9
if (item.data.BANK_NM10 != null && item.data.BANK_NM10 != "") vrActno += item.data.BANK_NM10 + " " + item.data.VR_ACTNO10 + "\n"; // 가상 계좌번호10
if (item.data.BANK_NM11 != null && item.data.BANK_NM11 != "") vrActno += item.data.BANK_NM11 + " " + item.data.VR_ACTNO11 + "\n"; // 가상 계좌번호11
if (item.data.BANK_NM12 != null && item.data.BANK_NM12 != "") vrActno += item.data.BANK_NM12 + " " + item.data.VR_ACTNO12 + "\n"; // 가상 계좌번호12
if (item.data.BANK_NM13 != null && item.data.BANK_NM13 != "") vrActno += item.data.BANK_NM13 + " " + item.data.VR_ACTNO13 + "\n"; // 가상 계좌번호13
if (item.data.BANK_NM14 != null && item.data.BANK_NM14 != "") vrActno += item.data.BANK_NM14 + " " + item.data.VR_ACTNO14 + "\n"; // 가상 계좌번호14
if (item.data.BANK_NM15 != null && item.data.BANK_NM15 != "") vrActno += item.data.BANK_NM15 + " " + item.data.VR_ACTNO15 + "\n"; // 가상 계좌번호15
if (item.data.BANK_NM16 != null && item.data.BANK_NM16 != "") vrActno += item.data.BANK_NM16 + " " + item.data.VR_ACTNO16 + "\n"; // 가상 계좌번호16
if (item.data.BANK_NM17 != null && item.data.BANK_NM17 != "") vrActno += item.data.BANK_NM17 + " " + item.data.VR_ACTNO17 + "\n"; // 가상 계좌번호17
if (item.data.BANK_NM18 != null && item.data.BANK_NM18 != "") vrActno += item.data.BANK_NM18 + " " + item.data.VR_ACTNO18 + "\n"; // 가상 계좌번호18
if (item.data.BANK_NM19 != null && item.data.BANK_NM19 != "") vrActno += item.data.BANK_NM19 + " " + item.data.VR_ACTNO19 + "\n"; // 가상 계좌번호19
if (item.data.BANK_NM20 != null && item.data.BANK_NM20 != "") vrActno += item.data.BANK_NM20 + " " + item.data.VR_ACTNO20 + "\n"; // 가상 계좌번호20
$("#vrActno--${pageName}").val(vrActno); // 가상 계좌번호
$("#epayno--${pageName}").val(item.data.EPAYNO_MASK); // 전자납부번호
let vrActno = Array.from({length: 20}, (x, i) => {
let no = i + 1
, bank = "BANK_NM" + (no > 1 ? no : "")
, account = "VR_ACTNO" + (no > 1 ? no : "");
return [bank, account]
})
.map(entry => {
let bank = item.data[entry[0]]
, account = item.data[entry[1]];
return bank ? bank + " " + account : null;
})
.filter(txt => txt != null)
.join("\n");
$P.$find("vrActno").val(vrActno); // 가상 계좌번호
$P.$find("epayno").val(item.data.EPAYNO_MASK); // 전자납부번호
}
// 개별 반송 dialog
$P.sndngDtlControl.getInfo = (params) => {
$P.ctrlSndngDtl.getInfo = (params) => {
if (!params) return;
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/230/info.do") + "?openerPageName=${pageName}"
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/230/info.do")
, data: params || {}
, success: resp => {
, success: (resp) => {
let dialogName = "sndbkDialog";
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: "sndbkDialog--${pageName}"
id: dialogId
, title: params.title
, content: resp
, size: "md"
, content: resp
, init: () => {
setDialogZindex();
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
}
@ -306,27 +314,29 @@
}
// 개별 반송 삭제 callback
$P.sndngDtlControl.onRemove = (resp) => {
let btnTitle = $("#btnRemoveSndbk--${pageName}").attr("title");
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, btnTitle);
$P.ctrlSndngDtl.onRemove = (params, resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
dialog.alert({
content: showMessage
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
, onClose: () => {
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
}
});
}
// 개별 반송 삭제
$P.sndngDtlControl.remove = (params) => {
$P.ctrlSndngDtl.remove = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/220/remove.do")
, data: params || {}
, success: resp => $P.sndngDtlControl.onRemove(resp)
, success: (resp) => {
$P.ctrlSndngDtl.onRemove(params, resp);
}
});
}
@ -334,52 +344,48 @@
* 공시송달 DatasetControl 이벤트
**************************************************************************/
// Dataset 변경
$P.svbtcDtlControl.onDatasetChange = (obj, option) => {
$P.ctrlSvbtc.onDatasetChange = (obj, option) => {
$P.renderSvbtcList();
}
// 현재 선택 자료 변경 이벤트
$P.svbtcDtlControl.onCurrentChange = (item) => {
$P.ctrlSvbtc.onCurrentChange = (item) => {
if (!item) return;
let key = item.data.SVBTC_ID;
let key = item.data.SNDNG_DTL_ID;
$("#tbodySvbtc--${pageName}").setCurrentRow(key);
$P.$find("tableTbodySvbtc").setCurrentRow(key);
}
/**************************************************************************
* DataTables 이벤트
**************************************************************************/
// DataTables에 click, dbclick 이벤트
$P.renderSndngList = () => {
let sndngDtlList = $P.sndngDtlControl.dataset;
$P.renderSndngDtlList = () => {
let sndngDtlList = $P.ctrlSndngDtl.dataset;
let empty = sndngDtlList.empty;
let trs = empty ?
[document.getElementById("sndngDtlNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
sndngDtlList.inStrings(
document.getElementById("sndngDtlRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].sndngDtlControl.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
let trs = empty ? [$P.find("notFoundSndngDtl").innerHTML] :
sndngDtlList.inStrings($P.find("tableRowsSndngDtl").innerHTML
, (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].ctrlSndngDtl.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
);
$("#tbodySndngDtl--${pageName}").html(trs.join());
$P.$find("tableTbodySndngDtl").html(trs.join());
}
// 공시송달 정보 DataTables에 click 이벤트
$P.renderSvbtcList = () => {
let svbtcDtlList = $P.svbtcDtlControl.dataset;
let empty = svbtcDtlList.empty;
let trs = empty ?
[document.getElementById("svbtcNotFound--${pageName}").innerHTML] : <%-- from template#${infoPrefix}NotFound --%>
svbtcDtlList.inStrings(
document.getElementById("svbtcRow--${pageName}").innerHTML, <%-- from template#${infoPrefix}Row --%>
(str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].svbtcDtlControl.setCurrent('" + dataItem.getValue("SVBTC_ID") + "');")
let svbtcList = $P.ctrlSvbtc.dataset;
let empty = svbtcList.empty;
let trs = empty ? [$P.find("notFoundSvbtc").innerHTML] :
svbtcList.inStrings($P.find("tableRowsSvbtc").innerHTML
, (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].ctrlSvbtc.setCurrent('" + dataItem.getValue("SNDNG_DTL_ID") + "');")
);
$("#tbodySvbtc--${pageName}").html(trs.join());
$P.$find("tableTbodySvbtc").html(trs.join());
}
/**************************************************************************
@ -387,16 +393,16 @@
**************************************************************************/
// 자료 재조회
$P.fnRefreshDataInfo = () => {
// 단속 ID
let crdnId = $("#crdnId--${pageNameMain}").val();
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (typeof crdnId == "undefined" || crdnId == null || crdnId == "") return;
let params = {
callPurpose: "refresh"
, sggCd: $("#sggCd--${pageNameMain}").val()
, taskSeCd: $("#taskSeCd--${pageNameMain}").val()
, crdnId: crdnId
, sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD")
, taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD")
, crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID")
, delYn: "N"
};
@ -406,16 +412,17 @@
, data: params || {}
, success: resp => {
// 초기화
$("#frmEdit--${pageName}")[0].reset(); // 화면 초기화
$P.sndngDtlControl.dataset.clear(); // 발송 상세 Dataset 초기화
$P.svbtcDtlControl.dataset.clear(); // 공시송달 Dataset 초기화
$P.find("frmEdit").reset(); // 화면 초기화
$P.ctrlSndngDtl.dataset.clear(); // 발송상세 Dataset 초기화
$P.ctrlSvbtc.dataset.clear(); // 공시송달 Dataset 초기화
// sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
// Dataset 셋팅
$P.sndngDtlControl.setData(resp.sndngDtls); // 발송 이력 정보
$P.svbtcDtlControl.setData(resp.svbtcDtls); // 공시송달 이력 정보
$P.ctrlSndngDtl.setData(resp.sndngDtls); // 발송 이력 정보
$P.ctrlSvbtc.setData(resp.svbtcDtls); // 공시송달 이력 정보
}
});
}
@ -424,19 +431,17 @@
* 버튼 clickEvent
**************************************************************************/
// 개별 반송 등록
$P.fnCreateSndbk = (title) => {
// 발송 상세 ID
let sndngDtlId = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_ID");
$P.fnCreateSndbk = (btnTitle) => {
let sndngDtlId = $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let undlvrRsnNm = $P.ctrlSndngDtl.getValue("UNDLVR_RSN_NM"); // 미배달 사유 명
// 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
// 미배달 사유 명
let undlvrRsnNm = $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_NM");
// 미배달 사유 확인
if (undlvrRsnNm != "" ) {
dialog.alert({
content: "미배달 사유가 " + undlvrRsnNm + " (으)로 반송 등록 되어 있습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -444,14 +449,15 @@
}
// 발송 상세 상태 코드
let sndngDtlSttsCd = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_CD");
let sndngDtlSttsNm = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_NM");
let sndngDtlSttsCd = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_CD");
let sndngDtlSttsNm = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_NM");
// 발송상세 상태코드 확인 (FIM050 - 03:발송 04:발송확인)
if (sndngDtlSttsCd != "03" && sndngDtlSttsCd != "04") {
dialog.alert({
content: "[" + title + "]" + " 작업은 발송상세 상태가 '발송' 또는 '발송확인' 자료만 처리 가능합니다."
content: "[" + btnTitle + "]" + " 작업은 발송상세 상태가 '발송' 또는 '발송확인' 자료만 처리 가능합니다."
+ "<br>" + "발송상세상태 : " + sndngDtlSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -460,32 +466,32 @@
let params = {
callPurpose: "create"
, title: title
, sggCd: $P.sndngDtlControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.sndngDtlControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: sndngDtlId // 발송 상세 ID
, btnTitle: btnTitle
, sggCd: $P.ctrlSndngDtl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrlSndngDtl.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID") // 발송 상세 ID
, delYn: "N"
};
$P.sndngDtlControl.getInfo(params);
$P.ctrlSndngDtl.getInfo(params);
}
// 개별 반송 수정
$P.fnUpdateSndbk = (title) => {
// 발송 상세 ID
let sndngDtlId = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_ID");
$P.fnUpdateSndbk = (btnTitle) => {
let sndngDtlId = $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
// 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
if (!sndngDtlId) return;
// 미배달 사유 코드
let undlvrRsnCd = $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_CD");
let undlvrRsnNm = $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_NM");
let undlvrRsnCd = $P.ctrlSndngDtl.getValue("UNDLVR_RSN_CD");
let undlvrRsnNm = $P.ctrlSndngDtl.getValue("UNDLVR_RSN_NM");
// 발송상세 상태코드 확인 (FIM050 - 05:반송)
if (undlvrRsnNm == null || undlvrRsnNm == "") {
if (!undlvrRsnNm) {
dialog.alert({
content: "조회된 반송(미배달) 사유가 없습니다."
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -494,34 +500,32 @@
let params = {
callPurpose: "update"
, title: title
, sggCd: $P.sndngDtlControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.sndngDtlControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: sndngDtlId // 발송 상세 ID
, sndngDtlSttsCd: $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드
, undlvrRsnNm: $P.sndngDtlControl.dataset.getValue("UNDLVR_RSN_NM") // 미배달 사유 명
, title: btnTitle
, sggCd: $P.ctrlSndngDtl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrlSndngDtl.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID") // 발송 상세 ID
, sndngDtlSttsCd: $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_CD") // 발송 상세 상태 코드
, undlvrRsnNm: $P.ctrlSndngDtl.getValue("UNDLVR_RSN_NM") // 미배달 사유 명
, delYn : "N"
};
$P.sndngDtlControl.getInfo(params);
$P.ctrlSndngDtl.getInfo(params);
}
// 개별 반송 삭제
$P.fnRemoveSndbk = (title) => {
// 발송 상세 ID
let sndngDtlId = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_ID");
$P.fnRemoveSndbk = (btnTitle) => {
let sndngDtlId = $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID"); // 발송 상세 ID
let sndngDtlSttsCd = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_CD"); // 발송 상세 상태 코드
let sndngDtlSttsNm = $P.ctrlSndngDtl.getValue("SNDNG_DTL_STTS_NM"); // 발송 상세 상태 명
// 발송상세ID 가 없다면.. return
if (typeof sndngDtlId == "undefined" || sndngDtlId == null || sndngDtlId == "") return;
// 발송 상세 상태 코드
let sndngDtlSttsCd = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_CD");
let sndngDtlSttsNm = $P.sndngDtlControl.dataset.getValue("SNDNG_DTL_STTS_NM");
// 발송상세 상태코드 확인 (FIM050 - 05:반송)
if (sndngDtlSttsCd != "05") {
dialog.alert({
content: "[" + title + "]" + " 작업은 발송상세 상태가 '반송' 자료만 처리 가능합니다."
content: "[" + btnTitle + "]" + " 작업은 발송상세 상태가 '반송' 자료만 처리 가능합니다."
+ "<br>" + "발송상세상태 : " + sndngDtlSttsNm
+ "<br><br>" + "[" + title + "]" + " 실행이 취소되었습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { setDialogZindex(); }
, onOK: () => { }
});
@ -530,10 +534,10 @@
let params = {
callPurpose: "delete"
, title: title
, sggCd: $P.sndngDtlControl.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.sndngDtlControl.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: sndngDtlId // 발송 상세 ID
, btnTitle: btnTitle
, sggCd: $P.ctrlSndngDtl.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrlSndngDtl.getValue("TASK_SE_CD") // 업무 구분 코드
, sndngDtlId: $P.ctrlSndngDtl.getValue("SNDNG_DTL_ID") // 발송 상세 ID
, sndngDtlSttsCd: "03" // 발송 상세 상태 코드(SNDNG_DTL_STTS_CD) FIM050 - 03 발송
};
@ -541,20 +545,18 @@
content: "선택한 반송 정보를 삭제하시겠습니까?"
, init: () => { setDialogZindex(); }
, onOK: () => {
$P.sndngDtlControl.remove(params);
$P.ctrlSndngDtl.remove(params);
}
});
}
// 우편 종적 보기
$P.fnViewPostTrace = () => {
// 취급 구분
let divKb = $P.sndngDtlControl.dataset.getValue("DIV_KB");
let divKb = $P.ctrlSndngDtl.getValue("DIV_KB"); // 취급 구분
let rgNo = $P.ctrlSndngDtl.getValue("RG_NO"); // 등기번호
// 취급 구분이 일반이라면..
if (typeof divKb == "undefined" || divKb == null || divKb == "" || divKb == "000") return;
// 등기번호
let rgNo = $P.sndngDtlControl.dataset.getValue("RG_NO");
// 등기번호가 없다면..
if (typeof rgNo == "undefined" || rgNo == null || rgNo == "") return;
@ -567,36 +569,35 @@
// 이벤트 설정
$P.setEvent = () => {
// 업무 버튼 이벤트
$("#btnCreateSndbk--${pageName}").on("click", function() {
$P.fnCreateSndbk($(this).attr("title")); // 개별 반송 등록
$P.$find("btnCreateSndbk").on("click", function() {
$P.fnCreateSndbk($P.$find("btnCreateSndbk").attr("title")); // 개별 반송 등록
});
$("#btnUpdateSndbk--${pageName}").on("click", function() {
$P.fnUpdateSndbk($(this).attr("title")); // 개별 반송 수정
$P.$find("btnUpdateSndbk").on("click", function() {
$P.fnUpdateSndbk($P.$find("btnUpdateSndbk").attr("title")); // 개별 반송 수정
});
$("#btnRemoveSndbk--${pageName}").on("click", function() {
$P.fnRemoveSndbk($(this).attr("title")); // 개별 반송 삭제
$P.$find("btnRemoveSndbk").on("click", function() {
$P.fnRemoveSndbk($P.$find("btnRemoveSndbk").attr("title")); // 개별 반송 삭제
});
$("#btnViewPostTrace--${pageName}").on("click", function() {
$P.fnViewPostTrace($(this).attr("title")); // 우편 종적 보기
$P.$find("btnViewPostTrace").on("click", function() {
$P.fnViewPostTrace($P.$find("btnViewPostTrace").attr("title")); // 개별 반송 등록
});
// DataTables width 변경 조정
fnMakeResizableTable($("#table-responsive-sndngDtl--${pageName}")[0]);
fnMakeResizableTable($("#table-responsive-1--${pageName}")[0]);
fnMakeResizableTable($P.find("tableRspnsSndngDtl"));
fnMakeResizableTable($P.find("tableRspnsSvbtc"));
}
// 초기 화면 설정
$P.initForm = () => {
// button 요소들을 disabled = true
$("#btnCreateSndbk--${pageName}").prop("disabled", true);
$("#btnUpdateSndbk--${pageName}").prop("disabled", true);
$("#btnRemoveSndbk--${pageName}").prop("disabled", true);
// 화면 호출(callPurpose)이 view가 아니라면 버튼 비활성화 disabled = false
if (pageObject['${pageNameMain}'].callPurpose != "view") {
$("#btnCreateSndbk--${pageName}").prop("disabled", false);
$("#btnUpdateSndbk--${pageName}").prop("disabled", false);
$("#btnRemoveSndbk--${pageName}").prop("disabled", false);
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject['${mainPageName}'].callPurpose == "view") {
$P.$find("btnCreateSndbk").prop("disabled", true);
$P.$find("btnUpdateSndbk").prop("disabled", true);
$P.$find("btnRemoveSndbk").prop("disabled", true);
} else {
$P.$find("btnCreateSndbk").prop("disabled", false);
$P.$find("btnUpdateSndbk").prop("disabled", false);
$P.$find("btnRemoveSndbk").prop("disabled", false);
}
}
@ -609,9 +610,12 @@
// 2. 초기 화면 설정
$P.initForm();
// 정렬
// tableSorter($P.ctrlSndngDtl, "th[data-field]");
// 3. Dataset 설정
$P.sndngDtlControl.setData(${sndngDtls}); // 발송 이력
$P.svbtcDtlControl.setData(${svbtcDtls}); // 공시송달 이력
$P.ctrlSndngDtl.setData(${sndngDtls}); // 발송 이력
$P.ctrlSvbtc.setData(${svbtcDtls}); // 공시송달 이력
});
</script>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save