<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false" session="false"%>
<%@ include file="/WEB-INF/jsp/include/taglib.jsp"%>

<!-- Page Body -->
<div class="content-pop" data-doctx="${pageName}">
    <div class="d-flex flex-row justify-content-evenly">
        <!-- 감경 정보 -->
        <div class="col-xl-6 mx-1">
            <div class="card">
                <!-- 업무 버튼 -->
                <div class="container-page-btn">
                    <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="감경 등록" disabled>
                            감경 등록
                        </button>
                        <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="감경 삭제" disabled>
                            감경 삭제
                        </button>
                    </span> <!-- <span class="container-window-btn-right"> -->
                </div> <!-- <div class="container-page-btn"> -->

                <!-- 입력 영역 -->
                <form name="frmEditRdct">
                    <!-- hidden -->
                    <input type="hidden" name="rdctId" data-map="RDCT_ID" />

                    <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="rdctYmd">감경일자</label>
                            <input is="id-input" type="text" class="form-control w-30" name="rdctYmd" data-map="RDCT_YMD" data-fmt-type="day" readonly />
                        </div>
                        <div class="col-md-6">
                        </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="rdctRsnNm">감경사유</label>
                            <input is="id-input" type="text" class="form-control w-50" name="rdctRsnNm" data-map="RDCT_RSN_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="rdctAmt">감경금액</label>
                            <input is="id-input" type="text" class="form-control w-30 text-end" name="rdctAmt" data-map="RDCT_AMT" data-fmt-type="number" readonly />
                        </div>
                        <div class="col-md-12">
                            <label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="etcCn">기타내용</label>
                            <textarea type="text" class="form-control w-80" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly></textarea>
                        </div>
                        <div class="col-md-6">
                            <label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mdfcnDt">수정일시</label>
                            <input type="text" class="form-control w-45" name="mdfcnDt" data-map="MDFCN_DT" data-fmt-type="dt" readonly />
                        </div>
                        <div class="col-md-6">
                            <label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mdfrNm">수정자</label>
                            <input type="text" class="form-control w-40" name="mdfrNm" data-map="MDFR_NM" readonly />
                        </div>
                    </div> <!-- <div class="row g-1"> -->
                </form>
                <!-- 입력 영역 -->
            </div> <!-- <div class="card"> -->
        </div> <!-- <div class="col-xl-6 mx-1"> -->
        <!-- 감경 정보 -->

        <!-- 부과제외 정보 -->
        <div class="col-xl-6 mx-1">
            <div class="card">
                <!-- 업무 버튼 -->
                <div class="container-page-btn">
                    <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="계도 등록" disabled>
                            계도 등록
                        </button>
                        <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="부과제외 수정" disabled>
                            부과제외 수정
                        </button>
                        <button type="button" class="btn btn-primary w-px-120" name="btnRemoveLevyExcl" title="부과제외 삭제" disabled>
                            부과제외 삭제
                        </button>
                    </span>
                </div> <!-- <div class="container-page-btn"> -->

                <!-- 입력 영역 -->
                <form name="frmEditLevyExcl">
                    <!-- hidden -->
                    <input type="hidden" name="levyExclId" data-map="LEVY_EXCL_ID" />

                    <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="levyExclYmd">부과제외 일자</label>
                            <input is="id-input" type="text" class="form-control w-30" name="levyExclYmd" data-map="LEVY_EXCL_YMD" data-fmt-type="day" readonly />
                        </div>
                        <div class="col-md-6">
                        </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="levyExclSeNm">부과제외구분</label>
                            <input is="id-input" type="text" class="form-control w-30" name="levyExclSeNm" data-map="LEVY_EXCL_SE_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="levyExclRsnNm">부과제외사유</label>
                            <input is="id-input" type="text" class="form-control w-60" name="levyExclRsnNm" data-map="LEVY_EXCL_RSN_NM" readonly />
                        </div>
                        <div class="col-md-12">
                            <label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end align-top" for="etcCn">기타내용</label>
                            <textarea type="text" class="form-control w-80" name="etcCn" data-map="ETC_CN" rows="3" data-maxlengthb="1000" readonly></textarea>
                        </div>
                        <div class="col-md-6">
                            <label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mdfcnDt">수정일시</label>
                            <input type="text" class="form-control w-45" name="mdfcnDt" data-map="MDFCN_DT" data-fmt-type="dt" readonly />
                        </div>
                        <div class="col-md-6">
                            <label class="col-form-label bg-lighter pe-2 w-px-120 text-sm-end" for="mdfrNm">수정자</label>
                            <input type="text" class="form-control w-40" name="mdfrNm" data-map="MDFR_NM" readonly />
                        </div>
                    </div> <!-- <div class="row g-1"> -->
                </form>
                <!-- 입력 영역 -->
            </div> <!-- <div class="card"> -->
        </div> <!-- <div class="col-xl-6 mx-1"> -->
        <!-- 부과제외 정보 -->
    </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->

    <div class="d-flex flex-row justify-content-evenly">
        <!-- 처리 상태 이력 -->
        <div class="col-xl-6 mx-1">
            <div class="card">
                <!-- 업무 버튼 -->
                <div class="container-page-btn">
                    <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">처리 상태 이력</label>
                    <!-- 버튼 우측 정렬 -->
                    <span class="container-window-btn-right">
	                    <label>
	                       <input type="checkbox" name="unusedInq" class="form-check-input" onchange="pageObject['${pageName}'].fnRefresh(this.checked);"/>미사용조회
	                    </label>
                    </span>
                </div>
                <!-- 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-350" name="tableRspnsCrdnSttsHstry">
                            <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="theadTrCrdnSttsHstry" data-search-target="[data-doctx='${pageName}']">
                                        <th class="cmn sorting" style="width: 180px;" data-field="REG_DT">등록일시</th>
                                        <th class="cmn sorting" style="width: 120px;" data-field="RGTR_NM">등록사용자</th>
                                        <th class="cmn sorting" style="width: 100px;" data-field="USE_YN_NM">사용여부</th>
                                        <th class="cmn sorting" style="width: 160px;" data-field="CRDN_STTS_NM">단속상태</th>
                                        <th class="cmn sorting" style="width: 280px;" data-field="ETC_CN">기타내용</th>
                                        <th class="cmn sorting" style="width: 180px;" data-field="MDFCN_DT">수정일시</th>
                                        <th class="cmn sorting" style="width: 120px;" data-field="MDFR_NM">수정사용자</th>
                                        <th class="cmn dummy-th"></th>
                                    </tr>
                                </thead>
                                <tbody name="tbodyCrdnSttsHstryList">
                                </tbody>
                                <template is="curly-brackets" name="tmpltCrdnSttsHstryRows">
                                    <tr data-key="{data-index}">
                                        <td class="cmn text-center" onclick="{onclick}">{REG_DT}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{RGTR_NM}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{USE_YN_NM}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{CRDN_STTS_NM}</td>
                                        <td class="cmn text-start"  onclick="{onclick}">{ETC_CN}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{MDFCN_DT}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{MDFR_NM}</td>
                                        <td class="cmn dummy-td"></td>
                                    </tr>
                                </template>
                                <template name="tmpltNotFoundCrdnSttsHstry">
                                    <tr class="odd">
                                        <td valign="top" colspan="8" class="dataTables_empty text-center">처리상태 이력 정보를 찾지 못했습니다.</td>
                                    </tr>
                                </template>
                            </table>
                        </div>
                    </div>
                </div> <!-- DataTables(그리드) -->
            </div> <!-- <div class="card"> -->
        </div> <!-- <div class="col-xl-6 mx-1"> -->
        <!-- 처리 상태 이력 -->

        <!-- 주소 변동 이력 -->
        <div class="col-xl-6 mx-1">
            <div class="card">
                <!-- 업무 버튼 -->
                <div class="container-page-btn">
                    <label class="col-form-label bg-label-danger pe-2 w-px-120 text-sm-center">납부자주소 이력</label>
                </div>
                <!-- 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-350" name="tableRspnsPayerHstry">
                            <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="theadTrPayerHstry" data-search-target="[data-doctx='${pageName}']">
                                        <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 sorting" style="width: 120px;" data-field="RTPYR_NM">납부자성명</th>
                                        <th class="cmn sorting" style="width: 100px;" data-field="ZIP">우편번호</th>
                                        <th class="cmn sorting" style="width: 480px;" data-field="WHOL_ADDR">전체주소</th>
                                        <th class="cmn dummy-th"></th>
                                    </tr>
                                </thead>
                                <tbody name="tbodyPayerHstryList">
                                </tbody>
                                <template is="curly-brackets" name="tmpltPayerHstryRows">
                                    <tr data-key="{data-index}">
                                        <td class="cmn text-center" onclick="{onclick}">{REG_DT}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{RGTR_NM}</td>
                                        <td class="cmn text-start"  onclick="{onclick}">{RTPYR_NM}</td>
                                        <td class="cmn text-center" onclick="{onclick}">{ZIP}</td>
                                        <td class="cmn text-start"  onclick="{onclick}">{WHOL_ADDR}</td>
                                        <td class="cmn dummy-td"></td>
                                    </tr>
                                </template>
                                <template name="tmpltNotFoundPayerHstry">
                                    <tr class="odd">
                                        <td valign="top" colspan="6" class="dataTables_empty text-center">납부자주소 이력 정보를 찾지 못했습니다.</td>
                                    </tr>
                                </template>
                            </table>
                        </div>
                    </div>
                </div> <!-- DataTables(그리드) -->
            </div> <!-- <div class="card"> -->
        </div> <!-- <div class="col-xl-6 mx-1"> -->
        <!-- 주소 변동 이력 -->
    </div> <!-- <div class="d-flex flex-row justify-content-evenly"> -->
