Rollback si le fichier contient des datas erronnees
This commit is contained in:
parent
bdc24d8cef
commit
780c5f7442
@ -70,12 +70,12 @@ class FacturationImportCdr {
|
|||||||
if (is_file($dir.$xfile) && substr($xfile, -4) == ".csv")
|
if (is_file($dir.$xfile) && substr($xfile, -4) == ".csv")
|
||||||
{
|
{
|
||||||
$files[$i] = $dir.$xfile;
|
$files[$i] = $dir.$xfile;
|
||||||
dolibarr_syslog("FacturationImportCdr::Import ".$xfile." ajouté");
|
dolibarr_syslog("FacturationImportCdr::Import ".$xfile." ajoute");
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("FacturationImportCdr::Import ".$xfile." ignoré");
|
dolibarr_syslog("FacturationImportCdr::Import ".$xfile." ignore");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ class FacturationImportCdr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Vérification des fichiers charges
|
* Verification des fichiers charges
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$fichiers = array();
|
$fichiers = array();
|
||||||
@ -125,7 +125,7 @@ class FacturationImportCdr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Vérification des fichiers traités
|
* Verification des fichiers traites
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
$sql = "SELECT distinct(fichier_cdr)";
|
$sql = "SELECT distinct(fichier_cdr)";
|
||||||
@ -185,19 +185,21 @@ class FacturationImportCdr {
|
|||||||
{
|
{
|
||||||
if ( $this->_verif($this->db, $xfile, $fichiers) == 0)
|
if ( $this->_verif($this->db, $xfile, $fichiers) == 0)
|
||||||
{
|
{
|
||||||
|
$error = 0;
|
||||||
dolibarr_syslog("FacturationImportCdr::Import Lecture du fichier $xfile", LOG_DEBUG);
|
dolibarr_syslog("FacturationImportCdr::Import Lecture du fichier $xfile", LOG_DEBUG);
|
||||||
array_push($this->messages,array('info',"Fichier ".basename($xfile)." : utilisation format ".$cdrformat->nom));
|
array_push($this->messages,array('info',"Fichier ".basename($xfile)." : utilisation format ".$cdrformat->nom));
|
||||||
$cdrformat->ReadFile($xfile);
|
|
||||||
|
$error = $cdrformat->ReadFile($xfile);
|
||||||
|
|
||||||
$this->messages=array_merge($this->messages, $cdrformat->messages);
|
$this->messages=array_merge($this->messages, $cdrformat->messages);
|
||||||
|
|
||||||
$error = 0;
|
|
||||||
$line = 0;
|
$line = 0;
|
||||||
$line_inserted = 0;
|
$line_inserted = 0;
|
||||||
$hf = fopen ($xfile, "r");
|
$hf = fopen ($xfile, "r");
|
||||||
$line = 0;
|
$line = 0;
|
||||||
|
|
||||||
if ($this->db->query("BEGIN"))
|
if ($this->db->query("BEGIN") && $error == 0)
|
||||||
{
|
{
|
||||||
foreach ($cdrformat->datas as $data)
|
foreach ($cdrformat->datas as $data)
|
||||||
{
|
{
|
||||||
@ -242,27 +244,27 @@ class FacturationImportCdr {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("FacturationImportCdr::Import Ligne : $cont ignorée", LOG_INFO);
|
dolibarr_syslog("FacturationImportCdr::Import Ligne : $cont ignoree", LOG_INFO);
|
||||||
$error++;
|
$error++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("FacturationImportCdr::Import Duree nulle Ligne : $cont ignorée", LOG_INFO);
|
dolibarr_syslog("FacturationImportCdr::Import Duree nulle Ligne : $cont ignoree", LOG_INFO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
dolibarr_syslog("FacturationImportCdr::Import Ligne $ligne inconnue Ligne : $cont ignorée", LOG_INFO);
|
dolibarr_syslog("FacturationImportCdr::Import Ligne $ligne inconnue Ligne : $cont ignoree", LOG_INFO);
|
||||||
array_push($this->messages,array('warning',"Ligne $ligne inconnue"));
|
array_push($this->messages,array('warning',"Ligne $ligne inconnue"));
|
||||||
}
|
}
|
||||||
$line++;
|
$line++;
|
||||||
}
|
}
|
||||||
|
|
||||||
dolibarr_syslog("FacturationImportCdr::Import $line lignes traitées dans le fichier", LOG_INFO);
|
dolibarr_syslog("FacturationImportCdr::Import $line lignes traitees dans le fichier", LOG_INFO);
|
||||||
$level = ($line > 0) ? 'info':'warning';
|
$level = ($line > 0) ? 'info':'warning';
|
||||||
array_push($this->messages,array($level,"$line lignes traitées dans le fichier"));
|
array_push($this->messages,array($level,"$line lignes traitees dans le fichier"));
|
||||||
dolibarr_syslog("FacturationImportCdr::Import $line_inserted insert effectués", LOG_INFO);
|
dolibarr_syslog("FacturationImportCdr::Import $line_inserted insert effectues", LOG_INFO);
|
||||||
$level = ($line_inserted > 0) ? 'info':'warning';
|
$level = ($line_inserted > 0) ? 'info':'warning';
|
||||||
array_push($this->messages,array($level,"$line_inserted ajout dans la table des CDR a traiter"));
|
array_push($this->messages,array($level,"$line_inserted ajout dans la table des CDR a traiter"));
|
||||||
|
|
||||||
@ -283,8 +285,13 @@ class FacturationImportCdr {
|
|||||||
{
|
{
|
||||||
$this->db->query("ROLLBACK");
|
$this->db->query("ROLLBACK");
|
||||||
dolibarr_syslog("ROLLBACK");
|
dolibarr_syslog("ROLLBACK");
|
||||||
|
array_push($this->messages, array('error',"Fichier ".basename($xfile)." : echec de l'importation"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
array_push($this->messages, array('error',"Fichier ".basename($xfile)." : echec de l'importation"));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user