1162 lines
55 KiB
PHP
1162 lines
55 KiB
PHP
#!/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 :
|
||
-v Mode debug (Verbosité au maximum)
|
||
-l:XXXX Reprendre à partir de la ligne XXXX
|
||
-s Fichier stock de tous les établissements actifs (préciser le jour de l'extraction avec -f)
|
||
-f:AAAAMMJJ Forcer la dateFlux de ce chargement
|
||
-r Ne pas exécuter en réel
|
||
-j Ne pas se connecter au serveur FTP d'Extelia (INPI/IMR via Infogreffe)
|
||
-m Mettre à jour les siren des dirigeants PM
|
||
";/*
|
||
-p Chargement d'une ancienne notice (pas de modification de la zone ACTIF chargement des zones différentes)
|
||
-u Ne pas mettre à jour la table identite de l'insee
|
||
-h Ne pas charger la notice dans la base des 'historiques'
|
||
";*/
|
||
$iDb=new WDB();
|
||
global $iInsee;
|
||
$iInsee=new MInsee();
|
||
$iRncs=new MRncs();
|
||
//$iWs=new WsEntreprise();
|
||
|
||
$nbSiretInvalides=0;
|
||
$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'é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 à jour les siren des dirigeants
|
||
|
||
$tabFichiers=array(); // Tableau des Fichiers téléchargés sur le FTP
|
||
$tabFichier=array(); // Fichiers locaux en attente de traitement
|
||
$tabFichLigneCmd=array(); // Fichiers passés en ligne de commande
|
||
|
||
$ftpDelete=true; // Par défaut on supprime les fichiers téléchargé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)) {
|
||
case 'v': $modeDebug=true; break;
|
||
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;
|
||
case 'm': $doMajSirenDir=true; break;
|
||
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é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 été modifié le ".date("d/m/Y à 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é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échargé avec succès : $tailleDistKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
|
||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier distant $server_fileName téléchargé avec succè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é avec succès.".EOL;
|
||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier distant $server_fileName supprimé avec succès.".EOL;
|
||
}
|
||
} else
|
||
die (date ('Y/m/d - H:i:s')." - ERREUR : Fichier distant $server_file non téléchargé !".EOL);
|
||
} elseif ($modeDebug)
|
||
echo date ('Y/m/d - H:i:s') ." - Le fichier $server_fileName a déjà été téléchargé 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é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é : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressés)".EOL;
|
||
$strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier $filename décompressé : $tailleUnz Ko en $tDur sec. ($tailleGz Ko compressé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;
|
||
|
||
if (count($tabFichier)==0 && count($tabFichLigneCmd)==0 && !$doMajSirenDir)
|
||
die(date ('Y/m/d - H:i:s') . " - Aucun fichier RNCS IMR de l'INPI à 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éé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éé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à été chargé **/
|
||
$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à été chargé 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;
|
||
|
||
if ($jourStock>0/* && $stock==0*/) $dateFlux=$jourStock;
|
||
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;
|
||
$nb[30]=$nbInsert[30]=$nbUpdate[30]=0;
|
||
$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 à 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 à 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é 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é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écé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 é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ôle (1 par fichier)
|
||
$nbLignes00++;
|
||
$tabEntete['dateCreation'] = trim( substr($a, 0, 8)); // Date cré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ées pour géné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 à Actif/Inactif des établissements précé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 établissements du siren $sirenPre non transmis ont été passés à inactifs (".(@$nbEtab[10]*1)." déjà inactifs et ".(@$nbEtab[11]*1)." actifs).".EOL;
|
||
print_r($nbEtab);
|
||
}
|
||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun établissement pour le siren $sirenPre en base précédement !".EOL;
|
||
/** Passage à 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) {
|
||
echo date ('Y/m/d - H:i:s') . " - Les dirigeants du siren $sirenPre non transmis ont été passés à inactifs (".(@$nbEtab[10]*1)." déjà inactifs et ".(@$nbEtab[11]*1)." actifs).".EOL;
|
||
print_r($nbEtab);
|
||
}
|
||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun dirigeants pour le siren $sirenPre en base précé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 été passés à inactifs (".(@$nbEtab[10]*1)." déjà inactifs et ".(@$nbEtab[11]*1)." actifs).".EOL;
|
||
print_r($nbEtab);
|
||
}
|
||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun jugements pour le siren $sirenPre en base précé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 à 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(?:é|e|è)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éro de gestion (code greffe)
|
||
'triCode' => $iRncs->getCodeBodaccTribunal($numGreffe), // Numéro de gestion (code greffe)
|
||
'triId' => $iRncs->getIdTribunal($numGreffe), // Numéro de gestion (code greffe)
|
||
'numRC' => $numRC, // Ancien numéro de gestion (numéro RC, année sur 2)
|
||
'numRC2' => $numRC2, // Nouveau numéro de gestion (numéro RC, anné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é
|
||
'pays'=>$iRncs->getPaysInpi(trim( substr($a, 190, 3))*1), // Code nationalité
|
||
'naf' => trim( substr($a, 536, 5)), // Code APE de l'entreprise
|
||
'cj' => $cj, // Code catégorie juridique
|
||
'capitalMontant'=>trim(substr($a, 551, 15))*1, // Capital (en unité)
|
||
'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ées provisoires P ou blanc = ‘P’ si donné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));
|
||
}
|
||
} elseif ($stock) {
|
||
echo date('Y/m/d - H:i:s'). " - Fichier n°$iFic, $fichier : $nbLignes lignes, $siren inconnu, $numGreffe $numRC2 pré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ésent dans le stock IMR ($raisonSociale $nom $prenom) !".EOL;
|
||
}
|
||
|
||
/** Ce siren fait parti des demandes de réémission de dossier IMR faites par S&D **/
|
||
if (isset($tabDemIMR[$siren]) && !$stock) {
|
||
$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éémis sur $siren le ".$tabDemIMR[$siren]." reçu dans le flux IMR du $dateFlux.".EOL;
|
||
$message.=date ('Y/m/d - H:i:s') . " - Dossier réémis sur $siren le ".$tabDemIMR[$siren]." reç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 établissements à 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 établissements du siren $siren sont OK pour la mise à 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è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é 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ément d'adresse Alpha.
|
||
'naf' => trim( substr($a, 572, 5)), // APE de l'é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 établissement siè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 à 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é 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é '$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é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é 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é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]++;
|
||
if ($typeDir=='PM') $nbInsert[30]++;
|
||
//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]++;
|
||
if ($typeDir=='PM') $nbUpdate[30]++;
|
||
//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 à 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 à 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é 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é 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é 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ôt
|
||
'codeEven' => trim( substr($a, 35, 10)), // Code évè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ée pour l'exercice de l'activité professionnelle à laquelle le patrimoine est affecté
|
||
'activite' => trim( substr($a, 211, 400)), // Objet de l'activité professionnelle à laquelle le patrimoine est affecté
|
||
'adrNumVoie'=> @$tabAdresse['num'], // N° dans la voie Num.
|
||
'adrIndRep' => @$tabAdresse['indRep'], // Il s'agit de l'adresse de l'établissement où est exercée l'activité professionnelle à laquelle le patrimoine est affecté
|
||
'adrTypeVoie'=> @$tabAdresse['typeVoie'], // BTQ Alpha.
|
||
'adrVoie' => strtoupper(@$tabAdresse['libVoie']),// Type et libellé 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é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 é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 à Actif/Inactif des établissements précé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 établissements du siren $sirenPre non transmis ont été passés à inactifs (".$nbEtab[10]." déjà inactifs et ".$nbEtab[11]." actifs).".EOL;
|
||
print_r($nbEtab);
|
||
}
|
||
} elseif ($modeDebug) echo date ('Y/m/d - H:i:s') . " - Aucun établissement pour le siren $sirenPre en base précédement !".EOL;
|
||
|
||
/** Passage à Actif/Inactif des dirigeants précé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 été passés à inactifs (".$nbEtab[10]." déjà 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écé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 été passés à inactifs (".$nbEtab[10]." déjà 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écé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éré 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;
|
||
|
||
$nbLignes30=$nbInsert[30]+$nbUpdate[30];
|
||
|
||
$message.=date('Y/m/d - H:i:s'). " - Lignes 02 : $nbLignes02 é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;
|
||
$message.=date('Y/m/d - H:i:s'). " - ...... dont $nbLignes30 dirigeants PM actifs (".$nbInsert[30]." ajouts et ".$nbUpdate[30]." modifs)".EOL;
|
||
$message.=date('Y/m/d - H:i:s'). " - Lignes 04 : $nbLignes04 jugements (".$nbInsert[4]." ajouts et ".$nbUpdate[4]." déjà en base)".EOL;
|
||
$message.=date('Y/m/d - H:i:s'). " - Lignes 05 : $nbLignes05 actes/évènements (".$nbInsert[5]." ajouts et ".$nbUpdate[5]." déjà en base)".EOL;
|
||
$message.=date('Y/m/d - H:i:s'). " - Lignes 06 : $nbLignes06 EIRL (".$nbInsert[6]." ajouts et ".$nbUpdate[6]." déjà 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();
|
||
$ret=$iDb->query("DELETE LOW_PRIORITY FROM rncs_dirigeants$env WHERE actif>1");
|
||
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'être historisé.".EOL;
|
||
}
|
||
}
|
||
echo $message;
|
||
|
||
$iDb->insert('rncs_chargements'.$env, $tabInsert);
|
||
echo mysql_errno();
|
||
echo mysql_error();
|
||
|
||
unlink(REP_TEMP.basename($fichier).'.lock');
|
||
|
||
$doMajSirenDir=true;
|
||
}
|
||
|
||
if ($stock) {
|
||
|
||
/**
|
||
** Fermeture des entreprises non communiqué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ération !";
|
||
$saisie = trim(strtoupper(fgets(STDIN)));
|
||
|
||
/** Passage des établissements encore actifs à inactif pour les société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 établissements à passer inactifs...".EOL;
|
||
foreach ($ret as $tabEtab)
|
||
$iDb->update('rncs_etab'.$env, array('actif'=>0, 'dateFermeture'=>$dateFlux), 'id='.$tabEtab['id'], false, 0, true);
|
||
|
||
/** Passage à inactif des société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 à l'état inactif des $nb entreprises non livré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 à actif des société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 à l'état actif des $nb entreprises chargées...".EOL;
|
||
$sql=" rncs_entrep$env SET actif=1 WHERE actif=11;";
|
||
$iDb->query($sql, true);
|
||
}
|
||
|
||
if ($doMajSirenDir) {
|
||
|
||
// Mise à jour des Administrations (BOAMP A, B ou MAPA)
|
||
echo date ('Y/m/d - H:i:s')." - Mise à 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 à 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 à jour impossible de id=$id avec $siren pour $rs dirigeant $strAct de $rsSte ($sirenSte)...".EOL;
|
||
/** @todo Vé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 à jour de $nbSirened SIREN de dirigeants RNCS".$strInfo.EOL;
|
||
if (!isset($message)) $message='';
|
||
$message.=date('Y/m/d - H:i:s') ." - Mise à 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);
|
||
|
||
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ères non Alphanumérique et les espaces doubles
|
||
* 2. Rechercher les numéros de départements 2 ou 3 chiffres ou 2A 2B (Attention Arrond Paris MArseille Lyon)
|
||
* 3. Rechercher Pays y compris France
|
||
* 4. Isoler la ville => trouver code Insee
|
||
*/
|
||
}
|
||
|
||
?>
|