<?php
#include("../../includes/session.php");
include("../../includes/db.php");
#session(1);

function cleanDB($str){
	return trim(addslashes($str));	
}
function parseAnagr($str){
	$str = cleanDB($str);
	$space_pos = strpos($str,"   ");
	$str = $space_pos > 0 ? substr($str,0,$space_pos) : $str;
	return $str;
}
function data($date){
	$date = trim($date);
	
	//formato, da aaaammgg a gg/mm/aaaa	
	if(strlen($date) == 8){
		$gg = substr($date,6,2);
		$mm = substr($date,4,2);
		$aaaa = substr($date,0,4);
		$data = $aaaa.'-'.$mm.'-'.$gg;
	}else{
		$data = '0000-00-00';
	}
	return $data;
}

//unzip file
exec("unzip -P progetto -o -u -d ../../../txtimport/ ../../../txtimport/txt.zip");

//memorizzo dati lavoratori
$result = mysql_query("SELECT *, lavoratori.blocked AS lav_blocked, lavoratori_tgl.blocked AS tgl_blocked FROM lavoratori LEFT JOIN lavoratori_tgl ON lavoratori.lav_cod = lavoratori_tgl.lav_cod");
while($row = mysql_fetch_array($result)){
	$lav_cod = $row['lav_cod'];
	$arrLavoratori[$lav_cod]["imp_cod"] = $row['imp_cod'];
	$arrLavoratori[$lav_cod]["pos_id"] = $row['pos_id'];
	$arrLavoratori[$lav_cod]["tgl_blocked"] = $row['tgl_blocked'];
	$arrLavoratori[$lav_cod]["lavtgl_giacca_est"] = $row['lavtgl_giacca_est'];
	$arrLavoratori[$lav_cod]["lavtgl_giacca_inv"] = $row['lavtgl_giacca_inv'];
	$arrLavoratori[$lav_cod]["lavtgl_pant_est"] = $row['lavtgl_pant_est'];
	$arrLavoratori[$lav_cod]["lavtgl_pant_inv"] = $row['lavtgl_pant_inv'];
	$arrLavoratori[$lav_cod]["lavtgl_giub_est"] = $row['lavtgl_giub_est'];
	$arrLavoratori[$lav_cod]["lavtgl_giub_inv"] = $row['lavtgl_giub_inv'];
	$arrLavoratori[$lav_cod]["lavtgl_scarp_est"] = $row['lavtgl_scarp_est'];
	$arrLavoratori[$lav_cod]["lavtgl_scarp_inv"] = $row['lavtgl_scarp_inv'];
	$arrLavoratori[$lav_cod]["lav_abb"] = $row['lav_abb'];
	$arrLavoratori[$lav_cod]["lav_blocked"] = $row['lav_blocked'];
	$arrLavoratori[$lav_cod]["tgl_blocked"] = $row['tgl_blocked'];
}

//memorizzo dati imprese
$result = mysql_query("SELECT * FROM imprese");
while($row = mysql_fetch_array($result)){
	$imp_cod = $row['imp_cod'];
	$arrImprese[$imp_cod]["imp_indirizzo"] = $row['imp_indirizzo'];
	$arrImprese[$imp_cod]["imp_citta"] = $row['imp_citta'];
	$arrImprese[$imp_cod]["imp_cap"] = $row['imp_cap'];
	$arrImprese[$imp_cod]["imp_prov"] = $row['imp_prov'];
	$arrImprese[$imp_cod]["blocked"] = $row['blocked'];
}


/*
CEAZI00P.txt - imprese
cedip00f.txt - dipendenti
cedi100f.TXT - taglie
*/

