<?php
//	session_start();
//	require_once('./zcommon.php');
//	$self = $_SERVER["PHP_SELF"];

	//writeDB($param);

	function writeDB($param){ global $mysqli;
		if($param=='')return;
		global $error;
		$error='OK';
		global $dbname;
		global $commandlogID; // commandlogのID番号をpacklogに記載する為に利用(2014/12/3)
		$mysqli = connectDB();
		readInsideGroup();

		$referer = $_SERVER['HTTP_REFERER'];

		$sql = "SET NAMES utf8";
		$result = mysqli_query($mysqli, $sql);

		$sql = "insert into commandlog(command,referer) values('$param','$referer')";
		$result = mysqli_query($mysqli, $sql);
		$commandlogID = mysqli_insert_id($mysqli); // commandlogのID番号をpacklogに記載する為に利用(2014/12/3)
		$p = explode(";",$param);
		switch($p[0]){
		case "REGISTJAN":
			$packno=$p[3];
			$jancode=$p[4];
			$sql="SELECT * FROM pack WHERE packno='$packno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row != ''){
				$i=0;
				$productcode = mysqli_result($result, $i, 'productcode');
				$sql="UPDATE productdistributetable SET JANCode='$jancode' WHERE PDcode='$productcode'";
				$result = mysqli_query($mysqli, $sql);
				$sql="UPDATE pack SET JAN='$jancode' WHERE packno='$packno'";
				$result = mysqli_query($mysqli, $sql);
			}

			break;
		case "REGISTLOC":
			$packno=$p[3];
			$locate=$p[4];
			$sql="SELECT * FROM pack WHERE packno='$packno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row != ''){
				$i=0;
				$productcode = mysqli_result($result, $i, 'productcode');
				$sql="UPDATE productdistributetable SET location1='$locate' WHERE PDcode='$productcode'";
				$result = mysqli_query($mysqli, $sql);
			}

			break;

		case "RECALCSTOCKQTY":
			/*	http://zsystem.jp/letip/index.php?mode=writeDB&param=RECALCSTOCKQTY;;2019/10/23 00:00:00;9005;	*/
			$productcode=$p[1];
			if($productcode==''){
				debuglog("全体の在庫再計算");
				$sql="SELECT * FROM ProductDistributeTable ORDER BY pdcode";
				$result = mysqli_query($mysqli, $sql);
				$row = mysqli_num_rows($result);
				if ($row != ''){
					for($i=0;$i<$row;$i++){
						$productcode = mysqli_result($result, $i, 'PDCode');
						checkStockUnderStandardQty($productcode);
					}
				}
			}else{
				// 良品在庫数を商品マスターに書き込む
				debuglog($productcode."の在庫再計算");
				checkStockUnderStandardQty($productcode);
			}

			break;

		case "INVENTORY": // 棚卸し用コマンドをローカルwriteDBからdbprocに移設 2017/05/24
			$sql = "INSERT INTO pack_inventory(inventoryid,personid,packno,productcode,qty,locate,sublocate,delimitercode) ";
			$sql.= "VALUES('$p[1]','$p[2]','$p[8]','$p[4]',$p[5],'$p[3]',$p[6],'$p[7]')";
			$result = mysqli_query($mysqli, $sql);
			break;

		case "ELLIOBRDSEQ":
			// ELLIO BUSINESS RAW DATA SEQUENCE
			$timestamp = $p[1];
			$personid = $p[2];
			$sequenceno = $p[3];
			$managementno = $p[4];
			if($sequenceno == "START"){
				$timestamp = date ("Y/m/d H:i:s");
				$sql = "UPDATE businessRawdata SET printdatetime='$timestamp' WHERE managementno='$managementno'";
				$result = mysqli_query($mysqli, $sql);
			}else if($sequenceno == "CLEARALL"){
				$sql="UPDATE businessRawdata SET sequenceno='' WHERE sequenceno!=''";
				$result = mysqli_query($mysqli, $sql);
			}else if($sequenceno == "DEL"){
				if(strlen($managementno)==14){
					$sql="UPDATE businessRawdata SET sequenceno='' WHERE orderno='$managementno'";
				}else{
					$sql="UPDATE businessRawdata SET sequenceno='' WHERE managementno='$managementno'";
				}
				$result = mysqli_query($mysqli, $sql);
			} else {
				if(strlen($managementno)==14){
					$sql="UPDATE businessRawdata SET sequenceno='$sequenceno' WHERE orderno='$managementno'";
				}else{
					$sql="UPDATE businessRawdata SET sequenceno='$sequenceno' WHERE managementno='$managementno'";
				}
				$result = mysqli_query($mysqli, $sql);
			}
			break;

		case "BATCHG":
			// 【　バッチ処理　】
			// BATCHG;TIMESTAMP;PERSONCODE;RESERVE;COMMAND;PARAM1;PARAM2;PARAM3;

			// 変数の作成
			$timestamp = $p[1];
			$personid = $p[2];
			if(strstr($personid,",")!=FALSE){
				$pp=explode(',',$personid);
				$personid=$pp[0];
				$lat=$pp[1];
				$lng=$pp[2];
			} else {
				$lat=0;
				$lng=0;
			}
			$reserve = $p[3]; // 未使用
			$command = $p[4]; // コマンド
			$param1 = $p[5]; // パラメータ1
			$param2 = $p[6]; // パラメータ2
			$param3 = $p[7]; // パラメータ3

