cnb.kgibank.com
Open in
urlscan Pro
60.251.29.27
Public Scan
URL:
https://cnb.kgibank.com/B2C/js/b2c.js
Submission: On April 21 via manual from SG — Scanned from SG
Submission: On April 21 via manual from SG — Scanned from SG
Form analysis
0 forms found in the DOMText Content
/** * string format * 例: * alert( 'key:[{0}],value:[{1}]'.f('name','Super Man') ); * 結果 - key:[name],value:[Super Man] * @return format 結果 * @author Shaka 2013.03.12 */ String.prototype.format = String.prototype.f = function () { var txt = this; for(var i=0;i<arguments.length;i++) { var exp = new RegExp('\\{' + (i) + '\\}','gm'); txt = txt.replace(exp,arguments[i]); } return txt; }; /** *IE8無indexOf Method,補上prototype * @author Clark 2016.01.27 */ if (!Array.prototype.indexOf) { Array.prototype.indexOf = function (searchElement /*, fromIndex */ ) { "use strict"; if (this == null) { throw new TypeError(); } var t = Object(this); var len = t.length >>> 0; if (len === 0) { return -1; } var n = 0; if (arguments.length > 1) { n = Number(arguments[1]); if (n != n) { // shortcut for verifying if it's NaN n = 0; } else if (n != 0 && n != Infinity && n != -Infinity) { n = (n > 0 || -1) * Math.floor(Math.abs(n)); } } if (n >= len) { return -1; } var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); for (; k < len; k++) { if (k in t && t[k] === searchElement) { return k; } } return -1; } } var DATAGRID_BODY_SUFFIX_ID = "_DataGridBody"; // 銀行代碼檢核 var bankRegExp = /^\d{7}$/; // ATM銀行代碼檢核 var atmRegExp = /^\d{3}$/; // 他行代碼檢核 var interbankNotRegExp = /^\d{3}0000$/; // 自行代碼檢核 var intrabankRegExp = /^809\d{4}$/; // 帳號檢核 var accountRegExp = /^\d{1,}$/; // 凱基帳號長度 var cosmosAccountRegExp = /^(\d{12}|\d{14}|\d{16})$/; //凱基帳號長度 var payeeCosmosAccountRegExp = /^(\d{12}|\d{14}|\d{15}|\d{16})$/; // 統編檢核 var uidRegExp = /^[\d|a-zA-Z]+$/; // 日期檢核 var dateRegExp = /^\d{4}\/\d{2}\/\d{2}$/; // 電話區碼檢核 var zipRegExp = /^\d{2,4}$/; // 純數字 var numberRegExp = /^\d*$/; // 英數字 (a-z, A-Z, 0-9, _, +) var wordRegExp = /^(\w|\+)*$/; // 外幣收款帳號檢核,欄位不得為中文或不允許字元,僅允許大寫英數字或/ - ? : ( ){ }. , ‘ + 及空格,且第一字元不可為: 與 –"和/和空白 var fxPayeeAcctRegExp = /^[a-zA-Z0-9|\\|\?|\(|\)|\{|\}|\.|\,|\'|\+][a-zA-Z0-9|\/|\-|\?|\:|\(|\)|\{|\}|\.|\,|\'|\+|\s]*$/; //var fxPayeeAcctRegExp = /^[\w|\\|\?|\(|\)|\{|\}|\.|\,|\'|\+|\s][\w|\/|\-|\?|\:|\(|\)|\{|\}|\.|\,|\'|\+|\s]*$/; //var fxPayeeAcctRegExp = /^[a-zA-Z0-9|\\|\?|\(|\)|\{|\}|\.|\,|\'|\+|\s][a-zA-Z0-9|\/|\-|\?|\:|\(|\)|\{|\}|\.|\,|\'|\+|\s]*$/; // 電話檢核 var telRegExp = new RegExp("^[0-9]{6,8}$"); // 行動電話檢核 var mobileRegExp = new RegExp("^[0-9]{10}$"); // email檢核 var emailRegExp = new RegExp("^[\\w-]+([\\.+][\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"); //中文檢核 var chineseRegExp =/[\u4E00-\u9FA5]/; var obuExp = new RegExp("^[A-Za-z]{3}.*$"); // 取得Jsf元件Id function gjid(id) { return getJsfId(getFormId(), id); } // 設定錯誤訊息至id function setErrorMsg(id, msg) { // 找到訊息節點 var span = document.getElementById(id); if(!span){ return true; } // 若有錯誤, 則顯示訊息 (加入子節點) if(msg.length > 0) { span.className = 'error'; span.innerHTML = msg; return false; } else { span.className = 'hide'; span.innerHTML = ''; return true; } } // 設定錯誤訊息至top error area function setTopErrorMsg(msg) { var div = gid('validateErrMsgSet'); // 若有錯誤, 則顯示訊息 (加入子節點) if(msg.length > 0) { div.className = 'error_top'; div.innerHTML = msg; return false; } else { div.className = 'hide'; div.innerHTML = ''; return true; } } // 彈現錯誤訊息 function popupErrorMsg(msg) { // 若有錯誤, 則顯示訊息 (加入子節點) if(msg.length > 0) { alert(msg); return false; } else { return true; } } // 取得id的錯誤訊息 function getErrorMsg(id) { // 找到訊息節點 var span = document.getElementById(id); return span.innerHTML; } // 清除id的錯誤訊息 function clearErrorMsg(id) { setErrorMsg(id, ''); } // 清除所有錯誤訊息 function clearAllErrorMsg() { // 清除伺服端錯誤訊息 clearServerErrorMsg(); // 找到訊息節點 var spans = document.getElementsByTagName("span"); for(var i = 0; i < spans.length; i++) { if (spans[i].className == 'error') { spans[i].className = 'hide'; spans[i].innerHTML = ''; } } } // 清除伺服端錯誤訊息 function clearServerErrorMsg() { var spans = document.getElementsByTagName("span"); for (var i = 0; i < spans.length; i++) { if (spans[i].className == 'error_top') { spans[i].className = 'hide'; spans[i].innerHTML = ''; } } var divs = document.getElementsByTagName("div"); for (var i = 0; i < divs.length; i++) { if (divs[i].className == 'error_top') { divs[i].className = 'hide'; divs[i].innerHTML = ''; } } } // 退件原因Combo連動InputText function onComboRejectReasonClick(combo, input) { var rejectReason = gid(gjid(combo)).value; if (rejectReason == 'none') { rejectReason = ''; } gid(gjid(input)).value = rejectReason; } // 交易資訊: 設定交易結果class // 依據success設定result的class function setResultClass(success, result) { if (!success) { chgClass(gid(result), 'warning'); } } function addIETabOrder() { var links = document.getElementsByTagName('a'); for (var i = 0; i < links.length; i++) { links[i].tabIndex = -1; } } function onAgreeClick(agree, lay) { var agree = gid(gjid(agree)); if (agree.checked) { show(lay, ''); } else { hide(lay); } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBizTime() { if (arguments.length == 2) { return checkBizTimeWithoutDateId(arguments[0], arguments[1]); } else if (arguments.length == 3) { return checkBizTimeWithDateId(arguments[0], arguments[1], arguments[2]); } else { return false; } } /** * 檢核營業時間(台幣單筆交易) * * @param taskId * @param popup * @return */ function checkBizTimeTwdTx() { if (arguments.length == 3) { return checkBizTimeTwdTxWithoutDateId(arguments[0], arguments[1], arguments[2]); } else if (arguments.length == 4) { return checkBizTimeTwdTxWithDateId(arguments[0], arguments[1], arguments[2], arguments[3]); } else { return false; } } /** * 檢核營業時間(台幣整批交易) * * @param taskId * @param popup * @return */ function checkBatchBizTimeTwdTx() { if (arguments.length == 4) { return checkBatchBizTimeTwdTxWithoutDateId(arguments[0], arguments[1], arguments[2], arguments[3]); } else if (arguments.length == 5) { return checkBatchBizTimeTwdTxWithDateId(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]); } else { return false; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBatchBizTime() { if (arguments.length == 3) { return checkBatchBizTimeWithoutDateId(arguments[0], arguments[1], arguments[2]); } else if (arguments.length == 4) { return checkBatchBizTimeWithDateId(arguments[0], arguments[1], arguments[2], arguments[3]); } else { return false; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBatchBizTimeWithoutDateId(companyUid,taskId, popup) { if (popup) { return isBeforeBatchBizTime(companyUid,taskId); } else { return true; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBatchBizTimeWithDateId(companyUid ,nextBizDateId, taskId, popup) { if (popup) { var oldDate = gid(gjid(nextBizDateId)); var newDate = getBatchNextBizDate(companyUid,taskId); if (oldDate.value == newDate) { return true; } else { oldDate.value = newDate; return false; } } else { return true; } } /** * 檢核自行營業時間(台幣整批) * * @param taskId * @param popup * @return */ function checkBatchBizTimeTwdTxWithDateId(companyUid ,nextBizDateId, taskId, popup, intraBank) { if (popup) { var oldDate = gid(gjid(nextBizDateId)); var newDate = ""; if(intraBank){ newDate = getBatchIntraBankNextBizDate(companyUid,taskId); }else{ newDate = getBatchNextBizDate(companyUid,taskId); } if (oldDate.value == newDate) { return true; } else { oldDate.value = newDate; return false; } } else { return true; } } /** * 檢核自行營業時間(台幣單筆) * * @param nextBizDateId * @param taskId * @param popup * @param intraBank * @return */ function checkBizTimeTwdTxWithDateId(nextBizDateId, taskId, popup, intraBank) { if (popup) { var oldDate = gid(gjid(nextBizDateId)); var newDate = getIntraBankNextBizDate(taskId,intraBank); if (oldDate.value == newDate) { return true; } else { oldDate.value = newDate; return false; } } else { return true; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBizTimeWithoutDateId(taskId, popup) { if (popup) { return isBeforeBizTime(taskId); } else { return true; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBizTimeTwdTxWithoutDateId(taskId, popup, isTrabank) { if (popup) { return isBeforeBizTimeTwdTx(taskId,isTrabank); } else { return true; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBatchBizTimeTwdTxWithoutDateId(companyUid, taskId, popup, isTrabank) { if (popup) { return isBeforeBatchBizTimeTwdTx(taskId,isTrabank, companyUid); } else { return true; } } /** * 檢核營業時間 * * @param taskId * @param popup * @return */ function checkBizTimeWithDateId(nextBizDateId, taskId, popup) { if (popup) { var oldDate = gid(gjid(nextBizDateId)); var newDate = getNextBizDate(taskId); window.console && console.log('>> field value = ' + oldDate); window.console && console.log('>> ajax value = ' + newDate); if (oldDate.value == newDate) { return true; } else { oldDate.value = newDate; return false; } } else { return true; } } /** * Check User ID / Password Sample : checkUserIDPassword(txtUserPassword, * "options={length:[6, * 20],lower:1,upper:1,numeric:1,special:0,badWords:['password','steven','levithan'],badSequenceLength:3}"); */ function checkUserIDPassword (pw, optionParam) { var options; eval(optionParam); // default options (allows any password) var o = { lower: 0, upper: 0, alpha: 0, /* lower + upper */ numeric: 0, special: 0, length: [0, Infinity], custom: [ /* regexes and/or functions */ ], badWords: [], badSequenceLength: 0, noQwertySequences: false, noSequential: false, badSameChar: false }; for (var property in options) o[property] = options[property]; // for (var property in o) // alert(o[property]); var re = { lower: /[a-z]/g, upper: /[A-Z]/g, alpha: /[A-Z]/gi, numeric: /[0-9]/g, special: /[\W_]/g }, rule, i; // enforce min/max length if (pw.length < o.length[0] || pw.length > o.length[1]) return false; // check has full char if (hasFullChar(pw)) { return false; } // 僅英數字 var idRegExp = /^[0-9a-zA-Z]*$/; if (!idRegExp.exec(pw)) { return false; } // enforce lower/upper/alpha/numeric/special rules for (rule in re) { if ((pw.match(re[rule]) || []).length < o[rule]) return false; } // enforce word ban (case insensitive) /* * for (i = 0; i < o.badWords.length; i++) { if * (pw.toLowerCase().indexOf(o.badWords[i].toLowerCase()) > -1) return * false; } */ for (i = 0; i < o.badWords.length; i++) { if (pw.toLowerCase() == o.badWords[i].toLowerCase()) return false; } // enforce the no sequential, identical characters rule if (o.noSequential && /([\S\s])\1/.test(pw)) return false; // 相同英數字 if (o.badSameChar) { var count = 1; for (i = 0; i < pw.length-1; i++) { if (pw.charAt(i) == pw.charAt(i+1)){ count ++; } } if (pw.length == count) { return false; } } // enforce alphanumeric/qwerty sequence ban rules if (o.badSequenceLength) { var lower = "abcdefghijklmnopqrstuvwxyz", upper = lower.toUpperCase(), numbers = "0123456789", qwerty = "qwertyuiopasdfghjklzxcvbnm", start = o.badSequenceLength - 1, seq = "_" + pw.slice(0, start); for (i = start; i < pw.length; i++) { seq = seq.slice(1) + pw.charAt(i); if ( lower.indexOf(seq) > -1 || upper.indexOf(seq) > -1 || numbers.indexOf(seq) > -1 || (o.noQwertySequences && qwerty.indexOf(seq) > -1) ) { return false; } } } if (o.badSequenceLength) { var lower = "zyxwvutsrqponmkjihgfedcba", upper = lower.toUpperCase(), numbers = "0987654321", qwerty = "mnbvcxzlkjhgfdsapoiuytrewq", start = o.badSequenceLength - 1, seq = "_" + pw.slice(0, start); for (i = start; i < pw.length; i++) { seq = seq.slice(1) + pw.charAt(i); if ( lower.indexOf(seq) > -1 || upper.indexOf(seq) > -1 || numbers.indexOf(seq) > -1 || (o.noQwertySequences && qwerty.indexOf(seq) > -1) ) { return false; } } } // enforce custom regex/function rules for (i = 0; i < o.custom.length; i++) { rule = o.custom[i]; if (rule instanceof RegExp) { if (!rule.test(pw)) return false; } else if (rule instanceof Function) { if (!rule(pw)) return false; } } // great success! return true; } /** * 取得 byte 長度 */ function byteLength(val){ var num = 0; for(i=0,len = val.length; i<len; i++){ var charByte = val.charCodeAt(i) > 255 ? 2:1; num += charByte; } return num; } /** * * @param val * @return */ function hasFullChar(val){ var num = 0; for(i=0,len = val.length; i<len; i++){ if (val.charCodeAt(i) > 255) { return true; } } return false; } /** * email檢核 */ function checkMutilEmail(email) { if (email == null || email.length == 0) { return false; } var str_array = email.split(";"); for(var i=0;i<str_array.length;i++){ if(checkEmail(str_array[i])==false){ return false; } } return true; } /** * email檢核 */ function checkEmail(email) { if(/^([a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?)$/.test(email)==false){ return false; } return true; } /** * 數值檢核 */ function isNumber (str) { if (str.length == 0) return true; re = /^[0-9]+$/ return str.match(re); } /** * 另開視窗(可支援Print) url : 子視窗頁面url width : 子視窗頁面寬度 height : 子視窗頁面高度 */ function openPrintModalDialog(url, width, height) { return openModalDialog(url, width, height, ''); } /** * 另開視窗 aURL : 子視窗頁面url aWidth : 子視窗頁面寬度 aHeight : 子視窗頁面高度 aArgs : JS傳遞變數 */ function openModalDialog(url, width, height, args) { var currentTime = new Date(); if (url.indexOf("?") > -1) { url += "&Timestamp=" + currentTime.getTime(); } else { url += "?Timestamp=" + currentTime.getTime(); } var strFeatures = "dialogWidth=" + width + "px; dialogHeight=" + height + "px; resizable='yes'; scrollbars='yes'; center='yes'; help='no'; status='no'"; var strAgrs={"parent":window,"args":args}; //return window.showModalDialog(url, strAgrs, strFeatures); var resizable = "yes"; var scroll = "yes"; var status = "no"; // get the modal specs var mdattrs = strFeatures.split(";"); for (i = 0; i < mdattrs.length; i++) { var mdattr = mdattrs[i].split(":"); var n = mdattr[0]; var v = mdattr[1]; if (n) { n = n.trim().toLowerCase(); } if (v) { v = v.trim().toLowerCase(); } if (n == "dialogheight") { height = v.replace("px", ""); } else if (n == "dialogwidth") { width = v.replace("px", ""); } else if (n == "resizablea") { resizable = v; } else if (n == "scroll") { scroll = v; } else if (n == "status") { status = v; } } var isNestOpen = args; var targetWin = window.open(url, '', 'toolbar=no, location=no, directories=no, status=' + status + ', menubar=no, scrollbars=' + scroll + ', resizable=' + resizable + ', copyhistory=no, width=' + width + ', height=' + height + ', center=yes' ); targetWin.focus(); return targetWin; } /** * 另開視窗(可支援Print) url : 子視窗頁面url width : 子視窗頁面寬度 height : 子視窗頁面高度 */ function openPdfDialog(url, width, height) { var strFeatures = "width=" + width + "px,height=" + height + "px,resizable=yes,scrollbars=yes,center=yes,help=no,status=no"; return window.open(url, "", strFeatures); } // /** // * 是否為 yyyy/MM/dd 的有效日期 // * @param sDate // * @return // */ // function isDate(sDate) { // if (dateRegExp.exec(sDate)) { // var dArr = sDate.split("/"); // var d = new Date(dArr[1]+"/"+dArr[2]+"/"+dArr[0]); // return d.getFullYear() == dArr[0] && d.getMonth() + 1 == dArr[1] && // d.getDate() == dArr[2]; // } // else { // return false; // } // } // // /** // * 將 yyyy/MM/dd 的日期字串轉為 Date // * @param sDate // * @return // */ // function getDate(sDate) { // if (isDate(sDate)) { // var dArr = sDate.split("/"); // return new Date(dArr[1]+"/"+dArr[2]+"/"+dArr[0]); // } // else { // return null; // } // } // 全部展開Tree function doTreeOpenAll(){ var treeArr = creatTreeArray(); for( k = 0 ; k < treeArr.length ; k++){ var tree1 = document.getElementById(treeArr[k]); var nodes = tree1.childNodes; doTreeOpen(nodes); } var chk_hd = document.getElementsByName('chk_hd'); for(var j=0; j<chk_hd.length; j++){ chk_hd[j].className = 'collapse1'; } } function creatTreeArray(){ var treeArr = new Array(); var dl = document.forms[0].getElementsByTagName('dl'); for(i = 0; i < dl.length ; i++){ var id = dl[i].id; if(id != '' && id.indexOf('tree') != -1){ treeArr.push(id); } } return treeArr; } function doTreeOpen(nodes){ var dtSet=false; var ddSet=false; for(var i = 0 ; i < nodes.length ; i++){ // alert("i: "+i+" nodes : "+nodes[i].nodeName); if(nodes[i].nodeName == 'DT'){ nodes[i].className = 'current'; dtSet=true; }else if(nodes[i].nodeName =='DD') { nodes[i].className = 'current'; ddSet=true; } if(dtSet && ddSet){ break; } } resizeHeight(); // resizeFrame(); } // 凱基帳號檢核 function checkCosmosAccount(accountNo) { // 帳號規則:共14碼或12碼 // 虛擬帳號有16碼 if (accountNo.length != 16 && accountNo.length != 14 && accountNo.length != 12) { return false; } var tmp; // 舊帳號檢核邏輯 if(accountNo.length == 12 || (accountNo.length == 14 && accountNo.substr(0,2) == "00")){ if(accountNo.length == 14){ accountNo = accountNo.substr(2,12); } //2014.09.10 updated by alf //依申請單編號:1030800271 主旨:凱基期貨虛擬帳號。 //調整帳號規則:6及7開頭者視為虛擬帳號,企網銀前端不檢核,由後端主機檢核。 // 2開頭者視為虛擬帳號 if (accountNo.substr(0,1) == "2" || accountNo.substr(0,1) == "6" || accountNo.substr(0,1) == "7") { return true; } // 台幣帳號檢核邏輯 // 檢碼N12 = 10 – (SUM MOD 10) // SUM = N1 *3 + N2 *7 + N3 *1 + N4 *3 + N5 *7 + N6 *1 + N7 *3 + N8 *7 + N9 // *1 + N10*3 + N11*7 var tmp = new String("37137137137"); var sum = 0; for (var i = 0; i < 11; i++) { s1 = parseInt(accountNo.substr(i,1)); s2 = parseInt(tmp.substr(i,1)); sum += s1*s2; } var calculate = 10 - (sum % 10); var check = parseInt(accountNo.substr(11,1)); // 若除10餘0,則取0 if (calculate == 10) { calculate = 0; } return calculate == check; } else if (accountNo.length == 14){ // 新帳號檢核邏輯 //3,4,5開頭者視為虛擬帳號 if (accountNo.substr(0,1) == "3" || accountNo.substr(0,1) == "4" || accountNo.substr(0,1) == "5") { return true; } // 00620_分戶帳 / 00650_凱證DSU if (accountNo.substr(0,5) == "00620" || accountNo.substr(0,5) == "00650") { return true; } // 信用卡 888+ID if (accountNo.substr(0,3) == "888") { return true; } // 檢碼N16 = 10 – (SUM MOD 10) // SUM = N1 *0 + N2 *0 + N3 *7 + N4 *1 + N5 *3 + N6 *7 + N7 *1 + N8 *3 + N9 // *7 + N10*1 + N11*3 + N12*7 + N13*1 + N14*3 + N15*7 tmp = new String("7137137137137"); var sum = 0; for (var i = 0; i < 13; i++) { s1 = parseInt(accountNo.substr(i,1)); s2 = parseInt(tmp.substr(i,1)); sum += s1*s2; } var calculate = 10 - (sum % 10); var check = parseInt(accountNo.substr(13,1)); // 若除10餘0,則取0 if (calculate == 10) { calculate = 0; } // "新帳號"之檢查碼逢4變8 if (calculate == 4){ calculate = 8; } return calculate == check; } else { // 16碼檢核邏輯 // 7,8,9開頭者視為虛擬帳號 if (accountNo.substr(0,1) == "7" || accountNo.substr(0,1) == "8" || accountNo.substr(0,1) == "9") { return true; } // 貸款 555886 if (accountNo.substr(0,6) == "555886") { return true; } } return false; } //凱基帳號檢核 function checkCosmosPayeeAccount(accountNo) { if (accountNo.length == 15) { return true; } // 帳號規則:共14碼或12碼 // 虛擬帳號有16碼 if (accountNo.length != 16 && accountNo.length != 14 && accountNo.length != 12) { return false; } var tmp; // 舊帳號檢核邏輯 if(accountNo.length == 12 || (accountNo.length == 14 && accountNo.substr(0,2) == "00")){ if(accountNo.length == 14){ accountNo = accountNo.substr(2,12); } //2014.09.10 updated by alf //依申請單編號:1030800271 主旨:凱基期貨虛擬帳號。 //調整帳號規則:6及7開頭者視為虛擬帳號,企網銀前端不檢核,由後端主機檢核。 // 2開頭者視為虛擬帳號 if (accountNo.substr(0,1) == "2" || accountNo.substr(0,1) == "6" || accountNo.substr(0,1) == "7") { return true; } // 台幣帳號檢核邏輯 // 檢碼N12 = 10 – (SUM MOD 10) // SUM = N1 *3 + N2 *7 + N3 *1 + N4 *3 + N5 *7 + N6 *1 + N7 *3 + N8 *7 + N9 // *1 + N10*3 + N11*7 var tmp = new String("37137137137"); var sum = 0; for (var i = 0; i < 11; i++) { s1 = parseInt(accountNo.substr(i,1)); s2 = parseInt(tmp.substr(i,1)); sum += s1*s2; } var calculate = 10 - (sum % 10); var check = parseInt(accountNo.substr(11,1)); // 若除10餘0,則取0 if (calculate == 10) { calculate = 0; } return calculate == check; } else if (accountNo.length == 14){ // 新帳號檢核邏輯 //3,4,5開頭者視為虛擬帳號 if (accountNo.substr(0,1) == "3" || accountNo.substr(0,1) == "4" || accountNo.substr(0,1) == "5") { return true; } // 00620_分戶帳 / 00650_凱證DSU if (accountNo.substr(0,5) == "00620" || accountNo.substr(0,5) == "00650") { return true; } // 信用卡 888+ID if (accountNo.substr(0,3) == "888") { return true; } // 檢碼N16 = 10 – (SUM MOD 10) // SUM = N1 *0 + N2 *0 + N3 *7 + N4 *1 + N5 *3 + N6 *7 + N7 *1 + N8 *3 + N9 // *7 + N10*1 + N11*3 + N12*7 + N13*1 + N14*3 + N15*7 tmp = new String("7137137137137"); var sum = 0; for (var i = 0; i < 13; i++) { s1 = parseInt(accountNo.substr(i,1)); s2 = parseInt(tmp.substr(i,1)); sum += s1*s2; } var calculate = 10 - (sum % 10); var check = parseInt(accountNo.substr(13,1)); // 若除10餘0,則取0 if (calculate == 10) { calculate = 0; } // "新帳號"之檢查碼逢4變8 if (calculate == 4){ calculate = 8; } return calculate == check; } else { // 16碼檢核邏輯 // 7,8,9開頭者視為虛擬帳號 if (accountNo.substr(0,1) == "7" || accountNo.substr(0,1) == "8" || accountNo.substr(0,1) == "9") { return true; } // 貸款 555886 if (accountNo.substr(0,6) == "555886") { return true; } } return false; } // 統編/身份證號檢核 function checkUid(uid) { if (uid.length == 8) { if(obuExp.exec(uid)) { return true; } else { return checkCompanyUid(uid); } } else if (uid.length == 10) { if(obuExp.exec(uid)) { return true; } else { return checkPersonUid(uid); } } else if (uid.length == 11) { return true; } else { return false; } } function checkCompanyUid(uid) { // 公司統編需為8碼數字 re = /^\d{8}$/; if (!re.test(uid)) { return false; }else{ //--2023/01/09 取消企網銀統一編號檢核 by Nathan return true; } /* // 公司統編檢核邏輯 var tmp = new String("12121241"); var sum = 0; for (i=0; i< 8; i++) { s1 = parseInt(uid.substr(i,1)); s2 = parseInt(tmp.substr(i,1)); sum += cal(s1*s2); } if (sum % 10 == 0) { return true; } else if (uid.substr(6,1) == "7" && (sum + 1) % 10 == 0) { return true; } else { return false; }*/ } function cal(n) { var sum=0; while (n!=0) { sum += (n % 10); n = (n - n%10) / 10; // 取整數 } return sum; } function checkPersonUid(uid){ var UPPERCASE = "ABCDEFGHJKLMNPQRSTUVXYWZIO"; // 請注意W的位置,I和O二字母置最未 var d1 = UPPERCASE.indexOf(uid.substr(0,1)) + 10; var d2 = UPPERCASE.indexOf(uid.substr(1,1)) % 10; re1 = /^[A-Z][1,2][0-9]{8}$/; re2 = /^[A-Z][A-D][0-9]{8}$/; // 身份證字號 (國人) if (re1.test(uid)) { uid = d1 + uid.substring(1,10); } // 統一證號 (外國人) else if (re2.test(uid)) { uid = d1 + "" + d2 + uid.substring(2,10); } else { return false; } // checksum var checksum_id = parseInt(uid.substr(0,1)) * 1 ; for (i=1; i<=9; i++) { checksum_id += parseInt(uid.substr(i,1)) * (10-i) ; } checksum_id = checksum_id % 10; // 若除10餘0,則取0 if (checksum_id > 0) { checksum_id = 10-checksum_id; } return checksum_id == parseInt(uid.substr(10,1)); } /** * 依據ComboValue取得Account物件 */ function Account(comboValue) { this.ACCOUNT_DELIM = '$$$'; if(comboValue == 'none' || comboValue.length == 0) { this.values = new Array("", ""); } else { this.values = comboValue.split(this.ACCOUNT_DELIM); } // 鍵值 this.companyAccountKey = this.values[0]; // 帳號 this.accountNo = this.values[1]; // 是否顯示餘額 this.isBalance = (this.values[2] == "1"); // 是否擁有轉帳權限 this.isTx = (this.values[3] == "2"); // TODO 新核心 需加入科目別以方便畫面上判斷所需 if(this.values.length == 5){ // 科目別 this.ledger = this.values[4]; } } /** * 取得Payee物件 */ function Payee() { // this.ACCOUNT_DELIM = '$$$'; // if(comboValue == 'none' || comboValue.length == 0) { // this.values = new Array("", ""); // } // else { // this.values = comboValue.split(this.ACCOUNT_DELIM); // } // // 鍵值 // this.companyAccountKey = this.values[0]; // // 帳號 // this.accountNo = this.values[1]; // // 是否顯示餘額 // this.isBalance = (this.values[2] == "1"); // // 是否擁有轉帳權限 // this.isTx = (this.values[3] == "2"); // 付款通路 this.payerKind = "0"; // 收款銀行 this.payeeBankId = ""; // 收款帳號 this.payeeAccountNo = ""; // 收款統編 this.payeeUid = ""; // 收款戶名 this.payeeName = ""; // 收款Mail this.payeeMail = ""; // 手續費負擔 this.chargeAmtType = "0"; // 帳戶別名 this.payeeAccountAlias = ""; } /** * 取得FxPayee物件 */ function FxPayee() { // this.ACCOUNT_DELIM = '$$$'; // if(comboValue == 'none' || comboValue.length == 0) { // this.values = new Array("", ""); // } // else { // this.values = comboValue.split(this.ACCOUNT_DELIM); // } // // 鍵值 // this.companyAccountKey = this.values[0]; // // 帳號 // this.accountNo = this.values[1]; // // 是否顯示餘額 // this.isBalance = (this.values[2] == "1"); // // 是否擁有轉帳權限 // this.isTx = (this.values[3] == "2"); // 付款通路 this.payerKind = "0"; // 收款帳號 this.payeeAccountNo = ""; // 收款戶名 this.payeeName1 = ""; this.payeeName2 = ""; // 收款Mail this.payeeMail = ""; // 帳戶別名 this.payeeAccountAlias = ""; // 收款人地址 this.payeeAddress1 = ""; this.payeeAddress2 = ""; //收款人電話 this.payeeTel =""; //收款銀行名稱 this.payeeBankName1=""; this.payeeBankName2=""; //收款銀行地址 this.payeeBankAdd1=""; this.payeeBankAdd2=""; //CNAPS this.cnaps=""; //收款銀行國別 this.payeeBankNation=""; //匯出匯款方式 this.remitType=""; //費用負擔別 this.feeType="0"; //付款附言 this.memo1=""; this.memo2=""; this.memo3=""; this.memo4=""; } /** * 隱藏網頁物件 */ function hide(id) { var element = gid(id); element.className = 'hide'; // resize resizeHeight(); } /** * 顯示網頁物件 */ function show(id, className) { var element = gid(id); element.className = className; // resize resizeHeight(); } /** * 轉為半形字 */ function asc(text){ var asciiTable = "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "; var big5Table = "%uFF01%u201D%uFF03%uFF04%uFF05%uFF06%u2019%uFF08%uFF09%uFF0A%uFF0B%uFF0C%uFF0D%uFF0E%uFF0F%uFF10%uFF11%uFF12%uFF13%uFF14%uFF15%uFF16%uFF17%uFF18%uFF19%uFF1A%uFF1B%uFF1C%uFF1D%uFF1E%uFF1F%uFF20%uFF21%uFF22%uFF23%uFF24%uFF25%uFF26%uFF27%uFF28%uFF29%uFF2A%uFF2B%uFF2C%uFF2D%uFF2E%uFF2F%uFF30%uFF31%uFF32%uFF33%uFF34%uFF35%uFF36%uFF37%uFF38%uFF39%uFF3A%uFF3B%uFF3C%uFF3D%uFF3E%uFF3F%u2018%uFF41%uFF42%uFF43%uFF44%uFF45%uFF46%uFF47%uFF48%uFF49%uFF4A%uFF4B%uFF4C%uFF4D%uFF4E%uFF4F%uFF50%uFF51%uFF52%uFF53%uFF54%uFF55%uFF56%uFF57%uFF58%uFF59%uFF5A%uFF5B%uFF5C%uFF5D%uFF5E%u3000"; var result = ""; for (var i = 0; i < text.length; i++) { var val = escape(text.charAt(i)); var j = big5Table.indexOf(val); result += (((j > -1) && (val.length == 6)) ? asciiTable.charAt(j / 6) : text.charAt(i)); } return result; } /** * 轉為全形字 */ function unAsc(text) { var asciiTable = "!\"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ "; var big5Table = "%uFF01%u201D%uFF03%uFF04%uFF05%uFF06%u2019%uFF08%uFF09%uFF0A%uFF0B%uFF0C%uFF0D%uFF0E%uFF0F%uFF10%uFF11%uFF12%uFF13%uFF14%uFF15%uFF16%uFF17%uFF18%uFF19%uFF1A%uFF1B%uFF1C%uFF1D%uFF1E%uFF1F%uFF20%uFF21%uFF22%uFF23%uFF24%uFF25%uFF26%uFF27%uFF28%uFF29%uFF2A%uFF2B%uFF2C%uFF2D%uFF2E%uFF2F%uFF30%uFF31%uFF32%uFF33%uFF34%uFF35%uFF36%uFF37%uFF38%uFF39%uFF3A%uFF3B%uFF3C%uFF3D%uFF3E%uFF3F%u2018%uFF41%uFF42%uFF43%uFF44%uFF45%uFF46%uFF47%uFF48%uFF49%uFF4A%uFF4B%uFF4C%uFF4D%uFF4E%uFF4F%uFF50%uFF51%uFF52%uFF53%uFF54%uFF55%uFF56%uFF57%uFF58%uFF59%uFF5A%uFF5B%uFF5C%uFF5D%uFF5E%u3000"; var result = ""; for ( var i = 0 ; i < text.length ; i ++ ) { var val = text.charAt(i) ; var j = asciiTable.indexOf(val) * 6 ; result += ( j > -1 ? unescape(big5Table.substring( j , j + 6 ) ) : val ); } return result; } /** * 將Input欄位設定為全形字 */ function setUnAsc(id) { var object = gid(gjid(id)); object.value = unAsc(object.value); } /** * 判斷字串是否為空 */ function isEmpty(str) { if (str == null) { return true; } else if (str == '') { return true; } else { return false; } } String.prototype.trim = function() { // Use a regular expression to replace leading and trailing // spaces with the empty string return this.replace(/(^\s+)|(\s+$)/g, ""); } // pads left String.prototype.lpad = function(padString, length) { var str = this; while (str.length < length) { str = padString + str; } return str; } // pads right String.prototype.rpad = function(padString, length) { var str = this; while (str.length < length) { str = str + padString; } return str; } Date.prototype.addMonth = function(interval) { var month = (this.getMonth() + interval) %12; var date = this.getDate(); this.setMonth(this.getMonth() + interval); if(date != this.getDate()) { var newDate = new Date(this.getFullYear(), month + 1, 0); this.setMonth(0); this.setDate(newDate.getDate()); this.setMonth(newDate.getMonth()); } } Date.prototype.addDate = function(interval) { this.setDate(this.getDate() + interval); } Date.prototype.clearTime = function() { this.setHours(0); this.setMinutes(0); this.setSeconds(0); this.setMilliseconds(0); } // 將日期物件轉換為字串 (YYYY/MM/DD) Date.prototype.toString = function() { var year = ""; var month = new String(this.getMonth() + 1).lpad("0", 2); var day = new String(this.getDate()).lpad("0", 2); year = new String(this.getFullYear()).lpad("0", 4); return year + "/" + month + "/" + day; } //利用Byte單位來計算字串長度,中文字(4),英文字(4),總共(8) String.prototype.Blength = function() { var arr = this.match(/[^\x00-\xff]/ig); return arr == null ? this.length : this.length + arr.length; } // 將字串 (YYYY/MM/DD)轉換為日期物件 function getDate(isoDateString) { var array = isoDateString.split("/"); if(array.length != 3) { return null; } var year = parseInt(array[0].replace(/^[0]*/, "")); var month = parseInt(array[1].replace(/^[0]*/, "")) - 1; var day = parseInt(array[2].replace(/^[0]*/, "")); var date = new Date(year, month, day); return date; } // 檢查字串是否為正確之日期 function isValidDateString(isoDateString) { // 將字串轉換為日期 var date = getDate(isoDateString); // 檢查日期是否轉換成功(為null則失敗) if (date == null) { return false; } // 檢查日期是否與輸入字串完全一致 // 如: 2011/02/29 -轉換-> 2011/03/01 則不一致 if (isoDateString != date.toString()) { return false; } else { return true; } } /******************************************************************************* * * 檢核共用API * ******************************************************************************/ // 取得檢核訊息Id // validate + 欄位Id (首字轉大寫) function getValidateId(id) { var str = id.substr(0,1).toUpperCase(); str += id.substr(1, id.length - 1); str = "validate" + str; return str; } /** * 檢核錯誤 * * 1. 清除Server錯誤訊息 * 2. 重設高度 * 3. 捲動至最頂端 */ function validateError() { clearServerErrorMsg(); resizeHeight(); if(parent.document != undefined){ parent.document.documentElement.scrollTop = 0; } } /** * 小寫轉大寫 */ function toUpCase(id){ var object = gid(gjid(id)); object.value = object.value.toUpperCase(); } // 檢核至少勾選一筆 (Popup) function validateCheck(checkBoxKey) { // 無CheckBox, 不需檢核 if (isEmpty(checkBoxKey)) { return true; } var checks = getCheckboxValue(checkBoxKey); if (checks == null) { popupErrorMsg('請至少勾選一筆交易'); return false; } return true; } /******************************************************************************* * * 退件檢核 * ******************************************************************************/ function validateReject(rejectReason_Id, checkBoxKey) { var rejectReason = getValue(gjid('rejectReason')); var validateRejectReason_Id = getValidateId(rejectReason_Id); var result = true; // 檢核至少勾選一筆 (Popup) if (!validateCheck(checkBoxKey)) { return false; } // 確定退件回原編輯人員 (Confirm) if (!validateConfirmReject()) { return false; } // 檢核退件原因 if (!validateRejectReason(rejectReason, validateRejectReason_Id)) { result = false; } if (!result) { validateError(); } return result; } /******************************************************************************* * * 退件檢核 * ******************************************************************************/ function validateRejectCancel(rejectReason_Id, checkBoxKey) { var rejectReason = getValue(gjid('rejectReason')); var validateRejectReason_Id = getValidateId(rejectReason_Id); var result = true; // 檢核至少勾選一筆 (Popup) if (!validateCheck(checkBoxKey)) { return false; } // 確定退件回原編輯人員 (Confirm) if (!validateConfirmRejectCancel()) { return false; } // 檢核退件原因 if (!validateRejectReason(rejectReason, validateRejectReason_Id)) { result = false; } if (!result) { validateError(); } return result; } // 確定退件回原編輯人員 (Confirm) function validateConfirmReject() { return confirm('確定退件回原編輯人員?'); } //確定退件回原編輯人員 (Confirm) function validateConfirmRejectCancel() { return confirm('【請注意!】該筆交易尚未完成註銷程序,以下請務必確認: 若確要「註銷交易」,請按【取消】鍵,並將該註銷交易選擇【審核/放行】以完成註銷程序;若確要「取消註銷」,請按【確定】鍵,該註銷交易將退回原編輯人員不做任何調整。'); } // 檢核退件原因 function validateRejectReason(rejectReason, validateRejectReason_Id) { clearErrorMsg(validateRejectReason_Id); if (rejectReason == '') { setErrorMsg(validateRejectReason_Id, '請輸入退件原因'); return false; } return true; } /******************************************************************************* * * 刪除檢核 * ******************************************************************************/ function validateDelete(checkBoxKey) { var result = true; // 檢核至少勾選一筆 (Popup) if (!validateCheck(checkBoxKey)) { return false; } // 確定刪除交易資料 (Confirm) if (!validateConfirmDelete(checkBoxKey)) { return false; } if (!result) { validateError(); } return result; } // 確定刪除交易資料 (Confirm) function validateConfirmDelete(checkBoxKey) { // 無法選擇 (單筆) if (isEmpty(checkBoxKey)) { return confirm('確定刪除此筆交易資料?'); } // 多選 else { var checks = getCheckboxValue(checkBoxKey); var count = checks.length; return confirm('確定刪除' + count + '筆交易資料?'); } } //確定刪除交易資料 (Confirm) function validateTemplateelete(TemplateName) { return confirm('確定刪除範本 '+TemplateName+'?'); } function validateBatchDelete(checkBoxKey) { var result = true; // 檢核至少勾選一筆 (Popup) if (!validateCheck(checkBoxKey)) { return false; } // 確定刪除交易資料 (Confirm) if (!validateBatchConfirmDelete(checkBoxKey)) { return false; } if (!result) { validateError(); } return result; } // 確定刪除整批交易資料 (Confirm) function validateBatchConfirmDelete(checkBoxKey) { // 無法選擇 (單批) if (isEmpty(checkBoxKey)) { return confirm('確定刪除此批交易資料?'); } // 多選 else { var checks = getCheckboxValue(checkBoxKey); var count = checks.length; return confirm('確定刪除' + count + '批交易資料?'); } } /******************************************************************************* * * 常用收款人檢核 * ******************************************************************************/ // 檢核常用收款人資料 function validateCommonPayee(payerKind_Id, payeeBankId_Id, payeeAccountNo_Id, payeeName_Id , payeeMail_Id, payeeUid_Id) { var payerKind = getRadioValue(gjid(payerKind_Id)); var payeeBankId = getValue(gjid(payeeBankId_Id)); var payeeAccountNo = getValue(gjid(payeeAccountNo_Id)); var payeeName = getValue(gjid(payeeName_Id)); var payeeMail = getValue(gjid(payeeMail_Id)); var payeeUid = getValue(gjid(payeeUid_Id)); var validatePayerKind_Id = getValidateId(payerKind_Id); var validatePayeeBankId_Id = getValidateId(payeeBankId_Id); var validatePayeeAccountNo_Id = getValidateId(payeeAccountNo_Id); var validatePayeeName_Id = getValidateId(payeeName_Id); var validatePayeeMail_Id = getValidateId(payeeMail_Id); var validatePayeeUid_Id = getValidateId(payeeUid_Id); var result = true; // 檢核付款通路 if (!validateCommonPayee_PayerKind(payerKind, validatePayerKind_Id)) { result = false; } // 檢核收款銀行 if (!validateCommonPayee_PayeeBankId(payeeBankId, validatePayeeBankId_Id, payerKind)) { result = false; } // 檢核收款帳號 if (!validateCommonPayee_PayeeAccountNo(payeeAccountNo, validatePayeeAccountNo_Id, payerKind)) { result = false; } // 檢核收款人戶名 if (!validateCommonPayee_PayeeName(payeeName, validatePayeeName_Id, payerKind)) { result = false; } // 檢核收款人Mail if (!validateTxDetail_PayeeMail(payeeMail, validatePayeeMail_Id)) { result = false; } // 檢核收款人統編 if (!validateCommonPayee_PayeeUid(payeeUid, validatePayeeUid_Id)) { result = false; } if (!result) { validateError(); } return result; } // 檢核付款通路 function validateCommonPayee_PayerKind(payerKind, validatePayerKind_Id) { clearErrorMsg(validatePayerKind_Id); // 若付款通路為空白,顯示錯誤訊息『請選擇付款通路』 if (payerKind < 1 || payerKind > 2) { setErrorMsg(validatePayerKind_Id, '請選擇付款通路'); return false; } return true; } // 檢核收款銀行 function validateCommonPayee_PayeeBankId(payeeBankId, validatePayeeBankId_Id, payerKind) { clearErrorMsg(validatePayeeBankId_Id); // 若付款通路為跨行匯款,但收款銀行為空白,顯示錯誤訊息『請輸入收款銀行』 if (payeeBankId == '') { setErrorMsg(validatePayeeBankId_Id, '請輸入收款銀行'); return false; } if (!bankRegExp.exec(payeeBankId)) { setErrorMsg(validatePayeeBankId_Id, '收款銀行須為7碼數字'); return false; } // 若付款通路為跨行匯款,但收款銀行代號前3碼為809,顯示錯誤訊息『跨行匯款時,收款銀行代號不可為809凱基銀行代碼』 if (payerKind == 2 && intrabankRegExp.exec(payeeBankId)) { setErrorMsg(validatePayeeBankId_Id, '跨行匯款時,收款銀行代號不可為809凱基銀行代碼'); return false; } // 若付款通路為跨行匯款,但收款銀行後4碼為0000(通匯行必須要有分行代碼),顯示錯誤訊息『收款銀行錯誤』 if (payerKind == 2 && interbankNotRegExp.exec(payeeBankId)) { setErrorMsg(validatePayeeBankId_Id, '收款銀行錯誤'); return false; } return true; } // 檢核收款帳號 function validateCommonPayee_PayeeAccountNo(payeeAccountNo, validatePayeeAccountNo_Id, payerKind) { clearErrorMsg(validatePayeeAccountNo_Id); // 若收款帳號為空白,顯示錯誤訊息『請輸入收款帳號』 if (payeeAccountNo == '') { setErrorMsg(validatePayeeAccountNo_Id, '請輸入收款帳號'); return false; } // 若收款帳號不是輸入數字,顯示錯誤訊息『收款帳號須為數字』。 if (!accountRegExp.exec(payeeAccountNo)) { setErrorMsg(validatePayeeAccountNo_Id, '收款帳號須為數字'); return false; } // 若付款通路為自行轉帳,但「收款帳號」長度<>12或14,顯示錯誤訊息『凱基銀行帳號須為12或14或16位數字』 if (payerKind == 1 && !payeeCosmosAccountRegExp.exec(payeeAccountNo)) { setErrorMsg(validatePayeeAccountNo_Id, '凱基銀行帳號須為12或14或15或16位數字'); return false; } // 若付款通路為自行轉帳,檢核帳號是否符合凱基帳號規則邏輯,有誤時,顯示錯誤訊息『收款帳號非凱基銀行帳號』 if (payerKind == 1 && !checkCosmosPayeeAccount(payeeAccountNo)) { setErrorMsg(validatePayeeAccountNo_Id, '收款帳號非凱基銀行帳號'); return false; } // 若付款通路為跨行行轉帳,但「收款帳號」長度大於14,顯示錯誤訊息『跨行時收款帳號必須小於或是等於14位數字』 if (payerKind == 2 && payeeAccountNo.length > 14 ) { setErrorMsg(validatePayeeAccountNo_Id, '跨行時收款帳號必須小於或是等於14位數字'); return false; } return true; } // 檢核收款人戶名 function validateCommonPayee_PayeeName(payeeName, validatePayeeName_Id, payerKind) { clearErrorMsg(validatePayeeName_Id); // 若付款通路為跨行匯款,但收款人戶名為空白,顯示錯誤訊息『請輸入收款人戶名』 if (payerKind == 2 && payeeName == '') { setErrorMsg(validatePayeeName_Id, '請輸入收款人戶名'); return false; } return true; } // 檢核收款人統編 function validateCommonPayee_PayeeUid(payeeUid, validatePayeeUid_Id) { clearErrorMsg(validatePayeeUid_Id); // 若不是空白時檢核 if (payeeUid == '') { return true; } // 檢核須為英數字,有誤時,顯示錯誤訊息『收款人統編格式錯誤』 if (!uidRegExp.exec(payeeUid)) { setErrorMsg(validatePayeeUid_Id, '收款人統編格式錯誤'); return false; } // 20181005 payeeUid.length() > 10,顯示錯誤訊息『收款人統編錯誤』 if (payeeUid.length>10 ) { setErrorMsg(validatePayeeUid_Id, '收款人統編錯誤'); return false; } return true; } /******************************************************************************* * * 交易日期檢核 * ******************************************************************************/ // 檢核交易日期資料 function validateTxDate() { if (arguments.length == 5) { return validateTxDatePeriod(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]); } else if (arguments.length == 1) { return validateTxDateSimple(arguments[0]); } else { return false; } } // 檢核交易日期資料 function validateTxDatePeriod(periodType_Id, txDate_Id, comboPeriodDay_Id, startDate_Id, endDate_Id) { var periodType = getRadioValue(gjid(periodType_Id)); var txDateStr = getValue(gjid(txDate_Id)); var comboPeriodDay = getValue(gjid(comboPeriodDay_Id)); var startDateStr = getValue(gjid(startDate_Id)); var endDateStr = getValue(gjid(endDate_Id)); var validateDay_Id = getValidateId(txDate_Id); var validatePeriod_Id = getValidateId(endDate_Id); var result = true; // 檢核付款日期 if (!validateTxDate_TxDate(periodType, txDateStr, comboPeriodDay, startDateStr, endDateStr, validateDay_Id, validatePeriod_Id)) { result = false; } return result; } // 檢核交易日期資料 function validateTxDateSimple(txDate_Id) { var txDateStr = getValue(gjid(txDate_Id)); var validateDay_Id = getValidateId(txDate_Id); var result = true; // 檢核付款日期 if (!validateTxDate_TxDate(1, txDateStr, '', '', '', validateDay_Id, '')) { result = false; } return result; } // 檢核付款日期 function validateTxDate_TxDate(periodType, txDateStr, comboPeriodDay, startDateStr, endDateStr, validateDay_Id, validatePeriod_Id) { if (!isEmpty(validatePeriod_Id)) { clearErrorMsg(validatePeriod_Id); } clearErrorMsg(validateDay_Id); // 若選擇週期預約 if (periodType == 2) { // 若預約起日或預約迄日為空白,顯示錯誤訊息『請輸入付款日期』 if (isEmpty(startDateStr) || isEmpty(endDateStr)) { setErrorMsg(validatePeriod_Id, '請輸入日期'); return false; } // 若預約起日或預約迄日輸入格式不符合西元年YYYY/MM/DD格式,顯示錯誤訊息『付款日期格式錯誤,格式為西元年YYYY/MM/DD』 if (!dateRegExp.exec(startDateStr) || !dateRegExp.exec(endDateStr)) { setErrorMsg(validatePeriod_Id, '日期格式錯誤,格式為西元年YYYY/MM/DD'); return false; } // 若預約起日或預約迄日的日期正確性有誤,顯示錯誤訊息『日期錯誤』 if (!isValidDateString(startDateStr) || !isValidDateString(endDateStr)) { setErrorMsg(validatePeriod_Id, '日期錯誤'); return false; } var startDate = getDate(startDateStr); var endDate = getDate(endDateStr); // 若(預約迄日< 預約起日),顯示錯誤訊息『預約迄日不可早於預約起日』 if (startDate.getTime() > endDate.getTime()) { setErrorMsg(validatePeriod_Id, '預約迄日不可早於預約起日'); return false; } // 若使用者輸入的預約日於預約起日~迄日沒有可預約的日期(如選擇每月1號,自2011/3/10至2011/3/31),顯示錯誤訊息『預約區間內無可預約付款交易日』 var day = parseInt(comboPeriodDay); var firstDate = new Date(startDate.getFullYear(), 0, day); if (day < startDate.getDate()) { firstDate.addMonth(startDate.getMonth() + 1); } else { firstDate.addMonth(startDate.getMonth()); } if (firstDate.getTime() > endDate.getTime()) { setErrorMsg(validatePeriod_Id, '預約區間內無可預約付款交易日'); return false; } } // 若選擇指定付款日 else { // 若付款日期為空白,顯示錯誤訊息『請輸入付款日期』 if (isEmpty(txDateStr)) { setErrorMsg(validateDay_Id, '請輸入付款日期'); return false; } // 若付款日期輸入格式不符合西元年YYYY/MM/DD格式,顯示錯誤訊息『付款日期格式錯誤,格式為西元年YYYY/MM/DD』 if (!dateRegExp.exec(txDateStr)) { setErrorMsg(validateDay_Id, '付款日期格式錯誤,格式為西元年YYYY/MM/DD'); return false; } // 若付款日期的日期正確性有誤,顯示錯誤訊息『日期錯誤』 if (!isValidDateString(txDateStr)) { setErrorMsg(validateDay_Id, '日期錯誤'); return false; } } return true; } /******************************************************************************* * * 交易主檔檢核 * ******************************************************************************/ // 檢核交易主檔資料 function validateTxMaster(comboAccount_Id) { var comboAccount = getValue(gjid(comboAccount_Id)); var validateComboAccount_Id = getValidateId(comboAccount_Id); var result = true; // 檢核付款帳號 if (!validateTxMaster_ComboAccount(comboAccount, validateComboAccount_Id)) { result = false; } return result; } // 檢核付款帳號 function validateTxMaster_ComboAccount(comboAccount, validateComboAccount_Id) { clearErrorMsg(validateComboAccount_Id); if (isEmpty(comboAccount) || comboAccount == 'none') { setErrorMsg(validateComboAccount_Id, '請輸入付款帳號'); return false; } return true; } /******************************************************************************* * * 交易明細檢核 * ******************************************************************************/ // 檢核交易明細資料 function validateTxDetail(txAmt_Id, limit, payerKind_Id, payeeBankId_Id, payeeAccountNo_Id, payeeName_Id, payeeMail_Id, payeeUid_Id , payerAccountNo) { var txAmt = getValue(gjid(txAmt_Id)); var payerKind = getRadioValue(gjid(payerKind_Id)); var payeeBankId = getValue(gjid(payeeBankId_Id)); var payeeAccountNo = getValue(gjid(payeeAccountNo_Id)); var payeeName = getValue(gjid(payeeName_Id)); var payeeMail = getValue(gjid(payeeMail_Id)); var payeeUid = getValue(gjid(payeeUid_Id)); var validateTxAmt_Id = getValidateId(txAmt_Id); var validatePayerKind_Id = getValidateId(payerKind_Id); var validatePayeeBankId_Id = getValidateId(payeeBankId_Id); var validatePayeeAccountNo_Id = getValidateId(payeeAccountNo_Id); var validatePayeeName_Id = getValidateId(payeeName_Id); var validatePayeeMail_Id = getValidateId(payeeMail_Id); var validatePayeeUid_Id = getValidateId(payeeUid_Id); var result = true; // 檢核付款金額 if (!validateTxDetail_TxAmt(txAmt, limit, payerKind, validateTxAmt_Id)) { result = false; } // 檢核付款通路 if (!validateTxDetail_PayerKind(payerKind, validatePayerKind_Id)) { result = false; } // 檢核收款銀行 if (!validateTxDetail_PayeeBankId(payeeBankId, validatePayeeBankId_Id, payerKind)) { result = false; } // 檢核收款帳號 if (!validateTxDetail_PayeeAccountNo(payeeAccountNo, validatePayeeAccountNo_Id, payerKind, payerAccountNo)) { result = false; } // 檢核收款人戶名 if (!validateTxDetail_PayeeName(payeeName, validatePayeeName_Id, payerKind)) { result = false; } // 檢核收款人Mail if (!validateTxDetail_PayeeMail(payeeMail, validatePayeeMail_Id)) { result = false; } // 檢核收款人統編 // 20170710:不用檢核 // 20170720:自行檢核是否超過10碼 // 20181005:檢核是否超過10碼,不區分自跨行 if (!validateTxDetail_PayeeUid_Simple(payeeUid, validatePayeeUid_Id)) { result = false; } if (!result) { validateError(); } return result; } // 檢核交易明細資料 for CACTX207 function validateTxDetail_207(txAmt_Id, limit, payerKind_Id, payeeBankId_Id, payeeAccountNo_Id, payeeName_Id, payeeMail_Id, payeeUid_Id , payerAccountNo) { var txAmt = getValue(gjid(txAmt_Id)); //var payerKind = getRadioValue(gjid(payerKind_Id)); var payerKind = getValue(gjid(payerKind_Id)); var payeeBankId = getValue(gjid(payeeBankId_Id)); var payeeAccountNo = getValue(gjid(payeeAccountNo_Id)); var payeeName = getValue(gjid(payeeName_Id)); var payeeMail = getValue(gjid(payeeMail_Id)); var payeeUid = getValue(gjid(payeeUid_Id)); var validateTxAmt_Id = getValidateId(txAmt_Id); var validatePayerKind_Id = getValidateId(payerKind_Id); var validatePayeeBankId_Id = getValidateId(payeeBankId_Id); var validatePayeeAccountNo_Id = getValidateId(payeeAccountNo_Id); var validatePayeeName_Id = getValidateId(payeeName_Id); var validatePayeeMail_Id = getValidateId(payeeMail_Id); var validatePayeeUid_Id = getValidateId(payeeUid_Id); var result = true; // 檢核付款金額 if (!validateTxDetail_TxAmt(txAmt, limit, payerKind, validateTxAmt_Id)) { result = false; } // 檢核付款通路 if (!validateTxDetail_PayerKind(payerKind, validatePayerKind_Id)) { result = false; } // 檢核收款銀行 if (!validateTxDetail_PayeeBankId(payeeBankId, validatePayeeBankId_Id, payerKind)) { result = false; } // 檢核收款帳號 if (!validateTxDetail_PayeeAccountNo(payeeAccountNo, validatePayeeAccountNo_Id, payerKind, payerAccountNo)) { result = false; } // 檢核收款人戶名 if (!validateTxDetail_PayeeName(payeeName, validatePayeeName_Id, payerKind)) { result = false; } // 檢核收款人Mail if (!validateTxDetail_PayeeMail(payeeMail, validatePayeeMail_Id)) { result = false; } // 檢核收款人統編 // 20170710:不用檢核 // 20170720:自行檢核是否超過10碼 // 20181005:檢核是否超過10碼,不區分自跨行 if (!validateTxDetail_PayeeUid_Simple(payeeUid, validatePayeeUid_Id)) { result = false; } if (!result) { validateError(); } return result; } // 檢核付款金額 function validateTxDetail_TxAmt(txAmt, limit, payerKind, validateTxAmt_Id) { clearErrorMsg(validateTxAmt_Id); // 若付款金額為空白,顯示錯誤訊息『請輸入付款金額』 if (txAmt == '') { setErrorMsg(validateTxAmt_Id, '請輸入付款金額'); return false; } // 若付款金額不是輸入數字,顯示錯誤訊息『付款金額須為正整數』。 if (!numberRegExp.exec(txAmt)) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } // 若付款金額<>正整數,顯示錯誤訊息『付款金額須為正整數』 if (parseInt(txAmt) <= 0) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } // 台幣單筆若案件為退件狀態時,一筆案件匯款案件不可超過5000萬,顯示錯誤訊息『付款金額不可超過跨行單筆限額5000萬』 // 台幣整批付款及薪資整批付款須檢核單筆明細,若為跨行匯款,付款金額不可大於5000萬,若超過,顯示錯誤訊息『付款金額不可超過跨行單筆限額5000萬』 // 1. 台幣單筆退件重編, 2. 台幣整批付款, 3. 薪資整批付款需將limit設為true if (limit && payerKind == 2 && parseInt(txAmt) > 50000000) { setErrorMsg(validateTxAmt_Id, '付款金額不可超過跨行單筆限額5000萬'); return false; } return true; } // 檢核付款通路 function validateTxDetail_PayerKind(payerKind, validatePayerKind_Id) { clearErrorMsg(validatePayerKind_Id); if(payerKind == 3){ return true; } // 若付款通路為空白,顯示錯誤訊息『請選擇付款通路』 if (payerKind < 1 || payerKind > 2) { setErrorMsg(validatePayerKind_Id, '請選擇付款通路'); return false; } return true; } // 檢核收款銀行 function validateTxDetail_PayeeBankId(payeeBankId, validatePayeeBankId_Id, payerKind) { clearErrorMsg(validatePayeeBankId_Id); // 若付款通路為跨行匯款,但收款銀行為空白,顯示錯誤訊息『請輸入收款銀行』 if (payeeBankId == '') { setErrorMsg(validatePayeeBankId_Id, '請輸入收款銀行'); return false; } if(payerKind == 3 && !atmRegExp.exec(payeeBankId)){ setErrorMsg(validatePayeeBankId_Id, 'ATM跨行轉帳 收款銀行須為3碼數字'); return false; } if ((payerKind == 1 || payerKind == 2 )&& !bankRegExp.exec(payeeBankId)) { setErrorMsg(validatePayeeBankId_Id, '收款銀行須為7碼數字'); return false; } // 若付款通路為跨行匯款或ATM跨行轉帳,但收款銀行代號前3碼為809,顯示錯誤訊息『跨行匯款時,收款銀行代號不可為809凱基銀行代碼』 if ( (payerKind == 2 || payerKind == 3 ) && intrabankRegExp.exec(payeeBankId)) { setErrorMsg(validatePayeeBankId_Id, '跨行匯款時,收款銀行代號不可為809凱基銀行代碼'); return false; } // 若付款通路為跨行匯款,但收款銀行後4碼為0000(通匯行必須要有分行代碼),顯示錯誤訊息『收款銀行錯誤』 if (payerKind == 2 && interbankNotRegExp.exec(payeeBankId)) { setErrorMsg(validatePayeeBankId_Id, '收款銀行錯誤'); return false; } return true; } // 檢核收款帳號 function validateTxDetail_PayeeAccountNo(payeeAccountNo, validatePayeeAccountNo_Id, payerKind, payerAccountNo) { clearErrorMsg(validatePayeeAccountNo_Id); // 若收款帳號為空白,顯示錯誤訊息『請輸入收款帳號』 if (payeeAccountNo == '') { setErrorMsg(validatePayeeAccountNo_Id, '請輸入收款帳號'); return false; } // 若收款帳號不是輸入數字,顯示錯誤訊息『收款帳號須為數字』。 if (!accountRegExp.exec(payeeAccountNo)) { setErrorMsg(validatePayeeAccountNo_Id, '收款帳號須為數字'); return false; } // 若付款通路為自行轉帳,但「收款帳號」長度<>12或14,顯示錯誤訊息『凱基銀行帳號須為12或14或16位數字』 if (payerKind == 1 && !payeeCosmosAccountRegExp.exec(payeeAccountNo)) { setErrorMsg(validatePayeeAccountNo_Id, '凱基銀行帳號須為12或14或15或16位數字'); return false; } // 若付款通路為自行轉帳,檢核帳號是否符合凱基帳號規則邏輯,有誤時,顯示錯誤訊息『收款帳號非凱基銀行帳號』 if (payerKind == 1 && !checkCosmosPayeeAccount(payeeAccountNo)) { setErrorMsg(validatePayeeAccountNo_Id, '收款帳號非凱基銀行帳號'); return false; } // 若付款通路為跨行行轉帳,但「收款帳號」長度大於14,顯示錯誤訊息『跨行時收款帳號必須小於或是等於14位數字』 if (payerKind == 2 && payeeAccountNo.length > 14 ) { setErrorMsg(validatePayeeAccountNo_Id, '跨行時收款帳號必須小於或是等於14位數字'); return false; } // 若付款通路為自行轉帳,但收款帳號與付款帳號相同,顯示錯誤訊息『收款帳號不可與付款帳號相同』 //申請單編號:1020400363 修改日期:2013/05/02 說明:不檢核轉出入帳戶不得為同一帳戶 /* if (payerKind == 1 && payerAccountNo == payeeAccountNo) { setErrorMsg(validatePayeeAccountNo_Id, '收款帳號不可與付款帳號相同'); return false; }*/ return true; } // 檢核收款人戶名 function validateTxDetail_PayeeName(payeeName, validatePayeeName_Id, payerKind) { clearErrorMsg(validatePayeeName_Id); // 若付款通路為跨行匯款,但收款人戶名為空白,顯示錯誤訊息『請輸入收款人戶名』 if (payerKind == 2 && payeeName == '') { setErrorMsg(validatePayeeName_Id, '請輸入收款人戶名'); return false; } return true; } //檢核收款人Mail function validateTxDetail_PayeeMail(payeeMail, validatePayeeMail_Id) { clearErrorMsg(validatePayeeMail_Id); if (payeeMail == '') { return true; } var payeeMails = payeeMail.replace('\r\n','').replace(/;$/,'').split(';'); if(payeeMail.length > 0) { for(var i=0; i<payeeMails.length; i++) { if(!emailRegExp.exec(payeeMails[i])) { setErrorMsg(validatePayeeMail_Id, '收款人Email格式有誤。'); return false; } } } return true; } // 檢核收款人統編 function validateTxDetail_PayeeUid(payeeUid, validatePayeeUid_Id) { clearErrorMsg(validatePayeeUid_Id); // 若不是空白時檢核 if (payeeUid == '') { return true; } // 檢核須為英數字,有誤時,顯示錯誤訊息『收款人統編格式錯誤』 if (!uidRegExp.exec(payeeUid)) { setErrorMsg(validatePayeeUid_Id, '收款人統編格式錯誤'); return false; } // 檢核若非8、10、11碼,顯示錯誤訊息『收款人統編錯誤』 if (payeeUid.length != 8 && payeeUid.length != 10 && payeeUid.length != 11 ) { setErrorMsg(validatePayeeUid_Id, '收款人統編錯誤'); return false; } // 檢核統編是否符合統編規則,有誤時,顯示錯誤訊息『收款人統編錯誤』 if (!checkUid(payeeUid)) { setErrorMsg(validatePayeeUid_Id, '收款人統編錯誤'); return false; } return true; } /******************************************************************************* * * 會計憑證檢核 * ******************************************************************************/ // 檢核新增會計憑證 function validateAddTxInvoice(id, max) { var table = gid(gjid(id + DATAGRID_BODY_SUFFIX_ID)); var count = table.rows.length - 1; if (count >= max) { alert('會計憑證總筆數最多為' + max + '筆'); return false; } return true; } // 檢核會計憑證資料 function validateTxInvoice(id) { var table = gid(gjid(id + DATAGRID_BODY_SUFFIX_ID)); var result = true; // 會計憑證可不輸入。若有輸入,則須進行以下檢核 for (var i = 1; i < table.rows.length; i++) { var row = table.rows[i]; var invoiceNo_Id = row.cells[0].getElementsByTagName('input')[0].id; var invoiceDate_Id = row.cells[1].getElementsByTagName('input')[0].id; var invoiceAmt_Id = row.cells[2].getElementsByTagName('input')[0].id; var invoiceRemark_Id = row.cells[3].getElementsByTagName('input')[0].id; var invoiceNo = getValue(invoiceNo_Id); var invoiceDate = getValue(invoiceDate_Id); var invoiceAmt = getValue(invoiceAmt_Id); var invoiceRemark = getValue(invoiceRemark_Id); var validateInvoiceNo_Id = getValidateId(invoiceNo_Id); var validateInvoiceDate_Id = getValidateId(invoiceDate_Id); var validateInvoiceAmt_Id = getValidateId(invoiceAmt_Id); var validateInvoiceRemark_Id = getValidateId(invoiceRemark_Id); // 檢核發票號碼 if (!validateTxInvoice_InvoiceNo(invoiceNo, validateInvoiceNo_Id)) { result = false; } // 檢核發票日期 if (!validateTxInvoice_InvoiceDate(invoiceDate, validateInvoiceDate_Id)) { result = false; } // 檢核發票金額 if (!validateTxInvoice_InvoiceAmt(invoiceAmt, validateInvoiceAmt_Id)) { result = false; } } if (!result) { validateError(); } return result; } // 檢核發票號碼 function validateTxInvoice_InvoiceNo(invoiceNo, validateInvoiceNo_Id) { clearErrorMsg(validateInvoiceNo_Id); // 若發票號碼未輸入,顯示錯誤訊息『請輸入發票號碼』。 if (invoiceNo == '') { setErrorMsg(validateInvoiceNo_Id, '請輸入發票號碼'); return false; } // 不可輸入中文字 var len1 = byteLength(invoiceNo); var len2 = invoiceNo.length; if (len1 > len2) { setErrorMsg(validateInvoiceNo_Id, '不可輸入中文字'); return false; } return true; } // 檢核發票日期 function validateTxInvoice_InvoiceDate(invoiceDateStr, validateInvoiceDate_Id) { clearErrorMsg(validateInvoiceDate_Id); // 若發票日期為空白,顯示錯誤訊息『請輸入發票日期』 if (isEmpty(invoiceDateStr)) { setErrorMsg(validateInvoiceDate_Id, '請輸入發票日期'); return false; } // 若發票日期輸入格式不符合西元年YYYY/MM/DD格式,顯示錯誤訊息『付款日期格式錯誤,格式為西元年YYYY/MM/DD』 if (!dateRegExp.exec(invoiceDateStr)) { setErrorMsg(validateInvoiceDate_Id, '發票日期格式錯誤,格式為西元年YYYY/MM/DD'); return false; } // 若發票日期的日期正確性有誤,顯示錯誤訊息『發票日期錯誤』 if (!isValidDateString(invoiceDateStr)) { setErrorMsg(validateInvoiceDate_Id, '發票日期錯誤'); return false; } return true; } // 檢核付款金額 function validateTxInvoice_InvoiceAmt(invoiceAmt, validateInvoiceAmt_Id) { clearErrorMsg(validateInvoiceAmt_Id); // 若發票金額為空白,顯示錯誤訊息『請輸入發票金額』 if (invoiceAmt == '') { setErrorMsg(validateInvoiceAmt_Id, '請輸入發票金額'); return false; } // 若發票金額不是輸入數字,顯示錯誤訊息『發票金額須為正整數』。 if (!numberRegExp.exec(invoiceAmt)) { setErrorMsg(validateInvoiceAmt_Id, '發票金額須為正整數'); return false; } // 若發票金額<>正整數,顯示錯誤訊息『發票金額須為正整數』 if (parseInt(invoiceAmt) <= 0) { setErrorMsg(validateInvoiceAmt_Id, '發票金額須為正整數'); return false; } return true; } /******************************************************************************* * * 交易狀態查詢檢核 * ******************************************************************************/ // 檢核交易狀態查詢資料 function validateTxQuery() { if (arguments.length == 6) { return validateTxQuery_Cancel(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5]); } else if (arguments.length == 7) { return validateTxQuery_Query(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], arguments[5], arguments[6]); } else if (arguments.length == 3){ return validateTxQuery_Query3(arguments[0], arguments[1], arguments[2]); } else if (arguments.length == 4){ return validateTxQuery_Query2(arguments[0], arguments[1], arguments[2],arguments[3]); } else { return false; } } // 檢核預約註銷-交易狀態查詢資料 function validateTxQuery_Cancel(taskCombo_Id, startDate_Id, endDate_Id, payerAccountNo_Id, startMoney_Id, endMoney_Id) { var taskCombo = getValue(gjid(taskCombo_Id)); var startDateStr = getValue(gjid(startDate_Id)); var endDateStr = getValue(gjid(endDate_Id)); var payerAccountNo = getValue(gjid(payerAccountNo_Id)); var startMoneyStr = getValue(gjid(startMoney_Id)); var endMoneyStr = getValue(gjid(endMoney_Id)); var validateTaskCombo_Id = getValidateId(taskCombo_Id); var validateTxDate_Id = getValidateId(endDate_Id); var validatePayerAccountNo_Id = getValidateId(payerAccountNo_Id); var validateTxAmt_Id = getValidateId(endMoney_Id); var result = true; // 檢核交易類型 if (!isEmpty(taskCombo_Id) && !validateTxQuery_TaskCombo(taskCombo, validateTaskCombo_Id)) { result = false; } // 檢核付款日期 if (!validateTxQuery_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { result = false; } // 2016/7/20 : 不用再判斷起日是否需大於今日 // 檢核註銷查詢付款日期 //else if (!validateTxCancel_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { // result = false; //} // 檢核付款帳號 if (!validateTxQuery_PayerAccountNo(payerAccountNo, validatePayerAccountNo_Id)) { result = false; } // 檢核付款金額 if (!validateTxQuery_TxAmt(startMoneyStr, endMoneyStr, validateTxAmt_Id)) { result = false; } if (!result) { validateError(); } return result; } //檢核付款日期 function validateTxCancel_TxDate(startDateStr, endDateStr, validateTxDate_Id) { clearErrorMsg(validateTxDate_Id); var startDate = getDate(startDateStr); var endDate = getDate(endDateStr); //var today = new Date(); var today = Date.parse((new Date()).toDateString()); // 付款日期須檢核起日必須>系統日,否則顯示錯誤『起日須大於今日』。 if (startDate < today) { setErrorMsg(validateTxDate_Id, '起日須大於等於今日'); return false; } return true; } // 檢核狀態處理查詢-交易狀態查詢資料 function validateTxQuery_Query(txStatusCombo_Id, taskCombo_Id, startDate_Id, endDate_Id, payerAccountNo_Id, startMoney_Id, endMoney_Id) { var txStatusCombo = getValue(gjid(txStatusCombo_Id)); var taskCombo = getValue(gjid(taskCombo_Id)); var startDateStr = getValue(gjid(startDate_Id)); var endDateStr = getValue(gjid(endDate_Id)); var payerAccountNo = getValue(gjid(payerAccountNo_Id)); var startMoneyStr = getValue(gjid(startMoney_Id)); var endMoneyStr = getValue(gjid(endMoney_Id)); var validateTxStatusCombo_Id = getValidateId(txStatusCombo_Id); var validateTaskCombo_Id = getValidateId(taskCombo_Id); var validateTxDate_Id = getValidateId(endDate_Id); var validatePayerAccountNo_Id = getValidateId(payerAccountNo_Id); var validateTxAmt_Id = getValidateId(endMoney_Id); var result = true; // 檢核處理狀態 if (!validateTxQuery_TxStatusCombo(txStatusCombo, validateTxStatusCombo_Id)) { result = false; } // 檢核交易類型 if (!isEmpty(taskCombo_Id) && !validateTxQuery_TaskCombo(taskCombo, validateTaskCombo_Id)) { result = false; } // 檢核付款日期 if (!validateTxQuery_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { result = false; } // 檢核付款帳號 if (!validateTxQuery_PayerAccountNo(payerAccountNo, validatePayerAccountNo_Id)) { result = false; } // 檢核付款金額 if (!validateTxQuery_TxAmt(startMoneyStr, endMoneyStr, validateTxAmt_Id)) { result = false; } if (!result) { validateError(); } return result; } //檢核狀態處理查詢-交易狀態查詢資料 function validateTxQuery_Query2(txStatusCombo_Id, startDate_Id, endDate_Id, payerAccountNo_Id) { var txStatusCombo = getValue(gjid(txStatusCombo_Id)); var startDateStr = getValue(gjid(startDate_Id)); var endDateStr = getValue(gjid(endDate_Id)); var validateTxStatusCombo_Id = getValidateId(txStatusCombo_Id); var validateTxDate_Id = getValidateId(endDate_Id); var payerAccountNo = getValue(gjid(payerAccountNo_Id)); var validatePayerAccountNo_Id = getValidateId(payerAccountNo_Id); var result = true; // 檢核處理狀態 if (!validateTxQuery_TxStatusCombo(txStatusCombo, validateTxStatusCombo_Id)) { result = false; } // 檢核付款日期 if (!validateTxQuery_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { result = false; }// 檢核註銷查詢付款日期 else if (!validateTxCancel_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { result = false; } // 檢核付款帳號 if (!validateTxQuery_PayerAccountNo(payerAccountNo, validatePayerAccountNo_Id)) { result = false; } if (!result) { validateError(); } return result; } //檢核狀態處理查詢-交易狀態查詢資料 function validateTxQuery_Query3(txStatusCombo_Id, startDate_Id, endDate_Id) { var txStatusCombo = getValue(gjid(txStatusCombo_Id)); var startDateStr = getValue(gjid(startDate_Id)); var endDateStr = getValue(gjid(endDate_Id)); //var payerAccountNo = getValue(gjid(payerAccountNo_Id)); var validateTxStatusCombo_Id = getValidateId(txStatusCombo_Id); var validateTxDate_Id = getValidateId(endDate_Id); var result = true; // 檢核處理狀態 if (!validateTxQuery_TxStatusCombo(txStatusCombo, validateTxStatusCombo_Id)) { result = false; } // 檢核付款日期 if (!validateTxQuery_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { result = false; } if (!result) { validateError(); } return result; } // 檢核處理狀態 function validateTxQuery_TxStatusCombo(txStatusCombo, validateTxStatusCombo_Id) { clearErrorMsg(validateTxStatusCombo_Id); if (isEmpty(txStatusCombo) || txStatusCombo == 'none') { setErrorMsg(validateTxStatusCombo_Id, '請選擇處理狀態'); return false; } return true; } // 檢核交易類型 function validateTxQuery_TaskCombo(taskCombo, validateTaskCombo_Id) { clearErrorMsg(validateTaskCombo_Id); if (isEmpty(taskCombo) || taskCombo == 'none') { setErrorMsg(validateTaskCombo_Id, '請選擇交易類型'); return false; } return true; } // 檢核付款日期 function validateTxQuery_TxDate(startDateStr, endDateStr, validateTxDate_Id) { clearErrorMsg(validateTxDate_Id); // 若付款起日或付款迄日為空白,顯示錯誤訊息『請輸入付款日期』 if (isEmpty(startDateStr) || isEmpty(endDateStr)) { setErrorMsg(validateTxDate_Id, '請輸入付款日期'); return false; } // 若付款起日或付款迄日輸入格式不符合西元年YYYY/MM/DD格式,顯示錯誤訊息『付款日期格式錯誤,格式為西元年YYYY/MM/DD』 if (!dateRegExp.exec(startDateStr) || !dateRegExp.exec(endDateStr)) { setErrorMsg(validateTxDate_Id, '付款日期格式錯誤,格式為西元年YYYY/MM/DD'); return false; } // 若付款起日或付款迄日的日期正確性有誤,顯示錯誤訊息『日期錯誤』 if (!isValidDateString(startDateStr) || !isValidDateString(endDateStr)) { setErrorMsg(validateTxDate_Id, '日期錯誤'); return false; } var startDate = getDate(startDateStr); var endDate = getDate(endDateStr); // 若(付款迄日< 付款起日),顯示錯誤訊息『迄日不可早於起日』 if (startDate.getTime() > endDate.getTime()) { setErrorMsg(validateTxDate_Id, '迄日不可早於起日'); return false; } return true; } // 檢核付款帳號 function validateTxQuery_PayerAccountNo(payerAccountNo, validatePayerAccountNo_Id) { clearErrorMsg(validatePayerAccountNo_Id); // 若不是空白時檢核 if (payerAccountNo == '') { return true; } // 若付款帳號不是輸入數字,顯示錯誤訊息『付款帳號須為數字』。 if (!accountRegExp.exec(payerAccountNo)) { setErrorMsg(validatePayerAccountNo_Id, '付款帳號須為數字'); return false; } // 付款帳號長度<>12或14,顯示錯誤訊息『凱基銀行帳號須為12或14或16位數字』 if (!cosmosAccountRegExp.exec(payerAccountNo)) { setErrorMsg(validatePayerAccountNo_Id, '凱基銀行帳號須為12或14或16位數字'); return false; } // 檢核帳號是否符合凱基帳號規則邏輯,有誤時,顯示錯誤訊息『付款帳號非凱基銀行帳號』 if (!checkCosmosAccount(payerAccountNo)) { setErrorMsg(validatePayerAccountNo_Id, '付款帳號非凱基銀行帳號'); return false; } return true; } // 檢核付款金額 function validateTxQuery_TxAmt(startMoney, endMoney, validateTxAmt_Id) { clearErrorMsg(validateTxAmt_Id); var validateStartMoney = true; var validateEndMoney = true; // 若付款金額為空白,則不檢核 if (startMoney == '') { validateStartMoney = false; } if (endMoney == '') { validateEndMoney = false; } // 若付款金額不是輸入數字,顯示錯誤訊息『付款金額須為正整數』。 if (validateStartMoney && !numberRegExp.exec(startMoney)) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } if (validateEndMoney && !numberRegExp.exec(endMoney)) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } // 若付款金額<>正整數,顯示錯誤訊息『付款金額須為正整數』 if (validateStartMoney && parseInt(startMoney) <= 0) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } if (validateEndMoney && parseInt(endMoney) <= 0) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } // 若付款金額(上限) < 付款金額(下限),顯示錯誤訊息『付款金額錯誤』 if (validateStartMoney && validateEndMoney && parseInt(startMoney) > parseInt(endMoney)) { setErrorMsg(validateTxAmt_Id, '付款金額錯誤'); return false; } return true; } //檢核外幣轉帳付款交易狀態處理查詢-交易狀態查詢資料 function validateFrTxQuery_Query(txStatusCombo_Id, taskCombo_Id, startDate_Id, endDate_Id, payerAccountNo_Id) { var txStatusCombo = getValue(gjid(txStatusCombo_Id)); var taskCombo = getValue(gjid(taskCombo_Id)); var startDateStr = getValue(gjid(startDate_Id)); var endDateStr = getValue(gjid(endDate_Id)); var payerAccountNo = getValue(gjid(payerAccountNo_Id)); //var startMoneyStr = getValue(gjid(startMoney_Id)); //var endMoneyStr = getValue(gjid(endMoney_Id)); var validateTxStatusCombo_Id = getValidateId(txStatusCombo_Id); var validateTaskCombo_Id = getValidateId(taskCombo_Id); var validateTxDate_Id = getValidateId(endDate_Id); var validatePayerAccountNo_Id = getValidateId(payerAccountNo_Id); //var validateTxAmt_Id = getValidateId(endMoney_Id); var result = true; // 檢核處理狀態 if (!validateTxQuery_TxStatusCombo(txStatusCombo, validateTxStatusCombo_Id)) { result = false; } // 檢核交易類型 if (!isEmpty(taskCombo_Id) && !validateTxQuery_TaskCombo(taskCombo, validateTaskCombo_Id)) { result = false; } // 檢核付款日期 if (!validateTxQuery_TxDate(startDateStr, endDateStr, validateTxDate_Id)) { result = false; } // 檢核付款帳號 if (!validateTxQuery_PayerAccountNo(payerAccountNo, validatePayerAccountNo_Id)) { result = false; } //付款日期須大於查詢當日 var txType = gid(gjid('txTypeCombo')).value; var startDate = getDate(startDateStr); var now = new Date(); if(txType == '1'){ if(now.getTime() > startDate.getTime()){ setErrorMsg(validateTxDate_Id, '付款日期須大於查詢當日'); result = false; } } if (!result) { validateError(); } return result; } // function disable_a(name, className){ // names = document.getElementsByName(name); // for(var i=0; i<names.length; i++){ // if(!names[i].lang){ // names[i].lang = names[i].href; // names[i].rel = names[i].className; // names[i].href ='javascript:void(0)'; // names[i].className = className; // }else{ // names[i].href ='javascript:void(0)'; // names[i].className = className; // } // } // } // // function enable_a(name, className) { // names = document.getElementsByName(name); // for(var i=0; i<names.length; i++){ // if(names[i].lang){names[i].href = names[i].lang} // if(names[i].rel){names[i].className = names[i].rel;} // } // } // 取得收款人銀行分行名稱 function getPayeeBankName(fullBankId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getPayeeBankName" + "&FullBankId=" + trim(fullBankId); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { result = " 查無銀行分行名稱"; }, sync: true }); return result; } // 判斷是否為營業日 function isBusinessDay(dt) { var result = ""; // sUrl = "/B2C/B2CAjaxSyncData?FN=getPayeeBankName" // + "&FullBankId=" + trim(fullBankId); // console.log('CTT 1'); // console.log(dt); sUrl = "/B2C/B2CAjaxSyncData?FN=getLbDateCode1" + "&dt=" + trim(dt); // sUrl = "/B2C/B2CAjaxSyncData?FN=isBusinessDay" // console.log('CTT 2'); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data) == 0; }, error: function(data) { result = " 查詢營業日失敗"; }, sync: true }); return result; } // 取得餘額(台幣) function getBalance(uid, uuid, accountNo) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getBalance" + "&Uid=" + trim(uid) + "&Uuid=" + trim(uuid) + "&AccountNo=" + trim(accountNo); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = " 餘額:" + trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } //取得餘額(外幣) function getBalanceFr(accountNo, currencyId, companyKey) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getBalanceFr&AccountNo={0}&CurrencyId={1}&companyKey={2}" .f(trim(accountNo), trim(currencyId), companyKey); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = " 餘額:" + trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } //取得試算金額(外幣) function getBalanceExeTestFr(accountNo, currencyId, companyKey,amt,payeeCcy,payerUid,userKey) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getBalanceExeTestFr&AccountNo={0}&CurrencyId={1}&companyKey={2}&amt={3}&payeeCcy={4}&payerUid={5}&userKey={6}" .f(trim(accountNo), trim(currencyId), companyKey,trim(amt),trim(payeeCcy),trim(payerUid),trim(userKey)); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = " " + trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } // 取得常用收款人鍵值 function getCommonPayeeKey(fullBankId, accountNo, companyKey) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getCommonPayeeKey" + "&FullBankId=" + trim(fullBankId) + "&AccountNo=" + trim(accountNo) + "&CompanyKey=" + trim(companyKey); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得外幣常用收款人鍵值 function getFrCommonPayeeKey(payerKind, accountNo, companyKey) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getFrCommonPayeeKey" + "&PayerKind=" + trim(payerKind) + "&AccountNo=" + trim(accountNo) + "&CompanyKey=" + trim(companyKey); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //是否在批次營業時間內 function isBeforeBatchBizTime(companyUid,taskId) { var result = false; sUrl = "/B2C/B2CAjaxSyncData?FN=isBeforeBatchBizTime" + "&TaskId=" + trim(taskId) + "&CompanyUid=" + trim(companyUid); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得次營業日 function getBatchNextBizDate(companyUid,taskId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getBatchNextBizDate" + "&TaskId=" + trim(taskId) + "&CompanyUid=" + trim(companyUid); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得次營業日 function getBatchIntraBankNextBizDate(companyUid,taskId,intraBank) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getBatchIntraBankNextBizDate" + "&TaskId=" + trim(taskId) + "&CompanyUid=" + trim(companyUid); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得次營業日 function getIntraBankNextBizDate(taskId,isInTraBank) { var result = ""; var inTraBank = '0';//0為interbank if(isInTraBank){ inTraBank = '1'; } sUrl = "/B2C/B2CAjaxSyncData?FN=getIntraBankNextBizDate" + "&InTraBank=" + trim(inTraBank) + "&TaskId=" + trim(taskId); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } // 是否在營業時間內 function isBeforeBizTime(taskId) { var result = false; sUrl = "/B2C/B2CAjaxSyncData?FN=isBeforeBizTime" + "&TaskId=" + trim(taskId); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //是否在營業時間內 function isBeforeBizTimeTwdTx(taskId,isInTraBank) { var result = false; var inTraBank = '0';//0為interbank if(isInTraBank){ inTraBank = '1'; } sUrl = "/B2C/B2CAjaxSyncData?FN=isBeforeBizTimeTwdTx" + "&TaskId=" + trim(taskId) + "&InTraBank=" + trim(inTraBank); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //是否在營業時間內 function isBeforeBatchBizTimeTwdTx(taskId,isInTraBank,companyUid) { var result = false; var inTraBank = '0';//0為interbank if(isInTraBank){ inTraBank = '1'; } sUrl = "/B2C/B2CAjaxSyncData?FN=isBeforeBatchBizTimeTwdTx" + "&TaskId=" + trim(taskId) + "&InTraBank=" + trim(inTraBank) + "&CompanyUid=" + trim(companyUid); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } // 取得次營業日 function getNextBizDate(taskId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getNextBizDate" + "&TaskId=" + trim(taskId); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得常用收款人鍵值 function getPayerTemplateKey(payerTemplateName,userkey,txBatchType,taskId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getPayerTemplateKey" + "&payerTemplateName=" + encodeURIComponent(trim(payerTemplateName)) + "&userkey=" + trim(userkey) + "&txBatchType=" + trim(txBatchType) + "&taskId=" + trim(taskId); //alert(sUrl); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得外幣交易範本鍵值 function getFxTemplateKey(payerTemplateName,userkey,txBatchType,taskId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getFxTemplateKey" + "&payerTemplateName=" + encodeURIComponent(trim(payerTemplateName)) + "&userkey=" + trim(userkey) + "&txBatchType=" + trim(txBatchType) + "&taskId=" + trim(taskId); //alert(sUrl); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得信用狀範本鍵值 function getLcTemplateKey(lcTemplateName,userkey,taskId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getLcTemplateKey" + "&lcTemplateName=" + encodeURIComponent(trim(lcTemplateName)) + "&userkey=" + trim(userkey) + "&taskId=" + trim(taskId); //alert(sUrl); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } // 檢核收款銀行代號 function validatePayeeBankId(payeeFullBankId) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=validatePayeeBankId" + "&PayeeFullBankId=" + trim(payeeFullBankId); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } // 檢核付款金額 function validateTxAmt(companyKey, payerKind, chargeAmtType, txAmt) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=validateTxAmt" + "&CompanyKey=" + trim(companyKey) + "&PayerKind=" + trim(payerKind) + "&ChargeAmtType=" + trim(chargeAmtType) + "&TxAmt=" + trim(txAmt); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } //取得餘額 function getLoanAccountValue(uid, uuid, accountNo) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getLoanAccountValue" + "&Uid=" + trim(uid) + "&Uuid=" + trim(uuid) + "&AccountNo=" + trim(accountNo); //alert("sUrl:" + sUrl); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } //取得貸款試算餘額 function getLoanAccountValueNew(uid, uuid,accountNo,amt) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getLoanAccountValueNew" + "&Uid=" + trim(uid) + "&Uuid=" + trim(uuid) + "&AccountNo=" + trim(accountNo) + "&Amt=" + trim(amt); //alert("sUrl:" + sUrl); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } Number.prototype.formatMoney = function(c, d, t){ var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "", i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0; return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : ""); }; Date.prototype.addYear = function(interval) { this.addMonth(interval * 12); } function doSubmitForm(callback,isEnableAll){ /**1.不管如何先清楚server的錯誤**/ /**2.執行Client端驗證**/ /**3.將disabled的元件改成component**/ validateError(); var result = callback(); if(result && !!isEnableAll){ beforeSubmit(); }else{ //移除遮罩 } return result; } /**由於disable會造成為法把值提交到server,所以要先把他enable**/ function beforeSubmit() { var theform = gid('form1'); if(typeof(theform) != 'undefined' && !!theform){ if (document.all || document.getElementById) { for (i = 0; i < theform.length; i++) { var formElement = theform.elements[i]; if (true) { formElement.disabled = false; } } } } } //取得臺幣科目別 function getTwSubject(account){ if(!account) return ""; return account.substring(3,5); } //取得外幣最低起存額 function getOpenMinAmt(affairCode, branchClass, ccy) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getOpenMinAmt" + "&AffairCode=" + trim(affairCode) + "&BranchClass=" + trim(branchClass) + "&Ccy=" + trim(ccy); //alert("sUrl:" + sUrl); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } // 取得company branch class, OBU or DBU function getCompanyBranchClass(companyKey) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getCompanyBranchClass" + "&CompanyKey=" + trim(companyKey); //alert("branchClassUrl:" + sUrl); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = trim(data); }, error: function(data) { result = " 系統異常,請稍候再試"; }, sync: true }); return result; } //是否有中文 function haveChinese(s) { return s.search(chineseRegExp)>-1; } /** * 取得公告訊息 * @returns */ function getBulletinMessage() { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getBulletinMessage"; if (typeof dojo != "undefined") { //alert("getBulletinMessage:" + sUrl); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = data; }, error: function(data) { result = " 系統異常,請稍候再試發佈訊息異常"; }, sync: true }); } return result; } function getB2CSysMessage() { var msg = getBulletinMessage(); //alert(String.fromCharCode(36889)); //alert(msg); if(msg.trim() !='') { //alert('not blank'); //alert(msg); if (typeof parent.alterReminderMaintain == 'function') { //alert(msg); parent.alterReminderMaintain(msg); } } //parent.alterReminder1(msg); } /** * 取得Alert訊息 * @returns */ function getAlertMessage() { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=getAlertMessage"; if (typeof dojo != "undefined") { //alert("getBulletinMessage:" + sUrl); dojo.xhrGet({ url: sUrl, preventCache: true, load: function(data) { result = data; }, error: function(data) { result = " 系統異常,請稍候再試警示訊息異常"; }, sync: true }); } return result; } /******************************************************************************* * * 交易明細檢核 * ******************************************************************************/ // 檢核交易明細資料 function validateTemplateTxDetail(txAmt_Id, limit, payerKind_Id, payeeBankId_Id, payeeAccountNo_Id, payeeName_Id, payeeMail_Id, payeeUid_Id , payerAccountNo) { var txAmt = getValue(gjid(txAmt_Id)); var payerKind = getRadioValue(gjid(payerKind_Id)); var payeeBankId = getValue(gjid(payeeBankId_Id)); var payeeAccountNo = getValue(gjid(payeeAccountNo_Id)); var payeeName = getValue(gjid(payeeName_Id)); var payeeMail = getValue(gjid(payeeMail_Id)); var payeeUid = getValue(gjid(payeeUid_Id)); var validateTxAmt_Id = getValidateId(txAmt_Id); var validatePayerKind_Id = getValidateId(payerKind_Id); var validatePayeeBankId_Id = getValidateId(payeeBankId_Id); var validatePayeeAccountNo_Id = getValidateId(payeeAccountNo_Id); var validatePayeeName_Id = getValidateId(payeeName_Id); var validatePayeeMail_Id = getValidateId(payeeMail_Id); var validatePayeeUid_Id = getValidateId(payeeUid_Id); var result = true; // 檢核付款金額 if (!validateTemplateTxDetail_TxAmt(txAmt, limit, payerKind, validateTxAmt_Id)) { result = false; } // 檢核付款通路 if (!validateTxDetail_PayerKind(payerKind, validatePayerKind_Id)) { result = false; } // 檢核收款銀行 if (!validateTxDetail_PayeeBankId(payeeBankId, validatePayeeBankId_Id, payerKind)) { result = false; } // 檢核收款帳號 if (!validateTxDetail_PayeeAccountNo(payeeAccountNo, validatePayeeAccountNo_Id, payerKind, payerAccountNo)) { result = false; } // 檢核收款人戶名 if (!validateTxDetail_PayeeName(payeeName, validatePayeeName_Id, payerKind)) { result = false; } // 檢核收款人Mail if (!validateTxDetail_PayeeMail(payeeMail, validatePayeeMail_Id)) { result = false; } // 檢核收款人統編 // 20170710:不用檢核 // 20170720:自行檢核是否超過10碼 // 20181005:檢核是否超過10碼,不區分自跨行 if (!validateTxDetail_PayeeUid_Simple(payeeUid, validatePayeeUid_Id)) { result = false; } if (!result) { validateError(); } return result; } //檢核付款金額 function validateTemplateTxDetail_TxAmt(txAmt, limit, payerKind, validateTxAmt_Id) { clearErrorMsg(validateTxAmt_Id); // 若付款金額為空白,顯示錯誤訊息『請輸入付款金額』 if (txAmt == '') { setErrorMsg(validateTxAmt_Id, '請輸入付款金額'); return false; } // 若付款金額不是輸入數字,顯示錯誤訊息『付款金額須為正整數』。 if (!numberRegExp.exec(txAmt)) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } // 若付款金額<>正整數,顯示錯誤訊息『付款金額須為正整數』 if (parseInt(txAmt) < 0) { setErrorMsg(validateTxAmt_Id, '付款金額須為正整數'); return false; } // 台幣單筆若案件為退件狀態時,一筆案件匯款案件不可超過5000萬,顯示錯誤訊息『付款金額不可超過跨行單筆限額5000萬』 // 台幣整批付款及薪資整批付款須檢核單筆明細,若為跨行匯款,付款金額不可大於5000萬,若超過,顯示錯誤訊息『付款金額不可超過跨行單筆限額5000萬』 // 1. 台幣單筆退件重編, 2. 台幣整批付款, 3. 薪資整批付款需將limit設為true if (limit && payerKind == 2 && parseInt(txAmt) > 50000000) { setErrorMsg(validateTxAmt_Id, '付款金額不可超過跨行單筆限額5000萬'); return false; } return true; } //檢核收款人統編 function validateTxDetail_PayeeUid_Simple(payeeUid, validatePayeeUid_Id) { clearErrorMsg(validatePayeeUid_Id); // 若不是空白時檢核 if (payeeUid == '') { return true; } if (payeeUid.length > 10) { setErrorMsg(validatePayeeUid_Id, '收款人統編錯誤'); return false; } return true; } if (typeof cibForce == 'undefined') { var cibForce = true; var jsIP = "/B2C/js/"; var jsFolder = "ciben"; var fsIP = "/B2C/js/"; var fsFolder = "ciben/css"; //var fsFileName = ((navigator.appName=='Microsoft Internet Explorer'||!!(navigator.userAgent.match(/Trident/)||navigator.userAgent.match(/rv 11/))==1)?(true):(false))?("WFont?t=eot&c="):("WFont?t=ff&c="); var fsFileName = "EUDC_CHLF.tte"; var rule_out_cbwfs = ""; var script = document.createElement("script"); script.src = jsIP + jsFolder + "/lib/cbwfs.js"; document.getElementsByTagName('head')[0].appendChild(script); } //檢核是否為營業日 function validateBusinessDate(txDate) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=validateBusinessDate" + "&TxDate=" + trim(txDate); dojo.xhrGet({ url: sUrl, load: function(data) { result = (trim(data).toLowerCase() == "true"); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; } /** * URL encode / decode Object * 使用方法 : Url.encode(aaa) * 使用方法 : Url.decode(aaa) */ var Url = { // public method for url encoding encode : function (string) { return escape(utf8_encode(string)); }, // public method for url decoding decode : function (string) { return utf8_decode(unescape(string)); } }; //UTF-8 encoding function utf8_encode (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; } //UTF-8 decoding function utf8_decode (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } function base64ToHex(base64Str) { var raw = atob(base64Str); var HEX = ''; for (var i = 0; i < raw.length; i++) { var _hex = raw.charCodeAt(i).toString(16); HEX += _hex.length === 2 ? _hex : '0' + _hex; } return HEX.toUpperCase(); } //修改聯絡資料送email認證碼 function sendVerifyCode(mail,userKey,companyKey) { var result = ""; sUrl = "/B2C/B2CAjaxSyncData?FN=checkMail" + "&Mail=" + trim(mail) + "&UserKey=" + trim(userKey) + "&CompanyKey=" + trim(companyKey); dojo.xhrGet({ url: sUrl, load: function(data) { result = trim(data); }, error: function(data) { window.alert("系統異常,請稍候再試"); }, sync: true }); return result; }