rosewiper 2024-01-12
카카오 친구톡 발송화면 Tabulator 적용중
@a94a7529cddea0876130ec2a187ecfe438f530bc
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkSendController.java
@@ -76,9 +76,11 @@
 		String author = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getAuthority());
 		String userId = loginVO == null ? "" : EgovStringUtil.isNullToString(loginVO.getId());
 		
-		if(userId == "") {
+		/*if(userId == "") {
 			return "redirect:/web/user/login/login.do";
-		}
+		}*/
+		
+		model.addAttribute("loginVO", loginVO);
 		
 		try {
 			
src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
--- src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
+++ src/main/java/itn/let/kakao/user/kakaoFt/web/KakaoFriendsTalkTemplateController.java
@@ -651,6 +651,11 @@
 	        paginationInfo.setTotalRecordCount(kakaoTemplateInfoList.size() > 0 ? ((KakaoVO)kakaoTemplateInfoList.get(0)).getTotCnt() : 0);
 			model.addAttribute("paginationInfo", paginationInfo);
 			
+			//사용자 등록 발신프로필 정보 조회해오기
+			searchVO.setUserId(userId);
+			List<KakaoVO> resultProfileList = kakaoApiService.selectKakaoProfileList(searchVO);
+			model.addAttribute("resultProfileList", resultProfileList);
+			
 		} catch (Exception e) {
 			System.out.println("selectKakaoFriendsTemplateListAjax Controller Error !!! " + e);
 		}
src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/include/KaKaoAlimtalkTopMenuTap.jsp
@@ -1,7 +1,6 @@
 <%@ page language="java" contentType="text/html; charset=UTF-8" %>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
-<%@ page import="itn.com.cmm.LoginVO" %>
 
 <script type="text/javascript">
 
src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/msgdata/ft/KakaoFriendsTalkMsgDataView.jsp
@@ -6,16 +6,19 @@
 
 <script src="/js/kakao/templateComm.js"></script>
 
-<script type="text/javascript" src="<c:out value='/js/kakao/at/tabulator.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/MJUtill.js' />"></script>
+<script type="text/javascript" src="<c:out value='/js/kakao/ft/ftTabulator.js' />"></script>
 <script type="text/javascript" src="<c:out value='/js/kakao/at/addr.js' />"></script>
 <script type="text/javascript" src="<c:out value='/js/common/popup.js' />"></script>
 <script type="text/javascript" src="<c:out value='/js/kakao/ft/friendstalkExcel.js' />"></script>
+
 
 <script type="text/javascript">
 /* 파일등록 */
 var _fileIdx = 0;
 var _fileForm2 = new Array();
 var fileExt = ""; // 첨부파일 확장자
+var excelAddr = []; //엑셀 불러오기에서 내용 저장하는 배열 변수
 
 $(document).ready(function (){
 	
@@ -44,6 +47,27 @@
 		
 		var contents = $('#inputTemplateContent').val();
 		setContentsLengForFriends(contents);
+		
+	});
+	
+	$("#excelAdd").click(function(){
+		
+		if(excelAddr.length > 0){
+			
+			//첨부파일로 불러온 데이터를 받는사람 목록에 추가해 준다.
+			addPhoneInfo(excelAddr);
+			
+			 //첨부파일 초기화 시켜주기
+		    $("#excelFile").val("");
+		    $("#excelNm").val("");
+			
+		}else{
+			
+			alert("추가 엑셀 데이터가 없습니다.");
+			return false;
+			
+		}
+		
 		
 	});
 });
@@ -87,9 +111,11 @@
 	
 	//미리보기에 이미지 표시해주기
 	var imgUrl = '${resultTemplateVO.templateImageUrl}';
-	$('.kakao_image').css("display", "block");
-	$("#kakaoImg").attr("src", imgUrl);
 	