</div> <!-- <div class="content-pop"> -->

<script>
    LoadScript("sprt02050Script", wctx.url("/resources/js/fims/sprt/sprt02050.js?ver=${ver}"));

    /**************************************************************************
     * Global Variable
     **************************************************************************/
    pageObject["${pageName}"] = newDoctxFinder("${pageName}");

    /**************************************************************************
     * script 진입
     **************************************************************************/
    $(document).ready(function() {
        // pageObject
        let $P = pageObject["${pageName}"];

        // datasetControl
        $P.ctrlRdct = newSprt02050ControlRD("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
        $P.ctrlLevyExcl = newSprt02050ControlLE("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
        $P.ctrlCrdnSttsHstry = newSprt02050ControlCSH("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");
        $P.ctrlPayerAddrHstrys = newSprt02050ControlPAH("${pageName}", "[data-doctx=${pageName}]", "${pageNameMain}");

        /**************************************************************************
         * 사용자 함수(function)
         **************************************************************************/
        // 감경 사유 callback
        $P.callbackRsnRdct = (obj) => {
            // 서버에 전송할 data(파라미터) 생성
            let params = {
                  callPurpose: "remove"
                , sggCd: $P.ctrlRdct.getValue("SGG_CD")                         // 시군구 코드
                , taskSeCd: $P.ctrlRdct.getValue("TASK_SE_CD")                  // 업무 구분 코드
                , rdctId: $P.ctrlRdct.getValue("RDCT_ID")                       // 감경 ID
                , btnTitle: obj.btnTitle                                        // 버튼 title
                , delRsn: "[개별총정보-" + obj.btnTitle + "] " + obj.reason     // 삭제 사유
            };

            $P.ctrlRdct.remove(params);
        }

        // 부과제외 삭제 사유 callback
        $P.callbackRsnLevyExcl = (obj) => {
            // 서버에 전송할 data(파라미터) 생성
            let params = {
                  callPurpose: "remove"
                , sggCd: $P.ctrlLevyExcl.getValue("SGG_CD")                     // 시군구 코드
                , taskSeCd: $P.ctrlLevyExcl.getValue("TASK_SE_CD")              // 업무 구분 코드
                , levyExclId: $P.ctrlLevyExcl.getValue("LEVY_EXCL_ID")          // 부과제외 ID
                , btnTitle: obj.btnTitle                                        // 버튼 title
                , delRsn: "[개별총정보-" + obj.btnTitle + "] " + obj.reason     // 삭제 사유
            };

            $P.ctrlLevyExcl.remove(params);
        }

        // 정보 새로고침
        $P.fnRefresh = (crdnSttsHstryUseYn) => {
            let ctrlMain = pageObject["${pageNameMain}"].ctrlMain;

            // 단속 ID 가 없다면.. return
            let crdnId = ctrlMain.getValue("CRDN_ID");                          // 단속 ID
            if (!crdnId) return;

            let unusedInq = "N";
            if (crdnSttsHstryUseYn == true) {
            	unusedInq = "Y";
            }

            let params = {
                  callPurpose: "refresh"
                , sggCd: ctrlMain.getValue("SGG_CD")
                , taskSeCd: ctrlMain.getValue("TASK_SE_CD")
                , crdnId: ctrlMain.getValue("CRDN_ID")
                , unusedInq: unusedInq
                , delYn: "N"
            };

            ajax.get({
                  url: wctx.url("/sprt/sprt02/050/info.do")
                , headers: { Accept: "application/json; charset=utf-8" }        // json
                , data: params || {}
                , success: (resp) => {
                    // 초기화
                    $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]);

                    // 감경 정보
                    if (resp.rdctInfo) { $P.ctrlRdct.setData([resp.rdctInfo]); }
                    // 부과제외 정보
                    if (resp.levyExclInfo) { $P.ctrlLevyExcl.setData([resp.levyExclInfo]); }
                    // 단속상태 이력
                    $P.ctrlCrdnSttsHstry.setData(resp.crdnSttsHstrys);
                    // 납부자 주소 이력
                    $P.ctrlPayerAddrHstrys.setData(resp.payerAddrHstrys);
                }
            });
        }

        /**************************************************************************
         * 버튼 clickEvent
         **************************************************************************/
        // 감경 등록 버튼 이벤트
        $P.fnCreateRdct = (btnTitle) => {
            // 감경 ID가 있다면.. return
            let rdctId = $P.ctrlRdct.getValue("RDCT_ID");                       // 감경 ID
            if (rdctId)
            	return dialog.alert({
                      content: "이미 등록된 감경 대장 정보가 있습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , init: () => { AppSupport.setDialogZindex(); }
                    , onOK: () => { }
                });

            // 단속 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: ctrlMain.getValue("SGG_CD")                            // 시군구 코드
                , taskSeCd: ctrlMain.getValue("TASK_SE_CD")                     // 업무 구분 코드
                , crdnId: ctrlMain.getValue("CRDN_ID")                          // 단속 ID
                , delYn: "N"
            };

            $P.ctrlRdct.getInfo(params);
        }

        // 감경 수정 버튼 이벤트
        $P.fnUpdateRdct = (btnTitle) => {
            // 감경 ID 가 없다면.. return
            let rdctId = $P.ctrlRdct.getValue("RDCT_ID");                       // 감경 ID
            if (!rdctId)
            	return dialog.alert({
                      content: "조회된 감경 대장 정보가 없습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , onOK: () => { }
                });

            let params = {
                  callPurpose: "update"
                , btnTitle: btnTitle
                , sggCd: $P.ctrlRdct.getValue("SGG_CD")                         // 시군구 코드
                , taskSeCd: $P.ctrlRdct.getValue("TASK_SE_CD")                  // 업무 구분 코드
                , crdnId: $P.ctrlRdct.getValue("CRDN_ID")                       // 단속 ID
                , rdctId: $P.ctrlRdct.getValue("RDCT_ID")                       // 감경 ID
                , delYn: "N"
            };

            $P.ctrlRdct.getInfo(params);
        }

        // 감경 삭제 버튼 이벤트
        $P.fnRemoveRdct = (btnTitle) => {
            let rdctId = $P.ctrlRdct.getValue("RDCT_ID");                       // 감경 ID
            if (!rdctId)
            	return dialog.alert({
                      content: "조회된 감경 대장 정보가 없습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , init: () => { AppSupport.setDialogZindex(); }
                    , onOK: () => { }
                });

            // 삭제 메세지 확인
            dialog.alert({
                  content: "선택하신 " + $P.ctrlRdct.prefixName + " 정보를 삭제하시겠습니까?"
                , onOK: () => {
                    // 삭제 사유 입력
                    fetch(wctx.url("/resources/html/inputRsnDialog.html"))
                        .then(function(resp) { return resp.text(); })
                        .then(function(template) {
                            dialog.open({
                                  id: "inputDelRsnDialog"
                                , title: btnTitle
                                , size: "lg"
                                , content: template
                                , init: () => { AppSupport.setDialogZindex(); }
                                , onOK: () => {
                                    $P.callbackRsnRdct({
                                          btnTitle: btnTitle                    // 버튼 title
                                        , reason: $("#reason").val()            // 삭제 사유
                                    });
                                }
                            });
                        });
                }
            });
        }

        // 계도 등록 버튼 이벤트
        $P.fnCreateWrng = (btnTitle) => {
            let levyExclId = $P.ctrlLevyExcl.getValue("LEVY_EXCL_ID");          // 부과 제외 ID
            if (levyExclId)
            	return dialog.alert({
                      content: "이미 등록된 부과제외 대장 정보가 있습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , init: () => { AppSupport.setDialogZindex(); }
                    , onOK: () => { }
                });

            // 단속 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: ctrlMain.getValue("SGG_CD")                            // 시군구 코드
                , taskSeCd: ctrlMain.getValue("TASK_SE_CD")                     // 업무 구분 코드
                , crdnId: ctrlMain.getValue("CRDN_ID")                          // 단속 ID
                , levyExclSeCd: "2"                                             // 부과 제외 구분 코드
                , delYn: "N"
            };

            $P.ctrlLevyExcl.getInfo(params);
        }

        // 부과제외 등록 버튼 이벤트
        $P.fnCreateLevyExcl = (btnTitle) => {
            let levyExclId = $P.ctrlLevyExcl.getValue("LEVY_EXCL_ID");          // 부과 제외 ID
            if (levyExclId)
            	return dialog.alert({
                      content: "이미 등록된 부과제외 대장 정보가 있습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , init: () => { AppSupport.setDialogZindex(); }
                    , onOK: () => { }
                });

            // 단속 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: ctrlMain.getValue("SGG_CD")                            // 시군구 코드
                , taskSeCd: ctrlMain.getValue("TASK_SE_CD")                     // 업무 구분 코드
                , crdnId: ctrlMain.getValue("CRDN_ID")                          // 단속 ID
                , levyExclSeCd: "1"                                             // 부과 제외 구분 코드
                , delYn: "N"
            };

            $P.ctrlLevyExcl.getInfo(params);
        }

        // 부과제외 수정 버튼 이벤트
        $P.fnUpdateLevyExcl = (btnTitle) => {
            let levyExclId = $P.ctrlLevyExcl.getValue("LEVY_EXCL_ID");          // 부과 제외 ID
            if (!levyExclId)
            	return dialog.alert({
                      content: "조회된 부과제외 대장 정보가 없습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , init: () => { AppSupport.setDialogZindex(); }
                    , onOK: () => { }
                });

            let params = {
                  callPurpose: "update"
                , btnTitle: btnTitle
                , sggCd: $P.ctrlLevyExcl.getValue("SGG_CD")                     // 시군구 코드
                , taskSeCd: $P.ctrlLevyExcl.getValue("TASK_SE_CD")              // 업무 구분 코드
                , crdnId: $P.ctrlLevyExcl.getValue("CRDN_ID")                   // 단속 ID
                , levyExclId: $P.ctrlLevyExcl.getValue("LEVY_EXCL_ID")          // 부과제외 ID
                , delYn: "N"
            };

            $P.ctrlLevyExcl.getInfo(params);
        }

        // 부과제외 삭제 버튼 이벤트
        $P.fnRemoveLevyExcl = (btnTitle) => {
            // 부과제외 ID 가 없다면.. return
            let levyExclId = $P.ctrlLevyExcl.getValue("LEVY_EXCL_ID");          // 부과제외 ID
            if (!levyExclId)
            	return dialog.alert({
                      content: "조회된 부과제외 대장 정보가 없습니다."
                            + "<br><br>" + "[" + btnTitle + "]" + " 실행이 취소되었습니다."
                    , init: () => { AppSupport.setDialogZindex(); }
                    , onOK: () => { }
                });

            // 삭제 메세지 확인
            dialog.alert({
                  content: "선택하신 " + $P.ctrlLevyExcl.prefixName + " 정보를 삭제하시겠습니까?"
                , onOK: () => {
                    // 삭제 사유 입력
                    fetch(wctx.url("/resources/html/inputRsnDialog.html"))
                        .then(function(resp) { return resp.text(); })
                        .then(function(template) {
                            dialog.open({
                                  id: "inputDelRsnDialog"
                                , title: btnTitle
                                , size: "lg"
                                , content: template
                                , init: () => { AppSupport.setDialogZindex(); }
                                , onOK: () => {
                                    $P.callbackRsnLevyExcl({
                                          btnTitle: btnTitle                    // 버튼 title
                                        , reason: $("#reason").val()            // 삭제 사유
                                    });
                                }
                            });
                        });
                }
            });
        }

        /**************************************************************************
         * 초기 셋팅
         **************************************************************************/
        // 이벤트 설정
        $P.setEvent = () => {
            // 업무 버튼 이벤트
            $P.$findn("btnCreateRdct").on("click", function() {
                $P.fnCreateRdct($P.$findn("btnCreateRdct").attr("title"));          // 감경 등록
            });
            $P.$findn("btnUpdateRdct").on("click", function() {
                $P.fnUpdateRdct($P.$findn("btnUpdateRdct").attr("title"));          // 감경 수정
            });
            $P.$findn("btnRemoveRdct").on("click", function() {
                $P.fnRemoveRdct($P.$findn("btnRemoveRdct").attr("title"));          // 감경 등록
            });
            $P.$findn("btnCreateWrng").on("click", function() {
                $P.fnCreateWrng($P.$findn("btnCreateWrng").attr("title"));          // 계도 등록
            });
            $P.$findn("btnCreateLevyExcl").on("click", function() {
                $P.fnCreateLevyExcl($P.$findn("btnCreateLevyExcl").attr("title"));  // 비부과 등록
            });
            $P.$findn("btnUpdateLevyExcl").on("click", function() {
                $P.fnUpdateLevyExcl($P.$findn("btnUpdateLevyExcl").attr("title"));  // 부과제외 수정
            });
            $P.$findn("btnRemoveLevyExcl").on("click", function() {
                $P.fnRemoveLevyExcl($P.$findn("btnRemoveLevyExcl").attr("title"));  // 부과제외 삭제
            });

            // DataTables width 변경 조정
            Componentization.fnMakeResizableTable($P.findn("tableRspnsCrdnSttsHstry"));
            Componentization.fnMakeResizableTable($P.findn("tableRspnsPayerHstry"));
        }

        // 초기 화면 설정
        $P.fnReset = () => {
            // 초기화
            $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 초기화

            // 화면 호출(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);
                $P.$findn("btnCreateWrng").prop("disabled", false);
                $P.$findn("btnCreateLevyExcl").prop("disabled", false);
                $P.$findn("btnUpdateLevyExcl").prop("disabled", false);
                $P.$findn("btnRemoveLevyExcl").prop("disabled", false);
            }
            let disable = pageObject["sprt02010"].ctrlMain.dataset.getDataset()[0].CRDN_STTS_CD != "21"; 
            $P.$findn("btnCreateWrng").prop("disabled", disable);
            $P.$findn("btnCreateLevyExcl").prop("disabled", disable);
        }

        /**************************************************************************
         * 최초 실행 함수
         **************************************************************************/
        // 1. 이벤트 설정
        $P.setEvent();

        // 2. 초기 화면 설정
        $P.fnReset();

        // 3. Dataset 설정
        let rdctInfo = ${rdctInfo};                                             // 감경 정보
        if (rdctInfo) { $P.ctrlRdct.setData([rdctInfo]); }

        let levyExclInfo = ${levyExclInfo};                                     // 부과제외 정보
        if (levyExclInfo) { $P.ctrlLevyExcl.setData([levyExclInfo]); }

        $P.ctrlCrdnSttsHstry.setData(${crdnSttsHstrys});                        // 단속상태 이력
        $P.ctrlPayerAddrHstrys.setData(${payerAddrHstrys});                     // 납부자주소 이력
    });
//# sourceURL=sprt02050-info.jsp
</script>