//imprese
$fpath = "../../../txtimport/CEAZI00P.txt";
if(is_file($fpath)){
	
	$handle = fopen($fpath, "r");
	if ($handle) {
		while(!feof($handle)){
			
			$line = fgets($handle,4096);
			
			$imp_annullato = substr($line, 1, 1) == 'C' ? 1 : 0;
			$imp_cod = intval(substr($line, 4, 4));
			$imp_anagrafica = cleanDB(substr($line, 13, 40));
			$imp_indirizzo = cleanDB(substr($line, 56, 40));
			$imp_cap = intval(substr($line, 98, 5));
			$imp_citta = cleanDB(substr($line, 107, 34));
			$imp_prov = cleanDB(substr($line, 144, 2));
			$imp_codfisc = cleanDB(substr($line, 149, 16));
			$imp_piva = str_pad(cleanDB(substr($line, 167, 11)),11,"0",STR_PAD_LEFT);
			$tipoimp_id = cleanDB(substr($line, 182, 1));
			$sosp_id = intval(substr($line, 483, 2));

			if($imp_cod > 0){
			
				mysql_query( 
				"INSERT INTO imprese (imp_cod,imp_annullato,imp_anagrafica,imp_indirizzo,imp_cap,imp_citta,imp_prov,imp_codfisc,imp_piva,tipoimp_id,sosp_id) VALUES (
				'" . $imp_cod . "',
				'" . $imp_annullato . "',
				'" . $imp_anagrafica . "',
				'" . $imp_indirizzo . "',
				'" . $imp_cap . "',
				'" . $imp_citta . "',
				'" . $imp_prov . "',
				'" . $imp_codfisc . "',
				'" . $imp_piva . "',
				'" . $tipoimp_id . "',
				'" . $sosp_id . "')
				
				ON DUPLICATE KEY UPDATE 
				imp_annullato='".$imp_annullato."',
				imp_anagrafica='" . $imp_anagrafica . "',
				imp_indirizzo=IF(blocked = 0, '" . $imp_indirizzo. "',imp_indirizzo),
				imp_cap=IF(blocked = 0, " . $imp_cap. ",imp_cap),
				imp_citta=IF(blocked = 0, '" . $imp_citta. "',imp_citta),
				imp_prov=IF(blocked = 0, '" . $imp_prov. "',imp_prov),		
				imp_codfisc='" . $imp_codfisc . "',
				imp_piva='" . $imp_piva . "',
				tipoimp_id='" . $tipoimp_id . "',
				sosp_id='" . $sosp_id . "'
				");
				
				if($arrImprese[$imp_cod] && $arrImprese[$imp_cod]["blocked"] == 1){
					if(
					$arrImprese[$imp_cod]["imp_indirizzo"] == $imp_indirizzo && 
					$arrImprese[$imp_cod]["imp_cap"] == $imp_cap && 
					$arrImprese[$imp_cod]["imp_citta"] == $imp_citta && 
					$arrImprese[$imp_cod]["imp_prov"] == $imp_prov
					)
					mysql_query("UPDATE imprese SET blocked = 0 WHERE imp_cod = ".$imp_cod);
				}
				
				
				if(mysql_error() <> '')
					die(mysql_error());
				
			}
		}
		
		fclose($handle);
		
	}
}

//dipendenti
$fpath = "../../../txtimport/cedip00f.txt";
if(is_file($fpath)){
	
	$handle = fopen($fpath, "r");
	if ($handle) {
		while(!feof($handle)){
			
			$line = fgets($handle,4096);

			$lav_annullato = substr($line, 0, 1) == 'C' ? 1 : 0;
			$lav_cod = intval(substr($line, 2, 5));
			$lav_anagrafica = parseAnagr(substr($line, 24, 35));
			$lav_codfisc = cleanDB(substr($line, 143, 16));
			$lav_dnascita = data(substr($line, 192, 8));
			$imp_cod = intval(substr($line, 244, 6));
			$pos_id = intval(substr($line, 268, 2));
			$mans_id = intval(substr($line, 293, 2));
			$lav_opimp = substr($line, 382, 1);
			$lav_ore = intval(substr($line, 617, 6));
			$lav_abb = substr($line, 624, 1) == 'S' ? 1 : 0;
						
			if($lav_cod > 0){
				
				mysql_query( 
				"INSERT INTO lavoratori (lav_cod,lav_annullato,imp_cod,lav_anagrafica,lav_codfisc,lav_dnascita,pos_id,mans_id,lav_opimp,lav_ore,lav_abb) VALUES (
				
				'" . $lav_cod . "',
				'" . $lav_annullato . "',
				'" . $imp_cod . "',
				'" . $lav_anagrafica . "',
				'" . $lav_codfisc . "',
				'" . $lav_dnascita . "',
				'" . $pos_id . "',
				'" . $mans_id . "',
				'" . $lav_opimp . "',
				'" . $lav_ore . "',
				'" . $lav_abb . "')
				
				ON DUPLICATE KEY UPDATE 
				lav_annullato='".$lav_annullato."',
				imp_cod=IF(blocked = 0, '" . $imp_cod. "',imp_cod),					
				lav_anagrafica='" . $lav_anagrafica . "',
				lav_codfisc='" . $lav_codfisc . "',
				lav_dnascita='" . $lav_dnascita . "',
				pos_id=IF(blocked = 0, " . $pos_id. ",pos_id),
				mans_id='" . $mans_id . "',
				lav_opimp='" . $lav_opimp . "',
				lav_ore='" . $lav_ore . "',
				lav_abb=IF(blocked = 0, " . $lav_abb. ",lav_abb)					
				");


				if($arrLavoratori[$lav_cod] && $arrLavoratori[$lav_cod]["lav_blocked"] == 1){
					if(
						$arrLavoratori[$lav_cod]["lav_abb"] == $lav_abb && 
						$arrLavoratori[$lav_cod]["pos_id"] == $pos_id && 
						$arrLavoratori[$lav_cod]["imp_cod"] == $imp_cod
					)
					mysql_query("UPDATE lavoratori SET blocked = 0 WHERE lav_cod = ".$lav_cod);
				}
				
				if(mysql_error() <> '')
					die(mysql_error());

			}
		}
		
		fclose($handle);
		
	}
}

