2010-11-04 11:05:01 +00:00
< ?
class MLiens {
public $siren = 0 ;
2010-11-29 14:17:26 +00:00
private $tabChars = array ( 'é' => '<27> ' , 'ç' => '<27> ' , 'è' => '<27> ' , '<27> ' => '<27> ' );
2010-11-04 11:05:01 +00:00
private static $tabFct = array ( 'ADM' => 'Administrateur' ,
2010-11-29 14:17:26 +00:00
'ASS' => 'Associ<63> ' ,
'COG' => 'Co-g<> rant' ,
'CON' => 'Contr<74> leur de gestion' ,
'DID' => 'Directeur G<> n<EFBFBD> ral D<> l<EFBFBD> gu<67> ' ,
2010-11-04 11:05:01 +00:00
'DIR' => 'Directeur' ,
2010-11-29 14:17:26 +00:00
'GER' => 'G<> rant' ,
'PCS' => 'Pr<50> sident du Conseil de Surveillance' ,
'PDG' => 'Pr<50> sident Directeur G<> n<EFBFBD> ral' ,
2010-11-04 11:05:01 +00:00
'PP' => 'Personne Physique' ,
2010-11-29 14:17:26 +00:00
'PRD' => 'Pr<50> sident du directoire' ,
'PRE' => 'Pr<50> sident du Conseil d\'Administration' ,
'VIC' => 'Vice pr<70> sident du CA ou Surv.' ,
2010-11-04 11:05:01 +00:00
);
private $tabSources = array ( 0 => 'Presse' , // Old liens
1000 => 'Presse' , // 4 ?
1500 => 'Actes' , // Fedaso
2010-11-29 14:17:26 +00:00
1600 => 'Actes' , // S&D : 69642, Associ<63> -G<> rant
2010-11-04 11:05:01 +00:00
1700 => 'SED' ,
2010-11-29 14:17:26 +00:00
1800 => 'Collecte' , // Infol<6F> gales
2010-11-04 11:05:01 +00:00
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 ) {
2010-11-29 14:17:26 +00:00
case 5488 : // Entreprise Unipersonnelle <20> Responsabilit<69> Limit<69> e
2010-11-04 11:05:01 +00:00
case 5498 : // SARL unipersonnelle
2010-11-29 14:17:26 +00:00
case 5720 : // Soci<63> t<EFBFBD> par actions simplifi<66> e <20> associ<63> unique
2010-11-04 11:05:01 +00:00
$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 ) {
2010-11-29 14:17:26 +00:00
case 7112 : // Autorit<69> administrative ind<6E> pendante
case 7160 : // Service d<> concentr<74> <20> comp<6D> tence nation. D'un minist<73> re (hors D<> fense)
case 7171 : // Service d<> concentr<74> de l'<27> tat <20> comp<6D> tence (inter) r<> gionale
case 7172 : // Service d<> concentr<74> de l'<27> tat <20> comp<6D> tence (inter) d<> partementale
case 7179 : // (Autre) Service d<> concentr<74> de l'<27> tat <20> comp<6D> tence territoriale
2010-11-04 11:05:01 +00:00
case 7381 : // Organisme consulaire
2010-11-29 14:17:26 +00:00
/** Ces <20> tablissements sont dans le fichier des tribunaux **/
2010-11-04 11:05:01 +00:00
$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' ]),
);
2010-11-29 14:17:26 +00:00
case 7111 : // Autorit<69> constitutionnelle
case 7113 : // Minist<73> re
case 7120 : // Service central d'un minist<73> re
case 7150 : // Service du minist<73> re de la D<> fense
2010-11-04 11:05:01 +00:00
2010-11-29 14:17:26 +00:00
case 7190 : // Ecole nationale non dot<6F> e de la personnalit<69> morale
// case 7210: // COMMUNE (trait<69> apr<70> s)
// case 7220: // DEPARTEMENT (trait<69> apr<70> s)
2010-11-04 11:05:01 +00:00
case 7225 : // Territoire d'Outre-mer
2010-11-29 14:17:26 +00:00
case 7229 : // (Autre) Collectivit<69> territoriale
// case 7312: // Commune associ<63> e
2010-11-04 11:05:01 +00:00
// case 7313: // Section de commune
// case 7314: // Ensemble urbain
2010-11-29 14:17:26 +00:00
case 7230 : // R<> gion
case 7321 : // Association syndicale autoris<69> e
case 7322 : // Association fonci<63> re urbaine
case 7323 : // Association fonci<63> re de remembrement
case 7331 : // <20> tablissement public local d'enseignement
2010-11-04 11:05:01 +00:00
// case 7341: // Secteur de commune
// case 7342: // District urbain
2010-11-29 14:17:26 +00:00
// case 7343: // Communaut<75> urbaine
// case 7345: // Syndicat intercommunal <20> vocation multiple (SIVOM)
// case 7346: // Communaut<75> de communes
// case 7347: // Communaut<75> de villes
// case 7348: // Communaut<75> d'agglom<6F> ration
case 7349 : // Autre <20> tablissement public local de coop<6F> ration non sp<73> cialis<69> ou entente
case 7351 : // Institution interd<72> partemental ou entente
case 7352 : // Institution interr<72> gionale ou entente
// case 7353: // Syndicat intercommunal <20> vocation unique (SIVU)
2010-11-04 11:05:01 +00:00
// 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
2010-11-29 14:17:26 +00:00
// case 7362: // Caisse des <20> coles
// case 7363: // Caisse de cr<63> dit municipal
case 7364 : // <20> tablissement d'hospitalisation
2010-11-04 11:05:01 +00:00
case 7365 : // Syndicat inter hospitalier
2010-11-29 14:17:26 +00:00
case 7366 : // <20> tablissement public local social et m<> dico-social
case 7371 : // Office public d'habitation <20> loyer mod<6F> r<EFBFBD> (OPHLM)
case 7372 : // Service d<> partemental d'incendie
case 7373 : // <20> tablissement public local culturel
case 7378 : // R<> gie d'une collectivit<69> locale <20> caract<63> re administratif
case 7379 : // (Autre) <20> tablissement public administratif local
case 7382 : // <20> tablissement public national ayant fonction d'administration centrale
case 7383 : // <20> tablissement public national <20> caract<63> re scientifique culturel et professionnel
case 7384 : // Autre <20> tablissement public national d'enseignement
case 7385 : // Autre <20> tablissement public national administratif <20> comp<6D> tence territoriale limit<69> e
case 7389 : // <20> tablissement public national <20> caract<63> re administratif
case 7410 : // Groupement d'int<6E> r<EFBFBD> t public (GIP)
case 7430 : // <20> tablissement public des cultes d'Alsace-Lorraine
case 7450 : // Cercle et foyer dans les arm<72> es
2010-11-04 11:05:01 +00:00
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' ]) {
2010-11-29 14:17:26 +00:00
case 'CA' : $typeCC = " Communaut<EFBFBD> d'agglom<6F> rations " ; break ; // CJ=7348
case 'CC' : $typeCC = " Communaut<EFBFBD> de communes " ; break ; // CJ=7346
case 'CU' : $typeCC = " Communaut<EFBFBD> urbaine " ; break ; // CJ=73
case 'SAN' : $typeCC = " Syndicat d'agglom<6F> rations nouvelles " ; break ; // CJ=73
2010-11-04 11:05:01 +00:00
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 ;
2010-11-29 14:17:26 +00:00
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
2010-11-04 11:05:01 +00:00
$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 ;
2010-11-29 14:17:26 +00:00
if ( $fj == 5498 ) $strFonctions = " ,'G<> rant' " ;
2010-11-04 11:05:01 +00:00
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' ,
2010-11-29 14:17:26 +00:00
" siren=' $siren ' AND fonction_lib IN ('Associ<63> -g<> rant' $strFonctions ) " , true , MYSQL_ASSOC );
2010-11-04 11:05:01 +00:00
$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 ;
}
2010-11-29 14:17:26 +00:00
/* Insertion de la participation pour l'actionnaire pr<70> c<EFBFBD> dent */
2010-11-04 11:05:01 +00:00
$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' ),
2010-11-29 14:17:26 +00:00
'source' => 'lag' , // Lien Associ<63> G<> rant
2010-11-04 11:05:01 +00:00
'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 ) {
2010-11-29 14:17:26 +00:00
case 7112 : // Autorit<69> administrative ind<6E> pendante
case 7160 : // Service d<> concentr<74> <20> comp<6D> tence nation. D'un minist<73> re (hors D<> fense)
case 7171 : // Service d<> concentr<74> de l'<27> tat <20> comp<6D> tence (inter) r<> gionale
case 7172 : // Service d<> concentr<74> de l'<27> tat <20> comp<6D> tence (inter) d<> partementale
case 7179 : // (Autre) Service d<> concentr<74> de l'<27> tat <20> comp<6D> tence territoriale
2010-11-04 11:05:01 +00:00
case 7381 : // Organisme consulaire
2010-11-29 14:17:26 +00:00
/** Ces <20> tablissements sont dans le fichier des tribunaux **/
2010-11-04 11:05:01 +00:00
$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
2010-11-29 14:17:26 +00:00
//case 'CC': $typeCC="Communaut<75> de communes"; break; // CJ=73
//case 'CU': $typeCC="Communaut<75> urbaine"; break; // CJ=73
//case 'SAN': $typeCC="Syndicat d'agglom<6F> rations nouvelles"; break; // CJ=73
2010-11-04 11:05:01 +00:00
$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 ;
2010-11-29 14:17:26 +00:00
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
2010-11-04 11:05:01 +00:00
$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 ])));
}
}
2010-11-29 14:17:26 +00:00
/** CA et R<> sultat **/
2010-11-04 11:05:01 +00:00
$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 ) {
2010-11-29 14:17:26 +00:00
if ( $debug ) echo " D. $siren d<> tenu <20> " . $lien [ 'Pmin' ] . " ( " . $lien [ 'MajMin' ] . " ) par " . $tabIdentiteA [ 'Nom' ] . " ( $sirenMere ) " . EOL ;
2010-11-04 11:05:01 +00:00
return $siren ;
}
elseif ( $sirenMere > 100 && $lien [ 'PminNum' ] > 50 ) {
2010-11-29 14:17:26 +00:00
if ( $debug ) echo " A. $siren d<> tenu <20> " . $lien [ 'Pmin' ] . " ( " . $lien [ 'MajMin' ] . " ) par " . $tabIdentiteA [ 'Nom' ] . " ( $sirenMere ) " . EOL ;
2010-11-04 11:05:01 +00:00
$majTrouve = true ;
return $this -> getMaisonMereFr ( $sirenMere );
}
elseif ( $sirenMere > 100 && $lien [ 'MajMin' ] == '+' && ! $majTrouve ) {
2010-11-29 14:17:26 +00:00
if ( $debug ) echo " B. $siren d<> tenu <20> " . $lien [ 'Pmin' ] . " ( " . $lien [ 'MajMin' ] . " ) par " . $tabIdentiteA [ 'Nom' ] . " ( $sirenMere ) " . EOL ;
2010-11-04 11:05:01 +00:00
$majTrouve = true ;
return $this -> getMaisonMereFr ( $sirenMere );
}
elseif ( $sirenMere < 100 ) {
2010-11-29 14:17:26 +00:00
if ( $debug ) echo " C. $siren d<> tenu <20> " . $lien [ 'Pmin' ] . " ( " . $lien [ 'MajMin' ] . " ) par " . $tabIdentiteA [ 'Nom' ] . " ( $sirenMere ) " . EOL ;
2010-11-04 11:05:01 +00:00
return $siren ;
}
else {
2010-11-29 14:17:26 +00:00
if ( $debug ) echo " E. $siren d<> tenu <20> " . $lien [ 'Pmin' ] . " ( " . $lien [ 'MajMin' ] . " ) par " . $tabIdentiteA [ 'Nom' ] . " ( $sirenMere ) " . EOL ;
//die("Cas pas pr<70> vue $siren, $sirenMere, ".$lien['Pmin'].', '.$lien['MajMin'].EOL);
2010-11-04 11:05:01 +00:00
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 ) {
2010-11-29 14:17:26 +00:00
echo " [D] " . EOL ; //, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
$tabSiren [] = $siren ;
}
elseif ( $sirenFille > 100 && ( $lien [ 'PminNum' ] >= $pctMin || $lien [ 'MajMin' ] == '+' ) && $niveauCour <= $nbNiveaux ) {
$tabSiren [] = $siren ;
$niveauCour ++ ;
if ( in_array ( $sirenFille , $tabSiren ))
2010-11-29 14:17:26 +00:00
echo " [Adeja] " . EOL ; //echo ", $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
else {
2010-11-29 14:17:26 +00:00
echo " [A] " . EOL ; //, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
$tabSiren = $this -> getAllParticipations ( $sirenFille , $pctMin , $nbNiveaux , $niveauCour , $tabSiren , $sirenIni , $sirenMere , $appel );
}
}
elseif ( $sirenFille > 100 && ( $lien [ 'PminNum' ] < $pctMin || $lien [ 'MajMin' ] == '-' )) {
2010-11-29 14:17:26 +00:00
echo " [B] " . EOL ; //, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
$tabSiren [] = $siren ;
//$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $tabSiren);
}
elseif ( $sirenFille < 100 ) {
2010-11-29 14:17:26 +00:00
echo " [C] " . EOL ; //, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
$tabSiren [] = $siren ;
//return $tabSiren;
}
else {
2010-11-29 14:17:26 +00:00
echo " [E] " . EOL ; //, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
//$tabSiren=array_merge(array($siren), $tabSiren);
$tabSiren [] = $siren ;
//return $tabSiren;
2010-11-29 14:17:26 +00:00
//die("Cas pas pr<70> vue $siren, $sirenFille, ".$lien['Pmin'].', '.$lien['MajMin'].EOL);
2010-11-04 11:05:01 +00:00
}
}
/*
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 )) {
2010-11-29 14:17:26 +00:00
//echo "[A]".EOL;//, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren d<> tient <20> ".$lien['Pmin']." (".$lien['MajMin'].") : ".$tabIdentiteP['Nom']." ($sirenFille)".EOL;
2010-11-04 11:05:01 +00:00
$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 );
}
}
?>