Ajout control des actes déjà présent

This commit is contained in:
Michael RICOIS 2013-04-19 09:16:10 +00:00
parent 9b28291dd9
commit 667a032ff9

View File

@ -31,6 +31,7 @@ try {
'list' => "Liste les actes en attente disponible sur le FTP et affiche les informations",
'get-s' => "Recupère seulement les actes du FTP (un seul document si la référence est spécifier G<NNN> )",
'send-s' => "Récupère les actes et envoi un mail à chaque client (un seul acte si la référence est spécifier G<NNN>)",
'control' => "Control",
)
);
$opts->parse();
@ -95,6 +96,68 @@ set_time_limit(0);
$db = Zend_Db::factory($c->profil->db->sdv1);
Zend_Db_Table_Abstract::setDefaultAdapter($db);
/**
* List actes files and check if an entry exist in the database
* greffes/actes/AAAA/MM
* preg_match('/^acte-([0-9]{9})-(ST)-([0-9]{8})-.*\.pdf/', $fichier, $matches)
* preg_match('/^acte-([0-9]{9})-([0-9a-zA-Z]{1,})-([0-9]{8})-.*-([0-9]{2})\.pdf/', $fichier, $matches)
*/
if ($opts->control) {
$dir = PATH_DATA.'/greffes/actes';
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
//Annee
while (($anneeDir = readdir($dh)) !== false) {
if ($anneeDir != '.' && $anneeDir != '..') {
if ($dhAnneeDir = opendir($dir . DIRECTORY_SEPARATOR . $anneeDir)) {
//Mois
while (($moisDir = readdir($dhAnneeDir)) !== false) {
if ($moisDir != '.' && $moisDir != '..') {
//Fichier
if ($dhFile = opendir($dir)) {
while (($file = readdir($dhFile)) !== false) {
if ($file != '.' && $file != '..') {
if (preg_match('/^acte-([0-9]{9})-([0-9a-zA-Z]{1,})-([0-9]{8})-.*-([0-9]{2})\.pdf/', $fichier, $matches)) {
$siren = $matches[1];
$type = $matches[2];
$date = $matches[3];
$num = $matches[4];
$actesM = new Application_Model_ActesFiles();
$sql = $actesM->select()
->where('siren=?', $siren)
->where('type=?', $type)
->where('date=?', $date)
->where('num=?', $num);
$result = $actesM->fetchRow($sql);
if ( null === $result ) {
$actesM->insert(array(
'siren' => $siren,
'type' => $type,
'date' => $date,
'num' => $num,
'file' => $fichier,
));
}
}
}
}
closedir($dh);
}
}
}
closedir($dhAnneeDir);
}
}
}
closedir($dh);
}
}
exit;
}
/**
* Liste des commandes non traités depuis la base de données
*/
@ -137,8 +200,8 @@ $tabFichiersFtp = array();
foreach ($contents as $filename){
$indice = 0;
if (preg_match('/[g|c][0-9]+\.pdf/', $filename)
|| preg_match('/[g|c][0-9]+-[0-9]{1,2}\.pdf/', $filename)){
|| preg_match('/[g|c][0-9]+-[0-9]{1,2}\.pdf/', $filename)){
list($ref, $indice) = explode('-', str_replace(array('.pdf', 'g', 'c'), array('','',''), $filename));
if(empty($indice)) $indice = 0;
$tabFichiersFtp[$ref.'-'.$indice] = strtolower($filename);
@ -195,7 +258,7 @@ foreach ($tabCommandes as $ref => $commande){
//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 (ftp_get($conn_id, ACTES_IGNUM_LOCAL_DIR.$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";
@ -205,7 +268,7 @@ foreach ($tabCommandes as $ref => $commande){
//Copie et renommage du fichier suivant la ref infogreffe (s'il n'existe pas déjà)
$sirenC = $commande['siren'];
$refC = $commande['refDocument'];
require_once 'Infogreffe/Infogreffe.php';
$infogreffe = new Infogreffe();
if (preg_match('/^([0-9]{4}_).*?$/', $refC, $matches)){
@ -217,9 +280,9 @@ foreach ($tabCommandes as $ref => $commande){
$nomCible = $infogreffe->acteFilename($sirenC, $refC);
$type = 'bilan';
}
if (file_exists(ACTES_IGNUM_LOCAL_DIR.$fichier) &&
!file_exists(PATH_DATA.$path.$nomCible)) {
if (file_exists(ACTES_IGNUM_LOCAL_DIR.$fichier)
&& !file_exists(PATH_DATA.$path.$nomCible)) {
if (rename(ACTES_IGNUM_LOCAL_DIR.$fichier, PATH_DATA.$path.$nomCible)){
if ( $type == 'acte' ){
preg_match('/^acte-([0-9]{9})-([0-9a-zA-Z]{1,})-([0-9]{8})-(.*)-(.*)-(.*)-(.*)-(.*)-([0-9]{1,})\.pdf$/', $fichier, $matches);