+	if(imgUrl != ''){
+		$('.kakao_image').css("display", "block");
+		$("#kakaoImg").attr("src", imgUrl);
+	}
 	
 	//초기 템플릿 내용 글자수 처리해주기
 	var tmpContents = $('#inputTemplateContent').val();
@@ -585,6 +611,13 @@
 	
 });
 
+function fnEmptyId(){
+	
+	alert("로그인 후 이용이 가능합니다.");
+	return false;
+	
+}
+
 </script>
 
 <!-- 로딩바 -->
@@ -636,7 +669,7 @@
 								<tr>
 									<th>채널ID</th>
 									<td>
-										<label for="" class="채널ID 선택"></label>
+										<label for="selectAgentCode" class="채널ID 선택"></label>
 										<select class="select_gray_type" name="selectAgentCode" id="selectAgentCode" onchange="javascript:fnAgentCodeChg();">
 											<option value="">채널ID 선택</option>
 											<c:forEach var="kakaoProfileInfo" items="${resultProfileList}" varStatus="status">
@@ -842,10 +875,25 @@
 												</div>
 											</div>
 											<div class="btn_popup_wrap template_call_wrap">
-												<button type="button" class="btnType btnType8" onclick="window.open('/web/mjon/kakao/template/selectKakaoFriendsTemplateListPopupAjax.do','_blank','width=930, height=780, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes')">템플릿 불러오기</button>
+												<c:choose>
+													<c:when test="${not empty loginVO.id}">
+														<button type="button" class="btnType btnType8" onclick="window.open('/web/mjon/kakao/template/selectKakaoFriendsTemplateListPopupAjax.do','_blank','width=930, height=780, top=100, left=100, fullscreen=no, menubar=no, status=no, toolbar=no, titlebar=yes, location=no, scrollbars=yes')">템플릿 불러오기</button>
+													</c:when>
+													<c:otherwise>
+														<button type="button" class="btnType btnType8" onclick="javascript:fnEmptyId();">템플릿 불러오기</button>
+													</c:otherwise>
+												</c:choose>
 											</div>
 											<div class="send_btnWrap">
-												<button type="button" class="btnType btn_text_save" onclick="javascript:myTemplateSave();">내용 저장하기</button>
+												<c:choose>
+													<c:when test="${not empty loginVO.id}">
+														<button type="button" class="btnType btn_text_save" onclick="javascript:myTemplateSave();">내용 저장하기</button>
+													</c:when>
+													<c:otherwise>
+														<button type="button" class="btnType btn_text_save" onclick="javascript:fnEmptyId();">내용 저장하기</button>
+													</c:otherwise>
+												</c:choose>
+												
 												<button type="button" class="btnType btnType9" onclick="javascript:fnContentsReset();">초기화</button>
 											</div>
 										</div>
@@ -854,7 +902,7 @@
 								<tr>
 									<th>버튼</th>
 									<td class="template_button">
-										<select name="" id="" class="select_gray_type template_button_select">
+										<select name="tmpBtnSelect" id="tmpBtnSelect" class="select_gray_type template_button_select">
 											<option value="button_type_0">버튼타입 선택</option>
 											<option value="button_type_1">배송조회</option>
 											<option value="button_type_2">웹링크</option>
@@ -999,16 +1047,16 @@
 									<td class="putText">
 										<div class="clearfix receipt_num">
 											<div class="receipt_num_top">
-												<label for="" class="label">받는 번호입력</label>
-												<input type="text" placeholder="번호를 입력하세요" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'" style="width:340px;">
-												<button type="button" class="btnType btnType6">번호추가</button>
+												<label for="callTo" class="label">받는 번호입력</label>
+												<input type="text" placeholder="번호를 입력하세요" id="callTo" name="callTo" onfocus="this.placeholder=''" onblur="this.placeholder='번호를 입력하세요'" style="width:340px;">
+												<button type="button" class="btnType btnType6 addCallToF">번호추가</button>
 												<span><span class="vMiddle">*</span> 중복번호는 한번만 발송됩니다.</span>
 											</div>
 											<div class="receipt_num_midde">
 												<div class="listType list01 callList_box"  id="callList_box">
 													<div class="list_table list_head">
 														<div class="cb_wrap">