//			debugLog("BATCHG $command;$param1;$param2;$param3");

			switch($command){
			case 'ORDERNO':
//				debugLog("BATCHG -> ORDERNO");
				switch($param2){
				case 'JITdate':
//					debugLog("BATCHG -> JITdate");
					$sql = "SELECT * FROM pack WHERE orderno='$param1'";
					$result = mysqli_query($mysqli, $sql);
//					debugLog("BATCHG -> $sql");
					if (mysqli_num_rows($result) != 0){
						for($i=0;$i<mysqli_num_rows($result);$i++){
							$packno = mysqli_result($result, $i, 'packno');
//							debugLog("BATCHG ORDERNO $command / $packno -> $param3");
							SetPropAt($timestamp,$personid,$lat,$lng,$packno,$log,'JITdate',$param3);
						}
					}
					break;
				}
				break;
			case 'INVOICENO':
				$sql = "SELECT * FROM pack WHERE invoiceno='$param1'";
				$result = mysqli_query($mysqli, $sql);
				if (mysqli_num_rows($result) != 0){
					for($i=0;$i<mysqli_num_rows($result);$i++){
						$packno = mysqli_result($result, $i, 'packno');
						debugLog("BATCHG $param2 $command / $packno -> $param3");
						SetPropAt($timestamp,$personid,$lat,$lng,$packno,$log,$param2,$param3);
					}
				}
				break;
			}
			break;

		case "SETPROP":
			// 【　プロパティの設定　】
			// SETPROP;TIMESTAMP;PERSONCODE;SRCPACK;LOG;QTY;ORDERNO;PRODUCTCODE;INVOICENO;UNIQUECODE;ASSETS;CLIENT;ISUSED;
			// STANDARD;ATTENTION;DIFFERENCEQTY;COMMENT
			// 空欄は変更なし、DELならクリア
			// 変数の作成

			$timestamp = $p[1];
			$personid = $p[2];
			$srcpackno = $p[3];
			$log = $p[4];
			$qty = $p[5];
			$orderno = $p[6];
			$productcode = $p[7];
			$invoiceno = $p[8];
			$uniquecode = $p[9];
			$assets = $p[10];
			$client = $p[11];
			$isUsed = $p[12];
			$standard = $p[13];
			$attention = $p[14];
			$differenceQty = $p[15];
			$comment = $p[16];
			$attention = str_replace(":","：",$attention);
			$comment = str_replace(":","：",$comment);

			$param = "";
			if($qty != ''){ $param .= "qty=$qty,"; }
			if($orderno != ''){ $param .= "orderno='$orderno',"; }
			if($productcode != ''){ $param .= "productcode='$productcode',"; }
			if($invoiceno != ''){ $param .= "invoiceno='$invoiceno',"; }
			if($uniquecode != ''){ $param .= "uniquecode='$uniquecode',"; }
			if($assets != ''){ $param .= "assets='$assets',"; }
			if($client != ''){ $param .= "client='$client',"; }
			if($isused != ''){ $param .= "isUsed='$isUsed',"; }
			if($standard != ''){ $param .= "standard ='$standard',"; }
			if($attention != ''){
				$logstr=$attention;
				if($attention == 'DEL'){ $attention = ''; $logstr='[削除]';}
				if($attention == '0'){ $attention = ''; $logstr='[削除]';}
				$param .= "attention='$attention',";
				$log.="注意:$logstr,";
			}
			if($differenceQty != ''){ $param .= "differenceQty ='$differenceQty',";}
			if($comment != ''){
				if($comment == 'null'){ $comment = ''; }
				$param .= "comment ='$comment',commentDate ='$timestamp',";
				$log.="情報:$comment,";
			}

			if($orderno == 'DEL'){ $param .= "orderno='',JITdate='0000-00-00 00:00:00',";
				// 予約テーブルの該当ordernoのpacknoをクリア
				$tempsql="SELECT orderno FROM pack WHERE packno='$srcpackno'";
				$tempresult = mysqli_query($mysqli, $tempsql);
				if (mysqli_num_rows($tempresult) == 0){
					$tempsql="UPDATE ReserveTable SET packno='' WHERE OrderNo='$orderno'";
					$tempresult = mysqli_query($mysqli, $tempsql);
				}
				$log.="受注番号:[削除]";
				checkStockUnderStandardQtyFromPack($srcpackno);	// 在庫再計算
			}elseif($orderno !=''){
				$log.="受注番号:$orderno";
				checkStockUnderStandardQtyFromPack($srcpackno);	// 在庫再計算
			}

			if($isused == 'DEL'){ $param .= "isused='',"; }

			$log = "元パック番号:$srcpackno,作業者:$personid,".$log;
			$param .= "timestamp='".date ("Y/m/d H:i:s")."'";

			if($param != ''){
//					$param = mb_substr($param, 0, mb_strlen($param)-1);
				$sql = "UPDATE pack SET $param WHERE packno='$srcpackno'";
				$result = mysqli_query($mysqli, $sql);
			}

			if($log != ""){
				$timestamp = date ("Y/m/d H:i:s");

				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'SETPROP', $srcpackno, $log);

				// タスクログを記録
				addTaskLog($packlogid, $timestamp, $personid, 'SETPROP', '',$srcpackno, '', $qty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'','');

				// 作業者ログ
				$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'SETPROP','$log','$srcpackno','','$productcode','$uniquecode','','$timestamp')";
				$result = mysqli_query($mysqli, $sql);
			}

			break;
		case "SETPROPAT":
			// 【　プロパティの設定　】
			// SETPROP;TIMESTAMP;PERSONCODE;SRCPACK;LOG;対象フィールド;設定値;

			$timestamp = $p[1];
			$personid = $p[2];
			if(strstr($personid,",")!=FALSE){
				$pp=explode(',',$personid);
				$personid=$pp[0];
				$lat=$pp[1];
				$lng=$pp[2];
			} else {
				$lat=0;
				$lng=0;
			}
			$srcpackno = $p[3];
			$log = $p[4];
			$field = $p[5];
			$content = $p[6];

			SetPropAt($timestamp,$personid,$lat,$lng,$srcpackno,$log,$field,$content);
			switch($field){
				case 'productcode':
					$sql="SELECT * FROM ProductDistributeTable WHERE PDcode='$content'";
					$result = mysqli_query($mysqli, $sql);
					$row = mysqli_num_rows($result);
					if ($row != ''){
						$productName = mysqli_result($result, 0, 'ProductName');
						$standard = mysqli_result($result, 0, 'standard');
						$volume = mysqli_result($result3, 0, 'volume');
						if($volume==''){
							// 商品レコードにボリューム情報が無かった場合は、品種情報からボリュームを読み込む
							$kind = mysqli_result($result, 0, 'kind');
							$sql3 = "SELECT * FROM ProductDistributeTable WHERE SUBSTR(PDCode,0,3)='KIN' AND ProductName='$kind'";
							$result3 = mysqli_query($mysqli, $sql3);
							if (mysqli_num_rows($result3) != 0){
								$volume = mysqli_result($result3, 0, 'volume');
							}
						}
						if($volume != ''){
							$sql = "UPDATE pack SET volume='$volume' WHERE packno='$srcpackno'";
							$result = mysqli_query($mysqli, $sql);
						}
						$sql = "UPDATE pack SET productname='$productName',standard='$standard' WHERE packno='$srcpackno'";
						$result = mysqli_query($mysqli, $sql);

					}
				break;
			}
			break;

		case "MAILTO":
			// 【　商品に指定された連絡先にメールする　】
			// MAILTO;TIMESTAMP;PERSONCODE;SRCPACK;タイトル;本文;送信者名

			$timestamp = $p[1];
			$personid = $p[2];
			$packno = $p[3];
			$subject = $p[4];
			$content = $p[5];
			$fromaddress = $p[6];

			$sql = "SELECT * FROM pack WHERE packno='$packno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);

			if ($row != ''){
				$contacts = mysqli_result($result, 0, 'contact');
				if($contacts!=''){
					sendmail($contacts, $content, $subject, $fromaddress);
	//				function sendmail($address, $content, $subject, $fromaddress) {
					$mysqli = connectDB();
				}
			}

			if($log != ""){
				$timestamp = date ("Y/m/d H:i:s");

				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'MAILTO', $packno, $contacts);

				// タスクログを記録
				addTaskLog($packlogid, $timestamp, $personid, 'MAILTO', '',$packno, '', $qty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'','');

				// 作業者ログ
				$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'MAILTO','$contacts','packno','','$productcode','$uniquecode','','$timestamp')";
				$result = mysqli_query($mysqli, $sql);

			}

			break;

		case "ACTLINK":
			// 【　現品票とのリンク　】
			// ACTLINK;TIMESTAMP;PERSONCODE;SRCPACK;ACTUAL CODE;QTY(DUMMY);COUNTER;

			// 変数の作成
			$srcpackno = $p[3];
			$actualcode = $p[4];
			$timestamp = $p[1];
			$personid = $p[2];


			$sql = "select * from ActualTable where ActualCode = '$actualcode'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) != 0){
				$uniquecode = mysqli_result($result, 0, 'UniqueCode');
				$secondarycode = mysqli_result($result, 0, 'SecondaryUniqueCode');
				$productcode = mysqli_result($result, 0, 'ProductCode');
				$ownerid = mysqli_result($result, 0, 'Assets');
				$isUsed = mysqli_result($result, 0, 'isUsed');
				$assets = mysqli_result($result, 0, 'Assets');
				$standard = mysqli_result($result, 0, 'standard');
				$productname = mysqli_result($result, 0, 'ProductName');
				$invoiceno = mysqli_result($result, 0, 'invoiceno');


				// 2015/3/5 商品マスターからボリューム情報を読み込む
				$sql3 = "SELECT * FROM ProductDistributeTable WHERE PDCode='$productcode'";
				$result3 = mysqli_query($mysqli, $sql3);
				$volume='';
				if (mysqli_num_rows($result3) != 0){
					// 商品レコードにボリューム情報があった場合
					$volume = mysqli_result($result3, 0, 'volume');
				}
				if($volume==''){
					// 商品レコードにボリューム情報が無かった場合は、品種情報からボリュームを読み込む
					$kind = mysqli_result($result, 0, 'kind');
					$sql3 = "SELECT * FROM ProductDistributeTable WHERE SUBSTR(PDCode,0,3)='KIN' AND ProductName='$kind'";
					$result3 = mysqli_query($mysqli, $sql3);
					if (mysqli_num_rows($result3) != 0){
						$volume = mysqli_result($result3, 0, 'volume');
					}
				}

				$sql = "UPDATE pack SET actualcode = '$actualcode' WHERE packno='$srcpackno'";
				$result = mysqli_query($mysqli, $sql);

				if($uniquecode != ''){
					$sql = "UPDATE pack SET uniquecode = '$uniquecode' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);

					// 新しい個品番号であれば、個品管理テーブルを作成
					$sql = "select * from uniquecodetable where UniqueCode='$uniquecode'";
					$result = mysqli_query($mysqli, $sql);
					if (mysqli_num_rows($result) == 0){
						$sql = "insert uniquecodetable(uniquecode, productcode, secondarycode, ownerid, ownername,in_date,latestdate) values('$uniquecode','$productcode','$secondarycode','$ownerid','','$timestamp','$timestamp')";
						$result = mysqli_query($mysqli, $sql);
					} else {
						$sql = "UPDATE uniquecodetable SET productcode='$productcode', secondarycode='$secondarycode', ownerid='$ownerid',in_date='$timestamp', latestdate='$timestamp' WHERE UniqueCode='$uniquecode'";
						$result = mysqli_query($mysqli, $sql);
						$sql = "UPDATE pack SET uniquecode = '$uniquecode' WHERE packno='$srcpackno'";
						$result = mysqli_query($mysqli, $sql);

					}

				}

				if($productcode != ''){
					$sql = "UPDATE pack SET productcode = '$productcode' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
					checkStockUnderStandardQty($productcode);	//	入庫後に商品コードが分かるので、そのタイミングで良品や仕掛かり在庫数の計算を行う 2020/9/24
				}
				if($isUsed != ''){
					$sql = "UPDATE pack SET isUsed = $isUsed WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
				if($assets != ''){
					$sql = "UPDATE pack SET assets = '$assets' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
				if($standard != ''){
					$sql = "UPDATE pack SET standard = '$standard' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
				if($productname != ''){
					$sql = "UPDATE pack SET productname = '$productname' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
				if($secondarycode != ''){
					$sql = "UPDATE pack SET remark1 = '$secondarycode' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
				if($invoiceno != ''){
					$sql = "UPDATE pack SET invoiceno = '$invoiceno' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
				if($volume != ''){
					$sql = "UPDATE pack SET volume = '$volume' WHERE packno='$srcpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
			}

			// 予約リストに該当のパックがあれば情報を修正 2020/7/2
			$sql="UPDATE ReserveTable SET customeruniquecode='$secondarycode' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			// タイムスタンプの強制変更
			$timestamp = date ("Y/m/d H:i:s");
			$sql = "UPDATE pack SET timestamp='$timestamp' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			// 今回のログをログテーブルに追加
			$log ="元パック番号:".$srcpackno.",";
			$log .="元数量:".$srcqty.",";
			$log .="パック番号:".$srcpackno.",";
			$log .="変更前数量:,";
			$log .="数量:,";
			$log .="作業者:".$personid.",";
			$log .="現品票番号:$actualcode,";
			$log .="資産区分:$assets,";
			$log .="商品コード:$productcode,";
			$log .="個品番号:$uniquecode,";
			$log .="客先個品番号:$secondarycode,";
			$log .="受付番号:$invoiceno,";

			$timestamp = date ("Y/m/d H:i:s");

			$packlogid = addPackLog($timestamp, $personid, 'ACTLINK', $srcpackno, $log, $uniquecode, $productcode, $locate);

			// 過去のログを検索して、不明だった商品コードを埋める
			$sql = "select * from packlogindex where packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) != 0){
				for($i=0;$i<mysqli_num_rows($result);$i++){
					$logid = mysqli_result($result, $i, 'logid');
					$sql = "UPDATE tasklog SET productcode='$productcode' WHERE packlogid='$logid' AND productcode=''";
					$result2 = mysqli_query($mysqli, $sql);
					$sql = "UPDATE tasklog SET uniquecode='$uniquecode' WHERE packlogid='$logid' AND uniquecode=''";
					$result2 = mysqli_query($mysqli, $sql);
					$sql = "UPDATE tasklog SET secondarycode='$secondarycode' WHERE packlogid='$logid' AND secondarycode=''";
					$result2 = mysqli_query($mysqli, $sql);
					$sql = "UPDATE tasklog SET asset='$assets' WHERE packlogid='$logid' AND asset=''";
					$result2 = mysqli_query($mysqli, $sql);
					$sql = "UPDATE tasklog SET invoiceno='$invoiceno' WHERE packlogid='$logid' AND invoiceno=''";
					$result2 = mysqli_query($mysqli, $sql);
				}
			}

			// 作業ログを記録
			$sql = "insert into worklog(packno,qty,errorqty,orderno,productcode,personid) values('$srcpackno','$qty','$badqty','$orderno','$srcpackno','$personid')";
			$result = mysqli_query($mysqli, $sql);

			// 作業者ログ
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'ACTLINK','log','$srcpackno','$actualcode','$productcode','$uniquecode','$secondarycode','$timestamp')";
			$result = mysqli_query($mysqli, $sql);
			break;

		case "ELLIO-ACTLINK":
			// 【　現品票とのリンク　】
			// ACTLINK;TIMESTAMP;PERSONCODE;SRCPACK;製造番号;管理番号;良品枚数;不良枚数;COUNTER;

			// 変数の作成
			$srcpackno = $p[3];
			$serialno = $p[4];
			$pmng = $p[5];
			$qty = $p[6];
			$qty2 = $p[7];
			$timestamp = $p[1];
			$personid = $p[2];
//			$timestamp = date ("Y/m/d H:i:s");

			$sql = "SELECT * FROM pack WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) == 0){
				$sql = "INSERT INTO pack (packno,createdate,arrivaldate) VALUES('$srcpackno','$timestamp','$timestamp')";
				$result = mysqli_query($mysqli, $sql);
			}

			$sql = "select * from businessRawdata where managementno = '$pmng'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) != 0){
				$orderno = mysqli_result($result, 0, 'orderno');
				$customername = mysqli_result($result, 0, 'customername');
				$w = mysqli_result($result, 0, 'width');
				$l = mysqli_result($result, 0, 'length');
				$thickness = mysqli_result($result, 0, 'thickness');
				$orderthickness = sprintf('%02.2f', mysqli_result($result, $i, 'orderthickness')); // 板厚を9.99フォーマットに変換
				$productcode = mysqli_result($result, 0, 'elliostandard')." ".mysqli_result($result, 0, 'mark');
				$productname = mysqli_result($result, 0, 'orderthickness')."x".mysqli_result($result, 0, 'orderwidth')."x".mysqli_result($result, 0, 'orderlength');
				$divisioncode = mysqli_result($result, 0, 'divisioncode');
				$packagetype = mysqli_result($result, 0, 'packagetype');

				$sql = "UPDATE pack SET orderno='$orderno',client='$customername',width=$w,length=$l,height=$thickness,productname='$productname',productcode='$productcode'";
				$sql .=",remark1='$divisioncode',remark2='$packagetype' WHERE packno='$srcpackno'";
				$result = mysqli_query($mysqli, $sql);
			}

			$sql = "UPDATE pack SET qty=$qty,uniquecode='$serialno',timestamp='$timestamp',actualcode='$pmng' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			// 今回のログをログテーブルに追加
			$log ="パック番号:".$srcpackno.",";
			$log .="作業者:".$personid.",";
			$log .="製造番号:$serialno,";
			$log .="管理番号:$pmng,";
			$log .="受注番号:$orderno,";
			$log .="良品枚数:$qty,";
			$log .="不良枚数:$qty2,";

			$timestamp = date ("Y/m/d H:i:s");

			$packlogid = addPackLog($timestamp, $personid, 'ACTLINK', $srcpackno, $log, $uniquecode, $productcode, $locate);

			// 作業ログを記録
			$sql = "insert into worklog(packno,qty,errorqty,orderno,productcode,personid) values('$srcpackno','$qty','$badqty','$orderno','$srcpackno','$personid')";
			$result = mysqli_query($mysqli, $sql);

			// 作業者ログ
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'ACTLINK','log','$srcpackno','$pmng','$productcode','$serialno','$secondarycode','$timestamp')";
			$result = mysqli_query($mysqli, $sql);
			break;

		case "ELLIO-ACTLINK2":
			// 【　現品票とのリンク　】
			// ACTLINK;TIMESTAMP;PERSONCODE;SRCPACK;管理番号;枚数;COUNTER;

			// 変数の作成
			$srcpackno = $p[3];
			$pmng = $p[4];
			$qty = $p[5];
			$timestamp = $p[1];
			$personid = $p[2];

			$sql = "SELECT * FROM pack WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) == 0){
				$sql = "INSERT INTO pack (packno,createdate,arrivaldate) VALUES('$srcpackno','$timestamp','$timestamp')";
				$result = mysqli_query($mysqli, $sql);
			}

			$sql = "select * from businessRawdata where managementno = '$pmng'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) != 0){
				$orderno = mysqli_result($result, 0, 'orderno');
				$customername = mysqli_result($result, 0, 'customername');
				$w = mysqli_result($result, 0, 'width');
				$l = mysqli_result($result, 0, 'length');
				$thickness = mysqli_result($result, 0, 'thickness');
				$productcode = mysqli_result($result, 0, 'materialstandard')." ".mysqli_result($result, 0, 'mark');
				$productname = mysqli_result($result, 0, 'orderthickness')."x".mysqli_result($result, 0, 'orderwidth')."x".mysqli_result($result, 0, 'orderlength');
				$productname = mysqli_result($result, 0, 'thickness')."x".mysqli_result($result, 0, 'width')."x".mysqli_result($result, 0, 'length');
				$divisioncode = mysqli_result($result, 0, 'divisioncode');
				$packagetype = mysqli_result($result, 0, 'packagetype');
				$JITdate = mysqli_result($result, 0, 'planningdate');
				$JITgroupno = mysqli_result($result, 0, 'lineno')."-".mysqli_result($result, 0, 'schedulesheetno');

				$sql = "UPDATE pack SET orderno='$orderno',client='$customername',width=$w,length=$l,height=$thickness,productname='$productname',productcode='$productcode'";
				$sql .=",remark1='$divisioncode',remark2='$packagetype',JITdate='$JITdate',JITgroupno='$JITgroupno' WHERE packno='$srcpackno'";
				$result = mysqli_query($mysqli, $sql);
			}

			$sql = "UPDATE pack SET qty=$qty,uniquecode='$serialno',timestamp='$timestamp',actualcode='$pmng' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			// 今回のログをログテーブルに追加
			$log ="パック番号:".$srcpackno.",";
			$log .="作業者:".$personid.",";
			$log .="製造番号:$serialno,";
			$log .="管理番号:$pmng,";
			$log .="受注番号:$orderno,";
			$log .="良品枚数:$qty,";
			$log .="不良枚数:$qty2,";

			$timestamp = date ("Y/m/d H:i:s");

			$packlogid = addPackLog($timestamp, $personid, 'ACTLINK', $srcpackno, $log, $uniquecode, $productcode, $locate);

			// 作業ログを記録
			$sql = "insert into worklog(packno,qty,errorqty,orderno,productcode,personid) values('$srcpackno','$qty','$badqty','$orderno','$srcpackno','$personid')";
			$result = mysqli_query($mysqli, $sql);

			// 作業者ログ
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'ACTLINK','log','$srcpackno','$pmng','$productcode','$serialno','$secondarycode','$timestamp')";
			$result = mysqli_query($mysqli, $sql);
			break;

		case "LOCCHANGE":
			// 【　ロケ一括移動　】
			// LOCCHANGE;TIMESTAMP;PERSONCODE;SRCLOC;DSTLOC;COUNTER;
			$srcloc = $p[3];
			$dstloc = $p[4];
			$timestamp = $p[1];
			$personid = $p[2];
			//$timestamp = date ("Y/m/d H:i:s");

			$sql = "SELECT * FROM pack WHERE locate='$srcloc'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);

			if ($row != ''){
				for($i=0;$i<$row;$i++){
					$packno = mysqli_result($result, $i, 'packno');
					$srcqty = mysqli_result($result, $i, 'qty');
					$log ="元パック番号:".$packno.",";
					$log .="元数量:".$srcqty.",";
					$log .="パック番号:".$packno.",";
					$log .="変更前数量:,";
					$log .="数量:,";
					$log .="作業者:".$personid.",";
					$log .="ロケ:$srcloc→$dstloc,";

					$orderno = mysqli_result($result, $i, 'orderno');
					$productcode = mysqli_result($result, $i, 'productcode');
					$uniquecode = mysqli_result($result, $i, 'uniquecode');
					$invoiceno = mysqli_result($result, $i, 'invoiceno');
					$productname = mysqli_result($result, $i, 'productname');
					$standard = mysqli_result($result, $i, 'standard');
					$remark1 = mysqli_result($result, $i, 'remark1');
					$remark2 = mysqli_result($result, $i, 'remark2');
					$assets = mysqli_result($result, $i, 'assets');
					$client = mysqli_result($result, $i, 'client');
					$srcqty = mysqli_result($result, $i, 'qty');
					$isused = mysqli_result($result, $i, 'isused');
					$createdate = mysqli_result($result, $i, 'createdate');
					$locate = mysqli_result($result, $i, 'locate');

					// ロケの変更を予約テーブルに反映
					if($orderno!=''){
						$tempsql = "UPDATE ReserveTable SET locate='$dstloc' WHERE packno='$packno'";
						$tempresult = mysqli_query($mysqli, $tempsql);
					}

					$packlogid = addPackLog($timestamp, $personid, 'LOCCHANGE', $packno, $log);
					// タスクログを記録
					addTaskLog($packlogid, $timestamp, $personid, 'LOCCHANGE', '',$packno, $dstloc, $qty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'',$locate);

					// 作業者ログ
					$sql2 = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'LOCCHANGE','ロケ登録:$packno→$dstloc','$packno','$dstloc','$productcode','$uniquecode','$remark1','$timestamp')";
					$result2 = mysqli_query($mysqli, $sql2);

				}
			}

			// 現在のロケを過去ロケにコピー
			$sql="UPDATE pack SET prevLocate=locate WHERE locate='$srcloc'";
			$result = mysqli_query($mysqli, $sql);

			// 一括ロケ変更
			$sql = "UPDATE pack SET locate='$dstloc',loctimestamp='$timestamp',timestamp='$timestamp' WHERE locate='$srcloc'";
			$result = mysqli_query($mysqli, $sql);

			break;

		case "LOCLINK":
			// 【　ロケとのリンク　】
			// LOCLINK;TIMESTAMP;PERSONCODE;SRCPACK;LOCATION;QTY(DUMMY);COUNTER;

			// 変数の作成
			$srcpackno = $p[3];
			$locate = $p[4];
			$qty = $p[5];
			$timestamp = $p[1];
			$personid = $p[2];
			//$timestamp = date ("Y/m/d H:i:s");

			// 現在のロケを過去ロケにコピー
			$sql="UPDATE pack SET prevLocate=locate WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			// ロケの変更
			$sql = "UPDATE pack SET locate = '$locate',loctimestamp='$timestamp',timestamp='$timestamp' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			$sql = "SELECT * FROM pack WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);

			if ($row != ''){
				$srcloc = mysqli_result($result, $i, 'locate');
				$orderno = mysqli_result($result, 0, 'orderno');
				$productcode = mysqli_result($result, 0, 'productcode');
				$uniquecode = mysqli_result($result, 0, 'uniquecode');
				$invoiceno = mysqli_result($result, 0, 'invoiceno');
				$productname = mysqli_result($result, 0, 'productname');
				$standard = mysqli_result($result, 0, 'standard');
				$remark1 = mysqli_result($result, 0, 'remark1');
				$remark2 = mysqli_result($result, 0, 'remark2');
				$assets = mysqli_result($result, 0, 'assets');
				$client = mysqli_result($result, 0, 'client');
				$srcqty = mysqli_result($result, 0, 'qty');
				$isused = mysqli_result($result, 0, 'isused');
				$createdate = mysqli_result($result, 0, 'createdate');
				$oldlocate = mysqli_result($result, 0, 'locate');

				// ロケの変更を予約テーブルに反映
				if($orderno!=''){
					$tempsql = "UPDATE ReserveTable SET locate='$locate' WHERE packno='$srcpackno'";
					$tempresult = mysqli_query($mysqli, $tempsql);
				}

			}

			$log ="元パック番号:".$srcpackno.",";
			$log .="元数量:".$srcqty.",";
			$log .="パック番号:".$srcpackno.",";
			$log .="変更前数量:,";
			$log .="数量:,";
			$log .="作業者:".$personid.",";
			$log .="ロケ:$srcloc→$locate,";

			$timestamp = date ("Y/m/d H:i:s");

			// 今回のログをログテーブルに追加
			$packlogid = addPackLog($timestamp, $personid, 'LOCLINK', $srcpackno, $log);
			// タスクログを記録 後ろの引数は現在空。元パックの情報を読み込む処理を追加すれば可能
			addTaskLog($packlogid, $timestamp, $personid, 'LOCLINK', '',$srcpackno, $locate, $srcqty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'',$oldlocate);

			// 今回の作業者ログをログテーブルに追加
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'LOCLINK','ロケ登録:$packno→$dstloc','$srcpackno','$locate','$productcode','$uniquecode','$remark1','$timestamp')";
			$result = mysqli_query($mysqli, $sql);

			break;

		case "INVLINK":
			// 【　入荷番号とのリンク　】
			// INVLINK;TIMESTAMP;PERSONCODE;SRCPACK;LOCATION;QTY(DUMMY);COUNTER;

			// 変数の作成
			$srcpackno = $p[3];
			$invoiceno = $p[4];
			$qty = $p[5];
			$timestamp = $p[1];
			$personid = $p[2];
			//$timestamp = date ("Y/m/d H:i:s");

			$sql = "SELECT * FROM pack WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) == 0){
				$sql = "INSERT INTO pack (packno,createdate,arrivaldate) VALUES('$srcpackno','$timestamp','$timestamp')";
				$result = mysqli_query($mysqli, $sql);
			}

			$sql = "UPDATE pack SET invoiceno='$invoiceno',timestamp='$timestamp' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			$sql = "SELECT * FROM pack WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);

			if ($row != ''){
				$srcloc = mysqli_result($result, $i, 'locate');
				$orderno = mysqli_result($result, 0, 'orderno');
				$productcode = mysqli_result($result, 0, 'productcode');
				$uniquecode = mysqli_result($result, 0, 'uniquecode');
				$invoiceno = mysqli_result($result, 0, 'invoiceno');
				$productname = mysqli_result($result, 0, 'productname');
				$standard = mysqli_result($result, 0, 'standard');
				$remark1 = mysqli_result($result, 0, 'remark1');
				$remark2 = mysqli_result($result, 0, 'remark2');
				$assets = mysqli_result($result, 0, 'assets');
				$client = mysqli_result($result, 0, 'client');
				$srcqty = mysqli_result($result, 0, 'qty');
				$isused = mysqli_result($result, 0, 'isused');
				$createdate = mysqli_result($result, 0, 'createdate');
				$locate = mysqli_result($result, 0, 'locate');
			}

			$log ="元パック番号:".$srcpackno.",";
			$log .="元数量:".$srcqty.",";
			$log .="パック番号:".$srcpackno.",";
			$log .="変更前数量:,";
			$log .="数量:,";
			$log .="作業者:".$personid.",";
			$log .="入荷受付番号:$invoiceno,";

			$timestamp = date ("Y/m/d H:i:s");

			// 今回のログをログテーブルに追加
			$packlogid = addPackLog($timestamp, $personid, 'INVLINK', $srcpackno, $log);
			// タスクログを記録 後ろの引数は現在空。元パックの情報を読み込む処理を追加すれば可能
			addTaskLog($packlogid, $timestamp, $personid, 'INVLINK', '',$srcpackno, $locate, $srcqty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'',$locate);

			// 今回の作業者ログをログテーブルに追加
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'INVLINK','入荷受付:$invoiceno','$srcpackno','$locate','$productcode','$uniquecode','$remark1','$timestamp')";
			$result = mysqli_query($mysqli, $sql);

			break;


		case "TEN":
			// 【　メモ対象のPackNo・メモ番号・メモ内容　】
			// TEN;TIMESTAMP;PERSONCODE;SRCPACK;メモ番号;メモ内容;COUNTER;

			// 変数の作成
			$srcpackno = $p[3];
			$memocontent = $p[4];
			if($memocontent == 'DEL'){
				$memocontent = '';
			}
