856 lines
41 KiB
PHP
856 lines
41 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
||
<?php
|
||
|
||
function getNomPrenom($strRaisonSociale) {
|
||
$tabRet=array();
|
||
$tabRet['Nom']=$tabRet['NomUsage']=$tabRet['Prenom']='';
|
||
if (preg_match("/(.*)\*(.*)\/(.*)/",$strRaisonSociale,$matches))
|
||
{
|
||
$tabRet['Nom']=$matches[1];
|
||
$tmp=explode('/', $matches[2]);
|
||
if (isset($tmp[1]) && trim($tmp[1])<>'') {
|
||
$tabRet['NomUsage']=$tmp[0];
|
||
$tabRet['Prenom']=$tmp[1];
|
||
} else
|
||
$tabRet['Prenom']=$matches[2];
|
||
}
|
||
return $tabRet;
|
||
}
|
||
|
||
$today=date('Ymd');
|
||
|
||
include_once(FWK_PATH.'common/chiffres.php');
|
||
include_once(FWK_PATH.'common/dates.php');
|
||
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
||
|
||
$strInfoScript='Usage : '.basename($argv[0]). " <option>
|
||
Chargement du/des flux mensuel en provenance de Insee.
|
||
|
||
Options :
|
||
-d Mode debug (Verbosité au maximum)
|
||
-p Chargement d'une ancienne notice (pas de modification de la zone ACTIF chargement des zones différentes)
|
||
-u Ne pas mettre à jour la table identite de l'insee
|
||
-h Ne pas charger la notice dans la base des 'historiques'
|
||
-s Le fichier est le stock annuel de tous les établissements actifs
|
||
-m:AAAAMM Mois de la mise à jour
|
||
-l:XXXX Reprendre à partir de la ligne XXXX
|
||
";
|
||
$iDbI=new WDB('insee');
|
||
$iDbH=new WDB('historiques');
|
||
$iInsee=new MInsee();
|
||
|
||
$nbSiretInvalides=0;
|
||
$modeDebug=$partiel=$moisNotice=$numReprise=false;
|
||
$updateInsee=$histo=true;
|
||
$tabFichier=array();
|
||
$stock=false; // Par défaut, le programme traite des fichiers de MAJ mensuels
|
||
$actif=1; // Par défaut, une fiche établissement active est positionnée à 1 lors d'un chargement de MAJ mensuelle
|
||
|
||
$argv=$_SERVER['argv'];
|
||
//if ($_SERVER['argc']==1) die("Non géré pour l'instant : chargera les derniers fichiers EVEN non chargés !".EOL);
|
||
|
||
for ($i=1,$j=0; isset($argv[$i]); $i++) {
|
||
if (substr($argv[$i],0,1)=='-') {
|
||
switch (substr($argv[$i],1,1)) {
|
||
case 'd': $modeDebug=true; break;
|
||
case 'h': $histo=false; break;
|
||
case 'm': $moisNotice=substr($argv[$i],3,6); break;
|
||
case 'p': $partiel=true; break;
|
||
case 'u': $updateInsee=false; break;
|
||
case 'l': $numReprise=substr($argv[$i],3,strlen($argv[$i])-3); break;
|
||
case 's': $stock=true; $actif=11; break;
|
||
case '-':
|
||
case '?': die($strInfoScript); break;
|
||
default: die('Option '. $argv[$i] . ' inconnue !'.EOL);
|
||
}
|
||
} else $tabFichier[]=$argv[$i];
|
||
}
|
||
|
||
if (count($tabFichier)==0) die('Aucune notice à charger !'.EOL);
|
||
|
||
echo date ('Y/m/d - H:i:s') . " - Début du traitement de chargement du mensuel INSEE".EOL;
|
||
|
||
foreach ($tabFichier as $fichier) {
|
||
echo date('Y/m/d - H:i:s'). " - Début du traitement du fichier $fichier".EOL;
|
||
|
||
$fp=fopen($fichier, 'r');
|
||
if ($fp) {
|
||
$nbInsert=$nbUpdate=$nbDBl=$nbLignes=0;
|
||
$nbCreations=$nbModifI=$nbModifF=$nbModifS=$nbFermetures=$nbModifErr=0;
|
||
$a = fgets($fp, 4096);
|
||
if (strlen($a)<640) {
|
||
echo date('Y/m/d - H:i:s'). " - Erreur : Le fichier $fichier est au format précédent de la notice 80 !".EOL;
|
||
die();
|
||
} elseif (strlen(trim($a))<658 && !$stock) {
|
||
echo date('Y/m/d - H:i:s'). " - Attention : Le fichier $fichier est un stock au format 2007 !".EOL;
|
||
die();
|
||
}
|
||
|
||
echo date('Y/m/d - H:i:s'). " - Le fichier $fichier est au format 2007 de la notice 80 !".EOL;
|
||
$noticeY=substr($moisNotice,0,4)*1;
|
||
$noticeM=substr($moisNotice,4,2)*1;
|
||
if (!$moisNotice || $noticeY<1974 || $noticeY>date('Y') || $noticeM==0 || $noticeM>12 || $moisNotice>date('Ym')) {
|
||
while (1) {
|
||
if (!$stock)
|
||
echo date('Y/m/d - H:i:s') ." - Entrez-le mois de la MAJ au format AAAAMM (ex: 200801) ... ";
|
||
else
|
||
echo date('Y/m/d - H:i:s') ." - Entrez-le mois du sotck au format AAAAMM (ex: 200801) ... ";
|
||
$saisie = trim(strtoupper(fgets(STDIN)));
|
||
if (strlen($saisie)==6) {
|
||
$noticeY=substr($saisie,0,4)*1;
|
||
$noticeM=substr($saisie,4,2)*1;
|
||
if ($noticeY>1973 && $noticeY<=date('Y')*1) {
|
||
if ($noticeM>0 && $noticeM<13 && ($saisie*1)<=(date('Ym')*1))
|
||
break;
|
||
else echo "ERREUR : Mois incorrecte ou date de notice dans le futur !".EOL;
|
||
} else echo "ERREUR : Année incorrect ou dans le futur !".EOL;
|
||
} else echo "ERREUR : Saisie incorrecte !".EOL;
|
||
}
|
||
if ($noticeM<10) $noticeM='0'.$noticeM;
|
||
else $noticeM='' .$noticeM;
|
||
}
|
||
$moisNotice=''.$noticeY.$noticeM;
|
||
|
||
while (1) {
|
||
echo date('Y/m/d - H:i:s') ." - Entrez-le jour d'extraction de la notice à l'INSEE (ex: 14) ... ";
|
||
$saisie = trim(strtoupper(fgets(STDIN)))*1;
|
||
if (strlen(''.$saisie)==1 || strlen(''.$saisie)==2 ) {
|
||
if ($saisie>0 && $saisie<32)
|
||
break;
|
||
else echo "ERREUR : Jour incorrect !".EOL;
|
||
} else echo "ERREUR : Saisie incorrecte !".EOL;
|
||
}
|
||
if ($saisie<10) $jourNotice='0'.$saisie;
|
||
else $jourNotice='' .$saisie;
|
||
$dateNotice=$moisNotice.''.$jourNotice;
|
||
|
||
/** Comptage du nombre de lignes de la notice à charger
|
||
**/
|
||
$nbLignesTot=1;
|
||
while (!feof($fp)) {
|
||
$a = fgets($fp, 4096);
|
||
$nbLignesTot++;
|
||
}
|
||
echo date('Y/m/d - H:i:s') ." - Le fichier à charger $fichier contient $nbLignesTot lignes.".EOL;
|
||
|
||
rewind($fp);
|
||
$a = fgets($fp, 4096);
|
||
/** S'agit il d'une notice DIFF4/5 (Etablissements NPAI ou Vendus sans formalités **/
|
||
if ($nbLignesTot<100000) {
|
||
echo date('Y/m/d - H:i:s') ." - Vérifier le courrier joint par l'INSEE et validez que cette notice est une notice DIFF 4/5 contenant des établissements présumés fermés !".EOL;
|
||
while (1) {
|
||
echo date('Y/m/d - H:i:s') ." - Cette notice contient les établissements présumés fermés (O/N) ? ";
|
||
$saisie = trim(strtoupper(fgets(STDIN)));
|
||
if ($saisie=='O' || $saisie=='o') break;
|
||
}
|
||
die ('@todo : Traiter les présumés fermés !'.EOL);
|
||
}
|
||
|
||
if ($histo) {
|
||
$db_table="notice_$moisNotice";
|
||
$ret=$iDbH->select($db_table, 'count(*)', '1');
|
||
if (!$ret || $iDbH->getLastErrorNum()==1051)
|
||
echo date('Y/m/d - H:i:s') ." - La table $db_table n'a jamais été chargé !".EOL;
|
||
else {
|
||
$nb=$ret[0][0];
|
||
while (1) {
|
||
echo date('Y/m/d - H:i:s') ." - La table $db_table a déja été chargé est comporte $nb lignes. Continuer (O/N) ? ";
|
||
$saisie = trim(strtoupper(fgets(STDIN)));
|
||
if ($saisie=='O' || $saisie=='o') break;
|
||
}
|
||
}
|
||
$ret=$iDbH->query("DROP TABLE $db_table;", true);
|
||
|
||
$sql="CREATE TABLE IF NOT EXISTS $db_table (
|
||
insSIREN varchar(9) NOT NULL,
|
||
insNIC varchar(5) NOT NULL,
|
||
insL1_nomen varchar(38) NOT NULL,
|
||
insL2_ComP varchar(38) NOT NULL,
|
||
insL3_cadr varchar(38) NOT NULL,
|
||
insL4_VOIE varchar(38) NOT NULL,
|
||
insL5_disp varchar(38) NOT NULL,
|
||
insL6_post varchar(38) NOT NULL,
|
||
insL7_ETRG varchar(38) NOT NULL,
|
||
insZR1 varchar(11) NOT NULL,
|
||
insrpet varchar(2) NOT NULL,
|
||
insdepet varchar(2) NOT NULL,
|
||
insarronet varchar(2) NOT NULL,
|
||
insctonet varchar(3) NOT NULL,
|
||
inscomet varchar(3) NOT NULL,
|
||
inslibcom varchar(32) NOT NULL,
|
||
insdu varchar(2) NOT NULL,
|
||
insTu varchar(1) NOT NULL,
|
||
insuu varchar(2) NOT NULL,
|
||
inscodpos varchar(5) NOT NULL,
|
||
insZR2 varchar(8) NOT NULL,
|
||
instcd varchar(2) NOT NULL,
|
||
inszemet varchar(2) NOT NULL,
|
||
inscodevoie varchar(5) NOT NULL,
|
||
insNUMVOIE varchar(4) NOT NULL,
|
||
insINDREP varchar(1) NOT NULL,
|
||
insTYPVOIE varchar(4) NOT NULL,
|
||
insLIBVOIE varchar(32) NOT NULL,
|
||
insENSEIGNE varchar(40) NOT NULL,
|
||
insapet700 varchar(5) NOT NULL,
|
||
insZR3 varchar(2) NOT NULL,
|
||
inssiege varchar(1) NOT NULL,
|
||
instefet varchar(2) NOT NULL,
|
||
insefetcent varchar(6) NOT NULL,
|
||
insorigine varchar(2) NOT NULL,
|
||
insdcRET varchar(6) NOT NULL,
|
||
insMMIntrET varchar(2) NOT NULL,
|
||
insACTIVNAT varchar(2) NOT NULL,
|
||
insLIEUACT varchar(2) NOT NULL,
|
||
insACTISURF varchar(2) NOT NULL,
|
||
inssaisonat varchar(2) NOT NULL,
|
||
insMODET varchar(1) NOT NULL,
|
||
insdapet varchar(4) NOT NULL,
|
||
insdefet varchar(4) NOT NULL,
|
||
insEXPLET varchar(1) NOT NULL,
|
||
insProdpart varchar(1) NOT NULL,
|
||
insauxilt varchar(1) NOT NULL,
|
||
inseaeant varchar(4) NOT NULL,
|
||
inseaeapet varchar(5) NOT NULL,
|
||
inseaesec1t varchar(5) NOT NULL,
|
||
inseaesec2t varchar(5) NOT NULL,
|
||
insnomen varchar(38) NOT NULL,
|
||
inssigle varchar(20) NOT NULL,
|
||
insCIVILITE varchar(1) NOT NULL,
|
||
inscj varchar(4) NOT NULL,
|
||
instefen varchar(2) NOT NULL,
|
||
insefencent varchar(6) NOT NULL,
|
||
insapen700 varchar(5) NOT NULL,
|
||
insZR4 varchar(1) NOT NULL,
|
||
insaprm varchar(6) NOT NULL,
|
||
instca varchar(1) NOT NULL,
|
||
insrecme varchar(1) NOT NULL,
|
||
insdapen varchar(4) NOT NULL,
|
||
insdefen varchar(4) NOT NULL,
|
||
insdcren varchar(6) NOT NULL,
|
||
insmmintren varchar(2) NOT NULL,
|
||
insmonoact varchar(1) NOT NULL,
|
||
insMODEN varchar(1) NOT NULL,
|
||
insEXPLEN varchar(1) NOT NULL,
|
||
inseaeann varchar(4) NOT NULL,
|
||
insEAEapen varchar(5) NOT NULL,
|
||
inseaesec1n varchar(5) NOT NULL,
|
||
inseaesec2n varchar(5) NOT NULL,
|
||
inseaesec3n varchar(5) NOT NULL,
|
||
inseaesec4n varchar(5) NOT NULL,
|
||
insnbETEXPL varchar(4) NOT NULL,
|
||
instcaexp varchar(1) NOT NULL,
|
||
insregimp varchar(2) NOT NULL,
|
||
insmonoreg varchar(1) NOT NULL,
|
||
insrpen varchar(2) NOT NULL,
|
||
insdepcomen varchar(5) NOT NULL,
|
||
insvmaj varchar(1) NOT NULL,
|
||
insvmaj1 varchar(1) NOT NULL,
|
||
insvmaj2 varchar(1) NOT NULL,
|
||
insvmaj3 varchar(1) NOT NULL,
|
||
KEY insapen700 (insapen700),
|
||
KEY insapet700 (insapet700)
|
||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Notice 80 Insee du $moisNotice';";
|
||
$ret=$iDbH->query($sql, true);
|
||
echo date ('Y/m/d - H:i:s')." - Structure de la table 'historiques.$db_table' créée.".EOL;
|
||
}
|
||
/*
|
||
if ($updateInsee) {
|
||
echo date ('Y/m/d - H:i:s')." - Préparation de la table identité pour le chargement de la notice...".EOL;
|
||
echo date ('Y/m/d - H:i:s')." - Forcage de la variable actif/inactif à état précédent...".EOL;
|
||
$sql='UPDATE identite SET ACTIF=ACTIF+10';
|
||
$iDbI->query($sql, true);
|
||
echo date ('Y/m/d - H:i:s')." - La table identité est prête pour la mise à jour.".EOL;
|
||
}*/
|
||
|
||
while (!feof($fp)) {
|
||
$nbLignes++;
|
||
if (!$numReprise || $nbLignes>=$numReprise) {
|
||
// IDENTIFICATION - ADRESSE
|
||
$insSIREN = trim( substr($a, 0 , 9 )); // Identifiant de l'établissement
|
||
$insNIC = trim( substr($a, 9 , 5 )); // Identifiant de l'établissement
|
||
$insL1_nomen = trim( substr($a, 14 , 38 )); // Nom ou raison sociale de l'entreprise pour l'adressage
|
||
$insL2_ComP = trim( substr($a, 52 , 38 )); // Complément de nom de l'entreprise pour l'adressage
|
||
$insL3_cadr = trim( substr($a, 90 , 38 )); // Complément d'adresse pour l'adressage
|
||
$insL4_VOIE = trim( substr($a, 128 , 38 )); // Numéro et libellé dans la voie
|
||
$insL5_disp = trim( substr($a, 166 , 38 )); // Distribution spéciale
|
||
$insL6_post = trim( substr($a, 204 , 38 )); // Ligne d’acheminement postal pour l’adressage
|
||
$insL7_ETRG = trim( substr($a, 242 , 38 )); // Libellé du pays pour les adresses à l'étranger
|
||
$insZR1 = trim( substr($a, 280 , 11 )); // Zone réservée
|
||
// LOCALISATION GEOGRAPHIQUE DE L’ETABLISSEMENT
|
||
$insrpet = trim( substr($a, 291 , 2 )); // Région de localisation de l'établissement
|
||
$insdepet = trim( substr($a, 293 , 2 )); // Département de localisation de l'établissement
|
||
$insarronet = trim( substr($a, 295 , 2 )); // Arrondissement de localisation de l'établissement
|
||
$insctonet = trim( substr($a, 297 , 3 )); // Canton de localisation de l'établissement
|
||
$inscomet = trim( substr($a, 300 , 3 )); // Commune de localisation de l'établissement
|
||
$inslibcom = trim( substr($a, 303 , 32 )); // Libellé de la commune de localisation de l'établissement
|
||
$insdu = trim( substr($a, 335 , 2 )); // Département de l'unité urbaine de la localisation de l'établissement
|
||
$insTu = trim( substr($a, 337 , 1 )); // Taille de l'unité urbaine
|
||
$insuu = trim( substr($a, 338 , 2 )); // Numéro de l'unité urbaine
|
||
$inscodpos = trim( substr($a, 340 , 5 )); // Code postal
|
||
$insZR2 = trim( substr($a, 345 , 8 )); // Zone réservée
|
||
$instcd = trim( substr($a, 353 , 2 )); // Tranche de commune détaillée
|
||
$inszemet = trim( substr($a, 355 , 2 )); // Zone d'emploi
|
||
$inscodevoie = trim( substr($a, 357 , 5 )); // Code voie
|
||
$insNUMVOIE = trim( substr($a, 362 , 4 )); // Numéro dans la voie
|
||
$insINDREP = trim( substr($a, 366 , 1 )); // Indice de répétition
|
||
$insTYPVOIE = trim( substr($a, 367 , 4 )); // Type de la voie de localisation de l'établissement
|
||
$insLIBVOIE = trim( substr($a, 371 , 32 )); // Libellé de la voie de localisation de l'établissement
|
||
// CARACTERISTIQUES ECONOMIQUES DE L’ETABLISSEMENT
|
||
$insENSEIGNE = trim( substr($a, 403 , 40 )); // Enseigne ou nom de l’exploitation
|
||
$insapet700 = trim( substr($a, 443 , 5 )); // Activité principale de l'établissement en 700 classes
|
||
$insZR3 = trim( substr($a, 448 , 2 )); // Zone réservée
|
||
$inssiege = trim( substr($a, 450 , 1 )); // Qualité de siège ou non de l’établissement
|
||
$instefet = trim( substr($a, 451 , 2 )); // Tranche d'effectif salarié de l'établissement
|
||
$insefetcent = trim( substr($a, 453 , 6 )); // Effectif salarié de l'établissement à la centaine près
|
||
$insorigine = trim( substr($a, 459 , 2 )); // Origine de la création de l'établissement
|
||
$insdcRET = trim( substr($a, 461 , 6 )); // Date de création de l'établissement (année, mois)
|
||
$insMMIntrET = trim( substr($a, 467 , 2 )); // Mois d'introduction de l'établissement dans la base de diffusion
|
||
$insACTIVNAT = trim( substr($a, 469 , 2 )); // Nature de l'activité de l'établissement
|
||
$insLIEUACT = trim( substr($a, 471 , 2 )); // Lieu de l'activité de l'établissement
|
||
$insACTISURF = trim( substr($a, 473 , 2 )); // Type de magasin
|
||
$inssaisonat = trim( substr($a, 475 , 2 )); // Caractère saisonnier ou non de l'activité de l'établissement
|
||
$insMODET = trim( substr($a, 477 , 1 )); // Modalité de l'activité principale de l'établissement
|
||
$insdapet = trim( substr($a, 478 , 4 )); // Date de validité de l'activité principale de l'établissement
|
||
$insdefet = trim( substr($a, 482 , 4 )); // Date de mise à jour de l'effectif salarié de l'établissement (année)
|
||
$insEXPLET = trim( substr($a, 486 , 1 )); // Etablissement exploitant tout ou partie des moyens de production
|
||
$insProdpart = trim( substr($a, 487 , 1 )); // Participation particulière à la production de l'établissement
|
||
$insauxilt = trim( substr($a, 488 , 1 )); // Caractère auxiliaire de l'activité de l'établissement
|
||
$inseaeant = trim( substr($a, 489 , 4 )); // Année de validité des rubriques de niveau établissement provenant des EAE*
|
||
$inseaeapet = trim( substr($a, 493 , 5 )); // Activité principale de l'établissement issue des EAE*
|
||
$inseaesec1t = trim( substr($a, 498 , 5 )); // Première activité secondaire de l'établissement déclarée dans les EAE*
|
||
$inseaesec2t = trim( substr($a, 503 , 5 )); // Deuxième activité secondaire de l'établissement déclarée dans les EAE*
|
||
// CARACTERISTIQUES ECONOMIQUES DE L’ENTREPRISE
|
||
$insnomen = trim( substr($a, 508 , 38 )); // Nom ou raison sociale de l'entreprise
|
||
$inssigle = trim( substr($a, 546 , 20 )); // Sigle de l'entreprise
|
||
$insCIVILITE = trim( substr($a, 566 , 1 )); // Civilité des entrepreneurs individuels
|
||
$inscj = trim( substr($a, 567 , 4 )); // Catégorie juridique ou professionnelle pour les entrepreneurs individuels
|
||
$instefen = trim( substr($a, 571 , 2 )); // Tranche d'effectif salarié de l'entreprise
|
||
$insefencent = trim( substr($a, 573 , 6 )); // Effectif salarié de l'entreprise à la centaine près
|
||
$insapen700 = trim( substr($a, 579 , 5 )); // Activité principale de l'entreprise en 700 classes
|
||
$insZR4 = trim( substr($a, 584 , 1 )); // Zone réservée
|
||
$insaprm = trim( substr($a, 585 , 6 )); // Activité principale au registre des métiers
|
||
$instca = trim( substr($a, 591 , 1 )); // Tranche de chiffres d'affaires pour les entreprises enquêtées par les EAE*
|
||
$insrecme = trim( substr($a, 592 , 1 )); // Appartenance au Répertoire des Entreprises Contrôlées Majoritairement par l'Etat
|
||
$insdapen = trim( substr($a, 593 , 4 )); // Date de validité de l'activité principale de l'entreprise
|
||
$insdefen = trim( substr($a, 597 , 4 )); // Date de mise à jour de l'effectif salarié de l’entreprise (année)
|
||
$insdcren = trim( substr($a, 601 , 6 )); // Date de création de l'entreprise (année, mois)
|
||
$insmmintren = trim( substr($a, 607 , 2 )); // Mois d'introduction de l’entreprise dans la base de diffusion
|
||
$insmonoact = trim( substr($a, 609 , 1 )); // Indice de monoactivité de l'entreprise
|
||
$insMODEN = trim( substr($a, 610 , 1 )); // Modalité de l'activité principale de l'entreprise
|
||
$insEXPLEN = trim( substr($a, 611 , 1 )); // Entreprise exploitant tout ou partie des moyens de production
|
||
$inseaeann = trim( substr($a, 612 , 4 )); // Année de validité des rubriques de niveau entreprise en provenance des EAE*
|
||
$insEAEapen = trim( substr($a, 616 , 5 )); // Activité principale de l'entreprise issue des EAE*
|
||
$inseaesec1n = trim( substr($a, 621 , 5 )); // Première activité secondaire de l'entreprise déclarée dans les EAE*
|
||
$inseaesec2n = trim( substr($a, 626 , 5 )); // Deuxième " " " " "
|
||
$inseaesec3n = trim( substr($a, 631 , 5 )); // Troisième " " " " "
|
||
$inseaesec4n = trim( substr($a, 636 , 5 )); // Quatrième " " " " "
|
||
$insnbETEXPL = trim( substr($a, 641 , 4 )); // Nombre d'établissements exploitants actifs de l'entreprise
|
||
$instcaexp = trim( substr($a, 645 , 1 )); // Tranche de chiffres d'affaires à l'exportation pour les entreprises enquêtées par les EAE*
|
||
$insregimp = trim( substr($a, 646 , 2 )); // Principale région de localisation de l'entreprise
|
||
$insmonoreg = trim( substr($a, 648 , 1 )); // Indice de mono-régionalité de l'entreprise
|
||
// LOCALISATION DU SIEGE
|
||
$insrpen = trim( substr($a, 649 , 2 )); // Région de localisation du siège de l'entreprise
|
||
$insdepcomen = trim( substr($a, 651 , 5 )); // Département et commune de localisation du siège de l’entreprise
|
||
// DONNEES POUR LES MISES A JOUR
|
||
$insvmaj = strtoupper(trim( substr($a, 656 , 1 ))); // Nature de la mise à jour (création, suppression, modification)
|
||
$insvmaj1 = trim( substr($a, 657 , 1 )); // Indicateur de mise à jour n°1
|
||
$insvmaj2 = trim( substr($a, 658 , 1 )); // Indicateur de mise à jour n°2
|
||
$insvmaj3 = trim( substr($a, 659 , 1 )); // Indicateur de mise à jour n°3
|
||
|
||
if ($histo) {
|
||
$tabInsert=array( 'insSIREN' =>$insSIREN,
|
||
'insNIC' =>$insNIC,
|
||
'insL1_nomen'=>$insL1_nomen,
|
||
'insL2_ComP' =>$insL2_ComP,
|
||
'insL3_cadr' =>$insL3_cadr,
|
||
'insL4_VOIE' =>$insL4_VOIE,
|
||
'insL5_disp' =>$insL5_disp,
|
||
'insL6_post' =>$insL6_post,
|
||
'insL7_ETRG' =>$insL7_ETRG,
|
||
'insZR1' =>$insZR1,
|
||
'insrpet' =>$insrpet,
|
||
'insdepet' =>$insdepet,
|
||
'insarronet' =>$insarronet,
|
||
'insctonet' =>$insctonet,
|
||
'inscomet' =>$inscomet,
|
||
'inslibcom' =>$inslibcom,
|
||
'insdu' =>$insdu,
|
||
'insTu' =>$insTu,
|
||
'insuu' =>$insuu,
|
||
'inscodpos' =>$inscodpos,
|
||
'insZR2' =>$insZR2,
|
||
'instcd' =>$instcd,
|
||
'inszemet' =>$inszemet,
|
||
'inscodevoie'=>$inscodevoie,
|
||
'insNUMVOIE' =>$insNUMVOIE,
|
||
'insINDREP' =>$insINDREP,
|
||
'insTYPVOIE' =>$insTYPVOIE,
|
||
'insLIBVOIE' =>$insLIBVOIE,
|
||
'insENSEIGNE'=>$insENSEIGNE,
|
||
'insapet700' =>$insapet700,
|
||
'insZR3' =>$insZR3,
|
||
'inssiege' =>$inssiege,
|
||
'instefet' =>$instefet,
|
||
'insefetcent'=>$insefetcent,
|
||
'insorigine' =>$insorigine,
|
||
'insdcRET' =>$insdcRET,
|
||
'insMMIntrET'=>$insMMIntrET,
|
||
'insACTIVNAT'=>$insACTIVNAT,
|
||
'insLIEUACT' =>$insLIEUACT,
|
||
'insACTISURF'=>$insACTISURF,
|
||
'inssaisonat'=>$inssaisonat,
|
||
'insMODET' =>$insMODET,
|
||
'insdapet' =>$insdapet,
|
||
'insdefet' =>$insdefet,
|
||
'insEXPLET' =>$insEXPLET,
|
||
'insProdpart'=>$insProdpart,
|
||
'insauxilt' =>$insauxilt,
|
||
'inseaeant' =>$inseaeant,
|
||
'inseaeapet' =>$inseaeapet,
|
||
'inseaesec1t'=>$inseaesec1t,
|
||
'inseaesec2t'=>$inseaesec2t,
|
||
'insnomen' =>$insnomen,
|
||
'inssigle' =>$inssigle,
|
||
'insCIVILITE'=>$insCIVILITE,
|
||
'inscj' =>$inscj,
|
||
'instefen' =>$instefen,
|
||
'insefencent'=>$insefencent,
|
||
'insapen700' =>$insapen700,
|
||
'insZR4' =>$insZR4,
|
||
'insaprm' =>$insaprm,
|
||
'instca' =>$instca,
|
||
'insrecme' =>$insrecme,
|
||
'insdapen' =>$insdapen,
|
||
'insdefen' =>$insdefen,
|
||
'insdcren' =>$insdcren,
|
||
'insmmintren'=>$insmmintren,
|
||
'insmonoact' =>$insmonoact,
|
||
'insMODEN' =>$insMODEN,
|
||
'insEXPLEN' =>$insEXPLEN,
|
||
'inseaeann' =>$inseaeann,
|
||
'insEAEapen' =>$insEAEapen,
|
||
'inseaesec1n'=>$inseaesec1n,
|
||
'inseaesec2n'=>$inseaesec2n,
|
||
'inseaesec3n'=>$inseaesec3n,
|
||
'inseaesec4n'=>$inseaesec4n,
|
||
'insnbETEXPL'=>$insnbETEXPL,
|
||
'instcaexp' =>$instcaexp,
|
||
'insregimp' =>$insregimp,
|
||
'insmonoreg' =>$insmonoreg,
|
||
'insrpen' =>$insrpen,
|
||
'insdepcomen'=>$insdepcomen,
|
||
'insvmaj' =>$insvmaj,
|
||
'insvmaj1' =>$insvmaj1,
|
||
'insvmaj2' =>$insvmaj2,
|
||
'insvmaj3' =>$insvmaj3,
|
||
);
|
||
if (!$iDbH->insert($db_table, $tabInsert)) {
|
||
echo "Siret=$insSIREN $insNIC : $insnomen, Erreur mysql ". mysql_errno() .' - '. mysql_error().EOL;
|
||
echo "$sql".EOL;
|
||
$fpE=fopen('/home/data/insee/error.log', 'a');
|
||
fwrite($fpE, "$sql\r\n");
|
||
fclose($fpE);
|
||
}
|
||
}
|
||
|
||
if ($updateInsee) {
|
||
/* 'insMNOMEN'=> , // MAJ du nom de l'entreprise
|
||
'insMCJ'=> , // MAJ de la CJ
|
||
'insMAPEN'=> , // MAJ de l'activité SIREN
|
||
'insMAPET'=> , // MAJ de l'activité SIRET
|
||
'insMENSEIGNE'=> , // MAJ du nom de l'établissement
|
||
'insMADRESSE'=> , // MAJ adresse SIRET
|
||
'insMMARCHEN'=> , // MAJ du caractère marchand SIREN
|
||
'insMORDIN'=> , // MAJ ordin
|
||
'insMNATURE'= > , // MAJ code Nature SIRET
|
||
'insMEFET'=> , // MAJ effectif SIRET
|
||
'insMSINGT'=> , // MAJ singularité SIRET
|
||
'insMTELT'=> , // MAJ Tél SIRET
|
||
'insMMARCHET'=> , // MAJ caractère marchand SIRET
|
||
'insMAUXILT'=> , // MAJ code auxiliarité SIRET*/
|
||
$ret2=$iDbI->select('identite',
|
||
'SIREN, NIC, IDENTITE_PRE, DCRET, DCREN, NOM, ENSEIGNE, SIGLE, ACTIF, SIEGE, CJ, APE_ENT, APE_ETAB, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_CP, ADR_LIBCOM, ADR_COMP, ADR_DISTSP, PAYS, CODEVOIE, ADR_DEP, ADR_COM, TEFF_ENT, EFF_ENT, TEFF_ET, EFF_ET, EXPLET, ACTIVNAT, SAISONAT',
|
||
// AUXILT, CIVILITE, NBETAB,
|
||
// TCA, TCAEXP,
|
||
// APRM, ORIGINE, MODET, DAPET, LIEUACT, ACTISURF, DEFET, MODEN,
|
||
// PRODPART, EXPLEN, DEFEN, MONOREG, REGIMP, MONOACT, DAPEN, DATE_MAJ',
|
||
"SIREN=$insSIREN AND NIC=$insNIC", false, MYSQL_ASSOC);
|
||
$cpt=count($ret2);
|
||
$etab=@$ret2[0];
|
||
|
||
$cj1=substr($inscj,0,1)*1;
|
||
if ($cj1==1) {
|
||
$tabNoms=getNomPrenom($insnomen);
|
||
$arrDir=array( 'DIR_FCT'=>'PP',
|
||
'DIR_IDEN'=> strtoupper(trim($tabNoms['Nom'])).' '.
|
||
ucwords(strtolower(trim($tabNoms['Prenom']))));
|
||
} else
|
||
$arrDir=array();
|
||
|
||
if (substr($etab['DCRET'],0,2)*1==0)
|
||
$arrDCRET=array('DCRET'=>substr($insdcRET,2,4).substr($insdcRET,0,2).'00'); // Date création établissemennt
|
||
else
|
||
$arrDCRET=array();
|
||
|
||
if (substr($etab['DCREN'],0,2)*1==0)
|
||
$arrDCREN=array('DCREN'=>substr($insdcren,2,4).substr($insdcren,0,2).'00'); // Date création entreprise
|
||
else
|
||
$arrDCREN=array();
|
||
|
||
/* Zone Identité précédente
|
||
* contenant tous les anciens nom, sigle et/ou enseigne concaténés
|
||
* n'ai jamais affiché mais sert pour l'indexation au niveau de la recherche
|
||
*/
|
||
$identite_pre=trim($etab['IDENTITE_PRE']);
|
||
$nomEntrep=trim(strtr($insnomen,array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||
$nomEntrepEnBase=substr(trim(strtr($etab['NOM'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°'))),0,38);
|
||
if ($nomEntrepEnBase<>$nomEntrep && $nomEntrepEnBase<>'') {
|
||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $insSIREN $insNIC - NOM En base : / MAJ : $nomEntrepEnBase".EOL;
|
||
if (strlen($identite_pre)==0)
|
||
$identite_pre=$nomEntrepEnBase;
|
||
else
|
||
$identite_pre.=','.$nomEntrepEnBase;
|
||
}
|
||
|
||
$nomEtab=trim(strtr($insENSEIGNE,array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||
$nomEtabEnBase=trim(strtr($etab['ENSEIGNE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||
if ($nomEtabEnBase<>$nomEtab && $nomEtabEnBase<>'') {
|
||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $insSIREN $insNIC - ENSEIGNE En base : / MAJ : $nomEtabEnBase".EOL;
|
||
if (strlen($identite_pre)==0)
|
||
$identite_pre=$nomEtabEnBase;
|
||
else
|
||
$identite_pre.=','.$nomEtabEnBase;
|
||
}
|
||
|
||
$sigEntrep=trim(strtr($inssigle,array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||
$sigEntrepEnBase=trim(strtr($etab['SIGLE'],array('*'=>' ','/'=>' ',"\'"=>"'",chr(191)=>'°')));
|
||
if ($sigEntrepEnBase<>$sigEntrep && $sigEntrepEnBase<>'') {
|
||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $insSIREN $insNIC - SIGLE En base : / MAJ : $sigEntrepEnBase".EOL;
|
||
if (strlen($identite_pre)==0)
|
||
$identite_pre=$sigEntrepEnBase;
|
||
else
|
||
$identite_pre.=','.$sigEntrepEnBase;
|
||
}
|
||
|
||
if (!$iInsee->valideSiren($insSIREN,$insNIC)) {
|
||
$siretValide=0;
|
||
$nbSiretInvalides++;
|
||
} else
|
||
$siretValide=1;
|
||
|
||
if ($insvmaj<>'') {
|
||
if ($insvmaj=='C'){ $codeActif=1; // Création d'établissement
|
||
$nbCreations++; }
|
||
elseif ($insvmaj=='E'){ $codeActif=0; // Suppression d'établissement
|
||
$nbFermetures++; }
|
||
elseif($insvmaj=='I') { $codeActif=1; // Modification, état initial
|
||
$nbModifI++; }
|
||
elseif ($insvmaj=='F'){ $codeActif=1; // Modification, état final
|
||
$nbModifF++; }
|
||
else { $codeActif=$etab['ACTIF'];
|
||
$nbModifS++; }
|
||
/*
|
||
elseif ($insvmaj=='S') $codeActif=-1; // Siège dont au moins un établissement non-siège a été modifié (le ou les établissements non-sièges n'appartiennent pas forcément à la sélection demandée)
|
||
*/
|
||
} else {
|
||
$codeActif=$actif;
|
||
$nbModifErr++;
|
||
}
|
||
|
||
$arrBase=array( 'ACTIF'=> $codeActif,
|
||
'NOM'=> $nomEntrep, // Raison Sociale de l'entreprise
|
||
'NOM2'=> $insL2_ComP, // Enseigne de l'établissement ou sigle de l'entreprise ou enfin, nom commercial (Intermarché)
|
||
'ENSEIGNE'=> $nomEtab, // Nom de l'établissement ou enseigne
|
||
'SIGLE'=> $sigEntrep, // Sigle
|
||
'IDENTITE_PRE'=>$identite_pre,
|
||
'SIEGE'=> $inssiege, // Siège
|
||
'ADR_NUMVOIE'=> $insNUMVOIE, // N° dans la voie
|
||
'ADR_BTQ'=> $insINDREP, // BTQ
|
||
'ADR_TYPVOIE'=> $insTYPVOIE, // Type de voie
|
||
'ADR_LIBVOIE'=> $insLIBVOIE, // Lib Voie
|
||
'ADR_CP'=> $inscodpos, // Code Postal
|
||
'ADR_LIBCOM'=> $inslibcom, // Commune
|
||
'ADR_COMP'=> $insL3_cadr, // Complément d'adresse
|
||
'ADR_DISTSP'=> $insL5_disp, // Distribution Spéciale
|
||
|
||
'AUXILT'=> $insauxilt, // Caractère auxiliaire de l'activité de l'étab
|
||
'SAISONAT'=> $inssaisonat, // Saisonnalité
|
||
'CJ'=> $inscj,
|
||
'CIVILITE'=> $insCIVILITE, // Sexe 0=Entrep, 1=Homme, 2=Femme
|
||
|
||
'APE_ENT'=> trim($insapen700), // Code NAF de l'entreprise (cf. table APE)
|
||
'APE_ETAB'=> trim($insapet700), // Code NAF de l'établissement (cf. table APE)
|
||
|
||
'NBETAB'=> trim($insnbETEXPL), // Nombre d'établissement de l'entreprise
|
||
'TEFF_ENT'=> trim($instefen), // Tr Eff Entrep
|
||
'TCA'=> trim($instca), // Tr CA
|
||
'TCAEXP'=> trim($instcaexp), // Tr CA EXPORT (absent du flux évèn !!!)
|
||
'CODEVOIE'=> trim($inscodevoie), // Code RIVOLI
|
||
'ADR_DEP'=> trim($insdepet), // Département de localisation de l'établissement
|
||
'ADR_COM'=> trim($inscomet), // Commune de localisation de l'établissement
|
||
'EFF_ENT'=> trim($insefencent), // Eff Entrep
|
||
'TEFF_ET'=> trim($instefet), // Tr Eff Etablissement
|
||
'EFF_ET'=> trim($insefetcent), // Eff Etablissement
|
||
|
||
'PAYS'=> trim($insL7_ETRG), // Pays si différent de france
|
||
'APRM'=> trim($insaprm), // Répertoire Métier
|
||
'ACTIVNAT'=> trim($insACTIVNAT),
|
||
'ORIGINE'=> trim($insorigine),
|
||
'MODET'=> trim($insMODET),
|
||
'EXPLET'=> trim($insEXPLET),
|
||
'DAPET'=> trim($insdapet),
|
||
'LIEUACT'=> trim($insLIEUACT),
|
||
'ACTISURF'=> trim($insACTISURF),
|
||
'DEFET'=> trim($insdefet),
|
||
'MODEN'=> trim($insMODEN),
|
||
'PRODPART'=> trim($insProdpart),
|
||
'EXPLEN'=> trim($insEXPLEN),
|
||
'DEFEN'=> trim($insdefen),
|
||
'MONOREG'=> trim($insmonoreg),
|
||
'REGIMP'=> trim($insregimp),
|
||
'MONOACT'=> trim($insmonoact),
|
||
'DAPEN'=> trim($insdapen),
|
||
'dateFerET'=> 0,
|
||
'dateFerEN'=> 0,
|
||
'DATE_MAJ'=> $dateNotice,
|
||
);
|
||
|
||
/**
|
||
** Génération d'une ligne dans la table des EVENEMENTS INSEE
|
||
**/
|
||
$tabEve=array( 'idFlux'=> $dateNotice,
|
||
'insSIREN'=> $insSIREN,
|
||
'insNIC'=> $insNIC,
|
||
'insLIBCOM'=> $inslibcom,
|
||
'insMMINTRET'=> $insMMIntrET, // Mois d'immatriculation (si dans l'année en cours)
|
||
'insSIEGE'=> $inssiege, // SIEGE (ancienne partie 1 de la variable STATUT)
|
||
'insAUXILT'=> $insauxilt, // AUXILIARITE (ancienne partie 2 de la variable STATUT)
|
||
'insORIGINE'=> trim($insorigine), // Origine
|
||
'insTEFET'=> trim($instefet), // Tranche d'effectif salarié
|
||
'insAPET700'=> trim($insapet700), // Activité de l'établissement
|
||
'insAPRM'=> trim($insaprm), // Activité artisanale principale
|
||
'insMODET'=> trim($insMODET), // Modalité de l'activité principale exercée
|
||
// 'insMARCHET'=> , // Caractère marchand ou non
|
||
'insSAISONAT'=> $inssaisonat, // Saisonnalité
|
||
'insACTIVNAT'=> trim($insACTIVNAT), // Nature
|
||
'insENSEIGNE'=> $nomEtab, // Nom de l'établissement
|
||
'insL3_CADR'=> $insL3_cadr, // Complément d'adresse
|
||
'insNUMVOIE'=> $insNUMVOIE, // Numéro dans la voie
|
||
'insINDREP'=> $insINDREP, // Indice de répétition
|
||
'insTYPVOIE'=> $insTYPVOIE, // Type de voie
|
||
'insLIBVOIE'=> $insLIBVOIE, // Libellé de voie
|
||
'insL5_DISP'=> $insL5_disp, // Distribution spéciale pour l'établissement
|
||
'insL6_POSTE'=> trim($inscodpos.' '.
|
||
$inslibcom), // Ligne d'acheminement postal pour l'établissement
|
||
'insCODPOS'=> $inscodpos, // Code postal de la ligne d'acheminement postal
|
||
'insCJ'=> $inscj, // Catégorie juridique
|
||
'insCIVILITE'=> $insCIVILITE, // Sexe pour une personne physique
|
||
'insTEFEN'=> trim($instefen), // Tranche d'effectif de l'entreprise
|
||
'insAPEN700'=> trim($insapen700), // Activité principale exercée
|
||
'insMODEN'=> trim($insMODEN), // Modalité de l'activité principale exercée
|
||
// 'insMARCHEN'=> , // Caractère marchand ou non
|
||
'insNOMEN'=> $nomEntrep, // Nom ou raison sociale de l'entreprise
|
||
'insTCA'=> trim($instca), // Tranche de CA
|
||
// 'insTYPCREH'=> , // Nature de la mise à jour ou type de création hebdo TYPCREH
|
||
// 'insTRAN'=> , // En cas de transfert, situation de l'établissement (Départ ou Arrivée)
|
||
// 'insNICTRAN'=> , // NIC de l'établissement lié par le transfert : Arrivée ANIC ou Départ DNIC
|
||
// 'insMNICSIEGE'=>, // Indicateur de Transfert de siège
|
||
'insEFENCENT'=> trim($insefencent), // Effectif approché de l'entreprise
|
||
'insSIGLE'=> $sigEntrep, // Sigle
|
||
'insNBETEXPL'=> trim($insnbETEXPL), // Nombre d'établissements ordianaires actifs
|
||
// 'insNICSIEGE'=> , // NIC de l'établissement siège
|
||
'insDEPCOMEN'=> $insdepcomen, // Localisation géographique du siège
|
||
/* 'insMNOMEN'=> , // MAJ du nom de l'entreprise
|
||
'insMCJ'=> , // MAJ de la CJ
|
||
'insMAPEN'=> , // MAJ de l'activité SIREN
|
||
'insMMARCHEN'=> , // MAJ du caractère marchand SIREN
|
||
'insMORDIN'=> , // MAJ ordin
|
||
'insMENSEIGNE'=> , // MAJ du nom de l'établissement
|
||
'insMAPET'=> , // MAJ de l'activité SIRET
|
||
'insMNATURE'= > , // MAJ code Nature SIRET
|
||
'insMADRESSE'=> , // MAJ adresse SIRET
|
||
'insMEFET'=> , // MAJ effectif SIRET
|
||
'insMSINGT'=> , // MAJ singularité SIRET
|
||
'insMTELT'=> , // MAJ Tél SIRET
|
||
'insMMARCHET'=> , // MAJ caractère marchand SIRET
|
||
'insMAUXILT'=> , // MAJ code auxiliarité SIRET
|
||
//'insSINGT'=> , // Singularité
|
||
*/
|
||
'insEFETCENT'=> trim($insefetcent), // Effectif approché de l'établissement
|
||
// 'insSIRETPS'=> , // Siret du précédent exploitant
|
||
'insDEPCOM'=> trim($insdepet).trim($inscomet), // TOPO : Département commune de l'étab
|
||
'insCODEVOIE'=> trim($inscodevoie), // TOPO : Implantation code voie topographique de l'établissement
|
||
// 'insDESTINAT'=> , // Destination
|
||
'insDATEMAJ'=> ''.$dateNotice.'000000', // Identifiant informatique = Date de MAJ
|
||
'insDCRET'=> $dateCreaET,
|
||
'insDCREN'=> $dateCreaEN,
|
||
);
|
||
|
||
/* ZONES $arrBase INUTILISES
|
||
'ACTIF'=> $codeActif,
|
||
'NOM2'=> $insL2_ComP, // Enseigne de l'établissement ou sigle de l'entreprise ou enfin, nom commercial (Intermarché)
|
||
'IDENTITE_PRE'=>$identite_pre,
|
||
'TCAEXP'=> trim($instcaexp), // Tr CA EXPORT (absent du flux évèn !!!)
|
||
'PAYS'=> trim($insL7_ETRG), // Pays si différent de france
|
||
'EXPLET'=> trim($insEXPLET),
|
||
'DAPET'=> trim($insdapet),
|
||
'LIEUACT'=> trim($insLIEUACT),
|
||
'ACTISURF'=> trim($insACTISURF),
|
||
'DEFET'=> trim($insdefet),
|
||
'PRODPART'=> trim($insProdpart),
|
||
'EXPLEN'=> trim($insEXPLEN),
|
||
'DEFEN'=> trim($insdefen),
|
||
'MONOREG'=> trim($insmonoreg),
|
||
'REGIMP'=> trim($insregimp),
|
||
'MONOACT'=> trim($insmonoact),
|
||
'DAPEN'=> trim($insdapen),
|
||
*/
|
||
|
||
if ($cpt==0) {
|
||
/**
|
||
** On ajoute la fiche de l'établissement
|
||
**/
|
||
$tabInsert=array( 'SIREN'=> $insSIREN,
|
||
'NIC'=> $insNIC,
|
||
);
|
||
$tabInsert=array_merge($tabInsert, $arrDir, $arrBase, $arrDCREN, $arrDCRET);
|
||
// echo date ('Y/m/d - H:i:s')." - Siret $siren $nic en cours d'ajout".EOL;
|
||
$retInsert=$iDbI->insert('identite', $tabInsert, false);
|
||
if (!$retInsert) die('Erreur Mysql n°'. mysql_errno() .' : '.mysql_error());
|
||
/* if ($modeDebug)*/ echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $insSIREN $insNIC ajouté ($insnomen)".EOL;
|
||
|
||
/** Type d'événement CREATION par la Mensuel Insee
|
||
**/
|
||
$tabEve['insEVE']='M0C';
|
||
if ($dateCreaET*1>0)
|
||
$tabEve['insDATEVE']=$dateCreaET; // Date de l'événement déclaré
|
||
elseif ($dateCreaEN*1>0)
|
||
$tabEve['insDATEVE']=$dateCreaEN; // Date de l'événement déclaré
|
||
|
||
$ret=$iDb->insert('insee_even', $tabEve);
|
||
if ($ret===false) {
|
||
echo date ('Y/m/d - H:i:s') . " - ERREUR n°". mysql_errno()." à l'insertion de l'évènement sur le siret $insSIREN $insNIC : ".mysql_error().'!'.EOL;
|
||
flush();
|
||
}
|
||
$nbInsert++;
|
||
} else {
|
||
/**
|
||
** On modifie la fiche de l'établissement
|
||
**/
|
||
$tabUpdate=array_merge($arrDir, $arrBase, $arrDCREN, $arrDCRET);
|
||
// $retUpdate=$iDbI->update('identite', $tabUpdate, "SIREN=$insSIREN AND NIC=$insNIC", false);
|
||
// if (!$retUpdate) die('Erreur lors de MAJ Mysql n°'. mysql_errno() .' : '.mysql_error());
|
||
//else echo date ('Y/m/d - H:i:s')." - Siret $siren $nic modifié".EOL;
|
||
|
||
/* 'insMNOMEN'=> , // MAJ du nom de l'entreprise
|
||
'insMCJ'=> , // MAJ de la CJ
|
||
'insMAPEN'=> , // MAJ de l'activité SIREN
|
||
'insMMARCHEN'=> , // MAJ du caractère marchand SIREN
|
||
'insMORDIN'=> , // MAJ ordin
|
||
'insMENSEIGNE'=> , // MAJ du nom de l'établissement
|
||
'insMAPET'=> , // MAJ de l'activité SIRET
|
||
'insMNATURE'= > , // MAJ code Nature SIRET
|
||
'insMADRESSE'=> , // MAJ adresse SIRET
|
||
'insMEFET'=> , // MAJ effectif SIRET
|
||
'insMSINGT'=> , // MAJ singularité SIRET
|
||
'insMMARCHET'=> , // MAJ caractère marchand SIRET
|
||
'insMAUXILT'=> , // MAJ code auxiliarité SIRET
|
||
*/
|
||
/** @todo : Déterminer le bon code évènement
|
||
** 1. Si actif en base $insvmaj=='E'
|
||
** $tabEve['insEVE']='';// Suppression d'établissement
|
||
** 2. Si inactif en base et
|
||
** $tabEve['insEVE']='';// Réactivation d'établissement
|
||
** 3. Si $insvmaj1==1 : Modif de insSIEGE insACTIVNAT ou insSAISONNAT
|
||
** 4. Si $insvmaj2==1 : Modif de insEXPLET, insAPET700 ou insTEFET
|
||
** 5. Si $insvmaj3==1 : Modif de insCJ, insAPEN700 ou insTEFEN
|
||
**
|
||
** SIREN, NIC, IDENTITE_PRE, DCRET, DCREN, NOM, ENSEIGNE, SIGLE, ACTIF
|
||
** SIEGE, CJ, APE_ENT, APE_ETAB, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_CP, ADR_LIBCOM, ADR_COMP, ADR_DISTSP, PAYS, CODEVOIE, ADR_DEP, ADR_COM, TEFF_ENT, EFF_ENT, TEFF_ET, EFF_ET, EXPLET, ACTIVNAT, SAISONAT
|
||
**/
|
||
if ($etab['ACTIF']==1 && $insvmaj=='E') {
|
||
$tabEve['insEVE']='M0F'; // Type d'événement FERMETURE en mensuel
|
||
$tabEve['insDATEVE']=$dateNotice; // Date de l'événement déclaré
|
||
}
|
||
elseif ($etab['ACTIF']==0 && ($insvmaj=='C' || $insvmaj=='I' || $insvmaj=='F')) {
|
||
$tabEve['insEVE']='M0R'; // Type d'événement CREATION en mensuel
|
||
if ($dateCreaET*1>0)
|
||
$tabEve['insDATEVE']=$dateCreaET; // Date de l'événement déclaré
|
||
elseif ($dateCreaEN*1>0)
|
||
$tabEve['insDATEVE']=$dateCreaEN; // Date de l'événement déclaré
|
||
}
|
||
else {
|
||
$tabEve['insEVE']='M00'; // Type d'événement CREATION en mensuel
|
||
$tabEve['insDATEVE']=$dateNotice;
|
||
}
|
||
|
||
$ret=$iDb->insert('insee_even', $tabEve);
|
||
if ($ret===false) {
|
||
echo date ('Y/m/d - H:i:s') . " - ERREUR n°". mysql_errno()." à l'insertion de l'évènement sur le siret $insSIREN $insNIC : ".mysql_error().'!'.EOL;
|
||
flush();
|
||
}
|
||
die();
|
||
|
||
$nbUpdate++;
|
||
// echo date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances modifiée".EOL;
|
||
if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Ligne $nbLignes, établissement $insSIREN $insNIC : $cpt correspondances modifiées ($insnomen)".EOL;
|
||
if ($cpt>1) {
|
||
//die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL);
|
||
$tabSirenDoubles[]=$insSIREN;// RAF
|
||
$fpD=fopen('doublons.txt', 'a');
|
||
fwrite($fpD, "$insSIREN $insNIC : $cpt lignes".EOL);
|
||
fclose($fpD);
|
||
//print_r($ret2);
|
||
echo date ('Y/m/d - H:i:s')." - Doublons sur $insSIREN $insNIC : $cpt lignes".EOL;
|
||
$nbDBl++;
|
||
}
|
||
}
|
||
}
|
||
//die();
|
||
if ($nbLignes%100000==0) {
|
||
echo date('Y/m/d - H:i:s'). " - Fichier $fichier : $nbLignes lignes traitées ($insSIREN $insNIC)".EOL;
|
||
}
|
||
|
||
if ($nbLignes%10000==0) {
|
||
$fpT=fopen('/tmp/'.basename($argv[0]), 'w');
|
||
fwrite($fpT, ''.$fichier.';'.$moisNotice.';'.$jourNotice.';'.$nbLignes);
|
||
fclose($fpT);
|
||
}
|
||
}
|
||
$a = fgets($fp, 4096);
|
||
}
|
||
fclose($fp);
|
||
echo date('Y/m/d - H:i:s'). " - Fichier $fichier : $nbLignes lignes traités ($nbInsert ajouts, $nbUpdate maj et $nbDBl doublons)".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbSiretInvalides siret invalides,".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbCreations établissements en création,".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbModifI établissements modifiés en état initial,".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbModifF établissements modifiés en état final,".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbModifS établissements \"non sièges\" modifiés,".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbModifErr établissements dont l'état actif à été positionné par défaut,".EOL;
|
||
echo date('Y/m/d - H:i:s'). " - $nbFermetures établissements fermés.".EOL;
|
||
|
||
} else {
|
||
echo date('Y/m/d - H:i:s'). " - Fichier $fichier inexistant ou impossible à ouvrir !".EOL;
|
||
$finOK=false;
|
||
}
|
||
|
||
} // Fin de la boucle de lecture des fichiers
|
||
|
||
|
||
if ($stock && $updateInsee) {
|
||
echo date ('Y/m/d - H:i:s')." - Passage à l'état inactif de tous les établissements ignorés...".EOL;
|
||
$sql="UPDATE identite SET ACTIF=0, DATE_MAJ='$dateNotice', dateFerET='$moisNotice".'00'."' WHERE ACTIF=1;";
|
||
$iDbI->query($sql, true);
|
||
|
||
echo date ('Y/m/d - H:i:s')." - Confirmation à l'état actif de tous les établissements chargés...".EOL;
|
||
$sql="UPDATE identite SET ACTIF=1 WHERE ACTIF=11;";
|
||
$iDbI->query($sql, true);
|
||
}
|
||
|
||
unlink('/tmp/'.basename($argv[0]));
|
||
|
||
echo date ('Y/m/d - H:i:s') . " - Fin du traitement de chargement du mensuel INSEE".EOL;
|
||
|
||
die();
|
||
|
||
?>
|