Update classMInsee : Problem sur les SIREN à 0

This commit is contained in:
Michael RICOIS 2015-06-24 10:10:34 +00:00
parent 1c85624ddd
commit 56dfbb11b0

View File

@ -2287,14 +2287,10 @@ class MInsee
if($this->debugtime) {
$timer = array('debutIdentite'=>microtime(true));
$tdebIni = microtime(1);
$ligne=date('YmdHis').";$siren;getIdentiteEntreprise Début ---";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;getIdentiteEntreprise Début ---\n", FILE_APPEND);
}
$classWDate = new WDate();
$siren = $siren*1;
$nic = $nic*1;
$id = $id*1;
@ -2310,8 +2306,15 @@ class MInsee
"e.age_entrep, e.age_etab, e.tca, e.tcaexp, e.teff_entrep, e.teff_etab",
"$where ORDER BY siege DESC, actif DESC, nic DESC $limit", false, MYSQL_ASSOC);
/** Si le siren est valide, on part chez Infogreffe **/
if (count($listeEtab)==0 && $this->valideSiren($siren) && $accesDist) {
// Récupération des résultats
if (count($listeEtab) > 0) {
$etab = $listeEtab[0];
$nic = $etab['nic'];
}
$timer['tableEtablissements'] = microtime(true);
// Si aucun résultat et siren est valide, on part chez Infogreffe
if ($accesDist && count($listeEtab) == 0 && $this->valideSiren($siren) ) {
$iGeffes = new MGreffes($this->iDb);
$etabG = $iGeffes->getIdentite($siren);
if ($etabG) {
@ -2352,16 +2355,11 @@ class MInsee
);
}
$timer['accesInfogreffeCarInconnu'] = microtime(true);
} else {
$etab = $listeEtab[0];
$nic = $etab['nic'];
$timer['tableEtablissements']=microtime(true);
}
/** Informations locales issues de la table infos_entrep **/
// Informations locales issues de la table infos_entrep
if ($siren>100) {
$info = $this->iDb->select(
'jo.infos_entrep',
$info = $this->iDb->select('jo.infos_entrep',
"raisonSociale, isin, nscrl, tel, fax, web, mail, latitude, longitude, precis, dateCreation, dateFermeture, naf, naf_lib, ca, effectif, nbEtab, activite, LPAD(sirenDoublon,9,'0') AS sirenDoublon, waldec",
"siren=$siren", false, MYSQL_ASSOC);
if ( count($info)>0 ) {
@ -2381,16 +2379,13 @@ class MInsee
}
$timer['infosEntrep']=microtime(true);
}
// Informations INSEE
$moisNonDiff = 0;
if ($siren>100) {
if ($nic>0) $strNic="AND NIC=$nic";
else $strNic="AND NIC<100000 AND SIEGE=1";
$moisNonDiff=0;
/** Informations INSEE **/
if ($siren>100) {
$insee = $this->iDb->select('insee.identite',
'ACTIF%10 AS ACTIF, actifEco%10 AS actifEco, NOM, NOM2, SIGLE, ENSEIGNE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, PAYS, DCREN, SIEGE, AUXILT, SAISONAT, CJ, CIVILITE, NBETAB, APE_ENT, APE_ETAB, PROCOL, PROCOL_TYPE, PROCOL_DATE, CAPITAL, EFF_ENT, NUMRC, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, CAPITAL_DATE, CAPITAL_DEV, DCRET, TEFF_ENT, ADR_DEP, LPAD(ADR_COM,3,0) AS ADR_COM, TCA, TCAEXP, EFF_ET, TEFF_ET, CODEVOIE, DATE_MAJ, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, MONOREG, REGIMP, MONOACT, DEFEN, DEFET, IDENTITE_PRE, insL1_NOMEN, insL2_COMP, insL3_CADR, insL4_VOIE, insL5_DISP, insL6_POST, insL7_ETRG, dateMajRNVP, insCATEGORIE, insIND_PUBLIPO, RPET, ARRONET, CTONET, DU, TU, UU, TCD, ZEMET, ESAANN, ESAAPEN, DREACTET, AMINTRET, DREACTEN, AMINTREN, NOMEN_LONG, CEDEX, EPCI, NOM_COM, NATETAB, PRODET, PRODEN, hexavia',
"SIREN=$siren $strNic ORDER BY SIEGE DESC, ACTIF DESC LIMIT 0,1",false,MYSQL_ASSOC);
@ -2403,19 +2398,18 @@ class MInsee
if ($tabInsee['ACTIF']*1==0) $tabInsee['actifEco']=0;
if (trim($tabInsee['CODEVOIE'])=='') {
$codeCommune = $tabInsee['ADR_DEP'].sprintf("%03s",$tabInsee['ADR_COM']);
//echo $codeCommune.','.$tabInsee['ADR_TYPVOIE'].','.$tabInsee['ADR_LIBVOIE'].EOL;
$tabInsee['CODEVOIE']=$this->getCodeVoieRivoli($codeCommune, $tabInsee['ADR_TYPVOIE'], $tabInsee['ADR_LIBVOIE']);
//echo $tabInsee['CODEVOIE'].EOL;
}
} else {
}
// Siren absent de l'Insee
else {
$tabInsee = array(
'CIVILITE' => 0,
'NBETAB' => 1,
'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/
'FAX'=>$etab['fax'], /** @todo idem **/
'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/
'Mail'=>'', /** @todo idem **/
'TEL' => $etab['tel'],
'FAX' => $etab['fax'],
'Web' => '',
'Mail' => '',
'CJ' => $etab['cj'],
'CJ_lib' => $this->getLibelleFJ($etab['cj']),
'ACTIF' => $etab['actif'],
@ -2434,8 +2428,10 @@ class MInsee
);
}
$tabTmp = $this->iDb->select('jo.etablissements', 'count(*) AS nbEtabs', "siren=$siren AND NIC<100000 AND ACTIF%10=1",false,MYSQL_ASSOC);
// Nombre d'etablissements
$nbEtab = 0;
$tabTmp = $this->iDb->select('jo.etablissements', 'count(*) AS nbEtabs',
"siren=$siren AND NIC<100000 AND ACTIF%10=1", false, MYSQL_ASSOC);
if ( count($tabTmp)>0 ) {
$nbEtab = $tabTmp[0]['nbEtabs'];
}
@ -2445,16 +2441,16 @@ class MInsee
$moisNonDiff = $tabTmp[0]['mois'];
}
$timer['tableIdentite']=microtime(true);
} else {
}
// Default
else {
$tabInsee = array(
'CIVILITE' => 0,
'NBETAB' => 1,
'TEL'=>$etab['tel'], /** @todo Prendre sur les pages jaunes **/
'FAX'=>$etab['fax'], /** @todo idem **/
'Web'=>'', /** @todo Prendre sur les pages jaunes et/ou google **/
'Mail'=>'', /** @todo idem **/
'TEL' => $etab['tel'],
'FAX' => $etab['fax'],
'Web' => '',
'Mail' => '',
'CJ' => $etab['cj'],
'CJ_lib' => $this->getLibelleFJ($etab['cj']),
'ACTIF' => $etab['actif'],
@ -2465,56 +2461,52 @@ class MInsee
'ADR_DEP' => $etab['adr_dep'],
);
$nbEtab = 'N/C';
}
// Complement Identitaire
if (intval($siren) > 100 && count($info)==0) {
$idComp = $this->getIdentitePart($siren, $etab['raisonSociale'], $etab['enseigne'], $etab['sigle'], 0, $accesDist);
$tab = $idComp;
$timer['getIdentitePart']=microtime(true);
}
/** Géocodage de l'adresse **/
// Géocodage de l'adresse
$mMap = new MMap(false, $this->iDb);
$mMap->geoCodeAdresse($etab['adr_num'], '', $etab['adr_typeVoie'], $this->getCodeVoie($etab['adr_typeVoie']), $etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], 'France', trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']));
$mMap->geoCodeAdresse($etab['adr_num'], '', $etab['adr_typeVoie'], $this->getCodeVoie($etab['adr_typeVoie']),
$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], 'France',
trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']));
$tab['latitude'] = $mMap->latitudeDec;
$tab['longitude'] = $mMap->longitudeDec;
$tab['altitude'] = $mMap->altitude;
$tab['precis'] = $mMap->precision;
$timer['geoCodage'] = microtime(true);
/** Accès provisoire à AMABIS **/
// Accès provisoire à AMABIS
$repAmabis = array();
if ($accesDist) {
if($this->debugtime) {
$ligne=date('YmdHis').";$siren;MAmabis Avant";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MAmabis Avant\n", FILE_APPEND);
$tdeb = microtime(1);
}
$iAmabis = new MAmabis($this->iDb);
$repAmabis = $iAmabis->getZonage($etab['adr_num'],$etab['adr_btq'],$etab['adr_typeVoie'],$etab['adr_libVoie'], $etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']), false, 'TEST', false);
$repAmabis = $iAmabis->getZonage($etab['adr_num'], $etab['adr_btq'], $etab['adr_typeVoie'], $etab['adr_libVoie'],
$etab['adr_cp'], $etab['adr_ville'], trim($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'].$tabInsee['CODEVOIE']),
false, 'TEST', false);
$duree = round(microtime(1)-$tdeb,3);
if($this->debugtime) {
$ligne=date('YmdHis').";$siren;MAmabis APRES ($duree s)";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MAmabis APRES ($duree s)\n", FILE_APPEND);
$timer['zonesPrioritaires'] = microtime(true);
}
} else {
$repAmabis=array();
}
/** N° de TVA Intracommunautaire **/
// N° de TVA Intracommunautaire
$vatNumber = 'FR00000000000';
$vatDefined = false;
if (intval($siren) > 100) {
if($this->debugtime) {
$ligne=date('YmdHis').";$siren;MTva Avant";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MTva Avant\n", FILE_APPEND);
$tdeb = microtime(1);
}
@ -2524,35 +2516,27 @@ class MInsee
if($this->debugtime) {
$duree=round(microtime(1)-$tdeb,3);
$ligne=date('YmdHis').";$siren;MTva APRES ($duree s)";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MTva APRES ($duree s)\n", FILE_APPEND);
$timer['tvaIntra']=microtime(true);
}
} else {
$vatNumber='FR00000000000';
$vatDefined=false;
}
$nom = trim($etab['raisonSociale']);
if ($nom=='') $nom=@preg_replace('/,.*$/','',$tabInsee['IDENTITE_PRE']);
if ($nom=='') $nom = preg_replace('/,.*$/','',$tabInsee['IDENTITE_PRE']);
$nom2 = $tel = $fax = '';
if (strtoupper(trim($tabInsee['NOM2']))<>strtoupper(trim($etab['sigle'])))
if (strtoupper(trim($tabInsee['NOM2'])) != strtoupper(trim($etab['sigle']))) {
$nom2 = trim($tabInsee['NOM2']);
}
if (trim($tab['tel'])<>'') $tel = trim($tab['tel']);
elseif ($tabInsee['TEL']<>'') $tel = implode('.', str_split($tabInsee['TEL'],2));
if (trim($tab['tel']) != '') $tel = trim($tab['tel']);
elseif ($tabInsee['TEL'] != '') $tel = implode('.', str_split($tabInsee['TEL'],2));
if (trim($tab['fax'])<>'') $fax = trim($tab['fax']);
elseif ($tabInsee['FAX']<>'') $fax = implode('.', str_split($tabInsee['FAX'],2));
if (trim($tab['fax']) != '') $fax = trim($tab['fax']);
elseif ($tabInsee['FAX'] != '') $fax = implode('.', str_split($tabInsee['FAX'],2));
if (intval($siren) > 0) {
if($this->debugtime) {
$ligne=date('YmdHis').";$siren;MTel Avant";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MTel Avant\n", FILE_APPEND);
$tdeb = microtime(1);
}
@ -2561,10 +2545,7 @@ class MInsee
if($this->debugtime) {
$duree=round(microtime(1)-$tdeb,3);
$ligne=date('YmdHis').";$siren;MTel APRES ($duree s)";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MTel APRES ($duree s)\n", FILE_APPEND);
}
$activitePJ_An8='';
@ -2644,7 +2625,7 @@ class MInsee
}
$timer['typeExploitation'] = microtime(true);
/** Recherche de prédécesseur ou successeur **/
// Recherche de prédécesseur ou successeur
if (intval($siren) > 100) {
$tabAssoc = $this->getSiretAssoc($siren, $nic);
if (count($tabAssoc)>0) {
@ -2660,7 +2641,7 @@ class MInsee
}
$timer['siretPrecSuivant']=microtime(true);
/** Code Pays **/
// Code Pays
$codePaysIso2 = 'FR';
if ($tabInsee['ADR_DEP'] > 98) {
$codePaysInsee=$tabInsee['ADR_COM'];
@ -2672,9 +2653,7 @@ class MInsee
} else {
$codePaysIso2='';
foreach ($tabTmp as $tabTmp2) {
if (trim(preg_replace('/[^A-Z]/','',strtoupper(strtr($tabTmp2['libPays'],
'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ',
"aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY"))))==trim(preg_replace('/[^A-Z]/','',strtoupper($tabTmp2['LIBCOG'])))) {
if (trim(preg_replace('/[^A-Z]/','',strtoupper(strtr($tabTmp2['libPays'], 'àáâãäåæçèéêëìíîïðñòóôõöùúûüýÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖÙÚÛÜÝ', "aaaaaaaceeeeiiiionooooouuuuyyAAAAAAACEEEEIIIIONOOOOOUUUUY")))) == trim(preg_replace('/[^A-Z]/','',strtoupper($tabTmp2['LIBCOG'])))) {
$codePaysIso2 = $tabTmp2['codPays'];
break;
}
@ -2685,7 +2664,8 @@ class MInsee
}
$timer['codePays']=microtime(true);
$tabIris=$this->getInfosIris($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'], substr($tabInsee['CODEVOIE'],0,4), $etab['adr_num'], $etab['adr_btq'], $etab['adr_typeVoie'], $etab['adr_libVoie']);
$tabIris = $this->getInfosIris($tabInsee['ADR_DEP'].$tabInsee['ADR_COM'], substr($tabInsee['CODEVOIE'],0,4),
$etab['adr_num'], $etab['adr_btq'], $etab['adr_typeVoie'], $etab['adr_libVoie']);
if ($tabInsee['CODEVOIE']=='') {
// On récupere le code Rivoli s'il est absent de SIRENE (cf. doc Sirene)
$tabInsee['CODEVOIE']=@$tabIris['Rivoli'];
@ -2695,7 +2675,7 @@ class MInsee
// Est-ce un ancien établissement siège ?
$ancienSiege=false;
$dateFinSiege=0;
if (intval($siren) > 0 ) {
if (intval($siren) > 100 ) {
if ($etab['siege']==0 || ($etab['siege']==1 && $tabInsee['ACTIF']==0)) {
$dateFinSiege = $this->isAncienSiege($siren,$nic);
if ($dateFinSiege>19000101) $ancienSiege=true;
@ -2707,7 +2687,7 @@ class MInsee
$tabInsee['actifEcoType']='';
if (intval($siren) > 100 && $tabInsee['ACTIF']*1 == 1 && $tabInsee['actifEco']*1 == 0) {
/** L'établissement est actif juridiquement à l'INSEE mais sans activité économique **/
// L'établissement est actif juridiquement à l'INSEE mais sans activité économique
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
"insSIREN=$siren AND insNIC=$nic AND insEVE IN ('MPF','MNP','650') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
@ -2728,7 +2708,7 @@ class MInsee
}
}
/** Evènement Relatif à une cessation ECO entreprise **/
// Evènement Relatif à une cessation ECO entreprise
$tabTmp=$this->iDb->select('insee.insee_even', 'insEVE, IF(insDATEVE=0, idFlux*1, insDATEVE) AS insDATEVE',
"insSIREN=$siren AND insEVE IN ('OD','TD','420','425','620','621') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
if (count($tabTmp)>0) {
@ -2886,7 +2866,7 @@ class MInsee
'EPCI' => $tabInsee['EPCI'],
);
/** Estimation du Chiffre d'affaires **/
// Estimation du Chiffre d'affaires
$cj1 = substr($tabInsee['CJ'],0,1)*1;
if ($tabRet['TrancheCA']*1==0 && $tabRet['AnneeTCA']*1==0 && $tabInsee['ACTIF']==1 && $tabInsee['CJ']<>1800 && $tabInsee['CJ']<>1900 && $cj1<>7 && $cj1<>8 && $cj1<>9) {
$caEstime = $this->getCAnafEffectif($tabInsee['APE_ENT'], $tabInsee['EFF_ENT']);
@ -2898,7 +2878,8 @@ class MInsee
}
}
/** Si tourisme, recherche du classeement **/
// Si tourisme, recherche du classement
if (intval($siren) > 0) {
$tabNafTourisme = array(
'5510Z', // Hôtels et hébergement similaire
'5520Z', // Hébergement touristique et autre hébergement de co
@ -2915,8 +2896,7 @@ class MInsee
'551C', // Hôtels touristiques sans restaurant
'553A', // Restauration de type traditionnel
);
if (in_array($tabInsee['APE_ENT'], $tabNafTourisme) ||
in_array($tabInsee['APE_ETAB'], $tabNafTourisme) ) {
if (in_array($tabInsee['APE_ENT'], $tabNafTourisme) || in_array($tabInsee['APE_ETAB'], $tabNafTourisme) ) {
$ret = $this->iDb->select('jo.tourisme', 'id, nom, adresse, adrCp, adrVille, nbEtoiles, typeClasse, categorie, dateClasse, tel, fax, mail, web, typeChambres, capacite', "siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
if (isset($ret[0])) {
$tabRet['NafEtabLib'].=' ('.$ret[0]['nbEtoiles'].' étoiles le '.
@ -2927,11 +2907,11 @@ class MInsee
if ($tabRet['Mail']=='') $tabRet['Mail']=$ret[0]['mail'];
}
}
}
/** Nombre d'actions du capital si disponible **/
// Nombre d'actions du capital si disponible
if ($etab['capital'] > 0) {
$insee=$this->iDb->select(
'sdv1.capitalActions',
$insee=$this->iDb->select('sdv1.capitalActions',
'capital, deviseCapital, nbActions, actionNominale, dateInfo',
"siren=$siren AND capital>0 ORDER BY dateInfo DESC LIMIT 0,1",false,MYSQL_ASSOC);
$tabRet['CapitalNbActions']=0;
@ -2945,26 +2925,28 @@ class MInsee
}
$timer['nbActionsCapital']=microtime(true);
/** Numéro de TVA non défini **/
// Numéro de TVA non défini
if (!$vatDefined) {
// Dom Tom ou étranger
if ($tabRet['Dept']>96)
if ($tabRet['Dept'] > 96) {
$tabRet['TvaFacultatif'] = 2;
}
// Micro-entreprise
if ($tabRet['FJ']*1<2000 && $tabRet['Effectif']==0 && $tabRet['TrancheCA']==0)
if ($tabRet['FJ']*1 < 2000 && $tabRet['Effectif'] == 0 && $tabRet['TrancheCA'] == 0) {
$tabRet['TvaFacultatif'] = 1;
}
// Erreur lors de la récupération du numéro de TVA
if ($vatDefined===NULL)
if ($vatDefined === null) {
$tabRet['TvaFacultatif'] = 99;
}
}
/** Date de début d'activité de l'entreprise si absente INSEE **/
if ($siren>100 && $tabRet['DateCreaEn']==0) {
// Date de début d'activité de l'entreprise si absente INSEE
if (intval($siren) > 100 && $tabRet['DateCreaEn'] == 0) {
$insee = $this->iDb->select('insee.identite', 'DCREN', "SIREN=$siren AND DCREN>0 ORDER BY DCREN ASC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($insee)>0)
if (count($insee)>0) {
$tabRet['DateCreaEn']=$insee[0]['DCREN'];
else {
} else {
$tmp=$this->getAvisInsee($siren);
$dateCreaEn=$classWDate->dateT('Y-m-d','Ymd',$tmp['dateEtatEn']);
if (preg_match("/Prise d'activité/u", $tmp['etatEn']) &&
@ -2978,13 +2960,9 @@ class MInsee
}
$timer['dateDebutActivite']=microtime(true);
/** Adresse de domiciliation **/
$tabDom=$this->infoAdresseDom( $tabRet['AdresseNum'],
$tabRet['AdresseBtq'],
$tabRet['AdresseVoie'],
$tabRet['AdresseRue'],
$tabRet['Adresse2'],
$tabRet['CP'], $tabRet['Ville']);
// Adresse de domiciliation
$tabDom = $this->infoAdresseDom($tabRet['AdresseNum'], $tabRet['AdresseBtq'], $tabRet['AdresseVoie'],
$tabRet['AdresseRue'], $tabRet['Adresse2'], $tabRet['CP'], $tabRet['Ville']);
if (is_array($tabDom) && count($tabDom)>0) {
foreach($tabDom as $i=>$dom) {
$tabRet['AdresseDom']=1;
@ -2995,15 +2973,11 @@ class MInsee
$domiciliataire=$matches[1];
$tabRet['AdresseDom']=2;
}
$tabRet['AdresseDomEnt'][] = array(
'siren'=>$dom['siren'],
'nom'=>prepareString($dom['nom']),
);
$tabRet['AdresseDomEnt'][] = array( 'siren'=>$dom['siren'], 'nom'=>prepareString($dom['nom']) );
}
}
$timer['adresseDom']=microtime(true);
// --- Siren en doublon
if ($tab['sirenDoublon']>0) $tabRet['AutreSiren'] = array(
'listeSiren' => array(
@ -3037,7 +3011,6 @@ class MInsee
else {
$tabRet['SituationJuridique'] = 'P';
}
//file_put_contents('test.log', $this->dureePlan."-".$this->finPlan." Situtation Juridique : ".$tabRet['SituationJuridique']);
$tabTmp = $this->iDb->select('jo.scores_cutoff', 'encours, scoreSolv, scoreDir, scoreConf, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate', "siren=$siren", false, MYSQL_ASSOC);
if( count($tabTmp) > 0 ) {
if ($tabTmp[0]['scoreSolv'] > 0) {
@ -3078,9 +3051,10 @@ class MInsee
$timer['getAnnoncesLegales']=microtime(true);
}
if (($tabInsee['CJ']>0 && $tabInsee['CJ']<20 ||
$tabInsee['CJ']>999 && $tabInsee['CJ']<2000) && $tabInsee['DIR_FCT']=='')
if ( ($tabInsee['CJ']>0 && $tabInsee['CJ']<20 || $tabInsee['CJ']>999 && $tabInsee['CJ']<2000) &&
$tabInsee['DIR_FCT']=='') {
$tabRet['dir1Titre'] = self::$tabFct['PP'];
}
if ($tabInsee['CIVILITE']>0 && $tabRet['dir1NomPrenom']=='') {
if ($tabInsee['CIVILITE']==1) { $tabRet['dir1NomPrenom']='M. '; $tabRet['dir1Genre']='M'; }
@ -3089,11 +3063,13 @@ class MInsee
$tabRet['dir1NomPrenom'].=$tabInsee['NOM'];
}
if (intval($siren) > 0) {
if ($tabInsee['CIVILITE']>0 && ($tabRet['dir1Nom']=='' || $tabRet['dir1Prenom'])) {
$tmp=$this->iDb->select('insee.insee_even', 'dirNom, dirNomUsage, dirPrenom, insCIVILITE', "insSIREN=$siren ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet['dir1Nom']=@strtoupper($tmp[0]['dirNom']);
$tabRet['dir1Prenom']=@ucwords(strtolower(@$tmp[0]['dirPrenom']));
$tabRet['dir1NomUsage']=@strtoupper($tmp[0]['dirNomUsage']);
$tmp = $this->iDb->select('insee.insee_even', 'dirNom, dirNomUsage, dirPrenom, insCIVILITE',
"insSIREN=$siren ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet['dir1Nom'] = strtoupper($tmp[0]['dirNom']);
$tabRet['dir1Prenom'] = ucwords(strtolower($tmp[0]['dirPrenom']));
$tabRet['dir1NomUsage'] = strtoupper($tmp[0]['dirNomUsage']);
if ($tmp[0]['insCIVILITE']==1) $tabRet['dir1Genre']='M';
elseif ($tmp[0]['insCIVILITE']==2) $tabRet['dir1Genre']='F';
elseif ($tabRet['dir1Genre']<>'M' && $tabRet['dir1Genre']<>'F') $tabRet['dir1Genre']='';
@ -3101,8 +3077,9 @@ class MInsee
$entrep['sexe'] = $tabRet['dir1Genre'];
unset($tmp);
}
}
if ($tabInsee['ACTIF']==0 && $siren>100) {
if (intval($siren) > 100 && $tabInsee['ACTIF'] == 0) {
if ($etab['nic']*1>0) $strNic='AND insNIC='.$etab['nic'];
else $strNic='';
$tmp=$this->iDb->select('insee.insee_even', 'insDATEVE', "insSIREN=$siren $strNic AND ( insEVE LIKE 'FF' OR insEVE LIKE 'TF' OR insEVE LIKE '0F' OR insEVE LIKE 'TD' OR insEVE LIKE '0D' OR insEVE LIKE '410' OR insEVE LIKE '420' OR insEVE LIKE '425' OR insEVE LIKE '400' OR insEVE LIKE '430' OR insEVE LIKE '435' OR insDESTINAT<>'') ORDER BY insDATEVE DESC LIMIT 0,1", false, MYSQL_ASSOC);
@ -3115,13 +3092,14 @@ class MInsee
if ($tabRet['EffEnTrLib'] == '') $tabRet['EffEnTrLib'] = 'N/C';
$tabRet['CapitalLib'] = '';
if (intval($siren) > 100) {
$strEvenVtLg = " AND Rubrique<>'ventes' AND typeEven NOT LIKE '%2700%' AND typeEven NOT LIKE '%2701%' AND typeEven NOT LIKE '%2702%' AND typeEven NOT LIKE '%2703%' AND typeEven NOT LIKE '%2710%' AND typeEven NOT LIKE '%2720%' AND typeEven NOT LIKE '%2721%' AND typeEven NOT LIKE '%2725%' AND typeEven NOT LIKE '%2730%' AND typeEven NOT LIKE '%2740%' AND typeEven NOT LIKE '%2750%' AND typeEven NOT LIKE '%2800%' AND typeEven NOT LIKE '%2840%' AND typeEven NOT LIKE '%2850%' AND typeEven NOT LIKE '%2851%' AND typeEven NOT LIKE '%2860%' AND typeEven NOT LIKE '%2870%' AND typeEven NOT LIKE '%2875%' AND typeEven NOT LIKE '%2880%' AND typeEven NOT LIKE '%2881%' AND typeEven NOT LIKE '%2885%' AND typeEven NOT LIKE '%2890%' AND typeEven NOT LIKE '%2891%' AND typeEven NOT LIKE '%2892%' ";
if (inval($siren) > 100) {
if ($tabRet['CapitalSrc']<>5) {
/** Recherche du n° RC, de la Forme Juridique et du Capital au Bodacc **/
if ($tabRet['CapitalSrc'] != 5) {
// Recherche du n° RC, de la Forme Juridique et du Capital au Bodacc
$bodacc = $this->iDb->select( 'jo.bodacc_detail', 'Capital, CapitalDev',
"siren=$siren AND capital<>0 $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
if (count($bodacc) > 0) {
$annCap = $bodacc[0];
if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='' || $tabRet['Capital']<>$annCap['Capital']*1) {
if ($tabInsee['CJ']>1999 && $tabInsee['CJ']<7000) {
$tabRet['Capital']=$annCap['Capital']*1;
@ -3129,12 +3107,13 @@ class MInsee
$tabRet['CapitalSrc']=10;
}
}
}
if ($tabRet['Capital']==0 || $tabRet['CapitalDev']=='') {
$bodaccHisto = $this->iDb->select(
'historiques.entrep e, historiques.texte x',//.codEven Code évènement du mouvement Bodacc libEven ',
'historiques.entrep e, historiques.texte x',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt',
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%capital%' /*AND (e.CODEVE BETWEEN 10 AND 19 OR e.CODEVE BETWEEN 30 AND 41 OR e.CODEVE BETWEEN 51 AND 79 ) */ GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC);
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%capital%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC);
if (count($bodaccHisto)>0) {
foreach ($bodaccHisto as $ann) {
if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue;
@ -3143,7 +3122,6 @@ class MInsee
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
if (preg_match('/Capital(?:.|)\:(.*)(eur.|f|livre)/Uis', $ann['annonceTxt'], $matches) && $tabInsee['CJ']>1999 && $tabInsee['CJ']<7000)
$tabRet['Capital']=trim(strtr($matches[1],array(' '=>'', ',00 '=>'', '.00 '=>'')))*1;
if (substr(strtoupper($matches[2]),0,3)=='EUR')
$tabRet['CapitalDev']='EUR';
@ -3159,15 +3137,17 @@ class MInsee
}
if ($tabRet['CapitalDev']<>'' && $tabRet['CapitalDev']<>'EUR') {
$dev = $tabRet['CapitalDev'];
$devise=$this->iDb->select('sdv1.devise_liste l, sdv1.devise_cours c', 'c.devise, c.valeur, c.date, l.devNom, l.devNomPays, l.devPaysIso', "c.devise='$dev' and l.devIso='$dev' ORDER BY c.date DESC LIMIT 0,1", false, MYSQL_ASSOC);
$dev=@$devise[0];
//die(print_r($dev));
$deviseResult = $this->iDb->select('sdv1.devise_liste l, sdv1.devise_cours c', 'c.devise, c.valeur, c.date, l.devNom, l.devNomPays, l.devPaysIso',
"c.devise='$dev' and l.devIso='$dev' ORDER BY c.date DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($deviseResult) > 0) {
$dev = $deviseResult[0];
$devise = $tabRet['Capital'] * $dev['valeur'] * 1;
$tabRet['CapitalLib']=''.$dev['devNom'].' soit '.number_format(round($devise),null,null,' ').' EUR';
}
}
$timer['capital']=microtime(true);
/** Recherche du code Tribunal du siège **/
// Recherche du code Tribunal du siège
if ($tabRet['CapitalSrc']<>5) {
$bodacc=$this->iDb->select('jo.bodacc_detail', 'RC, FJ, Tribunal_Code',
"siren=$siren AND RC<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
@ -3178,31 +3158,40 @@ class MInsee
if ($tabRet['FJ_lib']=='') {
$bodacc = $this->iDb->select('jo.bodacc_detail', 'FJ',
"siren=$siren AND FJ<>'' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$tabRet['FJ_lib']=@$bodacc[0]['FJ'];
if (count($bodacc) > 0) {
$tabRet['FJ_lib'] = $bodacc[0]['FJ'];
}
}
/** Recherche de l'activité réelle **/
$bodacc=$this->iDb->select( 'jo.bodacc_detail', 'Activite', "siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=$bodacc[0];
if ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999)
$tabRet['Activite']=trim(/*preg_replace("/Adjonction.{1,7}activit(?:e|é)(?:.|)\:", '', */$annCap['Activite']);//);
if ($tabRet['Activite']=='' && trim($tab['activite'])<>'')
// Recherche de l'activité réelle
$bodacc = $this->iDb->select('jo.bodacc_detail', 'Activite',
"siren=$siren AND Activite<>'' AND Activite NOT LIKE 'non precis%' $strEvenVtLg ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($bodacc) > 0) {
$annCap = $bodacc[0];
if ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999) {
$tabRet['Activite']=trim($annCap['Activite']);
}
}
if ($tabRet['Activite']=='' && trim($tab['activite'])<>'') {
$tabRet['Activite']=trim($tab['activite']);
elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']>90 && $tabInsee['CJ']<94 ||
$tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) {
} elseif ($tabRet['Activite']=='' &&
($tabInsee['CJ']>90 && $tabInsee['CJ']<94 || $tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) {
$siretMin=(''.$siren.'00000')*1;
$siretMax=(''.$siren.'99999')*1;
//$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
$bodacc=$this->iDb->select( 'jo.asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet, Assoc_Nom, typeAsso, Waldec', "siren=$siren AND dateSuppr=0 AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$bodacc = $this->iDb->select('jo.asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet, Assoc_Nom, typeAsso, Waldec',
"siren=$siren AND dateSuppr=0 AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($bodacc) > 0) {
$annCap = $bodacc[0];
$tabRet['Activite'] = trim($annCap['Assoc_NObjet']);
if (trim($tabRet['AutreId'])=='')
if (trim($tabRet['AutreId'])=='') {
$tabRet['AutreId'] = trim($annCap['Waldec']);
}
$tabRet['nomLong'] = trim($annCap['Assoc_Nom']);
if ($tabRet['Activite']=='') $tabRet['Activite'] = trim($annCap['Assoc_Objet']);
if ($tabRet['Web']=='') $tabRet['Web'] = trim($annCap['Assoc_Web']);
if ($tabRet['Mail']=='') $tabRet['Mail'] = trim($annCap['Assoc_Mail']);
if ($annCap['typeAsso']=='ASL' && $tabRet['FJ']<>9150) {
if ($annCap['typeAsso'] == 'ASL' && $tabRet['FJ'] != 9150) {
$tabRet['FJ2'] = $tabRet['FJ'];
$tabRet['FJ2_Lib'] = $tabRet['FJ_lib'];
$tabRet['FJ'] = 9150;
@ -3210,26 +3199,21 @@ class MInsee
} elseif ($annCap['typeAsso'] == 'FOD') {
$tabRet['FJ_lib'].= ' (Fonds de dotation)';
}
if (trim($tabRet['AutreId'])=='')
}
if (trim($tabRet['AutreId'])=='') {
$tabRet['AutreId'] = trim($waldec);
} elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999)) {
//10 à 19// Création d'entreprise
//30 à 41
//51 à 79=>'1503', // Cloture insuf.Actif
$bodaccHisto=$this->iDb->select(
'historiques.entrep e, historiques.texte x',//.codEven Code évènement du mouvement Bodacc libEven ',
}
}
elseif ($tabRet['Activite']=='' && ($tabInsee['CJ']<7000 || $tabInsee['CJ']>7999)) {
$bodaccHisto = $this->iDb->select('historiques.entrep e, historiques.texte x',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt',
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE BETWEEN 19890101 AND 20041231 AND x.annonceTxt LIKE '%ctivit%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", false, MYSQL_ASSOC);
if (count($bodaccHisto)>0) {
foreach ($bodaccHisto as $idx => $ann) {
if ($ann['DATE']<19960101 && $ann['E1GSIR']<>$ann['SIREN']) continue;
if ($tabCodeTri<>'' && $tabCodeTri<>@$ann['CODTRI']) $tabCodeTri=@$ann['CODTRI'];
//if ($siren==403119431) $tabRet['Activite'].="$idx(".$ann['CODEVE'].'):'.$ann['annonceTxt'].' / ';
if ( ($ann['CODEVE']<20) ||
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
if ($tabCodeTri<>'' && $tabCodeTri<>@$ann['CODTRI']) $tabCodeTri = $ann['CODTRI'];
if ( ($ann['CODEVE']<20) || ($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
//Activite: r
if (preg_match('/(.*)Activit(?:e|é)(?:.|)\:(.*)(?:Adresse(?:.*|)|Commentaires?|Administration|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.|Capital|Nom commercial)(?:.|)\:/Uisu', $ann['annonceTxt'], $matches))
if (strpos(substr($matches[1],-20),'cess') === false &&
strpos(substr($matches[1],-20),'date') === false) {
@ -3245,35 +3229,35 @@ class MInsee
$bodacc = $this->iDb->select('jo.rncs_dirigeants',
"nom, prenom, naissance_nom, civilite, fonction_code as code, fonction_lib as libelle, naissance_date AS dateNaiss, naissance_lieu AS lieuNaiss, dirRS as rs, '' as dateEffet",
"siren=$siren AND actif%10=1 AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", false, MYSQL_ASSOC);
if (count($bodacc)==0)
if (count($bodacc) == 0) {
$bodacc = $this->iDb->select('jo.rncs_dirigeants',
"nom, prenom, naissance_nom, civilite, fonction_code as code, fonction_lib as libelle, naissance_date AS dateNaiss, naissance_lieu AS lieuNaiss, dirRS as rs, '' as dateEffet",
"siren=$siren AND actif%10=0 AND fonction_lib NOT LIKE '%Administrateur%' ORDER BY actif DESC, fonction_lib DESC", false, MYSQL_ASSOC);
}
if (count($bodacc) > 0) {
$k = 1;
foreach ($bodacc as $ann) {
if ($tabInsee['CJ']>=7000 && $tabInsee['CJ']<=7999 &&
$ann['libelle']<>'Maire' &&
//$ann['libelle']<>'Premier Adjoint' &&
$ann['libelle']<>'Président' &&
$ann['libelle']<>'Directeur général') continue;
if ($tabInsee['CJ']>=7000 && $tabInsee['CJ']<=7999 && !in_array($ann['libelle'],
array('Maire', 'Président', 'Directeur général'))) {
continue;
}
$tabRet['dir'.$k.'Code'] = $ann['code'];
$tabRet['dir'.$k.'Titre'] = $ann['libelle'];
if (trim($ann['naissance_nom'])<>'') {
$nomNaiss='';
if (trim($ann['naissance_nom']) != '') {
if ($ann['civilite'] == 'MME' || $ann['civilite'] == 'MLLE') {
$nomNaiss=' née '.trim($ann['naissance_nom']);
$tabRet['dir'.$k.'Genre'] = 'F';
} elseif ($ann['civilite'] == 'M') {
$nomNaiss=' né '.trim($ann['naissance_nom']);
$tabRet['dir'.$k.'Genre'] = 'M';
}
else
} else {
$nomNaiss=' né(e) '.trim($ann['naissance_nom']);
} else $nomNaiss='';
if (trim($ann['rs'])<>'') {
}
}
if (trim($ann['rs']) != '') {
$tabRet['dir'.$k.'NomPrenom'] = $ann['rs'];
if (trim($ann['nom'])<>'' || trim($ann['prenom'])<>'')
if (trim($ann['nom'])!='' || trim($ann['prenom'])!='')
$tabRet['dir'.$k.'NomPrenom'].=' repr. par '.$ann['nom'].' '.$ann['prenom'];
} else {
$tabRet['dir'.$k.'NomPrenom']=$ann['nom'].' '.$ann['prenom'].$nomNaiss;
@ -3293,11 +3277,12 @@ class MInsee
}
}
else {
/* Disable ?
$bodacc = $this->iDb->select('jo.bodacc_dirigeants d, jo.bodacc_detail b, jo.bodacc_fonctions f',
'd.num, d.dateEffet, d.Rubrique, d.fonction, d.rs, d.nom, d.prenom, d.nomUsage, d.depart, d.dateInsert, f.libelle',
"b.SIREN=$siren AND b.id=d.id AND b.typeEven NOT BETWEEN 5000 AND 5700 AND b.typeEven NOT BETWEEN 2700 AND 2900 AND d.fonction=f.codeFct AND d.depart<>1 AND f.triCode IN ('ASS','COG','DID','DIR','GER','PCS','PDG','PRD','PRE','PRT','VIC') GROUP BY d.fonction, d.rs, d.nom, d.prenom ORDER BY d.dateEffet DESC", false, MYSQL_ASSOC);
//$annCap=@$bodacc[0];
if (count($bodacc)>0) {
$annCap = $bodacc[0];
$k=1;
foreach ($bodacc as $ann) {
$tabRet['dir'.$k.'Code']=$ann['fonction'];
@ -3311,34 +3296,36 @@ class MInsee
$k++;
}
}
*/
}
$timer['dirigeants']=microtime(true);
/** Recherche du site Web ou Email dans le JO ASSO
**/
// Recherche du site Web ou Email dans le JO ASSO
if ( ($tabRet['Web']=='' || $tabRet['Mail']=='') &&
($tabInsee['CJ']>90 && $tabInsee['CJ']<94 ||
$tabInsee['CJ']>9000 && $tabInsee['CJ']<9400) ) {
$siretMin = (''.$siren.'00000')*1;
$siretMax = (''.$siren.'99999')*1;
//$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
$bodacc=$this->iDb->select( 'jo.asso', 'Assoc_Web, Assoc_Mail', "siren=$siren AND dateSuppr=0 AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$bodacc = $this->iDb->select('jo.asso', 'Assoc_Web, Assoc_Mail',
"siren=$siren AND dateSuppr=0 AND (Assoc_Web<>'' OR Assoc_Mail<>'') ORDER BY Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (count($bodacc) > 0) {
$annCap = $bodacc[0];
if ($tabRet['Web']=='') $tabRet['Web']=trim($annCap['Assoc_Web']);
if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']);
}
}
} else {
if ($etab['source']==3) {
$id = $etab['source_id'];
$bodacc=$this->iDb->select( 'jo.asso', 'Activite, Sous_Prefecture, Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_Fusion, Assoc_Date_Declaration2', "id=$id AND dateSuppr=0", false, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$bodacc = $this->iDb->select('jo.asso', 'Activite, Sous_Prefecture, Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_Fusion, Assoc_Date_Declaration2',
"id=$id AND dateSuppr=0", false, MYSQL_ASSOC);
if (count($bodacc) > 0) {
$annCap = $bodacc[0];
$tabRet['Activite'] = $annCap['Assoc_Objet'];
$tabRet['Web'] = $annCap['Assoc_Web'];
$tabRet['Mail'] = $annCap['Assoc_Mail'];
$tabRet['VilleDecl'] = $annCap['Sous_Prefecture'];
if ($tabRet['Actif'] == 0) {
// $tabRet['DateClotEn'] = $annCap['Assoc_Date_Declaration2'];
$tabRet['DateClotEt'] = $annCap['Assoc_Date_Declaration2'];
} else {
$tabRet['DateCreaEt'] = $annCap['Assoc_Date_Declaration2'];
@ -3346,12 +3333,11 @@ class MInsee
}
}
}
}
$timer['association']=microtime(true);
if ( count($etabG) > 0) {
// On initialise les dernères variables en prov. d'Infogreffes
//$tabRet['DateClotEn'] = $etabG['DateRadiation'];
if ( count($etabG) > 0) {
$tabRet['DateClotEt'] = $etabG['DateRadiation'];
$tabRet['dateImmat'] = $etabG['DateCreation'];
if ($tabRet['dateImmat']*1==0)
@ -3370,10 +3356,8 @@ class MInsee
$tabNom[$i]=ucwords(strtolower($tabNom[$i]));
$tabRet['dir1NomPrenom']=implode(' ', $tabNom);
}
$tabRet['FJ_lib'] = $etabG['FJLib']; // prepareString($etab['FJLib']),
$tabRet['FJ_lib'] = $etabG['FJLib'];
$tabRet['AutreId'] = $etabG['NumRC'];
/* 'Source'=>$etab['source'],
'SourceId'=>$etab['source_id'],*/
$tabRet['NafEtab'] = $etabG['NafEtab'];
$tabRet['NafEnt'] = $etabG['NafEnt'];
$tabRet['NafEntLib'] = $etabG['NafEntLib'];
@ -3386,17 +3370,21 @@ class MInsee
$iRncs=new MRncs($this->iDb);
$tabRet['Tribunal'] = $iRncs->getCodeBodaccTribunal($etabG['NumGreffe']);
}
if ($tabRet['Siege']==1 && $tabRet['Actif'] && $tabRet['Tribunal']=='')
$tabRet['Tribunal']=$tabCodeTri;
$rep = $this->iDb->select('jo.rncs_entrep', 'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, dateRad*1 AS dateRadNum, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate', "siren=$siren", false, MYSQL_ASSOC);
if ($tabRet['Siege']==1 && $tabRet['Actif'] && $tabRet['Tribunal']=='') {
$tabRet['Tribunal'] = $tabCodeTri;
}
if ( intval($siren) > 0) {
$rep = $this->iDb->select('jo.rncs_entrep',
'siren, sirenValide, actif, numGreffe, triCode, triId, numRC, numRC2, raisonSociale, nom, prenom, nomUsage, sigle, dateNaiss, lieuNaiss, sexe, nationalite, pays, naf, cj, capitalMontant, capitalDevise, capitalDevIso, dateImma, dateRad, dateRad*1 AS dateRadNum, capitalType, capitalCent, provisoires, flux, DATE(dateUpdate) AS jourUpdate',
"siren=$siren", false, MYSQL_ASSOC);
if (count($rep) > 0) {
$entrep = $rep[0];
if (isset($entrep['numGreffe'])) { //ETRANGER//
$tabRet['numGreffe'] = $entrep['numGreffe'];
$tabRet['numRC'] = $entrep['numRC2'];
if (( preg_match('/[A-Z]/i',substr($tabRet['AutreId'],2,2)) &&
!preg_match('/[A-Z]/i',substr($tabRet['AutreId'],0,2))
) || $tabRet['AutreId']=='')
if (( preg_match('/[A-Z]/i',substr($tabRet['AutreId'],2,2)) && !preg_match('/[A-Z]/i',substr($tabRet['AutreId'],0,2)) ) || $tabRet['AutreId']=='')
$tabRet['AutreId'] = $etabG['NumRC2'];
$tabRet['Tribunal'] = $entrep['triCode'];
if (strtoupper(trim($entrep['raisonSociale']))<>strtoupper(trim($tabRet['Nom'])))
@ -3446,7 +3434,7 @@ class MInsee
$tabRet['SituationJuridique']='RR'; // On signal que l'entreprise est radié du RCS
}
/** Spécificité EIRL **/
// Spécificité EIRL
if ($fjInpi==1000) {
$rep=$this->iDb->select('jo.rncs_eirl',
'denomination, activite',
@ -3455,12 +3443,9 @@ class MInsee
$tabRet['Activite']=$entrep['activite'];
}
/** Informations sur l'établissement au RNCS **/
// Informations sur l'établissement au RNCS
$rep = $this->iDb->select('jo.rncs_etab',
'id, siege, actif, enseigne, nomCommercial,
adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie,
cp, commune, adrComp, adresse1, adresse2, adresse3,
naf, dateFermeture, flux, dateInsert, DATE(dateUpdate) AS jourUpdate',
'id, siege, actif, enseigne, nomCommercial, adrNumVoie, adrIndRep, adrLibVoie, adrTypeVoie, adrVoie, cp, commune, adrComp, adresse1, adresse2, adresse3, naf, dateFermeture, flux, dateInsert, DATE(dateUpdate) AS jourUpdate',
"siren=$siren AND nic=$nic", false, MYSQL_ASSOC);
$entrep = $rep[0];
if (isset($entrep['id'])) {
@ -3483,35 +3468,24 @@ class MInsee
$tabRet['AdresseRue'] = $entrep['adrVoie'];
$tabRet['CP'] = $entrep['cp'];
$tabRet['Ville'] = $entrep['commune'];
/* 'Siren'=>$etab['siren'],
'Nic'=>$etab['nic'],
*/
}
}
$timer['infosRNCS']=microtime(true);
} elseif ($siren>1000) {
/**
** Recherche au RM
**/
$rep=$this->iDb->select('jo.artisanat', 'siren, actif, numRM, denomination, sigle, nomCommercial, enseigne, fj, effectif, aprm, debutActivite, activite, adresse, cp, ville, cessation, radiation, nom,prenom,nomUsage,dateNaiss,lieuNaiss,qualite,qualif,dateQualif,dateFctDeb,dateFctFin,DATE(dateUpdate) AS jourUpdate, DATE(dateInsert) AS dateInsert', "siren=$siren", false, MYSQL_ASSOC);
// Recherche au RM
$rep = $this->iDb->select('jo.artisanat',
'siren, actif, numRM, denomination, sigle, nomCommercial, enseigne, fj, effectif, aprm, debutActivite, activite, adresse, cp, ville, cessation, radiation, nom,prenom,nomUsage,dateNaiss,lieuNaiss,qualite,qualif,dateQualif,dateFctDeb,dateFctFin,DATE(dateUpdate) AS jourUpdate, DATE(dateInsert) AS dateInsert',
"siren=$siren", false, MYSQL_ASSOC);
if (count($rep) > 0) {
$entrep = $rep[0];
if (isset($entrep['numRM'])) {
$tabRet['AutreId'] = $entrep['numRM'];
/** @todo Traiter ou non les zones :
* - denomination, fj,effectif,adresse,cp,ville,
* - cessation, dateQualif,dateFctDeb,dateFctFin
* Transformer les FJ en CJ dans la table
* Ajouter les fonctions des dir dans la table
* Ne pas prendre les supprimer dans la construction des index !
*/
if ($tabRet['Activite']=='') $tabRet['Activite']=$entrep['activite'];
if ($tabRet['APRM']=='') {
$tabRet['APRM']=$entrep['aprm'];
$tabRet['APRM_Lib']=$this->getLibelleNafa($entrep['aprm']);
}
// $tabRet['Tribunal'] = $entrep['triCode'];
if (strtoupper(trim($entrep['nom'].' '.$entrep['prenom'].' '.$entrep['nomUsage']))<>strtoupper(trim($tabRet['Nom'])))
$tabRet['nomLong'] = strtoupper(trim($entrep['nom'].' '.$entrep['prenom'].' '.$entrep['nomUsage']));
if (strtoupper(trim($entrep['sigle']))<>strtoupper(trim($tabRet['Sigle'])))
@ -3562,6 +3536,8 @@ class MInsee
$tabRet['enseigneLong']=$entrep['enseigne'];
}
}
}
}
if ($tabRet['dir1Genre']=='M' || $tabRet['dir1Genre']=='F') {
$tabRet['dir1Titre']='Personne physique';
@ -3570,7 +3546,7 @@ class MInsee
if ( $accesDist &&
// Département couvert par Infogreffe
$tabRet['Dept']<>57 && $tabRet['Dept']<>67 && $tabRet['Dept']<>68 && $tabRet['Dept']<>97 && $tabRet['Dept']<>98 && $tabRet['Dept']<>99 &&
!in_array($tabRet['Dept'], array(57, 67, 68, 97, 98, 99)) &&
// Forme Juridique présente au greffe
( $tabInsee['CJ']==1100 ||
$tabInsee['CJ']==1200 ||
@ -3594,10 +3570,7 @@ class MInsee
) {
if ( $this->debugtime ) {
$ligne=date('YmdHis').";$siren;MGreffes Avant";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MGreffes Avant\n", FILE_APPEND);
$tdeb=microtime(1);
}
@ -3607,10 +3580,7 @@ class MInsee
if($this->debugtime) {
$duree=round(microtime(1)-$tdeb,3);
$ligne=date('YmdHis').";$siren;MGreffes APRES ($duree s)";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;MGreffes APRES ($duree s)\n", FILE_APPEND);
}
if ($etabG) {
@ -3628,13 +3598,9 @@ class MInsee
$timer['infosInfogreffes']=microtime(true);
}
/**
* Si il n'y a aucun établissement actif et qu'on est radié au RCS :
* on part chercher la dernière annonce de Radiation au Bodacc
*/
// Si il n'y a aucun établissement actif et qu'on est radié au RCS : on part chercher la dernière annonce de Radiation au Bodacc
if (($nbEtab*1)==0 || (isset($entrep['numGreffe']) && $entrep['actif']==0 && $entrep['dateRadNum']==0)) {
$tabRad = $this->getAnnoncesLegales($siren, 0, 'R');
//@file_put_contents('/var/www/html/ws2/inseeDebug.log', print_r($tabRad, true));
if (count($tabRad)>0) {
// Il y a au moins une annonce de radiation au Bodacc
if ($tabRet['SituationJuridique']=='')
@ -3653,10 +3619,10 @@ class MInsee
$timer['infosRadiation']=microtime(true);
}
/**
* Eléments Financiers en provenance du dernier Bilan
*/
$rep=$this->iDb->select('jo.bilans', 'siren, dateExercice, dureeExercice, monnaie, typeBilan, unite, postes, dateProvPartenaire, dateInsert', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", true, MYSQL_ASSOC);
// Eléments Financiers en provenance du dernier Bilan
$rep = $this->iDb->select('jo.bilans',
'siren, dateExercice, dureeExercice, monnaie, typeBilan, unite, postes, dateProvPartenaire, dateInsert',
"siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", true, MYSQL_ASSOC);
if ( count($rep)>0 ) {
$entrep = $rep[0];
$tabRet['bilanAnnee'] = substr($entrep['dateExercice'],0,4);
@ -3701,7 +3667,7 @@ class MInsee
$tabRet['bilanPY'] = $tabBilan['PY'];
$tabRet['bilanQC'] = $tabBilan['QC'];
/** Tranche de CA Bilan Réel si TCA Insee ou Estimée < dernière clôture **/
// Tranche de CA Bilan Réel si TCA Insee ou Estimée < dernière clôture
if ($tabRet['AnneeTCA']<=$tabRet['bilanAnnee'] && $tabInsee['ACTIF']==1) {
$tabRet['TrancheCA']=$this->getTca($tabBilan['FL']);
$tabRet['TrancheCALib']=self::$tabTCA[$tabRet['TrancheCA']];
@ -3709,19 +3675,15 @@ class MInsee
$tabRet['AnneeTCA']=$tabRet['bilanAnnee'];
}
/** Contrôle de la cohérence du type d'exploitation **/
// Contrôle de la cohérence du type d'exploitation
if ($tabBilan['AH']>0 && // Je possède un fond commercial
$tabRet['TypeExploitation']<>2 && // et je ne suis pas Loueur d'un fond
$tabRet['TypeExploitation']<>3 && // et je ne suis pas Prestataire de personnel
$tabRet['TypeExploitation']<>10) { // et je ne suis pas exploitant direct
/*@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Identite sur $siren : Type d'exploitation",
"Fonds commercial au dernier bilan .... ".$tabBilan['AH'].EOL.
"Ancien type d'exploitation ........... ".$tabRet['TypeExploitation'].EOL.
"Nouveau type d'exploitation .......... 10 (exploitation directe)".EOL.print_r($tabBilan,true));*/
$tabRet['TypeExploitation']=10;
}
/** Controle de cohérence du capital car parfois absent en Alsace Moselle au RNCS **/
// Controle de cohérence du capital car parfois absent en Alsace Moselle au RNCS
if ($tabRet['FJ']>2000 && $tabRet['Capital']==0 && $tabRet['CapitalDev']=='') {
$tabRet['Capital']=$tabRet['bilanDA'];
$tabRet['CapitalDev']=$tabRet['bilanDevise'];
@ -3733,22 +3695,18 @@ class MInsee
$tabRet['bilanFLestime']=$caEstime;
}
/* CA Estimé si aucune info Bilan au TCA Insee */
$tabRet['TribunalLib'] = $this->iBodacc->getTribunalNom($tabRet['Tribunal']);
if($this->debugtime) {
$duree=round(microtime(1)-$tdebIni,3);
$ligne=date('YmdHis').";$siren;getIdentiteEntreprise Fin ($duree s) ===";
$fp=fopen(LOG_PATH.'/accesDistant.log', 'a');
fwrite($fp,$ligne.EOL);
fclose($fp);
file_put_contents(LOG_PATH.'/accesDistant.log', date('YmdHis').";$siren;getIdentiteEntreprise Fin ($duree s) ===\n", FILE_APPEND);
}
/** Si on n'a trouvé aucune activité, on prend le libellé de l'activité pages Jaunes **/
// Si on n'a trouvé aucune activité, on prend le libellé de l'activité pages Jaunes
if ($tabRet['Activite']=='' && $activitePJ_An8<>'')
$tabRet['Activite']=$activitePJ_An8;
/** Numero de Registre du métier si nécessaire **/
// Numero de Registre du métier si nécessaire
if ( ($tabRet['FJ']==1100 || $tabRet['FJ']==1300 || $tabRet['FJ']==11 || $tabRet['FJ']==13 || $tabInsee['APRM']<>'') &&
($tabRet['Dept']=='2A' || $tabRet['Dept']=='2B' || $tabRet['Dept']<98) ) {
// Artisan Commerçant OU Artisan en FRANCE
@ -3758,17 +3716,20 @@ class MInsee
elseif ($tabRet['Dept']==97) $tabRet['NumRM'].=substr($tabRet['codeCommune'],0,1);
}
/** Recherche des infos boursières **/
// Recherche des infos boursières
$iBourse = new MBourse($siren, $this->iDb);
$bourse = $iBourse->getInfosBourse($siren);
$tabRet['Bourse']=array('placeCotation'=>$bourse['placeCotation'],
$tabRet['Bourse'] = array(
'placeCotation' => $bourse['placeCotation'],
'nombreTitres' => $bourse['nombreTitres'],
'capitalisation' => $bourse['close']*$bourse['nombreTitres'],
'derCoursDate' => $bourse['date'],
'derCoursCloture'=>$bourse['close']);
'derCoursCloture' => $bourse['close']
);
$timer['infosBoursieres']=microtime(true);
}
/** Date de dernière mise à jour **/
// Date de dernière mise à jour
$lastMaj=str_replace('-','',$tabRet['DateMajINSEE'])*1;
if (str_replace('-','',$tabRet['DateMajRCS'])*1>$lastMaj)
$lastMaj=str_replace('-','',$tabRet['DateMajRCS'])*1;