//				$memono = $p[4];
//				$content = $p[5];
			$timestamp = $p[1];
			// タイムスタンプの強制変更
			$timestamp = date ("Y/m/d H:i:s");
			$personid = $p[2];
			if($memono == ''){ $memono = '000'; }

			$log ="元パック番号:".$srcpackno.",";
			$log .="元数量:".$srcqty.",";
			$log .="パック番号:".$srcpackno.",";
			$log .="変更前数量:,";
			$log .="数量:,";
			$log .="作業者:".$personid.",";
			$log .="メモ:".$memocontent.","; // "メモ:$memono $content,";

			$sql = "SELECT * FROM pack WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);

			if ($row != ''){
				$orderno = mysqli_result($result, 0, 'orderno');
				$productcode = mysqli_result($result, 0, 'productcode');
				$uniquecode = mysqli_result($result, 0, 'uniquecode');
				$invoiceno = mysqli_result($result, 0, 'invoiceno');
				$productname = mysqli_result($result, 0, 'productname');
				$standard = mysqli_result($result, 0, 'standard');
				$remark1 = mysqli_result($result, 0, 'remark1');
				$remark2 = mysqli_result($result, 0, 'remark2');
				$assets = mysqli_result($result, 0, 'assets');
				$client = mysqli_result($result, 0, 'client');
				$srcqty = mysqli_result($result, 0, 'qty');
				$isused = mysqli_result($result, 0, 'isused');
				$createdate = mysqli_result($result, 0, 'createdate');
				$locate = mysqli_result($result, 0, 'locate');
				$volume = mysqli_result($result, 0, 'volume');
			}

			// packの書き換え
			$sql = "UPDATE pack set comment='$memocontent', commentDate='$timestamp' WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);

			// 今回のログをログテーブルに追加
			$packlogid = addPackLog($timestamp, $personid, 'TEN', $srcpackno, $log);
			// タスクログを記録 後ろの引数は現在空。元パックの情報を読み込む処理を追加すれば可能
			addTaskLog($packlogid, $timestamp, $personid, 'TEN', '',$srcpackno, $memocontent, $srcqty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'',$locate);

			// 作業者ログ
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'TEN','$log','$srcpackno','$memocontent','$productcode','$uniquecode','$remark1','$timestamp')";
			$result = mysqli_query($mysqli, $sql);

			break;

		case "MOV":
			// 【　通常の元・先・数量　】
			// MOV;TIMESTAMP;PERSONCODE;SRCPACK;DSTPACK;QTY;EXTENDED LOG;

			// 変数の作成
			$srcpackno = $p[3];
			$dstpackno = $p[4];
			$qty = $p[5];
			$timestamp = $p[1];
			$personid = $p[2];
			$extlog = $p[6];

			// 元在庫情報の取得
			$sql = "SELECT * FROM pack LEFT JOIN zgrouplist_expansion ON pack.packno=zgrouplist_expansion.groupcode WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			$isUsed = 0;
			$oldpackno=$srcpackno;

			if ($row != ''){
				$orderno = mysqli_result($result, 0, 'orderno');
				$productcode = mysqli_result($result, 0, 'productcode');
				$locate = mysqli_result($result, 0, 'locate');
				$oldlocate=$locate;
				$uniquecode = mysqli_result($result, 0, 'uniquecode');
				$invoiceno = mysqli_result($result, 0, 'invoiceno');
				$actualcode = mysqli_result($result, 0, 'actualcode');
				$productname = mysqli_result($result, 0, 'productname');
				$standard = mysqli_result($result, 0, 'standard');
				$remark1 = mysqli_result($result, 0, 'remark1');
				$remark2 = mysqli_result($result, 0, 'remark2');
				$assets = mysqli_result($result, 0, 'assets');
				$client = mysqli_result($result, 0, 'client');
				$srcqty = mysqli_result($result, 0, 'qty');
				$isused = mysqli_result($result, 0, 'isused');
				$createdate = mysqli_result($result, 0, 'createdate');
				$arrivaldate = mysqli_result($result, 0, 'arrivaldate');
				$shippingdate = mysqli_result($result, 0, 'shippingdate');
				$attention = mysqli_result($result, 0, 'attention');
				$comment = mysqli_result($result, 0, 'comment');
				$volume = mysqli_result($result, 0, 'volume');
				$srcproc = mysqli_result($result, 0, 'flag5');
				$srcprocname = mysqli_result($result, 0, 'name');
				$lotno = mysqli_result($result, 0, 'lotno');
				$maker = mysqli_result($result, 0, 'maker');
				$srcisinside = mysqli_result($result, 0, 'inside');
				$inventorydate = mysqli_result($result, 0, 'inventorydate');
				$weight = mysqli_result($result, 0, 'weight');
				if($weight!=0 && $srcqty!=0){
					$individualweight = $weight / $srcqty;
				} else {
					$individualweight = 0;
				}
				$srcflag4 = mysqli_result($result, 0, 'flag4');
			}

			// 先在庫情報の取得
			$sql = "select * from pack LEFT JOIN zgrouplist_expansion ON pack.packno=zgrouplist_expansion.groupcode where packno = '$dstpackno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row != ''){
				// 先が存在する場合
				$dstlocate = mysqli_result($result, 0, 'locate');
				$dstqty = mysqli_result($result, 0, 'qty');
				$dstcreatedate = mysqli_result($result, 0, 'createdate');
				$tasktype = mysqli_result($result, 0, 'tasktype');
				$dstproc = mysqli_result($result, 0, 'flag5');
				$dstprocname = mysqli_result($result, 0, 'name');
				$dstflag4 = mysqli_result($result, 0, 'flag4');