-															<label for="" class="label"></label>
+															<label for="select_all" class="label"></label>
 															<input type="checkbox" id="select_all">
 														</div>
 														<div class="list_table_num">
@@ -1091,7 +1139,8 @@
 								<tr>
 									<th colspan="2" class="replace_send_th">
 										<div class="title_th"><p>대체문자</p> 
-											<input type="checkbox" id="send_fail_check" class="send_fail_check"><label for="send_fail_check">친구톡 전송 실패 시 문자 전송</label>
+											<input type="checkbox" id="send_fail_check" class="send_fail_check">
+											<label for="send_fail_check">친구톡 전송 실패 시 문자 전송</label>
 										</div>
 										<div class="replace_send_wrap">
 											<table class="tType1">
@@ -1103,7 +1152,7 @@
 													<tr>
 														<th>발신번호</th>
 														<td>
-															<label for="callFrom" class="label"></label>
+															<label for="callFromList" class="label"></label>
 															<select id="callFromList" name="callFromList" class="sel_number">
 																<c:choose>
 																	<c:when test="${not empty resultPhonList}">
@@ -1210,7 +1259,7 @@
 											<input type="text" class="startDate2 inp resDate calendar picker__input picker__input--active" title="검색 시작일" id="startDate2" name="startDate2" value="" data-datecontrol="true" readonly="" aria-haspopup="true" aria-expanded="true" aria-readonly="false" aria-owns="startDate2_root">
 										</div>
 										<div class="selBox">
-											<label for="" class="label">시 선택</label>
+											<label for="msgResHour" class="label">시 선택</label>
 											<select class="selType1" id="msgResHour" name="msgResHour">
 												<c:forEach  var="hour"  begin="0" end="23" step="1" varStatus="status">
 													<c:choose>
@@ -1223,7 +1272,7 @@
 													</c:choose>
 												</c:forEach>
 											</select>
-											<label for="" class="label">분 선택</label>
+											<label for="msgResMin" class="label">분 선택</label>
 											<select class="selType1" id="msgResMin" name="msgResMin">
 												<c:forEach var="min" begin="0" end="55" step="5">
 													<c:choose>
@@ -1240,7 +1289,7 @@
 									</div>
 									<div class="rev_bottom">
 										<input type="checkbox" id="inputDivideChk" name="inputDivideChk">
-										<label for="">분할전송</label>
+										<label for="inputDivideChk">분할전송</label>
 										<select class="selType1" id="divideCnt" name="divideCnt">
 					 						<option value="2">2</option>
 					 						<option value="10">10</option>
@@ -1288,7 +1337,7 @@
 					<input type="hidden" name="searchCondition" id="searchCondition" value="0" />
 					<div class="adr_pop_left">
 						<div class="adr_left_search">
-							<label for="searchKeyword" class="label">그룹명 검색</label>
+							<label for="searchGrpKeyword" class="label">그룹명 검색</label>
 							<input type="text" name="searchGrpKeyword" id="searchGrpKeyword"  placeholder="그룹명 검색" onfocus="this.placeholder=''" onblur="this.placeholder='그룹명 검색'" class="inputLight">
 							<button type="button" onClick="javascrit:fnAddrGrpSearch(); return false;"><img src="/publish/images/popup/search.png" alt="검색"></button>
 						</div>
@@ -1353,7 +1402,7 @@
 						<button type="button" class="excel_btn" onclick="location.href='/download/msg/엑셀주소록_등록양식.xlsx'"><i class="downroad"></i>샘플파일 다운로드</button>
 					</div>
 					<div class="attachedFile">
