_v<?php 
require_once('wp-load.php');
require_once('Vinmanager.php');
 
 require_once('wp-admin/includes/image.php');
 require_once('wp-admin/includes/file.php');
 require_once('wp-admin/includes/media.php');

error_reporting(E_ALL);
echo "Running-ChromeCron"."\n";
//$path="feedsplit/CCN Winchester1";
//$path="/home/autocreditcenter/public_html/feedsplit/CCN Winchesterg3d";
$path="/home/autocreditcenter/public_html/feedsplit/CCN Winchester1";
function import_parser( $path)
	{
	
	$row = 0;

	$flag=true;

	$data_csv_full=array();

if (($handle1 = fopen($path, "r")) !== FALSE) {

    while (($data_csv = fgetcsv($handle1, 2500, ",")) !== FALSE){

			if($flag) { $flag = false; 

			 $row++;

			continue; }

			else{ 

			$data_csv_full[$row] =$data_csv;

			$row++;

			}

}	fclose($handle1);

	

	 post_maker($data_csv_full);

			



}else{
	
	echo 'File read error;';
}

}
function post_maker($full_data)
{
	$z=0;
	echo count($full_data)." vehicles in feed"."\n";
	while($z<=count($full_data))
	{ 
	echo $z++."/".count($full_data)."\n";
	$data_csv1=$full_data[$z];
	if($z>0){
		if($data_csv1[12]!=''){
		get_chromedata( $data_csv1);
	
		}
	
		}
	}
	return 1;
}
 function g3dvinman($vin='2C4RDGBGXGR152382'){

$curl = curl_init(); 
curl_setopt_array($curl, array(  
 CURLOPT_URL => 'https://us-central1-glo3d-c338b.cloudfunctions.net/vinDecodeAPI?model_id=1&vin=2&region=3', 
  CURLOPT_RETURNTRANSFER => true,  
  CURLOPT_ENCODING => '',  
  CURLOPT_MAXREDIRS => 10,  
  CURLOPT_TIMEOUT => 0,  
  CURLOPT_FOLLOWLOCATION => true,   
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,  
  CURLOPT_CUSTOMREQUEST => 'POST',  
  CURLOPT_POSTFIELDS =>'{     "vin": "'.$vin.'",     "original_output":true } ', 
  CURLOPT_HTTPHEADER => array('Content-Type: application/json','Authorization: Basic Y2hyaXNqckBjYXJjcmVkaXRuYXRpb24uY29tOkNmYkFSRDcybQ=='), )); 
  
  $response = curl_exec($curl); curl_close($curl); 
  
  $js= json_decode($response);
 // echo $response;
return  $js;
}
function uploadImageToMediaLibrary($postID, $url, $alt = "blabla") {
    $tmp = download_url( $url );
    $desc = $alt;
    $file_array = array();

    // Set variables for storage
    // fix file filename for query strings
    preg_match('/[^\?]+\.(jpg|jpe|jpeg|gif|png)/i', $url, $matches);
    $file_array['name'] = basename($matches[0]);
    $file_array['tmp_name'] = $tmp;

    // If error storing temporarily, unlink
    if ( is_wp_error( $tmp ) ) {
        @unlink($file_array['tmp_name']);
        $file_array['tmp_name'] = '';
    }

    // do the validation and storage stuff
    $id = media_handle_sideload( $file_array, $postID, $desc);

    // If error storing permanently, unlink
    if ( is_wp_error($id) ) {
        @unlink($file_array['tmp_name']);
        return $id;
    }

    return $id;
}
function force_flush_term_cache2( $taxonomy = 'category' ) {

	if ( !taxonomy_exists( $taxonomy ) ) return FALSE;



	wp_cache_set( 'last_changed', time( ) - 1800, 'terms' );

	wp_cache_delete( 'all_ids', $taxonomy );

	wp_cache_delete( 'get', $taxonomy );

	delete_option( "{$taxonomy}_children" );

	_get_term_hierarchy( $taxonomy );

	return TRUE;

}

