개별총정보 수정.

main
JoJH 1 week ago
parent a1bf65c613
commit 669ed9392d

@ -17,28 +17,28 @@
<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="btnViewCvlcptOrgnl" title="민원 원본 보기">
<button type="button" class="btn btn-primary" name="btnViewCvlcptOrgnl" title="민원 원본 보기" disabled>
민원 원본 보기
</button>
<button type="button" class="btn btn-primary" name="btnViewAnswerPreview" title="민원 답변 보기">
<button type="button" class="btn btn-primary" name="btnViewAnswerPreview" title="민원 답변 보기" disabled>
민원 답변 보기
</button>
<button type="button" class="btn btn-primary" name="btnPrintNhtPdf01" title="고지서 출력(PDF-A4)">
<button type="button" class="btn btn-primary" name="btnPrintNhtPdf01" title="고지서 출력(PDF-A4)" disabled>
고지서출력(A4)
</button>
<button type="button" class="btn btn-primary" name="btnPrintNhtPdf02" title="고지서 출력(PDF-Letter)">
<button type="button" class="btn btn-primary" name="btnPrintNhtPdf02" title="고지서 출력(PDF-Letter)" disabled>
고지서서출력(Letter)
</button>
<button type="button" class="btn btn-primary" name="btnUpdateCrdn" title="단속 정보 수정">
<button type="button" class="btn btn-primary" name="btnUpdateCrdn" title="단속 정보 수정" disabled>
단속정보 수정
</button>
<button type="button" class="btn btn-primary" name="btnRemoveCrdn" title="단속 정보 삭제">
<button type="button" class="btn btn-primary" name="btnRemoveCrdn" title="단속 정보 삭제" disabled>
단속정보 삭제
</button>
<button type="button" class="btn btn-primary" name="btnUpdateCrdnSttsCd" title="단속 상태 변경">
<button type="button" class="btn btn-primary" name="btnUpdateCrdnSttsCd" title="단속 상태 변경" disabled>
단속상태 변경
</button>
<button type="button" class="btn btn-primary" name="btnCreateCrdnReReg" title="단속 재등록">
<button type="button" class="btn btn-primary" name="btnCreateCrdnReReg" title="단속 재등록" disabled>
단속 재등록
</button>
</span>
@ -437,7 +437,7 @@
AppSupport.setDialogZindex();
}
, onClose: () => { $P.ctrlCrdn.refresh(); } // 자료 재조회
, onClose: () => { $P.fnRefresh(); } // 정보 새로고침
});
}
});
@ -458,7 +458,7 @@
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) { $P.ctrlCrdn.refresh(); } // 자료 재조회
if (resp.saved) { $P.fnRefresh(); } // 정보 새로고침
}
});
}
@ -495,12 +495,46 @@
AppSupport.setDialogZindex();
}
, onClose: () => { $P.ctrlCrdn.refresh(); } // 자료 재조회
, onClose: () => { $P.fnRefresh(); } // 정보 새로고침
});
}
});
}
// 정보 새로고침
$P.fnRefresh = () => {
let ctrlMain = pageObject["${pageNameMain}"].ctrlMain;
// 단속 ID 가 없다면.. return
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: ctrlMain.getValue("SGG_CD")
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
, crdnId: ctrlMain.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/020/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmCrdnPayer").reset(); // 단속 화면
$P.ctrlCrdn.dataset.clear(); // 단속, 납부자 Dataset
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
// 단속, 납부자 정보
if (resp.crdnPayerInfo) { $P.ctrlCrdn.setData([resp.crdnPayerInfo]); }
}
});
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
@ -771,6 +805,7 @@
, taskSeCd: $P.ctrlCrdn.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: $P.ctrlCrdn.getValue("CRDN_ID") // 단속 ID
, rtpyrId: $P.ctrlCrdn.getValue("RTPYR_ID") // 납부자 ID
, etcCn: "" // 기타 내용
, delYn: "N"
};
@ -845,25 +880,15 @@
// 초기 화면 설정
$P.fnReset = () => {
// 초기화
$P.findn("frmCrdnPayer").reset(); // 화면 초기화
$P.ctrlCrdn.dataset.clear(); // Dataset 초기화
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject["${pageNameMain}"].callPurpose == "view") {
$P.$findn("btnPrintNhtPdf01").prop("disabled", true);
$P.$findn("btnPrintNhtPdf02").prop("disabled", true);
$P.$findn("btnUpdateCrdn").prop("disabled", true);
$P.$findn("btnRemoveCrdn").prop("disabled", true);
$P.$findn("btnUpdateCrdnSttsCd").prop("disabled", true);
$P.$findn("btnCreateCrdnReReg").prop("disabled", true);
$P.$findn("btnDeleteCrdnPayer").prop("disabled", true);
$P.$findn("btnUpdatePayer").prop("disabled", true);
$P.$findn("btnOpenVideoCapture").prop("disabled", true);
$P.$findn("btnAddFile").prop("disabled", true);
$P.$findn("btnEditPhoto").prop("disabled", true);
$P.$findn("btnDeleteExistPhoto").prop("disabled", true);
} else {
// 화면 초기화
$P.findn("frmCrdnPayer").reset();
// Dataset 초기화
$P.ctrlCrdn.dataset.clear(); // 단속 Dataset
// 화면 호출(callPurpose)이 view가 아니라면 버튼 활성화 disabled = false
if (pageObject["${pageNameMain}"].callPurpose != "view") {
$P.$findn("btnViewCvlcptOrgnl").prop("disabled", false);
$P.$findn("btnViewAnswerPreview").prop("disabled", false);
$P.$findn("btnPrintNhtPdf01").prop("disabled", false);
$P.$findn("btnPrintNhtPdf02").prop("disabled", false);
$P.$findn("btnUpdateCrdn").prop("disabled", false);

@ -17,16 +17,16 @@
<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 w-px-120" name="btnCreateOpnnSbmsn" title="의견제출 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateOpnnSbmsn" title="의견제출 등록" disabled>
의견제출 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsn" title="의견제출 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateOpnnSbmsn" title="의견제출 수정" disabled>
의견제출 수정
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveOpnnSbmsn" title="의견제출 삭제">
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveOpnnSbmsn" title="의견제출 삭제" disabled>
의견제출 삭제
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnPrintDlbrDecsn" title="심의의결서 출력">
<button type="button" class="btn btn-primary w-px-120" name="btnPrintDlbrDecsn" title="심의의결서 출력" disabled>
심의의결서 출력
</button>
</span> <!-- <span class="container-window-btn-right"> -->
@ -246,6 +246,40 @@
document.location.href = url + "?" + parameter;
}
// 정보 새로고침
$P.fnRefresh = () => {
let ctrlMain = pageObject["${pageNameMain}"].ctrlMain;
// 단속 ID 가 없다면.. return
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: ctrlMain.getValue("SGG_CD")
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
, crdnId: ctrlMain.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmOpnn").reset(); // 의견진술 화면 초기화
$P.ctrlOpnn.dataset.clear(); // 의견진술 Dataset 초기화
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
// 의견진술 정보
if (resp.opnnInfo) { $P.ctrlOpnn.setData([resp.opnnInfo]); }
}
});
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
@ -510,18 +544,14 @@
// 화면 초기화
$P.findn("frmOpnn").reset();
// Dataset 초기화
$P.ctrlOpnn.dataset.clear(); // 의견제출
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject["${pageNameMain}"].callPurpose == "view") {
$P.$findn("btnCreateOpnnSbmsn").prop("disabled", true);
$P.$findn("btnUpdateOpnnSbmsn").prop("disabled", true);
$P.$findn("btnRemoveOpnnSbmsn").prop("disabled", true);
$P.$findn("btnUpdateOpnnSbmsnDlbrt").prop("disabled", true);
} else {
$P.ctrlOpnn.dataset.clear(); // 의견제출 Dataset
// 화면 호출(callPurpose)이 view가 아니라면 버튼 활성화 disabled = false
if (pageObject["${pageNameMain}"].callPurpose != "view") {
$P.$findn("btnCreateOpnnSbmsn").prop("disabled", false);
$P.$findn("btnUpdateOpnnSbmsn").prop("disabled", false);
$P.$findn("btnRemoveOpnnSbmsn").prop("disabled", false);
$P.$findn("btnPrintDlbrDecsn").prop("disabled", false);
$P.$findn("btnUpdateOpnnSbmsnDlbrt").prop("disabled", false);
}
}

