Update from version 1.0

This commit is contained in:
Michael RICOIS 2012-06-01 14:52:33 +00:00
parent dc1f3ac49f
commit c333b960a2
4 changed files with 282 additions and 211 deletions

View File

@ -220,9 +220,9 @@ $tabPostesDGI=array(
'1T'=>'Prêts et autres immobilisations financières (brut)',
'LQ'=>'TOTAL IV (brut)',
'0G'=>'TOTAL GENERAL (I+II+III+IV) (brut)',
'L9'=>'Sur sol propre dont Composant',
'L9'=>'Sur sol propre dont Composant',
'M1'=>'Sur sol d\'autrui dont Composant',
'M2'=>'Installation générale, aménagement, agencement dont Composant',
'M2'=>'Installation générale, aménagement, agencement dont Composant',
'M3'=>'Installations techniques, matériel et outillage industriels dont Composant',
'KB'=>'Frais d\'établissement de Rech. et Dev. TOTAL I (réév.)',
'KE'=>'Autres postes d\'immobilisations incorporelles TOTAL II (réév.)',
@ -737,16 +737,16 @@ $tabPostesDGI=array(
'VF'=>'(2) Prêts et avances consentis aux associés (pers. phys.)',
'7Y'=>'Emprunts obligataires convertibles (1)',
'7Z'=>'Autres emprunts obligataires (1)',
'VG'=>'Emprunts et dettes auprès des établissements de crédits (1) : à 1 an maximum',
'VH'=>'Emprunts et dettes auprès des établissements de crédits (1) : à + 1 an',
'VG'=>'Emprunts et dettes auprès des établissements de crédits (1) : à 1 an maximum',
'VH'=>'Emprunts et dettes auprès des établissements de crédits (1) : à + 1 an',
'8A'=>'Emprunts,dettes financières divers (1)(2)',
'8B'=>'Fournisseurs comptes rattachées',
'8C'=>'Personnels et comptes rattachés',
'8D'=>'SS et autres organisme sociaux',
'8E'=>'Etat et autres collectivités publiques : Impôts sur les bénéfices',
'VW'=>'Etat et autres collectivités publiques : T.V.A.',
'VX'=>'Etat et autres collectivités publiques : Obligations cautionnées',
'VQ'=>'Etat et autres collectivités publiques : Autes impôts, taxes et assimilés',
'VW'=>'Etat et autres collectivités publiques : T.V.A.',
'VX'=>'Etat et autres collectivités publiques : Obligations cautionnées',
'VQ'=>'Etat et autres collectivités publiques : Autes impôts, taxes et assimilés',
'8J'=>'Dettes sur immo, comptes rattachés',
'VI'=>'Groupe et associés (2)',
'8K'=>'Autres dettes',
@ -1045,13 +1045,13 @@ $tabGreffe2Sd=array(
'E1J'=>'IU',
'E1K'=>'IV',
'E3L'=>'IW',
'E3M'=>'IX',
'E3M'=>'IX',
'E3N'=>'NN',
// IMMO Fin
'E4A'=>'IZ',
'E4B'=>'I0',
'E3R'=>'I1',
'E3S'=>'I2',
'E3S'=>'I2',
'E3T'=>'NM',
'E3U'=>'NP',
@ -1085,7 +1085,7 @@ $tabGreffe2Sd=array(
'J1X'=>'VP2',
'J1Y'=>'VC2',
'J1Z'=>'VR2',
'J2A'=>'VS2',
'J2A'=>'VS2',
'J2B'=>'7Y1',
'J2C'=>'7Z1',
@ -1165,7 +1165,7 @@ $tabGreffe2Sd=array(
'M2L'=>'ZK1',
);
require_once 'framework/common/curl.php';
class MGreffes {
@ -1179,12 +1179,12 @@ class MGreffes {
public $iDb;
private $iInsee;
public $enCache=false;
function __construct() {
$this->iDb=new WDB();
$this->iInsee=new MInsee();
}
function getIdentite($siren, $refresh=false) {
$res=$this->iDb->select('greffes_identite', 'id, siren, nom, nomCommercial, adresse, adresse2, cp, ville, enseigne, siege, fj, fjLib, naf, nafLib, numRC, numRC2, typeRCS, numGreffe, libGreffe, dateCreation, dateRadiation, dateCloture, ca, res, eff, dateInsert', "siren=$siren");
if (count($res)>0 && !$refresh) {
@ -1222,7 +1222,7 @@ class MGreffes {
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/newRechercheEntreprise.xml';
$postData=array( 'denomination'=>'',
'commune'=>'',
@ -1243,7 +1243,7 @@ class MGreffes {
$url='http://www.infogreffe.fr/weblogic/infogreffe/index.do';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
$this->libErreur='Erreur Infogreffe 302b !';
return false;
@ -1276,11 +1276,11 @@ class MGreffes {
$fp=fopen(LOG_PATH.'/infogreffe.log', 'a');
fwrite($fp, $this->body);
fclose($fp);
//005480256R.C.S.STNAZAIRE
$nomCom=$adr=$adr2=$cpVille=$cp=$ville=$ens=$dateRad=$dateCre=$dateCloture=$ca=$res=$eff='';
$strSiren=htm2txt(@getTextInHtml($this->body, '<div class="text-rcs" id="libelleRcsGreffe" style="margin-left:0px; margin-right: 0px;">', '0px;">', '</div>'));
$strSiren=htm2txt(@getTextInHtml($this->body, '<div class="text-rcs" id="libelleRcsGreffe" style="margin-left:0px; margin-right: 0px;">', '0px;">', '</div>'));
//511 054 843 R.S.A.C. NARBONNE
/*if (preg_match("/((?:[0-9]{9,9})|(?:[0-9]{3,3} [0-9]{3,3} [0-9]{3,3})|(?:[0-9]{3,3}\.[0-9]{3,3}\.[0-9]{3,3})|(?:[0-9]{3,3}-[0-9]{3,3}-[0-9]{3,3}))/", $strSiren, $matches)) {
print_r($matches);
@ -1296,7 +1296,7 @@ class MGreffes {
$greffe_lib=trim(preg_replace('/^Spécial des Entrepreneurs Individuels à Responsabilité Limitée/','',trim(implode(' ', $tabTmp))));
} else
$greffe_lib=trim(preg_replace('/^inscrit au R.C.S./','',trim(implode(' ', $tabTmp))));
$strTmp=@getTextInHtml($this->body, '<td class=\'content\'>IDENTITE</td></tr></table></div>', '</tr></table></div>', '<span class="span-planAcces">');
$siege=htm2txt(@getTextInHtml($strTmp, '<span id="fiche.etablissement.type" class="ficheidentite-texte-standard-italic-gras">', 'gras">', '</span>'));
if ($siege=='Siège social') $siege=1; else $siege=0;
@ -1305,10 +1305,10 @@ class MGreffes {
if (preg_match('/<span id="fiche.denomination" class="texte-standard">(?:.*)Enseigne \:(.*)</Uis',$this->body,$matches))
$ens=htm2txt(trim($matches[1]));
if (preg_match('/<span id="fiche.denomination" class="texte-standard">(?:.*)Nom commercial \:(.*)</Uis',$this->body,$matches))
$nomCom=htm2txt(trim($matches[1]));
if (preg_match('/<\/span>(.*)<div>(.*)<br\/>(.*)<br\/>(.*)<br\/>(.*)<br\/>/Uis',$strTmp,$matches)) {
// Adresse sur 5 lignes
$adr=htm2txt(trim($matches[4]));
@ -1335,7 +1335,7 @@ class MGreffes {
$cp=substr($cpVille,0,5);
$ville=trim(substr($cpVille,5));
}
if (preg_match('/<span class=\'ficheidentite.texte.standard.italic.gras\'>Activit(?:.*)\(code NAF\)(?:.*)title="(.*)">(.*)<\/span>/Uis',$this->body,$matches)) {
$naf=$matches[2];
$nafLib=htm2txt(ucfirst(strtolower($matches[1])));
@ -1344,7 +1344,7 @@ class MGreffes {
$siege=1;
} else {
$matches=array();
preg_match('/<span class=\'ficheidentite.texte.standard.italic.gras\'>Forme juridique<\/span><br\/><span id="fiche.forme.juridique" class="texte-standard">(.*)<\/span>/Uis',$this->body,$matches);
preg_match('/<span class=\'ficheidentite.texte.standard.italic.gras\'>Forme juridique<\/span><br\/><span id="fiche.forme.juridique" class="texte-standard">(.*)<\/span>/Uis',$this->body,$matches);
}
$cjLib=prepareString(@strtoupper(trim($matches[1])));
$capitalType='SOC';
@ -1442,7 +1442,7 @@ class MGreffes {
case 'SARL D&#039;ARCHITECTURE': $cj=5499; break;
case 'SARL D&#039;INTERET COLLECTIF ET AGRICOLE A CAPITAL VARIABLE': $cj=5432; $capitalType='VAR'; break;
case 'SARL NON MEMBRE DE LA CE OU NON PARTIE A L&#039;ACCORD SUR L&#039;ESPACE ECONOMIQUE EUR.': $cj=3120; break;
case 'SARL SOCIETE A ASSOCIE UNIQUE': $cj=5498; break;
case 'SARL SOCIETE A ASSOCIE UNIQUE': $cj=5498; break;
case 'SARL SOUS FORME DE EURL': $cj=5498; break;
case 'SARL UNIPERSONNELLE SPORTIVE': $cj=5498; break;
case 'SARL UNIPERSONNELLE': $cj=5498; break;
@ -1644,7 +1644,7 @@ class MGreffes {
else
$cjLib=ucfirst(strtolower($cjLib));
if (preg_match('/<input type="hidden" name="greffe" value="(.*)">/Uis',$this->body,$matches)) {
$greffe_num=$matches[1];
}
@ -1675,7 +1675,7 @@ class MGreffes {
if (preg_match('/<span class="text-standard">(?:.*)Effectif \:(.*)<br/Uis',$this->body,$matches)) {
$eff=strtr(trim($matches[1]),array(chr(160)=>'',' '=>'','k'=>'000','K'=>'000','&euro;'=>'','personnes'=>''));
}
$numRC=$greffe_mil.$greffe_sta.$greffe_chr;
if (strlen($numRC)>4 && strlen($numRC)<10) {
if ($numRC<>'' && substr($numRC,0,2)*1>=30)
@ -1686,7 +1686,7 @@ class MGreffes {
$numRC2='';
} else
$numRC2=$numRC;
/** Insertion en base de données **/
$tabInsert=array( 'siren' => $siren,
'nom' => $nom,
@ -1718,7 +1718,7 @@ class MGreffes {
//sendMail('debug@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes.php : Debug identite $siren", $this->body);
// 997536917
}
$tabRet=array( 'id' => $id,// A calculer après insert
'Pertinence' => 100,
@ -1753,7 +1753,7 @@ class MGreffes {
);
return $tabRet;
}
function getListeEtab($siren) {
//POSTDATA=
$tabIdentite=$this->getIdentite($siren, true);
@ -1798,14 +1798,14 @@ class MGreffes {
/* [22] => ^M
AUTOMOBILES PEUGEOT^M
PARC DU GRIFFON 38 AV DES GEORGE S DE CAB RIES BP 258 . 13747 VITROLLES - Etablissement Secondaire^M
*/
if (preg_match('/^(.*)<\/a>/Uis', $tabEtabs[$i], $matches))
$nom=htm2txt(trim($matches[1]));
if (preg_match('/^(?:.*)<\/a>(?:.*)<br \/>(.*) - /Uis', $tabEtabs[$i], $matches)) {
if (preg_match('/Enseigne \:(.*)<br\/>(.*)/Uis',$matches[1],$matches2)) {
$ens=htm2txt(trim($matches2[1]));
@ -1813,17 +1813,17 @@ class MGreffes {
} elseif (preg_match('/Nom commercial \:(.*)<br\/>(.*)/Uis',$matches[1],$matches2)) {
$nomCom=htm2txt(trim($matches2[1]));
$adr=htm2txt(trim($matches2[2]));
} else
$adr=htm2txt(trim($matches[1]));
} else
$adr=htm2txt(trim($matches[1]));
$tabAdr=$this->iInsee->structureVoie($adr.'.');
}
if (preg_match("/([0-9]{3,3} [0-9]{3,3} [0-9]{3,3}) (R\.C\.S\.|R\.S\.A\.C\.) (.*)<br/Uis", $tabEtabs[$i], $matches)) {
$siren=$matches[1];
$typeRCS=$matches[2];
$greffe_lib=htm2txt(trim($matches[3]));
}
if (preg_match('/<br\/>(.*)$/sUi', $tabEtabs[$i], $matches))
$nafEtab=htm2txt(trim($matches[1]));
@ -1833,11 +1833,11 @@ class MGreffes {
$princip=1;
elseif (preg_match('/- Siège Social/Uis', htm2txt($tabEtabs[$i])))
$siege=1;
if (preg_match('/<span class="text-orange-xsmall">Radi&eacute;<\/span>/Uis', $tabEtabs[$i]))
$actif=0;
$greffe_num = substr($docId,0,4);
$numRC = substr($docId,4,8);
if (strlen($numRC)>4 && strlen($numRC)<10) {
@ -1849,7 +1849,7 @@ class MGreffes {
$numRC2='';
} else
$numRC2=$numRC;
$tabEt[$i]=@array( 'docId' => $docId, //
'nom' => $nom, //
'nomCommercial' => $nomCom, //
@ -1878,15 +1878,15 @@ class MGreffes {
}
return false;
}
/** http://www.infogreffe.fr/infogreffe/listEtablissement.do?ets=552144503&index=RCS
** numRC des établissements :
** http://www.infogreffe.fr/infogreffe/getEntrepDetail.do?docId=330290B017760010
** http://www.infogreffe.fr/infogreffe/getEntrepDetail.do?docId=130379B005800010
**/
/** Génère une requète sur le Web Service Infogreffe et récupère le résultat
**
** @param unknown_type $siren
@ -1922,13 +1922,13 @@ class MGreffes {
case 'rcs': break;
}*/
// Par défaut, le résultat ne provient pas du cache
// Par défaut, le résultat ne provient pas du cache
$this->enCache=false;
/** Par défaut les documents avec des liens vers les actes ne sont pas périsables
**/
if ($option=='')
$perisable=true;
$perisable=true;
else
$perisable=false;
/*`siren` , `dateRequete` , `strXml` , `type` , , `codeErreur`
@ -1949,12 +1949,12 @@ FROM ``*/
$errMsg=$xml;
}
//echo 'Une requête dans le cache <br/>';
}// else
}// else
//echo 'Pas de requête dans le cache <br/>';
if (INFOGREFFE_DISPO_WS && (
!$this->enCache ||
($perisable && $dateReq*1<>date('Ymd')) ||
!$this->enCache ||
($perisable && $dateReq*1<>date('Ymd')) ||
($this->enCache && !$perisable && strlen($xml)<=200))) {
$query=$this->requeteInfogreffe($siren,$idCommande,$type, $vecteur, $option);
$xml=$this->getInfogreffeXML($query);
@ -1962,10 +1962,10 @@ FROM ``*/
$sirenQuery=$sirenReponse=0;
if (preg_match('/<num_siren>(.*)<\/num_siren>/Uis', $query, $matches))
$sirenQuery=$matches[1];
if (preg_match('/<num_siren>(.*)<\/num_siren>/Uis', $xml, $matches))
$sirenReponse=$matches[1];
/** Réponse pour un autre siren, sans erreur ! **/
if ($sirenQuery<>$sirenReponse && strlen($xml)>=200)
sendMail('debug@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes.php : Debug requete $siren,$idCommande,$type, $vecteur, $option", "Debug requete $siren,$idCommande,$type, $vecteur, $option
@ -2003,10 +2003,10 @@ $xml");
//echo EOL.'Insertion réponse Infogreffe'.EOL;
}
}
return $xml;
}
/**
* Retourne le résultat du webservice infogreffe.
* @param string $req
@ -2026,7 +2026,7 @@ function getInfogreffeXML($req){
//$url='https://wsrcte.experian.fr/WSContextInfogreffe/INFOGREFFE';
else
$url = INFOGREFFE_WS_URL;
$req = utf8_encode($req);
debugLog('I', "Accès Infogreffe WS Avant = $url", __LINE__, __FILE__, __FUNCTION__, __CLASS__);
$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>';
@ -2037,16 +2037,16 @@ function getInfogreffeXML($req){
$fpErr=fopen(LOG_PATH.'/curlDebug.log', 'a');
curl_setopt($ch, CURLOPT_STDERR, $fpErr);
curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
curl_setopt($ch, CURLOPT_COOKIEFILE,TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
$output = curl_exec($ch);
fclose($fpErr);
$xml = str_replace("<?xml version='1.0' encoding='UTF-8'?><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);
// $firephp->log($xml,'XML');
@ -2107,7 +2107,7 @@ function requeteInfogreffe($siren, $idCommande=0, $type='BS', $vecteur='XL', $op
'<type_requete>S</type_requete>'.
'<media>WS</media>'.
'<mode_diffusion>';
if ($type=='AC' && $option=='' && $vecteur=='XL')
$req.= '<mode type="T"/>'.
'<mode type="C"/>';
@ -2161,7 +2161,7 @@ function getListeBilans($siren, $type='*') {
$tabRet=array();
$xml=$this->getProduitWS($siren,'BS', 0);
$dom_object = new DomDocument2();
$dom_object->loadXML($xml, LIBXML_NOERROR | LIBXML_NOWARNING);
$dom_object->loadXML($xml);
// create DOMXPath object with our DOMObject
$xpath = new Domxpath($dom_object);
/**<listeBilanSaisi>
@ -2171,15 +2171,15 @@ function getListeBilans($siren, $type='*') {
$result = $xpath->query("//listeBilanSaisi/bilanSaisi/.");
if (count($result)>0) {
/** On parse chaque noeud XML pour récupérer les infos **/
foreach ($result as $annonce) {
/** Année de Millésime et infos Greffes pour la Ref Commande **/
$title = $xpath->query ('millesime', $annonce);
$mil=trim($title->item(0)->nodeValue);
/*<>7501</greffe>
<>55</dossier_millesime>
<dossier_statut>B</dossier_statut>
/*<>7501</greffe>
<>55</dossier_millesime>
<dossier_statut>B</dossier_statut>
<dossier_chrono>*/
$title = $xpath->query ('num_gest/greffe', $annonce);
$dgre=trim($title->item(0)->nodeValue);
@ -2189,7 +2189,7 @@ function getListeBilans($siren, $type='*') {
$dsta=trim($title->item(0)->nodeValue);
$title = $xpath->query ('num_gest/dossier_chrono', $annonce);
$dchr=trim($title->item(0)->nodeValue);
$title = $xpath->query ('type_comptes', $annonce);
$typeCpt=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('liasse', $annonce);
@ -2206,7 +2206,7 @@ function getListeBilans($siren, $type='*') {
$title = $xpath->query ('num_depot', $annonce);
$num_depot=strtolower(trim($title->item(0)->nodeValue));
$ref=$mil."_$typeCpt-".str_replace('-', '',$millesime)."-$dgre-$dmil-$dsta-$dchr-$num_depot";
/*elseif ($type=='C') $presta=2001;
@ -2242,7 +2242,7 @@ function getListeBilans($siren, $type='*') {
@$iDb->insert('greffes_actes', $tabInsert);*/
}
//print_r($tabRet2);
/** Ajout des dates de clotures précédentes et des durées d'exercices **/
foreach ($tabRet2 as $i=>$ret) {
$tabRet[$ret['index']]=$ret;
@ -2261,16 +2261,16 @@ function getListeBilans($siren, $type='*') {
$tabRet[$ret['index']]['dateExercicePre']=str_replace('-', '',$millesimePre);
$tabRet[$ret['index']]['dureeExercicePre']=$delta2;
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes::getListeBilans sur $siren", $xml.EOL.print_r($tabRet, true).EOL.'enCache='.$this->enCache.EOL);
return $tabRet;
}
function getBilan($siren, $ref='') {
global $tabGreffe2Sd;
global $tabPostesDGI;
$tabRet=$tabPostes=array();
$xml=$this->getProduitWS($siren,'BS',0,'XL',$ref);
//die($xml);
@ -2279,11 +2279,11 @@ function getBilan($siren, $ref='') {
$xpath = new Domxpath($dom_object);
$title = $xpath->query ('//bilanSaisi/liasse');
$liasse=strtoupper(trim($title->item(0)->nodeValue));
$result = $xpath->query("//bilanSaisi/page/poste/.");
if (count($result)>0) {
//echo count($result).EOL;
/** On parse chaque Poste du Bilans en XML pour récupérer les infos **/
foreach ($result as $poste) {
/** Année de Millésime et infos Greffes pour la Ref Commande **/
@ -2323,10 +2323,10 @@ function getBilan($siren, $ref='') {
$tabPostes[$codeSd]=$valeur;
}
$tabRet['POSTES']=$tabPostes;
$tabRet['DATE_FRAICHE_BILAN']=date('Ymd');
$tabRet['MONNAIE_LIV_UNITE']='';
$title = $xpath->query('//bilanSaisi/date_cloture');
$tabRet['DATE_CLOTURE']=WDate::dateT('Y-m-d','d/m/Y',trim($title->item(0)->nodeValue));
$title = $xpath->query ('//bilanSaisi/duree_exo');
@ -2367,7 +2367,7 @@ function getBilan($siren, $ref='') {
$title = $xpath->query ('//bilanSaisi/devise');
$tabRet['MONNAIE_ORI']=trim($title->item(0)->nodeValue);
if ($tabRet['MONNAIE_ORI']=='') $tabRet['MONNAIE_ORI']='EUR';
// Conversion en EUR car on ne livre qu'en EUROS !
if ($tabRet['MONNAIE_ORI']<>'EUR') {
if ($tabRet['MONNAIE_ORI']=='FRF') {
@ -2385,11 +2385,11 @@ function getBilan($siren, $ref='') {
$tabRet['MONNAIE']='EUR';
$tabBilan['SOURCE']=10; // 167 avant
/*
<denomination>AUTOMOBILES PEUGEOT</denomination>
<adresse>75 AV DE LA GRANDE ARMEE</adresse>
<code_postal>75016</code_postal>
<ville>PARIS</ville>
<pays />
<denomination>AUTOMOBILES PEUGEOT</denomination>
<adresse>75 AV DE LA GRANDE ARMEE</adresse>
<code_postal>75016</code_postal>
<ville>PARIS</ville>
<pays />
*/
}
return $tabRet;
@ -2438,12 +2438,12 @@ function getListeActes($siren) {
</mode_diffusion>
</acte>
</depot_acte>
</liste_depot_acte>**/
$result = $xpath->query("//liste_depot_acte/depot_acte/.");
if (count($result)>0) {
/** On parse chaque noeud XML pour récupérer les infos **/
foreach ($result as $annonce) {
/*// Gestion
@ -2526,7 +2526,7 @@ function getListeActes($siren) {
'vecteurC'=>$vecteurC,
);
}
}*/
}*/
// Greffes et RC
$title = $xpath->query ('num_gest/greffe', $annonce);
$dgre=trim($title->item(0)->nodeValue);
@ -2536,7 +2536,7 @@ function getListeActes($siren) {
$dsta=trim($title->item(0)->nodeValue);
$title = $xpath->query ('num_gest/dossier_chrono', $annonce);
$dchr=trim($title->item(0)->nodeValue);
// Dépôt
$title = $xpath->query ('num_depot', $annonce);
$depot_num=strtolower(trim($title->item(0)->nodeValue));
@ -2546,7 +2546,7 @@ function getListeActes($siren) {
// Siren
$title = $xpath->query ("num_siren", $annonce);
$num_siren = $title->item(0)->nodeValue;
// Actes
$actes = $xpath->query("acte/.", $annonce);
$nbVecteurT=$nbActes=0;
@ -2585,9 +2585,11 @@ function getListeActes($siren) {
if ($title->length==1) //$vecteurC = true;
$tabVecteurs[]='C';
}
if ($date_acte=='') $date=$date_depot; else $date=$date_acte;
$ref="$acte_type-".str_replace('-', '',$acte_date)."-$dgre-$dmil-$dsta-$dchr-$depot_num-$acte_num";
$tabRet[]=array( 'siren' => $siren,
'numRC' => $dmil.'-'.$dsta.'-'.$dchr,
'numGreffe' => $dgre,
@ -2601,6 +2603,7 @@ function getListeActes($siren) {
'acte_pages' =>$acte_pages,
'acte_nature' =>utf8_decode($acte_nature),
'acte_decision' =>utf8_decode($acte_decision),
'ref' =>$ref,
);
$tabInsert=array( 'siren' => $siren,
'numRC' => $dmil.$dsta.$dchr,
@ -2633,9 +2636,9 @@ function getListesProcolVentes() {
Referer[http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=5]
Cookie[webabacus_id=1259143571392-1; JSESSIONID=5g2VLTDbHFBLJVnPv9TVbNYm17w9KfL90pvPLtdtTj6qydH2D120!1981381761!1657286441]
Données POST:
2 GET
2 GET
3 GET http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?page=2
Referer[http://www.infogreffe.fr/infogreffe/rechercheListeActualiteAction.do]
Cookie[webabacus_id=1259143571392-1; JSESSIONID=5g2VLTDbHFBLJVnPv9TVbNYm17w9KfL90pvPLtdtTj6qydH2D120!1981381761!1657286441]
@ -2651,7 +2654,7 @@ function getListesProcolVentes() {
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=1';
$page=getUrl($url, $this->cookie, '', $this->referer, false);
$this->body=$page['body'];
@ -2663,8 +2666,8 @@ function getListesProcolVentes() {
//$this->cookie=$page['header']['Set-Cookie'];*/
$this->referer=$url;
print_r($page);
die();
die();
$url='http://www.infogreffe.fr/infogreffe/rechercheListeActualiteAction.do';
$postData=array( 'radImmatRad'=>'FN',
'departement'=>'',
@ -2685,17 +2688,17 @@ function getListesProcolVentes() {
$this->referer=$url;
print_r($page);
die();
$url='http://www.infogreffe.fr/weblogic/infogreffe/index.do';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr');
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
$this->libErreur='Erreur Infogreffe 302b !';
return false;
}
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?rebuild=true';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr');
$this->body=$page['body'];
@ -2703,7 +2706,7 @@ function getListesProcolVentes() {
$this->header=$page['header'];
print_r($page);
die();
if ($this->codeRetour==302) {
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/entrepListe.do?index=rcs';
@ -2725,7 +2728,7 @@ function getListesProcolVentes() {
$fp=fopen(LOG_PATH.'/infogreffe.log', 'a');
fwrite($fp, $this->body);
fclose($fp);
}
@ -2743,10 +2746,10 @@ function getBilansImages($siren, $ref='') {
$dom_object = new DomDocument2();
$dom_object->loadXML($xml);
// create DOMXPath object with our DOMObject
$xpath = new Domxpath($dom_object);
$xpath = new Domxpath($dom_object);
$result = $xpath->query("//liste_bilan_complet/bilan_complet/.");
if (count($result)>0) {
/** On parse chaque noeud XML pour récupérer les infos **/
foreach ($result as $annonce) {
/** Année de Millésime et infos Greffes pour la Ref Commande **/
@ -2761,15 +2764,15 @@ function getBilansImages($siren, $ref='') {
$dsta=trim($title->item(0)->nodeValue);
$title = $xpath->query ('num_gest/dossier_chrono', $annonce);
$dchr=trim($title->item(0)->nodeValue);
$title = $xpath->query ('type_comptes', $annonce);
$typeCpt=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('date_cloture', $annonce);
$millesime=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('date_cloture_iso', $annonce);
$dateClotureIso=strtolower(trim($title->item(0)->nodeValue));
$title = $xpath->query ('num_depot', $annonce);
$num_depot=strtolower(trim($title->item(0)->nodeValue));
@ -2778,7 +2781,7 @@ function getBilansImages($siren, $ref='') {
$tabVecteurs=array();
$vecteurs = $xpath->query("mode_diffusion/.", $annonce);
foreach ($vecteurs as $vecteur) {
$title = $xpath->query ("mode[@type='T']", $vecteur);
$title = $xpath->query ("mode[@type='T']", $vecteur);
if ($title->length==1) //$vecteurT = true;
$tabVecteurs[]='T';
$title = $xpath->query ("mode[@type='C']", $vecteur);
@ -2789,7 +2792,7 @@ function getBilansImages($siren, $ref='') {
$tabRet[]=array( 'siren' => $siren,
'numRC' => $dmil.'-'.$dsta.'-'.$dchr,
'numGreffe' => $dgre,
'numGreffe' => $dgre,
'annee' => $mil,
'type' => $typeCpt,
'dateClotureAff' => $millesime,
@ -2814,9 +2817,9 @@ function getBilansImages($siren, $ref='') {
);
if (!$iDb->insert('greffes_bilans', $tabInsert))
if (!$iDb->update('greffes_bilans', $tabInsert, "siren='$siren' AND num_depot='$num_depot' AND date_cloture='$dateClotureIso' AND type_comptes='$typeCpt'"))
$iDb->update('greffes_bilans', $tabInsert, "siren='$siren' AND num_depot='$num_depot' AND date_cloture='$dateClotureIso' AND type_comptes=''");
$iDb->update('greffes_bilans', $tabInsert, "siren='$siren' AND num_depot='$num_depot' AND date_cloture='$dateClotureIso' AND type_comptes=''");
}
}
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes::getListeBilans sur $siren", $xml.EOL.print_r($tabRet, true));
return $tabRet;
@ -2829,15 +2832,15 @@ function getInfosCessions($siren) {
$tabCes=$ret[0];
if (count($ret)>1)
sendMail('debug@scores-decisions.com', 'ylenaour@scores-decisions.com', "classMGreffes.php : Debug getInfosCessions $siren", "Plus de 1 cession pour ce siren");
//id, siren, nom, libGreffe, inscrit, etat, dateImmat,
//id, siren, nom, libGreffe, inscrit, etat, dateImmat,
//pdfLink, pdfSize, pdfVer, pdfPage, ,
// dateLimite, mandataire, dateInsert
// dateLimite, mandataire, dateInsert
return array( 'cessJuge'=> $tabCes['etat'],
'cessDateJuge'=>$tabCes['dateJuge'],
'cessDateConv'=>$tabCes['dateConv'],
'cessDateLJS'=> $tabCes['dateLJS'],
'cessDateInv'=> $tabCes['dateInventaire'],
'cessDateBod'=> $tabCes['dateBodacc'],
'cessDateBod'=> $tabCes['dateBodacc'],
'cessCAdec'=> $tabCes['caDeclare'],
'cessEffectif'=>$tabCes['effectif'],
'cessDesc'=> $tabCes['descriptif'],
@ -2863,7 +2866,7 @@ function getListeCessions($typeProcedure='rj') {
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/newRechercheEntreprise.xml';
$postData=array( 'denomination'=>'',
'commune'=>'',
@ -2879,13 +2882,13 @@ function getListeCessions($typeProcedure='rj') {
return false;
}
$this->referer=$url;
/*
* Déprécié le 6 octobre 2010
$url='http://www.infogreffe.fr/weblogic/infogreffe/index.do';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
$this->libErreur='Erreur Infogreffe 302b !';
return false;
@ -2915,7 +2918,7 @@ function getListeCessions($typeProcedure='rj') {
return false;
}
$this->referer=$url;
$url='http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=1';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
@ -2926,7 +2929,7 @@ function getListeCessions($typeProcedure='rj') {
}
$this->referer=$url;
sleep(1);
$url='http://www.infogreffe.fr/infogreffe/afficherRechercheActualiteAction.do?paramTypeListe=5';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
@ -2937,7 +2940,7 @@ function getListeCessions($typeProcedure='rj') {
}
$this->referer=$url;
sleep(2);
// Premier POST pour obtenir la liste des RJ ou LJ à céder !
$url='http://www.infogreffe.fr/infogreffe/rechercheListeActualiteAction.do';
$postData=array('radImmatRad'=>'FN',
@ -2958,7 +2961,7 @@ function getListeCessions($typeProcedure='rj') {
*8 Plus de 500M euros
*/
);
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
@ -2970,7 +2973,7 @@ function getListeCessions($typeProcedure='rj') {
$nbCessions=trim($matches[1]);
$nbPages=ceil($nbCessions/10);
sleep(1);
/** Liste des entreprises **/
$tabCessions=array();
$nbInsert=$nbDeja=0;
@ -2979,8 +2982,8 @@ function getListeCessions($typeProcedure='rj') {
$url='http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?rebuild=true';
else
$url='http://www.infogreffe.fr/infogreffe/afficherListeActualitesAction.do?page='.$iPage;
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'200') {
@ -2988,7 +2991,7 @@ function getListeCessions($typeProcedure='rj') {
return false;
}
$this->referer=$url;
$tabStrCessions=explode('<td class="titre" style="vertical-align:top;font-weight:normal">',$this->body);
foreach($tabStrCessions as $k=>$strCession) {
if($k==0) continue;
@ -3019,11 +3022,11 @@ function getListeCessions($typeProcedure='rj') {
//@$k2++;
$urlPre=$url;
$nomPdf=$page['header']['Location'];
//echo "Redirection #$k2 : ".$page['header']['Location'].EOL;
//echo "Redirection #$k2 : ".$page['header']['Location'].EOL;
$page=getUrl($page['header']['Location'], $this->cookie, '', $urlPre, false);//, 'www.infogreffe.fr', false, '', '', 21);
}
$strPdf=$page['body'];
$pdfSizeIn=$page['header']['Content-Length'];
$pdfSizeIn=$page['header']['Content-Length'];
$tabInfo['pdfLink']=$nomPdf;
/*
$tabPdf=getPdfInfo($repPdfGreffesCessions.'/'.basename($nomPdf));
@ -3067,13 +3070,13 @@ function getListeCessions($typeProcedure='rj') {
}
return array( 'insert'=>$nbInsert,
'update'=>$nbDeja);//$tabCessions;
// echo "$nbCessions cessions sur $nbPages pages".EOL;
// echo "$nbCessions cessions sur $nbPages pages".EOL;
// die();
}
}
/** Declaration d'une anomalie chez Infogreffe
*
*
* @param $siren Siren de l'entreprise concernée
* @param $type Type d'anomalie 'CB10','IMR10','WS10'
* @param $description Description complète de l'anomalie
@ -3081,7 +3084,7 @@ function getListeCessions($typeProcedure='rj') {
function declareAnomalie($siren, $type, $description) {
/*
CB10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=37
IMR10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=11
IMR10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=11
WS10 https://www.infogreffe.fr/mantis/issues_rss.php?username=SCOREDECISIONS&key=6b42eafa9888f57858599218f57caa17&project_id=36
https://www.infogreffe.fr/mantis/view_all_bug_page.php
@ -3098,13 +3101,13 @@ https://www.infogreffe.fr/mantis/csv_export.php
}
$this->cookie=$page['header']['Set-Cookie'];
$this->referer=$url;
$url='https://www.infogreffe.fr/mantis/login.php';
$postData=array('username'=>'SCOREDECISIONS',
'password'=>'scoredecisions09');
$page=getUrl($url, $this->cookie, $postData, $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
// print_r($page);
$this->referer=$url;
$this->referer=$url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
@ -3115,7 +3118,7 @@ https://www.infogreffe.fr/mantis/csv_export.php
/*
$url='https://www.infogreffe.fr/mantis/'.$page['header']['Location'];
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);
$this->referer=$url;
$this->referer=$url;
$this->body=$page['body'];
$this->codeRetour=$page['code'];
if ($this->codeRetour<>'302') {
@ -3125,7 +3128,7 @@ https://www.infogreffe.fr/mantis/csv_export.php
$this->cookie=$page['header']['Set-Cookie'];
/*print_r($page);
die();*/
$url='https://www.infogreffe.fr/mantis/view_all_bug_page.php';
$url='https://www.infogreffe.fr/mantis/csv_export.php';
$page=getUrl($url, $this->cookie, '', $this->referer, false, 'www.infogreffe.fr', false, '', '', 21);

View File

@ -1,14 +1,14 @@
<?
class MLiens {
public $siren=0;
private $iDb;
private $iInsee;
public $tabSirenVisites;
private $tabChars=array('é'=>'é', 'ç'=>'ç','è'=>'è','à '=>'à');
private static $tabFct=array( 'ADM'=>'Administrateur',
'ASS'=>'Associé',
'COG'=>'Co-gérant',
@ -30,15 +30,15 @@ class MLiens {
1600=>'Actes', // S&D : 69642, Associé-Gérant
1700=>'SED',
1800=>'Collecte', // Infolégales
1900=>'Collecte');
1900=>'Collecte');
public function __construct($siren) {
$this->siren=$siren;
$this->siren=$siren;
$this->iDb=new WDB();
$this->iInsee=new MInsee();
}
/** Retourne les actionnaires du siren
** @param int Siren de l'entreprise
** @return array Tableau d'actionnaires
@ -81,7 +81,7 @@ class MLiens {
else $majMin=$lien['MajMin'];
switch ($tabIdentite['FJ']*1) {
case 5488: // Entreprise Unipersonnelle à Responsabilité Limitée
case 5498: // SARL unipersonnelle
case 5498: // SARL unipersonnelle
case 5720: // Société par actions simplifiée à associé unique
$lien['Pmin']=100;
$unique=true;
@ -94,7 +94,7 @@ class MLiens {
$pctTot+=$pctLien;
// On évite d'afficher des totaux de détention > à 100%
if($pctTot>100) $pctLien=0;
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
$tabRet[]=array( 'Pmin' => number_format($pctLien,2,',',''),
@ -111,9 +111,9 @@ class MLiens {
}
$sourcePre=$source;
}
if (count($tabRet)==0) {
switch ($tabIdentite['FJ']*1) {
switch ($tabIdentite['FJ']*1) {
case 7112: // Autorité administrative indépendante
case 7160: // Service déconcentré à compétence nation. D'un ministère (hors Défense)
case 7171: // Service déconcentré de l'État à compétence (inter) régionale
@ -141,7 +141,7 @@ class MLiens {
case 7113: // Ministère
case 7120: // Service central d'un ministère
case 7150: // Service du ministère de la Défense
case 7190: // Ecole nationale non dotée de la personnalité morale
// case 7210: // COMMUNE (traité après)
// case 7220: // DEPARTEMENT (traité après)
@ -161,7 +161,7 @@ class MLiens {
// case 7345: // Syndicat intercommunal à vocation multiple (SIVOM)
// case 7346: // Communauté de communes
// case 7347: // Communauté de villes
// case 7348: // Communauté d'agglomération
// case 7348: // Communauté d'agglomération
case 7349: // Autre établissement public local de coopération non spécialisé ou entente
case 7351: // Institution interdépartemental ou entente
case 7352: // Institution interrégionale ou entente
@ -212,7 +212,7 @@ class MLiens {
$strCodeInsee="codeInsee='$codeInsee'";
else
$strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
$tmp=$this->iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
$tabCC=$tmp[0];
switch($tabCC['typEPCI']) {
@ -221,7 +221,7 @@ class MLiens {
case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
default: $typeCC='';
}
}
$tabRet[]=array('Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',
@ -276,9 +276,9 @@ class MLiens {
break;
}
}
if (count($tabRet)==0) {
$fj=$tabIdentite['FJ']*1;
$fj=$tabIdentite['FJ']*1;
if ($fj==5498) $strFonctions=",'Gérant'";
else $strFonctions='';
$adresse=end(explode(' ', $tabIdentite['AdresseVoie']));
@ -294,7 +294,7 @@ class MLiens {
$deb=$siren2=0;
$nbRep=$maxRep=200;
$pertinence=$avecSiren=true;
$etabs=$this->iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
$tabSiren=array();
foreach ($etabs['reponses'] as $etab) {
@ -361,7 +361,7 @@ class MLiens {
if (!$this->iDb->insert('liens', $tabInsert1, true))
$errMaj=1016167;
}
/* Insertion de la participation pour l'actionnaire précédent */
$tabInsert2=array_merge($tabUpdate, array( 'ActionPart'=>2),
array( 'Siren1'=> $siren2,
@ -404,10 +404,11 @@ class MLiens {
}
}
}
}
}
/** Si l'entreprise n'a aucun actionnaire mais est majoritairement contrôlée par l'état alors on déclare l'état actionnaire **/
if (count($tabRet)==0) {
$tabNotice=$this->iInsee->getInfosNotice($siren, $nic);
if ($tabNotice['insRECME']*1>0) {
@ -435,7 +436,7 @@ class MLiens {
public function getParticipations($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$tab=$this->iDb->select(
'liens l LEFT JOIN tabPays ON codPays3=Pays',
'liens l LEFT JOIN tabPays ON codPays3=Pays',
'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source, dateLien*1 AS dateLien, DATE(l.dateInsert)*1 AS dateInsert, DATE(l.dateUpdate)*1 AS dateUpdate',
"Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
$tabRet=array();
@ -444,7 +445,7 @@ class MLiens {
if ($lien['source']>=1700) $source=1700;
//if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
else $source=$lien['source']*1;
$dateMaj=$lien['dateLien'];
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
@ -467,7 +468,7 @@ class MLiens {
}
$sourcePre=$source;
}
// if (count($tabRet)==0) {
$tabTmp=$this->iInsee->getIdentiteLight($siren);
switch ($tabTmp['FJ']*1) {
@ -494,7 +495,7 @@ class MLiens {
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
);
}
break;
break;
case 7346: // Communaute de communes
case 7348: // Communaute d'agglomeration
//case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
@ -505,7 +506,7 @@ class MLiens {
$dept=substr($tabCom['codeInsee'],0,2);
if ($dept=='2A' || $dept=='2B' || $dept=='20')
$dept='200';
elseif ($dept*1>95)
elseif ($dept*1>95)
$dept=substr($tabCom['codeInsee'],0,3);
else
$dept=$dept.'0';
@ -533,11 +534,11 @@ class MLiens {
// Siren du 75 22 750001 => Région 237 500 079
// Siren du 972 22 972001 6 => Région 239 720 014
$dept=substr($siren,2,2);
$deptD=$dept.'000';
$deptD=$dept.'000';
$deptF=$dept.'999';
if ($dept*1>95) {
$dept=substr($siren,2,3);
$deptD=$dept.'00';
$deptD=$dept.'00';
$deptF=$dept.'99';
}
$tmp=$this->iDb->select('insee.departements d, insee.insee_tabRegions r',
@ -567,18 +568,41 @@ class MLiens {
}
// }
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Liens $siren", print_r($tabRet,true)) ;
return $tabRet;
}
public function getEvenements($siren=false) {
if (!$siren) $siren=$this->siren;
$tab=$this->iDb->select('rncs_even_info', 'siren, dateDepot, codeEven, depot_num, depot_date, acte_num, acte_date, acte_type, acte_lib, acte_pages, acte_nature, acte_decision, collecte, flux, dateInsert',
"siren='$siren' AND codeEven IN(2,5,6,7,8,9,10,13,31,32,63)", true, MYSQL_ASSOC);
$tabRet=array();
foreach ($tab as $i=>$lien) {
$tabRet[]=array(/*'Pmin' => 0,
'PminNum' => 0,
'MajMin' => '+',*/
'DateLien' => $lien['acte_date'],
'TypeEvenement' => $lien['acte_nature'],
'InfoEvenement' => $lien['acte_decision'],
// 'Pays' => '',
// 'Siren' => 0,
// 'Actif' => 1,
'Source' => $this->tabSources[1500],
'DateMaj' => $lien['flux'],
);
}
return $tabRet;
}
public function getLiens($siren=false) {
$tabA=$this->getActionnaires($siren);
$tabP=$this->getParticipations($siren);
$tabE=$this->getEvenements($siren);
return array( 'actionnaires'=>$tabA,
'participations'=>$tabP);
'participations'=>$tabP,
'evenements'=>$tabE);
}
public function getMaisonMereFr($siren, $debug=false, $tabSirenVisites=array()) {
$this->tabSirenVisites=$tabSirenVisites;
$this->tabSirenVisites[]=$siren;
@ -594,8 +618,8 @@ class MLiens {
continue;
}// else
//echo "inconnu".EOL;
if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
if ($debug && $sirenMere>1000) $tabIdentiteA=$this->iInsee->getIdentiteLight($sirenMere);
else $tabIdentiteA['Nom']='';
if ($siren*1==$sirenMere*1) {
if ($debug) echo "D. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
@ -623,7 +647,7 @@ class MLiens {
}
if ($i==0) return $siren;
}
public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true, $format='txt', $tabRet=array()) {
$appel++;
$tabP=$this->getParticipations($siren, $actifsUniquement);
@ -658,7 +682,7 @@ class MLiens {
echo "[D]".EOL;
$tabSiren[]=$siren;
}
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $appel<=$nbNiveaux) {
$tabSiren[]=$siren;
if (in_array($sirenFille,$tabSiren))
echo "[Adeja]".EOL;
@ -677,13 +701,13 @@ class MLiens {
$tabSiren[]=$siren;
}
else {
/**1) {
echo "[D]".EOL;
$tabSiren[]=$siren;
}
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $niveauCour<=$nbNiveaux) { */
echo "[E]".EOL;// $siren, $sirenFille, ".$lien['PminNum'].">=$pctMin, ".$lien['MajMin'].", $niveauCour<=$nbNiveaux".EOL;
$tabSiren[]=$siren;
}
@ -696,8 +720,8 @@ class MLiens {
}
$tabRet=$tabParts;
return array_unique($tabSiren);
}
}
/**
* Retourne l'arborescence pour les groupes
* @param string $siren
@ -705,17 +729,17 @@ class MLiens {
* @param int $nbNiveaux
*/
public function getArborescence($siren, $pctMin=33, $nbNiveaux=10)
{
{
//Récupération de la maison mère
$sirenMere = $this->getMaisonMereFr($siren);
//Informations de la maison mère
$tabId = $this->iInsee->getIdentiteLight($sirenMere);
$tabSirenDeja = array();
$tabSirenDeja[] = $tabId['Siren'];
//Retour
//Retour
$tabRet = array(
'name' => $tabId['Nom'],
'siren' => $tabId['Siren'],
@ -723,7 +747,7 @@ class MLiens {
);
return $tabRet;
}
/**
* Retourne un sous élement de l'arborescende pour les groupes
* @param string $siren
@ -734,39 +758,39 @@ class MLiens {
*/
public function getArborescenceRecursive( $siren, $pctMin=33, $niveau=0, $nbNiveaux=10, $tabSirenDeja=array() )
{
if ( $niveau > $nbNiveaux ) return array();
if ( $niveau > $nbNiveaux ) return array();
$niveau++;
$tabRet = array();
$participations = $this->getParticipations($siren);
$participations = $this->getParticipations($siren);
if ( count($participations)>0 ) {
foreach ( $participations as $item ) {
foreach ( $participations as $item ) {
if ( $item['Pmin'] > $pctMin ) {
//file_put_contents('test.log', $item['Siren']."\n", FILE_APPEND);
$data = array(
'name' => $item['RaisonSociale'],
'siren' => $item['Siren'],
'pmin' => $item['Pmin'],
'pays' => $item['Pays'],
'children' => array(),
);
//Pour éviter d'avoir des boucles infinis
);
//Pour éviter d'avoir des boucles infinis
if ( !in_array($item['Siren'], $tabSirenDeja) && intval($item['Siren'])>1000 ){
$tabSirenDeja[] = $item['Siren'];
$data['children'] = $this->getArborescenceRecursive($item['Siren'], $pctMin, $niveau, $nbNiveaux, $tabSirenDeja);
}
}
$tabRet[] = $data;
}
}
//file_put_contents('test.log', "\n", FILE_APPEND);
}
return $tabRet;
}
}
/** Recherche d'entreprise par leur actionnaire
**
** @param string $nom Raison sociale / Nom de l'actionnaire (obligatoire)
@ -780,7 +804,7 @@ class MLiens {
** @param bool $pertinence Recherche orthographique stricte sur les noms et prénoms (si true)
** @return Liste des entreprises trouvées
**/
public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
public function rechercheActionnaire($nom, $cpVille='', $siren=0, $pays='', $pctMin=0, $pctMax=100, $deb=0, $nbRep=20, $maxRep=200, $pertinence=false)
{
debugLog('I',"rechercheActionnaire de $nom, $cpVille, $pays, $siren entre $pctMin et $pctMax% (Max Rep=$nbRep)",__LINE__,__FILE__, __FUNCTION__, __CLASS__);
$formR = array(
@ -789,9 +813,9 @@ class MLiens {
'actNomRS' => join(' ', array($nom, $cpVille)),
'pays' => $pays,
'pctMin' => $pctMin,
'pctMax' => $pctMax,
'pctMax' => $pctMax,
);
$version = defined('SPHINX_ACT_VERSION') ? SPHINX_ACT_VERSION : 1;
require_once 'Metier/sphinx/rechercheFonc.php';
$result = rechercheAct($formR, $deb, $nbRep, $maxRep);
@ -811,9 +835,9 @@ class MLiens {
*/
return $result;
}
/** Retourne les informations relatives au groupe du siren donné
** @param string $siren Siren de l'entreprise
** @param string $siren Siren de l'entreprise
**/
public function getInfoGroupe($siren) {
if ($siren<1000) return false;
@ -822,7 +846,7 @@ class MLiens {
"siren=(SELECT distinct sirenGrp FROM etablissements_act WHERE siren=$siren AND siege=1) LIMIT 0,1", false, MYSQL_ASSOC);
$tabEnt=$tmp[0];
$sirenGrp=$tabEnt['siren'];
if ($sirenGrp<1000) return false;
/** Table des Nafs5 => Secteurs **/
$tmp=$this->iDb->select('tabNaf5', 'codNaf2, codNaf1', '1 GROUP BY codNAf2', false, MYSQL_ASSOC);
@ -830,7 +854,7 @@ class MLiens {
foreach ($tmp as $tmp2) {
$tabNAf2[$tmp2['codNaf2']]=$tmp2['codNaf1'];
}
$tabNaf2Lib=array( 'A'=>'Agriculture, sylviculture et pêche',
'B'=>'Industries extractives',
'C'=>'Industrie manufacturière',
@ -853,7 +877,7 @@ class MLiens {
'T'=>'Activités des ménages en tant qu\'employeurs ; activités indifférenciées des ménages en tant que producteurs de biens et services pour usage propre',
'U'=>'Activités extra-territoriales',
);
$tabId=$this->iInsee->getIdentiteEntreprise($sirenGrp);
/*
[SiretSiege] => 54205118000066
@ -928,7 +952,7 @@ class MLiens {
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['nb']++;
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['ca']+=$tabEnt['bilFL'];
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['eff']+=$tabEnt['eff_entrep'];
@$tabAvis[$tabEnt['avisCs']]++;
}
foreach ($tabSecteur as $secteur=>$tmp) {
@ -952,7 +976,7 @@ class MLiens {
// $tabRet['ape5']=$tabApe5;
$tabRet['secteur']=$tabSecteur2;
$tabRet['avisCs']=$tabAvis; // Vérifier les procol
$strSiren=implode(',', $tabSirenGrp);
/*$tmp=$this->iDb->select('insee.insee_notices',
'insSIREN, insNIC, dateNotice',
@ -960,9 +984,9 @@ class MLiens {
if (count($tmp)>0) $tabRet['grpRecme']=1;
else $tabRet['grpRecme']=0;*/
$tabRet['grpNbProcolHisto']=$nbProcol;
return $tabRet;
}
}
?>

View File

@ -299,6 +299,7 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
$NOMEN=trim(strtr($tabIdentite['Nom'],array('*'=>' ','/'=>' ')));
$ENSEIGNE=$tabIdentite['Enseigne'];
$ENTREP_ALT=$tabIdentite['GeoAlt']; // Altitude de l'établissement
$ACTIVNAT=$tabIdentite['NatureActivite'];
$AUXILT=$tabIdentite['Auxiliaire'];
$ORIGINE=$tabIdentite['OrigineCreation'];
@ -557,6 +558,22 @@ function calculIndiScore($siren, $nic=0, $accesDist=false, $cycleClient=2, $mail
}
$timer['regression']=microtime(true);
/** Bilan des collectivités **/
if ($FJUR==7210) {
$lstCom=$iDb->select(
'bilansM14',
'millesime, dep, com, depA, siren, sirenValide, depLib, comLib, popLeg, popInf, fiscalite, popFisc, R01a, R01b, R01c, R02a, R02b, R02c, R02d, R02e, R03a, R03b, R03c, R03d, R03e, R04a, R04b, R04c, R04d, R04e, R05a, R05b, R05c, R06a, R06b, R06c, R06d, R06e, R07a, R07b, R07c, R07d, R07e, R08a, R08b, R08c, R08d, R08e, R09a, R09b, R09c, R09d, R09e, R10a, R10b, R10c, R10d, R10e, R11a, R11b, R11c, R12a, R12b, R12c, R13a, R13b, R13c, R13d, R13e, R14a, R14b, R14c, R14d, R14e, R15a, R15b, R15c, R15d, R15e, R16a, R16b, R16c, R16d, R16e, R17a, R17b, R17c, R18a, R18b, R18c, R18d, R18e, R19a, R19b, R19c, R19d, R19e, R20a, R20b, R20c, R20d, R20e, R21a, R21b, R21c, R21d, R21e, R22a, R22b, R22c, R23a, R23b, R23c, R24a, R24b, R24c, R25a, R25b, R25c, R26a, R26b, R26c, R26d, R26e, R27a, R27b, R27c, R27d, R27e, R28a, R28b, R28c, R28d, R28e, R29a, R29b, R29c, R29d, R29e, R30a, R30b, R30c, R30d, R30e, R31a, R31b, R31c, R31d, R31e, R32a, R32b, R32c, R33a, R33b, R33c, R33d, R33e, R33f, R34a, R34b, R34c, R34d, R34e, R34f, R35a, R35b, R35c, R35d, R35e, R35f, R36a, R36b, R36c, R36d, R36e, R36f, R37a, R37b, R37c, R37d, R37e, R37f, R38a, R38b, R38c, R38d, R38e, R39a, R39b, R39c, R39d, R39e, R40a, R40b, R40c, R40d, R40e, R41a, R41b, R41c, R41d, R41e, R42a, R42b, R42c, R42d, R42e, R43a, R43b, R43c, R43d, R43e, R44a, R44b, R44c, dateInsert',
"siren=$siren ORDER BY millesime DESC LIMIT 0,5", false, MYSQL_ASSOC);
foreach ($lstCom as $i=>$tabCom) {
$tabRatios[]=convertZones('R', $tabCom);
}
$R=$tabRatios[0];
$Rp=$tabRatios[1];
$Rp2=$tabRatios[2];
$Rp3=$tabRatios[3];
$Rp4=$tabRatios[4];
}
// Elements provenant des bilans
$EFFBILAN=$tabBilan[0]['YP'];
$nm=$nbMoisBilCumul=$tabBilan[0]['DUREE_MOIS'];
@ -1655,7 +1672,7 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
}
if (!$tabIdentite['TvaAttribue']) { // Entreprise sans numéro de TVA
$TVAINTRA=false;
$TVAINTRAFACULT=$tabIdentite['TvaFacultatif']; // 0, 1=MicroEntrep, 2=Dom Tom Etranger
$TVAINTRAFACULT=$tabIdentite['TvaFacultatif']; // 0, 1=MicroEntrep, 2=Dom Tom Etranger, 99=Erreur validation n°TVA
if ($TVAINTRAFACULT==0) $SCORECONF-=10;
} else
$TVAINTRA=$tabIdentite['TvaNumero'];
@ -2936,6 +2953,32 @@ AltmanCote=$scoreAltmanB".EOL.print_r($tabInfosNotation,true);
$timer['finIndiscore']=microtime(true);
//sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Indiscore sur $siren : Trace20", 'ici');
/** @todo
$NOMFUSION Nom de l'entrep concernée par la fusion
$GERANTMAJ
$ANNONCELIM Annonce en cours
$ANNONCELJDELAI Délai pour rescorer après annonce de LJ
$ANNONCECLODELAI Délai pour rescorer après annonce de cloture
$APEAGRICPAC
$NOTEDEFPRO Note de la probabilité de défaillance du profil sur 100
$SOCIETE_COTE_MARCHE_MERE Nom du marché de l'actionnaire côté
GEOACT1K_NB nombre Nb entrep du même secteur (APE 4ch) à moins de 1km
GEOACT5K_NB nombre Nb entrep du même secteur (APE 4ch) à moins de 5km
GEOACT10K_NB nombre Nb entrep du même secteur (APE 4ch) à moins de 10km
RISQUEGEOEAU_DIS nombre distance d'un point d'eau en metres
RISQUEGEOEAU_MIL libellé milieu: classification du point d'eau en metre ex: rivière, pland'eau etc…
RISQUEGEOEAU_ALT nombre altitude du point d'eau en metres
RISQUEGEOEAU_PRELS nombre M3 par an; prélèvement eau en surface
RISQUEGEOEAU_PRELF nombre M3 par an; prélèvement eau souterraine par forage
$MOY(R[512],3)
**/
$variables="
\$NIVEAU=$NIVEAU
\$numBil=$numBil

View File

@ -1,5 +1,5 @@
<?php
$tabVar = array(
$tabVar = array(
'ACTIFINSEE',
'ACTIFRNCS',
'ACTISURF',
@ -7,8 +7,8 @@ $tabVar = array(
'ACTIVREG',
'ADRDOM',
'AGE',
'ANNEEp3',
'ANNEEp2',
'ANNEEp3',
'ANNEEp2',
'ANNEEp1',
'ANNEE',
'ANNEE1',
@ -177,7 +177,7 @@ $tabVar = array(
'COTETYPE_MMAA',
'CSFACTO',
'CSFACTO_MMAA',
'DEPARTEMENT',
'DEPARTEMENT',
'DEPARTEMENT_DE',
'DCREN',
'DCREN_AA',
@ -211,6 +211,7 @@ $tabVar = array(
'ENQUETE',
'ENQUETELIM',
'ENQUETEMAXI',
'ENTREP_ALT',
'ETATINSEE',
'ETATINSEE_MMAA',
'EXPLEN',
@ -262,8 +263,8 @@ $tabVar = array(
'MARCHESALp',
'MARCHENBENT',
'MARCHENBENTp',
'MARCHENBENT_DEP',
'MARCHENBENT_VILLE',
'MARCHENBENT_DEP',
'MARCHENBENT_VILLE',
'MARCHEPUBLIC3_NB',
'MARCHEPUBLIC3_MT',
'MARCHEPUBLIC3_POURC',
@ -420,7 +421,7 @@ $tabVar = array(
//TAUXRAMOY1
//TAUXRAMOY2
//TAUXRAMOY3
//TAUXRA
//TAUXRA
'TCAEXP',
'TEMOINACT',
'TEMOINACT_MAX',
@ -499,8 +500,8 @@ $tabVar = array(
'TEMOINVUL',
'TEMOINVUL_MAX',
//TEMOINVALBIL
//TEMOINVALBIL_MAX
//TEMOINVALCONC
//TEMOINVALBIL_MAX
//TEMOINVALCONC
//TEMOINVALCONC_MAX
//TEMOINVALCR
//TEMOINVALCR_MAX
@ -645,12 +646,12 @@ if (!function_exists('unsetGlobals')) {
unset ($regRs);
unset ($Ra);
unset ($Rap);
unset ($Rdiff);
unset ($Rdiff);
unset ($tabRegX);
unset ($Y);
unset ($Yaff);
unset ($PROJECTAUX);
unset ($PROJECCOEF);
unset ($PROJECCOEF);
unset ($idx);
unset ($tabVariables);
}