function save_makemodel_meta2($post_id,$make,$model){

	if (($make!=NULL) AND ($model!=NULL))

	{

		 $ID = $post_id;

		

		//Add new Made

		$term = term_exists($make, 'makemodel');

		

		if ($term !== 0 && $term !== null) {

			$Vehicle_Make_Id = intval($term['term_id']);

		}else{

			$term = wp_insert_term(

			 $make, // the term 

			  'makemodel', // the taxonomy

			  array(

				'parent'=> 0

			  )

			  );

			 $Vehicle_Make_Id = $term['term_id'];

		}





		//Add new Model

		$term = term_exists($model, 'makemodel');

		

		if ($term !== 0 && $term !== null) {

			$Vehicle_model_Id = intval($term['term_id']);

		}else{

			$term = wp_insert_term(

			  $model, // the term 

			  'makemodel', // the taxonomy

			  array(

				'parent'=> $Vehicle_Make_Id

			  )

			  );

			 $Vehicle_model_Id = $term['term_id'];

		}



		force_flush_term_cache2('makemodel');

		$cat_ids = array($Vehicle_Make_Id,$Vehicle_model_Id);
		

		wp_set_object_terms($ID, $cat_ids, 'makemodel');
		
		//Category update new version
		$def_cats= array(651);
		wp_set_object_terms($ID, $def_cats, 'category');

	}

	

}

function vinchecker($vin)
	{
	echo $vin."\n";

	global $wpdb;

	$vinchecksql="SELECT `post_id` AS repeats

	FROM  `wp_postmeta` 

	WHERE  `meta_key` =  '_vin'

	AND  `meta_value` =  '".$vin."'";

	$vincheck=$wpdb->get_results($vinchecksql);

	if($vincheck[0]->repeats==null)

	return 0;

	else

	return $vincheck[0]->repeats;

	}
	
function my_meta2($my_labels,$my_values,$post_id)
	{  if($my_values=='0')

			{for($i=0;$i<count($my_labels);$i++)

			{ add_post_meta($post_id,$my_labels[$i],'1');

			 

			 }

			}else{

		for($i=0;$i<count($my_labels);$i++)

			{

			update_post_meta($post_id,"_".$my_labels[$i],$my_values[$i]);

			

			}

		}

	}