@ -12,16 +12,16 @@
<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 w-px-120" name="btnCreateSndbk" title="개별 반송 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateSndbk" title="개별 반송 등록" disabled>
반송 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateSndbk" title="개별 반송 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateSndbk" title="개별 반송 수정" disabled>
반송 수정
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveSndbk" title="개별 반송 삭제">
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveSndbk" title="개별 반송 삭제" disabled>
반송 삭제
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnViewPostTrace" title="우편 종적 보기">
<button type="button" class="btn btn-primary w-px-120" name="btnViewPostTrace" title="우편 종적 보기" disabled>
우편 종적 보기
</button>
</span> <!-- <span class="container-window-btn-right"> -->
@ -212,8 +212,6 @@
// pageObject
let $P = pageObject["${pageName}"];
// URL
$P.prefixUrl = "${prefixUrl}"
// datasetControl
$P.ctrlSndngDtl = newSprt02040ControlSD("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
$P.ctrlSvbtc = newSprt02040ControlSV("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
@ -243,7 +241,7 @@
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmEditSndngDtl").reset(); // 화면 초기화
$P.findn("frmEditSndngDtl").reset(); // 발송상세 화면 초기화
$P.ctrlSndngDtl.dataset.clear(); // 발송상세 Dataset 초기화
$P.ctrlSvbtc.dataset.clear(); // 공시송달 Dataset 초기화
@ -426,15 +424,12 @@
$P.ctrlSndngDtl.dataset.clear(); // 발송상세
$P.ctrlSvbtc.dataset.clear(); // 공시송달
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject["${pageNameMain}"].callPurpose == "view") {
$P.$findn("btnCreateSndbk").prop("disabled", true);
$P.$findn("btnUpdateSndbk").prop("disabled", true);
$P.$findn("btnRemoveSndbk").prop("disabled", true);
} else {
// 화면 호출(callPurpose)이 view가 아니라면 버튼 활성화 disabled = false
if (pageObject["${pageNameMain}"].callPurpose != "view") {
$P.$findn("btnCreateSndbk").prop("disabled", false);
$P.$findn("btnUpdateSndbk").prop("disabled", false);
$P.$findn("btnRemoveSndbk").prop("disabled", false);
$P.$findn("btnViewPostTrace").prop("disabled", false);
}
}

@ -12,13 +12,13 @@
<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 w-px-120" name="btnCreateRdct" title="감경 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateRdct" title="감경 등록" disabled>
감경 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateRdct" title="감경 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateRdct" title="감경 수정" disabled>
감경 수정
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveRdct" title="감경 삭제">
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveRdct" title="감경 삭제" disabled>
감경 삭제
</button>
</span> <!-- <span class="container-window-btn-right"> -->
@ -71,16 +71,16 @@
<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 w-px-120" name="btnCreateWrng" title="계고 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateWrng" title="계고 등록" disabled>
계고 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnCreateLevyExcl" title="부과제외 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateLevyExcl" title="부과제외 등록" disabled>
부과제외 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateLevyExcl" title="부과제외 수정">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateLevyExcl" title="부과제외 수정" disabled>
부과제외 수정
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveLevyExcl" title="부과제외 삭제">
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveLevyExcl" title="부과제외 삭제" disabled>
부과제외 삭제
</button>
</span>
@ -238,8 +238,6 @@
// pageObject
let $P = pageObject["${pageName}"];
// URL
$P.prefixUrl = "${prefixUrl}"
// datasetControl
$P.ctrlRdct = newSprt02050ControlRD("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
$P.ctrlLevyExcl = newSprt02050ControlLE("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
@ -301,12 +299,12 @@
, data: params || {}
, success: (resp) => {
// 초기화
$P.ctrlRdct.find("[name='frmEditRdct']").reset(); // 감경 화면 초기화
$P.ctrlLevyExcl.find("[name='frmEditLevyExcl']").reset(); // 부과제외 화면 초기화
$P.ctrlRdct.dataset.clear(); // 감경 Dataset 초기화
$P.ctrlLevyExcl.dataset.clear(); // 부과제외 Dataset 초기화
$P.ctrlCrdnSttsHstry.dataset.clear(); // 단속상태 이력 Dataset 초기화
$P.ctrlPayerAddrHstrys.dataset.clear(); // 납부자주소 이력 Dataset 초기화
$P.findn("frmEditRdct").reset(); // 감경 화면
$P.findn("frmEditLevyExcl").reset(); // 부과제외 화면
$P.ctrlRdct.dataset.clear(); // 감경 Dataset
$P.ctrlLevyExcl.dataset.clear(); // 부과제외 Dataset
$P.ctrlCrdnSttsHstry.dataset.clear(); // 단속상태 이력 Dataset
$P.ctrlPayerAddrHstrys.dataset.clear(); // 납부자주소 이력 Dataset
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
@ -598,16 +596,8 @@
$P.ctrlCrdnSttsHstry.dataset.clear(); // 단속상태 이력
$P.ctrlPayerAddrHstrys.dataset.clear(); // 단속 납부자주소 이력
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject["${pageNameMain}"].callPurpose == "view") {
$P.$findn("btnCreateRdct").prop("disabled", true);
$P.$findn("btnUpdateRdct").prop("disabled", true);
$P.$findn("btnRemoveRdct").prop("disabled", true);
$P.$findn("btnCreateWrng").prop("disabled", true);
$P.$findn("btnCreateLevyExcl").prop("disabled", true);
$P.$findn("btnUpdateLevyExcl").prop("disabled", true);
$P.$findn("btnRemoveLevyExcl").prop("disabled", true);
} else {
// 화면 호출(callPurpose)이 view가 아니라면 버튼 활성화 disabled = false
if (pageObject["${pageNameMain}"].callPurpose != "view") {
$P.$findn("btnCreateRdct").prop("disabled", false);
$P.$findn("btnUpdateRdct").prop("disabled", false);
$P.$findn("btnRemoveRdct").prop("disabled", false);

@ -17,122 +17,101 @@
<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 w-px-120" name="btnCreateLevy" title="부과 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateLevy" title="부과 등록" disabled>
부과 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnCreateLevyExcl" title="부과 취소">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateLevyExcl" title="부과 취소" disabled>
부과 취소
</button>
</span> <!-- <span class="container-window-btn-right"> -->
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 회계 구분 코드 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="acntgSeCd">회계구분</label>
<input is="id-input" type="text" class="form-control w-15" name="acntgSeCd" data-map="ACNTG_SE_CD" readonly />
<input is="id-input" type="text" class="form-control w-50" name="acntgSeNm" data-map="ACNTG_SE_NM" readonly />
</div>
<!-- 세목 코드 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="txitmCd">회계세목</label>
<input is="id-input" type="text" class="form-control w-20" name="txitmCd" data-map="TXITM_CD" readonly />
<input is="id-input" type="text" class="form-control w-45" name="txitmNm" data-map="TXITM_NM" readonly />
</div>
<!-- 운영 항목 코드 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="operItemCd">운영항목</label>
<input is="id-input" type="text" class="form-control w-15" name="operItemCd" data-map="OPER_ITEM_CD" readonly />
<input is="id-input" type="text" class="form-control w-45" name="operItemNm" data-map="OPER_ITEM_NM" readonly />
</div>
<!-- 회계 연도 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="fyr">회계연도</label>
<input is="id-input" type="text" class="form-control w-20" name="fyr" data-map="FYR" readonly />
</div>
<!-- 부과 번호 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="levyNo">부과번호</label>
<input is="id-input" type="text" class="form-control w-20" name="levyNo" data-map="LEVY_NO" readonly />
</div>
<!-- 분납 일련번호 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ispySn">분납일련번호</label>
<input is="id-input" type="text" class="form-control w-15" name="ispySn" data-map="ISPY_SN" readonly />
</div>
<!-- 과세 물건 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="txtnThing">과세물건</label>
<input is="id-input" type="text" class="form-control w-40" name="txtnThing" data-map="TXTN_THING" readonly />
</div>
<!-- 부과 구분 코드 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="levySeNm">부과구분</label>
<input is="id-input" type="text" class="form-control w-30" name="levySeNm" data-map="LEVY_SE_NM" readonly />
<input type="hidden" name="levySeCd" data-map="LEVY_SE_CD" />
</div>
<!-- 통합 구분 코드 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="untySeNm">통합구분</label>
<input is="id-input" type="text" class="form-control w-30" name="untySeNm" data-map="UNTY_SE_NM" readonly />
<input type="hidden" name="untySeCd" data-map="UNTY_SE_CD" />
</div>
<!-- 감경 구분 명 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rdctSeNm">감경구분</label>
<input is="id-input" type="text" class="form-control w-30" name="rdctSeNm" data-map="RDCT_SE_NM" readonly />
</div>
<!-- 분납 구분 명 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ispySeNm">분납구분</label>
<input is="id-input" type="text" class="form-control w-30" name="ispySeNm" data-map="ISPY_SE_NM" readonly />
</div>
<!-- 분납 이자 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="ispyInt">분납이자</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="ispyInt" data-map="ISPY_INT" readonly />
</div>
<!-- 부과 일자 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="levyYmd">부과일자</label>
<input is="id-input" type="text" class="form-control w-30" idname="levyYmd" data-map="LEVY_YMD" readonly />
</div>
<!-- 최초 납기 일자 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="frstDudtYmd">최초납기일자</label>
<input is="id-input" type="text" class="form-control w-30" name="frstDudtYmd" data-map="FRST_DUDT_YMD" readonly />
</div>
<!-- 납기 일자 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="dudtYmd">납기일자</label>
<input is="id-input" type="text" class="form-control w-30" name="dudtYmd" data-map="DUDT_YMD" readonly />
</div>
<!-- 부과 본세 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="levyPcptax">부과본세</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="levyPcptax" data-map="LEVY_PCPTAX" readonly />
</div>
<!-- 수납 본세 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtPcptax">수납본세</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rcvmtPcptax" data-map="RCVMT_PCPTAX" readonly />
</div>
<!-- 감액 본세 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rdamtPcptax">감액본세</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rdamtPcptax" data-map="RDAMT_PCPTAX" readonly />
</div>
<!-- 부과 가산금 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="levyAdamt">부과가산금</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="levyAdamt" data-map="LEVY_ADAMT" readonly />
</div>
<!-- 수납 가산금 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtAdamt">수납가산금</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rcvmtAdamt" data-map="RCVMT_ADAMT" readonly />
</div>
<!-- 감액 가산금 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rdamtAdamt">감액가산금</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rdamtAdamt" data-map="RDAMT_ADAMT" readonly />
@ -143,72 +122,58 @@
<!-- -->
<div class="col-md-4">
</div>
<!-- 합계 금액 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="sumAmt">미납금액</label>
<input is="id-input" type="text" class="form-control w-30 text-end fw-bold text-red" name="sumAmt" data-map="SUM_AMT" readonly />
</div>
<!-- 관리 항목 1 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mngItem1">관리항목1</label>
<input is="id-input" type="text" class="form-control w-65" name="mngItem1" data-map="MNG_ITEM1" readonly />
</div>
<!-- 관리 항목 2 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mngItem2">관리항목2</label>
<input is="id-input" type="text" class="form-control w-65" name="mngItem2" data-map="MNG_ITEM2" readonly />
</div>
<!-- 관리 항목 3 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mngItem3">관리항목3</label>
<input is="id-input" type="text" class="form-control w-65" name="mngItem3" data-map="MNG_ITEM3" readonly />
</div>
<!-- 관리 항목 4 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mngItem4">관리항목4</label>
<input is="id-input" type="text" class="form-control w-65" name="mngItem4" data-map="MNG_ITEM4" readonly />
</div>
<!-- 관리 항목 5 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mngItem5">관리항목5</label>
<input is="id-input" type="text" class="form-control w-65" name="mngItem5" data-map="MNG_ITEM5" readonly />
</div>
<!-- 관리 항목 6 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mngItem6">관리항목6</label>
<input is="id-input" type="text" class="form-control w-65" name="mngItem6" data-map="MNG_ITEM6" readonly />
</div>
<!-- 체납 구분 코드 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="npmntSeNm">체납구분</label>
<input is="id-input" type="text" class="form-control w-40" name="npmntSeNm" data-map="NPMNT_SE_NM" readonly />
</div>
<!-- 체납 사유 -->
<div class="col-md-8">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="npmntRsn">체납사유</label>
<input is="id-input" type="text" class="form-control w-80" name="npmntRsn" data-map="NPMNT_RSN" readonly />
</div>
<!-- 압류 일자 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="szrYmd">압류일자</label>
<input is="id-input" type="text" class="form-control w-30" name="szrYmd" data-map="SZR_YMD" readonly />
</div>
<!-- 대체 압류 자동차등록번호 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rpmSzrVhrno">대체압류차량</label>
<input is="id-input" type="text" class="form-control w-35" name="rpmSzrVhrno" data-map="RPM_SZR_VHRNO" readonly />
</div>
<!-- 압류 물건 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="szrThing">압류물건</label>
<input is="id-input" type="text" class="form-control w-60" name="szrThing" data-map="SZR_THING" readonly />
</div>
<!-- 압류 해제 일자 -->
<div class="col-md-4">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="szrRmvYmd">압류해제일자</label>
<input is="id-input" type="text" class="form-control w-30" name="szrRmvYmd" data-map="SZR_RMV_YMD" readonly />
</div>
<!-- 압류 해제 사유 -->
<div class="col-md-8">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="szrRmvRsn">압류해제사유</label>
<input is="id-input" type="text" class="form-control w-80" name="szrRmvRsn" data-map="SZR_RMV_RSN" readonly />
@ -227,12 +192,10 @@
</div> <!-- <div class="container-page-btn"> -->
<div class="row g-1">
<!-- 전자납부번호 -->
<div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="epaynoMask">전자납부번호</label>
<input is="id-input" type="text" class="form-control w-65" name="epaynoMask" data-map="EPAYNO_MASK" readonly />
</div>
<!-- 가상계좌번호 -->
<div class="col-md-12">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="vrActno">가상계좌번호</label>
</div>
@ -249,6 +212,8 @@
</div> <!-- <div class="content-pop"> -->
<script>
LoadScript("sprt02060Script", wctx.url("/webjars/js/fims/sprt/sprt02060.js?ver=${ver}"));
/**************************************************************************
* Global Variable
**************************************************************************/
@ -261,109 +226,14 @@
// pageObject
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields($P.selectorn("frmEditLevy"));
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.ctrlLevy = new DatasetControl({
prefix: "levy"
, prefixName: "부과"
, keymapper: info => info ? info.LEVY_ID : ""
, dataGetter: obj => obj.levyInfo
, formats: {
LEVY_YMD: dateFormat
, FRST_DUDT_YMD: dateFormat
, DUDT_YMD: dateFormat
, FFNLG_AMT: numberFormat
, LEVY_PCPTAX: numberFormat
, LEVY_ADAMT: numberFormat
, ISPY_INT: numberFormat
, RCVMT_PCPTAX: numberFormat
, RCVMT_ADAMT: numberFormat
, RDAMT_PCPTAX: numberFormat
, RDAMT_ADAMT: numberFormat
, SUM_AMT: numberFormat
, RCVMT_YMD: dateFormat
, SZR_YMD: dateFormat
, SZR_RMV_YMD: dateFormat
, REG_DT: datetimeFormat
}
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.ctrlLevy.onCurrentChange = (item) => {
if (!item) return;
// Dataset 셋팅
$P.formFields.set($P.ctrlLevy, item);
let key = item.data.LEVY_ID;
// 가상계좌번호
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.$findn("vrActno").val(vrActno); // 가상 계좌번호
}
// datasetControl
$P.ctrlLevy = newSprt02060Control("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 자료 재조회
$P.fnRefreshDataInfo = () => {
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD")
, taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD")
, crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/060/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmEditLevy").reset(); // 화면 초기화
$P.ctrlLevy.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보
pageObject["${mainPageName}"].mainCtrl.setData([resp.totalInfo]);
// Dataset 셋팅
if (resp.levyInfo) {
$P.ctrlLevy.setData([resp.levyInfo]); // 부과 정보
}
}
});
}
// 부과제외 dialog
$P.createLevyExclInfo = (params) => {
$P.levyExclInfo = (params) => {
if (!params) return;
ajax.get({
@ -390,13 +260,47 @@
AppSupport.setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
, onClose: () => { $P.fnRefresh(); } // 정보 새로고침
});
}
}
});
}
// 정보 새로고침
$P.fnRefresh = () => {
let ctrlMain = pageObject["${pageNameMain}"].ctrlMain;
// 단속 ID 가 없다면.. return
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: ctrlMain.getValue("SGG_CD")
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
, crdnId: ctrlMain.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/060/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmEditLevy").reset(); // 부과 화면 초기화
$P.ctrlLevy.dataset.clear(); // 부과 Dataset 초기화
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
// 부과 정보
if (resp.levyInfo) { $P.ctrlLevy.setData([resp.levyInfo]); }
}
});
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
@ -407,22 +311,34 @@
// 부과 취소
$P.fnCreateLevyExcl = (btnTitle) => {
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
let ctrlMain = pageObject["${pageNameMain}"].ctrlMain; // sprt02010 control
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
if (!crdnId) return;
// 부과 ID 가 없다면.. return
let levyId = $P.ctrlLevy.getValue("LEVY_ID"); // 부과 ID
if (!levyId) {
dialog.alert({
content: "조회된 부과 대장 정보가 없습니다."
+ "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
});
return;
}
let params = {
callPurpose: "create"
, 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
, sggCd: ctrlMain.getValue("SGG_CD") // 시군구 코드
, taskSeCd: ctrlMain.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: ctrlMain.getValue("CRDN_ID") // 단속 ID
, levyExclSeCd: "3"
, delYn: "N"
};
$P.createLevyExclInfo(params);
$P.levyExclInfo(params);
}
/**************************************************************************
@ -440,17 +356,21 @@
}
// 초기 화면 설정
$P.initForm = () => {
// 초기화
$P.findn("frmEditLevy").reset(); // 화면 초기화
$P.ctrlLevy.dataset.clear(); // Dataset 초기화
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject['${mainPageName}'].callPurpose == "view") {
$P.$findn("btnCreateLevy").prop("disabled", true);
$P.$findn("btnCreateLevyExcl").prop("disabled", true);
} else {
$P.fnReset = () => {
// 화면 초기화
$P.findn("frmEditLevy").reset();
// Dataset 초기화
$P.ctrlLevy.dataset.clear();
// 화면 호출(callPurpose)이 view가 아니라면 버튼 활성화 disabled = false
if (pageObject["${pageNameMain}"].callPurpose != "view") {
// 주정차위반, 전용차로위반과태료 외에는 부과 기능이 없어야 한다.
let taskSeCd = pageObject["${pageNameMain}"].ctrlMain.getValue("TASK_SE_CD");
if ("BPV,PVS".indexOf("taskSeCd") != -1) {
$P.$findn("btnCreateLevy").prop("disabled", false);
} else {
$P.$findn("btnCreateLevy").prop("disabled", true);
}
$P.$findn("btnCreateLevyExcl").prop("disabled", false);
}
}
@ -462,13 +382,11 @@
$P.setEvent();
// 2. 초기 화면 설정
$P.initForm();
$P.fnReset();
// 3. Dataset 설정
let levyInfo = ${levyInfo}; // 부과 정보
if (levyInfo) {
$P.ctrlLevy.setData([levyInfo]);
}
if (levyInfo) { $P.ctrlLevy.setData([levyInfo]); }
});
</script>

@ -12,13 +12,13 @@
<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 w-px-120" name="btnCreateRcvmt" title="수납 등록">
<button type="button" class="btn btn-primary w-px-120" name="btnCreateRcvmt" title="수납 등록" disabled>
수납 등록
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateRcvmtRtrc" title="수납 취소">
<button type="button" class="btn btn-primary w-px-120" name="btnUpdateRcvmtRtrc" title="수납 취소" disabled>
수납 취소
</button>
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveRcvmt" title="수납 삭제">
<button type="button" class="btn btn-primary w-px-120" name="btnRemoveRcvmt" title="수납 삭제" disabled>
수납 삭제
</button>
</span> <!-- <span class="container-window-btn-right"> -->
@ -28,10 +28,10 @@
<!-- DataTables(그리드) -->
<div class="card-datatable text-nowrap">
<div class="dataTables_wrapper dt-bootstrap5 no-footer">
<div class="table-responsive ox-scroll oy-scroll h-px-400" name="tableRspnsRcvmt">
<div class="table-responsive ox-scroll oy-scroll h-px-350" name="tableRspnsRcvmt">
<table class="table-layout-fixed dataTable datatables-ajax table table-bordered no-footer" aria-describedby="DataTables_Table_0_info">
<thead class="sticky-thead">
<tr name="theadTrRcvmt">
<tr name="theadTrRcvmt" data-search-target="[data-doctx='${pageName}']">
<th class="cmn sorting" style="width: 100px" data-field="RCVMT_RTRCN_NM">수납취소</th>
<th class="cmn sorting" style="width: 140px" data-field="RCVMT_INPT_SE_NM">수납입력구분</th>
<th class="cmn sorting" style="width: 120px" data-field="RCVMT_SN">수납일련번호</th>
@ -64,7 +64,7 @@
<tbody name="tbodyRcvmtList">
</tbody>
<template is="curly-brackets" name="tmpltRcvmtRows">
<tr data-key="RCVMT_ID">
<tr data-key="{data-index}">
<td class="text-center text-red" onclick">{RCVMT_RTRCN_NM}</td>
<td class="text-center" onclick>{RCVMT_INPT_SE_NM}</td>
<td class="text-center" onclick>{RCVMT_SN}</td>
@ -104,9 +104,9 @@
</div>
</div> <!-- DataTables(그리드) -->
</div> <!-- <div class="row g-1"> -->
</div> <!-- <div class="card"> -->
<div class="card">
<p></p>
<!-- 입력 영역 -->
<form name="frmEditRcvmt">
<!-- hidden -->
@ -114,96 +114,78 @@
<input type="hidden" name="levyId" data-map="LEVY_ID" />
<div class="row g-1">
<!-- 회계 구분 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="acntgSeCd">회계구분</label>
<input is="id-input" type="text" class="form-control w-15" name="acntgSeCd" data-map="ACNTG_SE_CD" readonly />
<input is="id-input" type="text" class="form-control w-50" name="acntgSeNm" data-map="ACNTG_SE_NM" readonly />
</div>
<!-- 세목 코드 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="txitmCd">세목코드</label>
<input is="id-input" type="text" class="form-control w-20" name="txitmCd" data-map="TXITM_CD" readonly />
<input is="id-input" type="text" class="form-control w-45" name="txitmNm" data-map="TXITM_NM" readonly />
</div>
<!-- 회계 연도 -->
<div class="col-md-3">
<label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="fyr">회계연도</label>
<input is="id-input" type="text" class="form-control w-15" name="fyr" data-map="FYR" readonly />
</div>
<!-- 부과 번호 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="levyNo">부과번호</label>
<input is="id-input" type="text" class="form-control w-20" name="levyNo" data-map="LEVY_NO" readonly />
<input is="id-input" type="text" class="form-control w-15" name="ispySn" data-map="ISPY_SN" readonly />
</div>
<!-- 수납 순번 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtSn">수납순번</label>
<input is="id-input" type="text" class="form-control w-15" name="rcvmtSn" data-map="RCVMT_SN" readonly />
</div>
<!-- 수납 일자 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtYmd">수납일자</label>
<input is="id-input" type="text" class="form-control w-30" name="rcvmtYmd" data-map="RCVMT_YMD" readonly />
</div>
<!-- 소인 일자 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="pstmrkYmd">소인일자</label>
<input is="id-input" type="text" class="form-control w-30" name="pstmrkYmd" data-map="PSTMRK_YMD" readonly />
</div>
<!-- 회계 일자 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="acntgYmd">회계일자</label>
<input is="id-input" type="text" class="form-control w-30" name="acntgYmd" data-map="ACNTG_YMD" readonly />
</div>
<!-- 수납 금액 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtAmt">수납금액</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rcvmtAmt" data-map="RCVMT_AMT" readonly />
</div>
<!-- 수납 본세 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtPcptax">수납본세</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rcvmtPcptax" data-map="RCVMT_PCPTAX" readonly />
</div>
<!-- 수납 가산금 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtAdamt">수납가산금</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rcvmtAdamt" data-map="RCVMT_ADAMT" readonly />
</div>
<!-- 수납 이자 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtInt">수납이자</label>
<input is="id-input" type="text" class="form-control w-30 text-end" name="rcvmtInt" data-map="RCVMT_INT" readonly />
</div>
<!-- 수납 구분 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtSeNm">수납구분</label>
<input is="id-input" type="text" class="form-control w-30" name="rcvmtSeNm" data-map="RCVMT_SE_NM" readonly />
</div>
<!-- 수납 은행 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="rcvmtBankNm">수납은행</label>
<input is="id-input" type="text" class="form-control w-50" name="rcvmtBankNm" data-map="RCVMT_BANK_NM" readonly />
</div>
<!-- 납부 방식 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="payMthdSeNm">납부방식</label>
<input is="id-input" type="text" class="form-control w-50" name="payMthdSeNm" data-map="PAY_MTHD_SE_NM" readonly />
</div>
<!-- 수납 취소 일자 -->
<div class="col-md-3">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end text-red" for="rcvmtRtrcnDt">수납취소일자</label>
<input is="id-input" type="text" class="form-control w-30 text-red" name="rcvmtRtrcnDt" data-map="RCVMT_RTRCN_DT" readonly />
</div>
<!-- 등록 일시 / 등록자 -->
<div class="col-md-6">
<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-25" name="regDt" data-map="REG_DT" readonly />
<input is="id-input" type="text" class="form-control w-20" name="rgtrNm" data-map="RGTR_NM" readonly />
</div>
<!-- 수정 일시 / 수정자 -->
<div class="col-md-6">
<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-25" name="mdfcnDt" data-map="MDFCN_DT" readonly />
@ -219,6 +201,8 @@
</div> <!-- <div class="content-pop"> -->
<script>
LoadScript("sprt02070Script", wctx.url("/webjars/js/fims/sprt/sprt02070.js?ver=${ver}"));
/**************************************************************************
* Global Variable
**************************************************************************/
@ -231,189 +215,12 @@
// pageObject
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields($P.selectorn("frmEditRcvmt"));
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.ctrlRcvmt = new DatasetControl({
prefix: "rcvmt"
, prefixName: "수납"
, keymapper: info => info ? info.RCVMT_ID : ""
, dataGetter: obj => obj.rcvmts
, appendData: true
, formats: {
RCVMT_YMD: dateFormat
, ACNTG_YMD: dateFormat
, PSTMRK_YMD: dateFormat
, RCVMT_AMT: numberFormat
, RCVMT_PCPTAX: numberFormat
, RCVMT_ADAMT: numberFormat
, RCVMT_INT: numberFormat
, RCVMT_RTRCN_DT: datetimeFormat
, REG_DT: datetimeFormat
, MDFCN_DT: datetimeFormat
}
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// Dataset 변경 이벤트
$P.ctrlRcvmt.onDatasetChange = (obj, option) => {
$P.renderList();
};
// 현재 선택 자료 변경 이벤트
$P.ctrlRcvmt.onCurrentChange = (item) => {
if (!item) return;
$P.formFields.set($P.ctrlRcvmt, item); // 화면에 자료 셋팅
let key = item.data.RCVMT_ID;
$P.$findn("tbodyRcvmtList").setCurrentRow(key); // datatable에 자료 셋팅
};
// 수납 등록 Dialog
$P.ctrlRcvmt.getInfo = (params) => {
if (!params) return;
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/020/info.do")
, data: params || {}
, success: (resp) => {
let dialogName = $P.ctrlRcvmt.prefixed("Dialog");
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: dialogId
, title: params.btnTitle
, size: "lg"
, content: resp
, init: () => {
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", "${pageName}");
AppSupport.setDialogZindex();
}
, onClose: () => { $P.fnRefreshDataInfo(); } // 자료 재조회
});
}
});
}
// 수기 수납 취소 callback
$P.ctrlRcvmt.onSave = (params, resp) => {
let dialogTitle = $("#" + $P.selfDlgId()).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
}
});
}
// 수기 수납 취소
$P.ctrlRcvmt.save = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/010/updateRcvmtRtrcn.do")
, data: params || {}
, success: (resp) => {
$P.ctrlRcvmt.onSave(params, resp);
}
});
}
// 수기 수납 삭제 callback
$P.ctrlRcvmt.onRemove = (params, resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) { $P.fnRefreshDataInfo(); } // 자료 재조회
}
});
}
// 수기 수납 삭제
$P.ctrlRcvmt.remove = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/010/remove.do")
, data: params || {}
, success: (resp) => {
$P.ctrlRcvmt.onRemove(params, resp);
}
});
}
/**************************************************************************
* DataTables 이벤트
**************************************************************************/
// DataTables에 click, dbclick 이벤트
$P.renderList = (totalSize, option) => {
let rcvmtList = $P.ctrlRcvmt.dataset;
let empty = rcvmtList.empty;
let trs = empty ? [$P.findn("tmpltNotFoundRcvmt").innerHTML] :
rcvmtList.inStrings($P.findn("tmpltRcvmtRows").innerHTML
, (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['${pageName}'].ctrl.setCurrent('" + dataItem.getValue("RCVMT_ID") + "');")
);
$P.$findn("tbodyRcvmtList").html(trs.join());
}
// datasetControl
$P.ctrlRcvmt = newSprt02070Control("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 자료 재조회
$P.fnRefreshDataInfo = () => {
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: pageObject["${mainPageName}"].mainCtrl.getValue("SGG_CD")
, taskSeCd: pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD")
, crdnId: pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/070/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmEditRcvmt").reset(); // 화면 초기화
$P.ctrlRcvmt.dataset.clear(); // 수납 Dataset 초기화
// sprt02010-main 단속 정보
pageObject["${pageNameMain}"].mainControl.setData([resp.totalInfo]);
// Dataset 셋팅
$P.ctrlRcvmt.setData(resp.rcvmts); // 수납 정보
}
});
}
// 수정 callback
$P.callbackUpdate = (obj) => {
// 서버에 전송할 data(파라미터) 생성
@ -435,9 +242,9 @@
// 서버에 전송할 data(파라미터) 생성
let params = {
callPurpose: "remove"
, sggCd: $P.ctrlRcvmt.dataset.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrlRcvmt.dataset.getValue("TASK_SE_CD") // 업무 구분 코드
, rcvmtId: $P.ctrlRcvmt.dataset.getValue("RCVMT_ID") // 수납 ID
, sggCd: $P.ctrlRcvmt.getValue("SGG_CD") // 시군구 코드
, taskSeCd: $P.ctrlRcvmt.getValue("TASK_SE_CD") // 업무 구분 코드
, rcvmtId: $P.ctrlRcvmt.getValue("RCVMT_ID") // 수납 ID
, btnTitle: obj.btnTitle // 버튼 title
, delRsn: obj.reason // 삭제 사유
};
@ -445,22 +252,56 @@
$P.ctrlRcvmt.remove(params);
}
// 정보 새로고침
$P.fnRefresh = () => {
let ctrlMain = pageObject["${pageNameMain}"].ctrlMain;
// 단속 ID 가 없다면.. return
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: ctrlMain.getValue("SGG_CD")
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
, crdnId: ctrlMain.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/070/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
$P.findn("frmEditRcvmt").reset(); // 수납 화면
$P.ctrlRcvmt.dataset.clear(); // 수납 Dataset
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
// 수납 정보
$P.ctrlRcvmt.setData(resp.rcvmts);
}
});
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 수기 수납 등록
$P.fnCreateRcvmt = (btnTitle) => {
let crdnId = pageObject["${mainPageName}"].mainCtrl.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
let ctrlMain = pageObject["${pageNameMain}"].ctrlMain; // sprt02010 control
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
if (!crdnId) return;
let params = {
callPurpose: "create"
, 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
, sggCd: ctrlMain.getValue("SGG_CD") // 시군구 코드
, taskSeCd: ctrlMain.getValue("TASK_SE_CD") // 업무 구분 코드
, crdnId: ctrlMain.getValue("CRDN_ID") // 단속 ID
, delYn: "N"
};
@ -469,9 +310,8 @@
// 수기 수납 취소
$P.fnUpdateRcvmtRtrcn = (btnTitle) => {
let rcvmtId = $P.ctrlRcvmt.getValue("RCVMT_ID"); // 수납 ID
// 수납 ID 가 없다면.. return
let rcvmtId = $P.ctrlRcvmt.getValue("RCVMT_ID"); // 수납 ID
if (!rcvmtId) return;
// 수납 취소 메세지 확인
@ -503,9 +343,8 @@
// 수기 수납 삭제
$P.fnRemoveRcvmt = (btnTitle) => {
let rcvmtId = $P.ctrlRcvmt.getValue("RCVMT_ID"); // 수납 ID
// 수납 ID 가 없다면.. return
let rcvmtId = $P.ctrlRcvmt.getValue("RCVMT_ID"); // 수납 ID
if (!rcvmtId) return;
// 수납 입력 구분이 03(수기) 일때만 삭제 가능
@ -569,32 +408,25 @@
}
// 초기 화면 설정
$P.initForm = () => {
// 초기화
$P.findn("frmEditRcvmt").reset(); // 화면 초기화
$P.ctrlRcvmt.dataset.clear(); // 수납 Dataset 초기화
$P.fnReset = () => {
// 화면 초기화
$P.findn("frmEditRcvmt").reset();
// Dataset 초기화
$P.ctrlRcvmt.dataset.clear(); // 수납 Dataset
// 화면 호출(callPurpose)이 view라면 버튼 비활성화 disabled = true
if (pageObject['${mainPageName}'].callPurpose == "view") {
$P.$findn("btnCreateRcvmt").prop("disabled", true);
$P.$findn("btnUpdateRcvmtRtrc").prop("disabled", true);
$P.$findn("btnRemoveRcvmt").prop("disabled", true);
} else {
if (pageObject['${pageNameMain}'].callPurpose != "view") {
// 주정차위반, 전용차로위반과태료 외에는 수납 등록, 취소, 삭제 기능이 없어야 한다.
let taskSeCd = pageObject["${pageNameMain}"].ctrlMain.getValue("TASK_SE_CD");
if ("BPV,PVS".indexOf("taskSeCd") != -1) {
$P.$findn("btnCreateRcvmt").prop("disabled", false);
$P.$findn("btnUpdateRcvmtRtrc").prop("disabled", false);
$P.$findn("btnRemoveRcvmt").prop("disabled", false);
}
// 주정차위반, 전용차로위반과태료 외에는 수납 등록, 취소, 삭제 기능이 없어야 한다.
let taskSeCd = pageObject["${mainPageName}"].mainCtrl.getValue("TASK_SE_CD");
if ("BPV,PVS".indexOf("taskSeCd") != -1) {
$P.$findn("btnCreateRcvmt").show();
$P.$findn("btnUpdateRcvmtRtrc").show();
$P.$findn("btnRemoveRcvmt").show();
} else {
$P.$findn("btnCreateRcvmt").hide();
$P.$findn("btnUpdateRcvmtRtrc").hide();
$P.$findn("btnRemoveRcvmt").hide();
$P.$findn("btnCreateLevy").prop("disabled", true);
$P.$findn("btnUpdateRcvmtRtrc").prop("disabled", true);
$P.$findn("btnRemoveRcvmt").prop("disabled", true);
}
}
}
@ -605,7 +437,7 @@
$P.setEvent();
// 2. 초기 화면 설정
$P.initForm();
$P.fnReset();
// 3. Dataset 설정
$P.ctrlRcvmt.setData(${rcvmts});

@ -72,43 +72,7 @@ function newSprt02020Control(pageName, doctx="[data-doctx='sprt02020']", mainPag
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/crdn/crdn06/010/remove.do")
, data: params || {}
, success: (resp) => {
ctrlCrdn.onRemove(params, resp);
}
});
}
// 정보 새로고침
ctrlCrdn.refresh = () => {
let ctrlMain = pageObject[mainPageName].ctrlMain;
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: ctrlMain.getValue("SGG_CD")
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
, crdnId: ctrlMain.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url(params.taskSeCd + "/sprt/sprt02/020/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
ctrlCrdn.find("[name='frmCrdnPayer']").reset(); // 화면 초기화
ctrlCrdn.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
// 단속, 납부자 정보
if (resp.crdnPayerInfo) { ctrlCrdn.setData([resp.crdnPayerInfo]); }
}
, success: (resp) => { ctrlCrdn.onRemove(params, resp); }
});
}

