This commit is contained in:
Michael RICOIS 2010-04-20 15:47:47 +00:00
commit cc7c5947c8
9 changed files with 142 additions and 332 deletions

View File

@ -1,6 +1,20 @@
#!/usr/bin/php -q
<?php
// Paramètres
if ( ( $argc > 1 )
|| in_array($argv[1], array('--help', '-help', '-h', '-?')) ) {
?>
Vérifie les actes numérisés reçus en provenance des Greffes.
Avec les options --help, -help, -h, et -?, vous obtiendrez cette aide.
Sans aucun paramètre, récupération des actes.
Utilisation :
<?php echo $argv[0]; ?> >> /vers/fichier.log
<?php
exit;
}
define ('PATH_DATA', '/var/www/data');
define ('ACTES_IGNUM_LOCAL_DIR', PATH_DATA.'/pdf/scan/');
define ('ACTES_IG_LOCAL_DIR', PATH_DATA.'/pdf/');
@ -13,86 +27,73 @@ require_once realpath(dirname(__FILE__) . '/../config/config.inc');
require_once realpath(dirname(__FILE__) . '/mysql.php');
define('INCLUDE_PATH', realpath(dirname(__FILE__).'/../includes/') );
require_once FWK_PATH.'/common/ftp.php';
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érifie les actes numérisés reçus en provenance des Greffes.
Sans aucun paramètre, récupération des actes.
";/*Sinon:
-d:JJ/MM/AAAA Date de dé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êtes sur le site des JO (défaut=$tempsMinEntreRequetes)
-i:X \" MAX \" \" \" \" \" \" \" \" \" \" (défaut=$tempsMaxEntreRequetes)
-v Vérifier que toutes les annonces du JO sont en base !
";*/
$argv=$_SERVER['argv'];
if ($_SERVER['argc']==1) $lastJO=true;
else {
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");
}
}
function sendMail($commande, $nomCible){
$subject = "Actes ou Statuts disponible pour ".$commande['siren'];
$message = "Le document commandé pour le siren ".$commande['siren']." est disponible en téléchargement sur le site de Scores & Décisions à 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) ){
echo date ('Y/m/d - H:i:s').' - Un email a été envoyé à '.$commande['emailCommande']." pour la commande $nomCible.".EOL;
} else {
echo date ('Y/m/d - H:i:s').' - ERREUR : Impossible d\'envoyer l\'email à '.$commande['emailCommande']." pour la commande $nomCible.".EOL;
}
}
set_time_limit(0);
$eol = "\n";
/*
* Liste des commandes non traités
* Connexion à la base de données
*/
$con = mysql_pconnect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS);
if (!($con === false)) {
if (mysql_select_db(MYSQL_DB, $con) === false)
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
if (mysql_select_db(MYSQL_DB, $con) === false){
echo date ('Y/m/d - H:i:s') . ' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error() . $eol;
}
} else {
echo date ('Y/m/d - H:i:s') .' - ERREUR : MySql n°'. mysql_errno() .') : '. mysql_error(). $eol;
}
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();
/*
* Liste des commandes non traités
*/
$tabCommandes = mysql_select('commandes', 'idCommande, idUser, login, emailCommande, siren, refDocument, typeCommande, dateCommande', 'dateReception=0', false, MYSQL_ASSOC);
$nbCommandes = count($tabCommandes);
$tabTmp = array();
foreach ($tabCommandes as $commande) {
$tabTmp['g'.$commande['idCommande']]=$commande;
if ($commande['typeCommande']=='C'){
$tabTmp['c'.$commande['idCommande']] = $commande;
} elseif ($commande['typeCommande']=='G' || $commande['typeCommande']==''){
$tabTmp['g'.$commande['idCommande']] = $commande;
}
}
$tabCommandes=$tabTmp;
$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érisation !$eol";
//print_r($tabCommandes);
//die();
/*
* Connexion au site FTP pour récupérer tout les documents scannées
* au format pdf et les placés dans ACTES_IGNUM_LOCAL_DIR
*/
echo date('Y/m/d - H:i:s') ." - Récupération des fichiers numérisé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)
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des actes numérisés impossible !".EOL);
else
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des flux Hugin en FTP ($ret fichiers récupérés).".EOL;
/*
* Liste de tout les fichiers disponible dans le repertoire
* Connexion au site FTP pour récupérer tout les documents scannées
* au format pdf et les placés dans ACTES_IGNUM_LOCAL_DIR
*/
echo date('Y/m/d - H:i:s') ." - Récupération des fichiers numérisé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){
die (date ('Y/m/d - H:i:s')." - ERREUR : Récupération des actes numérisés impossible !".EOL);
} else {
echo date ('Y/m/d - H:i:s')." - FIN de la récupération des actes en FTP ($ret fichiers récupérés).".EOL;
}
/*
* Liste de tout les fichiers disponible dans le repertoire
* et associe une clé pour faciliter le tri
*/
echo date('Y/m/d - H:i:s') ." - Traitement des actes non encore traités !".EOL;
@ -100,7 +101,7 @@ $tabFichiers = array();
$dh = opendir(ACTES_IGNUM_LOCAL_DIR);
while (false !== ($filename = readdir($dh))) {
if ($filename!='.' && $filename!='..' && strtolower(substr($filename, -4))=='.pdf')
{
{
list($ref, $indice) = explode('-',str_replace(array('G','.pdf'), array('',''), $filename));
if(empty($indice)) $indice = 0;
$tabFichiers[$ref.'-'.$indice] = strtolower($filename);
@ -109,24 +110,24 @@ while (false !== ($filename = readdir($dh))) {
/*
* Tri des fichiers par ordre décroissant
* Les noms des fichiers sont incrémenté par 1
* Les noms des fichiers sont incrémenté par 1
*/
krsort($tabFichiers);
/*
* Dans le cas ou il y a eu une erreur de scan, la production passe a nouveau le
* document dans le scanner et le fichier est envoyé sur le ftp
* Le document est nommé G[ref],G[ref]-1,G[ref]-2,.....pdf.
* Le document est nommé G[ref],G[ref]-1,G[ref]-2,.....pdf.
* On garde donc le dernier document scanné.
*/
$lastRef = '';
foreach($tabFichiers as $k => $val)
{
{
list($ref, $indice) = explode('-',$k);
if( $lastRef != $ref ) {
$tabFichiersTemp[] = $val;
}
$lastRef = $ref;
$lastRef = $ref;
}
$tabFichiers = $tabFichiersTemp;
unset($tabFichiersTemp);
@ -134,20 +135,20 @@ unset($tabFichiersTemp);
/*
* Association des documents numérisés avec les commandes
*/
$tabActes=array();
foreach ($tabFichiers as $k => $nomFichier)
$tabActes = array();
foreach ($tabFichiers as $k => $nomFichier)
{
if (strtolower(substr($nomFichier,0,1))=='g')
{
if (strtolower(substr($nomFichier,0,1))=='g' ||
strtolower(substr($nomFichier,0,1))=='c'){
echo date ('Y/m/d - H:i:s')." - Fichier $nomFichier disponible pour traitement.".EOL;
//Traitement des fichiers scannés une deuxième fois
$refFichier = str_replace('.pdf','', $nomFichier);
$refFichier = explode('-', $refFichier);
$numFichier = $refFichier[0];
$tabActes[] = $nomFichier;
//Detection de la référence fichier dans les commandes
if (isset($tabCommandes[$numFichier]) && is_array($tabCommandes[$numFichier]))
if (isset($tabCommandes[$numFichier]) && is_array($tabCommandes[$numFichier]))
{
$commande = $tabCommandes[$numFichier];
echo date ('Y/m/d - H:i:s')." - Le fichier $nomFichier correspond à la commande ".$commande['refDocument'].' de '.$commande['login'].'.'.EOL;
@ -160,34 +161,42 @@ foreach ($tabFichiers as $k => $nomFichier)
{
$nomCible = "bilan-$siren-$ref.pdf";
}
if (file_exists(ACTES_IG_LOCAL_DIR.$nomCible)) //Le fichier existe déjà
echo date ('Y/m/d - H:i:s')." - La commande $nomCible est déjà mise à disposition !".EOL;
else //Le fichier n'existe pas
{
if (rename(ACTES_IGNUM_LOCAL_DIR.$nomFichier, ACTES_IG_LOCAL_DIR.$nomCible))
{
//Le fichier existe déjà @todo : envoyé un mail quand même ?
if (file_exists(ACTES_IG_LOCAL_DIR.$nomCible)){
echo date ('Y/m/d - H:i:s')." - Le fichier de la commande $nomCible est déjà disponible !".EOL;
/*
* Vérifier que la date de reception est à nulle
* pour renvoyer le mail et mettre à jour la date de reception
*/
if ($commande['dateReception']==0){
echo date ('Y/m/d - H:i:s')." - Mise à jour de la commmande".EOL;
mysql_update('commandes', array('dateReception'=>date('YmdHis')),'idCommande='.$commande['idCommande']);
if (trim($commande['emailCommande'])!=''){
sendMail($commande, $nomCible);
}
}
//Le fichier n'existe pas
} else {
if (rename(ACTES_IGNUM_LOCAL_DIR.$nomFichier, ACTES_IG_LOCAL_DIR.$nomCible)){
echo date ('Y/m/d - H:i:s')." - La commande $nomCible a été mise à disposition.".EOL;
//Envoi email
if (trim($commande['emailCommande'])!='')
{
$subject="Actes ou Statuts disponible pour $siren";
$message ="Le document commandé pour le siren $siren est disponible en téléchargement sur le site de Scores & Décisions à 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))
echo date ('Y/m/d - H:i:s').' - Un email a été envoyé à '.$commande['emailCommande']." pour la commande $nomCible.".EOL;
else
echo date ('Y/m/d - H:i:s').' - ERREUR : Impossible d\'envoyer l\'email à '.$commande['emailCommande']." pour la commande $nomCible.".EOL;
if (trim($commande['emailCommande'])!=''){
sendMail($commande, $nomCible);
}
//MAJ date de reception
mysql_update('commandes', array('dateReception'=>date('YmdHis')),'idCommande='.$commande['idCommande']);
//print_r($tabCommandes[$numFichier]);
//Impossible de renommer
} else {
echo 'Impossible de déplacer '.ACTES_IGNUM_LOCAL_DIR.$nomFichier.' en '.ACTES_IG_LOCAL_DIR.$nomCible.' !'.EOL;
}
else print 'Impossible de déplacer '.ACTES_IGNUM_LOCAL_DIR.$nomFichier.' en '.ACTES_IG_LOCAL_DIR.$nomCible.' !'.EOL;
}
} //Fin test fichier
}
}
}
} //Fin fichier référence gxxxx.pdf
} //Fin liste des fichiers
?>

View File

@ -260,8 +260,6 @@ function defineMenu(){
'href' => 'menu_href_administration');
$children[] = array('data' => 'Commandes Greffe',
'href' => 'menu_href_greffescmd');
$children[] = array('data' => 'Commandes Greffe Courrier',
'href' => 'menu_href_greffescmdcourrier');
$children[] = array('data' => 'Commandes International',
'href' => 'menu_href_internationalcmd',
'perm' => array('list' => array( 'INTERNATIONAL' ),

View File

@ -464,16 +464,6 @@ function menu_href_greffescmd()
return $href;
}
function menu_href_greffescmdcourrier()
{
$href = false;
if(hasModeEdition())
{
$href = './?page=greffescmd_courrier';
}
return $href;
}
function menu_href_internationalcmd()
{
return './?page=international_commandes';

View File

@ -106,11 +106,6 @@ case 'greffescmd':
$page2 = 'greffescmd.php';
require_once realpath(dirname(__FILE__)).'/pages/main.php';
break;
case 'greffescmd_courrier':
$title = 'Gestion des commandes Greffes par courrier';
$page2 = 'greffescmd_courrier.php';
require_once realpath(dirname(__FILE__)).'/pages/main.php';
break;
case 'international_commandes':
$title = 'Commandes - International';
$page2 = 'international_commandes.php';

View File

@ -1,212 +0,0 @@
<?php
/*
* Liste des commandes passés en mode courrier
*
*/
if (!$_SESSION['connected'])
{
?>
<div id="center">
Vous devez être connecté afin de pouvoir utiliser cette fonctionnalité
</div>
<?php
}
elseif(!hasModeEdition())
{
?>
<div id="center">
L'accès à cette page est restreint
</div>
<?php
}
//Affichage des commandes
else
{
//Données
isset($_REQUEST['num'])?
$num = trim($_REQUEST['num']) :
$num = '';
isset($_REQUEST['siren'])?
$siren = trim(preg_replace('/[^0-9]/','', $_REQUEST['siren'])) :
$siren = '';
isset($_REQUEST['statut'])?
$statut = trim($_REQUEST['statut']) :
$statut = 0;
isset($_REQUEST['date'])?
$date = trim($_REQUEST['date']) :
$date = date('m');
require_once 'dbbootstrap.php';
require_once 'infogreffe/constantes.php';
setDbConn('sdv1');
$dateToday = date('m');
$dateTime1 = date('Y-m-d H:i:s', mktime(0,0,0,$date,0,date('Y')));
$dateTime2 = date('Y-m-d H:i:s', mktime(0,0,0,$date+1,0,date('Y')));
$dateIntervalle = 6;
//Liste des statuts
$q = Doctrine_Query::create()
->from('CommandesStatut')
->where('typeCommande = ?', 'C')
->orderBy('ordre ASC');
$cStatuts = $q->execute();
//Liste des commandes
$q = Doctrine_Query::create()
->from('Commandes')
->where('typeCommande = ?', 'C')
->andWhere('statutCommande = ?', $statut)
->andWhere('dateCommande > ?', $dateTime1)
->andWhere('dateCommande < ?', $dateTime2);
$firephp->log($q->getSql(),'SQL');
$firephp->log($q->getParams(),'PARAMS');
$commandes = $q->execute();
?>
<style type="text/css">
#center{width:760px; padding-right:10px; padding-left:10px;}
.blockh2{margin:5px; }
table {border-collapse:collapse; margin:5px 0; width:100%;}
th, td {border:1px solid; padding:5px;}
</style>
<script type="text/javascript">
$(document).ready(function()
{
var url = './pages/ajax/greffescmd_courrier.php';
$('.changeEtat').change(function(){
var newEtat = $(this).val();
var name = $(this).attr('name');
$.post(url, { changeEtat: newEtat },
function(data){ $('select[name='+name+']').replaceWith(data); }
);
});
});
</script>
<div id="center">
<h1>Commandes Courrier Greffes</h1>
<div class="blockh2">
<form name="" method="post" action="./?page=greffescmd_courrier">
<label>Etat</label>
<select name="statut">
<option value="0">Non traité</option>
<?php
foreach ($cStatuts as $cStatut)
{
$selected = '';
if( $cStatut->ordre == $statut) $selected = 'selected';
?>
<option value="<?=$cStatut->ordre?>" <?=$selected?>>
<?=$cStatut->libStatut?>
</option>
<?php
}
?>
</select>
<label>Date</label>
<select name="date">
<option>-</option>
<?php
for($i=$dateToday-$dateIntervalle; $i<=$dateToday; $i++)
{
$dateTime = mktime(0, 0, 0, $i+1, 0, date('Y'));
$selected = '';
if( $i==$date ){ $selected = 'selected'; }
?>
<option value="<?=$i?>" <?=$selected?>>
<?=date('m/Y', $dateTime)?>
</option>
<?php
}
?>
</select>
<br/>
<label>Numéro de gestion</label>&nbsp;
<input type="text" name="num" value="<?=$num?>"/>
&nbsp;<label>Siren</label>&nbsp;
<input type="text" name="siren" value="<?=$siren?>" />
&nbsp;<input type="submit" name="submit" value="Rechercher"/>
</form>
<table>
<tr>
<th></th>
<th>Siren</th>
<th>Email</th>
<th>Document</th>
<th>dateCommande</th>
<th>dateReception</th>
</tr>
<?php
if( $commandes->count() > 0 )
{
foreach($commandes as $commande)
{
?>
<tr>
<td>C<?=$commande->idCommande?></td>
<td>
<a href="./?page=greffes&vue=actes&siret=<?=$commande->siren?>" target="_blank">
<?=$commande->siren?></a>
</td>
<td><?=$commande->emailCommande?></td>
<td>
Ref : <?=$commande->refDocument?> <br/>
Type : <?=(array_key_exists('a'.substr($commande->refDocument, 0, 2), $typeActes)) ?
$typeActes['a'.substr($commande->refDocument, 0, 2)] : '';
?>
<br/>
Lib : <?=$commande->libDocument?>
<br/>
<select class="changeEtat" name="Etat<?=$commande->idCommande?>">
<?php
if($commande->statutCommande == 0)
{
?>
<option value="0">Non traité</option>
<?php
}
foreach ($cStatuts as $cStatut)
{
$selected = '';
//Selection du statut en cours
if($cStatut->ordre == $commande->statutCommande)
{
$selected = 'selected';
}
//Ne pas afficher les états précedents et les états suivant +2
if( $cStatut->ordre == $commande->statutCommande ||
$cStatut->ordre == $commande->statutCommande+1 )
{
?>
<option value="<?=$commande->idCommande?>-<?=$cStatut->id?>" <?=$selected?>>
<?=$cStatut->libStatut?>
</option>
<?php
}
}
?>
</select>
<br/>
<a href="./pages_saisie/gencourrier.php?id=<?=$commande->idCommande?>"
target="_blank">Générer le courrier</a>
</td>
<td><?=$commande->dateCommande?></td>
<td><?=$commande->dateReception?></td>
</tr>
<?php
}
}
?>
</table>
</div>
</div>
<?php
} // Fin permission d'accès

View File

@ -452,15 +452,16 @@ $tabEvent = array(
'2901' => 'Transfert de siège',
'5500' => 'Vente/cession : Entreprise réalisant la vente',
'6700' => 'Radiation',
'1010' => 'Déclaration de cessation de paiement',
'1050' => 'Homologation de la conciliation',
'1055' => 'Résolution de la conciliation',
);
?>
<select id="jugement" name="jugement[even][]" multiple size="5">
<select id="jugement" name="jugement[even][]" size="5">
<option value="0000">-</option>
<?php
//Tri des libéllées par ordre alphabétique
//Tri des libellées par ordre alphabétique
asort($tabEvent);
//Affichage
foreach($tabEvent as $key => $event)

View File

@ -0,0 +1,13 @@
<?php
include_once(realpath(dirname(__FILE__).'/constantes.php'));
header('Content-Type: text/html; charset='.CHARSET);
?>
<label>Date cessation de paiement </label>
<input type="text" class="date" name="jugement[datePaie]" size="10" maxlength="10" value="" />
<span class="left">(Format JJ/MM/AAAA)</span>
<?php
require_once realpath(dirname(__FILE__)).'/field_administrateur.php';
require_once realpath(dirname(__FILE__)).'/field_mandataire.php';
?>
<label>Compl&eacute;ment, huissier, opposition, etc...</label>
<input type="text" name="jugement[comp]" size="70" maxlength="255" value="" />

View File

@ -0,0 +1,8 @@
<?php
include_once(realpath(dirname(__FILE__).'/constantes.php'));
header('Content-Type: text/html; charset='.CHARSET);
require_once realpath(dirname(__FILE__)).'/field_administrateur.php';
require_once realpath(dirname(__FILE__)).'/field_mandataire.php';
?>
<label>Compl&eacute;ment, huissier, opposition, etc...</label>
<input type="text" name="jugement[comp]" size="70" maxlength="255" value="" />

View File

@ -0,0 +1,8 @@
<?php
include_once(realpath(dirname(__FILE__).'/constantes.php'));
header('Content-Type: text/html; charset='.CHARSET);
require_once realpath(dirname(__FILE__)).'/field_administrateur.php';
require_once realpath(dirname(__FILE__)).'/field_mandataire.php';
?>
<label>Compl&eacute;ment, huissier, opposition, etc...</label>
<input type="text" name="jugement[comp]" size="70" maxlength="255" value="" />