function get_chromedata( $data_csv)
{    //$post_id='';
	 $trimd=$data_csv[11];
	 $vin=$data_csv[12];
	 $exterr= $data_csv[15];
	 $interr=$data_csv[16];
	 
	  $cat=$data_csv[1];
	  
	 $cat='651';
	$vinc=vinchecker($vin);
	
   // $v= g3dvinman($data_csv[12]);
   // $vehicle1 =Vinmanager($vin,$trimd,$exterr,$interr);
    $makmod=$data_csv[9].' '.$data_csv[10];
    $ins=0;
    if($vinc!=0)
	{
	// Edit post
		$my_post = array(
		      'ID'	=> $vinc,
              'post_title'    => ''.$makmod.'',
              'post_status'   => 'publish',
              'post_author'   => 1,
              'post_category' => array($cat),
              'post_name'	  =>''.$makmod.'',
              'post_type'	  =>'gtcd',
               );
         echo "Updated-".$post_id=wp_update_post($my_post);
	}else{
	    
	     /*Get API details*/
	     $vehicle1 =g3dvinman($data_csv[12]);
	    
	    /*Create New  GTCD item*/
	    
	    $my_post = array(
          'post_title'    => ''.$makmod.'',
          'post_status'   => 'publish',
          'post_author'   => 1,
          'post_category' => array($cat),
          'post_name'	  =>''.$makmod.'',
           'post_type'	  =>'gtcd',

	   );
	     $ins=1;
	    $keydata1=array('price','miles','transmission','exterior','interior');
	    $data1=array((int)$data_csv[23],$data_csv[13],$data_csv[17],$data_csv[15],$data_csv[16]);
	   
	   
	     echo "Inserted-".$post_id=wp_insert_post($my_post);
	     wp_set_object_terms( $post_id, $cat,'category',TRUE);

	$taxonomy='makemodel';

	save_makemodel_meta2($post_id,$data_csv[9],$data_csv[10]);
	$vinc = 	$post_id;	
		$my_post1 = array(
		      'ID'	=> $vinc,
              'post_title'    => ''.$makmod.'',
              'post_status'   => 'publish',
              'post_author'   => 1,
              'post_category' => array($cat),
              'post_name'	  =>''.$makmod.'',
              'post_type'	  =>'gtcd',
               );
         echo "Updated-".$post_id=wp_update_post($my_post1);
	    
	}
	 $vehicle1 =g3dvinman($data_csv[12]); 

	
	 $myvehicle= $vehicle1->data->result;
	// echo '<pre>';var_dump($myvehicle);
   // update_post_meta($vinc,'g3dv_exterior', json_encode($vehicle1->data->result->exteriorColors));
   // update_post_meta($vinc,'g3dv_interior',json_encode($vehicle1->data->result->interiorColors));
	 if($data_csv[15]=='')
	 $excolor =$vehicle1->data->result->exteriorColors[0]->description;
	 else
	 $excolor =$data_csv[15];
	 if($data_csv[16]=='')
	 $incolor =$vehicle1->data->result->interiorColors[0]->description;
	 else
	 $incolor =$data_csv[16];
	 
	    $keydata1=array('price','miles','transmission','exterior','interior');
	    $data1=array((int)$data_csv[23],$data_csv[13],$data_csv[17],$excolor,$incolor); 
	    $fields = get_post_meta($vinc, 'mod1', true);
		if( is_serialized( $fields ))
				{
				$fields=unserialize($fields);
				}
    	$mydata1=$fields;
	    $std1=array_combine($keydata1,$data1);
	 
	    update_post_meta($vinc, '_stock', $data_csv[7]);
	     update_post_meta($vinc, '_transmission', $data_csv[17]);
	     update_post_meta($vinc, '_price', (int)$data_csv[23]);
         update_post_meta($vinc, '_miles', $data_csv[13]);
         update_post_meta($vinc, '_exterior', $excolor);
         update_post_meta($vinc, '_interior', $incolor);
         update_post_meta($vinc, 'wp_text_4', $data_csv[14]);
 
         
    	if(isset($data_csv[24])&& $data_csv[24] =='6'){
			update_post_meta( $vinc, 'wp_title_absent', true );
			}else{
			    update_post_meta( $vinc, 'wp_title_absent', false );
			}
        	update_post_meta($vinc, '_vin', $data_csv[12]);
	     update_post_meta($vinc, 'wp_text_1', $data_csv[25]);
		 update_post_meta($vinc, 'wp_sales_price', $data_csv[26]);
		 update_post_meta($vinc, 'wp_loan_months', $data_csv[27]);
		
		update_post_meta($vinc, 'wp_text_6', '9.9'); // 4.9
		$weekprice = calculateweekly($data_csv[26], $data_csv[27], $data_csv[25]); //defined in functions.php
		if(((int)$weekprice)<65){
		    	update_post_meta($vinc, 'wp_text_2', 65);
		   
		        $weekno=calculateweeks2($data_csv[26], '65', $data_csv[25],$data_csv[27]);
		    	update_post_meta($vinc, 'wp_text_5', $weekno); 
		}else{
		    update_post_meta($vinc, 'wp_text_2', $weekprice);
	    	$weekno = ceil($data_csv[27]*4.333);
		    update_post_meta($vinc, 'wp_text_5', $weekno); 
		}
		
$myres =$myvehicle;
 $myfeatures=$mytechs =array();
    foreach($myvehicle->features as $feats){  //echo $feats->description;
        $myfeatures[$feats->sectionName][] = array($feats->description =>$feats->name);
      
    }
    foreach($myvehicle->techSpecs as $techs){  //echo $feats->description;
        $mytechs[$techs->sectionName][] = array($techs->description =>$techs->name);
      
    }
	foreach($mytechs as $jk=>$mytech){
   
    foreach($mytech as $m=>$mytechdet){
        foreach($mytechdet as $k=>$v)
        {
          $v= str_replace('"','in',$v);
          $v= str_replace("'","ft",$v);
           
        // echo ' '.$k.':'.$v;
         //echo '<br>';
       $mytechdet[$k]= $v;
        }
        
         $mytech[$m] =$mytechdet;
    }
        $mytechs[$jk] =$mytech;
   
} 
  $filter_bodytype = $myvehicle->vehicles[0]->bodyType;
  $transdrivetype= $myvehicle->vehicles[0]->driveType;
   update_post_meta($vinc, 'filter_bodytype', $filter_bodytype);
   update_post_meta($vinc,'g3dv_features', json_encode($myfeatures));
   update_post_meta($vinc,'g3dv_tech', json_encode($mytechs));
   update_post_meta($vinc,'g3dv_exterior', json_encode($myvehicle->exteriorColors));
   update_post_meta($vinc,'g3dv_interior',json_encode($myvehicle->interiorColors));
   update_post_meta($vinc,'g3dv_vehicle',json_encode($myvehicle->vehicles));
   update_post_meta($vinc, 'feed_options', $data_csv[21]);
   update_post_meta($vinc, '_make', $data_csv[9]);
   update_post_meta($vinc, '_model', $data_csv[10]);
   update_post_meta($vinc, '_year', $data_csv[8]);
   update_post_meta($vinc, '_vehicletype', $filter_bodytype);
   update_post_meta($vinc,"_statustag","None"); 
   $g3dtranstype= ''; $g3ddrivetype='';
   $g3dfeatdata =$myfeatures; $g3dtechdata =$mytechs;
  $g3dnocyl= $g3dengine=''; $transm='';$g3dcyl=$g3dfuel=$g3ddisp='';
     foreach($g3dfeatdata as $g3dfeatd){		
		 foreach($g3dfeatd as $g3dfeatd1)
			  foreach($g3dfeatd1 as $key=>$g3dfeatd2){
				 if($key=='Engine Cylinders')
					 $g3dcyl =   $g3dfeatd2;
				else if($key=='Fuel Type')
					 $g3dfuel =   $g3dfeatd2;
				 else if($key=='Transmission'){
					  $transm =$g3dfeatd2;
				  }else if($key=='Transmission Type'){
					  $g3dtranstype =$g3dfeatd2;
				  }else if($key=='Engine'){
					  $g3dengine =$g3dfeatd2;
				  }else if($key=='Drive type'){
					  $g3ddrivetype =$g3dfeatd2;
				  }
			  }		 
	 }

	 $g3dFEComb=$g3dFEcity=$g3dFEhwy='-';
	 
	   foreach($g3dtechdata as $g3dtechd){		
		 foreach($g3dtechd as $g3dtechd1)
			  foreach($g3dtechd1 as $key=>$g3dtechd2){
				  //var_dump($key);
				 if($key=='Fuel economy city')
					 $g3dFEcity=   $g3dtechd2;
				 else if($key=='Fuel economy highway'){
					 
					  $g3dFEhwy =$g3dtechd2;
				  }else if($key=='Fuel economy combined'){
					 
					  $g3dFEComb =$g3dtechd2;
				  }
				  elseif($key=='Displacement'){
					  $g3ddisp=$g3dtechd2;
				  }else if($key=='Engine Cylinders')
					 $g3dnocyl =   $g3dtechd2;
			  }		 
	 } 
	 if($g3dnocyl=='4' &&  strpos( $g3dfuel, 'hybrid' ) ){
	      update_post_meta($vinc,'filter_gassaver','gassaver');
	 }
	  update_post_meta($vinc,'_engine',$g3dengine);
	  update_post_meta($vinc,'_cylinders',$g3dcyl);
	  update_post_meta($vinc,'g3_fueltype',$g3dfuel);
	  update_post_meta($vinc,'g3_displacement',$g3ddisp);
	  
      update_post_meta($vinc,'_EPA_CITY_MPG',(int)$g3dFEcity);
      update_post_meta($vinc,'_EPA_HIGHWAY_MPG',(int)$g3dFEhwy);
      
      
    
	$dtarray = array( "4x4" ,"four wheel drive","all wheel drive","4-wheel drive","4-Wheel Drive","Four Wheel Drive", "All Wheel Drive", "awd");
	 $dts = trim(strtolower($transdrivetype));
		 update_post_meta($vinc,'_drive',$g3ddrivetype);
	        $drivetrain = $g3ddrivetype;
    	if(in_array($dts,$dtarray)){
    	 update_post_meta($vinc,'filter_4x4',true);
    	}else{
    	 update_post_meta($vinc,'filter_4x4',false);
    	}
      
     // echo '<pre>';
      
      $mydata1=array('make'=>$data_csv[9],
	 'model'=>$data_csv[10],
	 'year'=>$data_csv[8],
	 'vin'=>$data_csv[12], 'stock' =>$data_csv[7], 'price' =>(int)$data_csv[23],
	 'epamileage'=>(int)$g3dFEComb,
	 'transmission'=>$transm,
	 'vehicletype'=>$filter_bodytype,
	 'drive'=>$drivetrain,
	 'EPA_CITY_MPG'=>(int)$g3dFEcity,
	 'EPA_HIGHWAY_MPG'=>(int)$g3dFEhwy
	 );
	 $mydata2=array_replace( $mydata1,$std1); // duplicate keys on second arrays will be ignored
   
	$ser1=serialize($mydata2);
	  // $mydata2=array_replace( $mydata1,$std1); // duplicate keys on second arrays will be ignored
	  //  $ser1=serialize($mydata2);
	     update_post_meta($vinc, 'mod1', $ser1);
	   // var_dump($ser1);
	   		/*Warranty disclaimer update*/
	    $myplan ='';
		$make_eu = array('BMW', 'VW', 'Audi', 'Volkswagen', 'Mercedes','Mercedes-Benz','Mercedes Benz', 'Volvo' );
		   $plans= array(
             "This Vehicle Qualifies for our 36,000 Mile / 36 Month Breakdown Protection Plan!",
             "This Vehicle Qualifies for our 24,000 Mile / 24 Month Breakdown Protection Plan!",
             "This Vehicle Qualifies for our 12,000 Mile / 12 Month Breakdown Protection Plan!");
		if(!in_array($data_csv[9],$make_eu )){
		    if($data_csv[13]>=180000){
		         $myplan= $plans[2];
		    }elseif($data_csv[13]>=140000){
		          $myplan= $plans[1];
		    }else{
		          $myplan= $plans[0];
		    }
		    
		}else{
		     if($data_csv[13]>=150000){
		         $myplan= $plans[2];
		    }elseif($data_csv[13]>=120000){
		          $myplan= $plans[1];
		    }else{
		          $myplan= $plans[0];
		    }
		    
		}
		
		update_post_meta($vinc, 'wp_text_3', $myplan);	
		$tdata= strtolower(trim($data_csv[17]));
		$search_array = explode(' ',$tdata);
	if(in_array('auto',$search_array)||in_array('automatic',$search_array)||in_array('cvt',$search_array) ||((in_array('continuously',$search_array))&& (in_array('variable',$search_array))&&(in_array('transmission',$search_array))) ){
		$filter_transmission='Automatic';
		update_post_meta($post_id, 'actual_transmission','CSV-'.$data_csv[17]);
	}else{
	    $filter_transmission =$g3dtranstype;
	  
	}
		update_post_meta($vinc, 'filter_transmission', $filter_transmission);
		update_post_meta($vinc, 'cronupdated', 1);
	  // if($ins==0)
	
	    
	
    
}