@ -44,7 +44,7 @@ function newSprt02030Control(pageName, doctx="[data-doctx='sprt02030']", mainPag
dialog.open({
id: dialogId
, title: params.btnTitle
, size: ctrl.infoSize
, size: ctrlOpnn.infoSize
, content: resp
, init: () => {
$("#" + dialogId).attr("name", dialogName);
@ -52,7 +52,7 @@ function newSprt02030Control(pageName, doctx="[data-doctx='sprt02030']", mainPag
AppSupport.setDialogZindex();
}
, onClose: () => { ctrlOpnn.refresh(); } // 정보 새로고침
, onClose: () => { pageObject[pageName].fnRefresh(); } // 정보 새로고침
});
}
});
@ -67,7 +67,7 @@ function newSprt02030Control(pageName, doctx="[data-doctx='sprt02030']", mainPag
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) { ctrlOpnn.refresh(); } // 정보 새로고침
if (resp.saved) { pageObject[pageName].fnRefresh(); } // 정보 새로고침
}
});
}
@ -79,43 +79,7 @@ function newSprt02030Control(pageName, doctx="[data-doctx='sprt02030']", mainPag
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/excl/excl02/010/remove.do")
, data: params || {}
, success: (resp) => {
ctrlOpnn.onRemove(params, resp);
}
});
}
// 정보 새로고침
ctrlOpnn.refresh = () => {
let ctrlMain = pageObject[mainPageName].ctrlMain;
let crdnId = ctrlMain.getValue("CRDN_ID"); // 단속 ID
// 단속 ID 가 없다면.. return
if (!crdnId) return;
let params = {
callPurpose: "refresh"
, sggCd: ctrlMain.getValue("SGG_CD")
, taskSeCd: ctrlMain.getValue("TASK_SE_CD")
, crdnId: ctrlMain.getValue("CRDN_ID")
, delYn: "N"
};
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/sprt/sprt02/030/info.do")
, headers: { Accept: "application/json; charset=utf-8" } // json
, data: params || {}
, success: (resp) => {
// 초기화
ctrlOpnn.find("[name='frmOpnn']").reset(); // 화면 초기화
ctrlOpnn.dataset.clear(); // Dataset 초기화
// sprt02010-main 단속 정보
ctrlMain.setData([resp.totalInfo]);
// 의견제출 정보
if (resp.opnnInfo) { ctrlOpnn.setData([resp.opnnInfo]); }
}
, success: (resp) => { ctrlOpnn.onRemove(params, resp); }
});
}

