FRANSBONHOMME : Modification du traitement et integration dans la gestion des flux

This commit is contained in:
Michael RICOIS 2014-10-03 12:57:19 +00:00
parent fbb76687d2
commit d84449a53e

View File

@ -55,7 +55,6 @@ $pathClientSend = '/home/data/clients/fransbonhomme/send';
// Stockage SD => Client // Stockage SD => Client
$pathClientRecv = '/home/data/clients/fransbonhomme/recv'; $pathClientRecv = '/home/data/clients/fransbonhomme/recv';
$pathFtpRecv = '/home/data/ftp/fransbonhomme/recv';
//Options //Options
try { try {
@ -129,9 +128,9 @@ $tdate = new WDate();
// Génération du fichier de demande depuis les logs de consultation indiscore2, indiscore3 // Génération du fichier de demande depuis les logs de consultation indiscore2, indiscore3
if ($opts->site) if ($opts->site)
{ {
if (empty($opts->site) || $opts->site<20110101) if ($opts->site===true)
{ {
$dateDemandes = date('Ymd'); $dateDemandes = date('Ymd');
} }
else else
{ {
@ -164,19 +163,35 @@ if ($opts->site)
// Fichier de demande par FTP // Fichier de demande par FTP
if ($opts->ftp) if ($opts->ftp)
{ {
$dh = opendir($pathClientSend); /*
while (false !== ($filename = readdir($dh))) * Detecter si la date n'est pas trop ancienne
{ */
if ($filename!='.' && $filename!='..' && strtolower(substr($filename,-4))=='.txt') $dateNow = new Zend_Date();
{ $dateIn1 = $dateNow->toString('yyyy-MM-dd HH:mm:ss');
$tailleOctets = filesize($pathClientSend.'/'.$filename);
if ($tailleOctets>9) $diff = $dateNow->sub(28, Zend_Date::HOUR);
{ $dateIn2 = $diff->toString('yyyy-MM-dd HH:mm:ss');
$tabFichLigneCmd[] = $filename;
} else { //client, name, depotType, depotDate, depotFile, nbLines, dateInsert, dateExecute
echo date ('Y/m/d - H:i:s') . " - Attention, la taille du fichier '$filename' est incohérente ($tailleOctets octets)!\n"; $fluxinM = new Application_Model_Sdv1FluxFileIn();
} $sql = $fluxinM->select()
} ->where('client=?','fransbonhomme')
->where('name=?', 'RAPPORT')
->where('depotType=?','FTP')
->where('dateExecute=?','0000-00-00 00:00:00')
->where("dateInsert BETWEEN '".$dateIn2."' AND '".$dateIn1."' ")
->order('dateInsert DESC');
$pitems = $fluxinM->fetchAll($sql);
if ( $pitems->count()==0 ) {
echo date('Y-m-d H:i:s')." : Aucun traitement à réaliser.".PHP_EOL;
exit;
}
foreach ($pitems as $p) {
$tabFichLigneCmd[] = $p->depotFile;
break;
} }
} }
@ -191,6 +206,8 @@ if (count($tabFichLigneCmd) > 0)
{ {
foreach ($tabFichLigneCmd as $fichierIn) foreach ($tabFichLigneCmd as $fichierIn)
{ {
$dateBegin = date('YmdHis');
if ( !file_exists($pathClientSend.'/'.$fichierIn) ) { if ( !file_exists($pathClientSend.'/'.$fichierIn) ) {
die("Erreur fichier '$fichierIn' inexistant !\n"); die("Erreur fichier '$fichierIn' inexistant !\n");
} }
@ -548,14 +565,27 @@ if (count($tabFichLigneCmd) > 0)
'dateHeure' => date('YmdHis')) 'dateHeure' => date('YmdHis'))
); );
} }
} } // Fin de lecture des lignes du fichier
//Copie des fichiers de rapport dans le FTP //Ecriture dans la table des prestations
if ( !copy($pathClientRecv.'/'.$fichierOut, $pathFtpRecv.'/'.$fichierOut) ) { $fluxoutM = new Application_Model_Sdv1FluxFileOut();
echo date ('Y/m/d - H:i:s')." - Erreur de copie du fichier $fichierOut dans le FTP !\n"; $dateEnd = date('YmdHis');
$fluxoutM->insert(array(
'client' => 'fransbonhomme',
'name' => 'RAPPORT',
'nbLines' => $iLigne+1,
'dateBegin' => $dateBegin,
'dateEnd' => $dateEnd,
'fileOut' => $fichierOut,
'depotType' => 'FTP',
'depotDate' => '0000-00-00 00:00:00',
));
if ($opts->ftp) {
//Ecrire la date d'execution dans flux_filein
$fluxinM->update(array('dateExecute' => $dateEnd), 'id='.$p->id);
} }
} }
} // Fin de lecture des fichier de demande } // Fin de lecture des fichiers de demande
else else
{ {
echo date ('Y/m/d - H:i:s') . "Aucun fichier à traiter !\n"; echo date ('Y/m/d - H:i:s') . "Aucun fichier à traiter !\n";