Created
February 24, 2020 16:22
-
-
Save miyu4u/8c84c79e36a4e3fc96b21032786a91c0 to your computer and use it in GitHub Desktop.
국세청 사업자등록상태조회 Promise Wrapper
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 국세청 사업자등록상태조회 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