@ -118,9 +118,7 @@ function newSprt02040ControlSD(pageName, doctx="[data-doctx='sprt02040']", mainP
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/sndb/sndb01/220/remove.do")
, data: params || {}
, success: (resp) => {
ctrlSndngDtl.onRemove(params, resp);
}
, success: (resp) => { ctrlSndngDtl.onRemove(params, resp); }
});
}

@ -80,9 +80,7 @@ function newSprt02050ControlRD(pageName, doctx="[data-doctx='sprt02050']", mainP
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/levy/levy02/010/remove.do")
, data: params || {}
, success: (resp) => {
ctrlRdct.onRemove(params, resp);
}
, success: (resp) => { ctrlRdct.onRemove(params, resp); }
});
}
@ -171,9 +169,7 @@ function newSprt02050ControlLE(pageName, doctx="[data-doctx='sprt02050']", mainP
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/excl/excl01/010/remove.do")
, data: params || {}
, success: (resp) => {
ctrlLevyExcl.onRemove(params, resp);
}
, success: (resp) => { ctrlLevyExcl.onRemove(params, resp); }
});
}

@ -0,0 +1,47 @@
function newSprt02060Control(pageName, doctx="[data-doctx='sprt02060']", mainPageName="sprt02010") {
let ctrlLevy = new DatasetControl({
doctx: doctx
, prefix: "levy"
, prefixName: "부과"
, dataGetter: obj => obj["levyInfo"]
, keys: ["LEVY_ID"]
, urls: {
load: "/list.do"
, getInfo: "/info.do"
, remove: "/remove.do"
}
});
/**************************************************************************
* DatasetControl Events
**************************************************************************/
// 현재 선택 자료 변경 이벤트
ctrlLevy.onCurrentChange = (item) => {
if (!item) return;
// 화면에 단속 Dataset 셋팅
let formFields = new FimsFormFields(ctrlLevy.selector("[name='frmEditLevy']"));
formFields.set(ctrlLevy, item);
// 가상계좌번호
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");
$(ctrlLevy.find("[name='vrActno']")).val(vrActno); // 가상 계좌번호
};
return ctrlLevy;
}

