extranet/batch/getActes.php

145 lines
5.9 KiB
PHP
Raw Normal View History

#!/usr/bin/php -q
<?php
define ('ACTES_IGNUM_LOCAL_DIR','/var/www/extranet/www/pdf/scan/');
2009-03-02 11:27:23 +00:00
define ('ACTES_IG_LOCAL_DIR', '/var/www/extranet/www/pdf/');
define ('ACTES_IGNUM_FTP_URL', 'ftp2.scores-decisions.com');
define ('ACTES_IGNUM_FTP_USER', 'mpc2500');
define ('ACTES_IGNUM_FTP_PASS', 'passmpc78');
require_once realpath(dirname(__FILE__) . '/../framework/fwk.php');
2009-02-20 15:30:11 +00:00
require_once realpath(dirname(__FILE__) . '/../config/config.inc');
2009-03-12 17:35:43 +00:00
require_once realpath(dirname(__FILE__) . '/mysql.php');
2009-02-20 15:30:11 +00:00
define('INCLUDE_PATH', realpath(dirname(__FILE__).'/../includes/') );
include_once(FWK_PATH.'/common/ftp.php');
$tempsMinEntreRequetes=5;
$tempsMaxEntreRequetes=30;
set_time_limit(0);
$eol="\n";
$lastJO=$dateDebut=$dateFin=$verif=false;
$strInfoProg='Usage : '.basename($argv[0]). " [OPTION]
V<EFBFBD>rifie les actes num<EFBFBD>ris<EFBFBD>s re<EFBFBD>us en provenance des Greffes.
Sans aucun param<EFBFBD>tre, r<EFBFBD>cup<EFBFBD>ration des actes.
";/*Sinon:
2009-06-08 09:22:59 +00:00
-d:JJ/MM/AAAA Date de d<EFBFBD>but de publication
-f:JJ/MM/AAAA Date de fin de publication
-l Dernier JO Association uniquement (*)
-n:X Intervalle MIN en secondes entre les requ<EFBFBD>tes sur le site des JO (d<EFBFBD>faut=$tempsMinEntreRequetes)
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (d<>faut=$tempsMaxEntreRequetes)
-v V<EFBFBD>rifier que toutes les annonces du JO sont en base !
";*/
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true;
else {
2009-06-08 09:22:59 +00:00
for ($i=1; isset($argv[$i]); $i++) {
if (substr($argv[$i],0,1)=='-') {
switch (substr($argv[$i],1,1)) {
case 'd':
$dateDebut=substr($argv[$i],3,10);
$dateDeb=dateT('d/m/Y', 'Ymd', $dateDebut);
break;
case 'n':
$tempsMinEntreRequetes=trim(substr($argv[$i],3))*1;
if ($tempsMinEntreRequetes<0) $tempsMinEntreRequetes=0;
break;
case '-':
die($strInfoProg);
break;
default: die('Option '. $argv[$i] . " inconnue !\n");
}
}
2009-06-08 09:22:59 +00:00
}
}
2009-02-20 15:30:11 +00:00
$con = mysql_pconnect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if (!($con === false)) {
2009-06-08 09:22:59 +00:00
if (mysql_select_db(MYSQL_DB, $con) === false)
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n<>'. mysql_errno() .') : '. mysql_error() . $eol;
}
2009-06-08 09:22:59 +00:00
else
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n<>'. mysql_errno() .') : '. mysql_error(). $eol;
$tabCommandes=mysql_select('commandes', 'idCommande, idUser, login, emailCommande, siren, refDocument, dateCommande', 'dateReception=0', false, MYSQL_ASSOC);
$nbCommandes=count($tabCommandes);
$tabTmp=array();
foreach ($tabCommandes as $commande) {
$tabTmp['g'.$commande['idCommande']]=$commande;
}
$tabCommandes=$tabTmp;
unset($tabTmp);
echo date('Y/m/d - H:i:s') ." - Il y a $nbCommandes actes en attente de r<>ception courrier ou num<75>risation !$eol";
//print_r($tabCommandes);
//die();
/**
** Connexion au site FTP
**/
echo date('Y/m/d - H:i:s') ." - R<>cup<75>ration des fichiers num<75>ris<69>s en attente de traitement...".EOL;
$ret=ftp_mget(ACTES_IGNUM_FTP_URL, ACTES_IGNUM_FTP_USER, ACTES_IGNUM_FTP_PASS, '*.pdf', ACTES_IGNUM_LOCAL_DIR, false);
if ($ret===false)
2009-06-08 09:22:59 +00:00
die (date ('Y/m/d - H:i:s')." - ERREUR : R<>cup<75>ration des actes num<75>ris<69>s impossible !".EOL);
else
2009-06-08 09:22:59 +00:00
echo date ('Y/m/d - H:i:s')." - FIN de la r<>cup<75>ration des flux Hugin en FTP ($ret fichiers r<>cup<75>r<EFBFBD>s).".EOL;
/**
** Connexion au site FTP
**/
echo date('Y/m/d - H:i:s') ." - Traitement des actes non encore trait<69>s !".EOL;
$tabFichiers=array();
$dh = opendir(ACTES_IGNUM_LOCAL_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename<>'.' && $filename<>'..' && strtolower(substr($filename, -4))=='.pdf')
2009-06-08 09:22:59 +00:00
$tabFichiers[] = $filename;
}
rsort($tabFichiers);
$tabActes=array();
foreach ($tabFichiers as $k => $nomFichier) {
if (strtolower(substr($nomFichier,0,1))=='g') {
echo date ('Y/m/d - H:i:s')." - Fichier $nomFichier disponible pour traitement.".EOL;
$numFichier=str_replace('.pdf','', $nomFichier);
$tabActes[] = $nomFichier;
if (isset($tabCommandes[$numFichier]) && is_array($tabCommandes[$numFichier])) {
$commande=$tabCommandes[$numFichier];
echo date ('Y/m/d - H:i:s')." - Le fichier $nomFichier correspond <20> la commande ".$commande['refDocument'].' de '.$commande['login'].'.'.EOL;
$numFichierSuiv=str_replace('.pdf','', $tabFichiers[$k+1]);
if (strpos($numFichierSuiv, $numFichier) === false) {
/** Le fichier $nomFichier est une commande livr<76>e en un seul fichier **/
$siren=$commande['siren'];
$ref=$commande['refDocument'];
$nomCible="acte-$siren-$ref.pdf";
if (file_exists(ACTES_IG_LOCAL_DIR.$nomCible))
2009-06-08 09:22:59 +00:00
echo date ('Y/m/d - H:i:s')." - La commande $nomCible est d<>j<EFBFBD> mise <20> disposition !".EOL;
else {
if (rename(ACTES_IGNUM_LOCAL_DIR.$nomFichier, ACTES_IG_LOCAL_DIR.$nomCible)) {
2009-06-08 09:22:59 +00:00
echo date ('Y/m/d - H:i:s')." - La commande $nomCible a <20>t<EFBFBD> mise <20> disposition.".EOL;
if (trim($commande['emailCommande'])<>'') {
2009-06-08 09:22:59 +00:00
$subject="Actes ou Statuts disponible pour $siren";
$message ="Le document command<6E> pour le siren $siren est disponible en t<>l<EFBFBD>chargement sur le site de Scores & D<>cisions <20> l'adresse suivante :\r\n\r\n";
$message.="http://extranet.scores-decisions.com/pdf/$nomCible\r\n";
$headers = 'From: infoslegales@scores-decisions.com' . "\r\n" .
'Reply-To: infoslegales@scores-decisions.com';
if (mail($commande['emailCommande'], $subject, $message, $headers))
2009-06-08 09:22:59 +00:00
echo date ('Y/m/d - H:i:s').' - Un email a <20>t<EFBFBD> envoy<6F> <20> '.$commande['emailCommande']." pour la commande $nomCible.".EOL;
else
echo date ('Y/m/d - H:i:s').' - ERREUR : Impossible d\'envoyer l\'email <20> '.$commande['emailCommande']." pour la commande $nomCible.".EOL;
}
mysql_update('commandes', array('dateReception'=>date('YmdHis')),'idCommande='.$commande['idCommande']);
2009-06-08 09:22:59 +00:00
//print_r($tabCommandes[$numFichier]);
}
2009-03-12 17:35:43 +00:00
else print 'Impossible de d<>placer '.ACTES_IGNUM_LOCAL_DIR.$nomFichier.' en '.ACTES_IG_LOCAL_DIR.$nomCible.' !'.EOL;
}
}
else
2009-06-08 09:22:59 +00:00
// On traitera plus tard le multi fichier !
echo date ('Y/m/d - H:i:s')." - @TODO : La commande $numFichier est en plusieur fichiers !".EOL;
// die();
}
}
}
2009-06-08 09:22:59 +00:00
?>