Mise à jour depuis la version 1.0 du 29/09/2011

This commit is contained in:
Michael RICOIS 2011-09-29 15:47:02 +00:00
parent eeedfb08fd
commit 731b2f3aee
2 changed files with 132 additions and 67 deletions

View File

@ -2302,7 +2302,8 @@ print_r($tabTmp, true));
);
/** Estimation du Chiffre d'affaires **/
if ($tabRet['TrancheCA']*1==0 && $tabInsee['ACTIF']==1) {
$cj1=substr($tabInsee['CJ'],0,1)*1;
if ($tabRet['TrancheCA']*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']);
$tabRet['TrancheCA']=$this->getTca($caEstime);
$tabRet['TrancheCALib']=self::$tabTCA[$tabRet['TrancheCA']];

View File

@ -55,6 +55,7 @@ class MLiens {
//$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;
$pctTot=0;
$tabRet=array();
foreach ($tab as $i=>$lien) {
if ($lien['source']>=1700) $source=1700;
@ -89,10 +90,15 @@ class MLiens {
break;
}
$dateMaj=$lien['dateLien'];
$pctLien=$lien['Pmin']*1;
$pctTot+=$pctLien;
// On évite d'afficher des totaux de détention > à 100%
if($pctTot>100) $pctLien=0;
if ($lien['dateInsert']>$dateMaj) $dateMaj=$lien['dateInsert'];
if ($lien['dateUpdate']>$dateMaj) $dateMaj=$lien['dateUpdate'];
$tabRet[]=array( 'Pmin' => number_format($lien['Pmin']*1,2,',',''),
'PminNum' => $lien['Pmin']*1,
$tabRet[]=array( 'Pmin' => number_format($pctLien,2,',',''),
'PminNum' => $pctLien,
'MajMin' => $majMin,
'RaisonSociale' => strtr($lien['RaisonSociale'],$this->tabChars),
'Pays' => $libPays,
@ -105,7 +111,7 @@ class MLiens {
}
$sourcePre=$source;
}
if (count($tabRet)==0) {
switch ($tabIdentite['FJ']*1) {
case 7112: // Autorité administrative indépendante
@ -299,22 +305,6 @@ class MLiens {
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'];
@ -444,8 +434,10 @@ class MLiens {
**/
public function getParticipations($siren=false, $actifsUniquement=true) {
if (!$siren) $siren=$this->siren;
$tab=$this->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");
$tab=$this->iDb->select(
'liens l LEFT JOIN tabPays ON codPays3=Pays',
'Siren1, ActionPart, Pmin, Pmax, MajMin, PpPm, Siren2, RaisonSociale, Pays, libPays, actif, source, dateLien*1 AS dateLien, DATE(l.dateInsert)*1 AS dateInsert, DATE(l.dateUpdate)*1 AS dateUpdate',
"Siren1='$siren' AND ActionPart=2 ORDER BY source DESC, actif DESC, Pmin DESC", true, MYSQL_ASSOC); // OR Siren2='$siren
$tabRet=array();
$sourcePre=false;
foreach ($tab as $i=>$lien) {
@ -574,6 +566,7 @@ class MLiens {
break;
}
// }
//@sendMail('production@scores-decisions.com', 'ylenaour@scores-decisions.com', "Debug Liens $siren", print_r($tabRet,true)) ;
return $tabRet;
}
@ -633,7 +626,6 @@ class MLiens {
public function getAllParticipations($siren, $pctMin=33, $nbNiveaux=15, $niveauCour=1, $tabSiren=array(), $sirenIni=0, $sirenMere=0, $appel=0, $actifsUniquement=true) {
$appel++;
//echo "0, $sirenIni, $sirenMere, $appel, $niveauCour/$nbNiveaux, $siren DEBUT".EOL;
$tabP=$this->getParticipations($siren, $actifsUniquement);
foreach ($tabP as $i=>$lien) {
$sirenFille=$lien['Siren']*1;
@ -648,7 +640,8 @@ class MLiens {
if ($codPays<>'' && $codPays<>'France')
$libPays=" ($codPays)";
for($j=0;$j<=$appel; $j++) echo "|\t";
for($j=0;$j<$appel; $j++) echo "|\t";
if ($lien['PminNum']>0)
$pct=$lien['PminNum'].'%';
elseif ($lien['MajMin']=='+')
@ -659,69 +652,35 @@ class MLiens {
$pct=$lien['MajMin'];
echo "+ $sirenFille ($pct) : ".$nomP.$libPays;
/*
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;
echo "[D]".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;
echo "[Adeja]".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, $actifsUniquement);
echo "[A]".EOL;
$tabSiren=$this->getAllParticipations($sirenFille, $pctMin, $nbNiveaux, $niveauCour, $tabSiren, $sirenIni, $sirenMere, $appel, $actifsUniquement, $format);
}
}
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;
echo "[B]".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;
echo "[C]".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);
echo "[E]".EOL;
$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=$this->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);
}
@ -751,6 +710,111 @@ class MLiens {
);
return rechercheAct($formR, $deb, $nbRep, $maxRep);
}
/** Retourne les informations relatives au groupe du siren donné
** @param string $siren Siren de l'entreprise
**/
public function getInfoGroupe($siren) {
if ($siren<1000) return false;
$tmp=$this->iDb->select('etablissements_act',
'raisonSociale, enseigne, sigle, identite_pre, adr_num, adr_btq, adr_typeVoie, adr_libVoie, adr_comp, adr_cp, adr_ville, adr_dep, adr_com, tel, fax, siren, sirenGrp',
"siren=(SELECT sirenGrp FROM etablissements_act WHERE siren=$siren AND siege=1) LIMIT 0,1", false, MYSQL_ASSOC);
$tabEnt=$tmp[0];
$sirenGrp=$tabEnt['siren'];
//print_r($tabEnt);
if ($sirenGrp<1000) return false;
/** Table des Nafs5 => Secteurs **/
$tmp=$this->iDb->select('tabNaf5', 'codNaf2, codNaf1', '1 GROUP BY codNAf2', false, MYSQL_ASSOC);
$tabNAf2=array();
foreach ($tmp as $tmp2) {
$tabNAf2[$tmp2['codNaf2']]=$tmp2['codNaf1'];
}
$tabNaf2Lib=array( 'A'=>'Agriculture, sylviculture et pêche',
'B'=>'Industries extractives',
'C'=>'Industrie manufacturière',
'D'=>'Production et distribution d\'électricité, de gaz, de vapeur et d\'air conditionné',
'E'=>'Production et distribution d\'eau ; assainissement, gestion des déchets et dépollution',
'F'=>'Construction',
'G'=>'Commerce ; réparation d\'automobiles et de motocycles',
'H'=>'Transports et entreposage',
'I'=>'Hébergement et restauration',
'J'=>'Information et communication',
'K'=>'Activités financières et d\'assurance',
'L'=>'Activités immobilières',
'M'=>'Activités spécialisées, scientifiques et techniques',
'N'=>'Activités de services administratifs et de soutien',
'O'=>'Administration publique',
'P'=>'Enseignement',
'Q'=>'Santé humaine et action sociale',
'R'=>'Arts, spectacles et activités récréatives',
'S'=>'Autres activités de services',
'T'=>'Activités des ménages en tant qu\'employeurs ; activités indifférenciées des ménages en tant que producteurs de biens et services pour usage propre',
'U'=>'Activités extra-territoriales',
);
$tabRet=array( 'grpNom' => $tabEnt['raisonSociale'],
'grpEnseigne' => $tabEnt['enseigne'],
'grpSigle' => $tabEnt['sigle'],
//'grpEnseigne' => $tabEnt['identite_pre'],
'grpAdrNum' => $tabEnt['adr_num'],
'grpAdrBtq' => $tabEnt['adr_btq'],
'grpAdrTypeVoie'=> $tabEnt['adr_typeVoie'],
'grpadrLibVoie' => $tabEnt['adr_libVoie'],
'grpAdrComp' => $tabEnt['adr_comp'],
'grpAdrCP' => $tabEnt['adr_cp'],
'grpAdrVille' => $tabEnt['adr_ville'],
'grpAdrDep' => $tabEnt['adr_dep'],
'grpAdrCom' => $tabEnt['adr_com'],
'grpTel' => $tabEnt['tel'],
'grpFax' => $tabEnt['fax'],
'grpSiren' => $tabEnt['siren'],
//'grpSirenGrp' => $tabEnt['sirenGrp'],
);
$tmp=$this->iDb->select('etablissements_act',
'eff_entrep, dateCrea_ent AS dateCrea, dateImmat*1 AS dateImmat, bilFK, bilFL, ape_entrep, avisCs',
"sirenGrp=$sirenGrp AND siege=1", false, MYSQL_ASSOC);
$grpNbEnt=$grpEffectif=$grpCAExp=$grpCA=0;
$grpDateCrea=$grpDateImmat=date('Ymd');
foreach ($tmp as $tabEnt) {
$grpNbEnt++;
$grpEffectif+=$tabEnt['eff_entrep'];
if ($grpDateCrea>$tabEnt['dateCrea'] && $tabEnt['dateCrea']>=19000101) $grpDateCrea=$tabEnt['dateCrea'];
if ($grpDateImmat>$tabEnt['dateImmat'] && $tabEnt['dateImmat']>=19000101) $grpDateImmat=$tabEnt['dateImmat'];
$grpCAExp+=$tabEnt['bilFK'];
$grpCA+=$tabEnt['bilFL'];
/* @$tabApe5[''.$tabEnt['ape_entrep']]['nb']++;
@$tabApe5[''.$tabEnt['ape_entrep']]['ca']+=$tabEnt['bilFL'];
@$tabApe5[''.$tabEnt['ape_entrep']]['eff']+=$tabEnt['eff_entrep'];*/
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['nb']++;
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['ca']+=$tabEnt['bilFL'];
@$tabSecteur[$tabNAf2[''.substr($tabEnt['ape_entrep'],0,2)]]['eff']+=$tabEnt['eff_entrep'];
@$tabAvis[$tabEnt['avisCs']]++;
}
foreach ($tabSecteur as $secteur=>$tmp) {
$tabSecteur2[$secteur]['activite']=$tabNaf2Lib[$secteur];
$tabSecteur2[$secteur]['nb']=$tmp['nb'];
$tabSecteur2[$secteur]['nb_tx']=round($tmp['nb']*100/$grpNbEnt,2);
$tabSecteur2[$secteur]['ca']=$tmp['ca'];
$tabSecteur2[$secteur]['ca_tx']=round($tmp['ca']*100/$grpCA,2);
$tabSecteur2[$secteur]['eff']=$tmp['eff'];
$tabSecteur2[$secteur]['eff_tx']=round($tmp['eff']*100/$grpEffectif,2);
}
$tabRet['grpNbEntrep']=$grpNbEnt;
$tabRet['grpEffectif']=$grpEffectif;
if ($grpDateCrea<$grpDateImmat)
$tabRet['grpAnneCreation']=substr($grpDateCrea,0,4);
else
$tabRet['grpAnneCreation']=substr($grpDateImmat,0,4);
$tabRet['grpCAExport']=$grpCAExp;
$tabRet['grpCA']=$grpCA;
if ($grpCA>=500000000) $tabRet['grpGrandGroupeFr']=1; else $tabRet['grpGrandGroupeFr']=0;
// $tabRet['ape5']=$tabApe5;
$tabRet['secteur']=$tabSecteur2;
//$tabRet['avisCs']=$tabAvis;
return $tabRet;
}
}
?>