@ -0,0 +1,143 @@
function newSprt02070Control(pageName, doctx="[data-doctx='sprt02070']", mainPageName="sprt02010") {
let ctrlRcvmt = new DatasetControl({
doctx: doctx
, prefix: "rcvmt"
, prefixName: "수납"
, dataGetter: obj => obj["rcvmts"]
, keys: ["RCVMT_ID"]
, appendData: true
, infoSize: "lg"
, urls: {
load: "/list.do"
, getInfo: "/info.do"
, remove: "/remove.do"
}
, formats: {
RCVMT_YMD: dateFormat
, ACNTG_YMD: dateFormat
, PSTMRK_YMD: dateFormat
, RCVMT_AMT: numberFormat
, RCVMT_PCPTAX: numberFormat
, RCVMT_ADAMT: numberFormat
, RCVMT_INT: numberFormat
, RCVMT_RTRCN_DT: datetimeFormat
, REG_DT: datetimeFormat
, MDFCN_DT: datetimeFormat
}
});
/**************************************************************************
* DatasetControl Events
**************************************************************************/
// Dataset 변경 이벤트
ctrlRcvmt.onDatasetChange = (obj, option) => {
// 데이터 셋
let dataList = ctrlRcvmt.dataset;
let empty = dataList.empty;
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].ctrlRcvmt.setCurrent('{data-index}');")
let trs = empty ?
[ctrlRcvmt.find("[name='tmpltNotFoundRcvmt']").innerHTML]
: dataList.inStrings(ctrlRcvmt.find("[name='tmpltRcvmtRows']").innerHTML, replacer);
// dataTables(그리드)에 자료 표시 td
$(ctrlRcvmt.find("[name='tbodyRcvmtList']")).html(trs.join());
};
// 현재 선택 자료 변경 이벤트
ctrlRcvmt.onCurrentChange = (item) => {
Apply.fromDataset.currentRow(ctrlRcvmt.dataset, item, ctrlRcvmt.find("[name='tbodyRcvmtList']"));
if (!item) return;
// 화면에 단속 Dataset 셋팅
let formFields = new FimsFormFields(ctrlRcvmt.selector("[name='frmEditRcvmt']"));
formFields.set(ctrlRcvmt, item);
};
// 상세 정보 dialog
ctrlRcvmt.getInfo = (params) => {
if (!params) return;
ajax.get({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/020/info.do")
, data: params || {}
, success: (resp) => {
let dialogName = ctrlRcvmt.prefixed("Dialog");
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: dialogId
, title: params.btnTitle
, size: ctrlRcvmt.infoSize
, content: resp
, init: () => {
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", pageName);
AppSupport.setDialogZindex();
}
, onClose: () => { pageObject[pageName].fnRefresh(); } // 정보 새로고침
});
}
});
}
// 수기 수납 취소 callback
ctrlRcvmt.onSave = (params, resp) => {
let modalId = $(document.querySelector(doctx)).parents(".modal")[0].id;
let dialogTitle = $("#" + modalId).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) { pageObject[pageName].fnRefresh(); } // 정보 새로고침
}
});
}
// 수기 수납 취소
ctrlRcvmt.save = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/010/updateRcvmtRtrcn.do")
, data: params || {}
, success: (resp) => { ctrlRcvmt.onSave(params, resp); }
});
}
// 수기 수납 삭제 callback
ctrlRcvmt.onRemove = (params, resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (resp.saved) { pageObject[pageName].fnRefresh(); } // 정보 새로고침
}
});
}
// 수기 수납 삭제
ctrlRcvmt.remove = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/" + params.taskSeCd + "/rcvm/rcvm01/010/remove.do")
, data: params || {}
, success: (resp) => { ctrlRcvmt.onRemove(params, resp); }
});
}
return ctrlRcvmt;
}

