120 lines
2.7 KiB
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";
|
|
}
|
|
}
|