﻿<?php
/**
 * 飲食店業態向けタブレット（TTO） COM-PASS 未精算伝票問い合わせ
 * @name  compass_slip_request.php
 * @category web function
 * @since 2012-11-01
 * @version 1.0.2
 * @update 2012-11-01
 * @copyright almex.inc
 * @author s.kurata
 * @method GET or POST
 * @param android_id: AndroidID
 * @param term_class: 端末種別
 * @return JSON
 */
	require_once 'const.compass_def.php';

	require_once '../lib/const.mcs.php';
	require_once '../lib/sysinfo.php';
	require_once '../lib/class.httpget.php';
	require_once '../lib/class.util.php';
	//	ver 1.0.2  2017-06-16  新規 START  CSL：ASTA様向けAL-POS開発
	require_once '../lib/SQL.mySQL.php';
	//	ver 1.0.2  2017-06-16  新規 END    CSL：ASTA様向けAL-POS開発
	

	/*テストコード*//*
	$_REQUEST['android_id'] = '2be5aea1ba9a572c';
	$_REQUEST['term_class'] = 'RTIS1';
	/* */
	
	$ip = getenv("REMOTE_ADDR");

	$ResultObj = '';
	$json = '';
	
	//テーブル情報取得
	$rstatrow = false;
	$tableStatus = false;
	if ( isset($_REQUEST['android_id']) && isset($_REQUEST['term_class']) ){
		$termId = mysql_real_escape_string($_REQUEST['android_id']);
		$termClass = mysql_real_escape_string($_REQUEST['term_class']);
		//$rstatrow = getroomstateFromTerm($termid,$termclass);
		$tableRow = TableUtil::getTableRec($termId, $termClass);
		$termRow = TermUtil::getTermMaster($termId, $termClass);
		$tableCode = TableUtil::getTableCode($termId, $termClass);
		if ($tableCode !== false) {
			$tableStatus = TableUtil::getTableStatus($tableCode);
		}
	}
	
	$ErrorStatus = CONST_COMPASS::JSON_STATUS_UNKOWN;	//-9001;
	
	if ($tableStatus === false) {
		//テーブル情報が取得失敗
		$ResultObj = COMMON_COMPASS::cretaeResultJson($ErrorStatus,'Status Empty');
		$json = json_encode($ResultObj);
		COMMON_COMPASS::endProc($json);
	}
	if ($tableStatus != CONST_MCS::TABLESTATUSCODE_EXIST) {
		//在席中以外処理中止
		$ResultObj = COMMON_COMPASS::cretaeResultJson($ErrorStatus,'Status Not Exist');
		$json = json_encode($ResultObj);
		COMMON_COMPASS::endProc($json);
	}
	
	
	//	ver 1.0.1  2016-07-15  新規 START  Naito.Y：ASTA様向けAL-POS開発
	//	ver 1.0.2  2017-06-16  変更 START  CSL：ASTA様向けAL-POS開発
	//$currencySet = array();			// 補助通貨桁数・最大貨幣
	//$currencySet = NameUtil::getNameMaster(CONST_MCS::NAMEDATACODE_CURRENCYSETTING);
	$sys = new System_Info();
	$db = new queryUtils($sys->getDbServer(), $sys->getDbUserId(), $sys->getDbPassword(), $sys->getDbName1(), '');
	$currencySet = array();			// 補助通貨桁数・最大貨幣
	$currencySet = NameUtil::getNameMaster(CONST_MCS::NAMEDATACODE_CURRENCYSETTING, $db);
	//	ver 1.0.2  2017-06-16  変更 START  CSL：ASTA様向けAL-POS開発
	$iAuxiliaryCurrencyUnit = 0;	// 初期値 = 10の0乗で割る→1で割る、小数点つかない
	if ( ($currencySet === false) || empty($currencySet) ) {
		// 初期値 = 0 のまま
	} else {
		foreach ($currencySet as $nm) {
			if($nm['nLinkCode'] == 1) {
				$iAuxiliaryCurrencyUnit = $nm['dwData1'];	// 付帯情報1=補助通貨桁数
			}
		}
	}
	$iDecimalPoint = pow(10, $iAuxiliaryCurrencyUnit);		// 補助通貨桁数：0->1/1, 1->1/10, 2->1/100
	//	ver 1.0.1  2016-07-15  新規 START  Naito.Y：ASTA様向けAL-POS開発
	
	
	$ret = '';
	
	$tableStatusRow = TableUtil::getTableStatusRec($tableCode);
	$url = createHostIfURL();
	$data = array();
	$data['termcode'] = $termRow['termcode'];
	$data['tablecode'] = $tableCode;
	$data['tablename'] = $tableRow['cTableName'];
	$data['order_num'] = $tableStatusRow['nSlipNo'];
	$data['managedate'] = $tableStatusRow['nSlipManageDate'];
	
	$http = new httpcontent(0,3,10);//リトライ0回/リトライ間隔3秒/各10秒
	$hostresult = $http->contents_post($url,$data,$retcount);
	if (!($hostresult === false || $hostresult == 'NG')){
		$HostArr = json_decode($hostresult, true);
		if ($HostArr['status'] == 0) {
			$ErrorStatus = CONST_COMPASS::JSON_STATUS_NORMAL;	//0;
		} else {
			$ErrorStatus = CONST_COMPASS::JSON_STATUS_FAILED;	//-2001;
		}		
		$ResultObj = COMMON_COMPASS::cretaeResultJson($ErrorStatus,'Order Completed HostType is Over Serius');
		$ResultObj['result'] = $HostArr['result'];
		
		
		//	ver 1.0.1  2016-07-15  新規 START  Naito.Y：ASTA様向けAL-POS開発
		for ($i = 0; $i < count($ResultObj['result']['item_list']); $i++) {
			$ResultObj['result']['item_list'][$i]['item_value']       = $ResultObj['result']['item_list'][$i]['item_value']       / $iDecimalPoint;
			$ResultObj['result']['item_list'][$i]['item_total_value'] = $ResultObj['result']['item_list'][$i]['item_total_value'] / $iDecimalPoint;

			if (array_key_exists('sub_list', $ResultObj['result']['item_list'][$i])) {
				/* 'sub_list' が存在する場合のみ実行する */
				for ($j = 0; $j < count($ResultObj['result']['item_list'][$i]['sub_list']); $j++) {
					$ResultObj['result']['item_list'][$i]['sub_list'][$j]['sub_item']['item_value']       = $ResultObj['result']['item_list'][$i]['sub_list'][$j]['sub_item']['item_value']       / $iDecimalPoint;
					$ResultObj['result']['item_list'][$i]['sub_list'][$j]['sub_item']['item_total_value'] = $ResultObj['result']['item_list'][$i]['sub_list'][$j]['sub_item']['item_total_value'] / $iDecimalPoint;
				}
			}
		}
		$ResultObj['result']['total_value']    = $ResultObj['result']['total_value']    / $iDecimalPoint;
		$ResultObj['result']['discount_value'] = $ResultObj['result']['discount_value'] / $iDecimalPoint;
		$ResultObj['result']['charge']         = $ResultObj['result']['charge']         / $iDecimalPoint;
		//	ver 1.0.1  2016-07-15  新規 END    Naito.Y：ASTA様向けAL-POS開発
		
		$json = json_encode($ResultObj);
	} else {
		$ErrorStatus = CONST_COMPASS::JSON_STATUS_UNKOWN;	//-9001;
		$ResultObj = COMMON_COMPASS::cretaeResultJson($ErrorStatus,'Host No Result');
		$json = json_encode($ResultObj);
	}
	
	//	ver 1.0.2  2017-06-16  新規 START  CSL：ASTA様向けAL-POS開発
	$db->closeDB();
	//	ver 1.0.2  2017-06-16  新規 END    CSL：ASTA様向けAL-POS開発
	
	COMMON_COMPASS::endProc($json);
	
	//ホストインターフェースURLの生成
	function createHostIfURL() {
		$url = false;
		$sys = new System_Info();
		$hostIp = $sys->getHostIpAddr();
		$hostPort = $sys->getHostPort();
		$url = 'http://'.$hostIp.':'.$hostPort.'/sliprequest';
		return $url;
	}

?>