@ -0,0 +1,80 @@
function newSprt02030Control(pageName, doctx="[data-doctx='sprt02030']") {
let ctrl = new DatasetControl({
doctx: doctx
, prefix: "levyExcl"
, prefixName: "부과제외"
, dataGetter: obj => obj["Info"]
, keys: ["LEVY_EXCL_ID"]
, urls: {
load: "/list.do"
, getInfo: "/info.do"
, create: "/create.do"
, update: "/update.do"
, remove: "/remove.do"
}
});
/**************************************************************************
* DatasetControl Events
**************************************************************************/
// 현재 선택 자료 변경 이벤트
ctrl.onCurrentChange = (item) => {
if (!item) return;
// 화면에 단속 Dataset 셋팅
let formFields = new FimsFormFields(ctrl.selector("[name='frmEdit']"));
formFields.set(ctrl, item);
// 업무구분에 따른 URL 변경
pageObject[pageName].fnSetURL(item.data.TASK_SE_CD);
// 부과제외구분에 따른 부과제외사유 설정
pageObject[pageName].fnSetFim021(item.data.LEVY_EXCL_SE_CD, item.data.LEVY_EXCL_RSN_CD);
// 부과제외일자
if (item.data.LEVY_EXCL_YMD == "") {
$(ctrl.find("[name='levyExclYmd']")).datepicker("setDate", TODAY());
}
};
// 저장 callback
ctrl.onSave = (params, resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, ctrl.prefixName);
let modalId = $(document.querySelector(doctx)).parents(".modal")[0].id;
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
, onClose: () => {
if (pageObject[pageName].savedCallbackFuncName != "") {
pageObject[pageName].savedCallbackFuncName(resp.saved);
}
if (resp.saved) { dialog.close(modalId); }
}
});
}
// 저장
ctrl.save = (params) => {
if (!params) return;
let create = (params.callPurpose == "create");
// 민원 접수 관리에서 호출했다면..
if (create && pageObject[pageName].saveCallbackFuncName != "") {
pageObject[pageName].saveCallbackFuncName(info);
} else {
ajax.post({
url: !create ? ctrl.urls.update : ctrl.urls.create
, data: params || {}
, success: (resp) => { ctrl.onSave(params, resp); }
});
}
}
return ctrl;
}
Loading…
Cancel
Save