function check_gassaver($vehicle,$post_id){
	$gassaver=false;
	//var_dump($vehicle);
	/*
	if($vehicle['cylinders']!='4'){
		if( strpos( $vehicle['fuelType'], 'hybrid' ) !== false ) 
		{
		$gassaver='Gassaver';
	//	update_post_meta($post_id, 'actual_gassaver', $vehicle['fuelType']);
		
		}else{
			$gassaver=false;
		//	update_post_meta($post_id, 'actual_gassaver', $vehicle['fuelType'].'-'.$vehicle['cylinders'].' Cyl');
			}
	}else{
		$gassaver='Gassaver';
	//	update_post_meta($post_id, 'actual_gassaver', '4 Cylinders');
		
*/	    
	}


function updateg3dmeta($postid,$myres)
{
   //actual_transmission
   //$myres= g3dvinman($vin);
	$myres1 = htmlspecialchars($myres);
	  update_post_meta($postid,'g3dv_fullvin', $myres1);
	//echo $postid;
    $i=1;
    $myfeatures=$mytechs =array();
    foreach($myres->data->result->features as $feats){  //echo $feats->description;
        $myfeatures[$feats->sectionName][] = array($feats->description =>$feats->name);
      
    }
    foreach($myres->data->result->techSpecs as $techs){  //echo $feats->description;
        $mytechs[$techs->sectionName][] = array($techs->description =>$techs->name);
      
    }
	foreach($mytechs as $jk=>$mytech){
   
    foreach($mytech as $m=>$mytechdet){
        foreach($mytechdet as $k=>$v)
        {
          $v= str_replace('"','in',$v);
          $v= str_replace("'","ft",$v);
           
        // echo ' '.$k.':'.$v;
         //echo '<br>';
       $mytechdet[$k]= $v;
        }
        
         $mytech[$m] =$mytechdet;
    }
        $mytechs[$jk] =$mytech;
   
}


   update_post_meta($postid,'g3dv_features', json_encode($myfeatures));
   update_post_meta($postid,'g3dv_tech', json_encode($mytechs));
   update_post_meta($postid,'g3dv_exterior', json_encode($myres->data->result->exteriorColors));
   update_post_meta($postid,'g3dv_interior',json_encode($myres->data->result->interiorColors));
   update_post_meta($postid,'g3dv_vehicle',json_encode($myres->data->result->vehicles));
   
   
        
    }
    
/*End G3d functions*/

/***/
import_parser($path);

?>