Ajout quelques tests de garde fou
This commit is contained in:
parent
fd9c09bf50
commit
dfdd3e2be8
@ -18,23 +18,130 @@
|
|||||||
* $Id$
|
* $Id$
|
||||||
* $Source$
|
* $Source$
|
||||||
*
|
*
|
||||||
* Script d'import des CDR
|
* Script d'import des CDR des fournisseurs
|
||||||
*/
|
*/
|
||||||
|
|
||||||
require ("../../master.inc.php");
|
require ("../../master.inc.php");
|
||||||
|
|
||||||
$opt = getopt("f:");
|
$opt = getopt("f:i:");
|
||||||
|
|
||||||
$file = $opt['f'];
|
$file = $opt['f'];
|
||||||
|
$id_fourn = $opt['i'];
|
||||||
|
|
||||||
if (strlen($file) == 0)
|
if (strlen($file) == 0 || strlen($id_fourn) == 0)
|
||||||
{
|
{
|
||||||
print "Usage :\n php import-cdr.php -f FILENAME\n";
|
print "Usage :\n php import-cdr.php -f <filename> -i <id_fournisseur>\n";
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vérification du fournisseur
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$sql = "SELECT f.rowid, f.nom";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_fournisseur as f";
|
||||||
|
$sql .= " WHERE f.rowid = ".$id_fourn;
|
||||||
|
|
||||||
|
if ($db->query($sql))
|
||||||
|
{
|
||||||
|
$num = $db->num_rows();
|
||||||
|
|
||||||
|
if ($num == 1)
|
||||||
|
{
|
||||||
|
$row = $db->fetch_row();
|
||||||
|
dolibarr_syslog ("Import fichier ".$file);
|
||||||
|
dolibarr_syslog("Fournisseur [".$row[0]."] ".$row[1]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_syslog("Erreur Fournisseur inexistant : ".$id_fourn);
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (is_readable($file))
|
dolibarr_syslog("Erreur recherche fournisseur");
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vérifie que le fichier n'a pas déjà été chargé
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$sql = "SELECT count(*)";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_import_cdr";
|
||||||
|
$sql .= " WHERE fichier = '".$file."'";
|
||||||
|
|
||||||
|
if ($db->query($sql))
|
||||||
|
{
|
||||||
|
$num = $db->num_rows();
|
||||||
|
|
||||||
|
if ($num == 1)
|
||||||
{
|
{
|
||||||
|
$row = $db->fetch_row();
|
||||||
|
if ($row[0] > 0)
|
||||||
|
{
|
||||||
|
dolibarr_syslog ("Fichier ".$file." déjà chargé dans import-log");
|
||||||
|
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_syslog("Erreur vérif du fichier");
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_syslog("Erreur SQL vérification du fichier");
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Vérifie que le fichier n'a pas déjà été traité
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
$sql = "SELECT count(*)";
|
||||||
|
$sql .= " FROM ".MAIN_DB_PREFIX."telephonie_communications_details";
|
||||||
|
$sql .= " WHERE fichier = '".$file."'";
|
||||||
|
|
||||||
|
if ($db->query($sql))
|
||||||
|
{
|
||||||
|
$num = $db->num_rows();
|
||||||
|
|
||||||
|
if ($num == 1)
|
||||||
|
{
|
||||||
|
$row = $db->fetch_row();
|
||||||
|
if ($row[0] > 0)
|
||||||
|
{
|
||||||
|
dolibarr_syslog ("Fichier ".$file." déjà traité");
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_syslog("Erreur vérif du fichier dans les comm");
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
dolibarr_syslog("Erreur SQL vérification du fichier dans les comm");
|
||||||
|
exit ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Traitement
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (is_readable($file))
|
||||||
|
{
|
||||||
|
|
||||||
dolibarr_syslog("Lecture du fichier $file");
|
dolibarr_syslog("Lecture du fichier $file");
|
||||||
|
|
||||||
@ -66,7 +173,8 @@ else
|
|||||||
|
|
||||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."telephonie_import_cdr";
|
$sql = "INSERT INTO ".MAIN_DB_PREFIX."telephonie_import_cdr";
|
||||||
|
|
||||||
$sql .= "(idx,ligne,date,heure,num,dest,dureetext,tarif,montant,duree, fichier)";
|
$sql .= "(idx,ligne,date,heure,num,dest,dureetext,tarif,montant,duree";
|
||||||
|
$sql .= ", fichier, fk_fournisseur)";
|
||||||
|
|
||||||
$sql .= " VALUES (";
|
$sql .= " VALUES (";
|
||||||
$sql .= "$index";
|
$sql .= "$index";
|
||||||
@ -80,6 +188,7 @@ else
|
|||||||
$sql .= ",".ereg_replace(',','.',$montant);
|
$sql .= ",".ereg_replace(',','.',$montant);
|
||||||
$sql .= ",".$duree_secondes;
|
$sql .= ",".$duree_secondes;
|
||||||
$sql .= ",'".ereg_replace('"','',$file)."'";
|
$sql .= ",'".ereg_replace('"','',$file)."'";
|
||||||
|
$sql .= " ,".$id_fourn;
|
||||||
$sql .= ")";
|
$sql .= ")";
|
||||||
|
|
||||||
if(ereg("^[0-9]+$", $duree_secondes))
|
if(ereg("^[0-9]+$", $duree_secondes))
|
||||||
@ -121,12 +230,12 @@ else
|
|||||||
}
|
}
|
||||||
|
|
||||||
fclose($hf);
|
fclose($hf);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print "Erreur lecture : $file";
|
print "Erreur lecture : $file";
|
||||||
dolibarr_syslog($file . " not readable");
|
dolibarr_syslog($file . " not readable");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
return $error;
|
return $error;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user