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
$pathClientRecv = '/home/data/clients/fransbonhomme/recv';
$pathFtpRecv = '/home/data/ftp/fransbonhomme/recv';
//Options
try {
@ -129,9 +128,9 @@ $tdate = new WDate();
// Génération du fichier de demande depuis les logs de consultation indiscore2, indiscore3
if ($opts->site)
{
if (empty($opts->site) || $opts->site<20110101)
if ($opts->site===true)
{
$dateDemandes = date('Ymd');
$dateDemandes = date('Ymd');
}
else
{
@ -164,19 +163,35 @@ if ($opts->site)
// Fichier de demande par FTP
if ($opts->ftp)
{
$dh = opendir($pathClientSend);
while (false !== ($filename = readdir($dh)))
{
if ($filename!='.' && $filename!='..' && strtolower(substr($filename,-4))=='.txt')
{
$tailleOctets = filesize($pathClientSend.'/'.$filename);
if ($tailleOctets>9)
{
$tabFichLigneCmd[] = $filename;
} else {
echo date ('Y/m/d - H:i:s') . " - Attention, la taille du fichier '$filename' est incohérente ($tailleOctets octets)!\n";
}
}
/*
* Detecter si la date n'est pas trop ancienne
*/
$dateNow = new Zend_Date();
$dateIn1 = $dateNow->toString('yyyy-MM-dd HH:mm:ss');
$diff = $dateNow->sub(28, Zend_Date::HOUR);
$dateIn2 = $diff->toString('yyyy-MM-dd HH:mm:ss');
//client, name, depotType, depotDate, depotFile, nbLines, dateInsert, dateExecute
$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)
{
$dateBegin = date('YmdHis');
if ( !file_exists($pathClientSend.'/'.$fichierIn) ) {
die("Erreur fichier '$fichierIn' inexistant !\n");
}
@ -548,14 +565,27 @@ if (count($tabFichLigneCmd) > 0)
'dateHeure' => date('YmdHis'))
);
}
}
} // Fin de lecture des lignes du fichier
//Copie des fichiers de rapport dans le FTP
if ( !copy($pathClientRecv.'/'.$fichierOut, $pathFtpRecv.'/'.$fichierOut) ) {
echo date ('Y/m/d - H:i:s')." - Erreur de copie du fichier $fichierOut dans le FTP !\n";
//Ecriture dans la table des prestations
$fluxoutM = new Application_Model_Sdv1FluxFileOut();
$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
{
echo date ('Y/m/d - H:i:s') . "Aucun fichier à traiter !\n";