//				$prevLocate = mysqli_result($result, 0, 'prevLocate');
			} else {
				// 先が存在しない場合
				$createdate = date ("Y/m/d H:i:s");
				$sql = "select * from zgrouplist_expansion where groupcode = '$dstpackno'";
				$result = mysqli_query($mysqli, $sql);
				$row = mysqli_num_rows($result);
				if ($row != ''){
					$tasktype = mysqli_result($result, 0, 'tasktype');
					$dstproc = mysqli_result($result, 0, 'flag5');
					$dstprocname = mysqli_result($result, 0, 'name');
					$dstflag4 = mysqli_result($result, 0, 'flag4');
				}

			}

			// 滞留時間の算出
			//$delaytime = date_diff(date_create(date ("Y/m/d H:i:s")),date_create($createdate))->format('%a');

			if(($qty == '0' || $qty == '') && ($srcpackno == $dstpackno || $dstpackno == '')){
				// パックの開放
				delPack($srcpackno, $personid);
			} else {
				// 自動的に差し引きするか？
				if($dbname=='akashi' || $dbname=='letip' || $dbname=='KFC' || $dbname=='toda'){ $autocalc = true; }

				$log ="元パック番号:".$srcpackno.",";
				$log .="元数量:".$srcqty.",";
				$log .="パック番号:".$dstpackno.",";
				$log .="変更前数量:".$dstqty.",";
				$log .="数量:".$qty.",";
				$log .="作業者:".$personid.",";
				$log .= $extlog.",";
				if($autocalc == false){
					$log .="COPY:$srcpackno $srcprocname($srcqty)ー＞$dstpackno $dstprocname($dstqtyー＞$qty),";
				} else {
					$log .="MOVE:$srcpackno $srcprocname($srcqtyー＞".($srcqty-$qty).")ー＞$qtyー＞$dstpackno $dstprocname($dstqtyー＞".($dstqty+$qty)."),";
				}
				if($orderno != ''){$log .="受注番号:".$orderno.",";}
				if($productcode != ''){$log .="商品:".$productcode.",";}
				$timestamp = date ("Y/m/d H:i:s");


				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'MOV', $dstpackno, $log);

				// 作業者ログ
				$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp) values('$personid',$packlogid,'MOV','$log','$srcpackno','$dstpackno','$productcode','$uniquecode','$remark1','$timestamp')";
				$result = mysqli_query($mysqli, $sql);

				// 過去のログをコピー
				// 2005.8.11同じパックNoを先パックとして複数回実行した場合、ログは元の過去を複数保持することになる
				// 例えば、12345→12346を2回実行すると同じログが2回登録されることとなる。
				// 2007.5.22 読み込み時にDISINCTオプションで重複解除可能

				$sql = "select DISTINCT logid,packno from packlogindex where packno = '$srcpackno'";
				$result = mysqli_query($mysqli, $sql);
				$cnt=mysqli_num_rows($result);
				if ($cnt != 0){
					//debugLog("$srcpackno->$dstpackno / $cnt lines.");
					for($i=0;$i<$cnt;$i++){
						$logid = mysqli_result($result, $i, 'logid');
						$sql = "insert into packlogindex(packno,logid) values('$dstpackno','$logid')";
						//debugLog("$srcpackno->$dstpackno / copy $i");
						$result2 = mysqli_query($mysqli, $sql);
					}
				}


				// 作業ログを記録
				$sql = "insert into worklog(packno,qty,errorqty,orderno,productcode,personid) values('$dstpackno','$qty','$badqty','$orderno','$srcpackno','$personid')";
				$result = mysqli_query($mysqli, $sql);


				// 先パックの状態変更
				if(isArrival($srcpackno, $dstpackno)==true){	$tasktype = 'ARRIVAL'; $arrivaldate = $timestamp; $log.= "出荷日:$shippingdate,"; }
				if(isShipping($srcpackno, $dstpackno)==true){	$tasktype = 'SHIPPING'; $shippingdate = $timestamp; doShipping($orderno); }
				if($qty == ''){ $qty = 0; }
				$sql = "select * from pack where packno = '$dstpackno'";
				$result = mysqli_query($mysqli, $sql);
				if (mysqli_num_rows($result) != 0){

					$option='';
					if($orderno == ''){ $orderno = mysqli_result($result, 0, 'orderno'); }
					if($invoiceno == ''){ $invoiceno = mysqli_result($result, 0, 'invoiceno'); }
					if($productname == ''){ $productname = mysqli_result($result, 0, 'productname'); }
					if($productcode == ''){ $productcode = mysqli_result($result, 0, 'productcode'); }
					if($actualcode == ''){ $actualcode = mysqli_result($result, 0, 'actualcode'); }
					if($standard == ''){ $standard = mysqli_result($result, 0, 'standard'); }
					if($remark1 == ''){ $remark1 = mysqli_result($result, 0, 'remark1'); }
					if($remark2 == ''){ $remark1 = mysqli_result($result, 0, 'remark2'); }
					if($uniquecode == ''){ $uniquecode = mysqli_result($result, 0, 'uniquecode'); }
					if($isused == ''){ $isused = mysqli_result($result, 0, 'isused'); }
					if($assets == ''){ $assets = mysqli_result($result, 0, 'assets'); }
					if(($createdate > $dstcreatedate) && ($dstqty != 0)){ $createdate = $dstcreatedate; }
					if($locate == ''){
						$locate = mysqli_result($result, 0, 'locate');
						$oldlocate = mysqli_result($result, 0, 'prevLocate');
					 }
					if($attention == ''){ $attention = mysqli_result($result, 0, 'attention'); }
					if($comment == ''){ $attention = mysqli_result($result, 0, 'comment'); }
					if($volume == ''){ $volume = mysqli_result($result, 0, 'volume'); }
					if($lotno == ''){ $volume = mysqli_result($result, 0, 'lotno'); }
					if($maker == ''){ $maker = mysqli_result($result, 0, 'maker'); }
//					if($tasktype == 'ARRIVAL'){
//						$orderno = '';	// 入荷のタイミングでordernoをクリア
//						if($uniquecode!=''){
//							// 貸出総日数の計算処理
//						}
//					}
					// 2014/12/26 （入荷時のクリアから）出荷のタイミングでordernoをlatestorderinfoにするように修正
					if($tasktype == 'SHIPPING'){
						$option.=",latestorderinfo='$orderno'";
						$option.=",JITdate=''"; // 出荷時にJITdateのクリア 2020/01/20
						$orderno = '';	// 出荷のタイミングでordernoをクリア
					}


					switch($dbname){
					case 'KFC':
					case 'letip':
						//$locate = ''; // 棚は移動時にクリアされる

						// 2012/4/3
						//$sql3 = "SELECT * FROM ProductDistributeTable WHERE PDCode='$productcode'";
						//$result3 = mysqli_query($mysqli, $sql3);
						//if (mysqli_num_rows($result3) != 0){
						//	$standardQty = mysqli_result($result3, 0, 'standardQty');
						//	if($tasktype=='ARRIVAL' && ($dstqty+$qty) >= $standardQty*2){
						//		BBSwrite('Zシステム','0000','',"$productcode / $productname の在庫が基準量を超えました。(基準量:".$standardQty."/在庫数:".($dstqty+$qty).")");
						//	}
						//}

						break;
					case 'akashi':
						if($locate == ''){ $locate = mysqli_result($result, 0, 'locate'); } // ロケは、先のロケが有効（先が存在しない場合は空）
						$locate = mysqli_result($result, 0, 'locate'); // ロケは、先のロケが有効（先が存在しない場合は空）
						break;
					}

					$oldqty = mysqli_result($result, 0, 'qty');
					//$dstqty=$qty;
					if($autocalc == true){ $dstqty=$dstqty+$qty; } else {$dstqty=$qty;}
					if($individualweight!=0){ $weight=round($individualweight * $dstqty); } else { $weight=0; }
					$sql = "update pack set orderno='$orderno', locate='$locate',prevLocate='$oldlocate',productcode='$productcode',
						invoiceno='$invoiceno', prevPackNo='$oldpackno',qty='$dstqty',uniquecode='$uniquecode',assets='$assets',
						standard='$standard',productname='$productname',remark1='$remark1',remark2='$remark2',isused='$isused',
						createdate='$createdate',arrivaldate='$arrivaldate',shippingdate='$shippingdate',actualcode='$actualcode',
						attention='$attention',comment='$comment',volume='$volume',lotno='$lotno',maker='$maker',weight='$weight' $option
						WHERE packno='$dstpackno'";
					$result = mysqli_query($mysqli, $sql);


				} else {
					// 先パックを作成


					// 先パック作成時の特殊処理
					switch($dbname){
					case 'KFC':
					case 'letip':
						if($orderno!=''){
							$tempsql = "UPDATE ReserveTable SET packno='$dstpackno',locate='$locate' WHERE packno='$srcpackno'"; // 2015/01/7修正 OrderNo='$orderno' OR reservecode='$orderno'
							$tempresult = mysqli_query($mysqli, $tempsql);
						}
						break;
					}


					$sql = "DELETE FROM pastpack WHERE packno='$dstpackno'";
					$result = mysqli_query($mysqli, $sql);
					if($createdate == ''){ $createdate = $timestamp; }
					//if($tasktype == 'ARRIVAL'){ $orderno = ''; }// 入荷のタイミングでordernoをクリア
					if($individualweight!=0){ $weight=round($individualweight * $qty); } else { $weight=0; }

					$sql = "INSERT INTO pack(packno,qty,orderno,productcode,invoiceno,uniquecode,assets,locate,prevLocate,standard,productname,actualcode,
							remark1,remark2,isused,createdate,arrivaldate,shippingdate,attention,comment,volume,lotno,maker,proctimestamp,inventorydate,prevPackNo,weight)
							VALUES('$dstpackno','$qty','$orderno','$productcode','$invoiceno','$uniquecode','$assets','','$oldlocate','$standard','$productname','$actualcode',
							'$remark1','$remark2','$isused','$createdate','$arrivaldate','$shippingdate','$attention','$comment','$volume','$lotno','$maker','$timesstamp','$inventorydate','$srcpackno','$weight')";
					$result = mysqli_query($mysqli, $sql);


					// 2014/12/26 （入荷時のクリアから）出荷のタイミングでordernoをlatestorderinfoにするように修正
					if($tasktype == 'SHIPPING'){
						$sql = "UPDATE pack SET orderno='', latestorderinfo='$orderno' WHERE packno='$dstpackno'";
						$result = mysqli_query($mysqli, $sql);
					}

					// 2015/01/22 入出荷ではない時、工程の作業を検出
					if($tasktype==''){
						$sql="SELECT * FROM zgrouplist_expansion WHERE groupcode='$dstpackno'";
						$result = mysqli_query($mysqli, $sql);
						if (mysqli_num_rows($result) != 0){
							$tasktype = mysqli_result($result, 0, 'tasktype');
						}
					}

					$oldqty = 0;
				}

				// 元パックの状態変更
				if($autocalc == true){
					switch($dbname){
					case 'KFC':
					case 'toda':
					case 'letip':
						// 元と先が同じ場合、差引結果は同じになるので以下の処理は不要である為
						if($srcpackno==$dstpackno){
							// 但し、タイムスタンプの更新とログは残す
							$sql = "UPDATE pack SET timestamp='$timestamp' WHERE packno='$srcpackno'";
							$result = mysqli_query($mysqli, $sql);
							// 今回のログをログテーブルに追加
							addPackLogIndex($srcpackno, $packlogid);
							break;
						}
						// 元数量がマイナスになった場合の警告処理
						if(($srcqty - $qty < 0) && ($srcpackno != '39999' && $srcpackno != '99999')){
							$cont = $srcpackno."の元数量".$srcqty."から".$qty."引かれて".($srcqty - $qty)."になりました";
							$sql = "INSERT INTO ErrorFoundTable(errortype, personid, personname, content,commandlogid) VALUES('数量がマイナス','$personid','','$cont','$commandlogID')";
							$result = mysqli_query($mysqli, $sql);
						}
						// 元数量がマイナスになって消去される処理
						if($srcqty - $qty <= 0){
							//$sql = "DELETE FROM pack WHERE packno='$srcpackno'";
							//$result = mysqli_query($mysqli, $sql);
							// 今回のログをログテーブルに追加
							addPackLogIndex($srcpackno, $packlogid);
							// パックの削除
							delPack($srcpackno, $personid);
						} else {
							if($individualweight!=0){ $weight=round($individualweight * ($srcqty-$qty)); } else { $weight=0; }
							$sql = "UPDATE pack SET qty=".($srcqty-$qty).",timestamp='$timestamp',weight='$weight' WHERE packno='$srcpackno'";
							$result = mysqli_query($mysqli, $sql);
							// 今回のログをログテーブルに追加
							addPackLogIndex($srcpackno, $packlogid);
						}
						break;
					case 'akashi':
						if((($srcqty - $qty) == 0) && ($srcpackno < 400000 || $srcpackno >= 500000)){
							//$sql = "DELETE FROM pack WHERE packno='$srcpackno'";
							//$result = mysqli_query($mysqli, $sql);
							// 今回のログをログテーブルに追加
							addPackLogIndex($srcpackno, $packlogid);
							// パックの削除
							delPack($srcpackno, $personid);
						} else {
							$sql = "update pack set qty=".($srcqty-$qty).",timestamp='$timestamp' where packno='$srcpackno'";
							$result = mysqli_query($mysqli, $sql);
							// 今回のログをログテーブルに追加
							addPackLogIndex($srcpackno, $packlogid);
						}
						break;

					}
				}

				// 元が良品在庫　または　先が良品在庫の時に、良品在庫数を再計算する
				if($srcproc=='良品在庫' || $dstproc=='良品在庫' || $srcproc=='仕掛在庫' || $dstproc=='仕掛在庫'){
					checkStockUnderStandardQty($productcode);
				}

				// letip予約テーブルの消し込み
				if(($dbname=='letip') && ($dstflag4=='99レンタル中' || $dstflag4=='99販売出荷')){
					$uniquecheck='';
					if($remark1!='')$uniquecheck="OR customeruniquecode='$remark1'";
					$sql="update ReserveTable SET complete=1 WHERE (packno='$srcpackno' $uniquecheck)";
					$result = mysqli_query($mysqli, $sql);
					//debuglog($sql);
					$rows=mysqli_affected_rows($mysqli);
					debuglog("reservetable updated count $rows; pack:$srcpackno -> $dstpackno unique:$remark1 ");
					// P.Noや個品番号の指定がされていない予約品の出荷処理
					if($rows==0){
						$sql="update ReserveTable SET complete=1 WHERE PDcode='$productcode' AND (orderno='$orderno' OR reservecode='$orderno')";
						$result = mysqli_query($mysqli, $sql);
						$rows=mysqli_affected_rows($mysqli);
						debuglog($sql."; rows:$rows");

					}
				}

				// タスクログを記録
				addTaskLog($packlogid, $timestamp, $personid, 'MOV', $tasktype, $srcpackno, $dstpackno, $qty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets, $delaytime,$oldlocate);

				// abcPACK記録
				$balance = $qty-$oldqty;
				$timestamp = date ("Y/m/d H:i:s");
				$sql = "insert into ABCpack(task,srcno,dstno,PDcode,uniquecode,qty,balance,userid,timestamp) values(0,'$srcpackno','$dstpackno','$productcode','$uniquecode',$qty,$balance,'$personid','$timestamp')";
				$result = mysqli_query($mysqli, $sql);

				// 出荷処理
				if(

				(($dbname=='letip') && ($dstpackno>='99990' && $dstpackno <='99999'))

				OR

				(($dbname=='toda') && (($dstpackno>='99990' && $dstpackno <='99999') || $dstpackno =='60000'))

				OR

				(($dbname=='KFC') && ($dstpackno>='99990' && $dstpackno <='99999'))

				OR

				(($dbname == 'akashi') && ($dstpackno == '399999' || $dstpackno == '499999' || $dstpackno == '599999' || $dstpackno == '659999' || $dstpackno == '669999' || $dstpackno == '769999' || $dstpackno == '779999' || $dstpackno == '810000' || $dstpackno == '859999'))

				) {
					$sql = "SELECT * FROM pack WHERE packno='$dstpackno'";
					$result = mysqli_query($mysqli, $sql);
					$uniquecode = mysqli_result($result,0,'uniquecode');

					if($uniquecode != ''){
						// 個品処理（ログインデックスのpacknoを個品番号に置き換える）
						$sql = "update packlogindex set packno='$uniquecode' where packno='$dstpackno'";
						$result = mysqli_query($mysqli, $sql);
					} else {
						// 個品じゃない処理
						// 個品処理（ログインデックスのpacknoをユニークな番号に置き換える）
						$sql = "update countertable set count=count+1 where title='PastPack'";
						$result = mysqli_query($mysqli, $sql);
						$sql = "select * from countertable where title='PastPack'";
						$result = mysqli_query($mysqli, $sql);
						$pastcode = mysqli_result($result,0,'count');

						$sql = "update packlogindex set packno='p$pastcode' where packno='$dstpackno'";
						$result = mysqli_query($mysqli, $sql);
					}
					// packから該当パックを削除
					$sql = "REPLACE INTO pastpack(packno) VALUES('$dstpackno')";
					$result = mysqli_query($mysqli, $sql);
					$sql = "DELETE FROM pack WHERE packno='$dstpackno'";
					$result = mysqli_query($mysqli, $sql);
				}
			}
			break;
		case "PRODUCTDISTRIBUTESET":
			// 【　商品マスター情報更新　】
			// PRODUCTDISTRIBUTESET;TIMESTAMP;PERSONCODE;PDCODE;STANDARD;PRODUCTNAME;ATTR1;TKOSOU;SKOSOU;ATTENTION;SUMMARY

			$timestamp = $p[1];
			$personid = $p[2];
			$productcode = $p[3];
			$standard = $p[4];
			$productname = $p[5];
			$attr1 = $p[6];
			$Tkosou = $p[7];
			$Skosou = $p[8];
			$attention = $p[9];
			$summary = $p[10];

			$log ="商品コード:".$productcode.",";

			$sql = "SELECT * FROM ProductDistributeTable WHERE PDCode='$productcode'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row != ''){
				$sql = 	"UPDATE ProductDistributeTable SET standard='$standard', ".
						"productname='$productname',attr1='$attr1',packagetype1='$Tkosou',packagetype2='$Skosou',".
						"attention1='$attention',summary1='$summary',summaryDate='$timestamp' WHERE PDCode='$productcode'";
				$result = mysqli_query($mysqli, $sql);
			}
			break;
		case "SETPRODUCTAT":
			// 【　プロパティの設定　】
			// SETPRODUCTAT;TIMESTAMP;PERSONCODE;SRCPACK;LOG;対象フィールド;設定値;

			$timestamp = $p[1];
			$personid = $p[2];
			if(strstr($personid,",")!=FALSE){
				$pp=explode(',',$personid);
				$personid=$pp[0];
				$lat=$pp[1];
				$lng=$pp[2];
			} else {
				$lat=0;
				$lng=0;
			}
			$PDCode = $p[3];
			$log = $p[4];
			$field = $p[5];
			$content = $p[6];

			SetProductAt($timestamp,$personid,$lat,$lng,$PDCode,$log,$field,$content);
			break;

		case "AKASHI-INITREGIST":
			// 【　明石用初期登録　】
			// AKASHI-INITREGIST;TIMESTAMP;PERSONID;SRCPACK;PRODUCTCODE;UNIQUECODE;QTY;KEYNO;RETFLAG;

			$timestamp = $p[1];
			$personid = $p[2];
			$packno = $p[3];
			$productcode = $p[4];
			$uniquecode = $p[5];
			$qty = $p[6]; // always 0
			$keyno = $p[7]; // always 'TOUROKU'
			$retflag = $p[8];
			$loc = $p[9];

			$log ="パック番号:".$packno.",";
			$log .="数量:".$qty.",";
			$log .="作業者:".$personid.",";
			$log .="商品コード:".$productcode.",";
			$log .="仕様:".$uniquecode.",";
			$log .="NNo:".$keyno.",";
			$log .="修理区分:".$retflag.",";
			$log .="ロケ:".$loc.",";

			// productiondistributetable　に、商品コード・型式（仕様）を登録
			// uniquecodetable　に、個品番号（仕様）・セカンダリ（商品コード）を登録
			// packに、パック番号（商品コード）、商品コード、個品番号（仕様）、数量を登録

