758 lines
40 KiB
PHP
758 lines
40 KiB
PHP
#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
|
|
<?php
|
|
|
|
define('PRIVILEGES_FTP_HOST', '194.5.119.252');
|
|
define('PRIVILEGES_FTP_LOGIN', 'score');
|
|
define('PRIVILEGES_FTP_PASS', '1eUauTJZ');
|
|
define('PRIVILEGES_FTP_DIR_GET', '/var/home_ftp/score/Send/');
|
|
define('PRIVILEGES_FTP_DIR_PUT', '/var/home_ftp/score/Receive/');
|
|
|
|
define('PRIVILEGES_FTP_LOCALDIR', '/home/data/infogreffe/');
|
|
define('PRIVILEGES_BACKUP_DIR', '/home/data/infogreffe/histo/');
|
|
|
|
$ftpDelete=true; // Par défaut on supprime les fichiers téléchargés
|
|
|
|
$tabRejets=array(
|
|
'_00'=>"Surveillance RCS posée/Demande de suppression acceptée/Surveillance PRIV posée : pas d'inscription existante sur le dossier",
|
|
'_01'=>"Surveillance PRIV posée : inscription existante sur le dossier",
|
|
'_02'=>"GAGI,GREFTEL,INTERGREFFE-code 1-surveillance acceptée mais qui n'a pas encore fait l'objet d'un AR",
|
|
'_03'=>"GAGI,GREFTEL,INTERGREFFE-code 2 - surveillance acceptée avec CREATION d'une fiche débiteur, qui n'a pas fait l'objet d'un AR",
|
|
'_04'=>"GAGI-surveillance en attente envoyée au GAGI",
|
|
'_05'=>"Surveillance en attente de validation au greffe",
|
|
'_06'=>"Erreur de chargement",
|
|
'_10'=>"Surveillance impossible car société radiée",
|
|
'_11'=>"Surveillance impossible car société transférée dans un autre greffe",
|
|
'_12'=>"SIREN inconnu",
|
|
'_13'=>"Raison sociale erronée",
|
|
'_14'=>"Adresse erronée",
|
|
'_15'=>"Surveillance impossible sur un établissement secondaire",
|
|
'_16'=>"Demande incomplète ou incorrecte",
|
|
'_17'=>"Surveillance Privilège impossible",
|
|
'_18'=>"Surveillance impossible par le greffe",
|
|
'_19'=>"Surveillance RCS impossible",
|
|
'_20'=>"Cette surveillance concerne un autre Greffe",
|
|
'_21'=>"Surveillance BILAN impossible car la ste n'est pas tenue de déposer ses Comptes Annuels (ste de droit étranger)",
|
|
'_22'=>"Plusieurs Bottins (débiteurs) (GAGI)",
|
|
'_23'=>"Société de fait (GAGI) : Société non enregistrée au Registre du Commerce",
|
|
'_24'=>"Surveillance impossible car société en liquidation judiciaire",
|
|
'_25'=>"Greffe inconnu",
|
|
'_26'=>"Millésime bilan à surveiller incorrect",
|
|
'_27'=>"Références EXTELIA erronées ou incomplètes (ces reférences sont obligatoires en cas de demande de suppression)",
|
|
'_28'=>"Surveillance impossible sur un dossier non informatisé (dossier dit non repris ou figé)",
|
|
'_30'=>"Siren absent (ne concerne que les surveillances de type WebService)",
|
|
'_31'=>"Surveillance BILAN impossible sur une société non commerciale (statut <> B)",
|
|
'_50'=>"Ce greffe ne traite pas les surveillances car le groupement de ce greffe n'est pas surveillé",
|
|
'_51'=>"Etablissement non trouvé",
|
|
'_52'=>"Code catalogue de la surveillance non renseigné ou incorrect",
|
|
'_53'=>"le siren est déjà sous surveillance",
|
|
'_54'=>"DOSSIER AGORA : votre prestation ne comprend pas la couverture de ce groupement",
|
|
'_55'=>"DOSSIER INTERGREFFE : votre prestation ne comprend pas la couverture de ce groupement de greffes",
|
|
'_56'=>"Le siren est déjà en attente de validation par le greffe",
|
|
'_57'=>"Surveillance impossible sur un dossier dit non inscrit au RCS (statut F:artisan)",
|
|
'_58'=>"Surveillance impossible sur un agent commercial (statut P ou M)",
|
|
'_59'=>"Surveillance impossible sur une entreprise non inscrite au RCS mais seulement à l'INSEE(URSSAF, Chambre d'Agriculture ou Chambre des Métiers)",
|
|
'_88'=>"Rejet temporaire : surveillance sur un greffe absorbé rejetée pendant la phase de rechargement",
|
|
'_99'=>"Surveillance impossible pour raisons à examiner",
|
|
'_R'=>"Radiation RCS",
|
|
'_L'=>"Liquidation Judiciaire",
|
|
'_T'=>"Transfert dans un autre greffe",
|
|
);
|
|
|
|
function exporte($txt, $lon, $sep='') {
|
|
$txt=strtr(trim($txt),array('''=>"'",'&'=>'&', '²'=>'²', "\r"=>'', "\n"=>'', "\t"=>''));
|
|
|
|
if ($sep=='') return sprintf("%-".$lon.'.'.$lon."s", $txt);
|
|
|
|
return trim(sprintf("%-".$lon.'.'.$lon."s", $txt)).$sep;
|
|
}
|
|
include_once(FWK_PATH.'common/chiffres.php');
|
|
include_once(FWK_PATH.'common/dates.php');
|
|
include_once(FWK_PATH.'common/ftp.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMGreffes.php');
|
|
include_once(INCLUDE_PATH.'insee/classMInsee.php');
|
|
include_once(INCLUDE_PATH.'bodacc/classMBodacc.php');
|
|
include_once(FWK_PATH.'mail/sendMail.php');
|
|
include_once(INCLUDE_PATH.'partenaires/classMRncs.php');
|
|
|
|
define('CSF_FTP_DIR', '/home/data/ftp/creditsafe/send/');
|
|
define('CSF_BACKUP_DIR', '/home/data/jal/creditsafe/');
|
|
|
|
$strInfoScript='Usage : '.basename($argv[0]). " <option> [FICHIER1] ...
|
|
Gestion de la surveillance Privilèges avec Infogreffe
|
|
|
|
Options :
|
|
-f Ne pas générer le fichier de demandes de surveillance Privilèges (DE)
|
|
-c Compter uniquement le nombre de demandes de surveillance Privilèges (DE) à traiter
|
|
-d Mode debug (Verbosité au maximum)
|
|
";
|
|
// -i Forcer les questions Interactives
|
|
// -t Charger en test (implique -j -d -i)
|
|
|
|
$iDb=new WDB('jo');
|
|
$iDb2=new WDB('jo');
|
|
$iInsee=new MInsee();
|
|
$iBodacc=new MBodacc();
|
|
$iRncs=new MRncs();
|
|
|
|
$nbSiretValides=$nbSiretInvalides=$nbInsert=$nbUpdate=0;
|
|
$modeDebug=false; // Mode débug
|
|
$questions=false; // Questions interactives autorisées
|
|
$genereDE=true; // Génére le fichier des demandes/suppressions de surveillance PRIVILEGES
|
|
$compteDE=false; // Compter le nb de nvelles DE et stopper !
|
|
$tabFichier=$tabFichLigneCmd=array();
|
|
|
|
$strMailInfo=''; // Initialisation du mail d'exécution du traitement
|
|
|
|
$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 'd': $modeDebug=true; break;
|
|
case 'i': $questions=true; break;
|
|
case 'f': $genereDE=false; break;
|
|
case 'c': $compteDE=true; break;
|
|
case 't': $table='annonces2';
|
|
$modeDebug=$questions=true;
|
|
$loadInpiLocal=false;
|
|
break;
|
|
case '-':
|
|
case '?': die($strInfoScript); break;
|
|
default: die('Option '. $argv[$i] . " inconnue !\n");
|
|
}
|
|
} else $tabFichLigneCmd[]=$argv[$i];
|
|
}
|
|
|
|
echo date('Y/m/d - H:i:s'). " - Début du programme de gestion des flux Privilèges...".EOL;
|
|
|
|
/** Lecture de la table surveillance_site et maj de la table greffe_surv_stock
|
|
**/
|
|
if ($genereDE || $compteDE) {
|
|
if ($modeDebug) echo date ('Y/m/d - H:i:s') . "SQL=\nSELECT DISTINCT (siren) AS siren\nFROM surveillances_site\nWHERE source='privileges' AND siren>100 AND siren NOT IN (SELECT siren FROM greffes_priv_stock);".EOL;
|
|
|
|
$resPriv=$iDb->query("SELECT DISTINCT (siren) AS siren, 0 AS retry, '' AS steNom, '' AS steVoieNum, '' AS steVoieType, '' AS steVoieLib, '' AS steVoieComp1, '' AS steVoieComp2, '' AS steCP, '' AS steVille, '' AS dateInsert FROM surveillances_site
|
|
WHERE source='privileges' AND siren>100 AND siren NOT IN (SELECT siren FROM greffes_priv_stock)
|
|
UNION
|
|
/* 2ème essai en cas de 1er retour négatif */
|
|
SELECT siren, retry, steNom, steVoieNum, steVoieType, steVoieLib, steVoieComp1, steVoieComp2, steCP, steVille, dateInsert
|
|
FROM greffes_priv_stock WHERE retry=1
|
|
UNION
|
|
/* Reconduction annuelle si encore en surveillance privilèges par le client */
|
|
SELECT siren, 100 AS retry, steNom, steVoieNum, steVoieType, steVoieLib, steVoieComp1, steVoieComp2, steCP, steVille, dateInsert
|
|
FROM greffes_priv_stock WHERE greDateSurvFin<DATE(NOW()) AND greDateSurvFin<>0 AND siren IN(SELECT siren FROM surveillances_site WHERE source='privileges' AND siren>100);",
|
|
false, MYSQL_ASSOC, true);
|
|
$nbPriv=mysql_num_rows($resPriv);
|
|
echo date ('Y/m/d - H:i:s') . " - Il y a $nbPriv nouveau siren à mettre en surveillance privilèges Infogreffe...".EOL;
|
|
if ($compteDE) die();
|
|
|
|
$timeStamp=date('YmdHis');
|
|
$nomFicDem=$timeStamp.'IPRDESCO';
|
|
|
|
$fp=fopen(PRIVILEGES_FTP_LOCALDIR.$nomFicDem, 'a');
|
|
$nbLignes=0;
|
|
while ($tabSiren=$iDb->fetch(MYSQL_ASSOC)) {
|
|
//print_r($tabSiren);
|
|
$siren=$tabSiren['siren'];
|
|
if ($tabSiren['retry']==1) { // Réenvoi après rejet
|
|
$tabInsert=$tabSiren;
|
|
$tabInsert['retry']=0;
|
|
} elseif($tabSiren['retry']==100) { // Reconduction annuelle
|
|
$tabInsert=$tabSiren;
|
|
$tabInsert['retry']=0;
|
|
$tabInsert['greDateSurvFin']=0;
|
|
} else {
|
|
$tabIdRncs =@$iRncs->getIdentiteEtab($siren);
|
|
$tabInsert=array( 'siren'=>$siren,
|
|
'steNom'=>@$tabIdRncs['raisonSociale'],
|
|
'steVoieNum'=>@trim($tabIdRncs['adrNumVoie'].' '.$tabIdRncs['adrIndRep']),
|
|
'steVoieType'=>@$tabIdRncs['adrTypeVoie'],
|
|
'steVoieLib'=>@$tabIdRncs['adrVoie'],
|
|
'steVoieComp1'=>@$tabIdRncs['adrComp'],
|
|
'steVoieComp2'=>'',
|
|
'steCP'=>@$tabIdRncs['cp'],
|
|
'steVille'=>@$tabIdRncs['commune'],
|
|
'dateInsert'=>$timeStamp,
|
|
);
|
|
if (trim($tabInsert['steNom'])=='') {
|
|
/** Entreprise absente au RCS (période RNCS Coface ORT) **/
|
|
$tabIdInsee=@$iInsee->getIdentiteLight($siren);
|
|
$tabInsert['steNom'] = @$tabIdInsee['Nom'];
|
|
}
|
|
|
|
if (trim($tabInsert['steVille'])=='') {
|
|
/** Etablissement absent au RCS (période RNCS Coface ORT) **/
|
|
$tabIdInsee=@$iInsee->getIdentiteLight($siren);
|
|
$tabInsert['steVoieNum'] = @trim($tabIdInsee['AdresseNum'].' '.$tabIdInsee['AdresseBtq']);
|
|
$tabInsert['steVoieType']= @$tabIdInsee['AdresseVoie'];
|
|
$tabInsert['steVoieLib'] = @$tabIdInsee['AdresseRue'];
|
|
$tabInsert['steVoieComp1']=@$tabIdInsee['Adresse2'];
|
|
$tabInsert['steVoieComp2']='';
|
|
$tabInsert['steCP'] = @$tabIdInsee['CP'];
|
|
$tabInsert['steVille'] = @$tabIdInsee['Ville'];
|
|
}
|
|
}
|
|
if (!$iDb2->insert('greffes_priv_stock', $tabInsert)) {
|
|
if ($iDb2->getLastErrorNum()==1062 && $tabSiren['retry']>=1)
|
|
$iDb2->update('greffes_priv_stock', $tabInsert, "siren=$siren");
|
|
else {
|
|
print_r($tabInsert);
|
|
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors d'insertion du siren $siren...".EOL;
|
|
}
|
|
}
|
|
|
|
$strOutput='';
|
|
$strOutput.=exporte('07100001', 8); // N° Abonné = 07100001
|
|
$strOutput.=exporte('C', 1); // C/S Création ou Suppression de surveillance
|
|
$strOutput.=exporte($tabInsert['dateInsert'], 8); // Date de la demande
|
|
$strOutput.=exporte('', 50); // Réf Intene S&D
|
|
$strOutput.=exporte('', 2); // Type Réponse Extelia
|
|
$strOutput.=exporte('', 8); // Date Réponse Extelia
|
|
$strOutput.=exporte('', 4); // N° du greffe
|
|
$strOutput.=exporte($tabInsert['siren'], 9);
|
|
$strOutput.=exporte('', 10); // N° de gestion RCS
|
|
$strOutput.=exporte($tabInsert['steNom'], 160); // Dénomination
|
|
$strOutput.=exporte('', 8); // N° de débiteur
|
|
$strOutput.=exporte($tabInsert['steVoieNum'], 10); // Adresse : Numéro de voie
|
|
$strOutput.=exporte($tabInsert['steVoieType'], 4); // Adresse : Type de voie
|
|
$strOutput.=exporte($tabInsert['steVoieLib'], 20); // Adresse : Libellé de la voie
|
|
$strOutput.=exporte($tabInsert['steVoieComp1'], 32);// Adresse : Complément 1
|
|
$strOutput.=exporte($tabInsert['steVoieComp2'], 32);// Adresse : Complément 2
|
|
$strOutput.=exporte($tabInsert['steCP'], 5); // Adresse : Code Postal
|
|
$strOutput.=exporte('', 1); // Filler
|
|
$strOutput.=exporte($tabInsert['steVille'], 30); // Adresse : Ville
|
|
$strOutput.=exporte('', 4); // Millésime Bilan
|
|
$strOutput.=exporte('', 4); // Filler
|
|
$strOutput.=exporte('71', 10); // Code Catalogue = 71
|
|
$strOutput.=exporte('', 4); // Filler
|
|
$strOutput.=exporte('', 8); // Flux retour : Date de l'AR
|
|
$strOutput.=exporte('', 3); // Flux retour : Code AR ou rejet
|
|
$strOutput.=exporte('00000000', 8); // Si Suppression : Référence du lot
|
|
$strOutput.=exporte('0000000000', 10); // Si Suppression : Référence détail suppr.
|
|
$strOutput.=exporte('', 8); // Flux retour : Date de début de Surveillance
|
|
$strOutput.=exporte('', 8); // Flux retour : Date de Fin de Surveillance
|
|
$strOutput.=exporte('', 11); // Filler
|
|
echo $strOutput.EOL;
|
|
|
|
if ($modeDebug && $nbLignes==0)
|
|
echo date ('Y/m/d - H:i:s') . " - Le fichier '$nomFicDem' fait ".strlen($strOutput)." caractères.".EOL;
|
|
|
|
fwrite($fp, $strOutput.EOL);
|
|
$nbLignes++;
|
|
}
|
|
fclose($fp);
|
|
|
|
if ($nbLignes==0) {
|
|
unlink(PRIVILEGES_FTP_LOCALDIR.$nomFicDem);
|
|
echo date ('Y/m/d - H:i:s') . " - Pas de flux de demandes de surveillance Privilèges pour Infogreffe.".EOL;
|
|
} else
|
|
echo date ('Y/m/d - H:i:s') . " - Fin de la génération des demandes pour Infogreffe : $nbLignes lignes traitées.".EOL;
|
|
}
|
|
|
|
$conn_id = ftp_connect(PRIVILEGES_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, PRIVILEGES_FTP_LOGIN, PRIVILEGES_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, PRIVILEGES_FTP_DIR_GET);
|
|
//print_r($contents);
|
|
//die('ici');
|
|
|
|
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('/IPRDESCO|IPSARSCO|IPSRESCO/i', $server_fileName)) {
|
|
if ($modeDebug) echo date('Y/m/d - H:i:s'). " - Le fichier distant '$server_fileName' n'est pas un flux PRIVILEGES.".EOL;
|
|
continue;
|
|
} elseif ($modeDebug)
|
|
echo date('Y/m/d - H:i:s'). " - Le fichier distant '$server_fileName' est un flux PRIVILEGES...".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(PRIVILEGES_FTP_LOCALDIR . $server_fileName)) {
|
|
$dateLoc=filemtime(PRIVILEGES_FTP_LOCALDIR . $server_fileName);
|
|
$tabFichiers[$server_fileName]['dateDownload']=date('Y-m-d H:i:s', $dateLoc);
|
|
$tailleLoc=filesize(PRIVILEGES_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, PRIVILEGES_FTP_LOCALDIR . basename($server_file), $server_file, FTP_BINARY)) {
|
|
$tFin = microtime(true);
|
|
$tDur = round($tFin-$tDeb,3);
|
|
$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;
|
|
}
|
|
}
|
|
|
|
if (@$nbLignes>0) {
|
|
/** Dépot du fichier des demandes **/
|
|
$tailleLoc=filesize(PRIVILEGES_FTP_LOCALDIR.$nomFicDem);
|
|
$tDeb = microtime(true);
|
|
if (ftp_put($conn_id, PRIVILEGES_FTP_DIR_PUT.$nomFicDem, PRIVILEGES_FTP_LOCALDIR.$nomFicDem, FTP_ASCII)) {
|
|
$tFin = microtime(true);
|
|
$tDur = round($tFin-$tDeb);
|
|
$tailleLocKo=round($tailleLoc/1024,1);
|
|
$tRatio=@round($tailleLocKo/$tDur,1);
|
|
echo date ('Y/m/d - H:i:s')." - Fichier '$nomFicDem' déposé avec succès : $tailleLocKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
|
|
$strMailInfo.=date ('Y/m/d - H:i:s')." - Fichier '$nomFicDem' déposé avec succès : $tailleLocKo Ko en $tDur sec. ($tRatio Ko/s)".EOL;
|
|
} else {
|
|
die (date ('Y/m/d - H:i:s')." - ERREUR : Fichier local '$nomFicDem' non déposé !".EOL);
|
|
}
|
|
}
|
|
|
|
// Fermeture de la connexion
|
|
ftp_close($conn_id);
|
|
echo date ('Y/m/d - H:i:s')." - Fin du transfert des fichiers Privilèges en FTP.".EOL;
|
|
|
|
|
|
if (count($tabFichLigneCmd)==0) {
|
|
$dh = opendir(PRIVILEGES_FTP_LOCALDIR);
|
|
while (false !== ($filename = readdir($dh))) {
|
|
$idF=substr($filename, 14, 8);
|
|
if ($filename<>'.' && $filename<>'..' &&
|
|
($idF=='IPSARSCO' || // Fichier des Accusés de Réception des demandes de surveillance
|
|
$idF=='IPSRESCO' || // Fichier des Révélations
|
|
$idF=='IPSPOSCO') ) // Fichier "Portefeuille"
|
|
$tabFichier[] = PRIVILEGES_FTP_LOCALDIR.$filename;
|
|
}
|
|
sort($tabFichier);
|
|
} else $tabFichier=$tabFichLigneCmd;
|
|
|
|
//print_r($tabFichier);
|
|
|
|
foreach ($tabFichier as $iFic=>$fichier)
|
|
{
|
|
$fichierAvecRep=$fichier;
|
|
$fichier=basename($fichier);
|
|
$idF=substr($fichier, 14, 8);
|
|
|
|
echo date('Y/m/d - H:i:s'). " - Début du traitement du fichier $fichier (IDF='$idF')...".EOL;
|
|
$dateDispo=date('YmdHis', filemtime($fichierAvecRep));
|
|
/*
|
|
$dateFichierMod=substr(''.$dateDispo,0,8)*1;
|
|
$dateFichierNom=substr($fichier,0,8)*1;
|
|
*/
|
|
$fp=fopen($fichierAvecRep, 'r');
|
|
if ($fp && $idF=='IPSRESCO') {
|
|
$nbLignes=$nbLignes00=$nbLignes01=$nbLignes99=0;
|
|
$tabEntete=$tabFin=array();
|
|
/*
|
|
for($i=0; $i<6; $i++) $nbUpdate[$i]=$nbInsert[$i]=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, 5096);
|
|
if ($nbLignesTot==0 && strlen($a)<500) {
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier $idF à charger $fichier n'est pas au format attendu !".EOL;
|
|
die();
|
|
}
|
|
$nbLignesTot++;
|
|
}
|
|
$nbLignesUtil=$nbLignesTot-3;
|
|
$tabTmp=$iDb->select('greffes_privileges', 'count(*) as nb, max(dateInsert) as dateChargement', "idFichier='$fichier'", false, MYSQL_ASSOC);
|
|
if (@$tabTmp[0]['nb']*1>0) {
|
|
$nbLignesCharges=$tabTmp[0]['nb'];
|
|
$dateChargement=$tabTmp[0]['dateChargement'];
|
|
if ($nbLignesCharges==$nbLignesUtil) {
|
|
echo date('Y/m/d - H:i:s'). " - Le fichier $fichier a déjà été chargé le $dateChargement ($nbLignesCharges/$nbLignesUtil lignes)...".EOL;
|
|
fclose($fp);
|
|
continue;
|
|
} else {
|
|
echo date('Y/m/d - H:i:s'). " - Attention : Le fichier $fichier a déjà été partiellement chargé le $dateChargement ($nbLignesCharges/$nbLignesUtil lignes)...".EOL;
|
|
echo date('Y/m/d - H:i:s'). " - Arrêt du traitement.".EOL;
|
|
die();
|
|
}
|
|
} else
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
*/
|
|
$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, 5096);
|
|
$sirenPre=0; // Valeur du Siren précédent
|
|
$siren=0;
|
|
$modifDir=$modifJug=false;
|
|
$table='';
|
|
|
|
while (!feof($fp)) {
|
|
$nbLignes++;
|
|
$codeEnr = ''.trim( substr($a, 0, 2));
|
|
switch ($codeEnr) {
|
|
case '00': // Structure de contrôle entête(1 par fichier)
|
|
$nbLignes00++;
|
|
$tabEntete['dateCreation'] = trim( substr($a, 2, 8)); // Date création fichier par Infogreffe
|
|
$tabEntete['numAbonne'] = trim( substr($a, 10, 8)); // N° d'abonné
|
|
$tabEntete['numChrono'] = trim( substr($a, 18, 10)); // N° chrono du fichier
|
|
break;
|
|
case '01': // PRIVILEGES
|
|
//die("'$a'");
|
|
$nbLignes01++;
|
|
$tabInsert=array();
|
|
// Données sur la surveillance
|
|
$tabInsert['dateEven']=trim(substr($a, 2 , 8 )); // Date de l'événement
|
|
$tabInsert['refLot']=trim(substr($a, 10 , 8 )); // Référence Extelia du lot
|
|
$tabInsert['refSurv']=trim(substr($a, 18 , 10 )); // Référence Extelia de la surveillance
|
|
$tabInsert['siren']=trim(substr($a, 28 , 9 )); // Siren
|
|
$tabInsert['greffe']=trim(substr($a, 37 , 4 )); // Greffe
|
|
$tabInsert['numDebiteur']=trim(substr($a, 41 , 8 )); // Numéro du débiteur
|
|
$tabInsert['sirenage']=trim(substr($a, 49 , 2 )); // Flag indicateur de sirénage
|
|
$tabInsert['typeEven']=trim(substr($a, 51 , 10 )); // Type de l'événement (PRNINS, PRNMOL, PRNRAD)
|
|
$tabInsert['dateFraiche']=trim(substr($a, 61 , 8 )); // Date de fraîcheur
|
|
$tabInsert['codeRev']=trim(substr($a, 69 , 10 )); // Code de dernière révélation
|
|
// Données sur le débiteur
|
|
$tabInsert['debRaisonSociale']=trim(substr($a, 79 , 160 )); // Raison sociale du débiteur
|
|
$tabInsert['debSigle']=trim(substr($a, 239 , 80 )); // Sigle du débiteur
|
|
$tabInsert['debCiv']=trim(substr($a, 319 , 10 )); // Civilité débiteur
|
|
$tabInsert['debNom']=trim(substr($a, 329 , 160 )); // Nom du débiteur
|
|
$tabInsert['debPrenom']=trim(substr($a, 489 , 64 )); // Prénom du débiteur
|
|
$tabInsert['debConjoint']=trim(substr($a, 553 , 32 )); // Conjoint débiteur
|
|
$tabInsert['debUsage']=trim(substr($a, 585 , 32 )); // Usage débiteur
|
|
$tabInsert['debEnseigne']=trim(substr($a, 617 , 64 )); // Enseigne débiteur
|
|
$tabInsert['debActivite']=trim(substr($a, 681 , 64 )); // Activité du débiteur
|
|
$tabInsert['debFj']=trim(substr($a, 745 , 10 )); // Code forme juridique du débiteur
|
|
$tabInsert['debFjLib']=trim(substr($a, 755 , 80 )); // Libellé de la forme juridique du débiteur
|
|
$tabInsert['debResidence']=trim(substr($a, 835 , 50 )); // Résidence débiteur
|
|
$tabInsert['debNumVoie']=trim(substr($a, 885 , 10 )); // Numéro de la voie débiteur
|
|
$tabInsert['debTypVoie']=trim(substr($a, 895 , 20 )); // Type de voie débiteur
|
|
$tabInsert['debLibVoie']=trim(substr($a, 915 , 50 )); // Nom de la voie débiteur
|
|
$tabInsert['debAdrComp']=trim(substr($a, 965 , 50 )); // Localité débiteur
|
|
$tabInsert['debCP']=trim(substr($a, 1015 , 15 )); // Code postal débiteur
|
|
$tabInsert['debVille']=trim(substr($a, 1030 , 50 )); // Bureau distributeur débiteur
|
|
$tabInsert['debPays']=trim(substr($a, 1080 , 10 )); // Pays débiteur
|
|
// Données sur l'inscription
|
|
$tabInsert['insType']=trim(substr($a, 1090 , 10 )); // Type de privilège
|
|
$tabInsert['insLib']=trim(substr($a, 1100 , 80 )); // Libellé du privilège
|
|
$tabInsert['insNum']=trim(substr($a, 1180 , 9 )); // Numéro d'inscription
|
|
$tabInsert['insDate']=trim(substr($a, 1189 , 8 ))*1; // Date d'inscription
|
|
$tabInsert['insObjet']=trim(substr($a, 1197 , 500 )); // Objet de l'inscription ou Descriptif
|
|
$tabInsert['insMontant']=trim(substr($a, 1697 , 15 ).'.'.substr($a, 1712 , 5 ))*1; // Montant de la créance (15 entiers, 5 décimales)
|
|
$tabInsert['insDev']=trim(substr($a, 1717 , 10 )); // Devise de la créance
|
|
$tabInsert['insDateEch']=trim(substr($a, 1727 , 8 ))*1; // Date d'exigibilité
|
|
$tabInsert['insDateFin']=trim(substr($a, 1735 , 8 ))*1; // Date de caducité/Date de péremption
|
|
$tabInsert['insNanTx']=trim(substr($a, 1743 , 5 )); // Nantissements : Taux d'intérêt
|
|
$tabInsert['insNanTitre']=trim(substr($a, 1748 , 150 )); // Nantissements : Titre de l'acte et date
|
|
$tabInsert['insNanOppo']=trim(substr($a, 1898 , 200 )); // Nantissements : Election de domicile pour les oppositions
|
|
$tabInsert['insProNat']=trim(substr($a, 2098 , 80 )); // Protêts : Nature de l'effet
|
|
$tabInsert['insProHui']=trim(substr($a, 2178 , 300 )); // Protêts : Nom et adresse de l'huissier
|
|
$tabInsert['insProRep']=trim(substr($a, 2478 , 200 )); // Protêts : Réponse
|
|
$tabInsert['insNSCA']=trim(substr($a, 2678 , 300 )); // Nantissements de parts de sociétés civiles : Acceptation
|
|
$tabInsert['insNSCParts']=trim(substr($a, 2978 , 150 )); // Nantissements de parts de sociétés civiles : Parts
|
|
$tabInsert['insNSCSigni']=trim(substr($a, 3128 , 200 )); // Nantissements de parts de sociétés civiles : Signification
|
|
// Données sur les créanciers
|
|
$tabInsert['creNom']=trim(substr($a, 3328 , 160 )); // Nom/raison sociale du 1er créancier
|
|
$tabInsert['creNumVoi']=trim(substr($a, 3488 , 10 )); // Numéro de la voie créancier
|
|
$tabInsert['creTypVoi']=trim(substr($a, 3498 , 20 )); // Type de voie créancier
|
|
$tabInsert['creLibVoi']=trim(substr($a, 3518 , 50 )); // Nom de la voie créancier
|
|
$tabInsert['creAdrComp1']=trim(substr($a, 3568 , 50 )); // Résidence créancier
|
|
$tabInsert['creAdrComp2']=trim(substr($a, 3618 , 50 )); // Localité créancier
|
|
$tabInsert['creCP']=trim(substr($a, 3668 , 15 )); // Code postal créancier
|
|
$tabInsert['creVille']=trim(substr($a, 3683 , 50 )); // Bureau distributeur créancier
|
|
$tabInsert['crePays']=trim(substr($a, 3733 , 10 )); // Pays créancier
|
|
$tabInsert['creAutres']=trim(substr($a, 3743 , 900 )); // Nom des 9 autres créanciers
|
|
// Données sur la radiation
|
|
$tabInsert['radDate']=trim(substr($a, 4643 , 8 ))*1; // Date de radiation définitive
|
|
$tabInsert['radMention']=trim(substr($a, 4651 , 8 ))*1; // Date de la dernière mention de radiation partielle
|
|
$tabInsert['radPartiel']=trim(substr($a, 4659 , 300 )); // Mention de radiation partielle (la plus récente)
|
|
$tabInsert['radPartMt']=trim(substr($a, 4959 , 15).'.'.substr($a, 4974 , 5 ))*1; // Montant radiation partielle (15 entiers et 5 décimales)
|
|
$tabInsert['radDev']=trim(substr($a, 4979 , 10 )); // Devise du montant de la radiation partielle
|
|
$tabInsert['radDiv']=trim(substr($a, 4989 , 10 )); // Zone libre
|
|
$tabInsert['idFichier']=$fichier;
|
|
$tabInsert['dateInsert']=date('YmdHis');
|
|
//print_r($tabInsert);
|
|
$iDb2->insert('greffes_privileges_mvt', $tabInsert);
|
|
if (!$iDb2->insert('greffes_privileges', $tabInsert)) {
|
|
if (mysql_errno()==1062) {
|
|
if (!$iDb2->update('greffes_privileges', $tabInsert, "siren=".$tabInsert['siren'].
|
|
" AND greffe=".$tabInsert['greffe'].
|
|
" AND numDebiteur='".$tabInsert['numDebiteur']."'
|
|
AND insType=".$tabInsert['insType'].
|
|
" AND insNum='".$tabInsert['insNum']."'
|
|
AND insDate=".$tabInsert['insDate'].
|
|
" AND insMontant=".$tabInsert['insMontant'].
|
|
" AND insDateEch=".$tabInsert['insDateEch'].
|
|
" AND insDateFin=".$tabInsert['insDateFin'].
|
|
" AND radDate=".$tabInsert['radDate'].
|
|
" AND radPartMt=".$tabInsert['radPartMt'])) {
|
|
print_r($tabInsert);
|
|
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la MAJ de siren=".$tabInsert['siren'].
|
|
" AND greffe=".$tabInsert['greffe'].
|
|
" AND numDebiteur='".$tabInsert['numDebiteur']."'
|
|
AND insType=".$tabInsert['insType'].
|
|
" AND insNum='".$tabInsert['insNum']."'
|
|
AND insDate=".$tabInsert['insDate'].
|
|
" AND insMontant=".$tabInsert['insMontant'].
|
|
" AND insDateEch=".$tabInsert['insDateEch'].
|
|
" AND insDateFin=".$tabInsert['insDateFin'].
|
|
" AND radDate=".$tabInsert['radDate'].
|
|
" AND radPartMt=".$tabInsert['radPartMt'].EOL;
|
|
die();
|
|
}
|
|
} else {
|
|
print_r($tabInsert);
|
|
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors d'insertion du siren=".$tabInsert['siren'].EOL;
|
|
die();
|
|
}
|
|
}
|
|
case '99': // Structure de contrôle fin de fichier (1 par fichier)
|
|
$nbLignes99++;
|
|
$tabFin['dateCreation'] = trim( substr($a, 2, 8)); // Date création fichier par Infogreffe
|
|
$tabFin['numAbonne'] = trim( substr($a, 10, 8)); // N° d'abonné
|
|
$tabFin['numChrono'] = trim( substr($a, 18, 10)); // N° chrono du fichier
|
|
$tabFin['nbLignes01'] = trim( substr($a, 28, 10)); // Nombre de lignes NAN (privilèges)
|
|
$tabFin['nbLignes02'] = trim( substr($a, 38, 10)); // Nombre de lignes RCS (procol)
|
|
$tabFin['nbLignes03'] = trim( substr($a, 48, 10)); // Nombre de lignes BIL (bilans)
|
|
break;
|
|
}
|
|
$a = fgets($fp, 5096);
|
|
} // Fin lecture fichier
|
|
if (bzip2($fichierAvecRep, PRIVILEGES_BACKUP_DIR.$fichier)) {
|
|
unlink($fichierAvecRep);
|
|
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic, $fichier vient d'être historisé.".EOL;
|
|
}
|
|
} elseif ($fp && $idF=='IPSARSCO') { // Fichier AR
|
|
$nbLignes=$nbLignes00=$nbLignes99=0;
|
|
$nbLignesTot=0;
|
|
while (!feof($fp)) {
|
|
$a = fgets($fp, 5096);
|
|
$len=strlen($a);
|
|
if ($nbLignesTot==0 && ($len<481 || $len>482)) {
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier $idF à charger $fichier n'est pas au format attendu (ligne de $len caractères) !".EOL;
|
|
die("'$a'");
|
|
}
|
|
$nbLignesTot++;
|
|
}
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier à charger $fichier contient $nbLignesTot lignes.".EOL;
|
|
$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, 5096);
|
|
while (!feof($fp)) {
|
|
//002010040607100001AR0000000001
|
|
//992010040607100001AR00000000010000000156
|
|
$codeEnr = ''.trim( substr($a, 0, 2));
|
|
switch ($codeEnr) {
|
|
case '00': // Structure de contrôle entête(1 par fichier)
|
|
$nbLignes00++;
|
|
$tabEntete['dateCreation'] = trim( substr($a, 2, 8)); // Date création fichier par Infogreffe
|
|
$tabEntete['numAbonne'] = trim( substr($a, 10, 8)); // N° d'abonné
|
|
$tabEntete['typeFichier'] = trim( substr($a, 18, 2)); // AR (sinon PO)
|
|
$tabEntete['numChrono'] = trim( substr($a, 20, 10)); // N° chrono du fichier
|
|
break;
|
|
case '99': // Structure de contrôle fin de fichier (1 par fichier)
|
|
$nbLignes99++;
|
|
$tabFin['dateCreation'] = trim( substr($a, 2, 8)); // Date création fichier par Infogreffe
|
|
$tabFin['numAbonne'] = trim( substr($a, 10, 8)); // N° d'abonné
|
|
$tabFin['typeFichier'] = trim( substr($a, 18, 2)); // AR (sinon PO)
|
|
$tabFin['numChrono'] = trim( substr($a, 20, 10)); // N° chrono du fichier
|
|
$tabFin['nbLignes'] = trim( substr($a, 30, 10)); // Nombre de lignes AR (ou PO)
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier $idF chargé $fichier contenait $nbLignes/".$tabFin['nbLignes']." lignes.".EOL;
|
|
break;
|
|
default:
|
|
$nbLignes++;
|
|
$siren = trim(substr($a, 81 , 9 ));// Siren
|
|
$tabUpdate=array();
|
|
// Données sur la surveillance
|
|
$tabUpdate['greRepType'] = trim(substr($a, 67 , 2 ));// Type de réponse Extelia
|
|
$tabUpdate['greRepDate'] = trim(substr($a, 69 , 8 ));// Date de la réponse Extelia
|
|
$tabUpdate['greffe'] = trim(substr($a, 77 , 4 ));// N° du Greffe de l'AR
|
|
$tabUpdate['greArDate'] = trim(substr($a, 424 , 8 ));// Date de l'Accusé Réception Extelia
|
|
$tabUpdate['greArCode'] = trim(substr($a, 432 , 3 ));// Code Accusé Réception
|
|
$tabUpdate['greSurvRefLot'] = trim(substr($a, 435 , 8 ));// Référence Extelia du lot de surveillance
|
|
$tabUpdate['greSurvRefDetail'] =trim(substr($a, 443 , 10 ));// Référence Extelia de la surveillance détail
|
|
$tabUpdate['greDateSurvDeb'] = trim(substr($a, 453 , 8 ));// Date de début de la surveillance
|
|
$tabUpdate['greDateSurvFin'] = trim(substr($a, 461 , 8 ));// Date de fin de la surveillance
|
|
$tabUpdate['idFichier']=$fichier;
|
|
if (!$iDb2->update('greffes_priv_stock', $tabUpdate, "siren=$siren")) {
|
|
print_r($tabUpdate);
|
|
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du siren $siren...".EOL;
|
|
die();
|
|
}
|
|
break;
|
|
}
|
|
$a = fgets($fp, 5096);
|
|
} // Fin lecture fichier
|
|
|
|
if (bzip2($fichierAvecRep, PRIVILEGES_BACKUP_DIR.$fichier)) {
|
|
unlink($fichierAvecRep);
|
|
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic, $fichier vient d'être historisé.".EOL;
|
|
}
|
|
|
|
} elseif ($fp && $idF=='IPSPOSCO') { // Fichier Portefeuille
|
|
$nbLignes00=$nbLignes99=$nbLignes=$nbLignesTot=0;
|
|
while (!feof($fp)) {
|
|
$a = fgets($fp, 5096);
|
|
$len=strlen($a);
|
|
if ($nbLignesTot==0 && ($len<481 || $len>482)) {
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier $idF à charger $fichier n'est pas au format attendu (ligne de $len caractères) !".EOL;
|
|
die("'$a'");
|
|
}
|
|
$nbLignesTot++;
|
|
}
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier Portefeuille à charger $fichier contient $nbLignesTot lignes.".EOL;
|
|
//fclose($fp);
|
|
//echo date('Y/m/d - H:i:s') ." - Pour l'instant, on ignore les fichiers !".EOL;
|
|
|
|
$message=date('Y/m/d - H:i:s'). " - Début de traitement du fichier Portefeuille n°$iFic, $fichier...".EOL;
|
|
echo $message;
|
|
rewind($fp);
|
|
$a = fgets($fp, 5096);
|
|
while (!feof($fp)) {
|
|
$codeEnr = ''.trim( substr($a, 0, 2));
|
|
switch ($codeEnr) {
|
|
case '00': // Structure de contrôle entête(1 par fichier)
|
|
$nbLignes00++;
|
|
$tabEntete['dateCreation'] = trim( substr($a, 2, 8)); // Date création fichier par Infogreffe
|
|
$tabEntete['numAbonne'] = trim( substr($a, 10, 8)); // N° d'abonné
|
|
$tabEntete['typeFichier'] = trim( substr($a, 18, 2)); // AR (sinon PO)
|
|
$tabEntete['numChrono'] = trim( substr($a, 20, 10)); // N° chrono du fichier
|
|
break;
|
|
case '99': // Structure de contrôle fin de fichier (1 par fichier)
|
|
$nbLignes99++;
|
|
$tabFin['dateCreation'] = trim( substr($a, 2, 8)); // Date création fichier par Infogreffe
|
|
$tabFin['numAbonne'] = trim( substr($a, 10, 8)); // N° d'abonné
|
|
$tabFin['typeFichier'] = trim( substr($a, 18, 2)); // AR (sinon PO)
|
|
$tabFin['numChrono'] = trim( substr($a, 20, 10)); // N° chrono du fichier
|
|
$tabFin['nbLignes'] = trim( substr($a, 30, 10)); // Nombre de lignes AR (ou PO)
|
|
echo date('Y/m/d - H:i:s') ." - Le fichier $idF chargé $fichier contenait $nbLignes/".$tabFin['nbLignes']." lignes.".EOL;
|
|
break;
|
|
default:
|
|
$nbLignes++;
|
|
$siren = trim(substr($a, 81 , 9 )); // Siren
|
|
$tabUpdate=array();
|
|
// Données sur la surveillance
|
|
//$tabUpdate['greRepType'] = trim(substr($a, 67 , 2 )); // Type de réponse Extelia = PO
|
|
$tabUpdate['dateDerPO'] = trim(substr($a, 69 , 8 )); // Date de la réponse Extelia
|
|
$tabUpdate['greffe'] = trim(substr($a, 77 , 4 )); // N° du Greffe de l'AR
|
|
$tabUpdate['greArDate'] = trim(substr($a, 424 , 8 )); // Date de l'Accusé Réception Extelia
|
|
$tabUpdate['greArCode'] = trim(substr($a, 432 , 3 )); // Code Accusé Réception
|
|
$tabUpdate['greSurvRefLot'] = trim(substr($a, 435 , 8 )); // Référence Extelia du lot de surveillance
|
|
$tabUpdate['greSurvRefDetail'] =trim(substr($a, 443 , 10 )); // Référence Extelia de la surveillance détail
|
|
$tabUpdate['greDateSurvDeb'] = trim(substr($a, 453 , 8 )); // Date de début de la surveillance
|
|
$tabUpdate['greDateSurvFin'] = trim(substr($a, 461 , 8 )); // Date de fin de la surveillance
|
|
//$tabUpdate['idFichier']=$fichier;
|
|
|
|
// Infos S&D
|
|
//$tabUpdate['sedRef'] = trim(substr($a, 17 , 50 ));// Ref S&D
|
|
//$tabUpdate['numGestion'] = trim(substr($a, 90 , 10 ));//
|
|
//$tabUpdate['steNom'] = trim(substr($a, 100 , 160 ));//
|
|
$tabUpdate['numDebiteur'] = trim(substr($a, 260 , 8 ));//
|
|
/*$tabUpdate['steVoieNum'] = trim(substr($a, 268 , 10 ));//
|
|
$tabUpdate['steVoieType'] = trim(substr($a, 278 , 4 ));//
|
|
$tabUpdate['steVoieLib'] = trim(substr($a, 282 , 20 ));//
|
|
$tabUpdate['steVoieComp1'] = trim(substr($a, 302 , 32 ));//
|
|
$tabUpdate['steVoieComp2'] = trim(substr($a, 334 , 32 ));//
|
|
$tabUpdate['steCP'] = trim(substr($a, 366 , 6 ));//
|
|
$tabUpdate['steVille'] = trim(substr($a, 372 , 30 ));//
|
|
*/
|
|
/** Recherche de la ligne dans le stock S&D
|
|
**/
|
|
$ret=$iDb2->select('greffes_priv_stock', 'greffe,greArDate,greArCode,greSurvRefLot,greSurvRefDetail,greDateSurvDeb,greDateSurvFin,numDebiteur', "siren=$siren", false, MYSQL_ASSOC);
|
|
if (isset($ret[0])) $ret=$ret[0];
|
|
else {
|
|
echo date ('Y/m/d - H:i:s') ." - ERREUR : Code AR '".$tabUpdate['greArCode']."' non géré pour le siren $siren...".EOL;
|
|
$tabUpdate['greRepType'] = trim(substr($a, 67 , 2 ));// Type de réponse Extelia
|
|
$tabUpdate['greRepDate'] = trim(substr($a, 69 , 8 ));// Date de la réponse Extelia
|
|
$tabUpdate['numGestion'] = trim(substr($a, 90 , 10 ));//
|
|
$tabUpdate['steNom'] = trim(substr($a, 100 , 160 ));//
|
|
$tabUpdate['steVoieNum'] = trim(substr($a, 268 , 10 ));//
|
|
$tabUpdate['steVoieType'] = trim(substr($a, 278 , 4 ));//
|
|
$tabUpdate['steVoieLib'] = trim(substr($a, 282 , 20 ));//
|
|
$tabUpdate['steVoieComp1'] = trim(substr($a, 302 , 32 ));//
|
|
$tabUpdate['steVoieComp2'] = trim(substr($a, 334 , 32 ));//
|
|
$tabUpdate['steCP'] = trim(substr($a, 366 , 6 ));//
|
|
$tabUpdate['steVille'] = trim(substr($a, 372 , 30 ));//
|
|
$tabUpdate['sedRef'] = trim(substr($a, 17 , 50 ));// Ref S&D
|
|
$tabUpdate['idFichier']=$fichier;
|
|
|
|
echo "A METTRE A JOUR".EOL;
|
|
print_r($tabUpdate);
|
|
die();
|
|
}
|
|
if ($tabUpdate['greArCode']=='') unset($tabUpdate['greArCode']);
|
|
elseif($tabUpdate['greArCode']=='05') { unset($tabUpdate['greArCode']); unset($tabUpdate['greArDate']); unset($tabUpdate['greDateSurvDeb']); unset($tabUpdate['greDateSurvFin']); unset($tabUpdate['numDebiteur']); }
|
|
else {
|
|
//$eeee=fgets(STDIN);
|
|
echo date ('Y/m/d - H:i:s') ." - ERREUR : Code AR '".$tabUpdate['greArCode']."' non géré pour le siren $siren...".EOL;
|
|
echo "EN BASE".EOL;
|
|
print_r($ret);
|
|
echo "A METTRE A JOUR".EOL;
|
|
print_r($tabUpdate);
|
|
die();
|
|
}
|
|
if (!$iDb2->update('greffes_priv_stock', $tabUpdate, "siren=$siren")) {
|
|
print_r($tabUpdate);
|
|
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .' : '. mysql_error() ." lors de la mise à jour du siren $siren...".EOL;
|
|
die();
|
|
}
|
|
break;
|
|
}
|
|
$a = fgets($fp, 5096);
|
|
} // Fin lecture fichier
|
|
|
|
|
|
|
|
|
|
if (bzip2($fichierAvecRep, PRIVILEGES_BACKUP_DIR.$fichier)) {
|
|
unlink($fichierAvecRep);
|
|
echo date ('Y/m/d - H:i:s') . " - Le fichier n°$iFic, $fichier vient d'être historisé.".EOL;
|
|
}
|
|
continue;
|
|
}
|
|
else
|
|
echo date('Y/m/d - H:i:s'). " - ERREUR lors de l'ouverture du fichier $fichier !".EOL;
|
|
@fclose($fp);
|
|
} // fin foreach ($tabFichier as $iFic=>$fichier)
|
|
|
|
echo date('Y/m/d - H:i:s'). " - Fin du programme de gestion des flux Privilèges.".EOL;
|
|
die();
|
|
|
|
?>
|