2012-10-16 07:44:31 +00:00
#!/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 ;
}
include_once ( FWK_PATH . 'common/chiffres.php' );
include_once ( FWK_PATH . 'common/dates.php' );
include_once ( FWK_PATH . 'common/ftp.php' );
include_once ( INCLUDE_PATH . 'insee/classMInsee.php' );
include_once ( FWK_PATH . 'mail/sendMail.php' );
define ( 'INSEE_FTP_URL' , 'ftp.odissee.insee.fr' );
define ( 'INSEE_FTP_USER' , '5358116' );
define ( 'INSEE_FTP_PASS' , 'SC8$_21v' );
//define('INSEE_FTP_REMOTE_DIR', 'odissee/MAP/*');
define ( 'INSEE_FTP_REMOTE_DIR' , 'odissee/5358116/*' );
define ( 'INSEE_LOCAL_DIR' , '/home/data/insee/even/' );
$strInfoScript = 'Usage : ' . basename ( $argv [ 0 ]) . " <option>
Chargement du / des flux quotidiens en provenance de Insee .
Options :
2013-06-19 08:24:49 +00:00
- d Mode debug ( Verbosit<EFBFBD> au maximum )
- j Ne pas r<EFBFBD> cup<EFBFBD> rer les derniers fichiers sur le FTP de l ' Insee
- u Forcer la mise <EFBFBD> jour la table identite de l ' insee
- s = 20080430 R<EFBFBD> appliquer les <EFBFBD> v<EFBFBD> nements depuis cette date
- f = 20121231 R<EFBFBD> appliquer les <EFBFBD> v<EFBFBD> nements jusqu ' <EFBFBD> cette date
- e = xxxxxxxx R<EFBFBD> appliquer l ' <EFBFBD> v<EFBFBD> nement xxxxxxxx
- c = 552144503 Siren de l ' entreprise sur laquelle r<EFBFBD> appliquer tous les <EFBFBD> v<EFBFBD> nements
2012-10-16 07:44:31 +00:00
" ;
$iDb = new WDB ( 'insee' );
$iDbR = new WDB ( 'insee' );
$iDbW = new WDB ( 'insee' );
$iInsee = new MInsee ();
$nbSiretInvalides = $nbErreurs = $nbInsert = $nbUpdate = 0 ;
2013-06-19 08:24:49 +00:00
$modeDebug = $dateReprise = $dateFin = false ;
2012-10-16 07:44:31 +00:00
$messageDebug = '' ;
$ftpStep = true ;
$updateInsee = false ;
$iReprise = $sirenReprise = 0 ;
$tabFichier = array ();
2013-06-19 08:24:49 +00:00
$tabModifsEntrep = array (); // Tableau des modifications au niveau entreprises qui n'ont pas d'<27> v<EFBFBD> nements par <20> tablissement
2012-10-16 07:44:31 +00:00
$nomFichierCharges = array ();
$nbLignes = $nbLignesCharges = $nbSiretInvalidesCharges = 0 ;
//Initialistation des variables
$argv = $_SERVER [ 'argv' ];
2013-06-19 08:24:49 +00:00
//if ($_SERVER['argc']==1) die("Non g<> r<EFBFBD> pour l'instant : chargera les derniers fichiers EVEN non charg<72> s !".EOL);
2012-10-16 07:44:31 +00:00
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 'j' : $ftpStep = false ; break ;
case 'u' : $updateInsee = true ; break ;
case 's' : $dateReprise = substr ( $argv [ $i ], 3 , 8 ); $ftpStep = false ; break ;
2013-06-19 08:24:49 +00:00
case 'f' : $dateFin = substr ( $argv [ $i ], 3 , 8 ); $ftpStep = false ; break ;
2012-10-16 07:44:31 +00:00
case 'e' : $iReprise = substr ( $argv [ $i ], 3 ); $ftpStep = false ; break ;
case 'c' : $sirenReprise = substr ( $argv [ $i ], 3 ); $ftpStep = false ; break ;
case '-' :
case '?' : die ( $strInfoScript ); break ;
default : die ( 'Option ' . $argv [ $i ] . " inconnue ! \n " );
}
} else $tabFichier [] = $argv [ $i ];
}
2013-06-19 08:24:49 +00:00
/*
$siren = 356000000 ;
$tabNic = array ( '00055' , '00056' , '00060' , '00061' );
foreach ( $tabNic as $nic ) {
echo " $siren\t $nic\t " ;
if ( ! $iInsee -> valideSiren ( $siren , $nic )) {
echo 'INVALIDE' . EOL ;
} else echo 'valide' . EOL ;
}
die ();
*/
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement de chargement des <20> v<EFBFBD> nements INSEE " . EOL ;
2012-10-16 07:44:31 +00:00
$dateDeb = date ( 'YmdHis' );
$db_table = 'insee_even' ;
if ( $ftpStep ) {
2013-06-19 08:24:49 +00:00
/* R<> cup<75> ration des flux FTP */
echo date ( 'Y/m/d - H:i:s' ) . " - DEBUT de la r<> cup<75> ration des flux FTP de l'INSEE... " . EOL ;
2012-10-16 07:44:31 +00:00
$ret = ftp_mget ( INSEE_FTP_URL , INSEE_FTP_USER , INSEE_FTP_PASS , INSEE_FTP_REMOTE_DIR , INSEE_LOCAL_DIR , true );
if ( $ret === false )
2013-06-19 08:24:49 +00:00
die ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR : R<> cup<75> ration des flux INSEE en FTP incorrecte ! " . EOL );
2012-10-16 07:44:31 +00:00
else
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - FIN de la r<> cup<75> ration des flux INSEE en FTP ( $ret fichiers r<> cup<75> r<EFBFBD> s). " . EOL ;
2012-10-16 07:44:31 +00:00
}
/** Liste des fichiers quotidiens de l ' Insee
**/
if ( $dateReprise > 0 || $iReprise > 0 || $sirenReprise > 1000 )
$tabFichier = array ();
else {
$dh = opendir ( INSEE_LOCAL_DIR . str_replace ( '*' , '' , INSEE_FTP_REMOTE_DIR ));
while ( false !== ( $filename = readdir ( $dh ))) {
2013-06-19 08:24:49 +00:00
if ( $filename <> '.' && $filename <> '..' && substr ( $filename , 0 , 6 ) <> 'EVE.NJ' && substr ( $filename , 0 , 2 ) <> 'NJ' )
2012-10-16 07:44:31 +00:00
$tabFichier [] = $filename ;
}
}
if ( file_exists ( REP_TEMP . 'stockInsee.lock' )) {
$message = 'Stock en cours de chargement "' . file_get_contents ( REP_TEMP . 'stockInsee.lock' ) . '"' ;
2013-06-19 08:24:49 +00:00
sendMail ( 'webmaster@scores-decisions.com' , 'ylenaour@scores-decisions.com' , 'Flux quotidien INSEE non trait<69> car trimestriel en cours' , $message );
2012-10-16 07:44:31 +00:00
die ();
}
$tabToIdentite = array ();
2013-06-19 08:24:49 +00:00
/** Chargement des fichiers si n<EFBFBD> cessaire
2012-10-16 07:44:31 +00:00
**/
for ( $i = 0 ; isset ( $tabFichier [ $i ]); $i ++ )
{
$nomFichier = $tabFichier [ $i ];
2013-06-19 08:24:49 +00:00
$idFlux = strtr ( strtoupper ( basename ( $nomFichier )), array ( 'EVE.' => '' , 'DJ' => '20' ));
2012-10-16 07:44:31 +00:00
$tabTailles [ $idFlux ] = filesize ( INSEE_LOCAL_DIR . str_replace ( '*' , '' , INSEE_FTP_REMOTE_DIR ) . $nomFichier );
$tabDateFic [ $idFlux ] = date ( 'YmdHis' , filemtime ( INSEE_LOCAL_DIR . str_replace ( '*' , '' , INSEE_FTP_REMOTE_DIR ) . $nomFichier ));
$fp = fopen ( INSEE_LOCAL_DIR . str_replace ( '*' , '' , INSEE_FTP_REMOTE_DIR ) . $nomFichier , 'r' );
if ( ! $fp ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Erreur : Impossible d'ouvrir le fichier n<> $i <20> traiter ' " . $nomFichier . " ' " . EOL ;
2012-10-16 07:44:31 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Fin du traitement " . EOL ;
die ();
}
$nbLignes = 0 ; // Nombre de ligne du fichier
$ret = $iDb -> select ( $db_table , 'count(idFlux) as nb' , " idFlux=' $idFlux ' /*AND insEVE NOT IN('810','RCS')*/ " );
$nbLoaded = $ret [ 0 ][ 0 ];
while ( ! feof ( $fp ))
{
$nbLignes ++ ;
$a = trim ( fgets ( $fp , 1024 ));
}
if ( $nbLoaded > 0 ) {
if ( -- $nbLignes <= $nbLoaded )
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier n<> $i , $nomFichier a d<> j<EFBFBD> <20> t<EFBFBD> charg<72> ( $nbLoaded lignes) ! " . EOL ;
2012-10-16 07:44:31 +00:00
else
2013-06-19 08:24:49 +00:00
die ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR : le fichier n<> $i , $nomFichier a <20> t<EFBFBD> charg<72> partiellement $nbLignes <> $nbLoaded ! " . EOL );
2012-10-16 07:44:31 +00:00
continue ;
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement du fichier n<> $i , $nomFichier ( $nbLignes lignes <20> traiter) ! " . EOL ;
2012-10-16 07:44:31 +00:00
$tabToIdentite [] = $idFlux ;
flush ();
$finFichier = false ;
$nbLignes = $nbErreurs = 0 ;
rewind ( $fp );
while ( ! feof ( $fp ))
{
$nbLignes ++ ;
$a = trim ( fgets ( $fp , 1024 ));
if ( $finFichier ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Attention la fin de fichier a <20> t<EFBFBD> trouv<75> e <20> la ligne pr<70> c<EFBFBD> dente ! " . EOL ; //Nouveau format du fichier <20> v<EFBFBD> nement (de Mai 2007) non g<> r<EFBFBD> !
2012-10-16 07:44:31 +00:00
die ();
} elseif ( $a == '' )
break ;
//unset($tabErreur); $nbErr=0;
$tabEve = array ();
$tabEve [ 'idFlux' ] = $idFlux ;
2013-06-19 08:24:49 +00:00
$tabEve [ 'insSIREN' ] = substr ( $a , 0 , 9 ); // N<> Siren de l'entreprise concern<72> e par la mise <20> jour
$tabEve [ 'insNIC' ] = substr ( $a , 9 , 5 ); // Identifiant de l'<27> tablissement
2012-10-16 07:44:31 +00:00
// DONNEES SUR L.EVENEMENT
2013-06-19 08:24:49 +00:00
$tabEve [ 'insDATEMAJ' ] = strtr ( substr ( $a , 14 , 19 ), array ( '-' => '' , 'T' => '' , ':' => '' )); //Date de traitement de la mise <20> jour
$tabEve [ 'insEVE' ] = substr ( $a , 33 , 3 ); //Type d'<27> v<EFBFBD> nement
$tabEve [ 'insDATEVE' ] = substr ( $a , 36 , 8 ); //Date de l'<27> v<EFBFBD> nement
$tabEve [ 'insTYPETAB' ] = substr ( $a , 44 , 2 ); //Type d'<27> tablissement concern<72> par l'<27> v<EFBFBD> nement
2012-10-16 07:44:31 +00:00
// INFORMATIONS SUR L.ADRESSE D.IMPLANTATION ET LA LOCALISATION GEOGRAPHIQUE
$tabEve [ 'insL1_NOMEN' ] = trim ( substr ( $a , 46 , 38 )); //Nom ou raison sociale de l'entreprise pour l'adressage
2013-06-19 08:24:49 +00:00
$tabEve [ 'insL2_COMP' ] = trim ( substr ( $a , 84 , 38 )); //Compl<70> ment de nom de l'entreprise pour l'adressage
$tabEve [ 'insL3_CADR' ] = trim ( substr ( $a , 122 , 38 )); //Compl<70> ment d'adresse pour l.adressage
$tabEve [ 'insL4_VOIE' ] = trim ( substr ( $a , 160 , 38 )); //Num<75> ro et libell<6C> dans la voie
$tabEve [ 'insL5_DISP' ] = trim ( substr ( $a , 198 , 38 )); //Distribution sp<73> ciale
2012-10-16 07:44:31 +00:00
$tabEve [ 'insL6_POST' ] = trim ( substr ( $a , 236 , 38 )); //Ligne d.acheminement postal pour l.adressage
2013-06-19 08:24:49 +00:00
$tabEve [ 'insL7_ETRG' ] = trim ( substr ( $a , 274 , 38 )); //Libell<6C> du pays pour les adresses <20> l'<27> tranger
$tabEve [ 'insTEL' ] = trim ( substr ( $a , 312 , 14 )); //T<> l<EFBFBD> phone
$tabEve [ 'insRPET' ] = substr ( $a , 326 , 2 ); //R<> gion de localisation de l'<27> tablissement
$tabEve [ 'insDEPCOM' ] = substr ( $a , 328 , 5 ); //D<> partement et commune d'implantation de l'<27> tablissement
2012-10-16 07:44:31 +00:00
$tabEve [ 'insCODEVOIE' ] = substr ( $a , 333 , 5 ); //Code voie
2013-06-19 08:24:49 +00:00
$tabEve [ 'insLIBCOM' ] = trim ( substr ( $a , 338 , 32 )); //Libell<6C> de la commune de localisation de l'<27> tablissement
2012-10-16 07:44:31 +00:00
$tabEve [ 'insCODPOS' ] = substr ( $a , 370 , 5 ); //Code postal
2013-06-19 08:24:49 +00:00
$tabEve [ 'insNUMVOIE' ] = substr ( $a , 375 , 4 ); //Num<75> ro dans la voie
$tabEve [ 'insINDREP' ] = substr ( $a , 379 , 1 ); //Indice de r<> p<EFBFBD> tition
$tabEve [ 'insTYPVOIE' ] = trim ( substr ( $a , 380 , 4 )); //Type de la voie de localisation de l'<27> tablissement
$tabEve [ 'insLIBVOIE' ] = trim ( substr ( $a , 384 , 32 )); //Libell<6C> de la voie de localisation de l'<27> tablissement
2012-10-16 07:44:31 +00:00
// DONNEES DE GESTION CONCERNANT L.ETABLISSEMENT
$tabEve [ 'insENSEIGNE' ] = trim ( substr ( $a , 416 , 40 )); //Enseigne ou nom de l.exploitation
2013-06-19 08:24:49 +00:00
$tabEve [ 'insDCRET' ] = substr ( $a , 456 , 8 ); //Date de cr<63> ation de l'<27> tablissement (ann<6E> e, mois, jour)
$tabEve [ 'insDREACTET' ] = substr ( $a , 464 , 8 ); //Date de r<> activation de l'<27> tablissement (ann<6E> e, mois, jour)
$tabEve [ 'insSIEGE' ] = substr ( $a , 472 , 1 ); //Qualit<69> de si<73> ge ou non de l.<2E> tablissement
2012-10-16 07:44:31 +00:00
$tabEve [ 'insEXPLET' ] = substr ( $a , 473 , 1 ); //Etablissement exploitant tout ou partie des moyens de production
2013-06-19 08:24:49 +00:00
$tabEve [ 'insORIGINE' ] = substr ( $a , 474 , 2 ); //Origine de la cr<63> ation de l'<27> tablissement
$tabEve [ 'insDESTINAT' ] = substr ( $a , 476 , 2 ); //Destination de l'<27> tablissement
$tabEve [ 'insAPET700' ] = substr ( $a , 478 , 5 ); //Activit<69> principale de l'entreprise en 700 classes
$tabEve [ 'insDAPET' ] = substr ( $a , 483 , 4 ); //Date de validit<69> de l'activit<69> principale de l'<27> tablissement
$tabEve [ 'insAPRM' ] = substr ( $a , 487 , 6 ); //Activit<69> principale au registre des m<> tiers
$saisonat = trim ( strtoupper ( substr ( $a , 493 , 2 ))); //Caract<63> re saisonnier ou non de l'activit<69> de l'<27> tablissement
2012-10-16 07:44:31 +00:00
if ( $saisonat == 'S' ) $tabEve [ 'insSAISONAT' ] = 1 ;
else $tabEve [ 'insSAISONAT' ] = 0 ;
2013-06-19 08:24:49 +00:00
$tabEve [ 'insAUXILT' ] = substr ( $a , 495 , 1 ); //Caract<63> re auxiliaire de l'activit<69> de l'<27> tablissement
$tabEve [ 'insACTIVNAT' ] = substr ( $a , 496 , 2 ); //Nature de l'activit<69> de l'<27> tablissement
$tabEve [ 'insLIEUACT' ] = substr ( $a , 498 , 2 ); //Lieu de l'activit<69> de l'<27> tablissement
2012-10-16 07:44:31 +00:00
$tabEve [ 'insACTISURF' ] = substr ( $a , 500 , 2 ); //Type de magasin
2013-06-19 08:24:49 +00:00
$tabEve [ 'insTEFET' ] = substr ( $a , 502 , 2 ); //Tranche d'effectif salari<72> de l'<27> tablissement
$tabEve [ 'insEFETCENT' ] = substr ( $a , 504 , 6 ); //Effectif salari<72> de l'<27> tablissement <20> la centaine pr<70> s
$tabEve [ 'insDEFET' ] = substr ( $a , 510 , 4 ); //Date de mise <20> jour de l'effectif salari<72> de l'<27> tablissement (ann<6E> e)
$tabEve [ 'insPRODPART' ] = substr ( $a , 514 , 1 ); //Participation particuli<6C> re <20> la production de l'<27> tablissement
$tabEve [ 'insSIRETPS' ] = trim ( substr ( $a , 515 , 14 )); //Siret du pr<70> d<EFBFBD> cesseur ou du successeur
$tabEve [ 'insSIRETASS' ] = trim ( substr ( $a , 529 , 14 )); //Siret associ<63>
2012-10-16 07:44:31 +00:00
// DONNEES DE GESTION CONCERNANT L.ENTREPRISE A LAQUELLE APPARTIENT L.ETABLISSEMENTDESCRIPTION DES MISES A JOUR DE L.ETABLISSEMENT
2013-06-19 08:24:49 +00:00
$tabEve [ 'insMENSEIGNE' ] = substr ( $a , 543 , 1 ); //Indicateur de mise <20> jour de l'enseigne de l'<27> tablissement
$tabEve [ 'insMAPET' ] = substr ( $a , 544 , 1 ); //Indicateur de mise <20> jour de l'activit<69> principale de l'<27> tablissement
$tabEve [ 'insMADRESSE' ] = substr ( $a , 545 , 1 ); //Indicateur de mise <20> jour de l'adresse de localisation de l'<27> tablissement
$tabEve [ 'insMEXPLET' ] = substr ( $a , 546 , 1 ); //Indicateur de mise <20> jour du caract<63> re exploitant de l'<27> tablissement
$tabEve [ 'insMAUXILT' ] = substr ( $a , 547 , 1 ); //Indicateur de mise <20> jour du caract<63> re auxiliaire de l'activit<69> de l'<27> tablissement
2012-10-16 07:44:31 +00:00
// DONNEES DE GESTION CONCERNANT L.ENTREPRISE A LAQUELLE APPARTIENT L.ETABLISSEMENT
$tabEve [ 'insNOMEN' ] = trim ( substr ( $a , 548 , 38 )); //Nom ou raison sociale de l'entreprise
$tabEve [ 'insSIGLE' ] = trim ( substr ( $a , 586 , 20 )); //Sigle de l'entreprise
2013-06-19 08:24:49 +00:00
$tabEve [ 'insDCREN' ] = substr ( $a , 606 , 8 ); //Date de cr<63> ation de l'entreprise (ann<6E> e, mois, jour)
$tabEve [ 'insDREACTEN' ] = substr ( $a , 614 , 8 ); //Date de r<> activation de l'entreprise (ann<6E> e, mois, jour)
$tabEve [ 'insCJ' ] = substr ( $a , 622 , 4 ); //Cat<61> gorie juridique ou professionnelle pour les entrepreneurs individuels
$tabEve [ 'insCIVILITE' ] = substr ( $a , 626 , 1 ); //Civilit<69> des entrepreneurs individuels
2012-10-16 07:44:31 +00:00
$tabEve [ 'insEXPLEN' ] = substr ( $a , 627 , 1 ); //Entreprise exploitant tout ou partie des moyens de production
2013-06-19 08:24:49 +00:00
$tabEve [ 'insFiller4' ] = substr ( $a , 628 , 1 ); //Zone r<> serv<72> e
$tabEve [ 'insAPEN700' ] = substr ( $a , 629 , 5 ); //Activit<69> principale de l'<27> tablissement en 700 classes
$tabEve [ 'insDAPEN' ] = substr ( $a , 634 , 4 ); //Date de validit<69> de l'activit<69> principale de l'entreprise
$tabEve [ 'insTEFEN' ] = substr ( $a , 638 , 2 ); //Tranche d'effectif salari<72> de l'entreprise
$tabEve [ 'insEFENCENT' ] = substr ( $a , 640 , 6 ); //Effectif salari<72> de l'entreprise <20> la centaine pr<70> s
$tabEve [ 'insDEFEN' ] = substr ( $a , 646 , 4 ); //Date de mise <20> jour de l'effectif salari<72> de l.entreprise (ann<6E> e)
$tabEve [ 'insNBETEXPL' ] = substr ( $a , 650 , 4 ); //Nombre d'<27> tablissements exploitants actifs de l'entreprise
$tabEve [ 'insMONOREG' ] = substr ( $a , 654 , 1 ); //Indice de mono-r<> gionalit<69> de l'entreprise
$tabEve [ 'insREGIMP' ] = substr ( $a , 655 , 2 ); //Principale r<> gion de localisation de l'entreprise
$tabEve [ 'insMONOACT' ] = substr ( $a , 657 , 1 ); //Indice de monoactivit<69> de l'entreprise
2012-10-16 07:44:31 +00:00
//DESCRIPTION DES MISES A JOUR DE L.ENTREPRISE A LAQUELLE APPARTIENT L.ETABLISSEMENT
2013-06-19 08:24:49 +00:00
$tabEve [ 'insMNOMEN' ] = substr ( $a , 658 , 1 ); //Indicateur de mise <20> jour du nom ou de la raison sociale
$tabEve [ 'insMSIGLE' ] = substr ( $a , 659 , 1 ); //Indicateur de mise <20> jour du sigle
$tabEve [ 'insMCJ' ] = substr ( $a , 660 , 1 ); //Indicateur de mise <20> jour de la cat<61> gorie juridique ou cat<61> gorie professionnelle
$tabEve [ 'insMAPEN' ] = substr ( $a , 661 , 1 ); //Indicateur de mise <20> jour de l'activit<69> principale de l'entreprise
$tabEve [ 'insMEXPLEN' ] = substr ( $a , 662 , 1 ); //Indicateur de mise <20> jour du caract<63> re exploitant de l'entreprise
$tabEve [ 'insMNICSIEGE' ] = substr ( $a , 663 , 1 ); //Indicateur de mise <20> jour du Nic du si<73> ge ou l'<27> tablissement principal
2012-10-16 07:44:31 +00:00
//INFORMATIONS SUR LE SIEGE DE L.ENTREPRISE A LAQUELLE APPARTIENT L.ETABLISSEMENT
2013-06-19 08:24:49 +00:00
$tabEve [ 'insNICSIEGE' ] = substr ( $a , 664 , 5 ); //Num<75> ro interne de classement de l'<27> tablissement si<73> ge
$tabEve [ 'insDEPCOMEN' ] = substr ( $a , 669 , 5 ); //D<> partement et commune de localisation du si<73> ge de l.entreprise
$tabEve [ 'insRPEN' ] = substr ( $a , 674 , 2 ); //R<> gion de localisation du si<73> ge de l'entreprise
2012-10-16 07:44:31 +00:00
$insSIREN = $tabEve [ 'insSIREN' ];
$insNIC = $tabEve [ 'insNIC' ];
if ( ! $iInsee -> valideSiren ( $insSIREN , $insNIC )) {
$tabEve [ 'siretValide' ] = 0 ;
$nbSiretInvalides ++ ;
}
else
$tabEve [ 'siretValide' ] = 1 ;
2013-06-19 08:24:49 +00:00
/** Conversion de la saisonnalit<69> **/
2012-10-16 07:44:31 +00:00
$insNOMEN = $tabEve [ 'insNOMEN' ];
$tabNoms = getNomPrenom ( $insNOMEN );
$tabEve [ 'dirNom' ] = $tabNoms [ 'Nom' ];
$tabEve [ 'dirNomUsage' ] = $tabNoms [ 'NomUsage' ];
$tabEve [ 'dirPrenom' ] = $tabNoms [ 'Prenom' ];
if ( trim ( $insSIREN ) <> '' && trim ( $insNIC ) <> '' ) {
$finFichier = false ;
$ret = $iDb -> insert ( $db_table , $tabEve );
if ( $ret === false ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR n<> " . mysql_errno () . " <20> l'insertion du siret $insSIREN $insNIC : " . mysql_error () . '!' . EOL ;
2012-10-16 07:44:31 +00:00
$nbErreurs ++ ;
flush ();
} else
$updateInsee = true ;
} else $finFichier = true ;
/* if ( $tabErreur ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - ATTENTION, ligne $nbLignes , probl<62> mes pour le siret $insSIREN $insNIC !!! \r \n " ;
2012-10-16 07:44:31 +00:00
print_array ( $tabErreur , 0 , " txt " );
flush ();
}
*/
//unset($tabDataToInsert);
}
fclose ( $fp );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier n<> $i , $nomFichier vient d'<27> tre charg<72> . " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - $nbLignes lignes trait<69> es dont $nbSiretInvalides siret invalides ! " . EOL ;
2012-10-16 07:44:31 +00:00
$nomFichierCharges [] = $nomFichier ;
$nbLignesCharges = $nbLignes ;
$nbSiretInvalidesCharges = $nbSiretInvalides ;
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Au total : $nbLignes lignes trait<69> es dont $nbSiretInvalides siret invalides ! " . EOL ;
echo date ( 'Y/m/d - H:i:s' ) . " - Chargement des <20> v<EFBFBD> nements termin<69> " ;
2012-10-16 07:44:31 +00:00
/**********************************************************************************************************************************
* MISE A JOUR DE LA TABLE IDENTITE
**********************************************************************************************************************************/
if ( $updateInsee ) {
2013-06-19 08:24:49 +00:00
echo ', d<> but de mise <20> jour de la table identite.' . EOL ;
$fieldsR = 'insSIREN, insNIC, insEVE, insDATEVE, insTYPETAB, insORIGINE, insDESTINAT, insTRAN, insNICTRAN, insL1_NOMEN, insNOMEN, insL2_COMP, insENSEIGNE, insSIGLE, insSIEGE, insNUMVOIE, insINDREP, insTYPVOIE, insLIBVOIE, insLIBCOM, insCODPOS, insL3_CADR, insL5_DISP, insAUXILT, insSAISONAT, insCJ, insCIVILITE, insDCRET, insDCREN, insAPEN700, insAPET700, insNBETEXPL, insTEFEN, insCODEVOIE, insDEPCOM, insTEL, insEFENCENT, insTEFET, insEFETCENT, insL7_ETRG, insAPRM, insACTIVNAT, insORIGINE, insMODET, insEXPLET, insDAPET, insLIEUACT, insACTISURF, insDEFET, insMODEN, insPRODPART, insEXPLEN, insDEFEN, insMONOREG, insREGIMP, insMONOACT, insDAPEN, dirNom, dirNomUsage, dirPrenom, insDATEMAJ, idFlux, insMNOMEN, insMSIGLE, insMCJ, insMAPEN, insMEXPLEN, insMNICSIEGE' ;
// on lit R pour mettre <20> jour W
2012-10-16 07:44:31 +00:00
$fieldsW = 'SIREN, NIC, IDENTITE_PRE, ACTIF, NOM, NOM2, ENSEIGNE, SIGLE, SIEGE, ADR_NUMVOIE, ADR_BTQ, ADR_TYPVOIE, ADR_LIBVOIE, ADR_LIBCOM, ADR_CP, ADR_COMP, ADR_DISTSP, AUXILT, SAISONAT, CJ, CIVILITE, DCRET, DCREN, APE_ENT, APE_ETAB, NBETAB, TEFF_ENT, TCA, CODEVOIE, ADR_DEP, ADR_COM, TEL, EFF_ENT, TEFF_ET, EFF_ET, PAYS, APRM, ACTIVNAT, ORIGINE, MODET, EXPLET, DAPET, LIEUACT, ACTISURF, DEFET, MODEN, PRODPART, EXPLEN, DEFEN, MONOREG, REGIMP, MONOACT, DAPEN, DIR_FCT, DIR_IDEN, DATE_MAJ' ;
if ( $iReprise > 0 )
$tabToIdentite = array ( 0 );
elseif ( $sirenReprise > 1000 )
$tabToIdentite = array ( 0 );
elseif ( ! $dateReprise ) //$tabToIdentite
sort ( $tabToIdentite );
else
$tabToIdentite = array ( $dateReprise );
foreach ( $tabToIdentite as $idFlux ) {
//$idFlux='20080114';
if ( $iReprise > 0 ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Chargement d'un seul <20> v<EFBFBD> nement de flux quotidien... " . EOL ;
2012-10-16 07:44:31 +00:00
$ret = $iDbR -> select ( 'insee_even' , $fieldsR , " id= $iReprise " , true , MYSQL_ASSOC , true );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - $ret ligne <20> mettre <20> jour... " . EOL ;
2012-10-16 07:44:31 +00:00
} elseif ( $sirenReprise > 1000 ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Chargement d'un seul siren... " . EOL ;
$ret = $iDbR -> select ( 'insee_even' , $fieldsR , " insSIREN= $sirenReprise ORDER BY idFlux ASC, insDATEMAJ ASC " , true , MYSQL_ASSOC , true );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - $ret lignes <20> mettre <20> jour... " . EOL ;
2012-10-16 07:44:31 +00:00
} elseif ( ! $dateReprise ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du chargement du flux $idFlux ... " . EOL ;
2012-10-16 07:44:31 +00:00
$ret = $iDbR -> select ( 'insee_even' , $fieldsR , " idFlux= $idFlux ORDER BY idFlux ASC, insSIREN ASC, insDATEMAJ ASC " , true , MYSQL_ASSOC , true );
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Chargement du flux $idFlux : $ret lignes <20> mettre <20> jour... " . EOL ;
2012-10-16 07:44:31 +00:00
} else {
2013-06-19 08:24:49 +00:00
$sqlDateFin = $strDateFin = '' ;
if ( $dateFin ) {
$strDateFin = " jusqu'au $dateFin " ;
$sqlDateFin = " AND idFlux<= $dateFin " ;
}
echo date ( 'Y/m/d - H:i:s' ) . " - Chargement des flux quotidiens depuis $idFlux $strDateFin ... " . EOL ;
$ret = $iDbR -> select ( 'insee_even' , $fieldsR , " idFlux>= $idFlux $sqlDateFin ORDER BY idFlux ASC, insSIREN ASC, insDATEMAJ ASC " , true , MYSQL_ASSOC , true );
2012-10-16 07:44:31 +00:00
// $ret=$iDbR->select('insee_even', $fieldsR, "idFlux>=$idFlux AND LENGTH(insL2_COMP)>30 ORDER BY idFlux ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);
/* $ret=$iDbR->select('insee_even', $fieldsR, "insSIREN IN (100800002,987310505) AND idFlux IN (20040426, 20080114) ORDER BY idFlux ASC, insDATEMAJ ASC", true, MYSQL_ASSOC, true);*/
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - $ret lignes <20> mettre <20> jour... " . EOL ;
2012-10-16 07:44:31 +00:00
}
$k = $nbInsert = $nbUpdate = $nbDBl = $nbSirenDeja = $nbInsertSiren = 0 ;
$messageDebug = " Ligne : SIREN NIC Actif/ActifEco \t EVE \t DESTINAT \t TYPETAB \t ORIGINE " . EOL ;
while ( $ligne = $iDbR -> fetch ( MYSQL_ASSOC )) {
$k ++ ;
$siren = $ligne [ 'insSIREN' ];
$nic = $ligne [ 'insNIC' ];
$ret2 = $iDbW -> select ( 'identite' , $fieldsW , " SIREN= $siren AND NIC= $nic " );
$cpt = count ( $ret2 );
if ( $cpt > 0 ) $etab = $ret2 [ 0 ];
else {
$ret3 = $iDbW -> select ( 'identite' , $fieldsW , " SIREN= $siren AND SIEGE=1 ORDER BY NIC DESC " );
$etab2 = array ();
if ( count ( $ret3 ) > 0 ) {
$etab2 = $ret3 [ 0 ];
$nbSirenDeja ++ ;
} else
$nbInsertSiren ++ ;
$etab = array ( 'IDENTITE_PRE' =>@ $etab2 [ 'IDENTITE_PRE' ],
'NOM' =>@ $etab2 [ 'NOM' ],
'ENSEIGNE' => '' ,
'SIGLE' =>@ $etab2 [ 'SIGLE' ]);
}
$cj1 = substr ( $ligne [ 'insCJ' ], 0 , 1 ) * 1 ;
if ( $cj1 == 1 ) {
$arrDir = array ( 'DIR_FCT' => 'PP' ,
'DIR_IDEN' => strtoupper ( trim ( $ligne [ 'dirNom' ])) . ' ' .
ucwords ( strtolower ( trim ( $ligne [ 'dirPrenom' ]))));
} else
$arrDir = array ();
$evenTxt = trim ( $ligne [ 'insEVE' ]);
$even = $evenTxt * 1 ;
$typEtab = trim ( $ligne [ 'insTYPETAB' ]) * 1 ;
if ( $even == 0 ) {
switch ( '' . trim ( $ligne [ 'insEVE' ])) {
case 'MPF' :
case 'MNP' :
case 'MSA' :
case 'MAS' :
case 'MAC' :
case 'M00' :
case '00' : $even = 780 ; break ;
case 'M0C' :
2013-06-19 08:24:49 +00:00
case 'CC' : $even = 110 ; break ; // Cr<43> ation d'une entreprise
2012-10-16 07:44:31 +00:00
case 'M0F' :
case 'FF' : $even = 410 ; break ; // Fermeture de l'entreprise
2013-06-19 08:24:49 +00:00
case 'OC' : $even = 130 ; break ; // Cr<43> ation d'un <20> tablissement
case 'RC' : $even = 120 ; break ; // R<> activation d'une entreprise par cr<63> ation d'un <20> tablissement
2012-10-16 07:44:31 +00:00
case 'M0R' :
2013-06-19 08:24:49 +00:00
case 'RR' : $even = 120 ; break ; // R<> activation d'une entreprise par r<> activation d'un <20> tablissement
case 'OA' : $even = 145 ; break ; // Activation <20> conomique d'un <20> tab par adjonction de moyens de production
case 'OD' : $even = 430 ; break ; // D<> sactivation <20> conomique d'un <20> tab par suppression de moyens de prod.
case 'OF' : $even = 430 ; break ; // Fermeture d'un <20> tablissement
case 'TC' : $even = 510 ; $typEtab = 11 ; break ; // Cr<43> ation de l'<27> tablissement d'arriv<69> e et cessation de l'<27> tablissement de d<> part dans le cadre d'un transfert
2012-10-16 07:44:31 +00:00
case 'TR' : $even = 510 ; $typEtab = 11 ; break ;
case 'T0' : $even = 510 ; $typEtab = 11 ; break ;
case 'TA' : $even = 510 ; $typEtab = 11 ; break ;
2013-06-19 08:24:49 +00:00
case 'TF' : $even = 510 ; $typEtab = 10 ; break ; // Fermeture d'un <20> tablissement dans le cadre d'un transfert
case 'TD' : $even = 510 ; $typEtab = 10 ; break ; // D<> sactivation <20> conomique d'un <20> tablissement (ordinaire devient singulier) par suppression de moyens de production dans le cadre d'un transfert
2012-10-16 07:44:31 +00:00
default :
if ( '' . substr ( trim ( $ligne [ 'insEVE' ]), 0 , 1 ) . '' == 0 && substr ( trim ( $ligne [ 'insEVE' ]), 1 , 1 ) == 'C' ) $even = 130 ;
elseif ( '' . substr ( trim ( $ligne [ 'insEVE' ]), 0 , 1 ) . '' == 0 && substr ( trim ( $ligne [ 'insEVE' ]), 1 , 1 ) == 'A' ) $even = 145 ;
elseif ( '' . substr ( trim ( $ligne [ 'insEVE' ]), 0 , 1 ) . '' == 0 && substr ( trim ( $ligne [ 'insEVE' ]), 1 , 1 ) == 'D' ) $even = 430 ;
elseif ( '' . substr ( trim ( $ligne [ 'insEVE' ]), 0 , 1 ) . '' == 0 && substr ( trim ( $ligne [ 'insEVE' ]), 1 , 1 ) == 'F' ) $even = 430 ;
elseif ( '' . substr ( trim ( $ligne [ 'insEVE' ]), 0 , 1 ) . '' == 0 && substr ( trim ( $ligne [ 'insEVE' ]), 1 , 1 ) == 'R' ) $even = 120 ;
else echo ( " Erreur code sur Siren $siren $nic : code Even= \" " . trim ( $ligne [ 'insEVE' ]) . '"' . EOL );
break ;
}
}
//$even=780
$origine = trim ( $ligne [ 'insORIGINE' ]);
$destinat = trim ( $ligne [ 'insDESTINAT' ]);
2013-06-19 08:24:49 +00:00
$dateFerEN = $dateFerET =- 1 ; // Rar d<> faut, on n'y touche pas
$actifEco =- 1 ; // Economiquement actif, par d<> faut Idem, RAS
2012-10-16 07:44:31 +00:00
$sirenNonDiffusible = false ;
switch ( $even ) {
2013-06-19 08:24:49 +00:00
case 110 : // Cr<43> ation ou r<> activation Cr<43> ation d'une entreprise
case 120 : // R<> activation d'une entreprise
case 125 : // R<> activation d'une entreprise suite <20> une mise <20> jour du r<> pertoire
case 130 : // Cr<43> ation d'un <20> tablissement
case 145 : // Reprise d'activit<69> dans un <20> tablissement suite <20> une mise <20> jour du r<> pertoire
2012-10-16 07:44:31 +00:00
switch ( $typEtab ) {
2013-06-19 08:24:49 +00:00
case 15 : // Si<53> ge modifi<66> (hors transfert) : modification de l'activit<69> principale avec d<> sactivation <20> conomique
case 25 : // <20> tablissement modifi<66> (hors transfert) : modification de l'activit<69> principale avec d<> sactivation <20> conomique
2012-10-16 07:44:31 +00:00
$dateFerET = 0 ;
$actif = 1 ;
$actifEco = 0 ;
break ;
2013-06-19 08:24:49 +00:00
case 23 : // <20> tablissement ferm<72> (hors transfert)
2012-10-16 07:44:31 +00:00
$dateFerET = $ligne [ 'insDATEVE' ];
$actif = $actifEco = 0 ;
break ;
default :
$dateFerET = $dateFerEN = 0 ;
$actif = 1 ;
// $actifEco=1;
break ;
}
break ;
case 400 : // Suppression d'un double
$dateFerET = $dateFerEN = $ligne [ 'insDATEVE' ];
$actif = $actifEco = 0 ;
//continue; // On ignore les suppressions de doublons
break ;
case 410 : // Cessation juridique de l'entreprise
$dateFerET = $ligne [ 'insDATEVE' ];
$dateFerEN = $ligne [ 'insDATEVE' ];
$actif = $actifEco = 0 ;
2013-06-19 08:24:49 +00:00
/** @todo, il faudrait fermer tous les <20> tabs **/
2012-10-16 07:44:31 +00:00
break ;
2013-06-19 08:24:49 +00:00
case 420 : // Absence d'activit<69> de l'entreprise (cessation <20> conomique de l'entreprise)
2012-10-16 07:44:31 +00:00
// $dateFerET=$ligne['insDATEVE'];
// $dateFerEN=$ligne['insDATEVE'];
$actif = $actifEco = 0 ;
2013-06-19 08:24:49 +00:00
/** @todo, il faudrait fermer tous les <20> tabs **/
2012-10-16 07:44:31 +00:00
break ;
2013-06-19 08:24:49 +00:00
case 425 : // Absence d'activit<69> d'une entreprise suite <20> une mise <20> jour au r<> pertoire
case 430 : // Fermeture d'un <20> tablissement
case 435 : // Fermeture d'un <20> tablissement suite <20> une mise <20> jour au r<> pertoire
2012-10-16 07:44:31 +00:00
switch ( $typEtab ) {
2013-06-19 08:24:49 +00:00
case 13 : // Si<53> ge ferm<72> (hors transfert)
case 23 : // <20> tablissement ferm<72> (hors transfert)
2012-10-16 07:44:31 +00:00
$dateFerET = $ligne [ 'insDATEVE' ];
$actif = $actifEco = 0 ;
break ;
2013-06-19 08:24:49 +00:00
case 15 : // Si<53> ge modifi<66> (hors transfert) : modification de l'activit<69> principale avec d<> sactivation <20> conomique
case 25 : // <20> tablissement modifi<66> (hors transfert) : modification de l'activit<69> principale avec d<> sactivation <20> conomique
2012-10-16 07:44:31 +00:00
// $dateFerET=$ligne['insDATEVE'];
$actif = 1 ;
$actifEco = 0 ;
break ;
2013-06-19 08:24:49 +00:00
case 16 : // Si<53> ge modifi<66> (hors transfert) : modification de l'APE de l'<27> tablissement
case 17 : // Si<53> ge modifi<66> (hors transfert) : modification de l'identification de l'<27> tablissement
case 19 : // Si<53> ge modifi<66> (hors transfert) : autre modification de l'<27> tablissement
2012-10-16 07:44:31 +00:00
$dateFerET = $dateFerEN = 0 ;
$actif = 1 ;
break ;
2013-06-19 08:24:49 +00:00
case 24 : // <20> tablissement modifi<66> (hors transfert) : modification de l'activit<69> principale avec activation <20> conomique
case 14 : // Si<53> ge modifi<66> (hors transfert) : modification de l'activit<69> principale avec activation <20> conomique
2012-10-16 07:44:31 +00:00
$dateFerET = $dateFerEN = 0 ;
$actif = 1 ;
$actifEco = 1 ;
break ;
default :
$actif =- 1 ;
break ;
}
break ;
2013-06-19 08:24:49 +00:00
case 510 : // Cr<43> ation de l'<27> tablissement d'arriv<69> e et cessation de l'<27> tablissement de d<> part dans le cadre d'un transfert
case 520 : // Cr<43> ation de l'<27> tablissement d'arriv<69> e et modification de l'<27> tablissement de d<> part dans le cadre d'un transfert
case 530 : // Modification de l'<27> tablissement d'arriv<69> e et cessation de l'<27> tablissement de d<> part dans le cadre d'un transfert
case 540 : // Modification de l'<27> tablissement d'arriv<69> e et modification de l'<27> tablissement de d<> part dans le cadre d'un transfert
2012-10-16 07:44:31 +00:00
switch ( $typEtab ) {
2013-06-19 08:24:49 +00:00
case 9 : // Si<53> ge apr<70> s transfert non cr<63> <72>
case 8 : // Si<53> ge avant transfert non ferm<72>
case 11 : // Si<53> ge apr<70> s transfert cr<63> <72>
case 12 : // Si<53> ge cr<63> <72> (hors transfert)
case 21 : // <20> tablissement apr<70> s transfert cr<63> <72>
case 22 : // <20> tablissement cr<63> <72> (hors transfert)
case 30 : // <20> tablissement avant transfert non ferm<72>
case 31 : // <20> tablissement apr<70> s transfert non cr<63> <72>
2012-10-16 07:44:31 +00:00
//echo "case even=$even, typeEtab=$typEtab\n";
$dateFerET = $dateFerEN = 0 ;
$actif = $actifEco = 1 ;
break ;
2013-06-19 08:24:49 +00:00
case 14 : // Si<53> ge modifi<66> (hors transfert) : modification de l'activit<69> principale avec activation <20> conomique
case 24 : // <20> tablissement modifi<66> (hors transfert) : modification de l'activit<69> principale avec activation <20> conomique
2012-10-16 07:44:31 +00:00
$dateFerET = $dateFerEN = 0 ;
$actif = $actifEco = 1 ;
break ;
2013-06-19 08:24:49 +00:00
case 10 : // Si<53> ge avant transfert ferm<72>
case 13 : // Si<53> ge ferm<72> (hors transfert)
case 20 : // <20> tablissement avant transfert ferm<72>
case 23 : // <20> tablissement ferm<72> (hors transfert)
case 32 : // <20> tablissement supprim<69>
2012-10-16 07:44:31 +00:00
//echo "case even=$even, typeEtab=$typEtab\n";
$dateFerET = $ligne [ 'insDATEVE' ];
$actif = $actifEco = 0 ;
break ;
2013-06-19 08:24:49 +00:00
case 15 : // Si<53> ge modifi<66> (hors transfert) : modification de l'activit<69> principale avec d<> sactivation <20> conomique
case 25 : // <20> tablissement modifi<66> (hors transfert) : modification de l'activit<69> principale avec d<> sactivation <20> conomique
2012-10-16 07:44:31 +00:00
$dateFerET = $dateFerEN = 0 ;
$actif = 1 ;
$actifEco = 0 ;
break ;
default :
2013-06-19 08:24:49 +00:00
// 19 Si<53> ge modifi<66> (hors transfert) : autre modification de l'<27> tablissement
// 29 <09> tablissement modifi<66> (hors transfert) : modification d.une autre variable de l'<27> tablissement
2012-10-16 07:44:31 +00:00
$actif =- 1 ;
break ;
/*
Que fait on pour ces codes ?
2013-06-19 08:24:49 +00:00
16 Si<EFBFBD> ge modifi<EFBFBD> ( hors transfert ) : modification de l 'activit<69> principale de l' <EFBFBD> tablissement
17 Si<EFBFBD> ge modifi<EFBFBD> ( hors transfert ) : modification de l 'identification de l' <EFBFBD> tablissement
26 <EFBFBD> tablissement modifi<EFBFBD> ( hors transfert ) : autre modification de l 'activit<69> principale de l' <EFBFBD> tablissement
27 <EFBFBD> tablissement modifi<EFBFBD> ( hors transfert ) : modification de l 'identification de l' <EFBFBD> tablissement
2012-10-16 07:44:31 +00:00
*/
}
break ;
2013-06-19 08:24:49 +00:00
case 610 : // Modification d'activit<69> au niveau du SIREN associ<63> <20> une activation <20> conomique par adjonction de moyens de production
case 640 : // Modification d'activit<69> au niveau de l'<27> tablissement associ<63> e <20> une activation <20> conomique par adjonction de moyens de production
2012-10-16 07:44:31 +00:00
$actif = $actifEco = 1 ;
break ;
2013-06-19 08:24:49 +00:00
case 620 : // Modification d'activit<69> au niveau du SIREN associ<63> <20> une d<> sactivation <20> conomique par suppression de moyens de production
case 621 : // Modification d'activit<69> du SIREN associ<63> <20> une d<> sactivation <20> conomique par suppression de moyens de production suite <20> une correction d'erreur
2012-10-16 07:44:31 +00:00
/* $dateFerET = $ligne [ 'insDATEVE' ];
$dateFerEN = $ligne [ 'insDATEVE' ];
$actif = 0 ; */
$dateFerET = $dateFerEN = 0 ;
$actif = 1 ;
$actifEco = 0 ;
break ;
2013-06-19 08:24:49 +00:00
case 650 : // Modification d'activit<69> au niveau de l'<27> tablissement associ<63> e <20> une d<> sactivation <20> conomique par suppression de moyens de production
2012-10-16 07:44:31 +00:00
// $dateFerET=$ligne['insDATEVE'];
$dateFerET = 0 ;
$actif = 1 ;
$actifEco = 0 ;
break ;
case 795 : // SIREN non diffusible
$actif = 1 ;
$sirenNonDiffusible = true ;
break ;
case 810 : // Refus d'inscription du SIREN au RCS
$actif = 0 ;
$sirenNonDiffusible = true ;
break ;
2013-06-19 08:24:49 +00:00
case 631 : // Autre modification d'activit<69> du SIREN associ<63>
case 661 : // Autre modification d'activit<69> au niveau de l'<27> tablissement
2012-10-16 07:44:31 +00:00
case 710 : // Modification de l'identification du SIREN
2013-06-19 08:24:49 +00:00
case 711 : // Modification de l'identification du SIREN suite <20> correction d'erreur
case 720 : // Modification de l'adresse ou de l'identification de l'<27> tablissement
case 780 : // Autre modification entra<72> nant la mise <20> jour d'au moins une variable du r<> pertoire
case 781 : // Autre modification entra<72> nant la mise <20> jour d'au moins une variable du r<> pertoire suite <20> correction d'erreur
2012-10-16 07:44:31 +00:00
default :
if ( $evenTxt == 'RCS' ) $sirenNonDiffusible = true ;
$actif =- 1 ;
break ;
}
//echo "$k : [$siren $nic\t$even\t$destinat\t$typEtab\t$origine\t($actif)]".EOL;
2013-06-19 08:24:49 +00:00
/** Si on n 'a pas pu d<> termin<69> l' <EFBFBD> tat actif ou inactif , on test si la variable DESTINAT est renseign<EFBFBD> e !
2012-10-16 07:44:31 +00:00
**/
if ( $actif ==- 1 && ( trim ( $ligne [ 'insEVE' ]) == 'MPF' || trim ( $ligne [ 'insEVE' ]) == 'MNP' )) {
2013-06-19 08:24:49 +00:00
// Etablisement pr<70> sum<75> ferm<72> mais on laisse actif juridiquement
2012-10-16 07:44:31 +00:00
$actif = 1 ;
$actifEco = 0 ;
}
// On ignore la variable DESTINAT !!! 4 juillet 2011
/* elseif ( $actif ==- 1 && ( $destinat * 1 == 3 || // Vendu
2013-06-19 08:24:49 +00:00
$destinat == 'B' || // Ferm<72>
$destinat == 'C' || // Supprim<69>
$destinat == 'D' || // Mise en location-g<> rance de la totalit<69> du fonds
$destinat == 'F' || // Cessation d'activit<69> (pour les liasses agricoles)
2012-10-16 07:44:31 +00:00
$destinat == 'I' || // Transmission au conjoint (pour les liasses agricoles)
$destinat == 'J' || // Cession (pour les liasses agricoles)
2013-06-19 08:24:49 +00:00
$destinat == 'G' ) ) // Mise en location-g<> rance de la totalit<69> des terres et des b<> timents agricoles (pour les liasses agricoles)
2012-10-16 07:44:31 +00:00
{
$dateFerET = $ligne [ 'insDATEVE' ];
$actif = $actifEco = 0 ;
}
2013-06-19 08:24:49 +00:00
elseif ( $actif ==- 1 && ( $destinat * 1 == 7 || // Maintien d'activit<69> , l'<27> tablissement devient si<73> ge
$destinat * 1 == 8 || // Maintien d'activit<69> , l'<27> tablissement devient principal
$destinat == 'A' || // Maintien d'activit<69> , l'<27> tablissement devient secondaire
$destinat == 'E' || // Mise en location-g<> rance d'une partie du fonds
$destinat == 'VP' || // suppression partielle d'activit<69> par vente
$destinat == 'DP' || // suppression partielle d'activit<69> par disparition
$destinat == 'RP' || // suppression partielle d'activit<69> par reprise par le propri<72> taire
$destinat == 'H' ) ) // Mise en location-g<> rance d'une partie des terres et des b<> timents agricoles (pour les liasses agricoles)
2012-10-16 07:44:31 +00:00
{
$actif = $actifEco = 1 ;
} */
else {
$messageDebug .= " $k : $siren $nic $actif / $actifEco\t $even\t $destinat\t $typEtab\t $origine " . EOL ;
if ( $modeDebug )
echo " $k : $siren $nic\t $even\t $destinat\t $typEtab\t $origine\t ( $actif ) " . EOL ;
}
if ( $actif ==- 1 ) $arrActif = array ();
else $arrActif = array ( 'ACTIF' => $actif );
if ( $actifEco <>- 1 ) $arrActif = array_merge ( $arrActif , array ( 'actifEco' => $actifEco ));
if ( $dateFerET <>- 1 ) $arrActif = array_merge ( $arrActif , array ( 'dateFerET' => $dateFerET ));
if ( $dateFerEN <>- 1 ) $arrActif = array_merge ( $arrActif , array ( 'dateFerEN' => $dateFerEN ));
2013-06-19 08:24:49 +00:00
/** Zone Identit<EFBFBD> pr<EFBFBD> c<EFBFBD> dente
** contenant tous les anciens nom , sigle et / ou enseigne concat<EFBFBD> n<EFBFBD> s
** n 'ai jamais affich<63> mais sert pour l' indexation au niveau de la recherche
** On ne se sert pas de $tabEve [ 'insMENSEIGNE' ] = substr ( $a , 543 , 1 ); //Indicateur de mise <20> jour de l'enseigne de l'<27> tablissement
** $tabEve [ 'insMNOMEN' ] = substr ( $a , 658 , 1 ); //Indicateur de mise <20> jour du nom ou de la raison sociale
** $tabEve [ 'insMSIGLE' ] = substr ( $a , 659 , 1 ); //Indicateur de mise <20> jour du sigle
2012-10-16 07:44:31 +00:00
**/
$identite_pre = trim ( $etab [ 'IDENTITE_PRE' ]);
2013-06-19 08:24:49 +00:00
$nomEntrep = trim ( strtr ( $ligne [ 'insNOMEN' ], array ( '*' => ' ' , '/' => ' ' , " \ ' " => " ' " , chr ( 191 ) => '<27> ' )));
$nomEntrepEnBase = substr ( trim ( strtr ( $etab [ 'NOM' ], array ( '*' => ' ' , '/' => ' ' , " \ ' " => " ' " , chr ( 191 ) => '<27> ' ))), 0 , 38 );
2012-10-16 07:44:31 +00:00
if ( $nomEntrepEnBase <> $nomEntrep && $nomEntrepEnBase <> '' ) {
2013-06-19 08:24:49 +00:00
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Ligne $nbLignes , <20> tablissement $siren $nic - NOM En base : / MAJ : $nomEntrepEnBase " . EOL ;
2012-10-16 07:44:31 +00:00
if ( strlen ( $identite_pre ) == 0 )
$identite_pre = $nomEntrepEnBase ;
else
$identite_pre .= ',' . $nomEntrepEnBase ;
}
2013-06-19 08:24:49 +00:00
$nomEtab = trim ( strtr ( $ligne [ 'insENSEIGNE' ], array ( '*' => ' ' , '/' => ' ' , " \ ' " => " ' " , chr ( 191 ) => '<27> ' )));
$nomEtabEnBase = trim ( strtr ( $etab [ 'ENSEIGNE' ], array ( '*' => ' ' , '/' => ' ' , " \ ' " => " ' " , chr ( 191 ) => '<27> ' )));
2012-10-16 07:44:31 +00:00
if ( $nomEtabEnBase <> $nomEtab && $nomEtabEnBase <> '' ) {
2013-06-19 08:24:49 +00:00
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Ligne $nbLignes , <20> tablissement $siren $nic - ENSEIGNE En base : / MAJ : $nomEtabEnBase " . EOL ;
2012-10-16 07:44:31 +00:00
if ( strlen ( $identite_pre ) == 0 )
$identite_pre = $nomEtabEnBase ;
else
$identite_pre .= ',' . $nomEtabEnBase ;
}
2013-06-19 08:24:49 +00:00
$sigEntrep = trim ( strtr ( $ligne [ 'insSIGLE' ], array ( '*' => ' ' , '/' => ' ' , " \ ' " => " ' " , chr ( 191 ) => '<27> ' )));
$sigEntrepEnBase = trim ( strtr ( $etab [ 'SIGLE' ], array ( '*' => ' ' , '/' => ' ' , " \ ' " => " ' " , chr ( 191 ) => '<27> ' )));
2012-10-16 07:44:31 +00:00
if ( $sigEntrepEnBase <> $sigEntrep && $sigEntrepEnBase <> '' ) {
2013-06-19 08:24:49 +00:00
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Ligne $nbLignes , <20> tablissement $siren $nic - SIGLE En base : / MAJ : $sigEntrepEnBase " . EOL ;
2012-10-16 07:44:31 +00:00
if ( strlen ( $identite_pre ) == 0 )
$identite_pre = $sigEntrepEnBase ;
else
$identite_pre .= ',' . $sigEntrepEnBase ;
}
2013-06-19 08:24:49 +00:00
if ( $even == 631 || // Autre modification d'activit<69> du SIREN associ<63>
$even == 710 || // Modification de l'identification du SIREN
$even == 711 || // Modification de l'identification du SIREN suite <20> correction d'erreur
$ligne [ 'insMNOMEN' ] == 1 || // Indicateur Modif Raison Sociale
$ligne [ 'insMSIGLE' ] == 1 || // Indicateur Modif SIGLE
$ligne [ 'insMCJ' ] == 1 || // Indicateur Modif CJ
$ligne [ 'insMAPEN' ] == 1 || // Indicateur Modif APEN
$ligne [ 'insMEXPLEN' ] == 1 || // Indicateur Modif Exploitant
$ligne [ 'insMNICSIEGE' ] == 1 ) { // Indicateur Modif NIC Si<53> ge
2012-10-16 07:44:31 +00:00
$tabModifsEntrep [ '' . substr ( '' . $ligne [ 'insDATEMAJ' ] . '' , 0 , 8 ) . '-' . $ligne [ 'insSIREN' ]] = array (
'NIC' => $ligne [ 'insNIC' ],
'NOM' => trim ( $ligne [ 'insNOMEN' ]), // Raison Sociale de l'entreprise
'SIGLE' => trim ( $ligne [ 'insSIGLE' ]), // Sigle
'CJ' => trim ( $ligne [ 'insCJ' ]),
'APE_ENT' => trim ( $ligne [ 'insAPEN700' ]), // Code NAF de l'entreprise (cf. table APE)
2013-06-19 08:24:49 +00:00
'CIVILITE' => trim ( $ligne [ 'insCIVILITE' ]), // Civilit<69> des entrepreneurs individuels
2012-10-16 07:44:31 +00:00
'EXPLEN' => trim ( $ligne [ 'insEXPLEN' ]), // Entreprise exploitant tout ou partie des moyens de production
2013-06-19 08:24:49 +00:00
'DAPEN' => trim ( $ligne [ 'insDAPEN' ]), // Date de validit<69> de l'activit<69> principale de l'entreprise
'TEFF_ENT' => trim ( $ligne [ 'insTEFEN' ]), // Tranche d'effectif salari<72> de l'entreprise
'EFF_ENT' => trim ( $ligne [ 'insEFENCENT' ]), // Effectif salari<72> de l'entreprise <20> la centaine pr<70> s
'DEFEN' => trim ( $ligne [ 'insDEFEN' ]), // Date de mise <20> jour de l'effectif salari<72> de l.entreprise (ann<6E> e)
'NBETAB' => trim ( $ligne [ 'insNBETEXPL' ]), // Nombre d'<27> tablissements exploitants actifs de l'entreprise
'MONOREG' => trim ( $ligne [ 'insMONOREG' ]), // Indice de mono-r<> gionalit<69> de l'entreprise
'REGIMP' => trim ( $ligne [ 'insREGIMP' ]), // Principale r<> gion de localisation de l'entreprise
'MONOACT' => trim ( $ligne [ 'insMONOACT' ]), // Indice de monoactivit<69> de l'entreprise
2012-10-16 07:44:31 +00:00
/*
2013-06-19 08:24:49 +00:00
'APE_ENT' => trim ( $ligne [ 'insNICSIEGE' ]), // Num<75> ro interne de classement de l'<27> tablissement si<73> ge
'APE_ENT' => trim ( $ligne [ 'insDEPCOMEN' ]), // D<> partement et commune de localisation du si<73> ge de l.entreprise
'APE_ENT' => trim ( $ligne [ 'insRPEN' ]), // R<> gion de localisation du si<73> ge de l'entreprise
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
/* 'DCREN' => trim ( $ligne [ 'insDCREN' ]), // Date de cr<63> ation de l'entreprise
2012-10-16 07:44:31 +00:00
'MODEN' => trim ( $ligne [ 'insMODEN' ]),
*/
'DATE_MAJ' => substr ( '' . $ligne [ 'insDATEMAJ' ] . '' , 0 , 8 ),
);
2013-06-19 08:24:49 +00:00
/* $tabEve [ 'insDCREN' ] = substr ( $a , 606 , 8 ); //Date de cr<63> ation de l'entreprise (ann<6E> e, mois, jour)
$tabEve [ 'insDREACTEN' ] = substr ( $a , 614 , 8 ); //Date de r<> activation de l'entreprise (ann<6E> e, mois, jour)
2012-10-16 07:44:31 +00:00
//DESCRIPTION DES MISES A JOUR DE L.ENTREPRISE A LAQUELLE APPARTIENT L.ETABLISSEMENT
2013-06-19 08:24:49 +00:00
$tabEve [ 'insMNOMEN' ] = substr ( $a , 658 , 1 ); //Indicateur de mise <20> jour du nom ou de la raison sociale
$tabEve [ 'insMSIGLE' ] = substr ( $a , 659 , 1 ); //Indicateur de mise <20> jour du sigle
$tabEve [ 'insMCJ' ] = substr ( $a , 660 , 1 ); //Indicateur de mise <20> jour de la cat<61> gorie juridique ou cat<61> gorie professionnelle
$tabEve [ 'insMAPEN' ] = substr ( $a , 661 , 1 ); //Indicateur de mise <20> jour de l'activit<69> principale de l'entreprise
$tabEve [ 'insMEXPLEN' ] = substr ( $a , 662 , 1 ); //Indicateur de mise <20> jour du caract<63> re exploitant de l'entreprise
$tabEve [ 'insMNICSIEGE' ] = substr ( $a , 663 , 1 ); //Indicateur de mise <20> jour du Nic du si<73> ge ou l'<27> tablissement principal
2012-10-16 07:44:31 +00:00
*/
}
$arrBase = array ( 'NOM' => trim ( $ligne [ 'insNOMEN' ]), // Raison Sociale de l'entreprise
2013-06-19 08:24:49 +00:00
'NOM2' => trim ( $ligne [ 'insL2_COMP' ]), // Enseigne de l'<27> tablissement ou sigle de l'entreprise ou enfin, nom commercial (Intermarch<63> )
'ENSEIGNE' => trim ( $ligne [ 'insENSEIGNE' ]), // Nom de l'<27> tablissement ou enseigne
2012-10-16 07:44:31 +00:00
'SIGLE' => trim ( $ligne [ 'insSIGLE' ]), // Sigle
2013-06-19 08:24:49 +00:00
'SIEGE' => $ligne [ 'insSIEGE' ], // Si<53> ge
2012-10-16 07:44:31 +00:00
'IDENTITE_PRE' => $identite_pre ,
2013-06-19 08:24:49 +00:00
'ADR_NUMVOIE' => trim ( $ligne [ 'insNUMVOIE' ]), // N<> dans la voie
2012-10-16 07:44:31 +00:00
'ADR_BTQ' => trim ( $ligne [ 'insINDREP' ]), // BTQ
'ADR_TYPVOIE' => trim ( $ligne [ 'insTYPVOIE' ]), // Type de voie
'ADR_LIBVOIE' => trim ( $ligne [ 'insLIBVOIE' ]), // Lib Voie
'ADR_CP' => trim ( $ligne [ 'insCODPOS' ]), // Code Postal
'ADR_LIBCOM' => trim ( $ligne [ 'insLIBCOM' ]), // Commune
2013-06-19 08:24:49 +00:00
'ADR_COMP' => trim ( $ligne [ 'insL3_CADR' ]), // Compl<70> ment d'adresse
'ADR_DISTSP' => trim ( $ligne [ 'insL5_DISP' ]), // Distribution Sp<53> ciale
2012-10-16 07:44:31 +00:00
'AUXILT' => trim ( $ligne [ 'insAUXILT' ]), //
'SAISONAT' => $ligne [ 'insSAISONAT' ], //
'CJ' => trim ( $ligne [ 'insCJ' ]),
'CIVILITE' => trim ( $ligne [ 'insCIVILITE' ]), // Sexe 0=Entrep, 1=Homme, 2=Femme
2013-06-19 08:24:49 +00:00
'DCRET' => trim ( $ligne [ 'insDCRET' ]), // Date de cr<63> ation de l'<27> tablissemennt
'DCREN' => trim ( $ligne [ 'insDCREN' ]), // Date de cr<63> ation de l'entreprise
2012-10-16 07:44:31 +00:00
'APE_ENT' => trim ( $ligne [ 'insAPEN700' ]), // Code NAF de l'entreprise (cf. table APE)
2013-06-19 08:24:49 +00:00
'APE_ETAB' => trim ( $ligne [ 'insAPET700' ]), // Code NAF de l'<27> tablissement (cf. table APE)
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
'NBETAB' => trim ( $ligne [ 'insNBETEXPL' ]), // Nombre d'<27> tablissement de l'entreprise
2012-10-16 07:44:31 +00:00
'TEFF_ENT' => trim ( $ligne [ 'insTEFEN' ]), // Tr Eff Entrep
// 'TCA'=> trim($ligne['insTCA']), // Tr CA
'CODEVOIE' => trim ( $ligne [ 'insCODEVOIE' ]), // Ce RIVOLI
'ADR_DEP' => trim ( substr ( $ligne [ 'insDEPCOM' ], 0 , 2 )),
'ADR_COM' => trim ( substr ( $ligne [ 'insDEPCOM' ], 2 , 3 )),
'EFF_ENT' => trim ( $ligne [ 'insEFENCENT' ]), // Eff Entrep
'TEFF_ET' => trim ( $ligne [ 'insTEFET' ]), // Tr Eff Etablissement
'EFF_ET' => trim ( $ligne [ 'insEFETCENT' ]), // Eff Etablissement
2013-06-19 08:24:49 +00:00
'PAYS' => trim ( $ligne [ 'insL7_ETRG' ]), // Pays si diff<66> rent de france
'APRM' => trim ( $ligne [ 'insAPRM' ]), // R<> pertoire M<> tier
2012-10-16 07:44:31 +00:00
'ACTIVNAT' => trim ( $ligne [ 'insACTIVNAT' ]),
'ORIGINE' => trim ( $ligne [ 'insORIGINE' ]),
'MODET' => trim ( $ligne [ 'insMODET' ]),
'EXPLET' => trim ( $ligne [ 'insEXPLET' ]),
'DAPET' => trim ( $ligne [ 'insDAPET' ]),
'LIEUACT' => trim ( $ligne [ 'insLIEUACT' ]),
'ACTISURF' => trim ( $ligne [ 'insACTISURF' ]),
'DEFET' => trim ( $ligne [ 'insDEFET' ]),
'MODEN' => trim ( $ligne [ 'insMODEN' ]),
'PRODPART' => trim ( $ligne [ 'insPRODPART' ]),
'EXPLEN' => trim ( $ligne [ 'insEXPLEN' ]),
'DEFEN' => trim ( $ligne [ 'insDEFEN' ]),
'MONOREG' => trim ( $ligne [ 'insMONOREG' ]),
'REGIMP' => trim ( $ligne [ 'insREGIMP' ]),
'MONOACT' => trim ( $ligne [ 'insMONOACT' ]),
'DAPEN' => trim ( $ligne [ 'insDAPEN' ]),
'DATE_MAJ' => substr ( '' . $ligne [ 'insDATEMAJ' ] . '' , 0 , 8 ),
);
if ( $cpt == 0 ) {
/**
2013-06-19 08:24:49 +00:00
** On ajoute la fiche de l ' <EFBFBD> tablissement
2012-10-16 07:44:31 +00:00
**/
2013-06-19 08:24:49 +00:00
$arrTel = array ( 'TEL' => trim ( $ligne [ 'insTEL' ])); // T<> l<EFBFBD> phone de l'<27> tablissement
2012-10-16 07:44:31 +00:00
$tabInsert = array ( 'SIREN' => $ligne [ 'insSIREN' ],
'NIC' => $ligne [ 'insNIC' ],
);
$tabInsert = array_merge ( $tabInsert , $arrTel , $arrDir , $arrBase , $arrActif );
// echo date ('Y/m/d - H:i:s')." - Siret $siren $nic en cours d'ajout".EOL;
$retInsert = $iDbW -> insert ( 'identite' , $tabInsert , true );
2013-06-19 08:24:49 +00:00
if ( ! $retInsert ) die ( 'Erreur Mysql n<> ' . mysql_errno () . ' : ' . mysql_error ());
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Siret $siren $nic ajout<75> " . EOL ;
2012-10-16 07:44:31 +00:00
$nbInsert ++ ;
} else {
/**
2013-06-19 08:24:49 +00:00
** On modifie la fiche de l ' <EFBFBD> tablissement
2012-10-16 07:44:31 +00:00
**/
$tel = trim ( $ret2 [ 0 ][ 'TEL' ]);
if ( trim ( $ligne [ 'insTEL' ]) <> '' && $tel == '' )
2013-06-19 08:24:49 +00:00
$arrTel = array ( 'TEL' => trim ( $ligne [ 'insTEL' ])); // T<> l<EFBFBD> phone de l'<27> tablissement
2012-10-16 07:44:31 +00:00
else
$arrTel = array ();
if ( ! $sirenNonDiffusible ) {
$tabUpdate = array_merge ( $arrTel , $arrDir , $arrBase , $arrActif );
$retUpdate = $iDbW -> update ( 'identite' , $tabUpdate , " SIREN= $siren AND NIC= $nic " , false );
2013-06-19 08:24:49 +00:00
if ( ! $retUpdate ) die ( 'Erreur lors de MAJ Mysql n<> ' . mysql_errno () . ' : ' . mysql_error ());
//if ($modeDebug) echo date ('Y/m/d - H:i:s')." - Siret $siren $nic modifi<66> ".EOL;
2012-10-16 07:44:31 +00:00
$nbUpdate ++ ;
2013-06-19 08:24:49 +00:00
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Siret $siren $nic : $cpt fiche(s) modifi<66> e(s) " . EOL ;
2012-10-16 07:44:31 +00:00
} elseif ( $evenTxt <> 'RCS' ) {
$tabTmp =@ $iInsee -> getIdentiteLight ( $siren , $nic );
$cj1 = substr ( $tabTmp [ 'FJ' ], 0 , 1 );
$tabInsert = array ( 'siren' => $siren ,
'nic' => $nic ,
'cj1' => $cj1 ,
'idFlux' => $ligne [ 'idFlux' ],
'insEVE' => $even ,
'mois' => substr ( '' . $ligne [ 'insDATEMAJ' ] . '' , 0 , 6 ),
);
$retInsert = $iDbW -> insert ( 'insee_nondiff' , $tabInsert , true );
2013-06-19 08:24:49 +00:00
if ( ! $retInsert ) date ( 'Y/m/d - H:i:s' ) . " - Siren $siren non diffusible, erreur Mysql n<> " . mysql_errno () . ' : ' . mysql_error () . EOL ;
2012-10-16 07:44:31 +00:00
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Siren $siren non diffusible ! " . EOL ;
}
if ( $cpt > 1 ) {
//die(date ('Y/m/d - H:i:s')." - Siret $siren $nic : $cpt correspondances".EOL);
$tabSirenDoubles [] = $siren ; // RAF
$fp = fopen ( 'doublons.txt' , 'a' );
fwrite ( $fp , " $siren $nic : $cpt lignes \n " );
fclose ( $fp );
//print_r($ret2);
echo date ( 'Y/m/d - H:i:s' ) . " - Doublons sur $siren $nic : $cpt lignes " . EOL ;
$nbDBl ++ ;
}
}
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Fin du chargement du flux $idFlux : $k lignes trait<69> s ( $nbInsert ajouts, $nbUpdate maj et $nbDBl doublons). " . EOL ;
2012-10-16 07:44:31 +00:00
}
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Fin de la mise <20> jour de la table identit<69> " . EOL ;
} else echo ', la table identite n\'est pas mise <20> jour !' . EOL ;
2012-10-16 07:44:31 +00:00
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Fin du traitement de chargement des <20> v<EFBFBD> nements INSEE " . EOL ;
$message = " Fichier <20> v<EFBFBD> nements ' " . implode ( ',' , $nomFichierCharges ) . " ' :
- $nbLignesCharges lignes trait <EFBFBD> es,
2012-10-16 07:44:31 +00:00
- $nbSiretInvalidesCharges siret invalides ,
- $nbErreurs erreurs lors des insertions .
" ;
if ( $updateInsee ) {
$message .= "
2013-06-19 08:24:49 +00:00
Table identit<EFBFBD> :
- $nbInsert cr<EFBFBD> ations ,
- $nbUpdate mises <EFBFBD> jour
2012-10-16 07:44:31 +00:00
" ;
$nbUpdate2 = 0 ;
$messageDebug2 = '' ;
/**
2013-06-19 08:24:49 +00:00
** Mise <EFBFBD> jour des donn<EFBFBD> es entreprises non encore r<EFBFBD> percut<EFBFBD> es sur tous les <EFBFBD> tablissements actifs
2012-10-16 07:44:31 +00:00
**/
$nbModifsEntrep = count ( $tabModifsEntrep );
if ( $nbModifsEntrep > 0 ) echo " En/Et=DATE_MAJ - SIREN____ NIC__ - NOM___________________ SIGLE CJ__ APENT DAPE EXPLEN EFF_ENT DEFEN NBETAB " . EOL ;
foreach ( $tabModifsEntrep as $idxDateSiren => $tabEntrep ) {
$tmp = explode ( '-' , $idxDateSiren );
$dateMaj = $tmp [ 0 ];
$siren = $tmp [ 1 ];
$nic = $tabEntrep [ 'NIC' ];
$ret2 = $iDbR -> select ( 'identite' , 'SIREN, NIC, NOM, SIGLE, CJ, APE_ENT, CIVILITE, EXPLEN, DAPEN, TEFF_ENT, EFF_ENT, DEFEN, NBETAB, MONOREG, REGIMP, MONOACT, DATE_MAJ' , " SIREN= $siren AND ACTIF=1 AND NIC<> $nic " );
$tabUpdate = array ( 'NOM' => $tabEntrep [ 'NOM' ],
'SIGLE' => $tabEntrep [ 'SIGLE' ],
'CJ' => $tabEntrep [ 'CJ' ],
'APE_ENT' => $tabEntrep [ 'APE_ENT' ],
2013-06-19 08:24:49 +00:00
'CIVILITE' => $tabEntrep [ 'CIVILITE' ], // Civilit<69>
2012-10-16 07:44:31 +00:00
'EXPLEN' => $tabEntrep [ 'APE_ENT' ], // Entreprise exploitant tout ou partie des moyens de production
2013-06-19 08:24:49 +00:00
'DAPEN' => $tabEntrep [ 'DAPEN' ], // Date de validit<69> de l'activit<69> principale de l'entreprise
'TEFF_ENT' => $tabEntrep [ 'TEFF_ENT' ], // Tranche d'effectif salari<72> de l'entreprise
'EFF_ENT' => $tabEntrep [ 'EFF_ENT' ], // Effectif salari<72> de l'entreprise <20> la centaine pr<70> s
'DEFEN' => $tabEntrep [ 'DEFEN' ], // Date de mise <20> jour de l'effectif salari<72> de l.entreprise (ann<6E> e)
'NBETAB' => $tabEntrep [ 'NBETAB' ], // Nombre d'<27> tablissements exploitants actifs de l'entreprise
'MONOREG' => $tabEntrep [ 'MONOREG' ], // Indice de mono-r<> gionalit<69> de l'entreprise
'REGIMP' => $tabEntrep [ 'REGIMP' ], // Principale r<> gion de localisation de l'entreprise
'MONOACT' => $tabEntrep [ 'MONOACT' ], // Indice de monoactivit<69> de l'entreprise
2012-10-16 07:44:31 +00:00
'DATE_MAJ' => $tabEntrep [ 'DATE_MAJ' ],
);
foreach ( $ret2 as $iSiret => $tabSiret ) {
if ( $iSiret == 0 ) {
echo " ENT= $dateMaj - $siren $nic - " . $tabEntrep [ 'NOM' ] . ' ' . $tabEntrep [ 'SIGLE' ] . ' ' . $tabEntrep [ 'CJ' ] . ' ' . $tabEntrep [ 'APE_ENT' ] . ' ' . $tabEntrep [ 'DAPEN' ] . ' ' .
$tabEntrep [ 'EXPLEN' ] . ' ' . $tabEntrep [ 'EFF_ENT' ] . ' ' . $tabEntrep [ 'DEFEN' ] . ' ' . $tabEntrep [ 'NBETAB' ] . EOL ;
$messageDebug2 .= " ENT= $dateMaj - $siren $nic - " . $tabEntrep [ 'NOM' ] . ' ' . $tabEntrep [ 'SIGLE' ] . ' ' . $tabEntrep [ 'CJ' ] . ' ' . $tabEntrep [ 'APE_ENT' ] . ' ' . $tabEntrep [ 'DAPEN' ] . ' ' .
$tabEntrep [ 'EXPLEN' ] . ' ' . $tabEntrep [ 'EFF_ENT' ] . ' ' . $tabEntrep [ 'DEFEN' ] . ' ' . $tabEntrep [ 'NBETAB' ] . EOL ;
}
$dateMaj2 = $tmp [ 0 ];
$nic2 = $tabSiret [ 'NIC' ];
echo " etab $dateMaj2 - $siren $nic2 - " . $tabSiret [ 'NOM' ] . ' ' . $tabSiret [ 'SIGLE' ] . ' ' . $tabSiret [ 'CJ' ] . ' ' . $tabSiret [ 'APE_ENT' ] . ' ' . $tabSiret [ 'DAPEN' ] . ' ' .
$tabSiret [ 'EXPLEN' ] . ' ' . $tabSiret [ 'EFF_ENT' ] . ' ' . $tabSiret [ 'DEFEN' ] . ' ' . $tabSiret [ 'NBETAB' ] . EOL ;
$messageDebug2 .= " etab $dateMaj2 - $siren $nic2 - " . $tabSiret [ 'NOM' ] . ' ' . $tabSiret [ 'SIGLE' ] . ' ' . $tabSiret [ 'CJ' ] . ' ' . $tabSiret [ 'APE_ENT' ] . ' ' . $tabSiret [ 'DAPEN' ] . ' ' .
$tabSiret [ 'EXPLEN' ] . ' ' . $tabSiret [ 'EFF_ENT' ] . ' ' . $tabSiret [ 'DEFEN' ] . ' ' . $tabSiret [ 'NBETAB' ] . EOL ;
$retUpdate = $iDbW -> update ( 'identite' , $tabUpdate , " SIREN= $siren AND NIC= $nic2 " , false );
2013-06-19 08:24:49 +00:00
if ( ! $retUpdate ) die ( 'Erreur lors de MAJ Mysql n<> ' . mysql_errno () . ' : ' . mysql_error ());
2012-10-16 07:44:31 +00:00
$nbUpdate2 ++ ;
}
}
2013-06-19 08:24:49 +00:00
$message .= " - $nbUpdate2 mises <20> jour d'<27> tablissements secondaires non communiqu<71> es par l'Insee pour $nbModifsEntrep entreprises " . EOL ;
2012-10-16 07:44:31 +00:00
}
$message .= EOL ;
/** Ajout du fichier info de l'INSEE **/
foreach ( $nomFichierCharges as $nomFichier ) {
2013-06-19 08:24:49 +00:00
$strCtrl = file_get_contents ( INSEE_LOCAL_DIR . str_replace ( '*' , '' , INSEE_FTP_REMOTE_DIR ) . strtr ( $nomFichier , array ( 'EVE.' => '' , 'DJ' => 'NJ' )));
2012-10-16 07:44:31 +00:00
$message .= " Informations INSEE pour ' $nomFichier ' : " . EOL ;
$message .= $strCtrl . EOL ;
$message .= EOL ;
2013-06-19 08:24:49 +00:00
/** Mise <20> jours des informations de traitement **/
2012-10-16 07:44:31 +00:00
$typeDiffusion = $dateCreation = $nbRecords = '' ;
if ( preg_match ( '/DIFFUSION\s\((.*)\)/Uis' , $strCtrl , $matches ))
$typeDiffusion = $matches [ 1 ];
if ( preg_match ( '/DATE DU TRAITEMENT\s+\:\s+(\d+)\s/Uis' , $strCtrl , $matches ))
$dateCreation = substr ( trim ( $matches [ 1 ]), 0 , 4 ) . '20' . substr ( trim ( $matches [ 1 ]), 4 , 2 );
if ( preg_match ( '/NOMBRE ENREGISTREMENTS\s+\:\s+(\d+)\s/Uis' , $strCtrl , $matches ))
$nbRecords = trim ( $matches [ 1 ]);
$dateFin = date ( 'YmdHis' );
$tabInsert = array ( 'nomFichier' => $nomFichier ,
'dateCreation' => WDate :: dateT ( 'dmY' , 'Y-m-d' , $dateCreation ),
'nbRecords' => $nbRecords ,
'dateFlux' => $idFlux ,
'dateDispo' => $tabDateFic [ $idFlux ],
'taille' => $tabTailles [ $idFlux ],
'dateChargementDeb' => $dateDeb ,
'dateChargementFin' => $dateFin ,
'stock' => 0 ,
'nbLignesLues' => $nbLignesCharges ,
'nbErreurInsert' => $nbErreurs ,
'nbSiretFaux' => $nbSiretInvalidesCharges ,
'nbCreationsSiren' => $nbInsertSiren ,
'nbCreationsSiret' => $nbInsert ,
'nbUpdates' => $nbUpdate ,
'typeDiffusion' => $typeDiffusion ,
'dateInsert' => $dateFin ,
);
print_r ( $tabInsert );
if ( ! $iDbW -> insert ( 'insee_chargements' , $tabInsert )) {
$message .= EOL . " Erreur SQL lors de l'ajout des informations de chargement Insee " . EOL . mysql_error () . EOL ;
echo " Erreur SQL lors de l'ajout des informations de chargement Insee " . EOL . mysql_error () . EOL ;
}
}
/* if ( bzip2 ( INSEE_LOCAL_DIR . $nomFichier )) {
//unlink(RNCS_IMR_FTP_LOCALDIR.$fichier);
2013-06-19 08:24:49 +00:00
$message .= date ( 'Y/m/d - H:i:s' ) . " - Le fichier n<> $iFic , $fichier vient d'<27> tre historis<69> . " . EOL ;
2012-10-16 07:44:31 +00:00
}
*/
2013-06-19 08:24:49 +00:00
sendMail ( 'webmaster@scores-decisions.com' , 'ylenaour@scores-decisions.com,support@scores-decisions.com' , 'Fin du traitement de chargement INSEE' , $message . EOL . EOL . $messageDebug2 . EOL . EOL . $messageDebug );
2012-10-16 07:44:31 +00:00
die ();
?>