//				$sql = "SELECT * FROM ProductDistributeTable WHERE PDCode=''";
//				$result = mysqli_query($mysqli, $sql);

			$sql = "SELECT * FROM ProductDistributeTable WHERE PDCode='$productcode'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row == ''){
				$sql = "INSERT INTO ProductDistributeTable(PDCode,Standard,personid,Attr1,Location1) ".
						"VALUES('$productcode','$uniquecode','$personid','$retflag','$loc')";
				$result = mysqli_query($mysqli, $sql);

				$sql = "INSERT INTO uniquecodetable(uniquecode,secondarycode,productcode) ".
						"VALUES('$uniquecode','$productcode','$productcode')";
				$result = mysqli_query($mysqli, $sql);
			}

			$sql = "SELECT * FROM pack WHERE packno='$packno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row == ''){
				$timestamp = date ("Y/m/d H:i:s");
				$sql = "DELETE FROM pastpack WHERE packno='$packno'";
				$result = mysqli_query($mysqli, $sql);
				$sql = "INSERT INTO pack(packno,uniquecode,productcode,qty,assets,isUsed,locate,createdate) ".
						"VALUES('$packno','$uniquecode','$productcode',$qty,'AKA',$retflag,'$loc','$timestamp')";
				$result = mysqli_query($mysqli, $sql);
			} else {
				$sql = 	"UPDATE pack SET productcode='$productcode', ".
						"qty=qty+$qty,uniquecode='$uniquecode',assets='AKA',isUsed=2 WHERE packno='$packno'";
				$result = mysqli_query($mysqli, $sql);

			}


			if($log != ""){
				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'INITREGIST', $packno, $log);

				// 今回の作業者ログをログテーブルに追加
				$timestamp = date ("Y/m/d H:i:s");
				$sql = "INSERT INTO personlog(personid,content,task,timestamp,packlogid) values('$personid','$log','$packno','$timestamp',$packlogid)";
				$result = mysqli_query($mysqli, $sql);

			}

			// タスクログを記録
			$sql = "insert into tasklog(timestamp,taskno,tasktype,srcpackno,dstpackno,qty,personid,comment,orderno,productcode,invoiceno,uniquecode,packlogid) values('$timestamp','$packno','$tasktype','$keyno','$packno',$qty,'$personid','$log','$orderno','$productcode','$keyno','$uniquecode',$packlogid)";
			$result = mysqli_query($mysqli, $sql);

			break;
		case "ELLIO-INFLOWREGIST":
			// 【　エリオ用流入登録　】
			// ELLIO-INFLOWREGIST;TIMESTAMP;PERSONID;PACK名称（4;INFLOW/6;OUTFLOW）;管理番号;受注番号;流入枚数;

			$timestamp = $p[1];
			$personid = $p[2];
			$inout = $p[3];
			$datetime = $p[4];
			$shearid = $p[5];
			$orderno = $p[6];
			$qty = $p[7];

			$log ="日時:".$datetime.",";
			$log .="管理番号:".$shearid.",";
			$log .="受注番号:".$orderno.",";
			$log .="枚数:".$qty.",";
			$sql = "INSERT INTO workvolumeInflow(timestamp,inflowsourceID,orderno,qty,workpattern) ".
					"VALUES('$datetime','$shearid','$orderno','$qty','1')";
			$result = mysqli_query($mysqli, $sql);

			if($log != ""){
				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'ELLIO-INFLOWREGIST', '', $log);
			}

			break;

		case "ELLIO-OUTFLOWREGIST":
			// 【　エリオ用流出登録　】
			// ELLIO-OUTFLOWREGIST;TIMESTAMP;PERSONID;PACK名称（4;INFLOW/6;OUTFLOW）;管理番号;受注番号;流入枚数;切断パターン

			$timestamp = $p[1];
			$personid = $p[2];
			$inout = $p[3];
			$datetime = $p[4];
			$shearid = $p[5];
			$orderno = $p[6];
			$qty = $p[7];
			$pattern = $p[8];

			$log ="日時:".$datetime.",";
			$log .="管理番号:".$shearid.",";
			$log .="受注番号:".$orderno.",";
			$log .="枚数:".$qty.",";
			$log .="切断パターン:".$pattern.",";
			$sql = "INSERT INTO workvolumeOutflow(timestamp,outflowsourceID,orderno,qty,workpattern) ".
					"VALUES('$datetime','$shearid','$orderno','$qty',$pattern)";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_insert_id($mysqli);

			// 該当する流入情報があればアップデートする
			$sql="UPDATE workvolumeInflow SET workpattern='$pattern' WHERE inflowsourceID='$shearid'";
			$result = mysqli_query($mysqli, $sql);

			//
			$sql = "INSERT INTO workvolumeInflow(timestamp,inflowsourceID,orderno,sourceQty,workpattern,outflowID,isDetail) ".
					"VALUES('$datetime','$shearid','$orderno','$qty','$pattern','$row',1)";
			$result = mysqli_query($mysqli, $sql);

			if($log != ""){
				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'ELLIO-INFLOWREGIST', '', $log);
			}

			break;

		case "ELLIO-FLOWREGIST":
			// 【　エリオ用流入登録　】
			// ELLIO-FLOWREGIST;TIMESTAMP;PERSONID;PACK名称（4;INFLOW/6;OUTFLOW）;製造番号（productid）;売上金額（inflow）;発注単価（orderprice）;合計枚数（totalqty）

			$timestamp = $p[1];
			$personid = $p[2];
			$inout = $p[3];
			$productcode = $p[4];
			$qty = $p[5];
			$remark1 = $p[6];
			$remark2 = $p[7];
			$machinename = $p[8];

			// PACKNO 作成
			$sql = "SELECT * FROM countertable WHERE title='INFLOWID'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) != 0){
				$delid = mysqli_result($result, 0, 'count') + 1;
				$sql = "UPDATE countertable set count='$delid' WHERE title='INFLOWID'";
				$result2 = mysqli_query($mysqli, $sql);
			 } else {
				$delid = 1;
				$sql = "insert into countertable(title,count) values('INFLOWID','1')";
				$result2 = mysqli_query($mysqli, $sql);
			}
