납부자 수정 기능 수정.

main
JoJH 2 weeks ago
parent 0dfa096e39
commit a678def771

@ -4,433 +4,389 @@
<c:set var="prefixName" scope="request">납부자 상세 정보</c:set>
<!-- inner page html -->
<div class="content-pop">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<div class="card">
<!-- 입력 영역 -->
<form id="frmEdit--${pageName}" name="frmEdit">
<!-- hidden -->
<input type="hidden" id="sggCd--${pageName}" name="sggCd" data-map="SGG_CD" />
<input type="hidden" id="taskSeCd--${pageName}" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" id="crdnId--${pageName}" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" id="rtpyrId--${pageName}" name="rtpyrId" data-map="RTPYR_ID" />
<input type="hidden" id="addrSn--${pageName}" name="addrSn" data-map="ADDR_SN" />
<input type="hidden" id="rtpyrInptSeCd--${pageName}" name="rtpyrInptSeCd" data-map="RTPYR_INPT_SE_CD" />
<input type="hidden" id="addrInptSeCd--${pageName}" name="addrInptSeCd" data-map="ADDR_INPT_SE_CD" />
<div class="row g-1">
<!-- 단속일시 -->
<div class="col-md-6">
<label for="crdnYmdTm--${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="crdnYmdTm--${pageName}" name="crdnYmdTm" data-map="CRDN_YMD_TM" readonly />
</div>
<!-- 차량번호 -->
<div class="col-md-6">
<label for="vhrno--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">차량번호</label>
<input type="text" class="form-control w-25" id="vhrno--${pageName}" name="vhrno" data-map="VHRNO" readonly />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnVehicle--${pageName}" title="차량 검색"">
검색
</button>
</div>
<!-- 납부자 구분 코드 -->
<div class="col-md-6">
<label for="rtpyrSeCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">납부자 구분</label>
<select class="form-select" id="rtpyrSeCd--${pageName}" name="rtpyrSeCd" data-map="RTPYR_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM011List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 납부자 상태 코드 -->
<div class="col-md-6">
<label for="rtpyrSttsCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">납부자 상태</label>
<select class="form-select" id="rtpyrSttsCd--${pageName}" name="rtpyrSttsCd" data-map="RTPYR_STTS_CD">
<option value="">선택하세요</option>
<c:forEach items="${FIM014List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<!-- 납부자 명 -->
<div class="col-md-6">
<label for="rtpyrNm--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">납부자 성명</label>
<input type="text" class="form-control w-35" id="rtpyrNm--${pageName}" name="rtpyrNm" data-map="RTPYR_NM" required />
</div>
<!-- 납부자 번호 -->
<div class="col-md-6">
<label for="rtpyrNo--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">납부자 번호</label>
<input type="text" class="form-control w-30" id="rtpyrNo--${pageName}" name="rtpyrNo" data-map="RTPYR_NO" required />
</div>
<!-- 납부자 전화번호 -->
<div class="col-md-6">
<label for="rtpyrTelno--${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="rtpyrTelno--${pageName}" name="rtpyrTelno" data-map="RTPYR_TELNO" />
</div>
<!-- 납부자 휴대전화번호 -->
<div class="col-md-6">
<label for="rtpyrMblTelno--${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="rtpyrMblTelno--${pageName}" name="rtpyrMblTelno" data-map="RTPYR_MBL_TELNO" />
</div>
<!-- 납부자 이메일 -->
<div class="col-md-12">
<label for="rtpyrEml--${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="rtpyrEml--${pageName}" name="rtpyrEml" data-map="RTPYR_EML" />
</div>
<!-- 주소 --><!-- 우편번호 -->
<div class="col-md-12">
<label for="addr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end required">주소</label>
<input type="text" class="form-control w-70" id="addr--${pageName}" name="addr" data-map="ADDR" required />
<input type="text" class="form-control w-px-75" id="zip--${pageName}" name="zip" data-map="ZIP" required />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnZipCode--${pageName}" title="우편번호검색">
검색
</button>
</div>
<!-- 상세주소 -->
<div class="col-md-12">
<label for="dtlAddr--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">상세주소</label>
<input type="text" class="form-control w-78" id="dtlAddr--${pageName}" name="dtlAddr" data-map="DTL_ADDR" />
<button type="button" class="btn btn-sm btn-outline-dark" id="btnEditAddr--${pageName}" title="주소수정">
주소수정
</button>
</div>
<!-- 도로명 코드 -->
<div class="col-md-12">
<label for="roadNmCd--${pageName}" class="w-px-120 bg-lighter pe-2 col-form-label text-sm-end">도로명코드</label>
<input type="text" class="form-control w-px-120" id="roadNmCd--${pageName}" name="roadNmCd" data-map="ROAD_NM_CD" readonly />
<input type="text" class="form-control w-px-40" id="udgdSeCd--${pageName}" name="udgdSeCd" data-map="UDGD_SE_CD" readonly />
<input type="text" class="form-control w-px-60" id="bmno--${pageName}" name="bmno" data-map="BMNO" readonly />
<input type="text" class="form-control w-px-60" id="bsno--${pageName}" name="bsno" data-map="BSNO" readonly />
<input type="text" class="form-control w-px-230" id="bldgMngNo--${pageName}" name="bldgMngNo" data-map="BLDG_MNG_NO" readonly />
</div>
<!-- 법정동 코드 -->
<div class="col-md-6">
<label for="stdgCd--${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="stdgCd--${pageName}" name="stdgCd" data-map="STDG_CD" readonly />
<input type="text" class="form-control w-px-40" id="mtnSeCd--${pageName}" name="mtnSeCd" data-map="MTN_SE_CD" readonly />
<input type="text" class="form-control w-px-50" id="mno--${pageName}" name="mno" data-map="MNO" readonly />
<input type="text" class="form-control w-px-50" id="sno--${pageName}" name="sno" data-map="SNO" readonly />
</div>
<!-- 행정동 코드 -->
<div class="col-md-6">
<label for="dongCd--${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="dongCd--${pageName}" name="dongCd" data-map="DONG_CD" readonly />
</div>
</div>
</form>
<!-- 입력 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-80" id="btnSave--${pageName}" title="저장">저장</button>
</span>
</span>
</div>
<!-- 업무 버튼 및 건수 표시 -->
</div> <!-- <div class="card"> -->
</div> <!-- <div class="container flex-grow-1 px-0"> -->
<!-- Content -->
<div class="content-pop" data-doctx="${pageName}">
<!-- Content -->
<div class="container flex-grow-1 px-0">
<div class="card">
<!-- 입력 영역 -->
<form name="frmEdit">
<!-- hidden -->
<input type="hidden" name="sggCd" data-map="SGG_CD" />
<input type="hidden" name="taskSeCd" data-map="TASK_SE_CD" />
<input type="hidden" name="crdnId" data-map="CRDN_ID" />
<input type="hidden" name="rtpyrId" data-map="RTPYR_ID" />
<input type="hidden" name="addrSn" data-map="ADDR_SN" />
<input type="hidden" name="rtpyrInptSeCd" data-map="RTPYR_INPT_SE_CD" />
<input type="hidden" name="addrInptSeCd" data-map="ADDR_INPT_SE_CD" />
<div class="row g-1">
<div class="col-md-6">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="crdnYmdTm">단속일시</label>
<input is="id-input" type="text" class="form-control w-35" name="crdnYmdTm" data-map="CRDN_YMD_TM" data-fmt-type="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="vhrno">차량번호</label>
<input is="id-input" type="text" class="form-control w-25" name="vhrno" data-map="VHRNO" readonly />
<button type="button" class="btn btn-primary" name="btnVehicle" title="차량 검색">
검색
</button>
</div>
<div class="col-md-6">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rtpyrSeCd">납부자구분</label>
<select is="id-select" class="form-select" name="rtpyrSeCd" data-map="RTPYR_SE_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM011List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<div class="col-md-6">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rtpyrSttsCd">납부자상태</label>
<select is="id-select" class="form-select" name="rtpyrSttsCd" data-map="RTPYR_STTS_CD" required>
<option value="">선택하세요</option>
<c:forEach items="${FIM014List}" var="item">
<option value="${item.code}">${item.value}</option>
</c:forEach>
</select>
</div>
<div class="col-md-6">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rtpyrNm">납부자성명</label>
<input is="id-input" type="text" class="form-control w-35" name="rtpyrNm" data-map="RTPYR_NM" required />
</div>
<div class="col-md-6">
<label is="name-label" class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end required" for="rtpyrNo">납부자번호</label>
<input is="id-input" type="text" class="form-control w-30" name="rtpyrNo" data-map="RTPYR_NO" required />
</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="rtpyrTelno">전화번호</label>
<input is="id-input" type="text" class="form-control w-35" name="rtpyrTelno" data-map="RTPYR_TELNO" />
</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="rtpyrMblTelno">휴대전화번호</label>
<input is="id-input" type="text" class="form-control w-35" name="rtpyrMblTelno" data-map="RTPYR_MBL_TELNO" />
</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="rtpyrEml">이메일</label>
<input is="id-input" type="text" class="form-control w-30" name="rtpyrEml" data-map="RTPYR_EML" />
</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="addr">주소</label>
<input is="id-input" type="text" class="form-control w-70" name="addr" data-map="ADDR" readonly />
<input is="id-input" type="text" class="form-control w-px-75" name="zip" data-map="ZIP" readonly />
<button type="button" class="btn btn-primary" name="btnZipCode" title="우편번호검색">
검색
</button>
</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="dtlAddr">주소</label>
<input is="id-input" type="text" class="form-control w-78" name="dtlAddr" data-map="DTL_ADDR" readonly />
<button type="button" class="btn btn-primary" name="btnEditAddr" title="주소수정">
주소수정
</button>
</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="roadNmCd">도로명코드</label>
<input is="id-input" type="text" class="form-control w-px-120" name="roadNmCd" data-map="ROAD_NM_CD" readonly />
<input is="id-input" type="text" class="form-control w-px-40" name="udgdSeCd" data-map="UDGD_SE_CD" readonly />
<input is="id-input" type="text" class="form-control w-px-60" name="bmno" data-map="BMNO" readonly />
<input is="id-input" type="text" class="form-control w-px-60" name="bsno" data-map="BSNO" readonly />
<input is="id-input" type="text" class="form-control w-px-230" name="bldgMngNo" data-map="BLDG_MNG_NO" 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="stdgCd">법정동코드</label>
<input is="id-input" type="text" class="form-control w-px-120" name="stdgCd" data-map="STDG_CD" readonly />
<input is="id-input" type="text" class="form-control w-px-40" name="mtnSeCd" data-map="MTN_SE_CD" readonly />
<input is="id-input" type="text" class="form-control w-px-60" name="mno" data-map="MNO" readonly />
<input is="id-input" type="text" class="form-control w-px-60" name="sno" data-map="SNO" 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="dongCd">행정동코드</label>
<input is="id-input" type="text" class="form-control w-30" name="dongCd" data-map="DONG_CD" readonly />
</div>
</div>
</form>
<!-- 입력 영역 -->
<!-- 업무 버튼 및 건수 표시 -->
<div>
<span class="container-page-btn">
<!-- 업무 버튼 -->
<span class="container-window-btn-right">
<button type="button" class="btn btn-primary w-px-120" name="btnSave" title="저장">
저장
</button>
</span>
</span>
</div>
<!-- 업무 버튼 및 건수 표시 -->
</div> <!-- <div class="card"> -->
</div> <!-- <div class="container flex-grow-1 px-0"> -->
<!-- Content -->
</div>
<!-- / inner page html <div class="content-pop"> -->
<script>
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = {};
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
let $P = pageObject["${pageName}"];
// FormFields
$P.formFields = new FimsFormFields("#frmEdit--${pageName}");
/**************************************************************************
* DatasetControl
**************************************************************************/
$P.control = new DatasetControl({
prefix: "payer"
, prefixName: "납부자"
, keymapper: info => info ? info.RTPYR_ID : ""
, dataGetter: obj => obj.${infoPrefix}Info
, formats: {
CRDN_YMD_TM: datetimeFormat
}
});
/**************************************************************************
* DatasetControl 이벤트
**************************************************************************/
// 현재 선택 자료 변경 이벤트
$P.control.onCurrentChange = (item) => {
if (!item) return;
// Dataset 셋팅
$P.formFields.set($P.control, item);
// 업무구분에 따른 URL 변경
$P.fnSetURL(item.data.TASK_SE_CD);
}
// 저장 callback
$P.control.onSave = (resp) => {
let dialogTitle = $($("#frmEdit--${pageName}").parents(".modal")[0]).find("h5.modal-title").html();
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, dialogTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, onOK: () => { }
});
if (resp.saved) {
dialog.close($("#frmEdit--${pageName}").parents(".modal")[0].id);
}
}
// 저장
$P.control.save = (info) => {
if (!info) return;
if ($("#rtpyrInptSeCd--${pageName}").val() == "") {
info.rtpyrInptSeCd = "01"; // 납부자 입력 구분 코드(FIM015) 01:수기입력
}
if ($("#addrInptSeCd--${pageName}").val() == "") {
info.addrInptSeCd = "01"; // 주소 입력 구분 코드(FIM087) 01:수기입력
}
if (info.rtpyrSeCd == "01") {
info.rtpyrBrdt = info.rtpyrNo.substr(0, 6); // 생년월일
}
info.wholAddr = info.addr + ", " + info.dtlAddr // 전체 주소
ajax.post({
url: $P.control.urls.create
, data: info || {}
, success: resp => $P.control.onSave(resp)
});
}
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.control.urls.create = wctx.url("/" + taskSeCd + "/payer" + "/createCrdnPayer.do"); // 등록
}
//
$P.callbackVehicle = (info) => {
let pyrSeCd = "";
switch (info.mber_se_code) {
case "11": pyrSeCd = "01"; break;
case "12": pyrSeCd = "02"; break;
case "13": pyrSeCd = "03"; break;
case "14": pyrSeCd = "04"; break;
case "15": pyrSeCd = "05"; break;
}
$("#rtpyrSeCd--${pageName}").val(pyrSeCd); // 납부자 구분 코드
$("#rtpyrNm--${pageName}").val(info.mber_nm); // 납부자 성명
$("#rtpyrNo--${pageName}").val(info.mber_se_no); // 납부자 번호
$("#addr--${pageName}").val(info.road_nm_adres); // 주소
$("#zip--${pageName}").val(info.zip_code); // 우편번호
$("#dtlAddr--${pageName}").val(info.use_strnghld_adres_nm); // 사용본거지 상세주소
$("#roadNmCd--${pageName}").val(info.use_strnghld_road_nm_code); // 사용본거지 도로명 코드
$("#udgdSeCd--${pageName}").val(info.usgsrhld_undgrnd_buld_se_code); // 사용본거지 지하 구분 코드
$("#bmno--${pageName}").val(info.use_strnghld_buld_main_no); // 사용본거지 건물 본번
$("#bsno--${pageName}").val(info.use_strnghld_buld_sub_no); // 사용본거지 건물 부번
$("#bldgMngNo--${pageName}").val(""); // 건물 관리 번호
$("#stdgCd--${pageName}").val(info.use_strnghld_legaldong_code); // 사용본거지 법정동 코드
$("#mtnSeCd--${pageName}").val(info.use_strnghld_mntn); // 사용본거지 산
$("#mno--${pageName}").val(info.use_strnghld_lnbr); // 사용본거지 번지
$("#sno--${pageName}").val(info.use_strnghld_ho); // 사용본거지 호
$("#dongCd--${pageName}").val(info.use_strnghld_adstrd_code); // 사용본거지 행정동 코드
$("#rtpyrInptSeCd--${pageName}").val("02"); // 납부자 입력 구분 코드(FIM015) 02:자동차관리정보시스템
$("#addrInptSeCd--${pageName}").val("02"); // 주소 입력 구분 코드(FIM087) 02:자동차관리정보시스템
}
// 우편번호 검색 결과
$P.callbackSearchAddr = (obj) => {
$("#addr--${pageName}").val(obj.ADDR); // 주소
$("#zip--${pageName}").val(obj.ZIP); // 우편번호
$("#dtlAddr--${pageName}").val(obj.DTL_ADDR); // 상세 주소
$("#roadNmCd--${pageName}").val(obj.ROAD_NM_CD); // 도로명 코드
$("#udgdSeCd--${pageName}").val(obj.UDGD_SE_CD); // 지하 구분 코드
$("#bmno--${pageName}").val(obj.BMNO); // 건물 본번
$("#bsno--${pageName}").val(obj.BSNO); // 건물 부번
$("#bldgMngNo--${pageName}").val(obj.BLDG_MNG_NO); // 건물 관리 번호
$("#stdgCd--${pageName}").val(obj.STDG_CD); // 법정동 코드
$("#mtnSeCd--${pageName}").val(obj.MTN_SE_CD); // 산
$("#mno--${pageName}").val(obj.MNO); // 번지
$("#sno--${pageName}").val(obj.SNO); // 호
$("#dongCd--${pageName}").val(obj.DONG_CD); // 행정동
$("#rtpyrInptSeCd--${pageName}").val("01"); // 납부자 입력 구분 코드(FIM015) 01:수기입력
$("#addrInptSeCd--${pageName}").val("01"); // 주소 입력 구분 코드(FIM087) 01:수기입력
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 차적 검색
$P.fnGetVehicle = () => {
let crdnYmd = $P.control.getValue("CRDN_YMD");
let vhrno = $("#vhrno--${pageName}").val();
if (crdnYmd == "") {
dialog.alert({
content: "단속일자를 입력하세요."
});
return;
}
if (vhrno == "") {
dialog.alert({
content: "차량번호를 입력하세요.",
onClose: function() {
$("#vhrno--${pageName}").focus();
}
});
return;
}
let params = {
inqire_se_code: "3"
, sggCd: $("#sggCd--${pageName}").val()
, levy_stdde: crdnYmd
, vhrno: vhrno
}
json.post({
url: wctx.url("/payer/vehicle.do")
, data: params || {}
, success: resp => {
if (!resp.found) {
$("#rtpyrId--${pageName}").val(""); // 납부자 ID
$("#rtpyrSeCd--${pageName}").val(""); // 납부자 입력 구분 코드
$("#rtpyrNm--${pageName}").val(""); // 납부자 성명
$("#rtpyrNo--${pageName}").val(""); // 납부자 번호
$("#rtpyrTelno--${pageName}").val(""); // 납부자 전화번호
$("#rtpyrMblTelno--${pageName}").val(""); // 납부자 휴대 전화번호
$("#rtpyrEml--${pageName}").val(""); // 납부자 이메일
$("#zip--${pageName}").val(""); // 우편번호
$("#addr--${pageName}").val(""); // 주소
$("#dtlAddr--${pageName}").val(""); // 상세 주소
$("#roadNmCd--${pageName}").val(""); // 도로명 코드
$("#udgdSeCd--${pageName}").val(""); // 지하 구분 코드
$("#bmno--${pageName}").val(""); // 건물 본번
$("#bsno--${pageName}").val(""); // 건물 부번
$("#bldgMngNo--${pageName}").val(""); // 건물 관리 번호
$("#stdgCd--${pageName}").val(""); // 법정동 코드
$("#mtnSeCd--${pageName}").val(""); // 산
$("#mno--${pageName}").val(""); // 번지
$("#sno--${pageName}").val(""); // 호
$("#dongCd--${pageName}").val(""); // 행정동 코드
dialog.alert("차량 정보가 없습니다.");
} else {
$("#rtpyrId--${pageName}").val(resp.rtpyrId); // 납부자 ID
$("#addr--${pageName}").attr("readonly", true); // 주소
$("#zip--${pageName}").attr("readonly", true); // 우편번호
$("#dtlAddr--${pageName}").attr("readonly", true); // 상세 주소
$P.callbackVehicle(resp.vehicle);
}
}
});
}
// 우편번호 검색
$P.fnZipCode = async() => {
let resp = await fetch(wctx.url("/webjars/html/searchAddr.html"));
let template = await resp.text();
dialog.open({
id: "searchAddrDialog"
, title: "주소검색"
, size: "lg"
, content: template
, init: () => {
$("#searchAddrCallback").val("pageObject['${pageName}'].callbackSearchAddr");
AppSupport.setDialogZindex();
}
});
}
// 화면에서 보여주는 주소입력 부분 수정
$P.fnEditAddr = () => {
$("#addr--${pageName}").prop("readonly", false); // 주소
$("#zip--${pageName}").prop("readonly", false); // 우편번호
$("#dtlAddr--${pageName}").prop("readonly", false); // 상세 주소
// 도로명 주소
$("#roadNmCd--${pageName}").val(""); // 도로명 코드
$("#udgdSeCd--${pageName}").val(""); //
$("#bmno--${pageName}").val(""); //
$("#bsno--${pageName}").val(""); //
$("#bldgMngNo--${pageName}").val(""); //
// 법정동
$("#stdgCd--${pageName}").val(""); // 법정동 코드
$("#mtnSeCd--${pageName}").val(""); // 산
$("#mno--${pageName}").val(""); // 본번
$("#sno--${pageName}").val(""); // 부번
// 행정동
$("#dongCd--${pageName}").val(""); // 행정동 코드
$("#rtpyrInptSeCd--${pageName}").val("01"); // 납부자 입력 구분 코드(FIM015) 01:수기입력
$("#addrInptSeCd--${pageName}").val("01"); // 주소 입력 구분 코드(FIM087) 01:수기입력
}
// 저장 버튼 클릭 이벤트
$P.fnSave = () => {
// validate 확인
if (!AppSupport.customValidate($("#frmEdit--${pageName}").find("input, select, textarea"))) return;
dialog.alert({
content: "현재 " + $P.control.prefixName + " 정보를 저장하시겠습니까?"
, onOK: () => {
$P.control.save($P.formFields.get()); // formFields
}
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
$P.setEvent = () => {
$("#btnVehicle--${pageName}").on("click", () => $P.fnGetVehicle()); // 차적 검색 버튼 이벤트
$("#btnZipCode--${pageName}").on("click", () => $P.fnZipCode()); // 우편번호 검색 버튼 이벤트
$("#btnEditAddr--${pageName}").on("click", () => $P.fnEditAddr()); // 주소 수정 버튼 이벤트
$("#btnSave--${pageName}").on("click", () => $P.fnSave()); // 저장 버튼 이벤트
}
// 초기 화면 설정
$P.initForm = () => {
$("#addr--${pageName}").prop("readonly", true); // 주소
$("#zip--${pageName}").prop("readonly", true); // 우편번호
$("#dtlAddr--${pageName}").prop("readonly", true); // 상세 주소
}
/**************************************************************************
* 최초 실행 함수
**************************************************************************/
// 1. 이벤트 설정
$P.setEvent();
// 2. 초기 화면 설정
$P.initForm();
// 3. Dataset 설정
$P.control.setData([${payerInfo}]);
});
LoadScript("payer01020Script", wctx.url("/webjars/js/fims/payer/payer01020.js?ver=${ver}"));
/**************************************************************************
* Global Variable
**************************************************************************/
pageObject["${pageName}"] = newDoctxFinder("${pageName}");
/**************************************************************************
* script 진입
**************************************************************************/
$(document).ready(function() {
// pageObject
let $P = pageObject["${pageName}"];
// datasetControl
$P.ctrl = newPayer01020Control("${pageName}", "[data-doctx=${pageName}]");
// infoDialog 호출 용도(view 조회(편집불가), create 등록, update 수정)
$P.callPurpose = "${callPurpose}";
/**************************************************************************
* 사용자 함수(function)
**************************************************************************/
// 업무구분에 따른 URL 설정
$P.fnSetURL = (taskSeCd) => {
$P.ctrl.urls.create = wctx.url("/" + taskSeCd + "/payer" + "/createCrdnPayer.do"); // 등록
}
// 차적 조회 결과
$P.callbackVehicle = (info) => {
let pyrSeCd = "";
switch (info.mber_se_code) {
case "11": pyrSeCd = "01"; break;
case "12": pyrSeCd = "02"; break;
case "13": pyrSeCd = "03"; break;
case "14": pyrSeCd = "04"; break;
case "15": pyrSeCd = "05"; break;
}
$P.$findn("rtpyrSeCd").val(pyrSeCd); // 납부자 구분 코드
$P.$findn("rtpyrNm").val(info.mber_nm); // 납부자 성명
$P.$findn("rtpyrNo").val(info.mber_se_no); // 납부자 번호
$P.$findn("addr").val(info.road_nm_adres); // 주소
$P.$findn("zip").val(info.zip_code); // 우편번호
$P.$findn("dtlAddr").val(info.use_strnghld_adres_nm); // 사용본거지 상세주소
$P.$findn("roadNmCd").val(info.use_strnghld_road_nm_code); // 사용본거지 도로명 코드
$P.$findn("udgdSeCd").val(info.usgsrhld_undgrnd_buld_se_code); // 사용본거지 지하 구분 코드
$P.$findn("bmno").val(info.use_strnghld_buld_main_no); // 사용본거지 건물 본번
$P.$findn("bsno").val(info.use_strnghld_buld_sub_no); // 사용본거지 건물 부번
$P.$findn("bldgMngNo").val(""); // 건물 관리 번호
$P.$findn("stdgCd").val(info.use_strnghld_legaldong_code); // 사용본거지 법정동 코드
$P.$findn("mtnSeCd").val(info.use_strnghld_mntn); // 사용본거지 산
$P.$findn("mno").val(info.use_strnghld_lnbr); // 사용본거지 번지
$P.$findn("sno").val(info.use_strnghld_ho); // 사용본거지 호
$P.$findn("dongCd").val(info.use_strnghld_adstrd_code); // 사용본거지 행정동 코드
$P.$findn("rtpyrInptSeCd").val("02"); // 납부자 입력 구분 코드(FIM015) 02:자동차관리정보시스템
$P.$findn("addrInptSeCd").val("02"); // 주소 입력 구분 코드(FIM087) 02:자동차관리정보시스템
}
// 우편번호 검색 결과
$P.callbackSearchAddr = (obj) => {
$P.$findn("addr").val(obj.ADDR); // 주소
$P.$findn("zip").val(obj.ZIP); // 우편번호
$P.$findn("dtlAddr").val(obj.DTL_ADDR); // 상세 주소
$P.$findn("roadNmCd").val(obj.ROAD_NM_CD); // 도로명 코드
$P.$findn("udgdSeCd").val(obj.UDGD_SE_CD); // 지하 구분 코드
$P.$findn("bmno").val(obj.BMNO); // 건물 본번
$P.$findn("bsno").val(obj.BSNO); // 건물 부번
$P.$findn("bldgMngNo").val(obj.BLDG_MNG_NO); // 건물 관리 번호
$P.$findn("stdgCd").val(obj.STDG_CD); // 법정동 코드
$P.$findn("mtnSeCd").val(obj.MTN_SE_CD); // 산
$P.$findn("mno").val(obj.MNO); // 번지
$P.$findn("sno").val(obj.SNO); // 호
$P.$findn("dongCd").val(obj.DONG_CD); // 행정동
$P.$findn("rtpyrInptSeCd").val("01"); // 납부자 입력 구분 코드(FIM015) 01:수기입력
$P.$findn("addrInptSeCd").val("01"); // 주소 입력 구분 코드(FIM087) 01:수기입력
}
/**************************************************************************
* 버튼 clickEvent
**************************************************************************/
// 차적 검색
$P.fnGetVehicle = () => {
let crdnYmd = $P.control.getValue("CRDN_YMD");
let vhrno = $("#vhrno--${pageName}").val();
if (crdnYmd == "") {
dialog.alert({
content: "단속일자를 입력하세요."
});
return;
}
if (vhrno == "") {
dialog.alert({
content: "차량번호를 입력하세요.",
onClose: function() {
$("#vhrno--${pageName}").focus();
}
});
return;
}
let params = {
inqire_se_code: "3"
, sggCd: $("#sggCd--${pageName}").val()
, levy_stdde: crdnYmd
, vhrno: vhrno
}
json.post({
url: wctx.url("/payer/vehicle.do")
, data: params || {}
, success: resp => {
if (!resp.found) {
$("#rtpyrId--${pageName}").val(""); // 납부자 ID
$("#rtpyrSeCd--${pageName}").val(""); // 납부자 입력 구분 코드
$("#rtpyrNm--${pageName}").val(""); // 납부자 성명
$("#rtpyrNo--${pageName}").val(""); // 납부자 번호
$("#rtpyrTelno--${pageName}").val(""); // 납부자 전화번호
$("#rtpyrMblTelno--${pageName}").val(""); // 납부자 휴대 전화번호
$("#rtpyrEml--${pageName}").val(""); // 납부자 이메일
$("#zip--${pageName}").val(""); // 우편번호
$("#addr--${pageName}").val(""); // 주소
$("#dtlAddr--${pageName}").val(""); // 상세 주소
$("#roadNmCd--${pageName}").val(""); // 도로명 코드
$("#udgdSeCd--${pageName}").val(""); // 지하 구분 코드
$("#bmno--${pageName}").val(""); // 건물 본번
$("#bsno--${pageName}").val(""); // 건물 부번
$("#bldgMngNo--${pageName}").val(""); // 건물 관리 번호
$("#stdgCd--${pageName}").val(""); // 법정동 코드
$("#mtnSeCd--${pageName}").val(""); // 산
$("#mno--${pageName}").val(""); // 번지
$("#sno--${pageName}").val(""); // 호
$("#dongCd--${pageName}").val(""); // 행정동 코드
dialog.alert("차량 정보가 없습니다.");
} else {
$("#rtpyrId--${pageName}").val(resp.rtpyrId); // 납부자 ID
$("#addr--${pageName}").attr("readonly", true); // 주소
$("#zip--${pageName}").attr("readonly", true); // 우편번호
$("#dtlAddr--${pageName}").attr("readonly", true); // 상세 주소
$P.callbackVehicle(resp.vehicle);
}
}
});
}
// 우편번호 검색
$P.fnZipCode = async() => {
let resp = await fetch(wctx.url("/webjars/html/searchAddr.html"));
let template = await resp.text();
dialog.open({
id: "searchAddrDialog"
, title: "주소검색"
, size: "lg"
, content: template
, init: () => {
AppSupport.setDialogZindex();
$("#searchAddrCallback").val("pageObject['${pageName}'].callbackSearchAddr");
}
});
}
// 화면에서 보여주는 주소입력 부분 수정
$P.fnEditAddr = () => {
$P.$findn("addr").prop("readonly", false); // 주소
$P.$findn("zip").prop("readonly", false); // 우편번호
$P.$findn("dtlAddr").prop("readonly", false); // 상세 주소
$P.$findn("roadNmCd").prop("readonly", false); // 도로명 코드
$P.$findn("stdgCd").prop("readonly", false); // 법정동 코드
// 도로명 주소
$P.$findn("roadNmCd").val(""); // 도로명 코드
$P.$findn("udgdSeCd").val(""); // 지하 구분 코드
$P.$findn("bmno").val(""); // 건물본번
$P.$findn("bsno").val(""); // 건물부번
$P.$findn("bldgMngNo").val(""); // 건물 관리 번호
// 법정동
$P.$findn("stdgCd").val(""); // 법정동 코드
$P.$findn("mtnSeCd").val(""); // 산
$P.$findn("mno").val(""); // 본번
$P.$findn("sno").val(""); // 부번
// 행정동
$P.$findn("dongCd").val(""); // 행정동 코드
$P.$findn("rtpyrInptSeCd").val("01"); // 납부자 입력 구분 코드(FIM015) 01:수기입력
$P.$findn("addrInptSeCd").val("01"); // 주소 입력 구분 코드(FIM087) 01:수기입력
}
// 저장 버튼 클릭 이벤트
$P.fnSave = () => {
// validate 확인
if (!AppSupport.customValidate($P.$findn("frmEdit").find("input,select,textarea"))) return;
if ($P.$findn("stdgCd").val() == "") {
dialog.alert({
content: "법정동 코드가 입력되지 않았습니다."
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
});
return;
}
if ($P.$findn("stdgCd").length != 10) {
dialog.alert({
content: "법정동 코드가 잘못되었습니다."
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { }
});
return;
}
// formFields
let params = new FimsFormFields($P.selectorn("frmEdit")).get();
params.wholAddr = params.addr + ", " + params.dtlAddr; // 전체 주소
dialog.alert({
content: "현재 " + $P.ctrl.prefixName + " 정보를 저장하시겠습니까?"
, init: () => { AppSupport.setDialogZindex(); }
, onOK: () => { $P.ctrl.save(params); }
});
}
/**************************************************************************
* 초기 셋팅
**************************************************************************/
// 이벤트 설정
$P.setEvent = () => {
// 버튼 이벤트
$P.$findn("btnVehicle").on("click", () => { $P.fnGetVehicle() }); // 차적 검색 버튼 이벤트
$P.$findn("btnZipCode").on("click", () => { $P.fnZipCode() }); // 우편번호 검색 버튼 이벤트
$P.$findn("btnEditAddr").on("click", () => { $P.fnEditAddr() }); // 주소 수정 버튼 이벤트
$P.$findn("btnSave").on("click", () => { $P.fnSave() }); // 저장
}
// 초기 화면 설정
$P.fnReset = () => {
// 초기화
$P.findn("frmEdit").reset(); // 화면 초기화
$P.$findn("addr").prop("readonly", true); // 주소
$P.$findn("zip").prop("readonly", true); // 우편번호
$P.$findn("dtlAddr").prop("readonly", true); // 상세 주소
}
/**************************************************************************
* 최초 실행 함수
**************************************************************************/
// 1. 이벤트 설정
$P.setEvent();
// 2. 초기 화면 설정
$P.fnReset();
// 3. Dataset 설정
$P.ctrl.setData([${Info}]);
});
</script>

@ -0,0 +1,62 @@
function newPayer01020Control(pageName, doctx="[data-doctx='payer01020']") {
let ctrl = new DatasetControl({
doctx: doctx
, prefix: "payer"
, prefixName: "납부자"
, dataGetter: obj => obj["Info"]
, keys: ["RTPYR_ID"]
, urls: {
load: "/list.do"
, create: "/create.do"
, update: "/update.do"
}
, formats: {
CRDN_YMD_TM: datetimeFormat
}
});
/**************************************************************************
* 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);
};
// 저장 callback
ctrl.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) { dialog.close(modalId); }
}
});
}
// 저장
ctrl.save = (params) => {
if (!params) return;
ajax.post({
url: ctrl.urls.create
, data: params || {}
, success: (resp) => { ctrl.onSave(params, resp); }
});
}
return ctrl;
}
Loading…
Cancel
Save