batch/1.1/old/validation.php
2012-10-16 07:44:31 +00:00

882 lines
42 KiB
PHP
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
/** Table de correspondance **/
$tabOldEven=array( 10=>'4000', // Création d'entreprise
11=>'4000',
13=>'4000',
14=>'4000',
15=>'4000',
16=>'4000',
17=>'4200', // Création d'é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é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édure d'Insolvabilité Europé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é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ôt des créances
79=>'1503', // Cloture insuf.Actif
92=>'1450', //Cessation paiement ??
);
/**
* @todo
* 1. Numéroter toutes les procédures OK
* 2. Pouvoir faire du multiligne avec : 100 Annonce Bodacc
* 101 Commentaire
* 102 Activite déclaré au Bodacc
* 103 texte rectificatif
* 104 Annonce complète au format texte
* 105 Structure Dirigeants BODACC
* 106 Libellé du Périmètre de la vente
* 3.
* 5. JugesCommissaires à intégrer correctement
Noms et pré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é au BODACC est faut mais S&D a affecté 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 à qualifier en entrée.
La première ligne du fichier doit contenir les noms des colonnes à 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 être unique.
Options :
-f=CSV,CLI Format de fichier CSV* ou CLI (format standard plat de S&D)
-s=CHAR Séparateur de champs (virgule, point-virgule*, /t=tabulation, /p=|, etc...)
-e Vérifier uniquement l'entreprise (siren) (ignore le NIC)
-b Valide l'existance du siren/siret en base
-d Présence de Procol, Vente ou Radiation (au Bodacc) // SELECT * FROM `bodacc_detail` WHERE `siren` =332603703
-l Exporter tous les établissements
(*): Valeurs par dé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 à 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ê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é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ê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éro d'incré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 à 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é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éphone ou Fax
$tabColonnes[19]='DATE_NAISS'; // 401 8 Num. Facultatif Date de naissance
$tabColonnes[20]='CJ'; // 409 4 Num. Facultatif Code catégorie Juridique
$tabColonnes[21]='NAFEN'; $nafen=21; // 413 5 Anum. Facultatif Code Activité (NAF)
$tabColonnes[22]='REF'; $ref=22; // 418 18 Anum. Facultatif Référence Client
$tabColonnes[23]='NAFET'; $nafet=23; // 413 5 Anum. Facultatif Code Activité (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ê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éférence Médéric
Chiffre d'Affaire
Téléphone
Nombre de salariés
nombre d'établissements
représentant(s) légal (aux)
site web (si disponible)
Ratio de productivité pour le secteur (CA / Effectif = K€ /pers.)
Actionnaire (liens inter-entreprises)
Score Financier classement en fonction des priorités Médé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 à 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éro d'incré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 à 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é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éphone ou Fax
$data[19]=trim(substr($line, 400, 8)); // Date de naissance
$data[20]=trim(substr($line, 408, 4)); // Code catégorie Juridique
$data[21]=trim(substr($line, 412, 5)); // Code Activité (NAF)
$data[22]=trim(substr($line, 417, 18)); // Référence Client
$data[23]=trim(substr($line, 435, 5)); // Code Activité (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é'; $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é';
$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é, mais entreprise trouvé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ée';
elseif ($even['insEVE']=='TF') $msgTrouve='Etablissement transféré';
elseif ($even['insEVE']=='OD') $msgTrouve='Etablissement désactivé';
elseif ($even['insEVE']=='TD') $msgTrouve='Etablissement désactivé et transféré';
else $msgTrouve='Etablissement fermé/désactivé';
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ée';
else $msgTrouve='Etablissement fermé/désactivé';
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ée';
elseif ($even['SOORIG']=='8') $msgTrouve='Etablissement fermé';
// if ($even['SORLJ_N']=='O') $msgTrouve.='Procé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é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 évè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 à 19// Création d'entreprise
//30 à 41
//51 à 79=>'1503', // Cloture insuf.Actif
$bodaccHisto=$iDbHisto->select(
'entrep e, texte x',//.codEven Code évè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|é)(?:.|)\:(.*)(?: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 évè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ésident':
case 'Associé-gérant':
case 'Co-gérant':
case 'Contrôleur de gestion':
case 'Directeur général':
case 'Directeur général délégué':
case 'Directeur général non administrateur':
case 'Directeur général unique':
case 'Gérant':
case 'Gouverneur':
case 'Liquidateur':
case 'Président':
case 'Président Directeur Général':
case 'Président du conseil d\'administration':
case 'Président du conseil de surveillance':
case 'Président du directoire':
case 'Représentant en France d\'une société étrangère':
case 'Sous-gouverneur':
case 'Vice-pré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'établissement est inactif à 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é';
$sansSiren++;
}
for($i=0; $i<$nbColonnes; $i++) {
$tData=trim($data[$i]);
/** Comptage des champs vide **/
if ($tData=='') $tabColonnesVides[$i]++;
/** Comptage des champs à 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éré en sortie '". $fichier_out ."' : $nbLignesOut lignes.".EOL;
for($i=0; $i<$nbColonnes; $i++) {
echo $tabColonnes[$i].'='.$tabColonnesVides[$i].' champs vides, '.$tabColonnesAzero[$i]." champs à 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|É)RANT (.*)/",'', $raisonSociale);
$raisonSociale=preg_replace("/^(MLLE |MME |ME )/",'', $raisonSociale);
$raisonSociale=trim(preg_replace("/ +/",' ', strtr($raisonSociale,
array(' NÉE '=>'', 'DIVORCÉ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é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é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";
}*/
}
?>