Mise à jour depuis la version 1.0 du 29/09/2011
This commit is contained in:
parent
eeedfb08fd
commit
731b2f3aee
@ -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']];
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
Loading…
Reference in New Issue
Block a user