882 lines
42 KiB
PHP
882 lines
42 KiB
PHP
#!/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";
|
||
}*/
|
||
|
||
}
|
||
?>
|