extranet/includes/kbis/kbis_infogreffe.php

165 lines
5.6 KiB
PHP
Raw Normal View History

<?php
require_once 'print/print.php';
define('INFOGREFFE_FILETIME', 28800);
define('INFOGREFFE_PATH', PATH_SITE.'/cache/kbis/');
2010-06-17 09:31:49 +00:00
define('INFOGREFFE_DEBUG', true);
$infogreffe_ws_url = INFOGREFFE_WS_URL;
$infogreffe_ws_uri = INFOGREFFE_WS_URI;
$infogreffe_ws_user = INFOGREFFE_WS_USER;
$infogreffe_ws_pass = INFOGREFFE_WS_PASS;
if(INFOGREFFE_DEBUG)
{
$infogreffe_ws_url = 'https://wsrcte.extelia.fr/WSContextInfogreffe/INFOGREFFE';
$infogreffe_ws_uri = 'https://wsrcte.extelia.fr/';
$infogreffe_ws_user = '85000109';
$infogreffe_ws_pass = '160409';
}
define('INFOGREFFE_WS_REF','dgekbis-'.$siren);
function infogreffe_kbis ( $siren ) {
global $infogreffe_ws_url, $infogreffe_ws_uri, $infogreffe_ws_user,
$infogreffe_ws_pass;
$req = '<demande>'.
'<emetteur>'.
'<code_abonne>'.$infogreffe_ws_user.'</code_abonne>'.
'<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>KB</type_document>'.
'<type_requete>S</type_requete>'.
'<media>WS</media>'.
'<mode_diffusion>'.
'<mode type="XL" />'.
'</mode_diffusion>'.
'</code_requete>'.
'</emetteur>'.
'<commande>'.
'<num_siren>'.$siren.'</num_siren>'.
'</commande></demande>';
FB::log($req, 'req');
$post = '<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="https://webservices.infogreffe.fr/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><ns1:getProduitsWebServicesXML><param0 xsi:type="xsd:string">'.$req.'</param0></ns1:getProduitsWebServicesXML></SOAP-ENV:Body></SOAP-ENV:Envelope>';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $infogreffe_ws_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
$output = curl_exec($ch);
$xml = 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'>",'', $output);
$xml = str_replace('</return></ns0:getProduitsWebServicesXMLResponse></SOAP-ENV:Body></SOAP-ENV:Envelope>','', $xml);
return $xml;
}
function infogreffe_kbisToHTML ( $fichier ) {
// Load the XML source
$xmlDoc = new DOMDocument;
$xmlDoc->load($fichier);
$xsl = new DOMDocument;
$xsl->load(realpath(dirname(__FILE__).'/KbisWebService.xsl'));
$proc = new XSLTProcessor;
$proc->importStyleSheet($xsl); // attach the xsl rules
$html = $proc->transformToXML($xmlDoc);
$fichierHTML = str_replace('.xml', '.html', $fichier);
file_put_contents($fichierHTML, $html);
return $fichierHTML;
}
function infogreffe_kbisErreur ( $xml ) {
if (!empty($xml)){
$doc = new DOMDocument();
$load = $doc->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING);
if (!$load) {
return true;
} else {
return false;
}
} else {
return true;
}
}
$fichierPDF = '';
$erreur = '';
$fichier = 'kbis-'.$siren.'.xml';
// Le fichier n'existe pas en cache
if ( !file_exists(INFOGREFFE_PATH.$fichier)
// Le fichier existe en cache
|| ( file_exists(INFOGREFFE_PATH.$fichier) &&
date('Ymd', filemtime(INFOGREFFE_PATH.$fichier)+INFOGREFFE_FILETIME ) < date('Ymd') )
// Le fichier existe en cache mais contient un message d'erreur
|| ( file_exists(INFOGREFFE_PATH.$fichier)
&& date('Ymd', filemtime(INFOGREFFE_PATH.$fichier)+INFOGREFFE_FILETIME ) < date('Ymd')
&& filesize(INFOGREFFE_PATH.$fichier)<=2000) ){
//Génération du fichier PDF
$xml = infogreffe_kbis($siren);
FB::log($xml, 'xml');
if ( !infogreffe_kbisErreur($xml) )
{
file_put_contents(INFOGREFFE_PATH.$fichier, $xml);
$fichierHTML = infogreffe_kbisToHTML(INFOGREFFE_PATH.$fichier);
$fichierPDF = wkhtmltopdf($fichierHTML);
} else {
$erreur = str_replace("<?xml version='1.0' encoding='UTF-8'?>",
'', $xml);
}
} else {
if ( file_exists(INFOGREFFE_PATH.'/kbis-'.$siren.'.pdf') ) {
$fichierPDF = INFOGREFFE_PATH.'/kbis-'.$siren.'.pdf';
}
}
FB::log($fichierPDF, 'fichierPDF');
?>
<div id="center">
<h1>PIECES OFFICIELLES</h1>
<table>
<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>
</table>
<h2>Extrait RCS</h2>
<table>
<tr>
<td width="100">&nbsp;</td>
<td width="380">
<?php
if ( $fichierPDF!='') {
?>
2010-09-08 13:54:51 +00:00
<a title="Cliquez ici pour visualiser le kbis" target="_blank"
href="./pdf/kbis/<?=basename($fichierPDF)?>">
<u>Visualiser le Kbis <img src="/img/icone_pdf.gif"/></u>
</a>
<?php
} else {
?>
<p>Une erreur c'est produite durant le traitement !</p>
<p><?=$erreur?></p>
<?php
}
?>
</td>
<td width="100">&nbsp;</td>
</tr>
</table>
</div>