function fnReplCell_advc(){ console.log(':: fnReplCell_advc :: '); var smsTxtArea = $('#smsTxtArea').val(); console.log('smsTxtArea : ', smsTxtArea); var orgSmsTxt = smsTxtArea; // 광고문자 뺀 문자내용 var recTableData = tableL.getRows(); // 받는사람 리스트의 전체 목록을 저장 var smsTxt = smsTxtArea; var data = recTableData[0].getData(); if(typeof data.name != 'undefined' && data.name != null && data.name != ""){ var name = data.name; smsTxt = stringReplaceAll(smsTxt, "[*이름*]", name); } if(typeof data.rep1 != 'undefined' && data.rep1 != null && data.rep1 != ""){ var rep1 = data.rep1; smsTxt = stringReplaceAll(smsTxt, "[*1*]", rep1); } if(typeof data.rep2 != 'undefined' && data.rep2 != null && data.rep2 != ""){ var rep2 = data.rep2; smsTxt = stringReplaceAll(smsTxt, "[*2*]", rep2); } if(typeof data.rep3 != 'undefined' && data.rep3 != null && data.rep3 != ""){ var rep3 = data.rep3; smsTxt = stringReplaceAll(smsTxt, "[*3*]", rep3); } if(typeof data.rep4 != 'undefined' && data.rep4 != null && data.rep4 != ""){ var rep4 = data.rep4; smsTxt = stringReplaceAll(smsTxt, "[*4*]", rep4); } console.log('smsTxt : ', smsTxt); $('.realtime').text(smsTxt); } //특정문구 일괄변환 문자길이 체크 하기 function fnReplCell(){ var smsTxtArea = $('#smsTxtArea').val(); var imgCnt = $("#imgCnt").val(); // 현재 페이지에 첨부된 이미지 갯수 var orgSmsTxt = smsTxtArea; // 광고문자 뺀 문자내용 var adTxt = $('.ad_txt').text(); var denyTxt = $('.deny_txt').text(); var adverTxt = ""; //이벤트 잔여 캐시 자동 처리 관련 변수 var evnRemainCash = parseFloat($("#eventRemainCash").val()); //이벤트 잔여 캐시 금액 var evnEachPrice = parseFloat($("#eachPrice").val()); var evnShortPrice = parseFloat($("#sPrice").val()); var evnLongPrice = parseFloat($("#mPrice").val()); var evnPhoneNumCnt = 0; var evnShortMsgCnt = 0; var evnLongMsgCnt = 0; var evnMsgCntSts = true; if(adTxt.length > 0 && denyTxt.length > 0){ adverTxt = adTxt + "\n" + smsTxtArea + "\n" + denyTxt; smsTxtArea = adverTxt; } console.log('???smsTxtArea :: ', smsTxtArea); if(smsTxtArea.indexOf("[*이름*]") > -1 || smsTxtArea.indexOf("[*1*]") > -1 || smsTxtArea.indexOf("[*2*]") > -1 || smsTxtArea.indexOf("[*3*]") > -1 || smsTxtArea.indexOf("[*4*]") > -1){ var rowData = tableL.getRows(); var recTableData = tableL.getRows(); // 받는사람 리스트의 전체 목록을 저장 //var tableData = []; var msg_short = 0; //단문문자 갯수 var msg_long = 0; //장문문자 갯수 //일괄변환문자 포함 여부 변경 - 문자내용에 치환변환 문자는 있지만 받는사람 데이터에 치환 데이터를 안넣는 경우 오류가 발생하여 상태값 입력 위치 상단으로 변경함. //치환데이터가 없는 경우 Alert 띄우고 빠져나가기 때문에 치환문자 상태 체크값이 누락되어서 변경함 - 20230407 우영두 $('#txtReplYn').val("Y"); var nmStatus = false; var rep1Status = false; var rep2Status = false; var rep3Status = false; var rep4Status = false; if(smsTxtArea.indexOf("[*이름*]") > -1){ nmStatus = true; } if(smsTxtArea.indexOf("[*1*]") > -1){ rep1Status = true; } if(smsTxtArea.indexOf("[*2*]") > -1){ rep2Status = true; } if(smsTxtArea.indexOf("[*3*]") > -1){ rep3Status = true; } if(smsTxtArea.indexOf("[*4*]") > -1){ rep4Status = true; } //기존 받는사람 리스트를 배열에 미리 담아둔다. if(recTableData.length > 0){ for(var j=0; j < recTableData.length; j++){ var smsTxt = smsTxtArea; if(typeof recTableData[j].getData().name != 'undefined' && recTableData[j].getData().name != null && recTableData[j].getData().name != ""){ // console.log('name : ', name); // console.log('smsTxt : ', smsTxt); // console.log('orgSmsTxt : ', orgSmsTxt); var name = recTableData[j].getData().name; smsTxt = stringReplaceAll(smsTxt, "[*이름*]", name); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*이름*]", name);//광고, 선거 문자인 경우 상하단 문구 제거한 문자내용만 보여주도록 함. 치환문자 있으면 변환해서 보여줌 }/*else{ if(nmStatus){ alert("[*이름*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep1 != 'undefined' && recTableData[j].getData().rep1 != null && recTableData[j].getData().rep1 != ""){ var rep1 = recTableData[j].getData().rep1; smsTxt = stringReplaceAll(smsTxt, "[*1*]", rep1); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*1*]", rep1); }/*else{ if(rep1Status){ alert("[*1*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep2 != 'undefined' && recTableData[j].getData().rep2 != null && recTableData[j].getData().rep2 != ""){ var rep2 = recTableData[j].getData().rep2; smsTxt = stringReplaceAll(smsTxt, "[*2*]", rep2); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*2*]", rep2); }/*else{ if(rep2Status){ alert("[*2*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep3 != 'undefined' && recTableData[j].getData().rep3 != null && recTableData[j].getData().rep3 != ""){ var rep3 = recTableData[j].getData().rep3; smsTxt = stringReplaceAll(smsTxt, "[*3*]", rep3); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*3*]", rep3); }/*else{ if(rep3Status){ alert("[*3*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep4 != 'undefined' && recTableData[j].getData().rep4 != null && recTableData[j].getData().rep4 != ""){ var rep4 = recTableData[j].getData().rep4; smsTxt = stringReplaceAll(smsTxt, "[*4*]", rep4); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*4*]", rep4); }/*else{ if(rep4Status){ alert("[*4*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ var msgLen = conByteLeng(smsTxt); if(msgLen < 1){ }else if(msgLen > 2000){ alert("문자 내용은 2000byte를 넘을 수 없습니다."); return false; }else{ if(msgLen > 90){ msg_long++; console.log(evnRemainCash + " === " + evnLongPrice); if(evnRemainCash >= evnLongPrice && evnMsgCntSts == true){//이벤트 금액으로 보낼수 있으면 카운팅 evnRemainCash = evnRemainCash - evnLongPrice; evnPhoneNumCnt++; evnLongMsgCnt++; $("#evnPhoneNumCnt").val(evnPhoneNumCnt); $("#evnLongMsgCnt").val(evnLongMsgCnt); }else{//이벤트 금액으로 보낼수 없으면 카운팅 중지 evnMsgCntSts = false; } }else{ msg_short++; console.log(evnRemainCash + " === " + evnShortPrice); if(evnRemainCash >= evnShortPrice && evnMsgCntSts == true){//이벤트 금액으로 발송할 수 있으면 카운팅 evnRemainCash = evnRemainCash - evnShortPrice; evnPhoneNumCnt++; evnShortMsgCnt++; $("#evnPhoneNumCnt").val(evnPhoneNumCnt); $("#evnShortMsgCnt").val(evnShortMsgCnt); }else{//이벤트 금액으로 보낼수 없으면 카운티 중지 evnMsgCntSts = false; } } } replTotalPriceSum(msg_short, msg_long, totRows); //첫번째 수신자의 변환 텍스트 내용을 적용하여 미리보기 문자내용에 보여주자. if(j == 0){ console.log('adverTxt : ', adverTxt); //미리보기에 내용 입력해 주기 if(adverTxt.length > 0){ $('.realtime').text(orgSmsTxt); }else{ $('.realtime').text(smsTxt); } } //일괄변환문자 포함 여부 변경 //$('#txtReplYn').val("Y"); } //변환후 문자 중에 장문이 1개 이상 있는 경우 문자 제목을 입력해 주기 /*var txtReplYn = $('#txtReplYn').val(); if(txtReplYn == 'Y' && (msg_long > 0 || imgCnt > 0)){ //장문, 그림 문자가 포함되어 있는 경우 제목을 입력하도록 처리 $('#mmsSubject').attr("disabled", false); }else if(txtReplYn == 'Y' && msg_long < 1){ //일괄변환애 단문문자만 있는경우 제목 입력 안되도록 처리 $('#mmsSubject').val(""); $('#mmsSubject').attr("disabled", true); }*/ } } } //특정문구 일괄변환 문자길이 체크 하기 function fnReplCellExcel(){ console.log('fnReplCellExcel'); var smsTxtArea = $('#smsTxtArea').val(); var imgCnt = $("#imgCnt").val(); // 현재 페이지에 첨부된 이미지 갯수 var orgSmsTxt = smsTxtArea; // 광고문자 뺀 문자내용 var adTxt = $('.ad_txt').text(); var denyTxt = $('.deny_txt').text(); var adverTxt = ""; //이벤트 잔여 캐시 자동 처리 관련 변수 var evnRemainCash = parseFloat($("#eventRemainCash").val()); //이벤트 잔여 캐시 금액 var evnEachPrice = parseFloat($("#eachPrice").val()); var evnShortPrice = parseFloat($("#sPrice").val()); var evnLongPrice = parseFloat($("#mPrice").val()); var evnPhoneNumCnt = 0; var evnShortMsgCnt = 0; var evnLongMsgCnt = 0; var evnMsgCntSts = true; if(adTxt.length > 0 && denyTxt.length > 0){ adverTxt = adTxt + "\n" + smsTxtArea + "\n" + denyTxt; smsTxtArea = adverTxt; } if(smsTxtArea.indexOf("[*이름*]") > -1 || smsTxtArea.indexOf("[*1*]") > -1 || smsTxtArea.indexOf("[*2*]") > -1 || smsTxtArea.indexOf("[*3*]") > -1 || smsTxtArea.indexOf("[*4*]") > -1){ var rowData = tableR.getRows(); var recTableData = tableR.getRows(); // 받는사람 리스트의 전체 목록을 저장 //var tableData = []; var msg_short = 0; var msg_long = 0; var nmStatus = false; var rep1Status = false; var rep2Status = false; var rep3Status = false; var rep4Status = false; if(smsTxtArea.indexOf("[*이름*]") > -1){ nmStatus = true; } if(smsTxtArea.indexOf("[*1*]") > -1){ rep1Status = true; } if(smsTxtArea.indexOf("[*2*]") > -1){ rep2Status = true; } if(smsTxtArea.indexOf("[*3*]") > -1){ rep3Status = true; } if(smsTxtArea.indexOf("[*4*]") > -1){ rep4Status = true; } //일괄변환문자 포함 여부 변경 - 문자내용에 치환변환 문자는 있지만 받는사람 데이터에 치환 데이터를 안넣는 경우 오류가 발생하여 상태값 입력 위치 상단으로 변경함. //치환데이터가 없는 경우 Alert 띄우고 빠져나가기 때문에 치환문자 상태 체크값이 누락되어서 변경함 - 20230407 우영두 $('#txtReplYn').val("Y"); //기존 받는사람 리스트를 배열에 미리 담아둔다. if(recTableData.length > 0){ for(var j=0; j < recTableData.length; j++){ var smsTxt = smsTxtArea; if(typeof recTableData[j].getData().name != 'undefined' && recTableData[j].getData().name != null && recTableData[j].getData().name != "") { var name = recTableData[j].getData().name; smsTxt = stringReplaceAll(smsTxt, "[*이름*]", name); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*이름*]", name);//광고, 선거 문자인 경우 상하단 문구 제거한 문자내용만 보여주도록 함. 치환문자 있으면 변환해서 보여줌 }/*else{ if(nmStatus){ alert("[*이름*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep1 != 'undefined' && recTableData[j].getData().rep1 != null){ var rep1 = recTableData[j].getData().rep1; smsTxt = stringReplaceAll(smsTxt, "[*1*]", rep1); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*1*]", rep1); }/*else{ if(rep1Status){ alert("[*1*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep2 != 'undefined' && recTableData[j].getData().rep2 != null){ var rep2 = recTableData[j].getData().rep2; smsTxt = stringReplaceAll(smsTxt, "[*2*]", rep2); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*2*]", rep2); }/*else{ if(rep2Status){ alert("[*2*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep3 != 'undefined' && recTableData[j].getData().rep3 != null){ var rep3 = recTableData[j].getData().rep3; smsTxt = stringReplaceAll(smsTxt, "[*3*]", rep3); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*3*]", rep3); }/*else{ if(rep3Status){ alert("[*3*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ if(typeof recTableData[j].getData().rep4 != 'undefined' && recTableData[j].getData().rep4 != null){ var rep4 = recTableData[j].getData().rep4; smsTxt = stringReplaceAll(smsTxt, "[*4*]", rep4); orgSmsTxt = stringReplaceAll(orgSmsTxt, "[*4*]", rep4); }/*else{ if(rep4Status){ alert("[*4*] 치환 문자에 데이터가 없습니다. 받는사람 목록의 치환 데이터를 확인해 주세요."); return false; } }*/ var msgLen = conByteLeng(smsTxt); if(msgLen < 1){ }else if(msgLen > 2000){ alert("문자 내용은 2000byte를 넘을 수 없습니다."); return false; }else{ if(msgLen > 90){ msg_long++; console.log(evnRemainCash + " === " + evnLongPrice); if(evnRemainCash >= evnLongPrice && evnMsgCntSts == true){//이벤트 금액으로 보낼수 있으면 카운팅 evnRemainCash = evnRemainCash - evnLongPrice; evnPhoneNumCnt++; evnLongMsgCnt++; $("#evnPhoneNumCnt").val(evnPhoneNumCnt); $("#evnLongMsgCnt").val(evnLongMsgCnt); }else{//이벤트 금액으로 보낼수 없으면 카운팅 중지 evnMsgCntSts = false; } }else{ msg_short++; if(evnRemainCash >= evnShortPrice && evnMsgCntSts == true){//이벤트 금액으로 발송할 수 있으면 카운팅 evnRemainCash = evnRemainCash - evnShortPrice; evnPhoneNumCnt++; evnShortMsgCnt++; $("#evnPhoneNumCnt").val(evnPhoneNumCnt); $("#evnShortMsgCnt").val(evnShortMsgCnt); }else{//이벤트 금액으로 보낼수 없으면 카운티 중지 evnMsgCntSts = false; } } } replTotalPriceSum(msg_short, msg_long, totRows); //첫번째 수신자의 변환 텍스트 내용을 적용하여 미리보기 문자내용에 보여주자. if(j == 0){ //미리보기에 내용 입력해 주기 if(adverTxt.length > 0){ $('.realtime').text(orgSmsTxt); }else{ $('.realtime').text(smsTxt); } } //일괄변환문자 포함 여부 변경 //$('#txtReplYn').val("Y") } //변환후 문자 중에 장문이 1개 이상 있는 경우 문자 제목을 입력해 주기 /*var txtReplYn = $('#txtReplYn').val(); if(txtReplYn == 'Y' && (msg_long > 0 || imgCnt > 0 )){ //장문, 그림 문자가 포함되어 있는 경우 제목을 입력하도록 처리 $('#mmsSubject').attr("disabled", false); }else if(txtReplYn == 'Y' && msg_long < 1){ //일괄변환에 단문문자만 있는경우 제목 입력 안되도록 처리 $('#mmsSubject').val(""); $('#mmsSubject').attr("disabled", true); }*/ } } } //치환문자 replaceAll 기능 처리하는 함수 function stringReplaceAll(str, a, b){ return str.split(a).join(b); }