You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

176 lines
6.0 KiB
JavaScript

function newSprt02040ControlSD(pageName, doctx="[data-doctx='sprt02040']", mainPageName="sprt02010") {
let ctrlSndngDtl = new DatasetControl({
doctx: doctx
, prefix: "sndngDtl"
, prefixName: "발송반송"
, dataGetter: obj => obj["sndngDtls"]
, keys: ["SNDNG_DTL_ID"]
, appendData: true
, infoSize: "md"
, urls: {
load: "/list.do"
, getInfo: "/info.do"
}
, formats: {
SNDNG_YMD: dateFormat
, DUDT_YMD: dateFormat
, LAST_AMT: numberFormat
, DLVR_YMD: dateFormat
, DLVR_TM: timeFormat
, REG_DT: datetimeFormat
, MDFCN_DT: datetimeFormat
}
});
/**************************************************************************
* DatasetControl Events
**************************************************************************/
// Dataset 변경 이벤트
ctrlSndngDtl.onDatasetChange = (obj, option) => {
// 데이터 셋
let dataList = ctrlSndngDtl.dataset;
let empty = dataList.empty;
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].ctrlSndngDtl.setCurrent('{data-index}');")
let trs = empty ?
[ctrlSndngDtl.find("[name='tmpltNotFoundSndngDtl']").innerHTML]
: dataList.inStrings(ctrlSndngDtl.find("[name='tmpltSndngDtlRows']").innerHTML, replacer);
// dataTables(그리드)에 자료 표시 td
$(ctrlSndngDtl.find("[name='tbodySndngDtlList']")).html(trs.join());
};
// 현재 선택 자료 변경 이벤트
ctrlSndngDtl.onCurrentChange = (item) => {
Apply.fromDataset.currentRow(ctrlSndngDtl.dataset, item, ctrlSndngDtl.find("[name='tbodySndngDtlList']"));
if (!item) return;
// 가상계좌번호
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 ? " " + account : "") : null;
})
.filter(txt => txt != null)
.join("\n");
$(ctrlSndngDtl.find("[name='vrActno']")).val(vrActno); // 가상 계좌번호
$(ctrlSndngDtl.find("[name='epaynoMask']")).val(item.getValue("EPAYNO_MASK")); // 전자납부번호
};
// 상세 정보 dialog
ctrlSndngDtl.getInfo = (params) => {
if (!params) return;
ajax.get({
url: wctx.url("/sndb/sndb01/230/info.do")
, data: params || {}
, success: (resp) => {
let dialogName = "sndbkDialog";
let dialogId = dialogName + "-" + uuid();
dialog.open({
id: dialogId
, title: params.btnTitle
, size: ctrlSndngDtl.infoSize
, content: resp
, init: () => {
$("#" + dialogId).attr("name", dialogName);
$("#" + dialogId).attr("data-ref-doctx", pageName);
AppSupport.setDialogZindex();
}
, onClose: () => { pageObject[pageName].fnRefresh(); } // 정보 새로고침
});
}
});
}
// 삭제 callback
ctrlSndngDtl.onRemove = (params, resp) => {
let showMessage = resp.rtnMsg.replace(/[S]|[F]/g, params.btnTitle);
// 메시지 출력
dialog.alert({
content: showMessage
, init: () => { AppSupport.setDialogZindex(); }
, onOK: resp.saved ? undefined : () => { }
, onClose: () => {
if (resp.saved) { pageObject[pageName].fnRefresh(); } // 정보 새로고침
}
});
}
// 삭제
ctrlSndngDtl.remove = (params) => {
if (!params) return;
ajax.post({
url: wctx.url("/sndb/sndb01/220/remove.do")
, data: params || {}
, success: (resp) => { ctrlSndngDtl.onRemove(params, resp); }
});
}
return ctrlSndngDtl;
}
function newSprt02040ControlSV(pageName, doctx="[data-doctx='sprt02040']", mainPageName="sprt02010") {
let ctrlSvbtc = new DatasetControl({
doctx: doctx
, prefix: "svbtc"
, prefixName: "공시송달"
, dataGetter: obj => obj["svbtcDtls"]
, keys: ["SNDNG_DTL_ID"]
, appendData: true
, infoSize: "md"
, urls: {
load: "/list.do"
, getInfo: "/info.do"
}
, formats: {
SNDNG_YMD: dateFormat
, SVBTC_YMD: dateFormat
, REG_DT: datetimeFormat
}
});
/**************************************************************************
* DatasetControl Events
**************************************************************************/
// Dataset 변경 이벤트
ctrlSvbtc.onDatasetChange = (obj, option) => {
// 데이터 셋
let dataList = ctrlSvbtc.dataset;
let empty = dataList.empty;
let replacer = (str, dataItem) => str
.replace(/{onclick}/gi, "pageObject['" + pageName + "'].ctrlSvbtc.setCurrent('{data-index}');")
let trs = empty ?
[ctrlSvbtc.find("[name='tmpltNotFoundSvbtc']").innerHTML]
: dataList.inStrings(ctrlSvbtc.find("[name='tmpltSvbtcRows']").innerHTML, replacer);
// dataTables(그리드)에 자료 표시 td
$(ctrlSvbtc.find("[name='tbodySvbtcList']")).html(trs.join());
};
// 현재 선택 자료 변경 이벤트
ctrlSvbtc.onCurrentChange = (item) => {
Apply.fromDataset.currentRow(ctrlSvbtc.dataset, item, ctrlSvbtc.find("[name='tbodySvbtcList']"));
};
return ctrlSvbtc;
}