//taglie
$fpath = "../../../txtimport/cedi100f.TXT";
if(is_file($fpath)){
	
	$handle = fopen($fpath, "r");
	if ($handle) {
		while(!feof($handle)){
			
			$line = fgets($handle,4096);

			$annullato = substr($line, 0, 1) == 'C' ? 1 : 0;
			$lav_cod = intval(substr($line, 2, 5));
			$lavoro_id = intval(substr($line, 7, 2));
			$lavtgl_giacca_est = intval(substr($line, 10, 2));
			$lavtgl_pant_est = intval(substr($line, 13, 2));
			$lavtgl_giub_est = intval(substr($line, 16, 2));
			$lavtgl_scarp_est = intval(substr($line, 19, 2));
			$lavtgl_giacca_inv = intval(substr($line, 22, 2));
			$lavtgl_pant_inv = intval(substr($line, 25, 2));
			$lavtgl_giub_inv = intval(substr($line, 28, 2));
			$lavtgl_scarp_inv = intval(substr($line, 31, 2));

			if($lav_cod > 0){
				
				if(!$arrLavoratori[$lav_cod]){
				
					mysql_query( 
					"INSERT INTO lavoratori_tgl (lav_cod,lavtgl_annullato,lavoro_id,lavtgl_giacca_est,lavtgl_giacca_inv,lavtgl_pant_est,lavtgl_pant_inv,lavtgl_giub_est,lavtgl_giub_inv,lavtgl_scarp_est,lavtgl_scarp_inv) VALUES (
					'" . $lav_cod. "',	 
					'" . $annullato. "',	 
					'" . $lavoro_id. "',
					'" . $lavtgl_giacca_est. "',
					'" . $lavtgl_giacca_inv. "',
					'" . $lavtgl_pant_est. "',
					'" . $lavtgl_pant_inv. "',
					'" . $lavtgl_giub_est. "',
					'" . $lavtgl_giub_inv. "',
					'" . $lavtgl_scarp_est. "',
					'" . $lavtgl_scarp_inv. "')");
				
				}else{

					//faccio l'update delle taglie solo se non è bloccato
					if(isset($arrLavoratori[$lav_cod]["tgl_blocked"]) && $arrLavoratori[$lav_cod]["tgl_blocked"] != ""){
						
						mysql_query("UPDATE lavoratori_tgl SET
							lavtgl_annullato = '" . $annullato. "',
							lavoro_id = " . $lavoro_id. ",
							lavtgl_giacca_est = " . $lavtgl_giacca_est. ",
							lavtgl_giacca_inv = " . $lavtgl_giacca_inv. ",
							lavtgl_pant_est = " . $lavtgl_pant_est. ",
							lavtgl_pant_inv = " . $lavtgl_pant_inv. ",
							lavtgl_giub_est = " . $lavtgl_giub_est. ",
							lavtgl_giub_inv = " . $lavtgl_giub_inv. ",
							lavtgl_scarp_est = " . $lavtgl_scarp_est. ",
							lavtgl_scarp_inv = " . $lavtgl_scarp_inv. "
							WHERE lav_cod = ".$lav_cod);	

					//se è bloccato, e i campi di AS sono uguali a quelli online (quindi hanno aggiornato anche su AS) lo sblocco e faccio update solo di anullato
					}else{
						
						if(
							$arrLavoratori[$lav_cod]["lavoro_id"] == $lavoro_id &&
							$arrLavoratori[$lav_cod]["lavtgl_giacca_est"] == $lavtgl_giacca_est &&
							$arrLavoratori[$lav_cod]["lavtgl_giacca_inv"] == $lavtgl_giacca_inv &&
							$arrLavoratori[$lav_cod]["lavtgl_pant_est"] == $lavtgl_pant_est &&
							$arrLavoratori[$lav_cod]["lavtgl_pant_inv"] == $lavtgl_pant_inv &&
							$arrLavoratori[$lav_cod]["lavtgl_giub_est"] == $lavtgl_giub_est &&
							$arrLavoratori[$lav_cod]["lavtgl_giub_inv"] == $lavtgl_giub_inv &&
							$arrLavoratori[$lav_cod]["lavtgl_scarp_est"] == $lavtgl_scarp_est &&
							$arrLavoratori[$lav_cod]["lavtgl_scarp_inv"] == $lavtgl_scarp_inv
						)
							$blocked = 0;
						else
							$blocked = 1;
						
						mysql_query("UPDATE lavoratori_tgl SET lavtgl_annullato = '" . $annullato. "', blocked = ".$blocked." WHERE lav_cod = ".$lav_cod);
					}
					
				
					if(mysql_error() <> '')
						die(mysql_error());
				}
			}
		}
		
		fclose($handle);
		
	}
}
?>