mjon_git/src/main/webapp/js/txtSpecialReplace.js
2024-12-05 17:35:44 +09:00

581 lines
17 KiB
JavaScript

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);
}