ajout fichiers présents dans enrichissement

This commit is contained in:
benoitpotier 2017-04-03 11:11:40 +02:00
parent 7be909c101
commit eb27fcf761
2 changed files with 461 additions and 0 deletions

View File

@ -0,0 +1,365 @@
<?php
require_once 'framework/common/curl.php';
/** @todo A faire et sortir du coup la méthode de commande d'enquêtes du WS **/
class Metier_Partenaires_MIntersud {
private $body = '';
private $header = '';
private $codeRetour = 0;
private $cookie=false;
private $reference = 0;
private $timeOut=0;
private $url='';
private $urlRacine='http://www.intersud.fr';
private $referer='';
private $curPage='';
public $siren;
function __construct() {
$this->partGetSession();
$this->partConnection();
}
function __destruct() {
$this->partSaveSession();
}
function getInfosDisponbiles($siren) {
$this->siren=$siren;
$this->partConnection();
return $this->partVitrine(true);
}
private function partConnection() {
if (!$this->wrncsrv2 || time()>$this->timeOut) {
$this->timeOut=time()+900;
$this->url=$this->urlRacine.'/index.ow';
$page=getUrl($this->url, '', '', $this->urlRacine, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Initialisation URL = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$fp=fopen('./euridile_connexion1.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if (preg_match('/<META HTTP-EQUIV="Refresh" CONTENT="0; URL=(.*)">/i', $this->body, $matches))
$this->url=$this->urlRacine.'/'.$matches[1];
else debugLog('E',"Erreur de communication - Redirection impossible sur ".$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
debugLog('I','Redirection trouv<75>e sur la page '.$this->url,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
if (preg_match('/\.ow\?WRNCSRV2=(.*)$/i', $matches[1], $matches)) {
$this->wrncsrv2=$matches[1];
debugLog('I','Session partenaire WRNCSRV2='.$this->wrncsrv2,__LINE__,__FILE__,__FUNCTION__,__CLASS__);
}
else debugLog('E','Impossible d\'identifier le num<75>ro de session partenaire',__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$page=getUrl($this->url, '', '',$this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
debugLog('D',"Page d'accueil URL = $this->url (Code retour = $this->codeRetour)",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$fp=fopen('./euridile_connexion2.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if (preg_match('/<form method="POST" name="abonnement" ACTION="(.*)" /i', $this->body, $matches)) {
$postData=array('IDENT'=>'OK',
'MDP'=>'3180',
'cliref'=>'K5K3X5',
'PASS'=>'3180',
'WRNCSRV2'=>$this->wrncsrv2);
/** @todo Fair une fonction qui g<EFBFBD>re les URL commen<EFBFBD>ant par ./ ou ../ ou / afin de pouvoir les concatener
**/
$this->url=$this->urlRacine.str_replace('..','',$matches[1]);
debugLog('D',"Authentification possible vers $this->url",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
}
else debugLog('E',"Authentification impossible car formulaire indisponible",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
sleep(1);
$page=getUrl($this->url,'', $postData, $this->referer, false, 'www.euridile.com');
$this->referer=$this->url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Apr<70>s authentification = $this->url (Code retour = $this->codeRetour)<br/>".EOL;
$fp=fopen('./euridile_connexion3.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
if(preg_match('/\/'.$this->weur.'\/iden_evaluation_type_(.*)/i', $this->body, $matches))
{ $tabTmp=explode('"', $matches[0]);
$this->url=$this->urlRacine.$tabTmp[0];
debugLog('D',"Page de recherche recherche trouv<75>e = $this->url>",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
} else debugLog('E',"Erreur de communication - Recherche introuvable !",__LINE__,__FILE__,__FUNCTION__,__CLASS__);
$this->curPage='recherche';
} //else echo date('Y/m/d - H:i:s') ." - Deja connecte !<br/>".EOL;
return true;
}
private function partIdentite() {
if ($this->curPage<>'vitrine')
$this->partVitrine();
$iDb=new WDB();
$ret=$iDb->select( 'jo.rncs_entrep',
'siren, rcs, nom, adresse1, adresse2, adresse3, cp, ville, naiss_date, naiss_lieu, sexe, enseigne, sigle, '.
'fj_lib, naf_code, naf_lib, date_crea, date_imma, greffe, num_gestion, capital_mnt, capital_dev, nationalite, '.
'nb_etab, indRadiation, date_radiation, indProcol, dateUpdate, procedures, dirigeants, etablissements',
"siren=$this->siren ORDER BY dateUpdate DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($ret)) {
/** On v<EFBFBD>rifie qu'aucune annonce n'a <EFBFBD>t<EFBFBD> publi<EFBFBD> depuis au bodacc
**/
$tabRet=$ret[0];
$ret=$iDb->select( 'jo.bodacc_detail', 'count(*)',
"siren=$this->siren AND Bodacc_Date_Parution>='".$tabRet['dateUpdate']."'");
if ($ret[0][0]==0) {
$tabRet['procedures']=unserialize($tabRet['procedures']);
$tabRet['dirigeants']=unserialize($tabRet['dirigeants']);
$tabRet['etablissements']=unserialize($tabRet['etablissements']);
return $tabRet;
}
}
$url=$this->urlRacine.'/'.$this->weur.'/paie_abonnes_livraison_directe_informations.ow?flag_type_acces_direct_infos=FIC&WRNCSRV2='.$this->wrncsrv2;
$page=getUrl($url, '', '', $this->referer, false, 'www.euridile.com');
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->header=$page['header'];
//echo date('Y/m/d - H:i:s') ." - Fiche d'identit<69> = $url (Code retour = $this->codeRetour)<br/>".EOL;
//$this->curPage='vitrine';
$tabRet=array();
/**@todo Traiter le cas donn<EFBFBD>es provisoires :
<TR><TD bgcolor='#fff0d0'><FONT COLOR=#100070 FACE=ARIAL SIZE=2><B><!-- Donn<6E>es provisoires --> En cours d'immatriculation, donn<6E>es provisoires</B></FONT></TD></TR><TR><TD bgcolor=#fff0d0><FONT COLOR=#100070 FACE=ARIAL SIZE=2>Nombre d'<27>tablissements : <FONT COLOR=#100070 FACE=ARIAL SIZE=2><B></B></TD></TR>
</TABLE>
*/
// Identit<69>
$tabRet['siren']=$this->siren;
$tabRet['codeRetour']=$this->codeRetour;
$tabRet['rcs']=@getTextInHtml($this->body, 'FACE="ARIAL,HELVETICA" SIZE=2>RCS : ', '<b>','</b>');
$strTmp=@getTextInHtml($this->body, 'FACE="ARIAL,HELVETICA" SIZE=2>RCS : <b>', 'FACE="ARIAL,HELVETICA" SIZE=2><b>', '<img src=\'images/rouge.gif\'');
$tabTmp=explode('</TD>', $strTmp);
$tabRet['nom']=strip_tags($tabTmp[0]);
// ... adresse
for ($i=1; $i<5; $i++) {
if (strpos($tabTmp[$i], 'Nom commercial - Enseigne :')===false &&
strpos($tabTmp[$i], 'Sigle :')===false ) {
$ligne=trim(strip_tags($tabTmp[$i]));
if (preg_match("/^([0-9]{5,5})([\D]*)/i", $ligne, $matches)) {
$tabRet['cp']=trim($matches[1]);
$tabRet['ville']=trim($matches[2]);
break;
} else $tabRet['adresse'.$i]=$ligne;
}
}
$pp_nais=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Date et lieu de naissance :', '<B>','</B>')));
$tabTmp=explode(' <20> ', $pp_nais);
$tabRet['naiss_date']=trim(str_replace('N<>(e) le ', '', strip_tags($tabTmp[0])));
$tabRet['naiss_lieu']=trim(strip_tags($tabTmp[1]));
$tabRet['sexe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Sexe :', '<B>','</B>')));
$tabRet['enseigne']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nom commercial - Enseigne :', '<B>','</B>')));
$tabRet['sigle']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Sigle :', '<B>','</B>')));
$tabRet['fj_lib']=@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Forme juridique :', '<B>','</B>');
$strTmp=@getTextInHtml($this->body, 'FACE=\'ARIAL,HELVETICA\' SIZE=2>Activit&eacute; :', '<B>','</B>');
$tabTmp=explode(' - ', $strTmp);
$tabRet['naf_code']=$tabTmp[0];
$tabRet['naf_lib']=$tabTmp[1];
$tabRet['date_crea']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Date de cr&eacute;ation :', '<B>','</B>')));
$tabRet['date_imma']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Date d\'immatriculation :', '<B>','</B>')));
$tabRet['greffe']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Greffe :', '<B>','</B>')));
$tabRet['num_gestion']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>N<>de gestion :', '<B>','</B>')));
$strTmp=@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Capital :', '<B>','</B>');
if (preg_match('/([0-9\.,\s]*)([\D]*)/i', $strTmp, $matches)) {
$tabRet['capital_mnt']=trim(str_replace(' ','',str_replace(',','.',$matches[1])));
$tabRet['capital_dev']=$matches[2];
}
else {
$tabRet['capital_mnt']=0;
$tabRet['capital_dev']='';
}
$tabRet['nationalite']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nationalit&eacute; :', '<B>','</B>')));
$tabRet['nb_etab']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Nombre d\'<27>tablissements :', '<B>','</B>')));
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Radiation</B>')>0) {
$tabRet['indRadiation']=true;
$tabRet['date_radiation']=trim(strip_tags(@getTextInHtml($this->body, 'FACE=ARIAL SIZE=2>Entreprise radi<64>e le :', '<B>','</B>')));
} else
$tabRet['indRadiation']=false;
// Proc<6F>dures collectives
if (strpos($this->body,'FACE=ARIAL SIZE=2><B>Les proc<6F>dures collectives</B>')>0) {
$tabRet['indProcol']=true;
$strTmp=@getTextInHtml($this->body, '<B>Les proc<6F>dures collectives</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",
'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $nproc=>$proc) {
$tabTmp2=explode('</TD></TR>', $proc);
$tabTmp3=explode(' du ', $tabTmp2[0]);
$tabTmp2=explode('<TD WIDTH=99% ALIGN=LEFT BGCOLOR=#fff0d0 colspan=2><FONT COLOR=#100070 FACE=ARIAL SIZE=2>', $proc);
$tabInter=array();
for($nInter=1; isset($tabTmp2[$nInter]); $nInter++) {
$tabTmp4=explode('</TD></TR>', $tabTmp2[$nInter]);
$tabInter[]=array( 'type'=>trim(strip_tags($tabTmp4[0])),
'nom'=>trim(str_replace('&#160;','',strip_tags($tabTmp4[1]))),
'adresse'=>trim(str_replace('&#160;','',strip_tags($tabTmp4[2]))),
'cpVille'=>trim(str_replace('&#160;','',strip_tags($tabTmp4[3]))));
}
$tabRet['procedures'][$nproc]=array('type'=>trim(strip_tags($tabTmp3[0])),
'date'=>trim(strip_tags($tabTmp3[1])),
'intervenant'=>$tabInter);
}
}
else $tabRet['indProcol']=false;
// Dirigeants
$strTmp=@getTextInHtml($this->body, '<B>Les dirigeants</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $ndir=>$dir) {
$tabTmp2=explode('</TD>', $dir);
$tabTmp3=explode('</B>&#160;', $tabTmp2[1]);
$nom=trim(strip_tags($tabTmp3[0]));
$prenom=trim(strip_tags($tabTmp3[1]));
$naiss=trim(strip_tags($tabTmp2[3]));
if (strpos($naiss, 'N<>(e) le')===false) {
$fonction=$naiss;
} else {
$tabTmp3=explode(' <20> ', $naiss);
$naiss_date=trim(str_replace('N<>(e) le ', '', strip_tags($tabTmp3[0])));
$naiss=trim(strip_tags($tabTmp3[1]));
$tabTmp3=explode('(', $naiss);
$naiss_ville=trim(strip_tags($tabTmp3[0]));
$naiss_depPays=trim(str_replace(')','', strip_tags($tabTmp3[1])));
$fonction=trim(strip_tags($tabTmp2[5]));
}
$tabTmp=explode('&#160;n<>e&#160;', $prenom);
$prenom=$tabTmp[0];
$naiss_nom=$tabTmp[1];
$tabRet['dirigeants'][$ndir]=array( 'nom'=>$nom,
'prenom'=>$prenom,
'naiss_nom'=>$naiss_nom,
'naiss_date'=>$naiss_date,
'naiss_ville'=>$naiss_ville,
'naiss_depPays'=>$naiss_depPays,
'fonction'=>$fonction);
}
// Dirigeants - Administrateurs
$strTmp=trim(@getTextInHtml($this->body, '<B>Les administrateurs</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>'));
if ($strTmp<>'') {
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $nadm=>$dir) {
$tabTmp2=explode('</TD>', $dir);
$tabTmp3=explode('</B>&#160;', $tabTmp2[1]);
$nom=trim(strip_tags($tabTmp3[0]));
$prenom=trim(strip_tags($tabTmp3[1]));
$naiss=trim(strip_tags($tabTmp2[3]));
if (strpos($naiss, 'N<>(e) le')===false) {
$naiss_date=$naiss_ville=$naiss_depPays='';
$fonction=$naiss;
} else {
$tabTmp3=explode(' <20> ', $naiss);
$naiss_date=trim(str_replace('N<>(e) le ', '', strip_tags($tabTmp3[0])));
$naiss=trim(strip_tags($tabTmp3[1]));
$tabTmp3=explode('(', $naiss);
$naiss_ville=trim(strip_tags($tabTmp3[0]));
$naiss_depPays=trim(str_replace(')','', strip_tags($tabTmp3[1])));
$fonction=trim(strip_tags($tabTmp2[5]));
}
$tabTmp=explode('&#160;n<>e&#160;', $prenom);
$prenom=$tabTmp[0];
$naiss_nom=$tabTmp[1];
$tabRet['dirigeants'][$nadm+$ndir+1]=array( 'nom'=>$nom,
'prenom'=>$prenom,
'naiss_nom'=>$naiss_nom,
'naiss_date'=>$naiss_date,
'naiss_ville'=>$naiss_ville,
'naiss_depPays'=>$naiss_depPays,
'fonction'=>$fonction);
}
}
// Etablissements
$strTmp=@getTextInHtml($this->body, '<B>Les <20>tablissements</B></FONT>', "<img src='./images/rouge.gif' width=4 height=4 border='0'>",'</TABLE>');
$tabTmp=explode("<img src='./images/rouge.gif' width=4 height=4 border='0'>", $strTmp);
foreach ($tabTmp as $netab=>$dir) {
$cp=$ville=$ensEtab=''; $j=0;
$tabTmp2=explode('</TD>', $dir);
for($i=1; $i<=9; $i=$i+2) {
$next=$i+2;
$strTmp=trim(strip_tags($tabTmp2[$i]));
if (preg_match("/^([0-9]{5,5})([\D]*)/i", $strTmp, $matches)) {
$adresse[$j]='';
$cp=trim($matches[1]);
$ville=trim($matches[2]);
break;
} else
$adresse[$j]=$strTmp;
$j++;
}
/** Gestion des cas o<> la 1<>re ligne d'adresse contient l'enseigne de l'<27>tablissement */
if (strtoupper($adresse[0])==strtoupper($tabRet['enseigne'])) {
$ensEtab=$adresse[0];
array_shift($adresse);
}
$strTmp=trim(strip_tags($tabTmp2[$next]));
$tabTmp3=explode(' - ', $strTmp);
$tabRet['etablissements'][$netab]=array( 'enseigne'=>$ensEtab,
'adresse1'=>$adresse[0],
'adresse2'=>$adresse[1],
'adresse3'=>$adresse[2],
'cp'=>$cp,
'ville'=>$ville,
'naf_code'=>$tabTmp3[0],
'naf_lib'=>$tabTmp3[1]);
}
$fp=fopen('./euridile_identite.log', 'w');
fwrite($fp,print_r($page,true));
fclose($fp);
$tabInsert=$tabRet;
$tabInsert['procedures']=serialize($tabRet['procedures']);
$tabInsert['dirigeants']=serialize($tabRet['dirigeants']);
$tabInsert['etablissements']=serialize($tabRet['etablissements']);
$iDb->insert( 'jo.rncs_entrep', $tabInsert);
return $tabRet;
}
private function partSaveSession() {
$fp=fopen('/tmp/php_rncs_session.id', 'w');
fwrite($fp,$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer);
fclose($fp);
}
private function partGetSession() {
$strTmp=@file_get_contents('/tmp/php_rncs_session.id');
if ($strTmp) {
$tabTmp=explode('^', $strTmp);
$this->wrncsrv2=$tabTmp[0];
$this->timeOut=$tabTmp[1];
$this->curPage=$tabTmp[2];
$this->siren=$tabTmp[3];
$this->url=$tabTmp[4];
$this->referer=$tabTmp[5];
} else $this->timeOut=0;
}
private function logEuridileError($message) {
$fp=fopen('./euridile_error.log', 'w');
fwrite($fp,date('Y/m/d H:i:s')." - Erreur : $message (".$this->wrncsrv2.'^'.$this->timeOut.'^'.$this->curPage.'^'.$this->siren.'^'.$this->url.'^'.$this->referer.')'.EOL);
fwrite($fp,$this->body.EOL.'-------------------------------------------------------------------------------------'.EOL);
fclose($fp);
}
}
?>

96
src/Scores/Exec/Ref.php Normal file
View File

@ -0,0 +1,96 @@
<?php
class Scores_Exec_Ref
{
protected $code;
/**
* Enregistrement de l'execution d'un programme par son code
* @param string $code
*/
public function __construct($code)
{
$this->code = $code;
}
/**
* Marqueur de démarrage
*/
public function start()
{
$data = array(
'code' => $this->code,
'dateStart' => date('YmdHis'),
);
$model = new Application_Model_ExecutionProcessOut();
try {
$id = $model->insert($data);
} catch(Zend_Db_Exception $e) {
return null;
}
return $id;
}
/**
* Marqueur du nombre d'éléments à traiter
* @param int $id
* @param int $num
*/
public function total($id, $num)
{
$data = array('unitTotal' => $num);
$model = new Application_Model_ExecutionProcessOut();
try {
$result = $model->update($data, 'id='.$id);
} catch(Zend_Db_Exception $e) {
return false;
}
return $result;
}
/**
* Marqueur increment
* @param int $id
* @param int $num
* @return boolean|int
*/
public function increment($id, $num)
{
$data = array(
'unitExec' => $num,
'updated' => date('YmdHis'),
);
$model = new Application_Model_ExecutionProcessOut();
try {
$result = $model->update($data, 'id='.$id);
} catch(Zend_Db_Exception $e) {
return false;
}
return $result;
}
/**
* Marqueur de fin
* @param int $id
* @return boolean|int
*/
public function end($id)
{
$data = array(
'dateEnd' => date('YmdHis'),
);
$model = new Application_Model_ExecutionProcessOut();
try {
$result = $model->update($data, 'id='.$id);
} catch(Zend_Db_Exception $e) {
return false;
}
return $result;
}
}