From d6328f159451bcb8e02ee43fb88c07e6d839e8c3 Mon Sep 17 00:00:00 2001 From: Rodolphe Quiedeville Date: Thu, 24 Nov 2005 09:26:09 +0000 Subject: [PATCH] =?UTF-8?q?Am=E9lioration=20des=20performances=20de=20d=E9?= =?UTF-8?q?tection=20des=20fichiers=20d=E9j=E0=20trait=E9/charg=E9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htdocs/telephonie/script/import-cdr-ftp.php | 63 ++++++++++++++++----- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/htdocs/telephonie/script/import-cdr-ftp.php b/htdocs/telephonie/script/import-cdr-ftp.php index a0eb6588f23..9d7a28e1be5 100644 --- a/htdocs/telephonie/script/import-cdr-ftp.php +++ b/htdocs/telephonie/script/import-cdr-ftp.php @@ -58,12 +58,12 @@ if (is_dir($file)) if (is_file($file.$xfile) && substr($xfile, -4) == ".csv") { $files[$i] = $file.$xfile; - dolibarr_syslog($file.$xfile." ajouté"); + dolibarr_syslog($xfile." ajouté"); $i++; } else { - dolibarr_syslog($file.$xfile." ignoré"); + dolibarr_syslog($xfile." ignoré"); } } @@ -85,8 +85,6 @@ else exit ; } - - /* * Vérification du fournisseur * @@ -118,7 +116,40 @@ else exit ; } - +/* + * Vérification des fichiers traités + * + */ +$fichiers = array(); +$sql = "SELECT distinct(fichier_cdr)"; +$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details"; +if ($db->query($sql)) +{ + while ($row = $db->fetch_row($resql)) + { + array_push($fichiers, $row[0]); + } + $db->free($resql); +} +else +{ + dolibarr_syslog("Erreur recherche fournisseur"); +} +$sql = "SELECT distinct(fichier)"; +$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_import_cdr"; +if ($db->query($sql)) +{ + while ($row = $db->fetch_row($resql)) + { + array_push($fichiers, $row[0]); + } + $db->free($resql); +} +else +{ + dolibarr_syslog("Erreur recherche fournisseur"); + exit ; +} /* * Charge les ID de lignes * @@ -154,7 +185,7 @@ foreach ($files as $xfile) { if (is_readable($xfile)) { - if ( _verif($db, $xfile) == 0) + if ( _verif($db, $xfile, $fichiers) == 0) { dolibarr_syslog("Lecture du fichier $xfile"); @@ -326,14 +357,22 @@ foreach ($files as $xfile) } -function _verif($db, $file) +function _verif($db, $file, $fichiers) { $result = 0; /* * Vérifie que le fichier n'a pas déjà été chargé * */ + if (in_array (basename($file), $fichiers)) + { + print "Trouvé Linux"; + dolibarr_syslog ("Fichier ".basename($file)." déjà chargé/traité"); + $result = -1; + } + + /* $sql = "SELECT count(fichier)"; $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_import_cdr"; $sql .= " WHERE fichier = '".basename($file)."'"; @@ -362,12 +401,7 @@ function _verif($db, $file) dolibarr_syslog("Erreur SQL vérification du fichier"); $result = -1; } - - /* - * Vérifie que le fichier n'a pas déjà été traité - * - */ - + $sql = "SELECT count(fichier_cdr)"; $sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details"; $sql .= " WHERE fichier_cdr = '".basename($file)."'"; @@ -397,9 +431,8 @@ function _verif($db, $file) dolibarr_syslog($sql); $result = -1; } - + */ return $result; } - return $error;