batch/1.1/old/validation.php

882 lines
42 KiB
PHP
Raw Normal View History

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/** Table de correspondance **/
$tabOldEven=array( 10=>'4000', // Cr<43>ation d'entreprise
11=>'4000',
13=>'4000',
14=>'4000',
15=>'4000',
16=>'4000',
17=>'4200', // Cr<43>ation d'<27>tablissement
18=>'4200',
19=>'4200',
20=>'5999', // ou 5700 en fonction du code xxx
21=>'5999',
22=>'5999',
24=>'5999',
25=>'5999',
30=>'2500', // Confirmation Ets
31=>'2318',
32=>'2318',
33=>'2318',
34=>'2318',
35=>'2318',
36=>'2318',
37=>'2800', // Loc. G<>rance recue
38=>'2860', // Loc. G<>rance donn<6E>e
39=>'2318',
40=>'6700', // Radiation
41=>'2202', // Dissolution
42=>'2885', // Fin location g<>rance
51=>'1209', // R<>glement Judiciaire
52=>'1200', // Redressement Judiciaire
53=>'1207', // R<>glemement amiable
//53=> Conciliation ????????????????????????????????????????
56=>'1310', // Proc<6F>dure d'Insolvabilit<69> Europ<6F>enne
57=>'1100', // Jugement de sauvegarde
58=>'1101', // Plan de sauvegarde
59=>'1506', // Rectif ou Annulation RJ
60=>'1305', // Redr.& liq.Judiciaire
61=>'1603', // Liquidation de Biens
62=>'1305',
63=>'1600', // Faillite personnelle
64=>'1601', // Interdiction de g<>rer
65=>'1305',
66=>'1306', // Liquidation Judiciaire Simplifi<66>e
69=>'1506',//Rectif ou Annul.LJ
70=>'1550', // Suites de jugements
71=>'1550', // Suite reglement/L
72=>'1550', // Suite redressement/L
73=>'1550', // Susp.Provis.pours. ?????????????????????????????????????????
74=>'1505', // Appel de jugement
75=>'1407', // Modif. de Plan
76=>'1502', // Extinction Passif
77=>'1210', // Production
78=>'1204', // D<>p<EFBFBD>t des cr<63>ances
79=>'1503', // Cloture insuf.Actif
92=>'1450', //Cessation paiement ??
);
/**
* @todo
* 1. Num<EFBFBD>roter toutes les proc<EFBFBD>dures OK
* 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc
* 101 Commentaire
* 102 Activite d<EFBFBD>clar<EFBFBD> au Bodacc
* 103 texte rectificatif
* 104 Annonce compl<EFBFBD>te au format texte
* 105 Structure Dirigeants BODACC
* 106 Libell<EFBFBD> du P<EFBFBD>rim<EFBFBD>tre de la vente
* 3.
* 5. JugesCommissaires <EFBFBD> int<EFBFBD>grer correctement
Noms et pr<EFBFBD>noms des dirigeants de l'entreprise ' Anum. ?
Raison sociale du vendeur Anum. 255
Siren du vendeur (en cas de Vente/Cessions) Num. 9
Indicateur de correction du SIREN vendeur (si C, le siren diffus<EFBFBD> au BODACC est faut mais S&D a affect<EFBFBD> le bon SIREN) ' Car. 1
*/
include_once(FWK_PATH.'common/chiffres.php');
include_once(FWK_PATH.'common/dates.php');
include_once(INCLUDE_PATH.'insee/classMInsee.php');
include_once(INCLUDE_PATH.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
include_once(INCLUDE_PATH.'partenaires/classMBilans.php');
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
$strInfoScript='Usage : '.basename($argv[0]). " [OPTION] FICHIER.CSV
Validation d'un fichier CSV <EFBFBD> qualifier en entr<EFBFBD>e.
La premi<EFBFBD>re ligne du fichier doit contenir les noms des colonnes <EFBFBD> savoir :
REF ; SIREN ; NIC ; RAISON_SOCIALE ; RAISON_SOCIALE2 ; ENSEIGNE ; SIGLE ; NUM_VOIE ; BIS ; TYPE_VOIE ; ADRESSE ; CP ; VILLE ; TEL ; NAFEN ; NAFET ; FILLER
La seule zone obligatoire est la REF qui de plus doit <EFBFBD>tre unique.
Options :
-f=CSV,CLI Format de fichier CSV* ou CLI (format standard plat de S&D)
-s=CHAR S<EFBFBD>parateur de champs (virgule, point-virgule*, /t=tabulation, /p=|, etc...)
-e V<EFBFBD>rifier uniquement l'entreprise (siren) (ignore le NIC)
-b Valide l'existance du siren/siret en base
-d Pr<EFBFBD>sence de Procol, Vente ou Radiation (au Bodacc) // SELECT * FROM `bodacc_detail` WHERE `siren` =332603703
-l Exporter tous les <EFBFBD>tablissements
(*): Valeurs par d<EFBFBD>faut !
";
$tabFichier=array();$separator=';';$j=0;$sirenPresentEnBase=$sirenUniquement=$rechercherSiren=$listeEtablissement=$lastBodacc=false;
$fileFormat='CSV';
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'f': $fileFormat=substr($argv[$i],3);
if ($fileFormat!='CSV' && $fileFormat!='CLI')
die('Format de fichier '. $fileFormat . " inconnu !\n");
break;
case 's': $separator=substr($argv[$i],3); break;
case 'b': $sirenPresentEnBase=true; break;
case 'e': $sirenUniquement=true; break;
case 'l': $listeEtablissement=true; break;
case 'd': $lastBodacc=true; break;
//case 'r': $rechercherSiren=true; break;
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else {
$tabFichier[$j]=$argv[$i];
$j++;
}
}
}
if (count($tabFichier)==0)
die(date ('Y/m/d - H:i:s') . " - Aucun fichier <20> traiter !" . EOL);
if ($separator=='/t') $separator="\t";
elseif ($separator=='/p') $separator='|';
elseif (!isset($separator) || $separator=='') $separator=';';
$iDb=new WDB('insee');
$iDbEve=new WDB('jo');
$iDbHisto=new WDB('historiques');
$iInsee=new MInsee();
$iBodacc=new MBodacc();
echo date ('Y/m/d - H:i:s') . " - D<>but du traitement\r\n";
flush();
foreach ($tabFichier as $nbFichiers=>$fichier_csv)
{
$fp=fopen($fichier_csv, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible d'ouvrir le fichier : ".$fichier_csv." !\n";
die();
}
$fichier_out=str_replace('.csv', '', str_replace('.txt', '', basename($fichier_csv))).'_out.csv';
$fpOut=fopen($fichier_out, 'w');
echo date ('Y/m/d - H:i:s')." - D<>but du traitement du fichier ". $fichier_csv ."...\n";
echo date ('Y/m/d - H:i:s')." - S<>parateur = '$separator'". EOL;
$ref=$siren=$nic=$siret=$rs1=$rs2=$enseigne=$sigle=$numVoie=$bis=$typVoie=$adresse=$cp=$ville=$tel=$nafen=$nafet=-1;
$sansNic=0;
$sansSiren=0;
$sirenTrouves=0;
$siretTrouves=0;
$sirenInvalide=0;
$siretInvalide=0;
$nbLignesIn=-1;
$nbLignesInErr=0;
$nbLignesOut=0;
$fields='SIREN, NIC, NOM, NOM2, ENSEIGNE, SIGLE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_COMP, ADR_DISTSP, ADR_CP, ADR_LIBCOM, APE_ENT, SIEGE, CJ, APE_ETAB, ACTIF%10 AS ACTIF, PROCOL, CAPITAL, CAPITAL_DEV, TEFF_ENT, ADR_DEP, ADR_COM, TCA, TCAEXP, TEFF_ET, EXPLEN, DEFEN, MONOREG, REGIMP, MONOACT, DCREN, (2008-(SUBSTRING(DCREN,1,4))) AS AGE, AUXILT, SAISONAT, CIVILITE, NBETAB, TEL, FAX, DIR_FCT, DIR_IDEN, DIR_DATEN, DIR_LIEUN, DCRET, EFF_ENT';
while (true)
{
if ($nbLignesIn==-1 && $fileFormat=='CSV')
{ // L'ent<6E>te contient la structure du fichier
// On compte le nombre de colonnes du fichier
$data = fgetcsv($fp, 3000, $separator);
//print_r($data);
if ($data==false) break; // Fin de fichier
$nbColonnes=count($data);
for($i=0; $i<$nbColonnes; $i++) {
$nomColonne=strtoupper(trim($data[$i]));
switch($nomColonne) {
case 'REF': $ref=$i; break;
case 'SIREN': $siren=$i; break;
case 'NIC': $nic=$i; break;
case 'SIRET': $siret=$i; break;
case 'RAISON_SOCIALE': $rs1=$i; break;
case 'RAISON_SOCIALE2': $rs2=$i; break;
case 'ENSEIGNE': $enseigne=$i; break;
case 'SIGLE': $sigle=$i; break;
case 'NUM_VOIE': $numVoie=$i; break;
case 'BIS': $bis=$i; break;
case 'TYPE_VOIE': $typVoie=$i; break;
case 'ADRESSE': $adresse=$i; break;
case 'CP': $cp=$i; break;
case 'VILLE': $ville=$i; break;
case 'TEL': $tel=$i; break;
case 'NAFEN': $nafen=$i; break;
case 'NAFET': $nafet=$i; break;
case 'FILLER':
default: break;
}
$tabColonnes[$i]=$nomColonne;
$tabColonnesVides[$i]=0;
$tabColonnesAzero[$i]=0;
}
if ($ref==-1) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Le fichier '$fichier_csv' ne contient pas de r<>f<EFBFBD>rence !". EOL;
die();
} elseif ($siret==-1) {
if ($siren==-1) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Le fichier '$fichier_csv' ne contient pas de siren/siret !". EOL;
die();
}
if ($nic==-1 && !$sirenUniquement) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Le fichier '$fichier_csv' ne contient pas de nic !". EOL;
die();
}
}
echo date ('Y/m/d - H:i:s')." - Ligne d'ent<6E>te correcte...". EOL;
$strOut=implode($separator, $data).$separator.'SIREN valide ?'.$separator.'SIREN trouve ?'.$separator . 'Date Evenement'.$separator;
if ($lastBodacc) $strOut.='Annonce Bodacc'. $separator .'Date Bodacc'. $separator ;
$strOut.=str_replace(', ', $separator, preg_replace('/\(.*\) AS /Ui', '', $fields)).EOL;
fwrite($fpOut, $strOut);
$nbLignesIn++;
continue;
} elseif ($nbLignesIn==-1 && $fileFormat=='CLI') {
$tabColonnes[ 0]='CLI'; // 1 3 Anum. Obligatoire Identifiant Fichier Client
$tabColonnes[ 1]='DATE_FICHIER'; // 4 8 Num. Obligatoire Date du fichier
$tabColonnes[ 2]='HEURE_FICHIER'; // 12 6 Num. Facultatif Heure du fichier
$tabColonnes[ 3]='NUM_FICHIER'; // 18 10 Num. Facultatif Num<75>ro d'incr<63>ment entre 2 livraisons
$tabColonnes[ 4]='ID_CLIENT'; // 28 36 Anum. Obligatoire Identifiant Client
$tabColonnes[ 5]='TYPE_PRESTATION'; // 64 32 Anum. Obligatoire Type de prestation
$tabColonnes[ 6]='TYPE_MAJ'; // 96 3 Anum. Facultatif Type de mise <20> jour
$tabColonnes[ 7]='SIREN'; $siren=7; // 99 9 Num. Obligatoire* SIREN
$tabColonnes[ 8]='NIC'; $nic=8; // 108 5 Num. Facultatif NIC
$tabColonnes[ 9]='RAISON_SOCIALE'; $rs1=9; // 113 60 Anum. Obligatoire* Raison Sociale ou Nom
$tabColonnes[10]='PRENOM'; $rs2=10; // 173 40 Anum. Facultatif Pr<50>nom(s)
$tabColonnes[11]='ENSEIGNE'; $enseigne=11; // 213 40 Anum. Facultatif Enseigne
$tabColonnes[12]='SIGLE'; $sigle=12; // 253 20 Anum. Facultatif Sigle
$tabColonnes[13]='ADRESSE'; $adresse=13; // 273 60 Anum. Obligatoire* Ligne d'adresse
$tabColonnes[14]='CP'; $cp=14; // 333 5 Anum. Obligatoire* Code Postal
$tabColonnes[15]='VILLE'; $ville=15; // 338 40 Anum. Obligatoire* Commune
$tabColonnes[16]='CODECOM'; // 378 5 Num. Facultatif Code Insee Commune
$tabColonnes[17]='CODEPAYS'; // 383 3 Anum. Facultatif Code Pays norme ISO
$tabColonnes[18]='TEL'; $tel=18; // 386 15 Anum. Facultatif T<>l<EFBFBD>phone ou Fax
$tabColonnes[19]='DATE_NAISS'; // 401 8 Num. Facultatif Date de naissance
$tabColonnes[20]='CJ'; // 409 4 Num. Facultatif Code cat<61>gorie Juridique
$tabColonnes[21]='NAFEN'; $nafen=21; // 413 5 Anum. Facultatif Code Activit<69> (NAF)
$tabColonnes[22]='REF'; $ref=22; // 418 18 Anum. Facultatif R<>f<EFBFBD>rence Client
$tabColonnes[23]='NAFET'; $nafet=23; // 413 5 Anum. Facultatif Code Activit<69> (NAF)
$tabColonnes[24]='FILLER'; // 436 64 Anum. Facultatif FILLER
$siret=$numVoie=$bis=$typVoie=-1;
$nbColonnes=count($tabColonnes);
for($i=0; $i<$nbColonnes; $i++) {
$tabColonnesVides[$i]=0;
$tabColonnesAzero[$i]=0;
}
echo date ('Y/m/d - H:i:s')." - Ecriture de la ligne d'ent<6E>te...". EOL;
$strOut=implode($separator, $tabColonnes).$separator.'SIREN_VALIDE'.$separator.'SIREN_TROUVE'.$separator . //'Date Evenement'.$separator;
'NbEtabActif'.$separator.'EvenDat'.$separator.'codeBodacc'.$separator.'dateBodacc'.$separator.'codeEven'.$separator.'dateEven'.$separator.'annonce'.$separator.'capital'.$separator.
'capitalDev'.$separator.'exerciceDate'.$separator.'exerciceDepot'.$separator.'activite'.$separator.'parentSiren'.$separator.
'parentRS'.$separator.'parentPays'.$separator.'noteStructure'.$separator;
/*R<EFBFBD>f<EFBFBD>rence M<EFBFBD>d<EFBFBD>ric
Chiffre d'Affaire
T<EFBFBD>l<EFBFBD>phone
Nombre de salari<EFBFBD>s
nombre d'<EFBFBD>tablissements
repr<EFBFBD>sentant(s) l<EFBFBD>gal (aux)
site web (si disponible)
Ratio de productivit<EFBFBD> pour le secteur<EFBFBD>(CA / Effectif = K<EFBFBD> /pers.)
Actionnaire (liens inter-entreprises)
Score Financier classement en fonction des priorit<EFBFBD>s M<EFBFBD>d<EFBFBD>ric
*/
if ($lastBodacc) $strOut.='Annonce Bodacc'. $separator .'Date Bodacc'. $separator ;
$strOut.=str_replace(', ', $separator, $fields).EOL;
fwrite($fpOut, $strOut);
$nbLignesIn++;
continue;
}
if ($fileFormat=='CSV') {
$data = fgetcsv($fp, 3000, $separator);
if ($data==false) break; // Fin de fichier
} else {
$line = fgets($fp, 1024);
if ($line==false) break; // Fin de fichier
$data[ 0]=strtoupper(trim(substr($line, 0, 3))); // Identifiant Fichier Client
if ($data[0]<>'CLI') {
echo date ('Y/m/d - H:i:s') . " - Ligne $nbLignesIn, position 1 <20> 3, CLI attendu : $line\r\n";
$nbLignesInErr++;
}
$data[ 1]=trim(substr($line, 3, 8)); // Date du fichier
$data[ 2]=trim(substr($line, 11, 6)); // Heure du fichier
$data[ 3]=trim(substr($line, 17, 10)); // Num<75>ro d'incr<63>ment entre 2 livraisons
$data[ 4]=trim(substr($line, 27, 36)); // Identifiant Client
$data[ 5]=trim(substr($line, 63, 32)); // Type de prestation
$data[ 6]=trim(substr($line, 95, 3)); //Type de mise <20> jour
$data[ 7]=trim(substr($line, 98, 9)); // SIREN
$data[ 8]=trim(substr($line, 107, 5)); // NIC
$data[ 9]=trim(preg_replace('/ +/', ' ', substr($line, 112, 60))); // Raison Sociale ou Nom
$data[10]=trim(substr($line, 172, 40)); // Pr<50>nom(s)
$data[11]=trim(substr($line, 212, 40)); // Enseigne
$data[12]=trim(substr($line, 252, 20)); // Sigle
$data[13]=trim(preg_replace('/ +/', ' ', substr($line, 272, 60))); // Ligne d'adresse
$data[14]=trim(substr($line, 332, 5)); // Code Postal
$data[15]=trim(substr($line, 337, 40)); // Commune
$data[16]=trim(substr($line, 377, 5)); // Code Insee Commune
$data[17]=trim(substr($line, 382, 3)); // Code Pays norme ISO
$data[18]=trim(preg_replace('/\D/', '', substr($line, 385, 15))); // T<>l<EFBFBD>phone ou Fax
$data[19]=trim(substr($line, 400, 8)); // Date de naissance
$data[20]=trim(substr($line, 408, 4)); // Code cat<61>gorie Juridique
$data[21]=trim(substr($line, 412, 5)); // Code Activit<69> (NAF)
$data[22]=trim(substr($line, 417, 18)); // R<>f<EFBFBD>rence Client
$data[23]=trim(substr($line, 435, 5)); // Code Activit<69> (NAF)
$data[24]=trim(substr($line, 440, 59)); // FILLER
}
$msgValide=$msgTrouve=$evenDat='';
$codeBodacc=$dateBodacc=$txtEven=$dateEven=$dateEvenInsee=$codeEvenInsee=$annonce=$capital=$capitalDev=$exerciceDate=$exerciceDepot=$activite='';
$rSocLu=$adrLu=$cpLu=$villeLu=$nafetLu='';
$rsInpi=$numRC='';
$tabEtabs=array();
$nbEtabsActifs=0;
/* On traite chaque ligne du fichier */
if ($siret>-1) {
//echo "Ligne $nbLignesIn : Siret ". $data[$siret] . EOL;
$sirenLu=substr(trim($data[$siret]),0,9);
$nicLu=substr(trim($data[$siret]),9,5);
} else {
//echo "Ligne $nbLignesIn : Siret ". $data[$siren] .' '. $data[$nic] . EOL;
$sirenLu=trim($data[$siren]);
$nicLu=trim(@$data[$nic]);
$rSocLu=strtoupper(trim(@$data[$rs1]));
$adrLu=strtoupper(trim(@$data[$adresse]));
$cpLu=trim(@$data[$cp]);
$villeLu=strtoupper(trim(@$data[$ville]));
$nafetLu=strtoupper(trim(@$data[$nafet]));
}
//print_r($data);
//die();
$ebe=$ca=$rn=$site='';
if ($sirenLu<>'') {
$trouve=true;
$cj=0;
if ($nicLu=='' || $sirenUniquement) {
$sansNic++;
if (!$iInsee->valideSiren($sirenLu)) { $msgValide='Siren invalide'; $sirenInvalide++; }
if ($sirenPresentEnBase || $listeEtablissement) {
if ($listeEtablissement) $limit='';
else $limit='LIMIT 0,1';
$entrep=$iDb->select('identite', $fields, "SIREN=$sirenLu AND SIEGE=1 AND SIREN<>0 ORDER BY ACTIF DESC $limit", false, MYSQL_ASSOC);
if (count($entrep)==0) { $msgTrouve='Siren non trouv<75>'; $trouve=false; }
else { $sirenTrouves++;
$nic=$entrep[0]['NIC'];
$cj=$entrep[0]['CJ'];
$tabEtabs=$entrep;
//$tabEtabs=$entrep;
}
}
} else {
if (!$iInsee->valideSiren($sirenLu, $nicLu)) { $msgValide='Siret invalide'; $siretInvalide++; }
if ($sirenPresentEnBase || $listeEtablissement) {
if ($listeEtablissement) $limit='';
else $limit='LIMIT 0,1';
$etab=$iDb->select('identite', $fields, "SIREN=$sirenLu AND NIC=$nicLu $limit", false, MYSQL_ASSOC);
if (count($etab)==0) { $msgTrouve='Siret non trouv<75>';
$trouve=false;
$etab=$iDb->select('identite', $fields, "SIREN=$sirenLu ORDER BY ACTIF DESC, SIEGE DESC $limit", false, MYSQL_ASSOC);
if (count($etab)>0) {
$sirenTrouves++;
$tabEtabs=$etab;
$msgTrouve='Siret non trouv<75>, mais entreprise trouv<75>e';
} else $tabEtabs=array();
}
else { $siretTrouves++;
$tabEtabs=$etab;
$cj=$etab[0]['CJ'];
}
}
}
if ($iInsee->valideSiren($sirenLu)) {
$tmp=$iDb->select('identite', 'count(*)', "SIREN=$sirenLu AND ACTIF=1", false);
$nbEtabsActifs=$tmp[0][0];
} else $nbEtabsActifs=0;
if (!$trouve) {
$nicT='';
$fieldsEve="t.SORLJ as SORLJ_N, insSIREN, insNIC, 'ND' as SORSNO, insNOMEN, insNOMET, insSIGLE, insCADR, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insDISTSP, insACHPOSTE, insLIBCOM, substring(insACHPOSTE,1,5) as insCODPOS, insAPET as insAPET700, insTRSIEGE as insSIEGE, insCJ, insAPEN as insAPEN700, insEVE, insDATE, insNICTRAN";
if ($nicLu=='' || $sirenUniquement)
$eve=$iDbEve->select('insee_eve e LEFT JOIN etablissements t ON t.SIREN=e.insSIREN', $fieldsEve, "insSIREN='$sirenLu' AND insEVE='FF' ORDER BY insDATE DESC", false, MYSQL_ASSOC);
else $eve=$iDbEve->select('insee_eve e LEFT JOIN etablissements t ON t.SIREN=e.insSIREN', $fieldsEve, "insSIREN='$sirenLu' AND insNIC='$nicLu' AND ( insEVE LIKE '%F' OR insEVE LIKE '%D' ) ORDER BY insDATE DESC", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$evenDat=$even['insDATE'];
if ($even['insEVE']=='FF') $msgTrouve='Entreprise cess<73>e';
elseif ($even['insEVE']=='TF') $msgTrouve='Etablissement transf<73>r<EFBFBD>';
elseif ($even['insEVE']=='OD') $msgTrouve='Etablissement d<>sactiv<69>';
elseif ($even['insEVE']=='TD') $msgTrouve='Etablissement d<>sactiv<69> et transf<73>r<EFBFBD>';
else $msgTrouve='Etablissement ferm<72>/d<>sactiv<69>';
if ($even['insNICTRAN']<>'') $nicT=$even['insNICTRAN'];
else $nicT=$nicLu;
unset ($even['insEVE']);
unset ($even['insDATE']);
unset ($even['insNICTRAN']);
$tabEtabs=array(0=>$even);
} else {
$eve=$iDbEve->select('insee_eve e LEFT JOIN etablissements t ON t.SIREN=e.insSIREN', $fieldsEve, "insSIREN='$sirenLu' AND insEVE='FF' ORDER BY insDATE DESC", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$evenDat=$even['insDATE'];
if ($even['insEVE']=='FF') $msgTrouve='Entreprise cess<73>e';
else $msgTrouve='Etablissement ferm<72>/d<>sactiv<69>';
unset ($even['insEVE']);
unset ($even['insDATE']);
unset ($even['insNICTRAN']);
$tabEtabs=array(0=>$even);
} else {
if ($nicLu=='' || $sirenUniquement)
$eve=$iDbEve->select('etablissements', "SORLJ as SORLJ_N, SIREN as insSIREN, NIC as insNIC, 'ND' as SORSNO, SONOM as insNOMEN, SOENS as insNOMET, SOSIG as insSIGLE, SOCPLA as insCADR, SONRU as insNUMVOIE, SOBTQ as insINDREP, '' as insTYPVOIE, SORUE as insLIBVOIE, '' as insDISTSP, concat(SOCP,' ', SOCOM) as insACHPOSTE, SOCOM as insLIBCOM, SOCP as insCODPOS, SOAPET as insAPET700, SOSTAE as insSIEGE, SOCJEN as insCJ, SOAPEE as insAPEN700, SOORIG", "SIREN='$sirenLu' ORDER BY SOORIG DESC", false, MYSQL_ASSOC);
else $eve=$iDbEve->select('etablissements', "SORLJ as SORLJ_N, SIREN as insSIREN, NIC as insNIC, 'ND' as SORSNO, SONOM as insNOMEN, SOENS as insNOMET, SOSIG as insSIGLE, SOCPLA as insCADR, SONRU as insNUMVOIE, SOBTQ as insINDREP, '' as insTYPVOIE, SORUE as insLIBVOIE, '' as insDISTSP, concat(SOCP,' ', SOCOM) as insACHPOSTE, SOCOM as insLIBCOM, SOCP as insCODPOS, SOAPET as insAPET700, SOSTAE as insSIEGE, SOCJEN as insCJ, SOAPEE as insAPEN700, SOORIG", "SIREN='$sirenLu' AND NIC='$nicLu' ORDER BY SOORIG DESC", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$msgTrouve='';
if ($even['SOORIG']=='9') $msgTrouve='Entreprise cess<73>e';
elseif ($even['SOORIG']=='8') $msgTrouve='Etablissement ferm<72>';
// if ($even['SORLJ_N']=='O') $msgTrouve.='Proc<6F>dure Collective';
unset ($even['SOORIG']);
$tabEtabs=array(0=>$even);
}
}
//$saisie = trim(fgets(STDIN));
}
if ($nicT<>'') {
$eve=$iDbEve->select('insee_eve e LEFT JOIN etablissements t ON t.SIREN=e.insSIREN', $fieldsEve, "insSIREN='$sirenLu' AND insNIC='$nicT' ORDER BY insDATE DESC", false, MYSQL_ASSOC);
//$eve=$iDbEve->select('etablissements', "SORLJ as SORLJ_N, SIREN as insSIREN, NIC as insNIC, 'ND' as SORSNO, SONOM as insNOMEN, SOENS as insNOMET, SOSIG as insSIGLE, SOCPLA as insCADR, SONRU as insNUMVOIE, SOBTQ as insINDREP, '' as insTYPVOIE, SORUE as insLIBVOIE, '' as insDISTSP, '' as insACHPOSTE, SOCOM as insLIBCOM, SOCP as insLIBCOM, SOAPET as insAPET700, SOSTAE as insSIEGE, SOCJEN as insCJ, SOAPEE as insAPEN700, SOORIG", "SIREN='$sirenLu' AND NIC='$nicLu' ORDER BY SOORIG DESC", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
unset ($even['insEVE']);
unset ($even['insDATE']);
unset ($even['insNICTRAN']);
$tabEtabs=array(0=>$even);
}
}
}
//-d Pr<50>sence de Procol, Vente ou Radiation (au Bodacc) // SELECT * FROM `` WHERE `` =332603703
if ($lastBodacc) {
$eve=$iDbEve->select('bodacc_detail d, bodacc b', 'd.Rubrique, d.Bodacc_Date_Parution, d.typeEven, d.dateEffet, d.dateCessationActivite, d.dateJugement, b.annonce', "d.siren=$sirenLu AND d.siren>1000 AND ( ( d.Rubrique IN ('procol', 'radiations', 'ventes') AND typeEven NOT LIKE '%5700%') OR typeEven LIKE '%2720%') AND d.id=b.id ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
//$eve=$iDbEve->select('bodacc_detail d, bodacc b', 'd.Rubrique, d.Bodacc_Date_Parution, d.typeEven, d.dateEffet, d.dateCessationActivite, d.dateJugement, b.annonce', "d.siren=$sirenLu AND d.siren>1000 AND d.Rubrique='procol' AND ( typeEven LIKE '%1500%' OR typeEven LIKE '%1501%' OR typeEven LIKE '%1502%' OR typeEven LIKE '%1503%' ) AND d.id=b.id ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$codeBodacc=$even['Rubrique'];
$dateBodacc=$even['Bodacc_Date_Parution'];
$tabEven=explode(';', $even['typeEven']);
$txtEven='';
foreach ($tabEven as $codeEven)
if ($codeEven<>0)
$txtEven.=$iBodacc->getEvenement($codeEven).', ';
else
$txtEven.='';
$txtEven=substr($txtEven,0,strlen($txtEven)-2);
if ($even['dateJugement']<>'0000-00-00')
$dateEven=$even['dateJugement'];
elseif ($even['dateEffet']<>'0000-00-00')
$dateEven=$even['dateEffet'];
elseif ($even['dateCessationActivite']<>'0000-00-00')
$dateEven=$even['dateCessationActivite'];
else
$dateEven='';
//$annonce=preg_replace('/ +/', ' ',strtr($even['annonce'],array(';'=>' ',','=>' ',"\n"=>' ',"\r"=>' ')));
} elseif ($sirenLu>0) {
$strIdAnn=" AND ( e.CODEVE BETWEEN 50 AND 79 OR e.CODEVE BETWEEN 40 AND 41 ) AND e.DATE>=".((date('Y')*1)-12).''.date('md');
//elseif ($rubrique=='R') $strIdAnn=" AND e.CODEVE BETWEEN 40 AND 42 ";
//elseif ($rubrique=='A') return $tabRet;
$bodaccHisto=$iDbHisto->select(
'entrep e, texte x, tribunaux t',//.codEven Code <20>v<EFBFBD>nement du mouvement Bodacc libEven ',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt, t.triNom, t.triSiret',
"e.E1GSIR=$sirenLu AND e.ANBASE=x.annonceNum AND e.CODTRI=t.triCode $strIdAnn AND e.DATE BETWEEN 19960101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);
if (count($bodaccHisto)>0) {
foreach ($bodaccHisto as $ann) {
// $k++;
if ($ann['JAL']==1) $Bodacc_Code='BODA';
elseif ($ann['JAL']==200) $Bodacc_Code='BODB';
if ($ann['CODEVE']>49 && $ann['CODEVE']<80) $procol=true;
if ($ann['CODEVE']<20) $rub='creations'; // 4xxx
elseif ($ann['CODEVE']<=25) $rub='ventes'; // 5xxx
elseif ($ann['CODEVE']<40) $rub='mmd'; // 2xxx
elseif ($ann['CODEVE']<42) $rub='radiations'; // 6xxx
elseif ($ann['CODEVE']<50) $rub='mmd'; // 2xxx
elseif ($ann['CODEVE']<80) $rub='procol'; // 1xxx
$codeBodacc=$rub;
$dateBodacc=substr($ann['DATE'],0,4).'-'.substr($ann['DATE'],4,2).'-'.substr($ann['DATE'],6,2);
$txtEven=$iBodacc->getEvenement($tabOldEven[$ann['CODEVE']]);
$dateEven=$ann['DATE'];
//$annonce=preg_replace('/ +/', ' ',strtr($ann['annonceTxt'],array(';'=>'.',"\n"=>' ',"\r"=>' ')));
break;
}
}
}
}
if ($sirenPresentEnBase && $sirenLu<>0) {// Trouver une option
$eve=$iDbEve->select( 'rncs_entrep', 'raisonSociale, capitalMontant, capitalDevise, numRC2', "siren=$sirenLu", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$rsInpi=$even['raisonSociale'];
$capital=$even['capitalMontant'];
$capitalDev=$even['capitalDevise'];
$numRC=$even['numRC2'];
} else {
$eve=$iDbEve->select( 'bodacc_detail', 'raisonSociale, Capital, CapitalDev', "siren=$sirenLu AND Capital<>0 ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$rsInpi=$even['raisonSociale'];
$capital=$even['Capital'];
$capitalDev=$even['CapitalDev'];
}
$eve=$iDbEve->select( 'bodacc_detail', 'RC', "siren=$sirenLu AND RC<>'' ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$numRC=$even['RC'];
if ($numRC<>'' && substr($numRC,0,2)*1>=30)
$numRC2='19'.$numRC;
elseif ($numRC<>'' && substr($numRC,0,2)*1<30)
$numRC2='20'.$numRC;
else
$numRC2='';
$numRC=$numRC2;
}
}
$eve=$iDbEve->select( 'bodacc_detail', 'dateEffet, Bodacc_Date_Parution', "siren=$sirenLu AND Rubrique='comptes' ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
$exerciceDate=$even['dateEffet'];
$exerciceDepot=$even['Bodacc_Date_Parution'];
}
$eve=$iDbEve->select( 'bodacc_detail', 'activite', "siren=$sirenLu AND activite<>'' AND Activite NOT LIKE 'non precis%' ORDER BY Bodacc_Date_Parution DESC LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
if ($cj<>7210)
$activite=preg_replace('/ +/', ' ',strtr($even['activite'],array(';'=>'.',"\n"=>' ',"\r"=>' ')));
if ($activite=='' && ($cj>90 && $cj<94 ||
$cj>9000 && $cj<9400) ) {
$siretMin=(''.$siren.'00000')*1;
$siretMax=(''.$siren.'99999')*1;
$bodacc=$this->iDb->select( 'asso', 'Assoc_Web, Assoc_Mail, Assoc_Objet, Assoc_NObjet', "Siret BETWEEN $siretMin AND $siretMax AND (Assoc_Objet<>'' OR Assoc_NObjet<>'') ORDER BY Date_Parution DESC LIMIT 0,1", true, MYSQL_ASSOC);
$annCap=@$bodacc[0];
$activite=trim($annCap['Assoc_NObjet']);
if ($activite=='') $activite=trim($annCap['Assoc_Objet']);
if ($site=='') $site=trim($annCap['Assoc_Web']);
//if ($tabRet['Mail']=='') $tabRet['Mail']=trim($annCap['Assoc_Mail']);
} elseif ($activite=='' && $cj<>7210) {
$iDbHisto=new WDB('historiques');
//10 <20> 19// Cr<43>ation d'entreprise
//30 <20> 41
//51 <20> 79=>'1503', // Cloture insuf.Actif
$bodaccHisto=$iDbHisto->select(
'entrep e, texte x',//.codEven Code <20>v<EFBFBD>nement du mouvement Bodacc libEven ',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt',
"e.E1GSIR=$siren AND e.ANBASE=x.annonceNum AND e.DATE<=20041231 AND x.annonceTxt LIKE '%ctivit%' GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);
if (count($bodaccHisto)>0) {
foreach ($bodaccHisto as $idx=>$ann) {
//if ($siren==403119431) $tabRet['Activite'].="$idx(".$ann['CODEVE'].'):'.$ann['annonceTxt'].' / ';
if ( ($ann['CODEVE']<20) ||
($ann['CODEVE']>=30 && $ann['CODEVE']<42) ||
($ann['CODEVE']>=51 && $ann['CODEVE']<80) ) {
//Activite: r
if (preg_match('/Activit(?:e|<7C>)(?:.|)\:(.*)(?:Adresse(?:.*|)|Commentaires?|Administration|Etablissement principal|Date d\'effet|Date.de.d.but d.activit.|Capital|Nom commercial)(?:.|)\:/Uis', $ann['annonceTxt'], $matches))
$activite=$matches[1];
break;
}
/*$bodaccHisto=$iDbHisto->select(
'entrep e, texte x, tribunaux t',//.codEven Code <20>v<EFBFBD>nement du mouvement Bodacc libEven ',
'e.ANBASE, e.NOBOD, e.CODTRI, e.JAL, e.DATE, e.CODEVE, e.SSCODE, e.DEPT, e.NOANN, e.ROLE, e.SIREN, e.E1GSIR, e.E1GNIC, x.annonceNum, x.annonceTxt, t.triNom, t.triSiret',
"e.SIREN=$siren AND e.ANBASE=x.annonceNum AND e.CODTRI=t.triCode $strIdAnn AND e.DATE BETWEEN 19920101 AND 20041231 GROUP BY e.ANBASE ORDER BY e.DATE DESC", true, MYSQL_ASSOC);*/
}
}
}
}
/** Liens
$parentSiren=$sirenLu;
$tour=0;
while(1) {
$tour++;
if ($parentSiren*1>0) {
$eve=$iDbEve->select( 'liens', 'siren2, RaisonSociale, Pays', "siren1=$parentSiren AND ActionPart=1 AND MajMin='+' LIMIT 0,1", false, MYSQL_ASSOC);
if (isset($eve[0])) {
$even=$eve[0];
echo $parentSiren.' a pour actionnaire maj. '. $even['siren2']." ($tour) ".$even['RaisonSociale'].' ('.$even['Pays'].')'.EOL;
if ($parentSiren==$even['siren2']) break;
$parentSiren=$even['siren2'];
$parentRS =$even['RaisonSociale'];
$parentPays =$even['Pays'];
} else break;
} else break;
}
if ($parentSiren==$sirenLu)
$parentSiren=$parentRS=$parentPays='';
$etab=$tabEtabs[0];
*/
/*
$isolv = new MSolvabilite( $sirenLu, $etab['APE_ENT'], $etab['TEFF_ENT'], $etab['EFF_ENT'], $etab['ADR_CP'], $etab['CJ'],
$etab['CAPITAL'], $etab['CAPITAL_DEV'], $etab['DCREN'], $etab['DCRET']);//, $tabIdentite['Singularite']);
$noteStructure=$isolv->getSolvabilite();
$mBil=new MBilans($sirenLu);
$tabBilans=$mBil->listeBilans(false);
$numBil=0;
foreach ($tabBilans as $millesime=>$bil) {
$tabTmp=$mBil->getBilan(substr($millesime,-10), substr($millesime,0,1), $bil['ref']);
if (substr($millesime,0,1)=='S') {
$tabTmp2=$mBil->bilanSimplifie2Normal($tabTmp);
$tabBilan[$numBil]=array_merge($tabTmp2, $tabTmp);
} else {
$tabBilan[$numBil]=$tabTmp;
}
$numBil++;
if ($numBil>1) break;
}
$cotation=new ICotation($tabBilan[0]);
$ebe=$cotation->calculEBE();
$ca =$cotation->calculChiffreAffaires($nafen);
$rn =$tabBilan[0]['HN'];
*/
$iBourse=new MBourse($siren);
$isin=$iBourse->getCodeIsin($siren);
if ($site=='') {
$eve=$iDbEve->select( 'infos_entrep', 'web', "siren=$sirenLu");
$site=@$eve[0][0];
}
$dirs=@$iInsee->getDirigeants($sirenLu, false);
$strDir='';$nbDir=0;
foreach ($dirs as $dir) {
switch ($dir['Titre']) {
case 'Pr<50>sident':
case 'Associ<63>-g<>rant':
case 'Co-g<>rant':
case 'Contr<74>leur de gestion':
case 'Directeur g<>n<EFBFBD>ral':
case 'Directeur g<>n<EFBFBD>ral d<>l<EFBFBD>gu<67>':
case 'Directeur g<>n<EFBFBD>ral non administrateur':
case 'Directeur g<>n<EFBFBD>ral unique':
case 'G<>rant':
case 'Gouverneur':
case 'Liquidateur':
case 'Pr<50>sident':
case 'Pr<50>sident Directeur G<>n<EFBFBD>ral':
case 'Pr<50>sident du conseil d\'administration':
case 'Pr<50>sident du conseil de surveillance':
case 'Pr<50>sident du directoire':
case 'Repr<70>sentant en France d\'une soci<63>t<EFBFBD> <20>trang<6E>re':
case 'Sous-gouverneur':
case 'Vice-pr<70>sident':
$strDir.=$dir['Titre'].'#'.$dir['Nom'].' '.$dir['Prenom'].'#'.$dir['NaissDate']."##";
$nbDir++;
if ($nbDir==2) break(2);
break;
default: break;
}
$strDir.='';
}
$dateEvenInsee=$codeEvenInsee='';
$etabActif=@$tabEtabs[0]['ACTIF'];
if ($etabActif==0) {
// L'<27>tablissement est inactif <20> l'INSEE on cherche le type et la date de cessation !
$eve=$iDb->select('insee_even', 'insEVE, insDATEVE', "insSIREN='$sirenLu' and insNIC='$nic' AND insEVE IN ('400','410','420','425','430','435','FF','OD','OF') ORDER BY insDATEVE DESC", false, MYSQL_ASSOC);
$dateEvenInsee=@$eve[0]['insDATEVE'];
$codeEvenInsee=@$eve[0]['insEVE'];
}
}
} else {
$msgTrouve='Siren absent';
//$strOut=implode($separator, $data).$separator.'SIREN non communiqu<71>';
$sansSiren++;
}
for($i=0; $i<$nbColonnes; $i++) {
$tData=trim($data[$i]);
/** Comptage des champs vide **/
if ($tData=='') $tabColonnesVides[$i]++;
/** Comptage des champs <20> 0 **/
$tData0=(int)$tData*1;
if ($tData<>'' && ( $tData0==0 && is_numeric($tData) ) ) $tabColonnesAzero[$i]++;
}
$tabDiff=array();
if (count($tabEtabs)>0) {
foreach ($tabEtabs as $etab) {
$adrEtab=trim(preg_replace('/( +|^0 )/',' ', ($etab['ADR_NUMVOIE']*1).' '.$etab['ADR_BTQ'].' '.$etab['ADR_TYPVOIE'].' '.$etab['ADR_LIBVOIE']));
$tabDiff['RS1'] =@levenshtein($rSocLu, strtoupper($etab['NOM']));
$tabDiff['RS2'] =@levenshtein($rSocLu, strtoupper($etab['NOM2']));
$tabDiff['RS3'] =@levenshtein($rSocLu, strtoupper($rsInpi));
$tabDiff['Adr'] =@levenshtein($adrLu, strtoupper($adrEtab));
$tabDiff['Cp'] =@levenshtein($cpLu, strtoupper($etab['ADR_CP']));
$tabDiff['Ville']=@levenshtein($villeLu, strtoupper($etab['ADR_LIBCOM']));
$tabDiff['Naf'] =@levenshtein($nafetLu, strtoupper($etab['APE_ETAB']));
$strOut=@trim(implode($separator, $data) .$separator. $msgValide .$separator. $msgTrouve .$separator. $nbEtabsActifs .$separator. $evenDat .$separator. $codeBodacc .$separator. $dateBodacc .$separator.$txtEven.$separator.$dateEven.$separator.$annonce.$separator.$capital .$separator. $capitalDev .$separator. $exerciceDate .$separator. $exerciceDepot .$separator. $activite .$separator. $parentSiren .$separator. $parentRS .$separator. $parentPays .$separator. $noteStructure .$separator. $ebe .$separator. $ca .$separator. $rn .$separator. $site .$separator. $etabActif .$separator. $dateEvenInsee .$separator. $codeEvenInsee .$separator. $strDir .$separator. $numRC .$separator. $rsInpi. $separator . implode($separator, $etab). $separator . implode($separator, $tabDiff)). EOL;
fwrite($fpOut, $strOut);
$nbLignesOut++;
}
} else {
$strOut=@trim(implode($separator, $data) .$separator. $msgValide .$separator. $msgTrouve .$separator. $nbEtabsActifs .$separator. $evenDat .$separator. $codeBodacc .$separator. $dateBodacc .$separator.$txtEven.$separator.$dateEven.$separator.$annonce.$separator.$capital .$separator. $capitalDev .$separator. $exerciceDate .$separator. $exerciceDepot .$separator. $activite .$separator. $parentSiren .$separator. $parentRS .$separator. $parentPays .$separator. $noteStructure .$separator. $ebe .$separator. $ca .$separator. $rn .$separator. $site .$separator. $etabActif .$separator. $dateEvenInsee .$separator. $codeEvenInsee .$separator. $strDir .$separator. $numRC .$separator. $rsInpi .$separator). EOL;
fwrite($fpOut, $strOut);
$nbLignesOut++;
}
$nbLignesIn++;
}
echo date ('Y/m/d - H:i:s')." - Fichier '". $fichier_csv ."' : $nbLignesIn lignes dont :".EOL;
echo date ('Y/m/d - H:i:s')." - ... lignes sans NIC ........ $sansNic".EOL;
echo date ('Y/m/d - H:i:s')." - ... lignes sans SIREN ...... $sansSiren".EOL;
echo date ('Y/m/d - H:i:s')." - ... siren invalide ......... $sirenInvalide".EOL;
echo date ('Y/m/d - H:i:s')." - ... siret invalide ......... $siretInvalide".EOL;
if ($sirenPresentEnBase) {
$sirenValides=$nbLignesIn-$sirenInvalide;
$siretValides=$nbLignesIn-$siretInvalide;
echo date ('Y/m/d - H:i:s')." - ... siren valides .......... ".$sirenValides. " dont $sirenTrouves en base !".EOL;
echo date ('Y/m/d - H:i:s')." - ... siret valides .......... ".$siretValides. " dont $siretTrouves en base !".EOL;
}
echo date ('Y/m/d - H:i:s')." - Fichier g<>n<EFBFBD>r<EFBFBD> en sortie '". $fichier_out ."' : $nbLignesOut lignes.".EOL;
for($i=0; $i<$nbColonnes; $i++) {
echo $tabColonnes[$i].'='.$tabColonnesVides[$i].' champs vides, '.$tabColonnesAzero[$i]." champs <20> ZERO / $nbLignesIn lignes".EOL;
}
echo date ('Y/m/d - H:i:s')." - Fin du traitement du fichier ". $fichier_csv ."...".EOL;
flush();
fclose($fpOut);
fclose($fp);
die();
/*$pertinence=false;
$nbRep=20;
$siege=1;
//soorig=7, sonru=75, socp=75116, socjen=5599, sostae=1, soedpe=75
$tabTables=array(
array('db'=>'jo', 'table'=>'bodacc_detail', 'champRS'=>'raisonSociale',
'champAdresse'=>'adresse',
'champCP'=>'codePostal',
'champVille'=>'ville',
'champSiren'=>'siren',
'champSirenValide'=>'sirenValide'),
);
foreach ($tabTables as $i=>$table) { // On boucle sur chaque table
$iDb=new WDB($table['db']);
if ($iDb === false) die('Could not select database: ' . mysql_error());
$listeNonSirene=$iDb->select($table['table'], 'id, '.$table['champSiren'].' as sir, '.$table['champRS'].' as RS, '.$table['champAdresse'].' as Adr, '.$table['champCP'].' as CP, '.$table['champVille'].' as Ville', $table['champSirenValide'].'=0', true);
foreach ($listeNonSirene as $k=>$entrep) {
$raisonSociale=strtoupper(strtr($entrep['RS'], '/(),-\\\'"',' '));
$raisonSociale=preg_replace("/G(E|<7C>)RANT (.*)/",'', $raisonSociale);
$raisonSociale=preg_replace("/^(MLLE |MME |ME )/",'', $raisonSociale);
$raisonSociale=trim(preg_replace("/ +/",' ', strtr($raisonSociale,
array(' N<>E '=>'', 'DIVORC<52>E '=>'', 'D<>NOMINATION '=>'',
'S E L A R L '=>'', 'S A R L '=>'', 'S A S'=>'', 'S A '=>'', 'S C I'=>'', 'S C '=>'', 'SC'=>''))));
$adresse='';
$codePostal=$entrep['CP'];
$ville='';//trim(strtr($entrep['ville'], '/(),',' '));;
$tabTrouve=MInsee::rechercheEtab($raisonSociale, $adresse, $codePostal, $ville, $siege, $nbRep, $pertinence);
$adresse=trim(strtoupper(preg_replace("/[0-9]{1,4}( rue | avenue | boulevard )/i",'',strtr($entrep['Adr'], '/(),-',' '))));
$ville=trim(strtr($entrep['Ville'], '/(),',' '));
echo "RECHERCHE DE : ". $entrep['id'].', '.$entrep['sir'].' : '.$raisonSociale.', '.$adresse.', '.$codePostal.' '.$ville.' ('.count($tabTrouve). " r<>ponses) ";
if (count($tabTrouve)==1) {
$entrepT=$tabTrouve[0];
$siren=substr($entrepT['Siret'],0,9);
echo "$siren\n";
//print_r($entrepT);die();
if ($table['db']<>'jo'){
$iDb->update($table['table'], array($table['champSiren']=>$siren), "id='".$entrep['id']."'", true) or die(mysql_error());
}
else {
$iDb->update($table['table'], array($table['champSiren']=>$siren, $table['champSirenValide']=>3), 'id='.$entrep['id'], true) or die(mysql_error());
}
} elseif (count($tabTrouve)==0) {
echo " Pas de r<>ponse !\n";
} else {
echo "\n";
$siren1=substr($tabTrouve[0]['Siret'],0,9);
$sirenDiff=$sirenNomIdem=$sirenAdrIdem=false;
$tabSiren=array(0=>0);
foreach ($tabTrouve as $j=>$entrepT) {
if($j==0) echo "PROBABLES : \n";
$siren=substr($entrepT['Siret'],0,9);
$tabSiren[]=$siren;
$nomT=strtr($entrep['RS'], '/(),-',' ');
$adresseT=trim(strtoupper(preg_replace("/[0-9]{1,4}(.*)( R | AV | RUE | AVENUE | BD | BOULEVARD )/i",'',strtr($entrepT['Adresse'], '/(),-',' '))));
if (levenshtein($raisonSociale,$nomT)>2) $sirenNomIdem=$siren;
if ($siren<>$siren1) $sirenDiff=true;
if (levenshtein($adresse,$adresseT)<2) $sirenAdrIdem=$siren;
$num=$j+1;
echo "$num. $siren, ". $entrepT['Nom'].', '.$entrepT['Nom2'].', '.$entrepT['Enseigne'].', '.$entrepT['Adresse'].', '.$entrepT['CP'].', '.$entrepT['Ville']."\n";
}
if ($sirenDiff==false)
// Tous les SIREN sont identiques, l'entreprise ttouv<75>e est la bonne !
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$siren), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$siren, $table['champSirenValide']=>4), 'id='.$entrep['id'], true) or die(mysql_error());
elseif ($sirenNomIdem!=false)
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$sirenNomIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sirenNomIdem, $table['champSirenValide']=>5), 'id='.$entrep['id'], true) or die(mysql_error());
elseif ($sirenAdrIdem!=false)
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$sirenAdrIdem), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sirenAdrIdem, $table['champSirenValide']=>6), 'id='.$entrep['id'], true) or die(mysql_error());
else
{ //if ($semiManuel==true);
$saisie='';
while($semiManuel==true && $saisie=='') {
echo "Veuillez saisir le num<75>ro qui identifie la bonne entreprise (0 si pas de r<>ponse) : ";
$saisie = trim(fgets(STDIN));
if ($saisie==0) break;
if ($saisie>0 && $saisie<=$j+1) {
$sir=$tabSiren[$saisie];
if ($table['db']<>'jo')
$iDb->update($table['table'], array($table['champSiren']=>$sir), "id='".$entrep['id']."'", true) or die(mysql_error());
else
$iDb->update($table['table'], array($table['champSiren']=>$sir, $table['champSirenValide']=>2),
'id='.$entrep['id'], true) or die(mysql_error());
break;
}
}
}
}
echo "\n";
}*/
}
?>