Skip to content

Instantly share code, notes, and snippets.

@miyu4u
Created February 24, 2020 16:22
Show Gist options
  • Save miyu4u/8c84c79e36a4e3fc96b21032786a91c0 to your computer and use it in GitHub Desktop.
Save miyu4u/8c84c79e36a4e3fc96b21032786a91c0 to your computer and use it in GitHub Desktop.
국세청 사업자등록상태조회 Promise Wrapper
/**
* 국세청 사업자등록상태조회 Promise Wrapper
*
* 사용으로 인해 발생하는 문제는 모두 사용 당사자에게 있습니다.
*/
function registration() {
if (typeof (WebSquare) == "undefined") throw "국세청 모듈이 존재하지 않습니다.";
var _eventKey = "fetch"
var _actionId = "ATTABZAA001R08"
var public = {
query: function (val) {
return new Promise(function (resolve, reject) {
private.query(val)
window.fn_callBack = private.callback
this.addEventListener(_eventKey, function (e) { e.detail ? resolve(e.detail) : reject(); });
});
}
}
var private = {
/**
* btnSearch_onClick
*
* @param val string
*/
query: function (val) {
validation(val);
var bsnoStr = val.split("-").join("");
var pubcUserNo = nts_getSession("pubcUserNo");
WebSquare.ModelUtil.setInstanceValue("screen/search[@id='s1']/pubcUserNo", pubcUserNo);
WebSquare.ModelUtil.setInstanceValue("screen/search[@id='s1']/mobYn", "N");
WebSquare.ModelUtil.setInstanceValue("screen/search[@id='s1']/inqrTrgtClCd", "1");
WebSquare.ModelUtil.setInstanceValue("screen/search[@id='s1']/txprDscmNo", bsnoStr);
//동코드
WebSquare.ModelUtil.setInstanceValue("screen/search[@id='s1']/dongCode", bsnoStr.substr(3, 2));
WebSquare.ModelUtil.setInstanceValue("screen/search[@id='s1']/psbSearch", "Y");
nts_doService(_actionId);
},
/**
* fn_callBack
*
* @param actionId string
* @param msgArr array
*/
callback: function (actionId, msgArr) {
var response = create.response(msgArr);
var data = flag.is_success(response) ? create.data(response) : null;
var event = create.event(data);
this.dispatchEvent(event);
},
}
var create = {
response: function (msgArr) {
var result = msgArr[0]; // result ==> 메시지 구분 ( "S" : 성공 (메시지 유무 상관 없음) , "E" : 실패 (Exception) )
var msg = msgArr[1]; // msg ==> 메시지 Value (AFT_MESSAGE 테이블) 성공하더라도 메시지코드 추가하지 않으면 메시지 정보 없음;
var code = msgArr[2]; // code ==> 메시지코드 (AFT_MESSAGE 테이블) 성공하더라도 메시지코드 추가하지 않으면 메시지 정보 없음;
var detailMsg = msgArr[3]; // detailMsg ==> 에러메시지 콘솔로그 (에러메시지를 보고싶을 경우) , 성공시에는 메시지 없음!!
return {
"result": result,
"msg": msg,
"code": code,
"detail": detailMsg
}
},
data: function (response) {
var bsnoStr = WebSquare.ModelUtil.getInstanceValue("screen/search[@id='s1']/txprDscmNo");
var bmanRgtStat = WebSquare.ModelUtil.getInstanceValue("screen/search[@id='s2']/trtCntn");
var edtInquiryDate = WebSquare.date.getCurrentServerDate();// 기준일자 추가 2019-08-09
return {
"data": {
"no": bsnoStr,
"stat": bmanRgtStat,
"date": edtInquiryDate,
},
"response": response
}
},
event: function (payload) {
return new CustomEvent(_eventKey, { "detail": payload });
}
}
var flag = {
is_success: function (context) {
return context.result == "S" || context == "S"
}
}
var validation = function (val) {
if (nts_isNull(val)) throw "사업자등록번호를 입력해주세요";
if (!nts_chkBizNo(val)) throw "사업자등록번호 입력형식이 맞지 않습니다.";
}
return public;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment