Traitement des actes : simplification et envoi mail correct

This commit is contained in:
Michael RICOIS 2017-03-28 12:40:01 +02:00
parent f8261fb887
commit b91a480dc6

View File

@ -40,13 +40,12 @@ if (isset($opts->list)){
$types = array('bi', 'ac');
//Configuration FTP
// Configuration FTP
define ('ACTES_IGNUM_FTP_URL', 'ftp.scores-decisions.com');
define ('ACTES_IGNUM_FTP_USER', 'mpc2500');
define ('ACTES_IGNUM_FTP_PASS', 'passmpc78');
define ('ACTES_IGNUM_LOCAL_DIR', $c->profil->path->shared.'/files/');
define ('PATH_DATA', $c->profil->infogreffe->storage->path);
$pathIn = $c->profil->path->shared.'/files';
$report_email = $c->profil->mail->email->support;
$report_subject = 'Traitement des actes '.date('Y-m-d H:i:s');
@ -174,7 +173,12 @@ if (!$login_result) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de s'authentifier sur le serveur FTP (".ACTES_IGNUM_FTP_URL.")!\n";
exit;
}
ftp_pasv($conn_id, true);
$contents = ftp_nlist($conn_id, "*.pdf");
if ($contents === false) {
echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de se connecter au serveur FTP (".ACTES_IGNUM_FTP_URL.") !\n";
exit;
}
/**
* Liste de tout les fichiers disponible dans le repertoire
@ -185,8 +189,7 @@ foreach ($contents as $filename){
$indice = 0;
$f = strtolower($filename);
if (preg_match('/g-(ac|bi)-[0-9]+\.pdf/', $f)
|| preg_match('/g-(ac|bi)-[0-9]+-[0-9]{1,2}\.pdf/', $f)){
|| preg_match('/g-(ac|bi)-[0-9]+-[0-9]{1,2}\.pdf/', $f)) {
$part = substr(str_replace('.pdf', '', $f), 5);
$p = strpos($part, '-');
if ( $p === false ) {
@ -200,7 +203,7 @@ foreach ($contents as $filename){
}
// Fichiers en anomalies
else {
if ($test){
if ($test) {
echo "Erreur : Anomalie fichier numérisé $filename\n";
} else {
$subject = "Erreur : Anomalie fichier numérisé";
@ -226,12 +229,10 @@ krsort($tabFichiersFtp);
*/
$lastRef = '';
$tabFichiersTemp = array();
foreach($tabFichiersFtp as $k => $val)
{
foreach($tabFichiersFtp as $k => $val) {
$part = substr($k, 5);
$p = strpos($part, '-');
if ( $p === false ) {
if ($p === false) {
$ref = substr($k, 0, 5) . $part;
} else {
$ref = substr($k, 0, 5) . substr($part, 0, $p);
@ -250,32 +251,25 @@ unset($tabFichiersTemp);
* Pour chaque commande, test de la présence d'un fichier associé
* Si le fichier correspond téléchargement du fichier
*/
foreach ( $tabCommandes as $ref => $commande ) {
foreach ( $tabFichiers as $refAssocie => $fichier ) {
if ( $ref == $refAssocie ) {
foreach ($tabCommandes as $ref => $commande) {
foreach ($tabFichiers as $refAssocie => $fichier) {
if ($ref == $refAssocie) {
echo date ('Y/m/d - H:i:s')." - Traitement de la commande $ref\n";
if ( $test ) {
if ($test) {
echo date ('Y/m/d - H:i:s')." - Fichier $fichier \n";
} else {
// Récupération du fichier depuis le FTP (s'il n'existe pas déjà)
if ( !file_exists(ACTES_IGNUM_LOCAL_DIR.$fichier) ) {
if (ftp_get($conn_id, ACTES_IGNUM_LOCAL_DIR.$fichier, $fichier, FTP_BINARY, 0)) {
if (!file_exists($pathIn.'/'.$fichier)) {
if (ftp_get($conn_id, $pathIn.'/'.$fichier, $fichier, FTP_BINARY, 0)) {
echo date ('Y/m/d - H:i:s')." - Fichier $fichier téléchargé depuis le serveur FTP.\n";
} else {
echo date ('Y/m/d - H:i:s')." - ERREUR : Impossible de télécharger le fichier $fichier !\n";
}
}
switch ( substr($ref,2,2) ) {
switch (substr($ref,2,2)) {
case 'BI':
$infogreffe = new Metier_Infogreffe_DocBI();
$infogreffe->setSiren($commande->siren);
//Format date cloture
@ -284,20 +278,18 @@ foreach ( $tabCommandes as $ref => $commande ) {
substr($commande->bilanCloture,8,2);
$path = $infogreffe->getFilePath($commande->bilanType, $dateCloture);
$nomCible = $infogreffe->getFileName($commande->bilanType, $dateCloture);
$fileOut = PATH_DATA.'/'.$path.'/'.$nomCible;
$fileOut = $c->profil->infogreffe->storage->path.'/'.$path.'/'.$nomCible;
$isFileOnStorage = false;
if (file_exists($fileOut)) {
$isFileOnStorage = true;
echo date ('Y/m/d - H:i:s')." - Fichier ".ACTES_IGNUM_LOCAL_DIR.$fichier." déjà présent en ".$fileOut.".\n";
echo date ('Y/m/d - H:i:s')." - Fichier ".$pathIn.'/'.$fichier." déjà présent en ".$fileOut.".\n";
} else {
if (copy(ACTES_IGNUM_LOCAL_DIR.$fichier, $fileOut)) {
if (copy($pathIn.'/'.$fichier, $fileOut)) {
$isFileOnStorage = true;
echo date ('Y/m/d - H:i:s')." - Fichier ".ACTES_IGNUM_LOCAL_DIR.$fichier." déplacé en ".$fileOut.".\n";
echo date ('Y/m/d - H:i:s')." - Fichier ".$pathIn.'/'.$fichier." déplacé en ".$fileOut.".\n";
} else {
echo date ('Y/m/d - H:i:s')." ERREUR - Impossible de déplacer ".ACTES_IGNUM_LOCAL_DIR.$fichier." en ".$fileOut." !\n";
echo date ('Y/m/d - H:i:s')." ERREUR - Impossible de déplacer ".$pathIn.'/'.$fichier." en ".$fileOut." !\n";
}
}
@ -359,19 +351,19 @@ foreach ( $tabCommandes as $ref => $commande ) {
$options = $item->numGreffe . '-' . substr($item->numRC,0,2) . '-' . substr($item->numRC,2,1) . '-' . substr($item->numRC,3) . '-' . $item->num_depot;
$nomCible = $infogreffe->getFileName($date, $commande->acteNum, $commande->acteType, $options);
$fileOut = PATH_DATA.'/'.$path.'/'.$nomCible;
$fileOut = $c->profil->infogreffe->storage->path.'/'.$path.'/'.$nomCible;
$isFileOnStorage = false;
if (file_exists($fileOut)) {
$isFileOnStorage = true;
echo date ('Y/m/d - H:i:s')." - Fichier ".ACTES_IGNUM_LOCAL_DIR.$fichier." déjà présent en ".$fileOut.".\n";
echo date ('Y/m/d - H:i:s')." - Fichier ".$pathIn.'/'.$fichier." déjà présent en ".$fileOut.".\n";
} else {
if (copy(ACTES_IGNUM_LOCAL_DIR.$fichier, $fileOut)) {
if (copy($pathIn.'/'.$fichier, $fileOut)) {
$isFileOnStorage = true;
echo date ('Y/m/d - H:i:s')." - Fichier ".ACTES_IGNUM_LOCAL_DIR.$fichier." déplacé en ".$fileOut.".\n";
echo date ('Y/m/d - H:i:s')." - Fichier ".$pathIn.'/'.$fichier." déplacé en ".$fileOut.".\n";
} else {
echo date ('Y/m/d - H:i:s')." ERREUR - Impossible de déplacer ".ACTES_IGNUM_LOCAL_DIR.$fichier." en ".$fileOut." !\n";
echo date ('Y/m/d - H:i:s')." ERREUR - Impossible de déplacer ".$pathIn.'/'.$fichier." en ".$fileOut." !\n";
}
}
@ -397,8 +389,8 @@ foreach ( $tabCommandes as $ref => $commande ) {
break;
}
//Envoi du mail et Mise à jour de la commande
if ( file_exists($fileOut) ) {
// Envoi du mail et Mise à jour de la commande
if (file_exists($fileOut)) {
if ( $testMail ) {
echo "Envoi fichier $nomCible ($ref) à ".$commande->email;
} else {
@ -440,6 +432,7 @@ if (empty($report_txt)) {
//Envoi du mail de rapport
if (!$test && !$testMail){
$headers = 'From: supportdev@scores-decisions.com';
if (mail($report_email, $report_subject, utf8_decode($report_txt))){
echo date ('Y/m/d - H:i:s')." - Rapport envoyé.\n";
} else {