authenticate(); $this->permission('KBIS'); //Vérification du siren if (intval($siren)==0) { $this->sendError('1010'); } elseif (strlen($siren)!=9) { $this->sendError('1020'); } $hostname = 'http://'.$_SERVER['SERVER_NAME']; if ($_SERVER['SERVER_PORT']!='80'){ $hostname.= ':'.$_SERVER['SERVER_PORT']; } //Le fichier existe avec une date de validité inférieure à 1 jour $filepdf = DOC_WEB_LOCAL.'kbis/'.$siren.'.pdf'; if ( file_exists($filepdf) && date('Ymd', filemtime($filepdf))==date('Ymd') ) { $this->wsLog('kbis', $siren, basename($filepdf)); return $hostname.'/data/kbis/'.basename($filepdf); } else { $file = null; //On vérifie quand même si il n'existe pas une commande en html $dir = DOC_WEB_LOCAL.'kbis/'.date('Ymd'); if (file_exists($dir)) { foreach ( glob($dir.'/'.$siren.'-*.html') as $file ) { break; } } if (empty($file)) { //Téléchargement du KBIS $result = exec('php '.APPLICATION_PATH.'/../batch/getKbis.php --siren '.$siren); //@todo : si $result est une chaine qui se termine par ".html" if (substr($result,-5)=='.html') { $file = DOC_WEB_LOCAL.'kbis/'.date('Ymd').'/'.$result; $this->wsLog('kbis', $siren, $result); } elseif ( $result!='ERREUR') { throw new SoapFault('MSG',$result); } else { $text = 'La récupération du KBIS a échoué sur le siren : '.$siren; sendMail( 'production@scores-decisions.com', 'supportdev@scores-decisions.com', '[ERREUR KBIS]', $text); throw new SoapFault('0000',"Erreur récupération du kbis"); } } else { $this->wsLog('kbis', $siren, basename($file)); } //Génération du PDF require_once 'wkhtmltopdf/wkhtmltopdf.php'; $pdf = new wkhtmltopdf(); $fileOut = $pdf->exec($file, $filepdf); if ( !file_exists($filepdf) ) { throw new SoapFault('0000',"Fichier PDF introuvable"); } return $hostname.'/data/kbis/'.basename($filepdf); } } }