<?php

require_once "/home/mysamm/price_checker/lib/connections.php";
require_once "/home/mysamm/price_checker/lib/connections_master_2.php";
require_once "/home/mysamm/price_checker/lib/connections_master_multi.php";
$user_data = $_REQUEST['users'];
$user_data_array = explode("***", $user_data);
list($user_id, $server_name, $group_id) = $user_data_array;

if(isset($_REQUEST)){
	$defaultDb = new Connection();
	if($server_name == 2){
		if($group_id == 8){
			$dbCon = new ConnectionMasterMulti();
		}else{
			$dbCon = new ConnectionMaster2();
		}
	}else{
		$dbCon = new Connection();
	}
	
	$userdata = $dbCon->Query("SELECT * FROM users where id = $user_id");
	#print_r($defaultDb); die;
	foreach($userdata as $userrow){
		
		$username = strtolower($userrow['username']);
		$username = trim($username);
		$username = preg_replace("/\W+/is", "_", $username);
		$map_break_table = $username."_crawled_records";
		$map_break_crawling_histories = $username."_crawling_histories";
		$map_break_amazon_histories = $username."_amazon_histories";
		$map_break_unmatched_histories = $username."_unmatched_histories";
		$server_name = $userrow['server_name'];
		$group_id = $userrow['group_id'];
		
		$user_date_updats['user_id'] = $user_id;
		$user_date_updats['group_id'] = $group_id;
		$user_date_updats['server_name'] = $server_name;
		$user_date_updats['map_break_table'] = $map_break_table;
		$user_date_updats['map_break_crawling_histories'] = $map_break_crawling_histories;
		$user_date_updats['map_break_amazon_histories'] = $map_break_amazon_histories;
		$user_date_updats['map_break_unmatched_histories'] = $map_break_unmatched_histories;
		#$user_date_updats['curren_crawler_date'] = $current_crawled_date;
		if($_FILES['input_file']['error'] == 0){
			
			$account_dashboards_query = $dbCon->GetRow("SELECT *  FROM `account_dashboards` WHERE user_id = $user_id");
			$crawlers_list = array();
			$crawlers_list_Q = $dbCon->Query("SELECT *  FROM `crawlers_name` where model_name != ''");
			foreach($crawlers_list_Q as $crow){
				$model_name = $crow['model_name'];
				$id = $crow['id'];
				$model_name = camel2dashed($model_name);
				$model_name = preg_replace("/^'/is", '', $model_name);
				$model_name = strtolower($model_name);
				$model_name = $model_name."s";
				$crawlers_list[$id] = $model_name;
			}
			#print_r($crawlers_list); die;
			$current_crawled_date = $account_dashboards_query['crawl_date'];
			$user_date_updats['curren_crawler_date'] = $current_crawled_date;
			
			
					
			
			#update_user_data_ui($user_date_updats,$dbCon);
			
			$name = $_FILES['input_file']['name'];
			$ext = strtolower(end(explode('.', $name)));
			$type = $_FILES['input_file']['type'];
			$tmpName = $_FILES['input_file']['tmp_name'];
			if($ext == 'csv'){
				if(($handle = fopen($tmpName, 'r')) !== FALSE) {
					set_time_limit(0);
					$row = 0;
					$i=0;
					$product_sku_in_query = "";
					$product_url_sku_in_query = "";
					while($data = fgetcsv($handle)) {
						if($i != 0){
							$product_sku = $data[0];
							$source_url = $data[1];
							$product_sku = $dbCon->real_escape_string($product_sku);
							$source_url = $dbCon->real_escape_string($source_url);
							$product_sku_in_query .= "'".$product_sku."',";
							$product_url_sku_in_query .= "'".$source_url."',";
							$row++;
						}
						$i++;
					}
					fclose($handle);
					
					$product_sku_in_query = preg_replace("/,$/is","", $product_sku_in_query);
					$product_url_sku_in_query = preg_replace("/,$/is","", $product_url_sku_in_query);
					if($product_sku_in_query != ""){
						$idis = $dbCon->Query("SELECT id,crawler_id,product_sku, product_url,source_url FROM $map_break_table where product_sku IN($product_sku_in_query) AND source_url IN($product_url_sku_in_query) AND created = '$current_crawled_date'");
						$array_ids = array();
						$array_crawler_map = array();
						foreach($idis as $row){
							$id = $row['id'];
							$crawler_id = $row['crawler_id'];
							$product_sku = $row['product_sku'];
							$source_url = $row['source_url'];
							$array_ids[] = $id;
							$c_table = $crawlers_list[$crawler_id];
							$array_crawler_map[$c_table][] = array("product_sku"=>$product_sku,"source_url"=>$source_url);
						}
						if(!empty($array_ids)){
							$ids_in = implode(",",$array_ids);
							$copy_to_delete = "INSERT INTO `deleted_map_breaks`(`user_id`, `crawler_id`, `product_sku`, `product_price`, `map_price`, `product_url`, `product_name`, `product_seller`, `image_url`, `account_id`, `crawled_date`, `deleted_by`, `created`, `modified`) SELECT `user_id`, `crawler_id`, `product_sku`, `product_price`, `map_price`, `product_url`, `product_name`, `product_seller`, `image_url`, `account_id`, `created`, 1, `created`, NOW() FROM $map_break_table WHERE id IN($ids_in)";
							//$dbCon->execute($copy_to_delete);
							$dbCon->execute("DELETE FROM $map_break_table where id IN($ids_in)");
						}
					}
					
					foreach($array_crawler_map as $crawler_table=>$craler_data){
						$product_sku_in_query_c = "";
						$product_url_sku_in_query_c = "";
						foreach($craler_data as $data_row){
							$product_sku_in_query_c .= "'".$data_row['product_sku']."',";
							$product_url_sku_in_query_c .= "'".$data_row['source_url']."',";
						}
						$product_sku_in_query_c = preg_replace("/,$/is","", $product_sku_in_query_c);
						$product_url_sku_in_query_c = preg_replace("/,$/is","", $product_url_sku_in_query_c);
						if($product_sku_in_query != ""){
							$updateQ = "UPDATE $crawler_table SET is_deleted = 1 WHERE product_url IN($product_url_sku_in_query_c) AND product_sku IN($product_sku_in_query_c)";
							$defaultDb->execute($updateQ);
						}
					}
					
					
					$string_json = json_encode($user_date_updats, true);
					
					
					$cmd = "nohup php /home/mysamm/public_html/mysamm_portal/update_ui_tables.php '$string_json'  >/dev/null 2>&1 & ";
					
					shell_exec($cmd);
					
					print "1"; exit;
				}
			}
		}
	}
}

	
function camel2dashed($className) {
  return strtolower(preg_replace('/([^A-Z-])([A-Z])/', '$1_$2', $className));
}

?>