//			$packno = $inout.substr(date("Y"),2,2).date("md").right("0000000$delid",3);
			$packno = $inout.right("0000000$delid",3);

			$log ="流入ID:".$packno.",";
			$log .="流入量:".$qty.",";
			$log .="作業者:".$personid.",";
			$log .="製造番号:".$productcode.",";
			$log .="発注単価:".$remark1.",";
			$log .="枚数:".$remark2.",";
			$log .="機種:".$machinename.",";

			$sql = "SELECT * FROM pack WHERE packno='$packno'";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row == ''){
				$timestamp = date ("Y/m/d H:i:s");
				$sql = "INSERT INTO pack(packno,remark1,remark2,productcode,qty,pullno,createdate) ".
						"VALUES('$packno','$remark1','$remark2','$productcode',$qty,'$machinename','$timestamp')";
				$result = mysqli_query($mysqli, $sql);
			} else {
				// 今回このパターンは存在しない
//				$sql = 	"UPDATE pack SET productcode='$productcode', ".
//						"qty=qty+$qty,uniquecode='$uniquecode',assets='AKA',isUsed=2 WHERE packno='$packno'";
//				$result = mysqli_query($mysqli, $sql);

			}


			if($log != ""){
				// 今回のログをログテーブルに追加
				$packlogid = addPackLog($timestamp, $personid, 'ELLIO-FLOWREGIST', $packno, $log);

				// 今回の作業者ログをログテーブルに追加
				$timestamp = date ("Y/m/d H:i:s");
				$sql = "INSERT INTO personlog(personid,content,task,timestamp,packlogid) values('$personid','$log','$packno','$timestamp',$packlogid)";
				$result = mysqli_query($mysqli, $sql);

			}

			// タスクログを記録
