<?

if (!$_SESSION['connected'])
	echo ('Vous devez être connecté afin de pouvoir utiliser cette fonctionnalité');
elseif ( !preg_match('/\bKBIS\b/i', $_SESSION['tabInfo']['droits']))
	echo ('Vous n\'avez pas les droits nécessaires pour utiliser cette fonctionnalité');
else {

	$login=strtolower($_SESSION['tabInfo']['login']);
	$siret=$_REQUEST['siret'];
	$siren=substr($siret,0,9);
	$id=$_REQUEST['id'];
	$vue=$_REQUEST['vue']*1;

	$tabInfo = $_SESSION['tabInfo'];

	$raisonSociale=$tabInfo['entrep']['raisonSociale'];
	$cj=$tabInfo['entrep']['fj'];
	$dep=substr(''.$tabInfo['entrep']['codeCommune'],0,2);

	$errCJ = $errDep = $errNum = false;

	if ( ($cj>=91 && $cj<=93) || ($cj>=9110 && $cj<=9300) )
		$errCJ=true;
	elseif ( $dep=='00' || $dep=='57' || $dep=='67' || $dep=='68' || $dep=='97' || $dep=='98')
		$errDep=true;
	else {
			$client2 = new SoapClient(null, array(  'location'      => INFOGREFFE_WS_URL,
		                                      	  	'uri'           => INFOGREFFE_WS_URI,
        		                            	    'soap_version'  => SOAP_1_1,
                		                   	     	'trace'         => 1,
                        		          		    'style'         => SOAP_RPC,
                                		        	'use'           => SOAP_ENCODED,
												));
			$type =	'AC';
			$req = 	'<demande>'.
					'<emetteur>'.
					'<code_abonne>'.INFOGREFFE_WS_USER.'</code_abonne>'.//85009006
					'<mot_passe>'.INFOGREFFE_WS_PASS.'</mot_passe>'.//
					'<reference_client>'.INFOGREFFE_WS_REF.'</reference_client>'.
					'<code_requete>'.
					'<type_profil>A</type_profil>'.
					'<origine_emetteur>IC</origine_emetteur>'.
					'<nature_requete>C</nature_requete>'.
					'<type_document>'.$type.'</type_document>'.// KB=Kbis, HQ=Histo, ST=Statut, AC=Acte, LE=Liste étab
					'<type_requete>S</type_requete>'.
					'<media>WS</media>'.
					'<mode_diffusion>'.
					'<mode type="T"/>'.
					'</mode_diffusion>'.
					'</code_requete>'.
					'</emetteur>'.
					'<commande>'.
					'<num_siren>'.$siren.'</num_siren>'.
					'</commande></demande>';

			$fichier="$type-$siren.xml";
			$perisable=true;

	if (// Le fichier n'existe pas en cache
		!file_exists(PATH_DATA.'/infogreffe/xml/'.$fichier) ||
		// Le fichier existe en cache mais est périsable (liste)
		( file_exists(PATH_DATA.'/infogreffe/xml/'.$fichier) && $perisable && date('Ymd', filemtime(PATH_DATA.'/infogreffe/xml/'.$fichier))<>date('Ymd') ) ||
		// Le fichier existe en cache, n'est pas périsable (acte) mais contient un message d'erreur
		( file_exists(PATH_DATA.'/infogreffe/xml/'.$fichier) && !$perisable && date('Ymd', filemtime(PATH_DATA.'/infogreffe/xml/'.$fichier))<>date('Ymd') &&
		 filesize(PATH_DATA.'/infogreffe/xml/'.$fichier)<=200)
		){
			try {
				$O=$client2->getProduitsWebServicesXML(utf8_encode($req));
				$xml=implode('', (array)$O);
			}catch (SoapFault $soapFault) {//        echo "ERROR :\n", var_dump($soapFault), "\n"; echo "Request :\n", $client->__getLastRequest(), "\n";
				//require_once 'soaperror.php';
				//processSoapFault($client2,$fault,$tabInfo);
				$success=false;
				$response=$client2->__getLastResponse();
				$response=str_replace("<SOAP-ENV:Envelope xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/' xmlns:SOAP-ENC='http://schemas.xmlsoap.org/soap/encoding/' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema'><SOAP-ENV:Body><ns0:getProduitsWebServicesXMLResponse xmlns:ns0='urn:local' SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'><return xsi:type='xsd:string'>",'', $response);
				$xml=str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $response);
			}

			/** Enregistrement du fichier XML en provenance des greffes **/
			if (strlen($xml)<>0) {
				$fp=@fopen(PATH_DATA.'/infogreffe/xml/'.$fichier, 'w');
				@fwrite($fp, $xml);
				@fclose($fp);
			}
	} else {
		/** Lecture du fichier XML en provenance des greffes **/
		$xml = file_get_contents(PATH_DATA.'/infogreffe/xml/'.$fichier);
	}

  	/** Affichage des erreurs Infogreffe **/
	if (strlen($xml)<200) {
		$tmp=explode('-', $xml);
		$errNum=$tmp[0]*1;
		$errMsg=$xml;
		if ($errNum==0)	$errNum=-1;
		elseif ($errNum==45 || $errNum==14 ) $errNum=false;
	}
}

