<?php
if (!$_SESSION['connected'])
	echo ('Vous devez être connecté afin de pouvoir utiliser cette fonctionnalité');
else
{
$eol="\n";

require_once 'common/curl.php';

$siret=$_REQUEST['siret'];
/*
$con = mysql_pconnect('localhost', 'root', 'catsysyo92');
if (!($con === false)) {
      if (mysql_select_db('jo', $con) === false)
           echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
}
else
	echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
*/

/**
 * Enter description here...
 *
 * @param integer $siret  Siren ou Siret de l'établissment
 * @param string  $format Format 'pdf' ou 'array'
 * @param boolean $force  True aller obligatoirement le chercher à l'insee
 * @return string Le PDF demandé
 */
function getAvisSituation($siret, $format='pdf', $force=0) 
{
	$force=$force*1;
	$date=date('Ymd');
	$siren=trim(substr($siret,0,9));
	$nic=trim(substr($siret,9,5));
	$fichier = PATH_DATA.'/pdf/avis-'.$siren.'-'.$nic.'-'.$date.'.pdf';
	if ($format!='pdf')	return 'Format pdf uniquement';
	if ($force==0 && file_exists($fichier)) 
	{
		// On délivre l'avis en base
		return file_get_contents($fichier);
	} 
	else 
	{
		/** Initialisation de la session sur le site de l'Insee **/
		$url = 'http://avis-situation-sirene.insee.fr/avisitu/jsp/avis.jsp';
		//http://avis-situation-sirene.insee.fr/avisituV2/jsp/avis.jsp';
		$referer = $cookie = '';
		$page = getUrl($url, $cookie, '', $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
		//Code en 4xx ou 5xx signifie une erreur du serveur
		$codeN = floor($page['code']/100);
		if($codeN==4 || $codeN==5)
		{
			return false;
		}
		else
		{			
			
			$referer = $url;
			$body = $page['body'];
			$serviceDispo = true;

			//On doit retrouver sur la page 
			/*
			<form name="demForm" method="post" action="/avisitu/IdentificationListeSiret.do		
			*/
			if (preg_match("/<form name=\"demForm\" method=\"post\" action=\"\/avisitu\/IdentificationListeSiret.do/Uis", $body, $matches))
			{
				$fp = @fopen($fichier, "a");
				@fwrite($fp, $body);
				@fclose($fp);
				$cookie = $page['header']['Set-Cookie'];
				usleep(round(rand(500000,2000000)));
				
				$dep=$depActif='';
				if ($nic=='')	$crit='S';	// l'établissement siège
				else 			$crit='';	// établissement particulier, saisissez le NIC
				/*				$crit='T';	// tous les établissements de l'entreprise
								$crit='T';	// tous les établissements de l'entreprise du département $dep
								$crit='A';	// tous les établissements actifs de l'entreprise
								$crit='A';	// tous les établissements actifs de l'entreprise du département $depActif
				*/
				//Post du formulaire
				$url = 'http://avis-situation-sirene.insee.fr/avisitu/IdentificationListeSiret.do';
				//$url='http://avis-situation-sirene.insee.fr/avisituV2/IdentificationDetailEtab.do';
				$post = array(
					'siren' => $siren,
					'critere' => $crit,	// S pour le siège ou vide avec un NIC !!!
					'nic' => $nic,
					'departement' => $dep,
					'departement_actif' => $depActif,
					'bSubmit' => 'Valider');
				$page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 7);		
				
				$body = $page['body'];
				$fp=@fopen($fichier, "a");
				@fwrite($fp, $body);
				@fclose($fp);
		
				if (preg_match("/<h3>Fiche établissement<\/h3>/Uis", $body, $matches))//<li class="ongletActif">&eacute;tablissement</li>
					$tabInfos['fiche']='etab';
		
				if (preg_match('/<div class="TitreGauche">(.*)<br\/>/Uis', $body, $matches)) {
					$tabInfos['raiSoc']=trim($matches[1]);
				}
		
				if (preg_match("/Derni&egrave;re mise &agrave; jour : (.*)<\/div>/Uis", $body, $matches))
					$tabInfos['dateMaj']=trim($matches[1]);
		
				$s1=substr($siren,0,3);
				$s2=substr($siren,3,3);
				$s3=substr($siren,6,3);
				if (preg_match('/<div class="TitreDroite">(?:.*)('.$s1.'(?:.*)'.$s2.'(?:.*)'.$s3.')(?:.*)('.$nic.')(?:.*)<\/div>/Uis', $body, $matches))	{
					$tabInfos['siren']	=	trim($matches[1]);
					$tabInfos['nic']	=	trim($matches[2]);
				}
		
				if (preg_match('/<label id="labelFiche">Etat : <\/label>(.*)depuis le(.*)<\/p>/Uis', $body, $matches))	{
					$tabInfos['etat']	 =	trim($matches[1]);
					$tabInfos['dateEtat']=	trim($matches[2]);
				}
		
				if (preg_match('/<label id="labelFiche">Cat&eacute;gorie d\'&eacute;tablissement : <\/label>(.*)<\/p>/Uis', $body, $matches)) {
					$tabInfos['typeEtab']=	trim($matches[1]);
				}
		
				$tabAdresse=array();
				if (preg_match('/<label id="labelFiche">Adresse d\'implantation : <\/label>(?:.*)<ul id="adresse">(.*)<\/ul>/Uis', $body, $matches)) {
					$strTmp=trim($matches[1]);
					$tabTmp=explode('</li>', $strTmp);
					foreach ($tabTmp as $i=>$strTmp)
						$tabAdresse[$i]=trim(str_replace('<li>','',$strTmp));
				}
		
				if (preg_match('/<label id="labelFiche">(?:.*)Catégorie juridique :(?:.*)<\/label>(.*) - (.*)<\/p>/Uis', $body, $matches)) {
					$tabInfos['fjCod']=	trim($matches[1]);
					$tabInfos['fjLib']=	trim($matches[2]);
				}
		
				if (preg_match('/<label id="labelFiche">Activité principale exercée :(?:.*)<\/label>(.*) - (.*)<\/p>/Uis', $body, $matches)) {
					$tabInfos['nafCod']=trim($matches[1]);
					$tabInfos['nafLib']=trim($matches[2]);
				}
		
				if (preg_match('/<label id="labelFiche">(?:.*)Tranche d&#39;effectif(.*)<\/label>(.*)<\/p>/Uis', $body, $matches)) {
					$tabInfos['effPeriode']=trim($matches[1]);
					$tabInfos['effTranche']=trim($matches[2]);
				}
		
				$strCsv=$siren.';'.$nic.';'.$tabInfos['fiche'].';'.$tabInfos['dateMaj'].';'.
						$tabInfos['siren'].';'.$tabInfos['nic'].';'.$tabInfos['raiSoc'].';'.
						$tabInfos['etat'].';'.$tabInfos['dateEtat'].';'.$tabInfos['fjCod'].';'.$tabInfos['fjLib'].';'.
						$tabInfos['nafCod'].';'.$tabInfos['nafLib'].';'.$tabInfos['effPeriode'].';'.
						$tabInfos['effTranche'].';'.
						$tabInfos['typeEtab'].';'.@implode(';',@$tabAdresse).
						";\n";
				$fp=@fopen(PATH_LOGS."avis.csv", "a");
				@fwrite($fp, $strCsv);
				@fclose($fp);
		
				// $body contient l'avis de situation au format html
				$tabErreurs=array();
				if (preg_match('/name="erreurs" value="(.*)" class="erreurText" readonly/Ui', $body, $matches1) ||
					preg_match('/name="erreurs_bis" value="(.*)" class="erreurTextBis" readonly/Ui', $body, $matches2)) {
					$tabErreurs[]=@$matches1[1];
					$tabErreurs[]=@$matches2[1];
					die('<font color="red">ERREUR '.implode(' ', $tabErreurs).'</font>'); // Gérer le retour d'une erreur
				}
				usleep(round(rand(500000,1000000)));
		
				if ($format=='pdf') 
				{
					$referer = $url;
					$url = 'http://avis-situation-sirene.insee.fr/avisitu/AvisPdf.do';
					//$url='http://avis-situation-sirene.insee.fr/avisituV2/AvisPdf.do';
					$post = array(
						'siren'=>$siren,
						'nic'=>$nic,
				      	'bSubmit'=>'Avis+de+Situation'
					);
					$page = getUrl($url, $cookie, $post, $referer, false, 'avis-situation-sirene.insee.fr', '', 7);
					$body = $page['body'];
					$fp = @fopen($fichier, "w");
					@fwrite($fp, $body);
					@fclose($fp);
					//@exec("/var/www/site_extranet/www/pdf/pdftohtml -xml $fichier");
				} // Fin format PDF
			}
			else
			{
				$body = false;
			}					
			return $body;	
		} // Fin erreur initialisation
	} // Fin fichier disponible
}

	$body = getAvisSituation($siret, 'pdf', 1);
	if($body !== false)
	{
	
		header("Pragma: public");
		header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
		header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
		header("Cache-Control: must-revalidate");
		header("Content-type: application/pdf");
		header("Content-Length: ".strlen($body));
		header('Content-disposition: inline; filename="avis-'.$siret.'.pdf"');// attachement or inline
		header("Accept-Ranges: ".strlen($body));
		echo $body;
		
		$client = new SoapClient(null, array(	'trace'			=> 1,
												'soap_version'	=> SOAP_1_1,
												'location'		=> WEBSERVICE_URL,
												'uri'			=> WEBSERVICE_URI,
												'login'			=> $_SESSION['tabInfo']['login'],
												'password'		=> $_SESSION['tabInfo']['password']));
		$O = $client->setLog('avis_situation'.$vue, $siret, 0, $option);
	
	}
	else
	{
		//Envoi mail erreur 
		mail(	'support@scores-decisions.com',"Avis Situation INSEE",
				'Accès impossible au site de situation INSEE : '.$_REQUEST['siren'].EOL.
				'http://avis-situation-sirene.insee.fr'.EOL.
				'pour login '.$_SESSION['tabInfo']['login'].EOL 
		);
		
		//Affichage message d'erreur
		echo '<h3>Le site partenaire n\'a pas répondu correctement ou est indisponible. Merci d\'essayer à nouveau ultérieurement.</h3>';
	}
}
 ?>