<?php
require_once('config.php');
require_once('utility_image.php');

//$uploaddir = "C:\\wamp64\\www\\CMMS_Standard\\temp\\";
$uploaddir;
$error_message;
$valid = true;
$json_return = array();
$json_return2 = array();
$json_return = [];



if ($_SERVER["REQUEST_METHOD"] == "POST") { 

	$count    	   	= $_REQUEST["count"];
	$json 			= $_REQUEST["json"];
	$json 			= json_decode($json);
	$rowid			= $json->data->rowid;
	$site_cd		= $json->data->site_cd;
	$EMPID			= $json->data->EMPID;
	$LOGINID		= $json->data->LOGINID;
	$folder			= $json->data->folder;
	$dvc_id			= $json->data->dvc_id;
	
$uploaddir = "C:\\wamp64\\www\\".$folder."\\temp_".$LOGINID."_".$dvc_id."\\";
	if (!is_dir($uploaddir)) {
		mkdir($uploaddir, 0777, true);
		mkdir($uploaddir."\\thumbnail\\", 0777, true);
	}	
	
	//echo $count;
	
	 for ($x = 1; $x <= $count; $x++) {
		 
		$file_name = $_FILES['file_'.$x]['name'];	
		$file_type = $_FILES['file_'.$x]['type'];		 		 
			
			
		if (strpos($file_name, '.png') !== false) {				
				
				if($x == 1){
					
					$type = "P";
				}else{
					$type = "A";
				}
				
			$file_name = str_replace(".png",".jpg",$file_name);
			$imageObject = $_FILES['file_'.$x]['tmp_name'];	
			$fullPathwithfileName = $uploaddir.$file_name;

			if(move_uploaded_file($imageObject, $fullPathwithfileName)){
				//Check if file exist
				if (file_exists($fullPathwithfileName)) {
					// list($width, $height, $image_type) = getimagesize($fullPathwithfileName);
					// $imageObject = load_image($fullPathwithfileName, $image_type);
					// # Get exif information
					// $exif = exif_read_data($fullPathwithfileName);
				} else {
					echo "File not exist";
				}
				$datastring= file_get_contents($fullPathwithfileName);
				$data=unpack("H*hex", $datastring);
				
				$sql = "INSERT INTO itm_ref(
										site_cd, 		audit_user, 		audit_date, 		status,						column1, 
										FILE_NAME, 		type, 				mst_rowid, 			attachment,					mbl_audit_user,
										mbl_audit_date,	column2) 
										VALUES 
									 ( 	'".$site_cd."',		'".$EMPID."', 			getdate(),			'Saved', 			'Native', 
										'".$file_name."',	'".$type."', 			".$rowid.", 		0x".$data['hex'].",	'".$LOGINID."',	
										getdate(),			'".$file_type."') SELECT SCOPE_IDENTITY() as rowid";
	
				$stmt = sqlsrv_query( $conn, $sql);				
								
				if( !$stmt ) {
					$error_message = "Error insert table (itm_ref)";
					returnError($error_message);
					die( print_r( sqlsrv_errors(), true));
				}else{
					unlink($fullPathwithfileName);
				}

				$json_wko_ref = array();
				do {
					while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
						$json_wko_ref['rowid'] = $row['rowid'];
						$json_wko_ref['action'] = "INSERT";
						array_push($json_return2, $json_wko_ref);
						
					}
				} while ( sqlsrv_next_result($stmt) );
			}

				
			
			
				 
		}else{
				
				if($x == 1){
					
					$type = "P";
				}else{
					$type = "A";
				}
				
			$imageObject = $_FILES['file_'.$x]['tmp_name'];
			$fullPathwithfileName = $uploaddir.$file_name;
			
			if (move_uploaded_file($imageObject, $fullPathwithfileName)){
				
				//Check if file exist
				if (file_exists($fullPathwithfileName)) {
					
					// list($width, $height, $image_type) = getimagesize($fullPathwithfileName);
					// $imageObject = load_image($fullPathwithfileName, $image_type);
					// # Get exif information
					// $exif = exif_read_data($fullPathwithfileName);
				}else {
					echo "File not exist";
				}
				
				// if (!empty($exif['Orientation'])) {
				// # Get orientation
				
				// $orientation = $exif['Orientation'];
				//echo $orientation;
				// }else{
					// $orientation = 0 ;
					//echo "0";
				// }
				
				
				// # Manipulate image
				// switch ($orientation) {
					// case 2:
						// imageflip($imageObject, IMG_FLIP_HORIZONTAL);
						// break;
					// case 3:
						// $imageObject = imagerotate($imageObject, 180, 0);
						// break;
					// case 4:
						// imageflip($imageObject, IMG_FLIP_VERTICAL);
						// break;
					// case 5:
						// $imageObject = imagerotate($imageObject, -90, 0);
						// imageflip($imageObject, IMG_FLIP_HORIZONTAL);
						// break;
					// case 6:
						// $imageObject = imagerotate(load_image($fullPathwithfileName, $type), -90, 0);
						// break;
					// case 7:
						// $imageObject = imagerotate($imageObject, 90, 0);
						// imageflip($imageObject, IMG_FLIP_HORIZONTAL);
						// break;
					// case 8:
						// $imageObject = imagerotate($imageObject, 90, 0); 
						// break;
				// }
				// save_image($imageObject, $fullPathwithfileName, 'jpeg', 100);
				$datastring= file_get_contents($fullPathwithfileName);
				$data=unpack("H*hex", $datastring);
				if (count($data) > 0){
					
					
					$sql = "INSERT INTO itm_ref(site_cd, 		audit_user, 		audit_date, 		status,			column1, 
												FILE_NAME, 		type, 				mst_rowid, 			attachment,		mbl_audit_user,	
												mbl_audit_date,	column2) 
										VALUES 
												('".$site_cd."',		'".$EMPID."', 			getdate(),			'Saved', 		'Native', 
												'".$file_name."','".$type."', 				".$rowid.", 		0x".$data['hex'].",'".$LOGINID."',	getdate(),
												'".$file_type."') SELECT SCOPE_IDENTITY() as rowid";
		
		
					$stmt = sqlsrv_query( $conn, $sql);				
									
					if( !$stmt ) {
						$error_message = "Error insert table (itm_ref)";
						returnError($error_message);
						die( print_r( sqlsrv_errors(), true));
					}else{
						unlink($fullPathwithfileName);
					}

					$json_wko_ref = array();
					do {
						while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
							$json_wko_ref['rowid'] = $row['rowid'];					
							$json_wko_ref['action'] = "INSERT";
							
							array_push($json_return2, $json_wko_ref);
							
						}
					}while ( sqlsrv_next_result($stmt) );
							
					
				}else{
					$json_ast_ref['rowid'] = 0;
					$json_ast_ref['action'] = "Unpack failed for image file (".$file_name.")";
					array_push($json_return2, $json_ast_ref);
				}
				
			}else{
				$json_ast_ref['rowid'] = 0;
				$json_ast_ref['action'] = "move_uploaded_file failed for image file (".$file_name.")";
				array_push($json_return2, $json_ast_ref);
			}				
		}
	}
	
	$json_return['itm_ref'] = $json_return2;	
	
}


if ($valid) {
	//sqlsrv_free_stmt( $stmt);
	sqlsrv_close( $conn);	
	
	//Declare NULL Array since no records inserted, in future will insert as wko_ref
	//$json = array();
	
	returnData($json_return,$rowid);	
}

function insertImage($image){

}

function returnData($json_return,$rowid){
	$returnData = array(
	'status' => 'SUCCESS',
	'message' => 'Attachment Insert Successfully',
	'rowid'=>$rowid,
	'data' => $json_return);
	
	echo json_encode($returnData);
}

function returnError($error_message){
	$json = array();
	
	$returnData = array(
	'status' => 'ERROR',
	'message' => $error_message,
	'data' => $json);
	
	echo json_encode($returnData);
	
	sqlsrv_free_stmt( $stmt);
	sqlsrv_close( $conn);	
		
	exit();
}
		


?>