if ($errCJ || $errDep || $errNum) {
?>
<table width="580" border="0" align="left" bgcolor="#FFFFFF">
  <tr>
	<td colspan="3" align="center"><img src="./img/rub_pieces.png" width="577" height="36" /></td>
  </tr>
  <tr>
	<td width="30">&nbsp;</td>
	<td width="200" class="StyleInfoLib">Num&eacute;ro identifiant Siren</td>
	<td width="350" class="StyleInfoData"><?=substr($siren,0,3).' '.substr($siren,3,3).' '.substr($siren,6,3)?></td>
  </tr>
  <tr>
	<td width="30">&nbsp;</td>
	<td width="200" class="StyleInfoLib">Raison Sociale</td>
	<td width="350" class="StyleInfoData"><?=$raisonSociale?></td>
  </tr>
  <tr>
	<td colspan="3">&nbsp;</td>
  </tr>
   <tr>
	<td colspan="3"><img src="./img/srub_actes.png" width="576" height="27" /></td>
  </tr>
  <tr>
	<td width="30">&nbsp;</td>
	<td width="550" colspan="2" class="StyleInfoData">
	<h3>
	<?
		if ($errCJ)			echo 'K-Bis inexistant pour cette forme juridique.';
		elseif ($errDep)	echo 'K-Bis inexistant dans ce département.';
		else 				echo 'Retour Greffe : '.$errMsg.'<!--'.$req.'-->';
	?>
	</h3>
	</td>
  </tr>
  <?
	} else {
		if ($action=='commande') {
			if (preg_match('#^[\w.-]+@[\w.-]+\.[a-zA-Z]{2,5}$#',$_REQUEST['email'])) {
	 			$message='Commande de K-Bis prise en compte';
				mail(	'contact@scores-decisions.com',"Commande de KBIS pour $siren à ".$_REQUEST['email'],
						'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
						'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
						'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
						'ENV='.EOL.print_r($_ENV,true).'EOL'.
						'tabInfo='.print_r($tabInfo,true));
				$fp=fopen(PATH_LOGS.'commande_kbis.csv', 'a');
				fwrite($fp, date('Y/m/d H:i:s').";$siren;".$_REQUEST['email'].';'.$tabInfo['login'].';'.$tabInfo['email'].';'.$tabInfo['ip']."\n");
				fclose($fp);
			} else {
				$message="ERREUR : Veuillez saisir une adresse email valide pour la commande de K-Bis";
			}
		}

if (	file_exists(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf')
		&& date('Ymd', filemtime(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf'))==date('Ymd')
		&& filesize(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf')>500
	) $vue=2;

if ($vue==0) { ?>
<iframe src="/?page=kbis&vue=1&siret=<?=$siren?>" width=0 height=0 marginheight="0" marginwidth="0" scrolling="No" frameborder=0></iframe>
<?php
}

require_once 'common/dates.php';
require_once 'common/curl.php';

if ($vue==1) {
	set_time_limit(410);
	ini_set('default_socket_timeout', 160);

	try {
		$O = $client->getKbis($siren, 1,0);
		$kbis=$O['result'];
		sleep(5);
	} catch (SoapFault $fault) {
		require_once 'soaperror.php';
		processSoapFault($client,$fault,$tabInfo);
		//echo '<pre>'.$client->__getLastResponse().'</pre>';
		//echo 'ERREUR SOAP :'.EOL;
	    //print_r($fault);
	    //die();
	}
	$page=getUrl($kbis['Url'], '', '', '', false);
	$body=$page['body'];
	$fp=@fopen(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf', 'w');
	@fwrite($fp, $body);
	@fclose($fp);

	$message='Commande de K-Bis en cours';
	mail(	'ylenaour@scores-decisions.com',"KBIS en cours pour $login ($siren, vue=$vue)",
			'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
			'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
			'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
			'ENV='.EOL.print_r($_ENV,true).'EOL'.
			'tabInfo='.print_r($tabInfo,true).EOL.
			'O='.print_r($O,true).EOL);
}
$raisonSociale=$tabInfo['entrep']['raisonSociale'];
?>
<table width="580" border="0" align="left" bgcolor="#FFFFFF">
<?php
  	if ($message<>'') {
 ?>
  <tr>
	<td width="30">&nbsp;</td>
	<td width="550" colspan="2" class="StyleInfoData"><h3><?=$message;?></h3></td>
  </tr>
<?php
  	}
 ?>
  <tr>
	<td colspan="3" align="center"><img src="./img/rub_pieces.png" width="577" height="36" /></td>
  </tr>
  <tr>
	<td width="30">&nbsp;</td>
	<td width="200" class="StyleInfoLib">Num&eacute;ro identifiant Siren</td>
	<td width="350" class="StyleInfoData"><?=substr($siren,0,3).' '.substr($siren,3,3).' '.substr($siren,6,3)?></td>
  </tr>
  <tr>
	<td width="30">&nbsp;</td>
	<td width="200" class="StyleInfoLib">Raison Sociale</td>
	<td width="350" class="StyleInfoData"><?=$raisonSociale?></td>
  </tr>
  <tr>
	<td colspan="3">&nbsp;</td>
  </tr>
   <tr>
	<td colspan="3"><img src="./img/srub_actes.png" width="576" height="27" /></td>
  </tr>
  <tr>
	<td colspan="3" align="center">
<?
if ($vue==0) {
?>
<script src="./js/jqueryprogressbar.js" type="text/javascript"></script>
<script type="text/javascript">
  	$("#progressbar").reportprogress(0);

  	var pct=0;
	var handle=0;
	function update(){
			$("#progressbar").reportprogress(++pct);
			if(pct==100){
				clearInterval(handle);
				$("#run").val("start");
				pct=0;
				window.location.href = "/?page=kbis&vue=2&siret=<?=$siren?>";
			}
	}
	handle=setInterval("update()",700);
</script>
<div id="progressbar"></div>
<?
	$message='Commande de K-Bis en cours';
	mail(	'ylenaour@scores-decisions.com',"KBIS en cours pour $login ($siren, vue=$vue)",
			'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
			'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
			'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
			'ENV='.EOL.print_r($_ENV,true).'EOL'.
			'tabInfo='.print_r($tabInfo,true).EOL.
			'O='.print_r($O,true).EOL);

} elseif (!( file_exists(PATH_DATA.'/../pdf/kbis-'.$siren.'.pdf')
			&& date('Ymd', filemtime(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf'))==date('Ymd')
			&& filesize(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf')>500 )){
	try {
		$O = $client->getKbis($siren, 1,0);
		$kbis=$O['result'];
		sleep(5);
	} catch (SoapFault $fault) {
		require_once 'soaperror.php';
		processSoapFault($client,$fault,$tabInfo);
		//echo '<pre>'.$client->__getLastResponse().'</pre>';
		//echo 'ERREUR SOAP :'.EOL;
	    //print_r($fault);
	    //die();
	}
	$page=getUrl($kbis['Url'], '', '', '', false);
	$body=$page['body'];
	$fp=@fopen(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf', 'w');
	@fwrite($fp, $body);
	@fclose($fp);

	if ( file_exists(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf')
		 && date('Ymd', filemtime(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf'))==date('Ymd')
		 && filesize(PATH_DATA.'/pdf/kbis-'.$siren.'.pdf')>500 )
	{
		 	echo '<u><a title="Cliquez ici pour visualiser le kbis" target="_blank" href="/?page=actes&siret='.$siret.'&ref=kbis">Visualiser le Kbis <img src="/img/icone_pdf.gif"></a></u>';

			$message='Commande de K-Bis prise en compte';
			mail(	'ylenaour@scores-decisions.com',"Commande de KBIS pour $login ($siren)",
					'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
					'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
					'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
					'ENV='.EOL.print_r($_ENV,true).'EOL'.
					'tabInfo='.print_r($tabInfo,true).EOL.
					'O='.print_r($O,true).EOL);
	} else {
 ?>
<script src="./js/jqueryprogressbar.js" type="text/javascript"></script>
<script type="text/javascript">
  	$("#progressbar").reportprogress(0);

  	var pct=0;
	var handle=0;
	function update(){
			$("#progressbar").reportprogress(++pct);
			if(pct==100){
				clearInterval(handle);
				$("#run").val("start");
				pct=0;
				window.location.href = "/?page=kbis&vue=2&siret=<?=$siren?>";
			}
	}
	handle=setInterval("update()",700);
</script><div id="progressbar"></div>
<?
	$message='Commande de K-Bis en cours';
	mail(	'ylenaour@scores-decisions.com',"KBIS en cours pour $login ($siren, vue=$vue)",
			'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
			'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
			'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
			'ENV='.EOL.print_r($_ENV,true).'EOL'.
			'tabInfo='.print_r($tabInfo,true).EOL.
			'O='.print_r($O,true).EOL);
	}

} else {

	echo '<u><a title="Cliquez ici pour visualiser le kbis" target="_blank" href="/?page=actes&siret='.$siret.'&ref=kbis">Visualiser le Kbis <img src="/img/icone_pdf.gif"></a></u>';

	$message='Commande de K-Bis prise en compte';
	mail(	'ylenaour@scores-decisions.com',"Commande de KBIS pour $login ($siren, vue=$vue)",
			'REQUEST='.EOL.print_r($_REQUEST,true).'EOL'.
			'SERVER='.EOL.print_r($_SERVER,true).'EOL'.
			'SESSION='.EOL.print_r($_SESSION,true).'EOL'.
			'ENV='.EOL.print_r($_ENV,true).'EOL'.
			'tabInfo='.print_r($tabInfo,true).EOL.
			'O='.print_r($O,true).EOL);
}
?>
  </td>
  </tr>
<?
	}
 ?>
</table>
<?
  }
 ?>