//			$sql = "insert into tasklog(timestamp,taskno,tasktype,srcpackno,dstpackno,qty,personid,comment,orderno,productcode,invoiceno,uniquecode,packlogid) values('$timestamp','$packno','$tasktype','$keyno','$packno',$qty,'$personid','$log','$orderno','$productcode','$keyno','$uniquecode',$packlogid)";
//			$result = mysqli_query($mysqli, $sql);

			break;
		case "TODA-REGIST":
			// 【　戸田事業所用　登録処理　】
			// TODA-REGIST;TIMESTAMP;PERSONID;SRCPACK;LOC;QTY;

			$timestamp = $p[1];
			$personid = $p[2];
			$packno = $p[3];
			$loc = $p[4];
			$qty = $p[5];

			$log ="パック番号:".$packno.",";
			$log .="ロケ:".$loc.",";
			$log .="数量:".$qty.",";
			$log .="作業者:".$personid.",";

			$sql = "REPLACE INTO pack(packno,locate,qty,assets,actualcode,remark1,invoiceno,createdate,arrivaldate) ".
					"VALUES('$packno','$loc','$qty','','$packno','$packno','$packno','$timestamp','$timestamp')";
			$result = mysqli_query($mysqli, $sql);

			// 今回のログをログテーブルに追加
			$packlogid = addPackLog($timestamp, $personid, 'REGIST', $packno, $log);

			// タスクログを記録
			addTaskLog($packlogid, $timestamp, $personid, 'REGIST', '',$packno, '', $qty, $log, '', '', '', '', $packno, '','','');

			break;
		}
		echo "OK";
	}

	// SETPROPAT
	function SetPropAt($timestamp,$personid,$lat,$lng,$srcpackno,$log,$field,$content){ global $mysqli;
		$param = "$field='$content',";
		$param .= "timestamp='".date ("Y/m/d H:i:s")."',";
		$param .= "lat=$lat,lng=$lng";
		$log = "元パック番号:$srcpackno,作業者:$personid,$field:$content";

		if($param != ''){
			$sql = "UPDATE pack SET $param WHERE packno='$srcpackno'";
			$result = mysqli_query($mysqli, $sql);
		}


		if($log != ""){
			$personid = $p[2]; // 作業者を引数通りに戻す（位置情報が入っていればその形に戻す）
			$timestamp = date ("Y/m/d H:i:s");

			// 今回のログをログテーブルに追加
			$packlogid = addPackLog($timestamp, $personid, 'SETPROPAT', $srcpackno, $log);

			// タスクログを記録
			addTaskLog($packlogid, $timestamp, $personid, 'SETPROPAT', '',$srcpackno, '', $qty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,'','');

			// 作業者ログ
			$sql = "insert into personlog(personid,packlogid,command,content,srcpackno,dstpackno,productcode,uniquecode,secondarycode,timestamp,lat,lng) values('$personid',$packlogid,'SETPROPAT','$log','$srcpackno','','$productcode','$uniquecode','','$timestamp',$lat,$lng)";
			$result = mysqli_query($mysqli, $sql);

		}
		if(strtoupper($field)=='ORDERNO')checkStockUnderStandardQtyFromPack($srcpackno);

	}

	// SETPRODUCTAT
	function SetProductAt($timestamp,$personid,$lat,$lng,$PDCode,$log,$field,$content){ global $mysqli;
		$param = "$field='$content'";
		$log = "商品コード:$PDCode,作業者:$personid,変更:".str_replace("'","",$param);

		if($param != ''){
			$sql = "UPDATE ProductDistributeTable SET $param WHERE PDCode='$PDCode'";
			$result = mysqli_query($mysqli, $sql);
		}

		// packnoが存在しない為ログを残せない
	}

	//	パックの消去
	function delPack($packno, $personid){ global $mysqli;
		$mysqli = connectDB();

		// 元在庫情報の取得
		$sql = "SELECT * FROM pack WHERE packno='$packno'";

		$result = mysqli_query($mysqli, $sql);
		$row = mysqli_num_rows($result);
		$isUsed = 0;
		if ($row != ''){
			$orderno = mysqli_result($result, 0, 'orderno');
			$productcode = mysqli_result($result, 0, 'productcode');
			$locate = mysqli_result($result, 0, 'locate');
			$uniquecode = mysqli_result($result, 0, 'uniquecode');
			$invoiceno = mysqli_result($result, 0, 'invoiceno');
			$assets = mysqli_result($result, 0, 'assets');
			$client = mysqli_result($result, 0, 'client');
			$srcqty = mysqli_result($result, 0, 'qty');
			$isUsed = mysqli_result($result, 0, 'isUsed');
		}


		if($uniquecode == ''){
		// DELETE ID 作成
			$sql = "SELECT * FROM countertable WHERE title='DELETEID'";
			$result = mysqli_query($mysqli, $sql);
			if (mysqli_num_rows($result) != 0){
				$delid = mysqli_result($result, 0, 'count') + 1;
				$sql = "UPDATE countertable set count='$delid' WHERE title='DELETEID'";
				$result2 = mysqli_query($mysqli, $sql);
			 } else {
				$delid = 1;
				$sql = "insert into countertable(title,count) values('DELETEID','1')";
				$result2 = mysqli_query($mysqli, $sql);
			}
			$delid = "DEL".substr("0000000$delid",-7,7);
		} else {
			$delid = $uniquecode;
		}

		// delete log 作成
		$sql = "INSERT INTO deletelog(deleteid, personid, packno, qty, orderno, productcode, locate, invoiceno, uniquecode, assets, client) VALUES('$delid', '$personid', '$packno', '$srcqty', '$orderno', '$productcode', '$locate', '$invoiceno','$uniquecode','$assets','$client')";
		$result = mysqli_query($mysqli, $sql);
		$sql = "REPLACE INTO pastpack(packno) VALUES('$packno')";
		$result = mysqli_query($mysqli, $sql);
		$sql = "DELETE FROM pack WHERE packno='$packno'";
		$result = mysqli_query($mysqli, $sql);
		$sql = "UPDATE packlogindex SET packno='$delid' WHERE packno='$packno'";
		$result = mysqli_query($mysqli, $sql);

		// ログ処理
		$log ="元パック番号:".$packno.",";
		$log .="元数量:".$packno.",";
		$log .="パック番号:".$packno.",";
		$log .="変更前数量:0,";
		$log .="数量:0,";
		$log .="作業者:".$personid.",";
		//$log .="コピー：$packno ー＞ $dstpackno ($qty)";
		$log .="削除コード:$delid,";
		if($orderno != ''){$log .="受注番号:".$orderno.",";}
		if($productcode != ''){$log .="商品:".$productcode.",";}
		$log .= $extlog;
		$timestamp = date ("Y/m/d H:i:s");

		// 今回のログをログテーブルに追加
		$packlogid = addPackLog($timestamp, $personid, 'DEL', $delid, $log);

		// 添付ファイルを削除
		deleteDir("/letip/view/PAC".$packno."/");
	}

	// DebugLog
	function debugLog($log){ global $mysqli;
		$log=str_replace("'", "`", $log);
		$sql = "INSERT INTO DebugLog(content) VALUES('$log')";
		$result = mysqli_query($mysqli, $sql);
	}

	// タスクログを記録
	function addTaskLog($packlogid, $timestamp, $personid, $task, $tasktype, $src, $dst, $qty, $log, $orderno, $productcode, $invoiceno, $uniquecode, $remark1, $assets,$delaytime,$locate){ global $mysqli;
		$sql = "INSERT INTO tasklog(timestamp,taskno,tasktype,srcpackno,dstpackno,qty,personid,comment,orderno,productcode,invoiceno,uniquecode,packlogid,secondarycode,asset,delaytime,locate) values('$timestamp','$task','$tasktype','$src','$dst','$qty','$personid','$log','$orderno','$productcode','$invoiceno','$uniquecode',$packlogid,'$remark1','$assets','$delaytime','$locate')";
		$result = mysqli_query($mysqli, $sql);
		if($result == FALSE){
			$sql=str_replace("'", "`", $sql);
			$sql = "INSERT INTO ErrorFoundTable(errortype, personid, personname, content) VALUES('addTaskLog','$personid','','$sql')";
			$result = mysqli_query($mysqli, $sql);
		}
		return	mysqli_insert_id($mysqli);
	}

	//	パックログの追加
	function addPackLog($timestamp, $personid, $task, $packno, $log){ global $mysqli;
		global $commandlogID; // commandlogのID番号をpacklogに記載する為に利用(2014/12/3)
		if(strstr($personid,",")!=FALSE){
			$pp=explode(',',$personid);
			$personid=$pp[0];
			$lat=$pp[1];
			$lng=$pp[2];
		} else {
			$lat=0;
			$lng=0;
		}

		$referer = $_SERVER['HTTP_REFERER'];
		$sql = "INSERT INTO packlog(content,personid,task,timestamp,referer,lat,lng,commandlogid) values('$log','$personid','$task','$timestamp','$referer','$lat','$lng','$commandlogID')";
		$result = mysqli_query($mysqli, $sql);
		$newrecord = mysqli_insert_id($mysqli);

		// 今回のログをログインデックスに追加。
		$sql = "INSERT INTO packlogindex(packno,logid) values('$packno','$newrecord')";
		$result = mysqli_query($mysqli, $sql);
		return $newrecord;
	}

	//	パックログインデックスの追加
	function addPackLogIndex($packno, $logid){ global $mysqli;
		$sql = "INSERT INTO packlogindex(packno,logid) values('$packno','$logid')";
		$result = mysqli_query($mysqli, $sql);

	}

	//	作業者ログの追加
	function addPersonLog($timestamp, $personid, $task, $log){ global $mysqli;
		if(strstr($personid,",")!=FALSE){
			$pp=explode(',',$personid);
			$personid=$pp[0];
			$lat=$pp[1];
			$lng=$pp[2];
		} else {
			$lat=0;
			$lng=0;
		}

		$sql = "INSERT INTO packlog(content,personid,task,timestamp) values('$log','$personid','$task','$timestamp')";
		$result = mysqli_query($mysqli, $sql);
		$newrecord = mysqli_insert_id($mysqli);

		// 今回のログをログインデックスに追加。
		$sql = "INSERT INTO packlogindex(packno,logid) values('$packno','$newrecord')";
		$result = mysqli_query($mysqli, $sql);

	}

	//	入荷・出荷チェック用グループリストの取り込み
	function readInsideGroup(){ global $mysqli;
		if($_SESSION['insideGRPCNT'] == ''){
			$sql = "SELECT * FROM zgrouplist WHERE inside!='' ORDER BY groupno";
			$result = mysqli_query($mysqli, $sql);
			$row = mysqli_num_rows($result);
			if ($row != ''){
				for($i=0;$i<$row;$i++){
					$_SESSION['insideSN'.$i] = mysqli_result($result, $i, 'groupno');
					$_SESSION['insideEN'.$i] = mysqli_result($result, $i, 'endno');
				}
			}
			$_SESSION['insideGRPCNT'] = $row;
		}
	}

	//	入荷チェック
	function isArrival($srcpack, $dstpack){ global $mysqli;
		if($_SESSION['insideGRPCNT'] == ''){
			return(false);
		}
		for($i=0;$i<$_SESSION['insideGRPCNT'];$i++){
			if($srcpack >= $_SESSION['insideSN'.$i] && $srcpack <= $_SESSION['insideEN'.$i]){
				$srcin = true;
			}
			if($dstpack >= $_SESSION['insideSN'.$i] && $dstpack <= $_SESSION['insideEN'.$i]){
				$dstin = true;
			}
		}
		if($srcin == false && $dstin == true){
			return(true);
		}
		return(false);
	}

	//	出荷チェック
	function isShipping($srcpack, $dstpack){ global $mysqli;
		if($_SESSION['insideGRPCNT'] == ''){
			return(false);
		}
		//$sql = "INSERT INTO ErrorFoundTable(errortype, personid, personname, content) VALUES('isArrival','$personid','','".$_SESSION['insideGRPCNT']."')";
		//$result = mysqli_query($mysqli, $sql);
		for($i=0;$i<$_SESSION['insideGRPCNT'];$i++){
			if($srcpack >= $_SESSION['insideSN'.$i] && $srcpack <= $_SESSION['insideEN'.$i]){
				$srcin = true;
			}
			if($dstpack >= $_SESSION['insideSN'.$i] && $dstpack <= $_SESSION['insideEN'.$i]){
				$dstin = true;
			}
		}
		if($srcin == true && $dstin == false){
			return(true);
		}
		return(false);
	}

	//　出荷時処理
	function doShipping($orderno){ global $mysqli;
		if($orderno != ''){
			$timestamp = date("Y/m/d H:i:s");
			$sql = "UPDATE ReserveTable SET shippingdate='$timestamp' WHERE orderno='$orderno'";
			$result = mysqli_query($mysqli, $sql);
		}

	}


	function checkStockUnderStandardQtyFromPack($packno){ global $mysqli;
		$mysqli = connectDB();

		// 元在庫情報の取得
		$sql = "SELECT * FROM pack WHERE packno='$packno'";

		$result = mysqli_query($mysqli, $sql);
		$row = mysqli_num_rows($result);
		$isUsed = 0;
		if ($row != ''){
			$productcode = mysqli_result($result, 0, 'productcode');
			checkStockUnderStandardQty($productcode);
		}

	}


	// 良品在庫数を商品マスターに書き込む
	function checkStockUnderStandardQty($productcode){ global $mysqli;
		global $commandlogID; // commandlogのID番号をpacklogに記載する為に利用(2014/12/3)
		$mysqli = connectDB();
		$sql = "SELECT SUM(pack.qty) as sumqty,zgrouplist_expansion.flag5,ProductDistributeTable.stockQTY FROM pack LEFT JOIN zgrouplist_expansion ON pack.packno = zgrouplist_expansion.groupcode LEFT JOIN ProductDistributeTable ON pack.ProductCode=ProductDistributeTable.PDCode ";
		$sql.= "WHERE pack.productcode='$productcode' AND pack.orderno='' AND (flag5='良品在庫' OR flag5='仕掛在庫' ) GROUP BY flag5 ORDER BY flag5";// GROUP BY flag5,pack.productcode";
		$result = mysqli_query($mysqli, $sql);
		 $row = mysqli_num_rows($result);
		 //debuglog($sql);
		$sumqty=0;
		$WIPQty = 0;
		$stockQTY = 0;

		if($row != 0){
			for($i=0;$i<$row;$i++){
				$proc = mysqli_result($result, $i, 'flag5');
				//debuglog($i.$proc.mysqli_result($result, $i, 'sumqty'));
				if($proc=='仕掛在庫'){
					$WIPQty = mysqli_result($result, $i, 'sumqty');
				}else{
					$sumqty += mysqli_result($result, $i, 'sumqty');
					$stockQTY += mysqli_result($result, $i, 'stockQTY');
				}
			}
		}

		$sql = "UPDATE ProductDistributeTable SET StockQty=$sumqty,WIPQty=$WIPQty WHERE PDCode='$productcode'";
		$result2 = mysqli_query($mysqli, $sql);
		if($stockQTY!=$sumqty){
			debuglog("$productcode 良品在庫 $stockQTY → $sumqty");
		}

		$sql2="SELECT * FROM ProductDistributeTable WHERE ProductCode='$productcode'";
		$result2 = mysqli_query($mysqli, $sql2);
		 $row2 = mysqli_num_rows($result2);
		if($row2!=0){
			$standardQty = mysqli_result($result, 0, 'standardQty');
		}else{
			$standardQty = 0;
		}

		if($standardQty > $sumqty){
			$cont = $productcode."が基準量以下になりました　在庫数：".$sumqty."　基準量：".$standardQty;
			$sql = "INSERT INTO ErrorFoundTable(errordivision,errortype, personid, personname, content, commandlogid) VALUES('warning','基準量割れ','server','','$cont','$commandlogID')";
			$result = mysqli_query($mysqli, $sql);
			global $error;
			$error="$cont";
		}
	}

