extranet/batch/sendBilanClient.php

120 lines
2.7 KiB
PHP

#!/usr/bin/php -q
<?php
define('FTP_HOST', 'ftp.scores-decisions.com');
define('FTP_USER', 'bilansext');
define('FTP_PASS', 'j12azt78');
define('FTP_DIR', 'send');
// Paramètres
if ( in_array($argv[1], array('--help', '-help', '-h', '-?')) ) {
?>
Envoi les bilans saisie par les clients
Sans aucun paramètre, traitement automatique.
Mode test avec les options -t, --test pour voir ce qui va être fait
Utilisation :
<?php echo $argv[0]; ?> >> /vers/fichier.log
<?php
exit;
}
require_once realpath(dirname(__FILE__)).'/../config/prepend.php';
require_once realpath(dirname(__FILE__)).'/../framework/common/mysql.php';
require_once realpath(dirname(__FILE__)).'/../framework/common/dates.php';
//==> Functions
function getRemoteFilename($infos)
{
$date = WDate::dateT('d/m/Y', 'Ymd', $infos['bilanCloture']);
return $infos['siren'].'_'.$date.'_'.$infos['bilanDuree'].'_'.
$infos['confidentiel'].'_'.$infos['utilisateurId'];
}
function saveDateEnvoi($ref)
{
$wdb = new WDB('sdv1');
$data = array( 'dateEnvoi' => date('Y-m-d H:m:s') );
$wdb->update('bilansaisie', $data, "ref='$ref'");
}
function listBilans()
{
$wdb = new WDB('sdv1');
$liste = $wdb->select(
'bilansaisie',
'ref, utilisateurId, confidentiel, siren, bilanCloture, bilanDuree, fichier',
"dateEnvoi='0000-00-00 00:00:00' AND fichier!=''", false, MYSQL_ASSOC
);
return $liste;
}
function sendToFtp($localFile, $remoteFile)
{
$conn_id = ftp_connect(FTP_HOST);
$login_result = ftp_login($conn_id, FTP_USER, FTP_PASS);
ftp_chdir($conn_id, FTP_DIR);
if (ftp_put($conn_id, $remoteFile, $localFile, FTP_BINARY)) {
return true;
}
ftp_close($conn_id);
return false;
}
//==> Début programme
$test = false;
if ( in_array($argv[1], array('--test', '-t')) ) {
$test = true;
}
/**
* Liste les fichiers qui peuvent être traités
*/
$listBilans = listBilans();
$tabFichier = array();
foreach ($listBilans as $infos)
{
$filename = $infos['ref'].'-'.$infos['siren'];
$extValide = array('pdf', 'tiff');
$fileExist = false;
foreach ($extValide as $ext) {
if (file_exists(PATH_DATA.'/bilanclient/'.$filename.'.'.$ext)) {
$fileExist = true;
$tabFichier[] = array(
'ref' => $infos['ref'],
'localFile' => $filename.'.'.$ext,
'remoteFile' => getRemoteFilename($infos).'.'.$ext,
);
break;
}
}
//Erreur fichier inexistant
if (!$fileExist) {
echo "Fichier manquant, Ref:".$infos['ref']."\n";
}
}
if ($test) exit;
/**
* Envoi sur le FTP
*/
foreach ($tabFichier as $fichier)
{
echo "Envoi du fichier ".$fichier['localFile']." => ".
$fichier['remoteFile'].
" (".$fichier['ref'].")\n";
if ( sendToFtp(PATH_DATA.'/bilanclient/'.$fichier['localFile'], $fichier['remoteFile']) ) {
saveDateEnvoi($fichier['ref']);
echo "Envoi terminé.\n";
} else {
echo "Erreur d'envoi !\n";
}
}