diff --git a/1.2/scripts/rapportsTextes.php b/1.2/scripts/rapportsTextes.php index 4bba2268..4897ee9d 100644 --- a/1.2/scripts/rapportsTextes.php +++ b/1.2/scripts/rapportsTextes.php @@ -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";