/*	function BBSwrite($username,$userID,$icon,$content){ global $mysqli;
		if($content == ''){ return; }
		$mysqli = connectDB();
		$sql="SELECT * FROM person WHERE personid='$userID'";
		$result = mysqli_query($mysqli, $sql);
		 $row = mysqli_num_rows($result);
		if ($row != 0){
			$username = mysqli_result($result, 0, 'name');
		} else {
			return;
		}
		$content = urlencode($content);
		$timestamp = date ("Y/m/d H:i");
		$sql="INSERT INTO BBS(username,userID,icon,content,timestamp) VALUES('$username','$userID','$icon','$content','$timestamp')";
		$result = mysqli_query($mysqli, $sql);
	}
*/
	function sendmail($address, $content, $subject, $fromaddress) {
		mb_http_output("ISO-2022-JP");
		mb_language("Japanese");
		mb_internal_encoding("UTF-8");
		$elements = explode(",", $address);
		$headerinfo = "From: $fromaddress\nContent-Type: text/html; charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion()."\n";
		mb_encode_mimeheader($comment, "ISO-2022-JP", "Q");
		foreach( $elements as $element ){
			$rslt = mb_send_mail($element, $subject,$content,$headerinfo);
		}
		mb_http_output("UTF-8");

	}

	function right($str,$n){ global $mysqli;
		//文字コードUTF-8で、right関数。$strの右から$n文字取得
		return mb_substr($str,($n)*(-1),$n,"UTF-8");
	}

?>
