batch/1.1/old/loadSurveillanceFic.php
2013-06-19 08:24:49 +00:00

124 lines
4.8 KiB
PHP

#!/usr/bin/php -c/var/www/batch/config/php_batch_sd.ini
<?php
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.'scores/classMSolvabilite.php');
include_once(INCLUDE_PATH.'partenaires/classMBourse.php');
$strInfoScript='Usage : '.basename($argv[0]). " <option> <fichier>
Chargement d'un fichier de mise sous surveillance d'un fichier Client (pour l'instant uniquement en annule/remplace).
";/*
Options :
-d Mode debug (Verbosité au maximum)
";*/
$tabFichier=array();
$j=0;
$argv=$_SERVER['argv'];
if ($_SERVER['argc']>1)
{
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
/* case 'f': $fileFormat=substr($argv[$i],3);
if ($fileFormat!='CSV' && $fileFormat!='CLI')
die('Format de fichier '. $fileFormat . " inconnu !\n");
break;
case 'd': $lastBodacc=true; break;
//case 'r': $rechercherSiren=true; break;
*/
case '-':
case '?': die($strInfoScript); break;
default: die('Option '. $argv[$i] . " inconnue !\n");
break;
}
} else {
$tabFichier[$j]=$argv[$i];
$j++;
}
}
}
if (count($tabFichier)==0) {
echo $strInfoScript;
die(date ('Y/m/d - H:i:s') . " - Aucun fichier à traiter !" . EOL);
}
$iDb=new WDB('insee');
$iDbSurv=new WDB('jo');
$iInsee=new MInsee();
echo date ('Y/m/d - H:i:s') . " - Début du traitement\r\n";
flush();
foreach ($tabFichier as $nbFichiers=>$fichier_csv)
{
$fp=fopen($fichier_csv, 'r');
if (!$fp) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible d'ouvrir le fichier : ".$fichier_csv." !\n";
die();
}
echo date ('Y/m/d - H:i:s')." - Début du traitement du fichier ". $fichier_csv ."...\n";
$numLigne=$nbConfs=$nbAjouts=0;
while(!feof($fp)) {
$line=fgets($fp, 4096);
if (trim($line)=='') break;
$numLigne++;
$data=array();
$data['idClient'] = trim(substr($line, 27, 36)); // Identifiant Client
if ($data['idClient']=='') $data['idClient']='SURBODPRDFTSMEDERIC';
$data['siren'] = trim(substr($line, 98, 9)); // SIREN
$data['nic'] = trim(substr($line, 107, 5)); // NIC
$data['rs'] = trim(substr($line, 112, 60)); // RS
$data['cp'] = trim(substr($line, 332, 5)); // CP
$data['ville'] = trim(substr($line, 337, 40)); // Ville
$data['ref'] = trim(substr($line, 417, 18)); // Référence Client
if ($data['idClient']=='SURBODPRDFTSMEDERIC') {
$data['ref'] = substr($data['ref'], 0, 9); // Référence Client Fixe
$data['refInfos']= substr($data['ref'], 9, 9); // Référence Client à titre d'information
}
$data['indTrt'] = 1;
$dateFichier=trim(substr($line, 3, 8)); // Date du fichier
$idClient=$data['idClient'];
if ($numLigne==1) {
/** Passage à 0 de l'indicateur ligne traitée **/
$res=$iDbSurv->update('surveillances_listes', array('indTrt'=>0), "idClient='$idClient'");
if ($res)
echo date ('Y/m/d - H:i:s')." - Toutes les lignes du client $idClient ont été positionnées à non traitées !\n";
else
die (date ('Y/m/d - H:i:s')." - ERREUR : Impossible de positionner les lignes du client $idClient à non traitées !!!\n");
}
$res=$iDbSurv->select('surveillances_listes', 'count(*)', "idClient='$idClient' AND ref='".$data['ref']."'");
if (@$res[0][0] > 0) {
/** Cette référence est déjà sous surveillance pour ce client **/
$dataUpdate=array_merge($data, array('dateConf'=>$dateFichier));
$res=$iDbSurv->update('surveillances_listes', $dataUpdate, "idClient='$idClient' AND ref='".$data['ref']."'");
if (!$res) die (date ('Y/m/d - H:i:s')." - ERREUR : Ligne $idClient, ".$data['siren'].", ".$data['ref']." mise à jour IMPOSSIBLE !!!\n");
else $nbConfs++;
} else {
$dataInsert=array_merge($data, array('dateAjout'=>$dateFichier));
$res=$iDbSurv->insert('surveillances_listes', $dataInsert);
if (!$res) die (date ('Y/m/d - H:i:s')." - Lignes $idClient, ".$data['siren'].", ".$data['ref']." ERREUR LORS DE L'AJOUT !!!\n");
else $nbAjouts++;
}
}
echo date ('Y/m/d - H:i:s')." - Nombre de lignes à surveiller ajoutées pour $idClient = $nbAjouts.".EOL;
echo date ('Y/m/d - H:i:s')." - Nombre de lignes à surveiller confirmées pour $idClient = $nbConfs.".EOL;
$res=$iDbSurv->select('surveillances_listes', 'count(*)', "idClient='$idClient' AND indTrt=0 AND dateSuppr=0");
$nbSuppr=$res[0][0];
echo date ('Y/m/d - H:i:s')." - Nombre de lignes à surveiller supprimées pour $idClient = $nbSuppr.".EOL;
$res=$iDbSurv->update('surveillances_listes', array('dateSuppr'=>$dateFichier), "idClient='$idClient' AND indTrt=0 AND dateSuppr=0",true);
if (!$res) die (date ('Y/m/d - H:i:s')." - ERREUR : Impossible de supprimer les surveillances obsolètes du client $idClient !!!\n");
}
die();
?>