337 lines
13 KiB
PHP
337 lines
13 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
|
|
function exporte($txt, $lon=-1, $sep="|") {
|
|
$txt=strtr(trim($txt),array('''=>"'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
|
|
|
|
if ($lon==-1) return $txt.$sep;
|
|
elseif ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
|
|
else return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
|
|
}
|
|
|
|
function choixAdr($bodEtab, $bodSiege, $insee) {
|
|
|
|
if (strlen(trim($bodSiege))>0) $adr=trim($bodSiege);
|
|
elseif (strlen(trim($bodEtab))>0) $adr=trim($bodEtab);
|
|
else $adr='';
|
|
|
|
if (isset($insee) && trim($insee)<>'') return $insee;
|
|
else return $adr;
|
|
}
|
|
|
|
|
|
error_reporting(E_ALL);
|
|
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
|
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
|
include_once(INCLUDE_PATH.'scores/classMFinancier.php');
|
|
include_once(INCLUDE_PATH.'scores/classMScores.php');
|
|
include_once(FWK_PATH.'mail/sendMail.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMLiens.php');
|
|
|
|
global $iDb2,$iLiens,$iBilan,$iInsee;
|
|
|
|
$iDb=new WDB('insee');
|
|
$iDb2=new WDB('historiques');
|
|
//$iWs=new WsEntreprise();
|
|
$iInsee=new MInsee();
|
|
$iBilan=new MBilans(0);
|
|
$iLiens=new MLiens(0);
|
|
|
|
$iCotation=new ICotation(array());
|
|
|
|
/*$argv=$_SERVER['argv'];
|
|
$presta=$argv[1];
|
|
$date=date('Ymd');
|
|
/*
|
|
$fp=fopen('/home/data/clients/adecco/adecco'.$presta."_$date.txt",'w');
|
|
// Ligne d'entête
|
|
fwrite($fp, "insSIREN|insNIC|insL1_nomen|insL2_ComP|insL3_cadr|insL4_VOIE|insL5_disp|insL6_post|insL7_ETRG|insZR1|insrpet|insdepet|insarronet|insctonet|inscomet|inslibcom|insdu|insTu|insuu|inscodpos|insZR2|instcd|inszemet|inscodevoie|insNUMVOIE|insINDREP|insTYPVOIE|insLIBVOIE|insENSEIGNE|insapet700|insZR3|inssiege|instefet|insefetcent|insorigine|insdcRET|insMMIntrET|insACTIVNAT|insLIEUACT|insACTISURF|inssaisonat|insMODET|insdapet|insdefet|insEXPLET|insProdpart|insauxilt|inseaeant|inseaeapet|inseaesec1t|inseaesec2t|insnomen|inssigle|insCIVILITE|inscj|instefen|insefencent|insapen700|insZR4|insaprm|instca|insrecme|insdapen|insdefen|insdcren|insmmintren|insmonoact|insMODEN|insEXPLEN|inseaeann|insEAEapen|inseaesec1n|inseaesec2n|inseaesec3n|inseaesec4n|insnbETEXPL|instcaexp|insregimp|insmonoreg|insrpen|insdepcomen|refAdecco|sdActif|sdEvenDate|sdEven|sdNomPrenomDir|sdYP|sdPctAct|sdSirenAct|sdNomAct".EOL);
|
|
|
|
if ($presta==1) {
|
|
$nbRows=$iDb->select('tmp.adecco', 'REF, SIREN, NIC, siret', "nafet IN('7810Z', '7820Z', '7830Z')", true, MYSQL_ASSOC, true);
|
|
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
|
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
|
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp);
|
|
}
|
|
} else {
|
|
$nbRows=$iDb->select('tmp.adecco_naf', "'' AS REF, siren AS SIREN, nic AS NIC, siret",
|
|
"siret NOT IN(SELECT siret FROM tmp.adecco)", true, MYSQL_ASSOC, true);
|
|
echo date('Y/m/d - H:i:s') ." - Il y a $nbRows établissements Adecco en Presta $presta...".EOL;
|
|
while($tabTmp=$iDb->fetch(MYSQL_ASSOC)) {
|
|
exporteAdecco($tabTmp['siret'],$tabTmp['REF'],$fp);
|
|
}
|
|
}
|
|
echo date('Y/m/d - H:i:s') ." - Fin de la prestation Adecco en Presta $presta.".EOL;
|
|
fclose($fp);
|
|
die();
|
|
*/
|
|
|
|
$tabSirens=file('/root/sirenDge3.csv');
|
|
$fp=fopen('/root/sirenDge3out.csv','a');
|
|
foreach ($tabSirens as $i=>$ligne) {
|
|
$tabTmp=explode(',', $ligne);
|
|
$siren=trim($tabTmp[0]);
|
|
$nic=trim($tabTmp[1]);
|
|
$ref=trim($tabTmp[2]);
|
|
$sirenA=$rs=$civ=$nom=$prenom=$actif=$pct=$pays='';
|
|
|
|
$tabAct=@$iLiens->getActionnaires($siren, false);
|
|
$j=0;
|
|
foreach ($tabAct as $j=>$lien) {
|
|
//print_r($lien);
|
|
$sirenA=$lien['Siren'];
|
|
$rs= $lien['RaisonSociale'];
|
|
/* $civ= $lien['CodePays'];
|
|
$nom= $lien['CodePays'];
|
|
$prenom=$lien['CodePays'];*/
|
|
$actif= $lien['Actif'];
|
|
$pct= $lien['PminNum'];
|
|
if ($pct<=50 && $lien['MajMin']=='+') $pct='Major.';
|
|
elseif ($pct<=1 && $lien['MajMin']=='i') $pct='Minor.';
|
|
$pays= $lien['CodePays'];
|
|
|
|
$strOut="$i\t$j\t$siren\t$nic\t$ref\tok\t$sirenA\t$rs\t$actif\t$pct\t$pays";
|
|
fwrite($fp, $strOut.EOL);
|
|
echo $strOut.EOL;
|
|
//$civ\t$nom\t$prenom\t
|
|
//die();
|
|
}
|
|
if ($j==0) {
|
|
$strOut="$i\t$j\t$siren\t$nic\t$ref\tKO\t$sirenA\t$rs\t$actif\t$pct\t$pays";
|
|
fwrite($fp, $strOut.EOL);
|
|
echo $strOut.EOL;
|
|
}
|
|
}
|
|
|
|
die();
|
|
|
|
|
|
|
|
// Traitement clazssique
|
|
foreach ($tabSirens as $i=>$ligne) {
|
|
$tabTmp=explode("\t", $ligne);
|
|
$siren1=trim($tabTmp[0]);
|
|
$siren2=trim($tabTmp[1]);
|
|
$sirenA=$sirenB=$actif=$pct=$type='';
|
|
$dateCessL=$dateCessA=$dateCessB=$inconnu='';
|
|
|
|
$tabAct=@$iLiens->getActionnaires($siren1, false);
|
|
foreach ($tabAct as $j=>$lien) {
|
|
if ($lien['Siren']==$siren2) {
|
|
$sirenB = $siren2;
|
|
$sirenA = $siren1;
|
|
break;
|
|
}
|
|
}
|
|
if ($sirenA=='') {
|
|
$tabAct=@$iLiens->getActionnaires($siren2, false);
|
|
foreach ($tabAct as $j=>$lien) {
|
|
if ($lien['Siren']==$siren1) {
|
|
$sirenA = $siren2;
|
|
$sirenB = $siren1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Récursif 1
|
|
if ($sirenA=='') {
|
|
$tabAct=@$iLiens->getActionnaires($siren1, false);
|
|
foreach ($tabAct as $j=>$lienTmp) {
|
|
$sirenTmp=$lienTmp['Siren'];
|
|
$pctTmp =$lienTmp['PminNum'];
|
|
$actifTmp=$lienTmp['Actif'];
|
|
if ($actifTmp==0) {
|
|
$dateCessLtmp=$lienTmp['DateLien'];
|
|
if (str_replace('-','',$dateCessLtmp)*1==0)
|
|
$dateCessLtmp=$lienTmp['DateMaj'];
|
|
}
|
|
$tabActTmp=@$iLiens->getActionnaires($sirenTmp, false);
|
|
foreach ($tabActTmp as $j=>$lien) {
|
|
if ($lien['Siren']==$siren2) {
|
|
$sirenB = $siren2;
|
|
$sirenA = $siren1;
|
|
$type = 'indirecte';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Récursif 2
|
|
if ($sirenA=='') {
|
|
$tabAct=@$iLiens->getActionnaires($siren2, false);
|
|
foreach ($tabAct as $j=>$lienTmp) {
|
|
$sirenTmp=$lienTmp['Siren'];
|
|
$pctTmp =$lienTmp['PminNum'];
|
|
$actifTmp=$lienTmp['Actif'];
|
|
if ($actifTmp==0) {
|
|
$dateCessLtmp=$lienTmp['DateLien'];
|
|
if (str_replace('-','',$dateCessLtmp)*1==0)
|
|
$dateCessLtmp=$lienTmp['DateMaj'];
|
|
}
|
|
$tabActTmp=@$iLiens->getActionnaires($sirenTmp, false);
|
|
foreach ($tabActTmp as $j=>$lien) {
|
|
if ($lien['Siren']==$siren1) {
|
|
$sirenA = $siren2;
|
|
$sirenB = $siren1;
|
|
$type = 'indirecte';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if ($sirenA<>'') {
|
|
if ($type=='') {
|
|
$actif = $lien['Actif'];
|
|
if ($actif==0) {
|
|
$dateCessL=$lien['DateLien'];
|
|
if (str_replace('-','',$dateCessL)*1==0)
|
|
$dateCessL=$lien['DateMaj'];
|
|
}
|
|
$pct = $lien['PminNum'];
|
|
$type = 'directe';
|
|
} else {
|
|
if ($actifTmp==0)
|
|
$actif=0;
|
|
elseif ($lien['Actif']==0) {
|
|
$actif=0;
|
|
$dateCessL=$lien['DateLien'];
|
|
if (str_replace('-','',$dateCessL)*1==0)
|
|
$dateCessL=$dateCessLtmp;
|
|
if (str_replace('-','',$dateCessL)*1==0)
|
|
$dateCessL=$lien['DateMaj'];
|
|
} else {
|
|
$actif=1;
|
|
$dateCessL='';
|
|
}
|
|
$pct=round((($lien['PminNum']/100)*($pctTmp/100))*100,2);
|
|
$type = 'indirecte';
|
|
}
|
|
$tabId=$iInsee->getIdentiteLight($sirenA);
|
|
if ($tabId['Actif']==0) {
|
|
$siren=$sirenA;
|
|
$nic=$tabId['Nic'];
|
|
$ret=$iDb->select('insee.insee_even', 'insEVE,insDATEVE,insSIRETPS,idFlux,insSIRETASS', "insSIREN=$siren AND insNIC=$nic AND insEVE IN (400,410,420,425,430,435,510,530,620,621,650,795)", false, MYSQL_ASSOC);
|
|
if (count($ret)>0) {
|
|
$tmp=$ret[0];
|
|
$dateCessA=$tmp['insDATEVE'];
|
|
}
|
|
}
|
|
$tabId=$iInsee->getIdentiteLight($sirenB);
|
|
if ($tabId['Actif']==0) {
|
|
$siren=$sirenB;
|
|
$nic=$tabId['Nic'];
|
|
$ret=$iDb->select('insee.insee_even', 'insEVE,insDATEVE,insSIRETPS,idFlux,insSIRETASS', "insSIREN=$siren AND insNIC=$nic AND insEVE IN (400,410,420,425,430,435,510,530,620,621,650,795)", false, MYSQL_ASSOC);
|
|
if (count($ret)>0) {
|
|
$tmp=$ret[0];
|
|
$dateCessB=$tmp['insDATEVE'];
|
|
}
|
|
}
|
|
} else $inconnu='Y';
|
|
echo "$i:\t$siren1\t$siren2\t$sirenB\t$sirenA\t$actif\t$pct\t$type\t$dateCessL\t$dateCessB\t$dateCessA\t$inconnu".EOL;
|
|
/*
|
|
$sirenAct=$lien['Siren'];
|
|
//die(print_r($lien));
|
|
if($sirenAct>100 && ($lien['PminNum']>=50 || $lien['MajMin']=='+')) {
|
|
$tabIdentiteA=$iInsee->getIdentiteLight($sirenAct);
|
|
$pctAct=$lien['Pmin'];
|
|
$nomAct=$tabIdentiteA['Nom'];
|
|
break;
|
|
}
|
|
}*/
|
|
}
|
|
|
|
function exporteAdecco($siret,$ref,$fp=false) {
|
|
global $iDb2,$iLiens,$iBilan,$iInsee; //insSIREN,insNIC,insL1_nomen,insL2_ComP,insL3_cadr,insL4_VOIE,insL5_disp,insL6_post,insL7_ETRG,insZR1,insrpet,insdepet,insarronet,insctonet,inscomet,inslibcom,insdu,insTu,insuu,inscodpos,insZR2,instcd,inszemet,inscodevoie,insNUMVOIE,insINDREP,insTYPVOIE,insLIBVOIE,insENSEIGNE,insapet700,insZR3,inssiege,instefet,insefetcent,insorigine,insdcRET,insMMIntrET,insACTIVNAT,insLIEUACT,insACTISURF,inssaisonat,insMODET,insdapet,insdefet,insEXPLET,insProdpart,insauxilt,inseaeant,inseaeapet,inseaesec1t,inseaesec2t,insnomen,inssigle,insCIVILITE,inscj,instefen,insefencent,insapen700,insZR4,insaprm,instca,insrecme,insdapen,insdefen,insdcren,insmmintren,insmonoact,insMODEN,insEXPLEN,inseaeann,insEAEapen,inseaesec1n,inseaesec2n,inseaesec3n,inseaesec4n,insnbETEXPL,instcaexp,insregimp,insmonoreg,insrpen,insdepcomen,
|
|
//REF,actif,dateInactif,evenInactif,dirigeant,YP,actionPct,actionSiren,actionNom*/
|
|
|
|
$ret=$iDb2->select('historiques.notice_201012', 'insSIREN,insNIC,insL1_nomen,insL2_ComP,insL3_cadr,insL4_VOIE,insL5_disp,insL6_post,insL7_ETRG,insZR1,insrpet,insdepet,insarronet,insctonet,inscomet,inslibcom,insdu,insTu,insuu,inscodpos,insZR2,instcd,inszemet,inscodevoie,insNUMVOIE,insINDREP,insTYPVOIE,insLIBVOIE,insENSEIGNE,insapet700,insZR3,inssiege,instefet,insefetcent,insorigine,insdcRET,insMMIntrET,insACTIVNAT,insLIEUACT,insACTISURF,inssaisonat,insMODET,insdapet,insdefet,insEXPLET,insProdpart,insauxilt,inseaeant,inseaeapet,inseaesec1t,inseaesec2t,insnomen,inssigle,insCIVILITE,inscj,instefen,insefencent,insapen700,insZR4,insaprm,instca,insrecme,insdapen,insdefen,insdcren,insmmintren,insmonoact,insMODEN,insEXPLEN,inseaeann,insEAEapen,inseaesec1n,inseaesec2n,inseaesec3n,inseaesec4n,insnbETEXPL,instcaexp,insregimp,insmonoreg,insrpen,insdepcomen', "siret='$siret'", false);
|
|
$siren=substr($siret,0,9);
|
|
$nic=substr($siret,9,5);
|
|
$even=$evenDate=$nomPrenomDir=$YP=$pctAct=$sirenAct=$nomAct=$strOut='';
|
|
|
|
if (count($ret)==0) {
|
|
$actif=0;
|
|
$strOut.="$siren|$nic|";
|
|
for($i=0;$i<78;$i++)
|
|
$strOut.='|';
|
|
|
|
// Dernier Even Insee
|
|
$ret=$iDb2->select('insee.insee_even', 'insEVE,insDATEVE,insSIRETPS,idFlux,insSIRETASS', "insSIREN=$siren AND insNIC=$nic AND insEVE IN (400,410,420,425,430,435,510,530,620,621,650,795)", false, MYSQL_ASSOC);
|
|
if (count($ret)==1 ) {
|
|
$tmp=$ret[0];
|
|
$siret2=$tmp['insSIRETPS']*1;
|
|
if ($siret2==0) $siret2=$tmp['insSIRETASS']*1;
|
|
if ($siret2>0) $siret2=' de/vers '.$siret2;
|
|
else $siret2='';
|
|
switch ($tmp['insEVE']*1) {
|
|
//case400,410,420,425,430,435,510,530,620,621,650,795
|
|
case 400: $even='Suppression du doublon'; break;
|
|
case 410: $even='Cessation juridique de l\'entreprise'; break;
|
|
case 420:
|
|
case 425: $even='Cessation économique de l\'entreprise'; break;
|
|
case 430:
|
|
case 435: $even='Fermeture de l\'etablissement'; break;
|
|
case 510:
|
|
case 530: $even='Transfert'.$siret2; break;
|
|
case 620:
|
|
case 621:
|
|
case 650: $even='Cessation economique de l\'etablissement'; break;
|
|
case 795: $even='Personne radiee à sa demande de SIRENE diffusion'; break;
|
|
default: $even=''; break;
|
|
}
|
|
$evenDate=$tmp['insDATEVE'];
|
|
}
|
|
} else {
|
|
$actif=1;
|
|
$tmp=$ret[0];
|
|
for($i=0; isset($tmp[$i]); $i++)
|
|
$strOut.=str_replace('|',' ',$tmp[$i]).'|';
|
|
|
|
// Dirigeant
|
|
$ret=$iDb2->select('jo.etablissements_act', 'dirNom,dirPrenom,eff_entrep', "siren=$siren LIMIT 0,1", false, MYSQL_ASSOC);
|
|
$tmp=@$ret[0];
|
|
$nomPrenomDir=trim($tmp['dirPrenom'].' '.$tmp['dirNom']);
|
|
$effent=$tmp['eff_entrep']*1;
|
|
|
|
// Effectif Bilan
|
|
$tabBilan=$iDb2->select('jo.bilans', 'siren, dateExercice, dateExercicePre, dureeExercice, dureeExercicePre, monnaie, unite, typeBilan, postes', "siren=$siren AND typeBilan IN ('N','S') ORDER BY dateExercice DESC LIMIT 0,1", false, MYSQL_ASSOC);
|
|
$tabBilan=@$tabBilan[0];
|
|
$tabTmp=explode(';', $tabBilan['postes']);
|
|
foreach($tabTmp as $poste) {
|
|
if (trim($poste)<>'') {
|
|
$tabTmp2=explode('=',$poste);
|
|
$tabPostes[trim($tabTmp2[0])]=trim($tabTmp2[1]);
|
|
}
|
|
}
|
|
if ($tabBilan['typeBilan']=='S')
|
|
$tabPostes=@$iBilan->bilanSimplifie2Normal($tabPostes);
|
|
$YP=str_replace('NS','', @$tabPostes['YP'])*1;
|
|
if ($effent>$YP) $YP=$effent;
|
|
if ($YP<10) return;
|
|
|
|
// Actionnaire
|
|
$tabAct=$iLiens->getActionnaires($siren, true);
|
|
foreach ($tabAct as $i=>$lien) {
|
|
$sirenAct=$lien['Siren'];
|
|
//die(print_r($lien));
|
|
if($sirenAct>100 && ($lien['PminNum']>=50 || $lien['MajMin']=='+')) {
|
|
$tabIdentiteA=$iInsee->getIdentiteLight($sirenAct);
|
|
$pctAct=$lien['Pmin'];
|
|
$nomAct=$tabIdentiteA['Nom'];
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
$strOut.="$ref|$actif|$evenDate|$even|".str_replace('|',' ',$nomPrenomDir)."|$YP|$pctAct|$sirenAct|".str_replace('|',' ',$nomAct).EOL;
|
|
echo $strOut;
|
|
if ($fp) fwrite($fp, $strOut);
|
|
}
|
|
|
|
?>
|