-						<label for="" class="attachedFile_label">첨부파일</label>
+						<label for="excelNm" class="attachedFile_label">첨부파일</label>
 						<input type="text" id="excelNm" value="" readonly>
 						<input type="file" id="excelFile" accept=".xls, .xlsx" onchange="excelExport(event); return false;" style="display:none"/>
 						<button type="button" class="btnType btnType6 c1">찾아보기</button>
@@ -1362,7 +1411,7 @@
 					</div>
 				</div><!--// 엑셀파일 불러오기 -->
 				<div class="popup_btn_wrap2">
-					<button type="button" class="tooltip-close" data-focus="popup02-close"  data-focus-next="popup02" onclick="excelAdd()">추가</button>
+					<button type="button" class="tooltip-close" data-focus="popup02-close"  data-focus-next="popup02" id="excelAdd">추가</button>
 					<button type="button" class="tooltip-close" data-focus="popup02-close"  data-focus-next="popup02">닫기</button>                      
 				</div>
 			</div>
src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateList.jsp
@@ -426,7 +426,7 @@
 								</c:forEach>
 	                        </select>
 	                        <div class="search">
-	                            <label for="id" class="label"></label>
+	                            <label for="inputSearchKeyword" class="label"></label>
 	                            <input type="text" class="search_input" id="inputSearchKeyword" name="inputSearchKeyword" value="<c:out value=""/>" placeholder="템플릿명을 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요.'">
 	                            <button type="button" class="btnType btnType2" onclick="selectTemplateListLoad('1');">검색</button>
 	                        </div>
