accesDist=$accesDist; $this->iDb=new WDb('sdv1'); } public function getMaxOrias($annee=0) { if ($annee*1>0 && $annee*1<100) { $this->annee='20'.$annee; $annee++; $strWhere="(numOrias/1000000)<=$annee"; } elseif ($annee*1>1900 && $annee*1<9999) { $this->annee=$annee; $annee=substr(''.$annee,2,2)*1+1; $strWhere="(numOrias/1000000)<=$annee"; } else { $strWhere='1'; $this->annee=date('Y')*1; } $ret=$this->iDb->select('orias','MAX(numOrias) AS numOrias', $strWhere, false, MYSQL_ASSOC); //die($strWhere); return sprintf('%08d',$ret[0]['numOrias']); } public function getInfosOrias($siren, $numOrias=0) { //die('numOrias 1:"'.$numOrias.'"'); if ($siren*1>1000) $strWhere="siren=$siren"; elseif ($numOrias*1>0) { // $numOrias=preg_replace('/[^0-9]/','',$numOrias); // $numOrias=substr($numOrias,0,2).' '.substr($numOrias,2,3).' '.substr($numOrias,5,3); $strWhere="numOrias=$numOrias"; // die($strWhere); //die('numOrias 2:"'.$numOrias.'"'); } else return false; /* echo "=================================================================================================".EOL; echo "==== SELECT siren, id, nom, cp, ville, adresse, numOrias FROM orias WHERE $strWhere;".EOL; echo "=================================================================================================".EOL; */ $ret=$this->iDb->select('orias','siren, id, nom, cp, ville, adresse, numOrias, numOriasAttribue', $strWhere, false, MYSQL_ASSOC); if (!$this->force && count($ret)>0) { $this->enCache=true; $tabRet=$ret[0];//array(); $ret=$this->iDb->select('orias','categorie, cat, dateInscription, typeStatut, rcsVille, rcsCode, rcsSiren, contact, encaissement, nature, paysPresta, paysEtab',$strWhere, false, MYSQL_ASSOC); foreach ($ret as $i=>$tabTmp) $tabRet['categories'][]=$tabTmp; //die('numOrias 3:"'.$numOrias.'"'); } elseif ($this->accesDist==true) { $this->enCache=false; // Initialisation Cookies if ($numOrias>0) $this->referer='http://www.orias.fr/orias/public/index.jsp'; else $this->referer='http://www.orias.fr/orias/public/rechercheavance.html'; $page=getUrl($this->referer, '', '', '', false, '', '', 15); //print_r($page); if ($page['code']==200) { $this->cookie=str_replace(' Path=/orias', '',$page['header']['Set-Cookie']); if(preg_match('/id="javax\.faces\.ViewState" value="(.*)"/Ui', $page['body'], $matches)) $this->codeRetour=$matches[1]; else { echo 'Erreur Url='.$this->referer.EOL; print_r($page['body']); return false; } } else return false; if ($numOrias>0) { $url='http://www.orias.fr/orias/public/index.html'; $post=array('menu%3AiasSearchForm'=>'menu%3AiasSearchForm', 'menu%3AiasSearchForm%3AiasInputText'=>sprintf('%08s',$numOrias), 'javax.faces.ViewState'=>$this->codeRetour, 'menu%3AiasSearchForm%3AiasSearch'=>'menu%3AiasSearchForm%3AiasSearch', ); } else { // Recherche avec Siren $url='http://www.orias.fr/orias/public/rechercheavance.html'; $post=array('j_id_id45'=>'j_id_id45', 'j_id_id45%3Aj_id_id52'=>'', 'j_id_id45%3AtagRCS'=>'', 'j_id_id45%3AtagSIREN'=>$siren,//441921574, 'j_id_id45%3Aj_id_id160'=>'', 'j_id_id45%3Aj_id_id167'=>'', 'j_id_id45%3Aj_id_id175'=>'', 'javax.faces.ViewState'=>$this->codeRetour, 'j_id_id45%3Aj_id_id203'=>'j_id_id45%3Aj_id_id203'); $this->referer='http://www.orias.fr/orias/public/list.html'; } randsleep(1,2); $page=getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 15); $this->referer=$url; if ($page['code']==302) $url=$page['header']['Location']; else { if (preg_match("/Le numéro d'immatriculation n'existe pas/", $page['body'])) { $tabInsert=array( 'actif'=>0, 'numOrias'=>$numOrias, 'numOriasAttribue'=>0, 'dateInsert'=>date('YmdHis')); $this->erreur='Numéro Orias inexistant'; // On enregistre ce numéro comme non attribué si < au dernier numéro attribué if ($numOrias<$this->getMaxOrias()) $this->iDb->insert('orias', $tabInsert); } return false; } if ($url=='http://www.orias.fr/orias/public/intermediaire.html') { $page=getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24); $this->referer=$url; $this->body=$page['body']; echo "Recherche par Orias : url=$url".EOL; die(print_r($page)); } /* else { */ // Liste contenant l'entreprise $url='http://www.orias.fr/orias/public/list.html'; randsleep(1,2); $page=getUrl($url, $this->cookie, '', $this->referer, false, '', '', 24); $this->referer=$url; $this->body=$page['body']; if (preg_match('/R\é\;sultat\(s\) de votre recherche \:(?:.*)(.*)<(?:.*)Interm\é\;diaire\(s\)/Uis',$this->body, $matches)) { $nbInter=trim($matches[1])*1; if ($nbInter==0) return false; if ($nbInter>1) { @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMOrias::getInfosOrias sur $siren", "Plus de 1 intermédiaire recensé... Merci de gérer le cas !"); return false; } } // Initalisation du tableau retour $tabRet=array('siren'=>$siren); //id="formResult:intermediariesList:13910 if (preg_match('/(?:.*)
(.*)<\/center>/Uis',$this->body, $matches)) { $tabRet['id']=trim($matches[1]); $tabRet['nom']=html_entity_decode(trim($matches[2])); } if (preg_match('/(?:.*)
(.*)<\/center>/Uis',$this->body, $matches)) { $tabTmp=explode(' ',$matches[1]); $tabRet['cp']=trim($tabTmp[0]); $tabRet['ville']=html_entity_decode(trim($tabTmp[1])); //$tabRet['cpVille']=explotrim(str_replace(' ',' ',$matches[1])); } if (preg_match('/(.*)<\/td>/Uis',$this->body, $matches)) $tabRet['adresse']=html_entity_decode(trim($matches[1])); $tabRet['actif']=1; $tabRet['numOriasAttribue']=1; if (preg_match('/(?:.*|)(|Radi\é\; le \:)(.*)(?:<\/span>|<\/td>)/Uis',$this->body, $matches)) { $str=trim(strtr($matches[2],array(' '=>'',' '=>''))); if (html_entity_decode(trim(str_replace(':','', $matches[1])))=='Radié le') { $tabRet['actif']=0; $tabRet['numOrias']=$numOrias; $tabRet['dateRadiation']=$str; } else $tabRet['numOrias']=$str; } if (preg_match('/ id="javax\.faces\.ViewState" value="(.*)" /Uis',$this->body, $matches)) $this->codeRetour=$matches[1]; $tabTmp=explode("body); // die($this->body); foreach ($tabTmp as $i=>$strCat) { if ($i==0) { if (count($tabTmp)==1) { $tabInsert=array_merge($tabRet, array('dateInsert'=>date('YmdHis'))); //print_r($tabInsert); $this->iDb->insert('orias', $tabInsert); } $tabRet['categories']=array(); continue; } $tabCat=array(); //echo "$i:$strCat"; //die(); //:formResult:intermediariesList:107501:j_id_id159:0:j_id_id166':'formResult:intermediariesList:107501:j_id_id159:0:j_id_id166','intermediaryIdParam':'107501','intermediaryRoleIdParam':'Mia'},'');}return false"> if (preg_match('/(.*)<\/span>/Ui',$strCat, $matches)) $tabCat['categorie']=html_entity_decode(trim($matches[1])); if (preg_match('/intermediaryRoleIdParam\'\:\'(.*)\'/Uis',$strCat, $matches)) $tabCat['cat']=$matches[1]; //print_r($tabCat); if ($i==1) { // Tout est dans la même page Html // Construction du lien vers la fiche d'identité de l'entreprise $url='http://www.orias.fr/orias/public/list.html'; $post=array('formResult'=>'formResult', 'formResult%3AajaxLoadingModalBoxOpenedState'=>'', 'javax.faces.ViewState'=>$this->codeRetour, 'intermediaryIdParam'=>$tabRet['id'], 'intermediaryRoleIdParam'=>$tabCat['cat'], ); if (preg_match('/(formResult\:intermediariesList\:(?:.*)),intermediaryIdParam,/Ui',$strCat, $matches)) { $tabTmp2=explode(',', $matches[1]); $post[urlencode($tabTmp2[0])]=urlencode($tabTmp2[1]); /* echo "$i"; print_r($tabCat); print_r($matches);*/ } randsleep(1,2); $page=getUrl($url, $this->cookie, $post, $this->referer, false, '', '', 24); //$this->referer=$url; $tmpCat=explode('class="dr-tbpnl-cntnt-pstn rich-tabpanel-content-position"', $page['body']); //die(print_r($page,1)); } if (preg_match('/
Date d\'inscription \: (.*)<\/strong><\/dd>/Uis',$tmpCat[$i], $matches)) $tabCat['dateInscription']=/*Wdate::dateT('d/m/y', 'Y-m-d', */trim($matches[1]);//); if (preg_match('/Statut \:<\/td>(.*)<\/strong>/Uis',$tmpCat[$i], $matches)) $tabCat['typeStatut']=trim(strip_tags($matches[1])); if (preg_match('/RCS \:<\/td>(?:.*)<\/td>(?:.*)(.*)<\/strong>(.*)SIREN \:(?:.*)(.*)<\/strong>/Uis',$tmpCat[$i], $matches)) { $tabCat['rcsVille']=trim($matches[1]); $tabCat['rcsCode']=trim(strtr(strip_tags($matches[2]), array(' '=>'',' '=>'',chr(160)=>'',"\r"=>'',"\n"=>''))); $tabCat['rcsSiren']=trim($matches[3]); if ($siren==0) $tabRet['siren']=$tabCat['rcsSiren']; } /*Contact François Meunier */ if (preg_match('/Contact<\/td>(.*)<\/tr>/Uis',$tmpCat[$i], $matches)) { $tabCat['contact']=html_entity_decode(trim(strip_tags($matches[1]))); /* JEAN-PIERRE CHAUSSAT */ } //print_r($tmpCat[$i]); if (preg_match("/(.*)Cet intermédiaire n'est pas autorisé à encaisser les primes ou cotisations d'assurances(.*)<\/strong>/Uis", $tmpCat[$i])) $tabCat['encaissement']=0; else $tabCat['encaissement']=1; if (preg_match('/(?:.*)Nature de l\'activit\é\; d\'interm\é\;diation(.*)<\/dd>/Uis',$tmpCat[$i], $matches)) $tabCat['nature']=html_entity_decode(trim(strip_tags($matches[1]))); if (preg_match('/\- Etats dans lesquels cet interm\é\;diaire exerce en libre prestation de service(.*)<\/table>(.*)<\/tr>/Uis',$tmpCat[$i], $matches)) $tabCat['paysPresta']=trim(strip_tags($matches[1])); if (preg_match('/\- Etats dans lesquels cet interm\é\;diaire exerce en libert\é\; d\'\é\;tablissement(.*)<\/table>(.*)<\/tr>/Uis',$tmpCat[$i], $matches)) $tabCat['paysEtab']=trim(strip_tags($matches[1])); $tabRet['categories'][]=$tabCat; $tabInsert=$tabRet; unset($tabInsert['categories']); $tabInsert=array_merge($tabInsert, $tabCat, array('dateInsert'=>date('YmdHis'))); //print_r($tabInsert); $this->iDb->insert('orias', $tabInsert); //echo $tmpCat[$i]; } } return $tabRet; } } ?>