2012-10-16 07:44:31 +00:00
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
< ? php
function wsLog ( $service , $siret = '' , $ref = '' ) {}
include_once ( FWK_PATH . 'common/chiffres.php' );
include_once ( FWK_PATH . 'common/dates.php' );
include_once ( INCLUDE_PATH . 'insee/classMInsee.php' );
include_once ( INCLUDE_PATH . 'partenaires/classMRncs.php' );
include_once ( FWK_PATH . 'mail/sendMail.php' );
define ( 'RNCS_IMR_FTP_HOST' , '194.5.119.252' );
define ( 'RNCS_IMR_FTP_LOGIN' , 'score' );
define ( 'RNCS_IMR_FTP_PASS' , '1eUauTJZ' );
define ( 'RNCS_IMR_FTP_DIR' , '/var/home_ftp/score/Send/' );
define ( 'RNCS_IMR_FTP_LOCALDIR' , '/home/data/rncs/extelia/' );
define ( 'RNCS_IMR_BACKUP_DIR' , '/home/data/rncs/imr/' );
$strInfoScript = 'Usage : ' . basename ( $argv [ 0 ]) . " <option> [FICHIERS]
Chargement du / des flux en provenance de l ' INPI ( license RNCS IMR ) .
Options :
2013-06-19 08:24:49 +00:00
- v Mode debug ( Verbosit<EFBFBD> au maximum )
2012-10-16 07:44:31 +00:00
- l : XXXX Reprendre <EFBFBD> partir de la ligne XXXX
2013-06-19 08:24:49 +00:00
- s Fichier stock de tous les <EFBFBD> tablissements actifs ( pr<EFBFBD> ciser le jour de l ' extraction avec - f )
2012-10-16 07:44:31 +00:00
- f : AAAAMMJJ Forcer la dateFlux de ce chargement
- r Ne pas ex<EFBFBD> cuter en r<EFBFBD> el
- j Ne pas se connecter au serveur FTP d ' Extelia ( INPI / IMR via Infogreffe )
2013-06-19 08:24:49 +00:00
- m Mettre <EFBFBD> jour les siren des dirigeants PM
2012-10-16 07:44:31 +00:00
" ;/*
- p Chargement d ' une ancienne notice ( pas de modification de la zone ACTIF chargement des zones diff<EFBFBD> rentes )
- u Ne pas mettre <EFBFBD> jour la table identite de l ' insee
- h Ne pas charger la notice dans la base des 'historiques'
" ;*/
$iDb = new WDB ();
global $iInsee ;
$iInsee = new MInsee ();
$iRncs = new MRncs ();
//$iWs=new WsEntreprise();
$nbSiretInvalides = 0 ;
2013-06-19 08:24:49 +00:00
$modeDebug = false ; // Par d<> faut, pas de message de debug
$ftpStep = true ; // Par d<> faut, se connecte au serveur FTP de l'INP
$stock = 0 ; // Stock IMR complet = 1 !
$actifIni = 1 ; // L'<27> tat actif est 1 sinon 11 si stock !
$jourStock = 0 ; // Jour du stock SSAMMJJ
$env = '' ; // Suffix des tables de chargements (en prod '' sinon '2', etc... V<> rifier que les tables existes)
$strMailInfo = '' ; // Initialisation du contenu du message d'information
$doMajSirenDir = false ; // Mettre <20> jour les siren des dirigeants
2012-10-16 07:44:31 +00:00
$tabFichiers = array (); // Tableau des Fichiers t<> l<EFBFBD> charg<72> s sur le FTP
$tabFichier = array (); // Fichiers locaux en attente de traitement
$tabFichLigneCmd = array (); // Fichiers pass<73> s en ligne de commande
$ftpDelete = true ; // Par d<> faut on supprime les fichiers t<> l<EFBFBD> charg<72> s
$numReprise = 0 ;
$argv = $_SERVER [ 'argv' ];
for ( $i = 1 , $j = 0 ; isset ( $argv [ $i ]); $i ++ ) {
if ( substr ( $argv [ $i ], 0 , 1 ) == '-' ) {
switch ( substr ( $argv [ $i ], 1 , 1 )) {
2013-06-19 08:24:49 +00:00
case 'v' : $modeDebug = true ; break ;
2012-10-16 07:44:31 +00:00
case 'j' : $ftpStep = false ; break ;
case 'l' : $numReprise = substr ( $argv [ $i ], 3 , strlen ( $argv [ $i ]) - 3 ); break ;
case 's' : $stock = 1 ; $actifIni = 11 ;
case 'f' : $jourStock = substr ( $argv [ $i ], 3 , 8 ); break ;
case 'r' : $env = '2' ; break ;
2013-06-19 08:24:49 +00:00
case 'm' : $doMajSirenDir = true ; break ;
2012-10-16 07:44:31 +00:00
case '-' :
case '?' : die ( $strInfoScript ); break ;
default : die ( 'Option ' . $argv [ $i ] . ' inconnue !' . EOL ); break ;
}
} else $tabFichLigneCmd [] = $argv [ $i ];
}
if ( $ftpStep ) {
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement de chargement du flux INPI " . EOL ;
$conn_id = ftp_connect ( /*'ftp://'.*/ RNCS_IMR_FTP_HOST );
if ( ! $conn_id ) { echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Impossible de se connecter au serveur FTP d'Extelia. " . EOL ; die (); }
$login_result = ftp_login ( $conn_id , RNCS_IMR_FTP_LOGIN , RNCS_IMR_FTP_PASS );
if ( ! $login_result ) { echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Impossible de s'authentifier sur le serveur FTP d'Extelia. " . EOL ; die (); }
// R<> cup<75> ration du contenu d'un dossier
$contents = ftp_nlist ( $conn_id , RNCS_IMR_FTP_DIR );
//print_r($contents);
//die();
if ( $contents ) {
foreach ( $contents as $k => $server_file ) {
$tailleDist = ftp_size ( $conn_id , $server_file );
$dateDist = ftp_mdtm ( $conn_id , $server_file );
$server_fileName = basename ( $server_file );
if ( ! preg_match ( '/licence/i' , $server_fileName )) {
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier distant ' $server_fileName ' n'est pas un flux IMR. " . EOL ;
continue ;
} elseif ( $modeDebug )
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier distant ' $server_fileName ' est un flux IMR... " . EOL ;
if ( $dateDist != - 1 ) {
$tabFichiers [ $server_fileName ][ 'dateDispo' ] = date ( 'Y-m-d H:i:s' , $dateDist );
if ( $modeDebug )
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier distant $server_fileName a <20> t<EFBFBD> modifi<66> le " . date ( " d/m/Y <20> H:i:s. " , $dateDist ) . " \n " ;
} else {
$tabFichiers [ $server_fileName ][ 'dateDispo' ] = NULL ;
if ( $modeDebug )
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Impossible de r<> cup<75> rer l'heure de modification du fichier distant $server_file ! \n " ;
}
$tabFichiers [ $server_fileName ][ 'taille' ] = $tailleDist ;
$tabFichiers [ $server_fileName ][ 'cheminNom' ] = $server_file ;
if ( $tailleDist != - 1 && $modeDebug )
echo date ( 'Y/m/d - H:i:s' ) . " - Taille du fichier distant $server_fileName est de $tailleDist octets \n " ;
if ( file_exists ( RNCS_IMR_FTP_LOCALDIR . $server_fileName )) {
$dateLoc = filemtime ( RNCS_IMR_FTP_LOCALDIR . $server_fileName );
$tabFichiers [ $server_fileName ][ 'dateDownload' ] = date ( 'Y-m-d H:i:s' , $dateLoc );
$tailleLoc = filesize ( RNCS_IMR_FTP_LOCALDIR . $server_fileName );
if ( $modeDebug )
echo date ( 'Y/m/d - H:i:s' ) . " - Taille du fichier local $server_fileName = $tailleLoc octets \n " ;
}
$tailleDistKo = round ( $tailleDist / 1024 , 1 );
if ( $tailleDist <>@ $tailleLoc ) {
$tDeb = microtime ( true );
if ( ftp_get ( $conn_id , RNCS_IMR_FTP_LOCALDIR . basename ( $server_file ), $server_file , FTP_BINARY )) {
$tFin = microtime ( true );
$tDur = round ( $tFin - $tDeb );
$tailleDistKo = round ( $tailleDist / 1024 , 1 );
$tRatio = round ( $tailleDistKo / $tDur , 1 );
echo date ( 'Y/m/d - H:i:s' ) . " - Fichier distant $server_fileName t<> l<EFBFBD> charg<72> avec succ<63> s : $tailleDistKo Ko en $tDur sec. ( $tRatio Ko/s) " . EOL ;
$strMailInfo .= date ( 'Y/m/d - H:i:s' ) . " - Fichier distant $server_fileName t<> l<EFBFBD> charg<72> avec succ<63> s : $tailleDistKo Ko en $tDur sec. ( $tRatio Ko/s) " . EOL ;
if ( $ftpDelete && ftp_delete ( $conn_id , $server_file )) {
echo date ( 'Y/m/d - H:i:s' ) . " - Fichier distant $server_fileName supprim<69> avec succ<63> s. " . EOL ;
$strMailInfo .= date ( 'Y/m/d - H:i:s' ) . " - Fichier distant $server_fileName supprim<69> avec succ<63> s. " . EOL ;
}
} else
die ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Fichier distant $server_file non t<> l<EFBFBD> charg<72> ! " . EOL );
} elseif ( $modeDebug )
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $server_fileName a d<> j<EFBFBD> <20> t<EFBFBD> t<> l<EFBFBD> charg<72> le " . $tabFichiers [ $server_fileName ][ 'dateDownload' ] . " ( $tailleDistKo Ko). " . EOL ;
}
}
// Fermeture de la connexion
ftp_close ( $conn_id );
echo date ( 'Y/m/d - H:i:s' ) . " - Fin de la r<> cup<75> ration des fichiers IMR en FTP. " . EOL ;
}
if ( count ( $tabFichLigneCmd ) == 0 ) {
$dh = opendir ( RNCS_IMR_FTP_LOCALDIR );
while ( false !== ( $filename = readdir ( $dh ))) {
if ( $filename <> '.' && $filename <> '..' ) {
if ( strtolower ( substr ( $filename , - 3 )) == '.gz' ) {
$tDeb = microtime ( true );
$data = file_get_contents ( 'compress.zlib://' . RNCS_IMR_FTP_LOCALDIR . $filename );
if ( $data ) {
$filenameGz = $filename ;
$filename = substr ( $filenameGz , 0 , strlen ( $filenameGz ) - 3 );
file_put_contents ( RNCS_IMR_FTP_LOCALDIR . $filename , $data );
unset ( $data );
$tailleGz = round ( filesize ( RNCS_IMR_FTP_LOCALDIR . $filenameGz ) / 1024 , 1 );
unlink ( RNCS_IMR_FTP_LOCALDIR . $filenameGz );
$tailleUnz = round ( filesize ( RNCS_IMR_FTP_LOCALDIR . $filename ) / 1024 , 1 );
$tFin = microtime ( true );
$tDur = round ( $tFin - $tDeb );
echo date ( 'Y/m/d - H:i:s' ) . " - Fichier $filename d<> compress<73> : $tailleUnz Ko en $tDur sec. ( $tailleGz Ko compress<73> s) " . EOL ;
$strMailInfo .= date ( 'Y/m/d - H:i:s' ) . " - Fichier $filename d<> compress<73> : $tailleUnz Ko en $tDur sec. ( $tailleGz Ko compress<73> s) " . EOL ;
} else
die ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR : D<> compression impossible de $filenameGz ! " . EOL );
}
$tabFichier [] = RNCS_IMR_FTP_LOCALDIR . $filename ;
}
}
sort ( $tabFichier );
}
if ( count ( $tabFichier ) == 0 )
$tabFichier = $tabFichLigneCmd ;
2013-06-19 08:24:49 +00:00
if ( count ( $tabFichier ) == 0 && count ( $tabFichLigneCmd ) == 0 && ! $doMajSirenDir )
2012-10-16 07:44:31 +00:00
die ( date ( 'Y/m/d - H:i:s' ) . " - Aucun fichier RNCS IMR de l'INPI <20> traiter (--help pour plus d'options). " . EOL );
elseif ( ! $ftpStep )
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement de chargement du flux INPI " . EOL ;
/*
print_r ( $tabFichier );
die ();
/*
// Test du matching de tous les mandataires INPI
$tabTmp = $iDb -> select ( 'rncs_jugements' , " adm1nom, adm1adrNum, adm1adrInd, adm1adrVoie, adm1adrCP, adm1adrVille, count(*) AS nb " , " 1 GROUP BY adm1nom ORDER BY nb DESC " , true , MYSQL_ASSOC );
foreach ( $tabTmp as $nbMand => $mand ) {
$idMand = $iRncs -> getIdMandataireInpi ( $mand [ 'adm1nom' ]);
if ( $idMand == false ) echo $mand [ 'adm1nom' ] . " \t " . $mand [ 'nb' ] . " \t " . $mand [ 'adm1adrNum' ] . " \t " . $mand [ 'adm1adrInd' ] . " \t " . $mand [ 'adm1adrVoie' ] . " \t " . $mand [ 'adm1adrCP' ] . " \t " . $mand [ 'adm1adrVille' ] . " \t " . $idMand . EOL ;
}
die ();
*/
/** Lecture des siren en demande de r<> <72> mission **/
$tabTmp = $iDb -> select ( 'rncs_demandes' , 'siren, dateDemande' , 'dateReponse IS NULL' , false , MYSQL_ASSOC );
$tabDemIMR = array ();
foreach ( $tabTmp AS $tmp )
$tabDemIMR [ $tmp [ 'siren' ]] = $tmp [ 'dateDemande' ];
$nbDemIMR = count ( $tabDemIMR );
if ( $nbDemIMR > 0 ) echo date ( 'Y/m/d - H:i:s' ) . " - Il y a $nbDemIMR siren en attente de r<> <72> mission IMR. " . EOL ;
//die();
foreach ( $tabFichier as $iFic => $fichier )
{
$fichierAvecRep = $fichier ;
$fichier = basename ( $fichier );
$dateInsert = date ( 'YmdHis' );
if ( file_exists ( REP_TEMP . basename ( $fichier ) . '.lock' )) {
$tab2Tmp = explode ( ';' , file_get_contents ( REP_TEMP . basename ( $fichier ) . '.lock' ));
$date2Tmp = WDate :: DateT ( 'YmdHis' , 'd/m/Y H:i:s' , $tab2Tmp [ 1 ]);
$nbL2Tmp = $tab2Tmp [ 2 ];
// fwrite($fpT, date('Ymd-His')."$fichier;$dateInsert;$nbLignes;
$message = " Le fichier $fichier est en cours de chargement depuis le $date2Tmp ( $nbL2Tmp lignes)... " ;
echo date ( 'Y/m/d - H:i:s' ) . " - $message " . EOL ;
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , 'Chargement INPI IMR - ERREUR !!!' , $message );
die ();
}
/** Le fichier a-t-il d<> j<EFBFBD> <20> t<EFBFBD> charg<72> **/
$tabTmp = $iDb -> select ( 'rncs_chargements' , 'dateChargementDeb, dateChargementFin, taille, nbLignesTot' , " nomFichier=' $fichier ' " , false , MYSQL_ASSOC );
if ( @ $tabTmp [ 0 ][ 'nbLignesTot' ] * 1 > 0 ) {
$dateDeb = $tabTmp [ 0 ][ 'dateChargementDeb' ];
$dateFin = $tabTmp [ 0 ][ 'dateChargementFin' ];
$taille = $tabTmp [ 0 ][ 'taille' ];
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier $fichier a d<> j<EFBFBD> <20> t<EFBFBD> charg<72> le $dateDeb ( $taille octets)... " . EOL ;
continue ;
}
echo date ( 'Y/m/d - H:i:s' ) . " - D<> but du traitement du fichier ' $fichier '... " . EOL ;
$dateDispo = date ( 'YmdHis' , filemtime ( $fichierAvecRep ));
$dateFichierMod = substr ( '' . $dateDispo , 0 , 8 ) * 1 ;
/* if ( preg_match ( '/_([0-9]{8,8})\.dat/Ui' , $fichierAvecRep , $matches ))
$dateFichierNom = $matches [ 1 ];
else
$dateFichierNom = 0 ; */
$dateFichierNom = substr ( $fichier , 0 , 8 ) * 1 ;
2013-06-19 08:24:49 +00:00
if ( $jourStock > 0 /* && $stock==0*/ ) $dateFlux = $jourStock ;
2012-10-16 07:44:31 +00:00
elseif ( $dateFichierMod == $dateFichierNom ) $dateFlux = $dateFichierMod ;
elseif ( $dateFichierMod <> 0 && $dateFichierNom == 0 ) $dateFlux = $dateFichierMod ;
else {
echo date ( 'Y/m/d - H:i:s' ) . " - La date du fichier ( $dateFichierMod ) ne correspond pas avec le nom ' $fichier ' ! " . EOL ;
$dateFlux = $dateFichierNom ;
if (( $dateFlux * 1 ) < 20080101 || ( $dateFlux * 1 ) > ( date ( 'Ymd' ) * 1 ))
die ();
}
//die();
$fp = fopen ( $fichierAvecRep , 'r' );
if ( $fp ) {
$nbLignes = $nbLignes00 = $nbLignes01 = $nbLignes02 = $nbLignes02p = $nbLignes03 = $nbLignes04 = $nbLignes05 = $nbLignes06 = 0 ;
$tabEntete = array ();
for ( $i = 0 ; $i < 7 ; $i ++ ) $nb [ $i ] = $nbInsert [ $i ] = $nbUpdate [ $i ] = 0 ;
2013-06-19 08:24:49 +00:00
$nb [ 30 ] = $nbInsert [ 30 ] = $nbUpdate [ 30 ] = 0 ;
2012-10-16 07:44:31 +00:00
$nbCreations = $nbModifI = $nbModifF = $nbModifS = $nbFermetures = $nbModifErr = 0 ;
$a = fgets ( $fp , 4096 );
if ( strlen ( $a ) < 800 ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier RNCS <20> charger $fichier n'est pas au format IMR Infogreffe/Extelia ! " . EOL ;
die ();
}
$nbLignesTot = 0 ;
while ( ! feof ( $fp )) {
$a = fgets ( $fp , 4096 );
$nbLignesTot ++ ;
}
echo date ( 'Y/m/d - H:i:s' ) . " - Le fichier <20> charger $fichier contient $nbLignesTot lignes. " . EOL ;
if ( $iFic == 0 && $nbLignesTot > 2000000 && ! $stock ) {
// C'est le 1er fichier, il comporte plus de 2M de lignes et il n'est pas d<> clar<61> comme stock !
echo date ( 'Y/m/d - H:i:s' ) . " - Ce fichier est-il un stock annuel ? Merci de confirmer (O/N) " ;
while ( 1 ) {
$saisie = trim ( strtoupper ( fgets ( STDIN )));
if ( $saisie == 'O' || $saisie == 'o' ) {
$stock = 1 ;
$actifIni = 11 ;
break ;
} elseif ( $saisie == 'N' || $saisie == 'n' ) {
break ;
}
}
}
if ( $stock && $iFic == 0 ) {
$stockD = substr ( $jourStock , 6 , 2 ) * 1 ;
$stockM = substr ( $jourStock , 4 , 2 ) * 1 ;
$stockY = substr ( $jourStock , 0 , 4 ) * 1 ;
if ( ! $jourStock || $stockY < 2009 || $stockY > date ( 'Y' ) || $stockM == 0 || $stockM > 12 ||
$stockD == 0 || $stockD > 31 || $jourStock > date ( 'Ymd' )) {
while ( 1 ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Entrez-le jour du stock au format AAAAMMJJ (ex: $dateFlux ) ... " ;
$saisie = trim ( strtoupper ( fgets ( STDIN )));
if ( strlen ( $saisie ) == 8 ) {
$stockD = substr ( $saisie , 6 , 2 ) * 1 ;
$stockM = substr ( $saisie , 4 , 2 ) * 1 ;
$stockY = substr ( $saisie , 0 , 4 ) * 1 ;
if ( $stockY >= 2009 && $stockY <= date ( 'Y' ) * 1 ) {
if ( $stockM > 0 && $stockM < 13 ) {
if ( $stockD > 0 && $stockD < 13 && ( $saisie * 1 ) <= ( date ( 'Ymd' ) * 1 ))
break ;
else echo " ERREUR : Jour incorrect ou date de notice dans le futur ! " . EOL ;
} else echo " ERREUR : Mois incorrecte ! " . EOL ;
} else echo " ERREUR : Ann<6E> e incorrect ou dans le futur ! " . EOL ;
} else echo " ERREUR : Saisie incorrecte ! " . EOL ;
}
}
if ( $stockM < 10 ) $stockM = '0' . $stockM ;
else $stockM = '' . $stockM ;
if ( $stockD < 10 ) $stockD = '0' . $stockD ;
else $stockD = '' . $stockD ;
$jourStock = '' . $stockY . $stockM . $stockD ;
$message = date ( 'Y/m/d - H:i:s' ) . " - D<> but de traitement du fichier stock n<> $iFic , $fichier ... " . EOL ;
}
elseif ( $stock )
$message = date ( 'Y/m/d - H:i:s' ) . " - D<> but de traitement du fichier stock n<> $iFic , $fichier ... " . EOL ;
else
$message = date ( 'Y/m/d - H:i:s' ) . " - D<> but de traitement du fichier n<> $iFic , $fichier ... " . EOL ;
echo $message ;
rewind ( $fp );
$a = fgets ( $fp , 4096 );
$sirenPre = 0 ; // Valeur du Siren pr<70> c<EFBFBD> dent
$siren = 0 ;
$modifDir = $modifJug = false ;
$table = '' ;
while ( ! feof ( $fp )) {
/** Ajout/Maj des infos du verrou **/
if ( $nbLignes == 0 || $nbLignes % 10000 == 0 ) {
$fpT = fopen ( REP_TEMP . basename ( $fichier ) . '.lock' , 'w' );
fwrite ( $fpT , date ( 'Ymd-His' ) . " $fichier ; $dateInsert ; $nbLignes ; $nbLignes01 ; $nbLignes02 ; $nbLignes02p ; $nbLignes03 ; $nbLignes04 ; $nbLignes05 ; $nbLignes06 " . EOL );
fclose ( $fpT );
}
$nbLignes ++ ;
if ( $nbLignes < $numReprise ) continue ;
$siren = trim ( substr ( $a , 0 , 9 )); // SIREN
$codeEnr = '' . trim ( substr ( $a , 9 , 2 ));
/** A supprimer deb
if ( $nbLignes % 100000 == 0 ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Fichier n<> $iFic , $fichier : $nbLignes lignes, $siren $codeEnr : $nbLignes01 entrep, $nbLignes02 <20> tab, $nbLignes03 dir, $nbLignes04 jug, $nbLignes05 actes " . EOL ;
}
if ( $codeEnr == '03' || $codeEnr == '04' || $codeEnr == '05' ) {
$a = fgets ( $fp , 4096 );
$sirenPre = $siren ;
continue ;
}
// A supprimer fin **/
switch ( $codeEnr ) {
case '00' : // Structure de contr<74> le (1 par fichier)
$nbLignes00 ++ ;
$tabEntete [ 'dateCreation' ] = trim ( substr ( $a , 0 , 8 )); // Date cr<63> ation fichier par Infogreffe
$tabEntete [ 'numVersion' ] = trim ( substr ( $a , 8 , 1 )); // Version du cahier des charges
$tabEntete [ 'nbEntrep' ] = trim ( substr ( $a , 11 , 10 )); // Nombre d'Entreprises
$tabEntete [ 'nbRecords' ] = trim ( substr ( $a , 21 , 10 )); // Nombre d'Enregistrements
// Date de d<> but et de fin de p<> riode utilis<69> es pour g<> n<EFBFBD> rer le fichier IMR
$tabEntete [ 'datePeriodeDeb' ] = trim ( substr ( $a , 31 , 8 ));
$tabEntete [ 'datePeriodeFin' ] = trim ( substr ( $a , 39 , 8 ));
//continue;
break ;
case '01' :
$nbLignes01 ++ ;
if ( $sirenPre > 0 ) {
/** Passage <20> Actif/Inactif des <20> tablissements pr<70> c<EFBFBD> dents **/
$ret = $iDb -> select ( 'rncs_etab' . $env , 'actif, COUNT(*) AS nb' , " siren= $sirenPre GROUP BY actif ORDER BY actif ASC " , false , MYSQL_ASSOC );
if ( isset ( $ret [ 0 ])) {
$nbEtab = array ();
foreach ( $ret as $iEtab => $etab )
$nbEtab [ $etab [ 'actif' ]] = $etab [ 'nb' ];
$ret = $iDb -> update ( 'rncs_etab' . $env , array ( 'actif' => 0 , 'dateFermeture' => $dateFlux ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
if ( $modeDebug ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Les <20> tablissements du siren $sirenPre non transmis ont <20> t<EFBFBD> pass<73> s <20> inactifs ( " . ( @ $nbEtab [ 10 ] * 1 ) . " d<> j<EFBFBD> inactifs et " . ( @ $nbEtab [ 11 ] * 1 ) . " actifs). " . EOL ;
2012-10-16 07:44:31 +00:00
print_r ( $nbEtab );
}
} elseif ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Aucun <20> tablissement pour le siren $sirenPre en base pr<70> c<EFBFBD> dement ! " . EOL ;
/** Passage <20> inactif des dirigeants **/
if ( $modifDir ) {
$ret = $iDb -> select ( 'rncs_dirigeants' . $env , 'actif, count(*) as nb' , " siren= $sirenPre GROUP BY actif ORDER BY actif ASC " , false , MYSQL_ASSOC );
if ( isset ( $ret [ 0 ])) {
$nbEtab = array ();
foreach ( $ret as $iEtab => $etab )
$nbEtab [ $etab [ 'actif' ]] = $etab [ 'nb' ];
$ret = $iDb -> update ( 'rncs_dirigeants' . $env , array ( 'actif' => 0 , 'dateFin' => $dateFlux ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
if ( $modeDebug ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Les dirigeants du siren $sirenPre non transmis ont <20> t<EFBFBD> pass<73> s <20> inactifs ( " . ( @ $nbEtab [ 10 ] * 1 ) . " d<> j<EFBFBD> inactifs et " . ( @ $nbEtab [ 11 ] * 1 ) . " actifs). " . EOL ;
2012-10-16 07:44:31 +00:00
print_r ( $nbEtab );
}
} elseif ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Aucun dirigeants pour le siren $sirenPre en base pr<70> c<EFBFBD> dement ! " . EOL ;
}
/** Suppressions des jugements non transmis **/
if ( $modifJug ) {
$ret = $iDb -> select ( 'rncs_jugements' . $env , 'actif, count(*) as nb' , " siren= $sirenPre GROUP BY actif ORDER BY actif ASC " , false , MYSQL_ASSOC );
if ( isset ( $ret [ 0 ])) {
$nbEtab = array ();
foreach ( $ret as $iEtab => $etab )
$nbEtab [ $etab [ 'actif' ]] = $etab [ 'nb' ];
if ( $actif <> 0 )
// Si le siren est encore actif et que le jugement n'est pas transmit, il doit s'agir d'une correction de jugement
$ret = $iDb -> update ( 'rncs_jugements' . $env , array ( 'actif' => 0 , 'dateSuppr' => $dateFlux ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
else
$ret = $iDb -> update ( 'rncs_jugements' . $env , array ( 'actif' => 1 ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
if ( $modeDebug ) {
2013-06-19 08:24:49 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Les jugements du siren $sirenPre non transmis ont <20> t<EFBFBD> pass<73> s <20> inactifs ( " . ( @ $nbEtab [ 10 ] * 1 ) . " d<> j<EFBFBD> inactifs et " . ( @ $nbEtab [ 11 ] * 1 ) . " actifs). " . EOL ;
2012-10-16 07:44:31 +00:00
print_r ( $nbEtab );
}
} elseif ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Aucun jugements pour le siren $sirenPre en base pr<70> c<EFBFBD> dement ! " . EOL ;
}
}
$modifEtab = $modifDir = $modifJug = false ;
$table = 'rncs_entrep' . $env ;
if ( trim ( substr ( $a , 11 , 2 )) == '00' ) $actif = $actifIni ;
elseif ( trim ( substr ( $a , 11 , 2 )) == '99' ) $actif = 0 ;
else {
echo ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Code ACTIF inconnu ' " . substr ( $a , 11 , 2 ) . " ' dans le flux $fichier <20> la ligne $nbLignes siren $siren ! " . EOL );
die ( $a . EOL );
}
$raisonSociale = trim ( substr ( $a , 27 , 160 ));
$numRC = trim ( substr ( $a , 17 , 10 ));
/* if ( $numRC <> '' && substr ( $numRC , 0 , 2 ) * 1 >= 30 )
$numRC2 = '19' . $numRC ;
elseif ( $numRC <> '' && substr ( $numRC , 0 , 2 ) * 1 < 30 )
$numRC2 = '20' . $numRC ;
else
$numRC2 = '' ; */
$numRC2 = $numRC ;
$numRC = substr ( $numRC2 , 2 );
$sexe = trim ( substr ( $a , 535 , 1 ));
$cj = trim ( substr ( $a , 541 , 10 ));
/** L'entreprise est elle une personne physique **/
$nomUsage = $nom = $prenom = '' ;
if ( $sexe == 'M' || $sexe == 'F' || substr ( $cj , 0 , 1 ) * 1 == 1 ) {
$nom = $raisonSociale ;
$entrepreneur = true ;
} else
$entrepreneur = false ;
/*
if ( preg_match ( '/^(.*) n(?:<3A> |e|<7C> )e (.*)$/Uis' , $raisonSociale , $matches )) {
$rs = trim ( $matches [ 1 ]);
$nomUsage = trim ( $matches [ 2 ]);
} else
$rs = $raisonSociale ;
$tabNom = explode ( ' ' , $rs );
for ( $i = 0 ; isset ( $tabNom [ $i ]); $i ++ )
if ( $tabNom [ $i ] == strtoupper ( $tabNom [ $i ]))
$nom .= $tabNom [ $i ] . ' ' ;
else
$prenom .= $tabNom [ $i ] . ' ' ;
} */
$nomUsage = trim ( substr ( $a , 267 , 80 ));
$prenom = trim ( substr ( $a , 187 , 80 ));
$numGreffe = trim ( substr ( $a , 13 , 4 )) * 1 ;
$tabUpdate = array (
'actif' => $actif ,
'numGreffe' => $numGreffe , // Num<75> ro de gestion (code greffe)
'triCode' => $iRncs -> getCodeBodaccTribunal ( $numGreffe ), // Num<75> ro de gestion (code greffe)
'triId' => $iRncs -> getIdTribunal ( $numGreffe ), // Num<75> ro de gestion (code greffe)
'numRC' => $numRC , // Ancien num<75> ro de gestion (num<75> ro RC, ann<6E> e sur 2)
'numRC2' => $numRC2 , // Nouveau num<75> ro de gestion (num<75> ro RC, ann<6E> e sur 4)
'raisonSociale' => strtoupper ( $raisonSociale ), // Nom 90 c
'nom' => strtoupper ( $nom ), // Nom 90 c
'prenom' => ucwords ( strtolower ( $prenom )),
'nomUsage' => strtoupper ( $nomUsage ),
'sigle' => strtoupper ( trim ( substr ( $a , 347 , 80 ))), // Sigle
'dateNaiss' => trim ( substr ( $a , 427 , 8 )) * 1 , // Date de naissance (SSAAMMJJ)
'lieuNaiss' => trim ( substr ( $a , 435 , 100 )), // Lieu de naissance
'sexe' => $sexe , // Sexe (M/F)
'nationalite' => trim ( substr ( $a , 597 , 3 )), // Code nationalit<69>
'pays' => $iRncs -> getPaysInpi ( trim ( substr ( $a , 190 , 3 )) * 1 ), // Code nationalit<69>
'naf' => trim ( substr ( $a , 536 , 5 )), // Code APE de l'entreprise
'cj' => $cj , // Code cat<61> gorie juridique
'capitalMontant' => trim ( substr ( $a , 551 , 15 )) * 1 , // Capital (en unit<69> )
'capitalCent' => trim ( substr ( $a , 566 , 2 )), // Capital (centimes)
'capitalDevise' => trim ( substr ( $a , 568 , 3 )), // Code devise du capital
'capitalDevIso' => $iRncs -> getDeviseInpi ( trim ( substr ( $a , 568 , 3 )) * 1 ), // Code devise du capital
'dateImma' => trim ( substr ( $a , 581 , 8 )) * 1 , // Date d<> immatriculation SSAAMMJJ
'dateRad' => trim ( substr ( $a , 589 , 8 )) * 1 , // Date de radiation SSAAMMJJ
'capitalType' => trim ( substr ( $a , 578 , 3 )), // Code type de capital SOC ou VAR SOC = Capital social VAR = Capital variable
//'provisoires'=> trim( substr($a, 239, 1)), // Donn<6E> es provisoires P ou blanc = <20> P<EFBFBD> si donn<6E> es provisoires
);
$ret = $iDb -> select ( 'rncs_entrep' . $env , 'actif,numGreffe,numRC2,raisonSociale,nom,prenom,nomUsage,sigle,dateNaiss*1 AS dateNaiss,lieuNaiss,sexe,nationalite,naf,cj,capitalMontant,capitalDevIso,dateImma*1 AS dateImma,dateRad*1 AS dateRad,capitalType,capitalCent,provisoires' , " siren= $siren " , false , MYSQL_ASSOC );
if ( is_array ( $ret ) && count ( $ret ) > 0 ) {
$tabSelect = $ret [ 0 ];
$tabDiff = array_diff ( $tabSelect , $tabUpdate );
if ( ! $stock && count ( $tabDiff ) > 0 ) {
foreach ( $tabDiff as $field => $value )
$iDb -> insert ( 'rncs_modifs' . $env , array ( 'siren' => $siren ,
'table' => $table ,
'champs' => $field ,
'valeur' => $value ,
'flux' => $dateFlux ));
}
2013-06-19 08:24:49 +00:00
} elseif ( $stock ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Fichier n<> $iFic , $fichier : $nbLignes lignes, $siren inconnu, $numGreffe $numRC2 pr<70> sent dans le stock IMR ( $raisonSociale $nom $prenom ) ! " . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Fichier n<> $iFic , $fichier : $nbLignes lignes, $siren inconnu, $numGreffe $numRC2 pr<70> sent dans le stock IMR ( $raisonSociale $nom $prenom ) ! " . EOL ;
2012-10-16 07:44:31 +00:00
}
/** Ce siren fait parti des demandes de r<> <72> mission de dossier IMR faites par S&D **/
2013-06-19 08:24:49 +00:00
if ( isset ( $tabDemIMR [ $siren ]) && ! $stock ) {
2012-10-16 07:44:31 +00:00
$iDb -> update ( 'rncs_demandes' . $env , array ( 'dateReponse' => $dateInsert ,
'flux' => $dateFlux ), " siren= $siren AND dateReponse IS NULL " , false , 0 , true );
echo date ( 'Y/m/d - H:i:s' ) . " - Dossier r<> <72> mis sur $siren le " . $tabDemIMR [ $siren ] . " re<72> u dans le flux IMR du $dateFlux . " . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Dossier r<> <72> mis sur $siren le " . $tabDemIMR [ $siren ] . " re<72> u dans le flux IMR du $dateFlux . " . EOL ;
unset ( $tabDemIMR [ $siren ]);
}
$tabInsert = array_merge ( $tabUpdate , array ( 'siren' => $siren ,
'sirenValide' => $iInsee -> valideSiren ( $siren ),
'flux' => $dateFlux ,
'dateInsert' => $dateInsert ,
)
);
break ;
case '02' :
$nbLignes02 ++ ;
$table = 'rncs_etab' . $env ;
/** Marquage des <20> tablissements <20> actif provisoire **/
if ( ! $modifEtab ) {
$ret = $iDb -> query ( " UPDATE LOW_PRIORITY $table SET actif=actif+10 WHERE siren= $siren " );
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Les <20> tablissements du siren $siren sont OK pour la mise <20> jour ( $ret ). " . EOL ;
}
$modifEtab = true ;
$nic = trim ( substr ( $a , 11 , 5 )) * 1 ;
if ( $nic >= 99990 || $nic == 0 ) {
$nbLignes02p ++ ;
$table = 'rncs_etab_prov' . $env ;
}
$adr1 = strtoupper ( trim ( substr ( $a , 417 , 40 ))); // Ligne d'adresse 1
$adr2 = strtoupper ( trim ( substr ( $a , 457 , 40 ))); // Ligne d'adresse 2
$adr3 = strtoupper ( trim ( substr ( $a , 497 , 40 ))); // Ligne d'adresse 3
$tabAdresse = getAdresse ( $adr1 , $adr2 , $adr3 );
$typEtab = trim ( substr ( $a , 16 , 1 )) * 1 ;
switch ( $typEtab ) {
case 0 : $siege = 1 ; break ; // Si<53> ge
case 1 : $siege = 2 ; break ; // Etablissement Principal
default : $siege = 0 ; break ; // Etablissement secondaire
}
$tabUpdate = array (
'siege' => $siege ,
'enseigne' => strtoupper ( trim ( substr ( $a , 17 , 200 ))), // Enseigne Alpha.
'nomCommercial' => strtoupper ( trim ( substr ( $a , 217 , 200 ))), // Nom Commercial Alpha.
'adrNumVoie' => @ $tabAdresse [ 'num' ], // N<> dans la voie Num.
'adrIndRep' => @ $tabAdresse [ 'indRep' ],
'adrTypeVoie' => @ $tabAdresse [ 'typeVoie' ], // BTQ Alpha.
'adrVoie' => strtoupper ( @ $tabAdresse [ 'libVoie' ]), // Type et libell<6C> de voie Alpha.
'adresse1' => $adr1 , // Ligne d'adresse 1
'adresse2' => $adr2 , // Ligne d'adresse 2
'adresse3' => $adr3 , // Ligne d'adresse 3
'cp' => trim ( substr ( $a , 537 , 5 )), // Code Postal Alpha.
'commune' => strtoupper ( trim ( substr ( $a , 542 , 30 ))), // Commune Alpha.
'adrComp' => @ $tabAdresse [ 'adrComp0' ], // Compl<70> ment d'adresse Alpha.
'naf' => trim ( substr ( $a , 572 , 5 )), // APE de l'<27> tablissement Alpha.
);
if ( $tabUpdate [ 'adrVoie' ] == 'NULL' ) $tabUpdate [ 'adrVoie' ] = '' ;
if ( strtoupper ( $tabUpdate [ 'adresse1' ]) == 'NULL' ) $tabUpdate [ 'adresse1' ] = '' ;
if ( $nic < 99990 ) {
$ret = $iDb -> select ( $table , 'siege,enseigne,adrNumVoie,adrIndRep,adrLibVoie,cp,commune,adrComp,naf' , " siren= $siren AND nic= $nic " , false , MYSQL_ASSOC );
if ( is_array ( $ret ) && count ( $ret ) > 0 ) {
$tabSelect = $ret [ 0 ];
/* if ( $tabSelect [ 'siege' ] == 1 && ( // Si c'est un <20> tablissement si<73> ge...
( $tabSelect [ 'adrNumVoie' ] <> $tabUpdate [ 'adrNumVoie' ] && $tabSelect [ 'adrNumVoie' ] > 0 ) ||
( $tabSelect [ 'adrLibVoie' ] <> $tabUpdate [ 'adrLibVoie' ] && $tabSelect [ 'adrLibVoie' ] <> '' ) ||
substr ( '' . $tabSelect [ 'cp' ], 0 , 2 ) <> substr ( '' . $tabUpdate [ 'cp' ], 0 , 2 ) ||
$tabSelect [ 'commune' ] <> $tabUpdate [ 'commune' ]) ) { // ... et que son adresse change
$table = 'rncs_etab_prov' ;
$iDb -> update ( 'rncs_etab' , array ( 'actif' => 1 ), " siren= $siren AND nic= $nic " );
} else { */
$tabDiff = array_diff ( $tabSelect , $tabUpdate );
if ( ! $stock && count ( $tabDiff ) > 0 ) {
foreach ( $tabDiff as $field => $value )
$iDb -> insert ( 'rncs_modifs' . $env , array ( 'siren' => $siren ,
'nic' => $nic ,
'table' => $table ,
'champs' => $field ,
'valeur' => $value ,
'flux' => $dateFlux ));
}
//}
}
}
$tabUpdate [ 'actif' ] = 1 ;
$tabInsert = array_merge ( $tabUpdate , array ( 'siren' => $siren ,
'nic' => $nic ,
'flux' => $dateFlux ,
'dateInsert' => $dateInsert ,
)
);
break ;
case '03' :
$nbLignes03 ++ ;
$table = 'rncs_dirigeants' . $env ;
if ( ! $modifDir ) {
$ret = $iDb -> query ( " UPDATE LOW_PRIORITY $table SET actif=actif+10 WHERE siren= $siren " );
//if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Les dirigeants du siren $siren sont OK pour la mise <20> jour ($ret).".EOL;
}
$modifDir = true ;
// Type de dirigeant
$rsDir = '' ;
$sirenDir = 0 ;
$typeDir = trim ( substr ( $a , 450 , 2 )); // PP = Personne physique, PM = Personne morale
$nomDir = trim ( substr ( $a , 21 , 160 )); // Nom d<> usage ou raison sociale
$civilite = strtoupper ( trim ( substr ( $a , 449 , 1 ))); // Code Civilit<69> du dirigeant ==> Sexe M ou F
// if ($civilite<>'M' && $civilite<>'MME' && $civilite<>'MLLE' && $civilite<>'')
if ( $civilite <> 'M' && $civilite <> 'F' && $civilite <> '' )
die ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Civilit<69> ' $civilite ' inconnue ! " . EOL );
if ( $civilite == 'F' ) $civilite = 'MME' ;
$prenomDir = trim ( substr ( $a , 181 , 80 ));
$dateNaiss = trim ( substr ( $a , 341 , 8 ));
$lieuNaiss = strtoupper ( trim ( substr ( $a , 349 , 100 )));
$codeFonction = trim ( substr ( $a , 11 , 10 )) * 1 ;
if ( $typeDir == 'PM' ){
$sirenDir = 0 ; // Chercher le siren du dirigeant
$rsDir = $nomDir ;
$nomDir = trim ( substr ( $a , 692 , 80 )); // Nom Repr<70> s. du dirigeant
//if ($prenomDir=='' && $dateNaiss*1==0 && $lieuNaiss=='')
/* if ( strlen ( $rsDir ) > 2 && $civilite <> '' && $nomDir <> '' && $prenomDir <> '' ) {
$tabRet =@ $iWs -> searchNomAdr ( $rsDir , '' , '' , '' , 1 , 1 , 0 , 10 , 10 , false , true );
$nbReps = $tabRet [ 'results' ][ 'nbReponses' ];
if ( $nbReps > 0 ) {
$tabSirenProbable = array ();
foreach ( $tabRet [ 'results' ][ 'reponses' ] as $iRep => $entrep ) {
//$sirenProbable=$entrep['Siren'];
$tabRet2 =@ $iWs -> getDirigeants ( $entrep [ 'Siren' ]);
foreach ( $tabRet2 [ 'result' ] as $iRep => $dirig ) {
//echo $entrep['Siren']." RECHERCHE : $civilite $nomDir $prenomDir".EOL;
//echo $entrep['Siren'].' on trouve : '.$dirig['Civilite'].' '.$dirig['Nom'].' '.$dirig['Prenom'].EOL;
if ( strtoupper ( $civilite ) == strtoupper ( $dirig [ 'Civilite' ]) &&
strtoupper ( $nomDir ) == strtoupper ( $dirig [ 'Nom' ]) &&
strtoupper ( $prenomDir ) == strtoupper ( $dirig [ 'Prenom' ]))
$tabSirenProbable [] = $entrep [ 'Siren' ];
}
}
$tabSirenProbable = array_unique ( $tabSirenProbable );
if ( count ( $tabSirenProbable ) == 1 ) {
$sirenDir = end ( $tabSirenProbable );
echo date ( 'Y/m/d - H:i:s' ) . " - Ligne $nbLignes / $nbLignesTot - Siren $siren dirig<69> par $sirenDir ... " . EOL ;
}
}
} */
}
$depSte = floor ( $numGreffe / 100 );
if ( $depSte > 96 ) $depSte = floor ( $numGreffe / 10 );
$tabUpdate = array (
'actif' => 1 ,
'raisonSociale' => $raisonSociale ,
'typeDir' => $typeDir ,
'dirRS' => $rsDir ,
'dirSiren' => $sirenDir ,
'adr_dep' => $depSte ,
'nom' => $nomDir ,
'fonction_code' => $iRncs -> getCodFctBodaccFctDir ( $codeFonction ), // Code fonction du dirigeant
'fonction_lib' => $iRncs -> getLibFctDir ( $codeFonction ),
'source' => 'imr' ,
'prenom' => ucwords ( strtolower ( $prenomDir )), // Pr<50> nom du Dirigeant
'naissance_date' => $dateNaiss , // Date de Naissance du dirigeant Alpha. SSAAMMJJ
'naissance_lieu' => $lieuNaiss , // Lieu de Naissance
'civilite' => $civilite ,
'naissance_nom' => trim ( substr ( $a , 261 , 80 )), // Nom de naissance du dirigeant
'adresse' => trim ( substr ( $a , 452 , 240 )), // Nom de naissance du dirigeant
);
$ret = $iDb -> select ( $table , 'count(*) as nb' , " siren= $siren AND " .
" civilite=' " . $tabUpdate [ 'civilite' ] . " ' AND " .
" nom=' " . addslashes ( $tabUpdate [ 'nom' ]) . " ' AND " .
" prenom=' " . addslashes ( $tabUpdate [ 'prenom' ]) . " ' AND " .
" naissance_nom=' " . addslashes ( $tabUpdate [ 'naissance_nom' ]) . " ' AND " .
" naissance_date=' " . $tabUpdate [ 'naissance_date' ] . " ' AND " .
" fonction_code= " . $iRncs -> getCodFctBodaccFctDir ( $codeFonction ), false , MYSQL_ASSOC );
/* if ( is_array ( $ret ) && count ( $ret ) > 0 ) {
$tabSelect = $ret [ 0 ];
$tabDiff = array_diff ( $tabSelect , $tabUpdate );
if ( count ( $tabDiff ) > 0 ) {
foreach ( $tabDiff as $field => $value )
$iDb -> insert ( 'rncs_modifs' , array ( 'siren' => $siren ,
'table' => $table ,
'champs' => $field ,
'valeur' => $value ));
}
}
*/
$tabInsert = array_merge ( $tabUpdate , array ( 'siren' => $siren ,
'flux' => $dateFlux ,
'dateInsert' => $dateInsert ,
)
);
if ( $ret [ 0 ][ 'nb' ] == 0 ) {
$iDb -> insert ( $table , $tabInsert );
/* echo " ' $table ': " . EOL ;
print_r ( $tabInsert );
echo mysql_errno () . ' : ' . mysql_error () . EOL ; */
$nbInsert [ 3 ] ++ ;
2013-06-19 08:24:49 +00:00
if ( $typeDir == 'PM' ) $nbInsert [ 30 ] ++ ;
2012-10-16 07:44:31 +00:00
//if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Insertion du dirigeant ". $tabUpdate['nom']." ".$tabUpdate['prenom'].", siren=$siren !".EOL;
} else {
$iDb -> update ( $table , $tabUpdate , " siren= $siren AND " .
" civilite=' " . $tabUpdate [ 'civilite' ] . " ' AND " .
" nom=' " . addslashes ( $tabUpdate [ 'nom' ]) . " ' AND " .
" prenom=' " . addslashes ( $tabUpdate [ 'prenom' ]) . " ' AND " .
" naissance_nom=' " . addslashes ( $tabUpdate [ 'naissance_nom' ]) . " ' AND " .
" naissance_date=' " . $tabUpdate [ 'naissance_date' ] . " ' AND " .
" fonction_code= " . $iRncs -> getCodFctBodaccFctDir ( $codeFonction ), false , 0 , true );
$nbUpdate [ 3 ] ++ ;
2013-06-19 08:24:49 +00:00
if ( $typeDir == 'PM' ) $nbUpdate [ 30 ] ++ ;
2012-10-16 07:44:31 +00:00
//if ($modeDebug) echo date ('Y/m/d - H:i:s') . " - MAJ du dirigeant ". $tabUpdate['nom']." ".$tabUpdate['prenom'].", siren=$siren !".EOL;
}
break ;
case '04' :
$nbLignes04 ++ ;
$table = 'rncs_jugements' . $env ;
/** Marquage des jugements <20> actif provisoire **/
if ( ! $modifJug ) {
$ret = $iDb -> query ( " UPDATE LOW_PRIORITY $table SET actif=actif+10 WHERE siren= $siren " );
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Les jugements du siren $siren sont OK pour la mise <20> jour ( $ret ). " . EOL ;
}
$modifJug = true ;
$type1 = $type2 = '' ;
$adm1nom = trim ( substr ( $a , 39 , 100 ));
$adm2nom = trim ( substr ( $a , 304 , 100 ));
$codeJugement = trim ( substr ( $a , 19 , 10 ));
$codeFonction1 = trim ( substr ( $a , 29 , 10 ));
$codeFonction2 = trim ( substr ( $a , 294 , 10 ));
$type1 =@ $iRncs -> getCodFctBodaccFctDir ( $codeFonction1 );
if ( $type1 * 1 == 1900 ) $type1 = 'L' ;
$type2 =@ $iRncs -> getCodFctBodaccFctDir ( $codeFonction2 );
if ( $type2 * 1 == 1900 ) $type2 = 'L' ;
// Adresse 1
$adm1adr1 = trim ( substr ( $a , 139 , 40 )); // Admin. 1 : Adresse Ligne 1
$adm1adr2 = trim ( substr ( $a , 179 , 40 )); // Admin. 1 : Adresse Ligne 2
$adm1adr3 = trim ( substr ( $a , 219 , 40 )); // Admin. 1 : Adresse Ligne 3
$tabAdr1 = getAdresse ( $adm1adr1 , $adm1adr2 , $adm1adr3 );
// Adresse 2
$adm2adr1 = trim ( substr ( $a , 139 , 40 )); // Admin. 2 : Adresse Ligne 1
$adm2adr2 = trim ( substr ( $a , 179 , 40 )); // Admin. 2 : Adresse Ligne 2
$adm2adr3 = trim ( substr ( $a , 219 , 40 )); // Admin. 2 : Adresse Ligne 3
$tabAdr2 = getAdresse ( $adm2adr1 , $adm2adr2 , $adm2adr3 );
$dateEffet = trim ( substr ( $a , 11 , 8 ));
$adrVille1 = strtoupper ( trim ( substr ( $a , 264 , 30 )));
if ( $adrVille1 == '' ) $adrVille1 = $adm1adr3 ;
$adrVille2 = strtoupper ( trim ( substr ( $a , 529 , 30 )));
if ( $adrVille2 == '' ) $adrVille2 = $adm2adr3 ;
//adm1adrNum adm1adrInd adm1adrType adm1adrLibVoie adm1adrVoie adm1adr1 adm1adr2 adm1adr3
$tabUpdate = array (
'siren' => $siren ,
'dateEffet' => $dateEffet , // Date d'effet
'codeJugement' => $codeJugement , // Code Jugement
'actif' => 1 ,
'codeEven' => $iRncs -> getCodeEvenJugementInpi ( $codeJugement ),
'adm1codeFct' => $codeFonction1 , // Admin. 1 : Code Fonction
'adm1type' => $type1 , // Code type Mandataire
'adm1id' => $iRncs -> getIdMandataireInpi ( $adm1nom ),
'adm1nom' => $adm1nom , // Admin. 1 : NOM
'adm1adrNum' => @ $tabAdr1 [ 'num' ], // Admin. 1 : N<> dans la voie
'adm1adrInd' => @ $tabAdr1 [ 'indRep' ], // Admin. 1 : BTQ
'adm1adrType' => @ $tabAdr1 [ 'typeVoie' ],
'adm1adrLibVoie' => @ $tabAdr1 [ 'libVoie' ],
//'adm1adrVoie' => trim( substr($a, 90, 60)), // Admin. 1 : Type et libell<6C> de voie
'adm1adr1' => $adm1adr1 , // Admin. 1 : N<> dans la voie
'adm1adr2' => $adm1adr2 , // Admin. 1 : N<> dans la voie
'adm1adr3' => $adm1adr3 , // Admin. 1 : N<> dans la voie
'adm1adrCP' => trim ( substr ( $a , 259 , 5 )), // Admin. 1 : Code Postal
'adm1adrVille' => $adrVille1 , // Admin. 1 : Commune
'adm2codeFct' => $codeFonction2 , // Admin. 2 : Code Fonction
'adm2type' => $type2 ,
'adm2id' => $iRncs -> getIdMandataireInpi ( $adm2nom ),
'adm2nom' => $adm2nom , // Admin. 2 : NOM
'adm2adrNum' => @ $tabAdr2 [ 'num' ], // Admin. 2 : N<> dans la voie
'adm2adrInd' => @ $tabAdr2 [ 'indRep' ], // Admin. 2 : BTQ
'adm2adrType' => @ $tabAdr2 [ 'typeVoie' ],
'adm2adrLibVoie' => @ $tabAdr2 [ 'libVoie' ],
//'adm2adrVoie' => trim( substr($a, 254, 60)), // Admin. 2 : Type et libell<6C> de voie
'adm2adr1' => $adm2adr1 , // Admin. 2 : N<> dans la voie
'adm2adr2' => $adm2adr2 , // Admin. 2 : N<> dans la voie
'adm2adr3' => $adm2adr3 , // Admin. 2 : N<> dans la voie
'adm2adrCP' => trim ( substr ( $a , 524 , 5 )), // Admin. 2 : Code Postal
'adm2adrVille' => $adrVille2 , // Admin. 2 : Commune
'flux' => $dateFlux ,
);
$tabInsert = $tabUpdate ;
break ;
case '05' : // Inchang<6E> Coface => Infogreffe
$nbLignes05 ++ ;
$table = 'rncs_even' . $env ;
$tabInsert = array (
'siren' => $siren ,
'codeInterne' => trim ( substr ( $a , 11 , 16 )), // Code Interne
'dateDepot' => trim ( substr ( $a , 27 , 8 )), // Date du d<> p<EFBFBD> t
'codeEven' => trim ( substr ( $a , 35 , 10 )), // Code <20> v<EFBFBD> nement
'flux' => $dateFlux ,
);
/* if ( $entrepreneur ) {
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , " Chargement INPI IMR siren $siren , cj= $cj " ,
'Cet entrepreneur individuel vient de d<> poser un acte' . EOL . print_r ( $tabInsert , true ));
} */
break ;
case '06' : // EIRL
$nbLignes06 ++ ;
$table = 'rncs_eirl' . $env ;
$adr1 = strtoupper ( trim ( substr ( $a , 611 , 40 ))); // Ligne d'adresse 1
$adr2 = strtoupper ( trim ( substr ( $a , 651 , 40 ))); // Ligne d'adresse 2
$adr3 = strtoupper ( trim ( substr ( $a , 691 , 40 ))); // Ligne d'adresse 3
$tabAdresse = getAdresse ( $adr1 , $adr2 , $adr3 );
$tabUpdate = array (
'siren' => $siren ,
'denomination' => trim ( substr ( $a , 11 , 200 )), // D<> nomination utilis<69> e pour l'exercice de l'activit<69> professionnelle <20> laquelle le patrimoine est affect<63>
'activite' => trim ( substr ( $a , 211 , 400 )), // Objet de l'activit<69> professionnelle <20> laquelle le patrimoine est affect<63>
'adrNumVoie' => @ $tabAdresse [ 'num' ], // N<> dans la voie Num.
'adrIndRep' => @ $tabAdresse [ 'indRep' ], // Il s'agit de l'adresse de l'<27> tablissement o<> est exerc<72> e l'activit<69> professionnelle <20> laquelle le patrimoine est affect<63>
'adrTypeVoie' => @ $tabAdresse [ 'typeVoie' ], // BTQ Alpha.
'adrVoie' => strtoupper ( @ $tabAdresse [ 'libVoie' ]), // Type et libell<6C> de voie Alpha.
'adresse1' => $adr1 , // Ligne d'adresse 1
'adresse2' => $adr2 , // Ligne d'adresse 2
'adresse3' => $adr3 , // Ligne d'adresse 3
'adrComp' => @ $tabAdresse [ 'adrComp0' ], // Compl<70> ment d'adresse Alpha.
'cp' => trim ( substr ( $a , 731 , 5 )), // Code Postal Alpha.
'commune' => strtoupper ( trim ( substr ( $a , 736 , 30 ))), // Commune Alpha.
// 'flux' => $dateFlux,
);
$tabInsert = array_merge ( $tabUpdate , array ( 'siren' => $siren ,
'flux' => $dateFlux ,
'dateInsert' => $dateInsert ,
)
);
$ret = $iDb -> select ( $table , 'denomination,activite,adresse1,adresse2,adresse3,cp,commune' , " siren= $siren " , false , MYSQL_ASSOC );
if ( is_array ( $ret ) && count ( $ret ) > 0 ) {
$tabSelect = $ret [ 0 ];
$tabDiff = array_diff ( $tabSelect , $tabUpdate );
if ( ! $stock && count ( $tabDiff ) > 0 ) {
foreach ( $tabDiff as $field => $value )
$iDb -> insert ( 'rncs_modifs' . $env , array ( 'siren' => $siren ,
'nic' => $nic ,
'table' => $table ,
'champs' => $field ,
'valeur' => $value ,
'flux' => $dateFlux ));
}
}
break ;
default :
die ( date ( 'Y/m/d - H:i:s' ) . " - ERREUR ligne $nbLignes : Code Enregistrement ' $codeEnr ' inconnu pour la ligne : " . EOL . trim ( $a ) . EOL );
break ;
}
if ( $table <> 'rncs_dirigeants' . $env && $codeEnr <> '00' ) {
if ( ! $iDb -> insert ( $table , $tabInsert )) {
if ( mysql_errno () == 1062 && ( $table == 'rncs_entrep' . $env || $table == 'rncs_etab' . $env || $table == 'rncs_jugements' . $env || $table == 'rncs_eirl' . $env )) {
$where = " siren= $siren " ;
if ( $table == 'rncs_etab' . $env ) $where .= " AND nic= $nic " ;
elseif ( $table == 'rncs_jugements' . $env ) $where .= " AND dateEffet= $dateEffet
AND codeJugement = $codeJugement " ;
if ( ! $iDb -> update ( $table , $tabUpdate , $where , false , 0 , true )) {
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : $where , Erreur mysql sur la table ' $table ' " . mysql_errno () . ' - ' . mysql_error () . EOL ;
print_r ( $tabInsert );
die ();
} else $nbUpdate [ $codeEnr * 1 ] ++ ;
} elseif ( ! ( mysql_errno () == 1062 && ( $table == 'rncs_jugements' . $env || $table == 'rncs_even' . $env || $table == 'rncs_etab_prov' . $env ))) {
echo date ( 'Y/m/d - H:i:s' ) . " - ERREUR : Siren= $siren , Erreur mysql sur la table ' $table ' " . mysql_errno () . ' - ' . mysql_error () . EOL ;
print_r ( $tabInsert );
die ();
} elseif ( mysql_errno () == 1062 && ( $table == 'rncs_jugements' . $env || $table == 'rncs_even' . $env || $table == 'rncs_etab_prov' . $env )) {
$nbUpdate [ $codeEnr * 1 ] ++ ;
}
} else $nbInsert [ $codeEnr * 1 ] ++ ;
}
if ( $nbLignes % 100000 == 0 ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Fichier n<> $iFic , $fichier : $nbLignes lignes, $siren $codeEnr : $nbLignes01 entrep, $nbLignes02 <20> tab, $nbLignes03 dir, $nbLignes04 jug, $nbLignes05 actes, $nbLignes06 EIRL " . EOL ;
}
if ( $nbLignes == 0 || $nbLignes % 10000 == 0 ) {
$fpT = fopen ( REP_TEMP . basename ( $argv [ 0 ]), 'w' );
fwrite ( $fpT , '' . $fichier . ';' . $jourStock . ';' . $nbLignes );
fclose ( $fpT );
}
$a = fgets ( $fp , 4096 );
$sirenPre = $siren ;
}
fclose ( $fp );
/** Passage <20> Actif/Inactif des <20> tablissements pr<70> c<EFBFBD> dents **/
$ret = $iDb -> select ( 'rncs_etab' . $env , 'actif, COUNT(*) AS nb' , " siren= $sirenPre GROUP BY actif ORDER BY actif ASC " , false , MYSQL_ASSOC );
if ( isset ( $ret [ 0 ])) {
$nbEtab = array ();
foreach ( $ret as $iEtab => $etab )
$nbEtab [ $etab [ 'actif' ]] = $etab [ 'nb' ];
$ret = $iDb -> update ( 'rncs_etab' . $env , array ( 'actif' => 0 , 'dateFermeture' => $dateFlux ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
if ( $modeDebug ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Les <20> tablissements du siren $sirenPre non transmis ont <20> t<EFBFBD> pass<73> s <20> inactifs ( " . $nbEtab [ 10 ] . " d<> j<EFBFBD> inactifs et " . $nbEtab [ 11 ] . " actifs). " . EOL ;
print_r ( $nbEtab );
}
} elseif ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Aucun <20> tablissement pour le siren $sirenPre en base pr<70> c<EFBFBD> dement ! " . EOL ;
/** Passage <20> Actif/Inactif des dirigeants pr<70> c<EFBFBD> dents **/
if ( $modifDir ) {
$ret = $iDb -> select ( 'rncs_dirigeants' . $env , 'actif, count(*) as nb' , " siren= $sirenPre GROUP BY actif ORDER BY actif ASC " , false , MYSQL_ASSOC );
if ( isset ( $ret [ 0 ])) {
$nbEtab = array ();
foreach ( $ret as $iEtab => $etab )
$nbEtab [ $etab [ 'actif' ]] = $etab [ 'nb' ];
$ret = $iDb -> update ( 'rncs_dirigeants' . $env , array ( 'actif' => 0 , 'dateFin' => $dateFlux ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
if ( $modeDebug ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Les dirigeants du siren $sirenPre non transmis ont <20> t<EFBFBD> pass<73> s <20> inactifs ( " . $nbEtab [ 10 ] . " d<> j<EFBFBD> inactifs et " . $nbEtab [ 11 ] . " actifs). " . EOL ;
print_r ( $nbEtab );
}
} elseif ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Aucun dirigeants pour le siren $sirenPre en base pr<70> c<EFBFBD> dement ! " . EOL ;
}
/** Suppressions des jugements non transmis **/
if ( $modifJug ) {
$ret = $iDb -> select ( 'rncs_jugements' . $env , 'actif, count(*) as nb' , " siren= $sirenPre GROUP BY actif ORDER BY actif ASC " , false , MYSQL_ASSOC );
if ( isset ( $ret [ 0 ])) {
$nbEtab = array ();
foreach ( $ret as $iEtab => $etab )
$nbEtab [ $etab [ 'actif' ]] = $etab [ 'nb' ];
if ( $actif <> 0 )
// Si le siren est encore actif et que le jugement n'est pas transmit, il doit s'agir d'une correction de jugement
$ret = $iDb -> update ( 'rncs_jugements' . $env , array ( 'actif' => 0 , 'dateSuppr' => $dateFlux ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
else
$ret = $iDb -> update ( 'rncs_jugements' . $env , array ( 'actif' => 1 ), " actif>9 AND siren= $sirenPre " , false , 0 , true );
if ( $modeDebug ) {
echo date ( 'Y/m/d - H:i:s' ) . " - Les jugements du siren $sirenPre non transmis ont <20> t<EFBFBD> pass<73> s <20> inactifs ( " . $nbEtab [ 10 ] . " d<> j<EFBFBD> inactifs et " . $nbEtab [ 11 ] . " actifs). " . EOL ;
print_r ( $nbEtab );
}
} elseif ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - Aucun jugements pour le siren $sirenPre en base pr<70> c<EFBFBD> dement ! " . EOL ;
}
}
$message .= date ( 'Y/m/d - H:i:s' ) . " - R<> capitulatif du chargement n<> $iFic , $fichier de $nbLignesTot lignes ( " . ( @ $tabEntete [ 'nbRecords' ] * 1 ) . " ): " . EOL ;
if ( $nbLignes00 > 0 )
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 00 : Fichier g<> n<EFBFBD> r<EFBFBD> le " . $tabEntete [ 'dateCreation' ] . " en version " . $tabEntete [ 'numVersion' ] . " pour la p<> riode du " . $tabEntete [ 'datePeriodeDeb' ] . " au " . $tabEntete [ 'datePeriodeFin' ] . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 01 : $nbLignes01 entreprises " ;
if ( $nbLignes00 > 0 )
$message .= " / " . $tabEntete [ 'nbEntrep' ];
$message .= " ( " . $nbInsert [ 1 ] . " ajouts et " . $nbUpdate [ 1 ] . " modifs) " . EOL ;
2013-06-19 08:24:49 +00:00
$nbLignes30 = $nbInsert [ 30 ] + $nbUpdate [ 30 ];
2012-10-16 07:44:31 +00:00
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 02 : $nbLignes02 <20> tablissements actifs dont $nbLignes02p provisoires ( " . $nbInsert [ 2 ] . " ajouts et " . $nbUpdate [ 2 ] . " modifs) " . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 03 : $nbLignes03 dirigeants actifs ( " . $nbInsert [ 3 ] . " ajouts et " . $nbUpdate [ 3 ] . " modifs) " . EOL ;
2013-06-19 08:24:49 +00:00
$message .= date ( 'Y/m/d - H:i:s' ) . " - ...... dont $nbLignes30 dirigeants PM actifs ( " . $nbInsert [ 30 ] . " ajouts et " . $nbUpdate [ 30 ] . " modifs) " . EOL ;
2012-10-16 07:44:31 +00:00
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 04 : $nbLignes04 jugements ( " . $nbInsert [ 4 ] . " ajouts et " . $nbUpdate [ 4 ] . " d<> j<EFBFBD> en base) " . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 05 : $nbLignes05 actes/<2F> v<EFBFBD> nements ( " . $nbInsert [ 5 ] . " ajouts et " . $nbUpdate [ 5 ] . " d<> j<EFBFBD> en base) " . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Lignes 06 : $nbLignes06 EIRL ( " . $nbInsert [ 6 ] . " ajouts et " . $nbUpdate [ 6 ] . " d<> j<EFBFBD> en base) " . EOL ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Fin de traitement du fichier $fichier . " . EOL ;
$tabInsert = array ( 'nomFichier' => $fichier ,
'dateCreation' => @ $tabEntete [ 'dateCreation' ],
'numVersion' => @ $tabEntete [ 'numVersion' ],
'nbEntrep' => @ $tabEntete [ 'nbEntrep' ],
'nbRecords' => @ $tabEntete [ 'nbRecords' ],
'datePeriodeDeb' => @ $tabEntete [ 'datePeriodeDeb' ],
'datePeriodeFin' => @ $tabEntete [ 'datePeriodeFin' ],
'dateFlux' => $dateFlux ,
'dateDispo' => $dateDispo ,
'taille' => filesize ( $fichierAvecRep ),
'dateChargementDeb' => $dateInsert ,
'dateChargementFin' => date ( 'YmdHis' ),
'stock' => $stock ,
'nbLignesTot' => $nbLignesTot ,
'nbLignes1' => $nbLignes01 ,
'nbLignes1a' => $nbInsert [ 1 ],
'nbLignes2' => $nbLignes02 ,
'nbLignes2a' => $nbInsert [ 2 ],
'nbLignes2p' => $nbLignes02p ,
'nbLignes3' => $nbLignes03 ,
'nbLignes3a' => $nbInsert [ 3 ],
'nbLignes4' => $nbLignes04 ,
'nbLignes4a' => $nbInsert [ 4 ],
'nbLignes5' => $nbLignes05 ,
'nbLignes5a' => $nbInsert [ 5 ],
'nbLignes6' => $nbLignes06 ,
'nbLignes6a' => $nbInsert [ 6 ],
'dateInsert' => date ( 'YmdHis' ),
);
$ret = $iDb -> select ( 'rncs_dirigeants' . $env , 'count(*)' , 'actif>1' );
$nbDirNonInactif = $ret [ 0 ][ 0 ];
$message .= date ( 'Y/m/d - H:i:s' ) . " - Fermeture de $nbDirNonInactif dirigeants non transmit/en double. " . EOL ;
$ret = $iDb -> query ( " UPDATE LOW_PRIORITY IGNORE rncs_dirigeants $env SET actif=0 WHERE actif>1 " );
echo mysql_errno ();
echo mysql_error ();
2013-06-19 08:24:49 +00:00
$ret = $iDb -> query ( " DELETE LOW_PRIORITY FROM rncs_dirigeants $env WHERE actif>1 " );
2012-10-16 07:44:31 +00:00
echo mysql_errno ();
echo mysql_error ();
if ( ! $stock && count ( $tabFichLigneCmd ) == 0 ) {
if ( bzip2 ( RNCS_IMR_FTP_LOCALDIR . $fichier , RNCS_IMR_BACKUP_DIR . $fichier )) {
unlink ( RNCS_IMR_FTP_LOCALDIR . $fichier );
$message .= date ( 'Y/m/d - H:i:s' ) . " - Le fichier n<> $iFic , $fichier vient d'<27> tre historis<69> . " . EOL ;
}
}
echo $message ;
$iDb -> insert ( 'rncs_chargements' . $env , $tabInsert );
echo mysql_errno ();
echo mysql_error ();
unlink ( REP_TEMP . basename ( $fichier ) . '.lock' );
2013-06-19 08:24:49 +00:00
$doMajSirenDir = true ;
2012-10-16 07:44:31 +00:00
}
if ( $stock ) {
/**
** Fermeture des entreprises non communiqu<EFBFBD> es si stock
**/
// Supprimer ces 2 lignes quand tout sera OK pour le chargement d'un stock !
echo date ( 'Y/m/d - H:i:s' ) . " - Faire une sauvegarde des tables avant toute autre op<6F> ration ! " ;
$saisie = trim ( strtoupper ( fgets ( STDIN )));
/** Passage des <EFBFBD> tablissements encore actifs <EFBFBD> inactif pour les soci<EFBFBD> t<EFBFBD> s non transmisses dans le stock
**/
$ret = $iDb -> select ( " rncs_entrep $env e, rncs_etab $env t " , 't.id, e.siren, t.nic, t.siege' , 'e.siren=t.siren AND e.actif=1 AND t.actif=1' , false , MYSQL_ASSOC );
$nb = count ( $ret );
echo date ( 'Y/m/d - H:i:s' ) . " - Il y a $nb <20> tablissements <20> passer inactifs... " . EOL ;
foreach ( $ret as $tabEtab )
$iDb -> update ( 'rncs_etab' . $env , array ( 'actif' => 0 , 'dateFermeture' => $dateFlux ), 'id=' . $tabEtab [ 'id' ], false , 0 , true );
/** Passage <EFBFBD> inactif des soci<EFBFBD> t<EFBFBD> s non transmisses dans le stock
**/
$ret = $iDb -> select ( 'rncs_entrep' . $env , 'count(*) AS nb' , 'actif=1' , false , MYSQL_ASSOC );
$nb = $ret [ 0 ][ 'nb' ];
echo date ( 'Y/m/d - H:i:s' ) . " - Passage <20> l'<27> tat inactif des $nb entreprises non livr<76> es dans le stock... " . EOL ;
$sql = " UPDATE LOW_PRIORITY rncs_entrep $env SET actif=0, dateFer= $dateFlux WHERE actif=1; " ;
$iDb -> query ( $sql , true );
/** Confirmation <EFBFBD> actif des soci<EFBFBD> t<EFBFBD> s du stock
**/
$ret = $iDb -> select ( 'rncs_entrep' . $env , 'count(*) as nb' , 'actif=11' , false , MYSQL_ASSOC );
$nb = $ret [ 0 ][ 'nb' ];
echo date ( 'Y/m/d - H:i:s' ) . " - Confirmation <20> l'<27> tat actif des $nb entreprises charg<72> es... " . EOL ;
$sql = " rncs_entrep $env SET actif=1 WHERE actif=11; " ;
$iDb -> query ( $sql , true );
}
2013-06-19 08:24:49 +00:00
if ( $doMajSirenDir ) {
// Mise <20> jour des Administrations (BOAMP A, B ou MAPA)
echo date ( 'Y/m/d - H:i:s' ) . " - Mise <20> jour des SIREN des Dirigeants PM... " . EOL ;
$nbSirened = 0 ;
// Tableau RS>Siren
$tabRsSiren = array ();
$tmp = $iDb -> select ( 'rncs_dirigeants' , 'dirRS, adr_dep, dirSiren' , " typeDir='PM' AND dirSiren>1000 AND dirRS<>'' GROUP BY dirRS " , false , MYSQL_ASSOC );
foreach ( $tmp as $nbId => $tabTmp )
$tabRsSiren [ trim ( $tabTmp [ 'dirRS' ]) . trim ( $tabTmp [ 'adr_dep' ])] = $tabTmp [ 'dirSiren' ];
echo date ( 'Y/m/d - H:i:s' ) . " - La table RS/SIREN dirigeants PM RNCS contient $nbId lignes... " . EOL ;
$tmp = $iDb -> select ( 'rncs_dirigeants' , 'id, dirRS, adr_dep, actif, siren, raisonSociale' , " typeDir='PM' AND dirSiren<1000 AND dirRS<>'' ORDER BY dirRS, adr_dep " , false , MYSQL_ASSOC );
$nbTmp = count ( $tmp );
foreach ( $tmp as $iLot => $tabTmp ) {
$id = $tabTmp [ 'id' ];
$rs = trim ( $tabTmp [ 'dirRS' ]);
$dep = trim ( $tabTmp [ 'adr_dep' ]);
$sirenSte = $tabTmp [ 'siren' ];
$rsSte = $tabTmp [ 'raisonSociale' ];
$dirAct = $tabTmp [ 'actif' ];
if ( $dirAct ) $strAct = 'actif' ;
else $strAct = 'inactif' ;
//print_r($tabTmp);
if ( isset ( $tabRsSiren [ $rs . $dep ])) {
$siren = $tabRsSiren [ $rs . $dep ];
if ( $iDb -> update ( 'rncs_dirigeants' , array ( 'dirSiren' => $siren ), 'id=' . $id , false , 0 , true )) {
$nbSirened ++ ;
if ( $modeDebug ) echo date ( 'Y/m/d - H:i:s' ) . " - $iLot / $nbTmp : Mise <20> jour de id= $id avec $siren pour $rs ( $dep ) dirigeant $strAct de $rsSte ( $sirenSte )... " . EOL ;
$iDb -> delete ( 'bodacc_sirenage' , " idTable='rncs_dirigeants' AND idAnn= $id " , false , true );
} elseif ( mysql_errno () == 1062 ) {
//if ($modeDebug) echo date('Y/m/d - H:i:s'). " - $iLot/$nbTmp : Mise <20> jour impossible de id=$id avec $siren pour $rs dirigeant $strAct de $rsSte ($sirenSte)...".EOL;
/** @ todo V<EFBFBD> rifier pourquoi lent et doublon
$iDb -> delete ( 'bodacc_sirenage' , " idTable='rncs_dirigeants' AND idAnn= $id " , false , true );
*/
}
else
echo date ( 'Y/m/d - H:i:s' ) . " - $iLot / $nbTmp : ERREUR SQL " . mysql_errno () . " - " . mysql_error () . EOL ;
}
}
if ( @ $nbInsert [ 3 ] > 0 && @ $nbUpdate [ 3 ] > 0 ) $strInfo = " sur " . $nbInsert [ 3 ] . " ajouts et " . $nbUpdate [ 3 ] . " modifs. " ;
else $strInfo = " " ;
echo date ( 'Y/m/d - H:i:s' ) . " - Mise <20> jour de $nbSirened SIREN de dirigeants RNCS " . $strInfo . EOL ;
if ( ! isset ( $message )) $message = '' ;
$message .= date ( 'Y/m/d - H:i:s' ) . " - Mise <20> jour de $nbSirened SIREN de dirigeants RNCS " . $strInfo . EOL ;
if ( ! $modeDebug ) {
sendMail ( 'production@scores-decisions.com' , 'ylenaour@scores-decisions.com' , 'Chargement INPI IMR' , $message );
die ();
}
}
sendMail ( 'production@scores-decisions.com' , 'support@scores-decisions.com' , 'Chargement INPI IMR' , $message );
2012-10-16 07:44:31 +00:00
echo date ( 'Y/m/d - H:i:s' ) . " - Fin du traitement de chargement des flux RNCS IMR de l'INPI. " . EOL ;
die ();
function getAdresse ( $adr1 , $adr2 = '' , $adr3 = '' ) {
global $iInsee ;
$adrComp = '' ;
$tabAdr = array ();
if ( trim ( $adr1 ) <> '' )
$tabAdr =@ $iInsee -> structureVoie ( $adr1 );
if ( count ( $tabAdr ) < 2 ) {
if ( trim ( $adr1 ) <> '' ) $adrComp = trim ( $adr1 );
if ( trim ( $adr2 ) <> '' ) $tabAdr =@ $iInsee -> structureVoie ( $adr2 );
if ( count ( $tabAdr ) < 2 ) {
if ( trim ( $adr2 ) <> '' ) $adrComp = trim ( $adrComp . ' ' . $adr2 );
if ( trim ( $adr3 ) <> '' ) $tabAdr =@ $iInsee -> structureVoie ( $adr3 );
}
}
if ( @ $tabAdr [ 'libVoie' ] == '' ) {
if ( trim ( $adr1 ) <> '' ) $tabAdr [ 'libVoie' ] = $adr1 ;
elseif ( trim ( $adr2 ) <> '' ) $tabAdr [ 'libVoie' ] = $adr2 ;
elseif ( trim ( $adr3 ) <> '' ) $tabAdr [ 'libVoie' ] = $adr3 ;
}
if ( preg_match ( '/(^bis | bis | b |^b )/Ui' , @ $tabAdr [ 'libVoie' ]))
$tabAdr [ 'indRep' ] = 'B' ;
elseif ( preg_match ( '/(^ter | ter | t |^t )/Ui' , @ $tabAdr [ 'libVoie' ]))
$tabAdr [ 'indRep' ] = 'T' ;
if ( strtoupper ( @ $tabAdr [ 'libVoie' ]) <> $adrComp )
$tabAdr [ 'adrComp0' ] = $adrComp ;
return $tabAdr ;
}
function getInfosLieuNaiss ( $strNaiss ) {
/**
* @ todo
* 1. Supprimer les caract<EFBFBD> res non Alphanum<EFBFBD> rique et les espaces doubles
* 2. Rechercher les num<EFBFBD> ros de d<EFBFBD> partements 2 ou 3 chiffres ou 2 A 2 B ( Attention Arrond Paris MArseille Lyon )
* 3. Rechercher Pays y compris France
* 4. Isoler la ville => trouver code Insee
*/
}
?>