"Affiche l'aide.", 'acte' => "Intégration des actes ", 'bilan' => "Intégration des bilans", 'echo' => "Affiche les informations lors du traitement", ) ); $opts->parse(); } catch (Zend_Console_Getopt_Exception $e) { echo $e->getUsageMessage(); exit; } //Usage if(count($opts->getOptions())==0 || isset($opts->help)) { echo "Vérifie les actes numérisés reçus en provenance des Greffes."; echo "\n\n"; echo $opts->getUsageMessage(); echo "\n"; exit; } $c = new Zend_Config($application->getOptions()); Zend_Registry::set('config', $c); /** * Connexion à la base de données */ $db = Zend_Db::factory($c->profil->db->sdv1); Zend_Db_Table_Abstract::setDefaultAdapter($db); function fichierBilan($fichier) { global $dirStockage, $dirPDF; if (preg_match('/^(bilan|acte)-([0-9]{9})-([0-9]{4})_([a-z]{0,})-([0-9]{8})/', $fichier, $matches)) { $siren = $matches[2]; $annee = $matches[3]; $type = $matches[4]; if ($type == '') $type = 'sociaux'; $dateCloture = $matches[5]; //Création arborescence repertoire $dirNew = $dirStockage.'/bilans/'.$type.'/'.$annee; if (!is_dir($dirNew)) { mkdir($dirNew, 0, true); } //Copie du fichier $fichierDest = 'bilan-'.$siren.'-'.$type.'-'.$dateCloture.'.pdf'; if (file_exists($dirNew.'/'.$fichierDest)) { echo "BILAN - Le fichier $fichier a déjà été copié.\n"; } else { if ( copy($dirPDF.'/'.$fichier, $dirNew.'/'.$fichierDest) ) { echo "BILAN - Copie du fichier $dirPDF/$fichier vers $dirNew/$fichierDest\n"; } else { echo "BILAN - ERREUR - Copie du fichier $fichier impossible!\n"; } } } else { echo "BILAN - ERREUR - Fichier $fichier ne correspond pas au schéma.\n"; } } function fichierActe($fichier) { global $dirStockage, $dirPDF; 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_acte = $matches[2]; $date_acte = $matches[3]; $annee = substr($date_acte,0,4); $mois = substr($date_acte,4,2); $num_acte = $matches[4]; $actesM = new Application_Model_ActesFiles(); $sql = $actesM->select() ->where('siren=?', $siren) ->where('type=?', $type_acte) ->where('date=?', $date_acte) ->where('num=?', $num_acte); $result = $actesM->fetchRow($sql); //Création arborescence repertoire $dirNew = $dirStockage.'/actes/'.$annee.'/'.$mois; if (!is_dir($dirNew)) { mkdir($dirNew, 0, true); } //Copie du fichier if (file_exists($dirNew.'/'.$fichier)) { echo "ACTE - Le fichier $fichier a déjà été copié.\n"; } else { if ( copy($dirPDF.'/'.$fichier, $dirNew.'/'.$fichier) ) { if ( null === $result ) { $actesM->insert(array( 'siren' => $siren, 'type' => $type_acte, 'date' => $date_acte, 'num' => $num_acte, 'file' => $fichier, )); } echo "ACTE - Copie du fichier $dirPDF/$fichier vers $dirNew/$fichier\n"; } else { echo "ACTE - ERREUR - Copie du fichier $fichier impossible!\n"; } } } elseif (substr($ref,0,2)=='ST' && preg_match('/^(.*)-([0-9]{8})-/', $ref, $matches)) { $siren = $matches[1]; $type_acte = $matches[2]; $date_acte = $matches[3]; //Création arborescence repertoire $dirNew = $dirStockage.'/actes/'.$annee.'/'.$mois; if (!is_dir($dirNew)) { mkdir($dirNew, 0, true); } //Copie du fichier $fichierDest = 'acte-'.$siren.'-'.$type_acte.'-'.$date_acte.'.pdf'; if (file_exists($dirNew.'/'.$fichier)) { echo "ACTE - Le fichier $fichier a déjà été copié.\n"; } else { if ( copy($dirPDF.'/'.$fichier, $dirNew.'/'.$fichierDest) ) { echo "ACTE - Copie du fichier $dirPDF/$fichier vers $dirNew/$fichierDest\n"; } else { echo "ACTE - ERREUR - Copie du fichier $fichier impossible!\n"; } } } else { echo "ACTE - ERREUR - Fichier $fichier ne correspond pas au schéma.\n"; } } //=> Start $dirPDF = '/var/www/data/pdf'; $dirStockage = '/var/www/data/greffes'; if (!is_dir($dirStockage)) { echo "Le nouveau répertoire $dirStockage n'a pas été trouvé.\n"; exit; } if (!is_dir($dirStockage.'/bilans')) { mkdir($dirStockage.'/bilans'); } if (!is_dir($dirStockage.'/actes')) { mkdir($dirStockage.'/actes'); } $i = 0; if ($handle = opendir($dirPDF)) { while ( false !== ($file = readdir($handle)) ) { $i++; if ( $file != '..' && $file != '.' ) { echo "Analyse du fichier $file ($i)\n"; // Traitement acte if ($opts->acte) { if ( preg_match('/^acte-([0-9]{9})-([0-9a-zA-Z]{1,})-/', $file) ) { fichierActe($file); } } // Traitement bilan if ($opts->bilan) { if ( preg_match('/^(bilan|acte)-([0-9]{9})-([0-9]{4})_/', $file) ) { fichierBilan($file); } } } } }