815 lines
36 KiB
PHP
815 lines
36 KiB
PHP
|
<?
|
||
|
|
||
|
class MLiens {
|
||
|
|
||
|
public $siren=0;
|
||
|
|
||
|
private $tabChars=array('é'=>'é', 'ç'=>'ç','è'=>'è','à '=>'à');
|
||
|
|
||
|
private static $tabFct=array( 'ADM'=>'Administrateur',
|
||
|
'ASS'=>'Associé',
|
||
|
'COG'=>'Co-gérant',
|
||
|
'CON'=>'Contrôleur de gestion',
|
||
|
'DID'=>'Directeur Général Délégué',
|
||
|
'DIR'=>'Directeur',
|
||
|
'GER'=>'Gérant',
|
||
|
'PCS'=>'Président du Conseil de Surveillance',
|
||
|
'PDG'=>'Président Directeur Général',
|
||
|
'PP'=>'Personne Physique',
|
||
|
'PRD'=>'Président du directoire',
|
||
|
'PRE'=>'Président du Conseil d\'Administration',
|
||
|
'VIC'=>'Vice président du CA ou Surv.',
|
||
|
);
|
||
|
|
||
|
private $tabSources=array( 0=>'Presse', // Old liens
|
||
|
1000=>'Presse', // 4 ?
|
||
|
1500=>'Actes', // Fedaso
|
||
|
1600=>'Actes', // S&D : 69642, Associé-Gérant
|
||
|
1700=>'SED',
|
||
|
1800=>'Collecte', // Infolégales
|
||
|
1900=>'Collecte');
|
||
|
|
||
|
|
||
|
public function __construct($siren) {
|
||
|
$this->siren=$siren;
|
||
|
}
|
||
|
|
||
|
/** Retourne les actionnaires du siren
|
||
|
** @param int Siren de l'entreprise
|
||
|
** @return array Tableau d'actionnaires
|
||
|
**/
|
||
|
public function getActionnaires($siren=false, $actifsUniquement=true) {
|
||
|
if (!$siren) $siren=$this->siren;
|
||
|
$iInsee=new MInsee();
|
||
|
$iDb=new WDB();
|
||
|
$tabIdentite=$iInsee->getIdentiteLight($siren);
|
||
|
$nic=$tabIdentite['Nic'];
|
||
|
$tab=$iDb->select('liens',
|
||
|
'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, actif, source, dateLien*1 AS dateLien, DATE(dateInsert)*1 AS dateInsert, DATE(dateUpdate)*1 AS dateUpdate',
|
||
|
"Siren1='$siren' AND ActionPart=1 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC);
|
||
|
//$tabActiDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='AC' ORDER BY PourcentageDetenu DESC");
|
||
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug $siren ($actifsUniquement)", print_r($tab,true)) ;
|
||
|
$sourcePre=$unique=false;
|
||
|
$tabRet=array();
|
||
|
foreach ($tab as $i=>$lien) {
|
||
|
if ($lien['source']>=1700 && $lien['source']<=1800) $source=1700;
|
||
|
//if ($lien['source']>=1700 && $lien['source']<=1720) $source=1700;
|
||
|
else $source=$lien['source']*1;
|
||
|
if ($i>0 && $sourcePre<>$source) break;
|
||
|
/*if ($actifsUniquement && $lien['actif']==0) continue;
|
||
|
else
|
||
|
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
|
||
|
'MajMin' => $lien['MajMin'],
|
||
|
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
|
||
|
'Pays' => $lien['libPays'],
|
||
|
'Siren' => $lien['Siren2'],
|
||
|
'Actif' => $lien['actif']);*/
|
||
|
if ($actifsUniquement && $lien['actif']==0) continue;
|
||
|
else {
|
||
|
$codPays=strtoupper($lien['Pays']);
|
||
|
$libPays='';
|
||
|
if ($codPays<>'' && $codPays<>'FRA') {
|
||
|
$tmp=$iDb->select('tabPays', 'libPays', "codPays3='$codPays'", true, MYSQL_ASSOC);
|
||
|
$libPays=$tmp[0]['libPays'];
|
||
|
}
|
||
|
if ($lien['MajMin']=='F') $majMin='A';
|
||
|
else $majMin=$lien['MajMin'];
|
||
|
switch ($tabIdentite['FJ']*1) {
|
||
|
case 5488: // Entreprise Unipersonnelle à Responsabilité Limitée
|
||
|
case 5498: // SARL unipersonnelle
|
||
|
case 5720: // Société par actions simplifiée à associé unique
|
||
|
$lien['Pmin']=100;
|
||
|
$unique=true;
|
||
|
break;
|
||
|
default:
|
||
|
break;
|
||
|
}
|
||
|
$dateMaj=$lien['dateLien'];
|
||
|
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
|
||
|
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
|
||
|
$tabRet[]=array( 'Pmin' => number_format($lien['Pmin']*1,2,',',''),
|
||
|
'PminNum' => $lien['Pmin']*1,
|
||
|
'MajMin' => $majMin,
|
||
|
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
|
||
|
'Pays' => $libPays,
|
||
|
'Siren' => $lien['Siren2'],
|
||
|
'Actif' => $lien['actif'],
|
||
|
'Source' => $this->tabSources[$source],
|
||
|
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $lien['dateLien']),
|
||
|
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $dateMaj));
|
||
|
if ($unique) break;
|
||
|
}
|
||
|
$sourcePre=$source;
|
||
|
}
|
||
|
|
||
|
if (count($tabRet)==0) {
|
||
|
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
|
||
|
case 7172: // Service déconcentré de l'État à compétence (inter) départementale
|
||
|
case 7179: // (Autre) Service déconcentré de l'État à compétence territoriale
|
||
|
case 7381: // Organisme consulaire
|
||
|
/** Ces établissements sont dans le fichier des tribunaux **/
|
||
|
$tmp=$iDb->select('tribunaux', 'triSiret, triNom, dateUpdate', "triId=(SELECT triIdSup FROM tribunaux WHERE triSiret LIKE '$siren%' LIMIT 1)", true, MYSQL_ASSOC);
|
||
|
$tabCC=$tmp[0];
|
||
|
//$sirenCC=substr(,0,9);
|
||
|
//if ($siren*1<>$sirenCC*1)
|
||
|
if ($tabCC['triSiret']*1<>0) //$siren*1<>$sirenCC*1)
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => $tabCC['triNom'],
|
||
|
'Pays' => '',
|
||
|
'Siren' => $tabCC['triSiret'],
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
|
||
|
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
|
||
|
);
|
||
|
case 7111: // Autorité constitutionnelle
|
||
|
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)
|
||
|
case 7225: // Territoire d'Outre-mer
|
||
|
case 7229: // (Autre) Collectivité territoriale
|
||
|
// case 7312: // Commune associée
|
||
|
// case 7313: // Section de commune
|
||
|
// case 7314: // Ensemble urbain
|
||
|
case 7230: // Région
|
||
|
case 7321: // Association syndicale autorisée
|
||
|
case 7322: // Association foncière urbaine
|
||
|
case 7323: // Association foncière de remembrement
|
||
|
case 7331: // Établissement public local d'enseignement
|
||
|
// case 7341: // Secteur de commune
|
||
|
// case 7342: // District urbain
|
||
|
// case 7343: // Communauté urbaine
|
||
|
// case 7345: // Syndicat intercommunal à vocation multiple (SIVOM)
|
||
|
// case 7346: // Communauté de communes
|
||
|
// case 7347: // Communauté de villes
|
||
|
// 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
|
||
|
// case 7353: // Syndicat intercommunal à vocation unique (SIVU)
|
||
|
// case 7354: // Syndicat mixte communal
|
||
|
// case 7355: // Autre syndicat mixte
|
||
|
case 7356: // Commission syndicale pour la gestion des biens indivis des communes
|
||
|
// case 7361: // Centre communal d'action sociale
|
||
|
// case 7362: // Caisse des écoles
|
||
|
// case 7363: // Caisse de crédit municipal
|
||
|
case 7364: // Établissement d'hospitalisation
|
||
|
case 7365: // Syndicat inter hospitalier
|
||
|
case 7366: // Établissement public local social et médico-social
|
||
|
case 7371: // Office public d'habitation à loyer modéré (OPHLM)
|
||
|
case 7372: // Service départemental d'incendie
|
||
|
case 7373: // Établissement public local culturel
|
||
|
case 7378: // Régie d'une collectivité locale à caractère administratif
|
||
|
case 7379: // (Autre) Établissement public administratif local
|
||
|
case 7382: // Établissement public national ayant fonction d'administration centrale
|
||
|
case 7383: // Établissement public national à caractère scientifique culturel et professionnel
|
||
|
case 7384: // Autre établissement public national d'enseignement
|
||
|
case 7385: // Autre établissement public national administratif à compétence territoriale limitée
|
||
|
case 7389: // Établissement public national à caractère administratif
|
||
|
case 7410: // Groupement d'intérêt public (GIP)
|
||
|
case 7430: // Établissement public des cultes d'Alsace-Lorraine
|
||
|
case 7450: // Cercle et foyer dans les armées
|
||
|
case 7490: // Autre personne morale de droit administratif
|
||
|
if (count($tabRet)==0)
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => 'ETAT FRANCAIS',
|
||
|
'Pays' => '',
|
||
|
'Siren' => 0,
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => date('Y-m-').'01',
|
||
|
'DateMaj' => date('Y-m-').'01',
|
||
|
);
|
||
|
break;
|
||
|
case 7210: // Communes
|
||
|
// Siren Commune du Lamentin : 219 722 139
|
||
|
// ~~~ ~~~~
|
||
|
$dept=substr($siren,2,2);
|
||
|
$comm=substr($siren,5,3);
|
||
|
$codeInsee=$dept.$comm;
|
||
|
if ($dept<>'20') // Corse
|
||
|
$strCodeInsee="codeInsee='$codeInsee'";
|
||
|
else
|
||
|
$strCodeInsee="codeInsee IN ('2A$comm','2B$comm','20$comm') ";
|
||
|
|
||
|
$tmp=$iDb->select('insee.insee_tabVillesEpci', 'typEPCI, codEPCI, libEPCI, libCommune', $strCodeInsee, true, MYSQL_ASSOC);
|
||
|
$tabCC=$tmp[0];
|
||
|
switch($tabCC['typEPCI']) {
|
||
|
case 'CA': $typeCC="Communauté d'agglomérations"; break; // CJ=7348
|
||
|
case 'CC': $typeCC="Communauté de communes"; break; // CJ=7346
|
||
|
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' => '+',
|
||
|
'RaisonSociale' => strtoupper($typeCC.' '.preg_replace('/^(CA|CC|CU|SAN) /Uis', '',$tabCC['libEPCI'])),
|
||
|
'Pays' => '',
|
||
|
'Siren' => $tabCC['codEPCI'],
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => date('Y-m-').'01',
|
||
|
'DateMaj' => date('Y-m-').'01',
|
||
|
);
|
||
|
break;
|
||
|
case 7220: // Département
|
||
|
// Siren du 29 22 290001 1 => Région 233 500 016
|
||
|
// Siren du 28 22 280001 3 => Région 234 500 023
|
||
|
// 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);
|
||
|
if ($dept*1>95)
|
||
|
$dept=substr($siren,2,3);
|
||
|
$tmp=$iDb->select('insee.departements d, insee.insee_tabRegions r',
|
||
|
'd.codeRegionInsee, r.REGION, r.CHEFLIEU, r.NC',
|
||
|
"numdep='$dept' AND d.codeRegionInsee=r.REGION", true, MYSQL_ASSOC);
|
||
|
$tabCC=$tmp[0];
|
||
|
$dept3=substr($tabCC['CHEFLIEU'],0,2).'0';
|
||
|
if ($dept3*1>960)
|
||
|
$dept3=substr($tabCC['CHEFLIEU'],0,3);
|
||
|
for ($iSir=0; $iSir<100; $iSir++) {
|
||
|
if ($iSir<10) $iSir2='0'.$iSir;
|
||
|
else $iSir2=$iSir;
|
||
|
// 23 350 00 16 => Bon
|
||
|
// 23 350 00 00 => Mauvais
|
||
|
$sirenCom='23'.$dept3.'00'.$iSir2;
|
||
|
if ($iInsee->valideSiren($sirenCom)) {
|
||
|
if ($iInsee->sirenExiste($sirenCom)) {
|
||
|
// @sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement) $sirenCom existe !", '') ;
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => 'REGION '.strtoupper($tabCC['NC']),
|
||
|
'Pays' => '',
|
||
|
'Siren' => $sirenCom,
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => date('Y-m-').'01',
|
||
|
'DateMaj' => date('Y-m-').'01',
|
||
|
);
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (count($tabRet)==0) {
|
||
|
$fj=$tabIdentite['FJ']*1;
|
||
|
if ($fj==5498) $strFonctions=",'Gérant'";
|
||
|
else $strFonctions='';
|
||
|
$adresse=end(explode(' ', $tabIdentite['AdresseVoie']));
|
||
|
$codePostal=$tabIdentite['CP'];
|
||
|
$tab=$iDb->select('rncs_dirigeants', 'typeDir, raisonSociale, dirSiren, dirRS, civilite, nom, prenom, actif, naissance_nom, naissance_date, naissance_lieu, nat, adresse, fonction_code, fonction_lib, source, cinf, dateInsert, dateUpdate',
|
||
|
"siren='$siren' AND fonction_lib IN ('Associé-gérant' $strFonctions)", true, MYSQL_ASSOC);
|
||
|
$majMin='+';
|
||
|
if (count($tab)>1) $majMin='-';
|
||
|
foreach ($tab as $i=>$lien) {
|
||
|
if ($actifsUniquement && $lien['actif']==0) continue;
|
||
|
else {
|
||
|
$ville=$siege=$actif='';
|
||
|
$deb=$siren2=0;
|
||
|
$nbRep=$maxRep=200;
|
||
|
$pertinence=$avecSiren=true;
|
||
|
|
||
|
$etabs=$iInsee->rechercheEtab($lien['nom'].' '.$lien['prenom'], $adresse, $codePostal, $ville, $siege, $actif, $deb, $nbRep, $maxRep, $pertinence, $avecSiren);
|
||
|
$tabSiren=array();
|
||
|
foreach ($etabs['reponses'] as $etab) {
|
||
|
$tabTmp=preg_split('/( +|\/|\*)/', $etab['Nom']);
|
||
|
$rsEtab=$tabTmp[0];
|
||
|
$tabTmp=preg_split('/( +|\/|\*)/', $lien['nom']);
|
||
|
$rsLien=$tabTmp[0];
|
||
|
if ($etab['FJ']==1800 && $rsEtab==$rsLien)
|
||
|
$tabSiren[]=$etab['Siren'];
|
||
|
}
|
||
|
/*
|
||
|
'Nom'=>prepareString(strtr($etab['Nom'],'/*',' ')),
|
||
|
'Nom2'=>prepareString($etab['Nom2']),
|
||
|
'Sigle'=>prepareString($etab['Sigle']),
|
||
|
'Enseigne'=>prepareString($etab['Enseigne']),
|
||
|
'Adresse'=>prepareString($etab['Adresse']),
|
||
|
'CP'=>$etab['CP'],
|
||
|
'Ville'=>prepareString($etab['Ville']),
|
||
|
'Tel'=>$etab['Tel'],
|
||
|
'Fax'=>$etab['Fax'],
|
||
|
'Nic'=>$etab['Nic'],
|
||
|
'Actif'=>$etab['Actif'],
|
||
|
'NafEtab'=>$etab['NafEtab'], // Etablissement
|
||
|
'NafEtabLib'=>prepareString($etab['NafEtabLib']),
|
||
|
'NafEnt'=>$etab['NafEnt'], // Entreprise
|
||
|
'NafEntLib'=>prepareString($etab['NafEntLib']),*/
|
||
|
$tabSiren2=array_unique($tabSiren);
|
||
|
if (count($tabSiren2==1)) $siren2=end($tabSiren2);
|
||
|
else $siren2=$lien['dirSiren'];
|
||
|
if ($lien['civilite']=='MME') $genre='Madame';
|
||
|
elseif ($lien['civilite']=='M') $genre='Monsieur';
|
||
|
else $genre='';
|
||
|
$dateMaj=$lien['dateInsert'];
|
||
|
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
|
||
|
$tabRet[]=array( 'Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => $majMin,
|
||
|
'RaisonSociale' => trim(preg_replace('/ +/', ' ', $lien['dirRS'].' '.$genre.' '.$lien['nom'].' '.$lien['prenom'])),
|
||
|
'Pays' => '',
|
||
|
'Siren' => $siren2,
|
||
|
'Actif' => $lien['actif'],
|
||
|
'Source' => $this->tabSources[1600],
|
||
|
'DateLien' => Wdate::dateT('Y-m-d','Y-m-d', $dateMaj),
|
||
|
'DateMaj' => Wdate::dateT('Y-m-d','Y-m-d', $dateMaj),
|
||
|
);
|
||
|
if ($unique) break;
|
||
|
/**/
|
||
|
if ($siren2*1>0) {
|
||
|
/** Insertion du lien en base **/
|
||
|
$nom=$pays=$dateMAJ='';
|
||
|
$ppPm='P';
|
||
|
$pct=0;
|
||
|
$entrep2=$iInsee->getIdentiteLight($siren);
|
||
|
$nom2=$entrep2['Nom'];
|
||
|
$pays2='FRA';
|
||
|
if (substr($entrep2['FJ'],0,1)*1<>1) $ppPm='M';
|
||
|
$entrep=$iInsee->getIdentiteLight($siren2);
|
||
|
$nom=strtr($entrep['Nom'],'/*',' ');
|
||
|
$pays='FRA';
|
||
|
$tabUpdate=array( 'Pmin'=> $pct,
|
||
|
'Pmax'=> $pct,
|
||
|
'MajMin'=> $majMin,
|
||
|
'PpPm'=> $ppPm,
|
||
|
'dateLien'=> $dateMAJ,
|
||
|
);
|
||
|
/* Insertion de l'actionnaire */
|
||
|
$tabInsert1=array_merge($tabUpdate, array( 'ActionPart'=>1),
|
||
|
array( 'Siren1'=> $siren,
|
||
|
'Siren2'=> $siren2,
|
||
|
'RaisonSociale'=> $nom,
|
||
|
'Pays'=> $pays,
|
||
|
'actif'=> 1,
|
||
|
'source'=> 1600,
|
||
|
'dateInsert'=> date('YmdHis')));
|
||
|
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))");
|
||
|
if ($res[0][0]>0) {
|
||
|
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>1)), "siren=$siren AND (Siren2=$siren2 OR (RaisonSociale='".addslashes($nom)."' AND Pays='$pays'))", true))
|
||
|
$errMaj=1016166;
|
||
|
} else {
|
||
|
if (!$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,
|
||
|
'Siren2'=> $siren,
|
||
|
'RaisonSociale'=> $nom2,
|
||
|
'Pays'=> $pays2,
|
||
|
'actif'=> 1,
|
||
|
'source'=> 1600,
|
||
|
'dateInsert'=> date('YmdHis')));
|
||
|
$res=$iDb->select('liens', 'count(*)', "Siren1=$siren2 AND (Siren2=$siren OR (RaisonSociale='$nom2' AND Pays='$pays2'))");
|
||
|
if ($res[0][0]>0) {
|
||
|
if (!$iDb->update('liens', array_merge($tabUpdate,array('ActionPart'=>2)), "siren=$siren2 AND (Siren2=$siren OR (RaisonSociale='".addslashes($nom2)."' AND Pays='$pays2'))", true))
|
||
|
$errMaj=1016168;
|
||
|
} else {
|
||
|
if (!$iDb->insert('liens', $tabInsert2, true))
|
||
|
$errMaj=1016169;
|
||
|
}
|
||
|
|
||
|
/** Insertion du dirigeant pour l'actionnaire en base **/
|
||
|
$dirs=$iDb->select('rncs_dirigeants','siren', "siren=$siren2", true, MYSQL_ASSOC);
|
||
|
if (count($dirs)==0) {
|
||
|
$iDb->insert('rncs_dirigeants', array( 'siren' => $siren2,
|
||
|
'raisonSociale' => $nom,
|
||
|
'civilite' => $lien['civilite'],
|
||
|
'typeDir' => $lien['typeDir'],
|
||
|
'dirRS' => $siren2,
|
||
|
'nom' => $lien['nom'],
|
||
|
'prenom' => $lien['prenom'],
|
||
|
'naissance_nom' => $lien['naissance_nom'],
|
||
|
'naissance_date'=> $lien['naissance_date'],
|
||
|
'naissance_lieu'=> $lien['naissance_lieu'],
|
||
|
'nat' => $lien['nat'],
|
||
|
'fonction_code' => 0,
|
||
|
'fonction_lib' => 'Personne Physique',
|
||
|
'actif' => 1,
|
||
|
'dateInsert' => date('YmdHis'),
|
||
|
'source' => 'lag', // Lien Associé Gérant
|
||
|
'cinf' => $lien['cinf'],
|
||
|
), true);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
if (count($tabRet)==0) {
|
||
|
$tabNotice=$iInsee->getInfosNotice($siren, $nic);
|
||
|
if ($tabNotice['insRECME']*1>0) {
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => 'ETAT FRANCAIS',
|
||
|
'Pays' => '',
|
||
|
'Siren' => 0,
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => date('Y-m-').'01',
|
||
|
'DateMaj' => date('Y-m-').'01',
|
||
|
);
|
||
|
}
|
||
|
}
|
||
|
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Fin $siren ($actifsUniquement)", print_r($tabRet,true)) ;
|
||
|
return $tabRet;
|
||
|
}
|
||
|
|
||
|
/** Retourne les participations du siren
|
||
|
** @param int Siren de l'entreprise
|
||
|
** @return array Tableau de participations
|
||
|
**/
|
||
|
public function getParticipations($siren=false, $actifsUniquement=true) {
|
||
|
if (!$siren) $siren=$this->siren;
|
||
|
$iDb=new WDB();
|
||
|
$tab=$iDb->select('liens LEFT JOIN tabPays ON codPays3=Pays', 'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source', "Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
|
||
|
// $tabPartDB=mysql_select('dbo_liens_fi', 'SirenEntite, NomAdresse, PourcentageDetenu, Ville, Lien, MAJLien, MAJImport', "Siren='$siren' AND CodeLien='PA' ORDER BY PourcentageDetenu DESC");
|
||
|
$tabRet=array();
|
||
|
$sourcePre=false;
|
||
|
foreach ($tab as $i=>$lien) {
|
||
|
if ($lien['source']>=1700 && $lien['source']<=1800) $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'];
|
||
|
if ($i>0 && $sourcePre<>$source) break;
|
||
|
if ($actifsUniquement && $lien['actif']==0) continue;
|
||
|
else
|
||
|
$tabRet[]=array('Pmin' => number_format($lien['Pmin']*1,2,',',''),
|
||
|
'PminNum' => $lien['Pmin']*1,
|
||
|
'MajMin' => $lien['MajMin'],
|
||
|
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
|
||
|
'Pays' => $lien['libPays'],
|
||
|
'Siren' => $lien['Siren2'],
|
||
|
'Actif' => $lien['actif'],
|
||
|
'Source' => $this->tabSources[$source],
|
||
|
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $lien['dateLien']),
|
||
|
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $dateMaj),
|
||
|
);
|
||
|
$sourcePre=$source;
|
||
|
}
|
||
|
|
||
|
// if (count($tabRet)==0) {
|
||
|
$iInsee=new MInsee();
|
||
|
$tabTmp=$iInsee->getIdentiteLight($siren);
|
||
|
switch ($tabTmp['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
|
||
|
case 7172: // Service déconcentré de l'État à compétence (inter) départementale
|
||
|
case 7179: // (Autre) Service déconcentré de l'État à compétence territoriale
|
||
|
case 7381: // Organisme consulaire
|
||
|
/** Ces établissements sont dans le fichier des tribunaux **/
|
||
|
$tmp=$iDb->select('tribunaux t1', 't1.triSiret, t1.triNom', "t1.triIdSup=(SELECT t2.triId FROM tribunaux t2 WHERE t2.triSiret LIKE '$siren%' AND t2.triId<>t1.triId LIMIT 1)", true, MYSQL_ASSOC);
|
||
|
foreach ($tmp as $tabCC) {
|
||
|
// $sirenCC=substr($tabCC['triSiret'],0,9);
|
||
|
if ($tabCC['triSiret']*1<>0) //$siren*1<>$sirenCC*1)
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => $tabCC['triNom'],
|
||
|
'Pays' => '',
|
||
|
'Siren' => $tabCC['triSiret'],
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
|
||
|
'DateMaj' => Wdate::dateT('Ymd','Y-m-d', $tabCC['dateUpdate']),
|
||
|
);
|
||
|
}
|
||
|
break;
|
||
|
case 7346: // Communaute de communes
|
||
|
case 7348: // Communaute d'agglomeration
|
||
|
//case 'CC': $typeCC="Communauté de communes"; break; // CJ=73
|
||
|
//case 'CU': $typeCC="Communauté urbaine"; break; // CJ=73
|
||
|
//case 'SAN': $typeCC="Syndicat d'agglomérations nouvelles"; break; // CJ=73
|
||
|
$tmp=$iDb->select('insee.insee_tabVillesEpci', 'typEPCI, libEPCI, codeInsee, libCommune', "codEPCI='$siren'", true, MYSQL_ASSOC);
|
||
|
foreach ($tmp as $tabCom) {
|
||
|
$dept=substr($tabCom['codeInsee'],0,2);
|
||
|
if ($dept=='2A' || $dept=='2B' || $dept=='20')
|
||
|
$dept='200';
|
||
|
elseif ($dept*1>95)
|
||
|
$dept=substr($tabCom['codeInsee'],0,3);
|
||
|
else
|
||
|
$dept=$dept.'0';
|
||
|
$comm=substr($tabCom['codeInsee'],2,3);
|
||
|
for ($iSir=0; $iSir<10; $iSir++) {
|
||
|
$sirenCom='21'.$dept.$comm.$iSir;
|
||
|
if ($iInsee->valideSiren($sirenCom)) break;
|
||
|
}
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => 'COMMUNE DE '.strtoupper($tabCom['libCommune']),
|
||
|
'Pays' => '',
|
||
|
'Siren' => $sirenCom,
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => date('Y-m-').'01',
|
||
|
'DateMaj' => date('Y-m-').'01',
|
||
|
);
|
||
|
}
|
||
|
break;
|
||
|
case 7230: // Région
|
||
|
// Siren du 29 22 290001 1 => Région 233 500 016
|
||
|
// Siren du 28 22 280001 3 => Région 234 500 023
|
||
|
// 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';
|
||
|
$deptF=$dept.'999';
|
||
|
if ($dept*1>95) {
|
||
|
$dept=substr($siren,2,3);
|
||
|
$deptD=$dept.'00';
|
||
|
$deptF=$dept.'99';
|
||
|
}
|
||
|
$tmp=$iDb->select('insee.departements d, insee.insee_tabRegions r',
|
||
|
'd.numDep, d.libdep, d.codeRegionInsee, r.REGION, r.CHEFLIEU, r.NC',
|
||
|
"r.CHEFLIEU BETWEEN '$deptD' AND '$deptF' AND d.codeRegionInsee=r.REGION", true, MYSQL_ASSOC);
|
||
|
foreach ($tmp as $tabCom) {
|
||
|
$dept=$tabCom['numDep'];
|
||
|
if ($dept>960) $dept3=$dept;
|
||
|
else $dept3=$dept.'0';
|
||
|
for ($iSir=0; $iSir<10; $iSir++) {
|
||
|
$sirenCom='22'.$dept3.'001'.$iSir;
|
||
|
if ($iInsee->valideSiren($sirenCom)) break;
|
||
|
}
|
||
|
$tabRet[]=array('Pmin' => 0,
|
||
|
'PminNum' => 0,
|
||
|
'MajMin' => '+',
|
||
|
'RaisonSociale' => 'DEPARTEMENT '.strtoupper($tabCom['libdep']),
|
||
|
'Pays' => '',
|
||
|
'Siren' => $sirenCom,
|
||
|
'Actif' => 1,
|
||
|
'Source' => $this->tabSources[1800],
|
||
|
'DateLien' => date('Y-m-').'01',
|
||
|
'DateMaj' => date('Y-m-').'01',
|
||
|
);
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
// }
|
||
|
|
||
|
return $tabRet;
|
||
|
}
|
||
|
|
||
|
public function getLiens($siren=false) {
|
||
|
$tabA=$this->getActionnaires($siren);
|
||
|
$tabP=$this->getParticipations($siren);
|
||
|
return array( 'actionnaires'=>$tabA,
|
||
|
'participations'=>$tabP);
|
||
|
}
|
||
|
|
||
|
|
||
|
private function getLiensPartenaires($siren=false) {
|
||
|
if (!$siren) $siren=$this->siren;
|
||
|
/** Le partenaire pour les liens Actionnaires/Participations est infobilan.decideur.com
|
||
|
**/
|
||
|
$urlRacine='http://infobilan.decideur.com/';
|
||
|
$tabPost=array( 'choix'=>'1',
|
||
|
'pagePrecedente'=>'recherche_entreprise.html',
|
||
|
'nomsocRech'=>'',
|
||
|
'cpRech'=>'',
|
||
|
'villeRech'=>'',
|
||
|
'nomdirRech'=>'',
|
||
|
'predirRech'=>'',
|
||
|
'sirenRech'=>$this->siren,
|
||
|
'telRech'=>'',
|
||
|
'Rechercher.x'=>round(79),
|
||
|
'Rechercher.y'=>round(19),);
|
||
|
$url=$urlRacine.'liste_result.html';
|
||
|
$referer=$urlRacine.'recherche_entreprise.html';
|
||
|
$page=getUrl($url,'', $tabPost, $referer, false, 'infobilan.decideur.com');
|
||
|
$this->body=$page['body'];
|
||
|
$strCookie=$page['header']['Set-Cookie'];
|
||
|
$refererInfoD=$url;
|
||
|
|
||
|
if(preg_match_all('/<a href="choix_pdt\.html\?(.*)" class="tt1">(.*)<\/a><\/span><br>/i', $page['body'], $matches))
|
||
|
{
|
||
|
$urlInfoD=$urlRacine.'choix_pdt.html?'.$matches[1][0];
|
||
|
$page=getUrl($urlInfoD,$strCookie,'', $refererInfoD, false, 'infobilan.decideur.com');
|
||
|
$referer=$urlInfoD;
|
||
|
if ($this->nscrl==0) $this->nscrl=@getTextInHtml($url, 'nscrlP=', '=','&');
|
||
|
|
||
|
$url=$urlRacine.'fiche_ident.html';
|
||
|
$page=getUrl($url,$strCookie,'', $referer, false, 'infobilan.decideur.com');
|
||
|
$this->body=$page['body'];
|
||
|
|
||
|
if ($this->raisonSociale=='')
|
||
|
$this->raisonSociale=trim(@getTextInHtml($this->body, '<span class="libelle2">Société', ' :', '</span>'));
|
||
|
|
||
|
if ($this->adresse=='')
|
||
|
$this->adresse=trim(@getTextInHtml($this->body, '<span class="libelle2">Adresse</span> <strong>:', '</strong>', '</td>'));
|
||
|
|
||
|
if ($this->tel=='')
|
||
|
$this->tel=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Tél', '</span>', '<br>'));
|
||
|
if ($this->fax=='')
|
||
|
$this->fax=trim(@getTextInHtml($this->body, '<span class="libelle2">Fax</span>', ' :', '<br>'));
|
||
|
if ($this->web=='')
|
||
|
$this->web=trim(@getTextInHtml($this->body, '<span class="libelle2">Site Web</span>', '<a href="', '" target="_blank">'));
|
||
|
if ($this->mail=='')
|
||
|
$this->mail=trim(@getTextInHtml($this->body, '<span class="libelle2">E-mail</span>', '<a href="mailto:', '">'));
|
||
|
if ($this->naf=='')
|
||
|
$this->naf=trim(@getTextInHtml($this->body, '<span class="libelle2">Code NAF</span>', ' :', '</td>'));
|
||
|
|
||
|
if(preg_match('/<td valign="top"><span class="libelle2">Capital social<\/span> : (\d*)(.*)<br>/isU', $this->body, $matches)
|
||
|
&& ($this->capitalMontant=='' || $this->capitalDevise=='')) {
|
||
|
$this->capitalMontant=trim($matches[1]);
|
||
|
$this->capitalDevise=trim($matches[2]);
|
||
|
}
|
||
|
|
||
|
if ($this->fj=='')
|
||
|
$this->fj=trim(@getTextInHtml($this->body, '<span class="libelle2">Forme juridique</span>', ' :', '<br>'));
|
||
|
if ($this->nationalite=='')
|
||
|
$this->nationalite=trim(@getTextInHtml($this->body, '<span class="libelle2">Nationalité</span>', ' :', '</td>'));
|
||
|
if ($this->effectif=='')
|
||
|
$this->effectif=trim(@getTextInHtml($this->body, '<td valign="top"><span class="libelle2">Effectif</span>', ' :', '<br>'));
|
||
|
if ($this->activite=='')
|
||
|
$this->activite=trim(@getTextInHtml($this->body, '<span class="libelle2">Activité</span>', ' :', '<br>'));
|
||
|
|
||
|
/** Actionnaires **/
|
||
|
$strTmp=trim(@getTextInHtml($this->body, 'ACTIONNAIRES<br>', '</div></h1>', '<h1>'));
|
||
|
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> : (.*) %<br>(.*)<\/p>/isU', $strTmp, $matches)) {
|
||
|
foreach ($matches[1] as $i=>$nom) {
|
||
|
$this->tabAct[$i]['nom']=trim($nom);
|
||
|
$this->tabAct[$i]['pct']=trim($matches[2][$i]);
|
||
|
$this->tabAct[$i]['rcs']=trim(str_replace('RCS : ','',strip_tags($matches[3][$i])));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** Filiales **/
|
||
|
$strTmp=trim(@getTextInHtml($this->body, 'FILIALES<br>', '</div></h1>', '<h1>'));
|
||
|
if(preg_match_all('/<p><span class="libelle2">(.*)<\/span> - <span class="libelle2">Participation<\/span> :(.*)%<br>(.*)<\/p>/isU', $strTmp, $matches)) {
|
||
|
foreach ($matches[1] as $i=>$nom) {
|
||
|
$this->tabFil[$i]['nom']=trim($nom);
|
||
|
$this->tabFil[$i]['pct']=trim($matches[2][$i]);
|
||
|
$this->tabFil[$i]['rcs']=trim(str_replace('RCS :','',strip_tags($matches[3][$i])));
|
||
|
}
|
||
|
}
|
||
|
|
||
|
/** CA et Résultat **/
|
||
|
$strTmp=trim(@getTextInHtml($this->body, '<h1>PRINCIPAUX ELEMENTS FINANCIERS<br>', '</div></h1>', '</p>'));
|
||
|
if(preg_match('/<p><span class="libelle2">CA (.*)<\/span>(.*)<br>/isU', $strTmp, $matches)) {
|
||
|
$this->derExerciceAnnee=trim($matches[1]);
|
||
|
$this->derExerciceCA=trim(str_replace(':',' ', $matches[2]));
|
||
|
}
|
||
|
if(preg_match('/<span class="libelle2">Résultat(.*)<\/span>(.*)$/isU', $strTmp, $matches)) {
|
||
|
$this->derExerciceResultat=trim(str_replace(':',' ', $matches[2]));
|
||
|
}
|
||
|
|
||
|
/*
|
||
|
$infoBilan=print_r($page, true);
|
||
|
$fp=fopen('./infobilan.html', 'w');
|
||
|
fwrite($fp, $infoBilan);
|
||
|
fclose($fp);
|
||
|
*/
|
||
|
}
|
||
|
|
||
|
$tabA=$this->getActionnaires($siren);
|
||
|
$tabP=$this->getParticipations($siren);
|
||
|
return array( 'actionnaires'=>$tabA,
|
||
|
'participations'=>$tabP);
|
||
|
}
|
||
|
|
||
|
public function getMaisonMereFr($siren, $debug=false) {
|
||
|
$tabA=$this->getActionnaires($siren, true);
|
||
|
$majTrouve=false;
|
||
|
$iInsee=new MInsee();
|
||
|
foreach ($tabA as $i=>$lien) {
|
||
|
$sirenMere=$lien['Siren'];
|
||
|
$tabIdentiteA=$iInsee->getIdentiteLight($sirenMere);
|
||
|
if ($siren*1==$sirenMere*1) {
|
||
|
if ($debug) echo "D. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
|
||
|
return $siren;
|
||
|
}
|
||
|
elseif($sirenMere>100 && $lien['PminNum']>50) {
|
||
|
if ($debug) echo "A. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
|
||
|
$majTrouve=true;
|
||
|
return $this->getMaisonMereFr($sirenMere);
|
||
|
}
|
||
|
elseif($sirenMere>100 && $lien['MajMin']=='+' && !$majTrouve) {
|
||
|
if ($debug) echo "B. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
|
||
|
$majTrouve=true;
|
||
|
return $this->getMaisonMereFr($sirenMere);
|
||
|
}
|
||
|
elseif ($sirenMere<100) {
|
||
|
if ($debug) echo "C. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
|
||
|
return $siren;
|
||
|
}
|
||
|
else {
|
||
|
if ($debug) echo "E. $siren détenu à ".$lien['Pmin']." (".$lien['MajMin'].") par ".$tabIdentiteA['Nom']." ($sirenMere)".EOL;
|
||
|
//die("Cas pas prévue $siren, $sirenMere, ".$lien['Pmin'].', '.$lien['MajMin'].EOL);
|
||
|
return $siren;
|
||
|
}
|
||
|
}
|
||
|
if ($i==0) return $siren;
|
||
|
}
|
||
|
|
||
|
public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0) {
|
||
|
$appel++;
|
||
|
//echo "0, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren DEBUT".EOL;
|
||
|
$tabP=$this->getParticipations($siren, false);
|
||
|
$iInsee=new MInsee();
|
||
|
foreach ($tabP as $i=>$lien) {
|
||
|
$sirenFille=$lien['Siren'];
|
||
|
$tabIdentiteP=$iInsee->getIdentiteLight($sirenFille);
|
||
|
for($j=0;$j<=$appel; $j++) echo "|\t";
|
||
|
if ($lien['PminNum']>0)
|
||
|
$pct=$lien['PminNum'].'%';
|
||
|
elseif ($lien['MajMin']=='+')
|
||
|
$pct='major';
|
||
|
elseif ($lien['MajMin']=='-')
|
||
|
$pct='minor';
|
||
|
else
|
||
|
$pct=$lien['MajMin'];
|
||
|
|
||
|
echo "+ $sirenFille ($pct) : ".$tabIdentiteP['Nom'];
|
||
|
/*
|
||
|
echo "$sirenFille>100".EOL;
|
||
|
echo $lien['PminNum'].">=".$pctMin.EOL;
|
||
|
echo $lien['MajMin']."==+".EOL;
|
||
|
echo "$niveauCour<=$nbNiveau";
|
||
|
*/
|
||
|
if ($siren*1==$sirenFille*1) {
|
||
|
echo "[D]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
$tabSiren[]=$siren;
|
||
|
}
|
||
|
elseif($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $niveauCour<=$nbNiveaux) {
|
||
|
$tabSiren[]=$siren;
|
||
|
$niveauCour++;
|
||
|
if (in_array($sirenFille,$tabSiren))
|
||
|
echo "[Adeja]".EOL;//echo ", $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
else {
|
||
|
echo "[A]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $sirenIni, $sirenMere, $appel);
|
||
|
}
|
||
|
}
|
||
|
elseif($sirenFille>100 && ($lien['PminNum']<$pctMin || $lien['MajMin']=='-')) {
|
||
|
echo "[B]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
$tabSiren[]=$siren;
|
||
|
//$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $tabSiren);
|
||
|
}
|
||
|
elseif ($sirenFille<100) {
|
||
|
echo "[C]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
$tabSiren[]=$siren;
|
||
|
//return $tabSiren;
|
||
|
}
|
||
|
else {
|
||
|
echo "[E]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
//$tabSiren=array_merge(array($siren), $tabSiren);
|
||
|
$tabSiren[]=$siren;
|
||
|
//return $tabSiren;
|
||
|
//die("Cas pas prévue $siren, $sirenFille, ".$lien['Pmin'].', '.$lien['MajMin'].EOL);
|
||
|
}
|
||
|
}
|
||
|
/*
|
||
|
foreach ($tabP as $i=>$lien) {
|
||
|
$sirenFille=$lien['Siren'];
|
||
|
// $tabIdentiteP=$iInsee->getIdentiteLight($sirenFille);
|
||
|
//for($j=1;$j<=$niveauCour; $j++) echo "|\t";
|
||
|
// echo "+ $sirenFille (". $lien['PminNum']."%) : ".$tabIdentiteP['Nom'];
|
||
|
/*
|
||
|
echo "$sirenFille>100".EOL;
|
||
|
echo $lien['PminNum'].">=".$pctMin.EOL;
|
||
|
echo $lien['MajMin']."==+".EOL;
|
||
|
echo "$niveauCour<=$nbNiveau";
|
||
|
*
|
||
|
if($sirenFille>100 && ($lien['PminNum']>=$pctMin || $lien['MajMin']=='+') && $niveauCour<=$nbNiveaux) {
|
||
|
$tabSiren[]=$siren;
|
||
|
$niveauCour++;
|
||
|
if (!in_array($sirenFille,$tabSiren)) {
|
||
|
//echo "[A]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren détient à ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
|
||
|
$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $sirenIni, $sirenMere, $appel);
|
||
|
}
|
||
|
}
|
||
|
}*/
|
||
|
|
||
|
//echo 'Fin Normale'.EOL;
|
||
|
//echo "[F], $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren FIN".EOL;
|
||
|
|
||
|
return array_unique($tabSiren);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
?>
|