src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp
--- src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp
+++ src/main/webapp/WEB-INF/jsp/web/kakao/template/ft/KakaoFriendstalkTemplateListPopupAjax.jsp
@@ -106,7 +106,8 @@
 	function selectTemplateListLoad(page){
 		
 		var form = document.listForm;
-		
+		form.searchKeyword.value = $("#inputSearchKeyword").val();
+		form.senderKey.value = $("select[name='selectAgentCode_select']").val();
 		form.pageIndex.value = page;
 		form.action = "/web/mjon/kakao/template/selectKakaoFriendsTemplateListPopupAjax.do";
 		form.submit();
@@ -123,9 +124,11 @@
 
 </script>
 <body>
+
 	<form id="listForm" name="listForm" method="post">
 		<input type="hidden" id="pageIndex" name="pageIndex" value="1"/>
-		
+		<input type="hidden" id="searchKeyword" name="searchKeyword" value=""/>
+		<input type="hidden" id="senderKey" name="senderKey" value=""/>
 	</form>
 	<div class="info_popup ad_layer template_choice_popup adpopup01" style="width:930px;">
         <div class="popup_heading">
@@ -133,21 +136,22 @@
         </div>
         <div class="layer_in">
             <div class="popup_search_wrap type2 grayborder grayfill">
-                <select name="" id="" class="popup_select_type template_type">
-                    <option value="">전체메시지</option>
+                <select name="selectAgentCode_select" id="selectAgentCode_select" class="selType2">
+                    <option value="">채널ID 선택</option>
+					<c:forEach var="kakaoProfileInfo" items="${resultProfileList}" varStatus="status">
+						<option value="${kakaoProfileInfo.senderKey}" <c:if test="${searchVO.senderKey eq kakaoProfileInfo.senderKey}">selected</c:if> ><c:out value='${kakaoProfileInfo.yellowId}'/></option>
+					</c:forEach>
                 </select>
-                <select name="" id="" class="popup_select_type emphasis_type">
-                    <option value="">정렬방법</option>
-                </select>
-                <input type="text" placeholder="템플릿명을 입력해주세요." class="inputType template_name">
-                <button type="button" class="popup_button_type bluefill">검색</button>
+                <label for="searchKeyword" class="label"></label>
+                <input type="text" class="search_input" id="inputSearchKeyword" name="inputSearchKeyword" value="<c:out value="${searchVO.searchKeyword}"/>" placeholder="템플릿명을 입력하세요." onfocus="this.placeholder=''" onblur="this.placeholder='검색어를 입력하세요.'">
+                <button type="button" class="btnType btnType2" onclick="selectTemplateListLoad('1');">검색</button>
             </div>
             <div class="template_list">
                 <ul class="kakao_template_list thumbnail_list">
                 	<c:choose>
         				<c:when test="${not empty kakaoTemplateInfoList}">
 		                	<c:forEach var="templatInfoList" items="${kakaoTemplateInfoList}" varStatus="status">
-			                    <li>
+			                    <li onClick="fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;" style="cursor:pointer;">
 			                        <div class="kakao_template_wrap">
 			                            <div class="template_cont">
 			                                <div class="title">
@@ -177,10 +181,10 @@
 					                    	<p class="cf_text">수신거부 | 홈 > 채널차단</p>
 					                    </c:if>
 			                        </div>
-			                        <div class="btn_wrap">
+			                        <%-- <div class="btn_wrap">
 			                            <button type="button" class="btnType btnType3 btn_template_use" onClick="fnTemplateDetail('<c:out value="${templatInfoList.friendId}"/>'); return false;">템플릿 사용하기</button>
-			                        </div>
-			                        <%-- <div class="kakao_template_info">
+			                        </div> --%>
+			                        <div class="kakao_template_info">
 			                        	<dl>
 				                            <dt>템플릿명</dt>
 				                            <dd>
@@ -191,7 +195,7 @@
 			                                <dt>등록일</dt>
 			                                <dd><c:out value="${templatInfoList.frstRegistPnttm}"/></dd>
 			                            </dl>
-			                        </div> --%>
+			                        </div>
 			                    </li>
 		                    </c:forEach>
 	                	</c:when>
src/main/webapp/js/kakao/ft/friendstalkExcel.js
--- src/main/webapp/js/kakao/ft/friendstalkExcel.js
+++ src/main/webapp/js/kakao/ft/friendstalkExcel.js
@@ -29,6 +29,130 @@
 //엑셀 파일 불러오기
 function excelExport(event){
 	
+	var data = new FormData(document.excelForm);
+	data.append("file0", $('#excelFile').prop('files')[0]);
+	
+	var fileValue = $("#excelFile").val().split("\\");
+	var fileName = fileValue[fileValue.length-1];
+	
+	var fileExt = fileName.split('.').pop().toLowerCase();
+
+	if(fileExt.length > 0){
+		if($.inArray(fileExt, ['txt','xls','xlsx']) == -1) {
+
+			alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
+			return false;
+
+	   	}
+	   
+		
+		var url = "";
+		
+		if(fileExt == "xls" || fileExt == "xlsx"){
+			
+			url = "/web/mjon/msgdata/sendExelFilePhoneNumAjax.do";
+			
+		}else if(fileExt = "txt"){
+			
+			url = "/web/mjon/msgdata/sendTxtFilePhoneNumAjax.do";
+			
+		}else{
+			
+			alert('txt, xls, xlsx 파일만 업로드 할수 있습니다.');
+			return;
+			
+		}
+		
+		//엑셀 데이터 변수에 자료가 있으면 지워준다.
+	   	if(excelAddr.length > 0){
+	    	
+	    	excelAddr = [];
+	    	
+	    }
+		
+		$.ajax({
+	        type: "POST",
+	        enctype: 'multipart/form-data',
+	        url: url,
+	        data: data,
+	        dataType:'json',
+	        async: true,
+	        processData: false,
+	        contentType: false,
+	        cache: false,
+	        //timeout: 600000,
+	        success: function (returnData, status) {
+				if(status == 'success'){ // status 확인 필요한가. 석세스 안뜨면 에러 가지 않나
+					
+					if(returnData.success){
+						
+						var data = returnData.data;
+						var message = returnData.message;
+						
+						if(message != '' ){
+							alert(returnData.message);
+						}
+						
+						if(data != null){
+							
+							$.each(data, function(i, item){
+								
+								if(checkHpNum(item.phone)){
+								
+									excelAddr.push({phone: item.phone, name: item.name, rep1: item.replace1, rep2: item.replace2, rep3: item.replace3, rep4: item.replace4});
+									console.log(item.phone);
+								}/* else{
+									
+									alert("엑셀 파일 데이터의 형식이 맞지 않는 부분이 있습니다.");
+					        		excelAddr = []; //엑셀 데이터 저장 변수 초기화
+					        		$("#excelFile").val(""); //첨부파일 input 초기화
+					        	    $("#excelNm").val("");  // 첨부파일 명 초기화
+					        	    fileName = "";
+					        		return;
+									
+								} */
+							 
+							});
+	
+						}
+						
+					}else{
+						alert(returnData.message);
+// 						alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
+						excelAddr = []; //엑셀 데이터 저장 변수 초기화
+		        		$("#excelFile").val(""); //첨부파일 input 초기화
+		        	    $("#excelNm").val("");  // 첨부파일 명 초기화
+		        	    fileName = "";
+						return;
+						
+					}
+				} else if(status== 'fail'){
+					alert("첨부파일 불러오는 중 오류가 발생하였습니다.");
+					console.log("status : fail ~");
+				}
+			},
+			error: function (e) { 
+	        	alert("첨부파일 불러오는 중 오류가 발생하였습니다."); 
+	        	console.log("ERROR : ", e); 
+	        },
+			beforeSend : function(xmlHttpRequest) {
+	        	//로딩창 show
+	        	$('.loading_layer').addClass('active');				
+			},	        	        
+	        complete : function(xhr, textStatus) {
+	        	//로딩창 hide
+	        	$('.loading_layer').removeClass('active');
+			}
+	    });
+		
+		$("#excelFile").val("");
+	    $("#excelNm").val(fileName); 
+		
+	}
+	
+}
+/*function excelExport(event){
+	
 	var fileValue = $("#excelFile").val().split("\\");
 	var fileName = fileValue[fileValue.length-1];
 	
@@ -48,7 +172,7 @@
 		
 	}
 	
-}
+}*/
 
 
 //엑셀파일 자료 데이터베이스에 입력해주기
src/main/webapp/js/kakao/ft/ftTabulator.js
--- src/main/webapp/js/kakao/ft/ftTabulator.js
+++ src/main/webapp/js/kakao/ft/ftTabulator.js
@@ -3,7 +3,7 @@
  * @author 		: 우영두
  * @fileName 	: ftTabulator.js 
  * @date 		: 2024.01.09
- * @description : tabulator 관련 js
+ * @description : 받는사람 목록 tabulator 관련 js
  * =========================================================== 
  * DATE          AUTHOR   NOTE 
  * ----------------------------------------------------------- *
@@ -14,7 +14,7 @@
  */
 
 $(document).ready(function (){
-	/**
+	
 	//받는사람 연락처 내용 처리
 	//Tabulator AJAX Data Loading
 	tableL = new Tabulator(".callList_box", {
@@ -88,7 +88,7 @@
 
 	});
 	
-	 */
+	 
 	//주소록 불러오기 팝업 내용
 	//Tabulator AJAX Data Loading
 	tableAddr = new Tabulator(".callAddr_box", {
@@ -147,38 +147,57 @@
 		
 		//핸드폰 번호에 '-' 문자 제거하기
 		callToNum = removeDash(callToNum);
-
-		  var dpCnt = 0;
-		$(".phoneArea p").each(function(index, item){
-			if(this.textContent == callToNum){
-				
-				dpCnt++;
-				
-				alert("받는사람 리스트에 동일한 연락처가 있습니다.");
-		    	$('#callTo').val("");
-		    	return false;
-			}
-		});
+	    
+	    //기존 받는사람 연락처 모두 불러오기
+	    var data = tableL.getRows();
+	    var tableData = [];
+	    var dpCnt = 0;
+	    for(var i=0; i < tableL.getRows().length; i++){
+	    	
+	    	if(callToNum == data[i].getData().phone){
+	    		
+	    		dpCnt++;
+	    	
+	    	}
+	    	
+	    }
+	    
+	    if(dpCnt > 0){
+	    	
+	    	alert("받는사람 리스트에 동일한 연락처가 있습니다.");
+	    	$('#callTo').val("");
+	    	return false;
+	    
+	    }else{
+	    	
+	    	tabledata = [{phone: callToNum},];
+	    	
+	    	//빈 row 데이터 삭제하기
+	    	var befData = tableL.getRows();
+	    	var totLen = tableL.getRows().length;
+	    	
+	    	for(var i=0; i < totLen; i++){
+		    	
+		    	tableData.push({phone: data[i].getData().phone.trim(), name: data[i].getData().name});
+		    	
+		    }
+			
+	    	//연락처 추가해 주기
+			addPhoneInfo(tabledata);
+	    	
+		    //tableL.addData(tabledata);
+		    
+		    //전체 데이터 갯수 구하기
+		    //totRows = tableL.getRows().length;
+		    //updateTotCnt(totRows);
+		    
+		    //결제 금액 구하기
+		    totalPriceSum(totRows);
+		    
+		    $('#callTo').val("");
+	    
+	    }
 		
-		if(dpCnt > 0){
-			alert("받는사람 리스트에 동일한 연락처가 있습니다.");
-			$('#callTo').val("");
-			return false;
-		}else{
-			// fn_displayJsonToHtmlTable 재사용을 위한
-			// 파라미터 형변환
-			var data =[];
-			data.push({ phone: callToNum, name: ''});
-			fn_displayJsonToHtmlTable(data);
-			
-			/*
-			 * 토탈 카운트 화면에 노출
-			 */ 
-			updateTotCnt();	
-			
-			// 번호 추가란 초기화
-			$('#callTo').val('');
-		}
 	});
 	
 	
@@ -449,68 +468,104 @@
 }
 
 //주소록 불러오기에서 수신자 리스트 화면에 추가해주기
-function addPhoneInfo(taData){
+function addPhoneInfo(data){
 	
-	if(taData == null){
+	if(data == null){
+		
 		alert("연락처 정보가 없습니다.");
 		return;
+		
+	}else{
+		
+		var idx = 0;
+		var newData = data;//중복 연락처는 하나만 남기고 모두 제거
+		
+		var recTableData = tableL.getRows();		 // 받는사람 리스트의 전체 목록을 저장
+		var tableData = [];
+		
+		//기존 받는사람 리스트를 배열에 미리 담아둔다.
+		if(recTableData.length > 0){
+			
+			for(var j=0; j < recTableData.length; j++){
+				
+				tableData.push({phone: removeDash(recTableData[j].getData().phone) , name: recTableData[j].getData().name, rep1: recTableData[j].getData().rep1, rep2: recTableData[j].getData().rep2, rep3: recTableData[j].getData().rep3, rep4: recTableData[j].getData().rep4});
+			
+			}
+		
+		}
+		
+		//받는사람 리스트를 담아둔 배열에 신규 추가 데이터를 추가해 준다.
+		for(var i=0; i < newData.length; i++){
+			
+			tableData.push({phone: removeDash(newData[i].phone) , name: newData[i].name, rep1: newData[i].rep1, rep2: newData[i].rep2, rep3: newData[i].rep3, rep4: newData[i].rep4});
+			
+		}
+		
+		var temp = tableData.length;
+		
+		//기존 수신 리스트를 지워준 후 신규 전체 리스트를 추가해준다.
+		tableL.clearData(); //기존 받는사람 목록을 삭제.
+		tableL.addData(dupliPhoneData(tableData)); // 받는사람 목록에 주소 정보 입력하기
+		_fileForm2 = []; //form file data 초기화
+		_fileIdx = 0;	//form file idx 초기화
+		
+		totRows = tableL.getRows().length; 
+		updateTotCnt(totRows); //전체 데이터 갯수 구하기
+		
+		var smsTxtArea = $('#smsTxtArea').val();
+		//일괄변환 문구 결제금액 처리
+		if(smsTxtArea.indexOf("[*이름*]")  > -1 
+				|| smsTxtArea.indexOf("[*1*]") > -1
+				|| smsTxtArea.indexOf("[*2*]") > -1
+				|| smsTxtArea.indexOf("[*3*]") > -1
+				|| smsTxtArea.indexOf("[*4*]") > -1){
+			
+			fnReplCell();
+			
+		}else{
+			
+			//결제 금액 구하기
+		    totalPriceSum(totRows);
+			
+		}
+		
 	}
 	
-	/*
-	* 주소록 데이터 화면에 추가
-	*/
-	this.fn_displayJsonToHtmlTable(taData);
+}
 
-	/*
-	* 토탈 카운트 화면에 노출
-	*/ 
-	this.updateTotCnt();	
+
+function addrToList(){
+	
+	var selectedData = tableAddr.getSelectedRows();
+	var tableData = [];
+	
+	if(selectedData == "" || selectedData == null){
 		
+		alert("주소록을 선택해 주세요.");
+		return false;
+	
+	}else{ // 선택한 Row 데이터 저장해주기
+		
+		for(var i=0; i < selectedData.length; i++){
+			
+			//좌측 받는사람 리스트를 담아둔 배열에 데이터를 추가해 준다.
+			tableData.push({phone: removeDash(selectedData[i].getData().addrPhone), 
+				name: selectedData[i].getData().addrName, 
+				rep1: selectedData[i].getData().addrRep1, 
+				rep2: selectedData[i].getData().addrRep2, 
+				rep3: selectedData[i].getData().addrRep3, 
+				rep4: selectedData[i].getData().addrRep4}
+			);
+		
+		}
+	
+		//선택한 데이터 받는사람 리스트에 추가해 주기
+		addPhoneInfo(tableData);
+		$(".closeAddr").trigger("click");
+		
+		//주소록 레이어 팝업의 Tabulator 데이터 지워주기
+		tableAddr.clearData();
+
+	}
+	
 }
-
-/*
-* 주소록 데이터 화면에 추가
-*/
-function fn_displayJsonToHtmlTable(taData){
-
-	// fn_viewDataInit01();
-	// 치환문자가 있으면 데이터 초기화
-
-
-	var $htmlBody = $('#wrap01_body');
-
-	var addHtml = 	'<div class="list_table list_body excelBody01">'
-					+'\t<div class="cb_wrap">'
-					+'\t\t<label for="" class="label"></label>'
-					+'\t\t<input type="checkbox" class="wrap01C">'
-					+'\t</div>'
-					+'\t<div class="list_table_num phoneArea">'
-					+'\t\t<p>$PHONE$</p>'
-					+'\t</div>'
-					/*23.04.06  이름제거 요청으로인한 화면 이름 제거*/
-					/*+'\t<div class="list_table_name">'
-					+'\t\t<p>$NAME$</p>'
-					+'\t</div>'*/
-					+'</div>';
-
-
-
-
-	var totalDuplCnt = $('#rowDupCnt').text();
-
-	var itemPhone;
-	var itemName;
-	$.each(taData, function(index, item){
-		itemPhone = item.phone;
-		itemName = item.name;
-		//  == null ? '': item.name;
-		if(!phoneDupl(itemPhone))
-			/*23.04.06  이름제거 요청으로인한 화면 이름 제거*/
-//			$htmlBody.append(addHtml.replace('$PHONE$', itemPhone).replace('$NAME$', itemName ??= ''));
-			$htmlBody.append(addHtml.replace('$PHONE$', itemPhone));
-		else
-			totalDuplCnt++;
-	});
-	$('#rowDupCnt').text(totalDuplCnt);
-}
-
Add a comment
List