From 45e134bfef79275eb38f4a2ee7b7c75cb501a301 Mon Sep 17 00:00:00 2001 From: Florian HENRY <florian.henry@open-conept.pro> Date: Wed, 7 May 2014 15:11:46 +0200 Subject: [PATCH] Better error return for project delete method --- htdocs/projet/class/project.class.php | 40 ++++++++++++++++++++++----- htdocs/projet/fiche.php | 2 +- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/htdocs/projet/class/project.class.php b/htdocs/projet/class/project.class.php index e4b9ac53454..4c43c6c9e68 100644 --- a/htdocs/projet/class/project.class.php +++ b/htdocs/projet/class/project.class.php @@ -465,26 +465,46 @@ class Project extends CommonObject dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); + if (!$resql) + { + $this->errors[] = $this->db->lasterror(); + $error++; + } $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task"; $sql.= " WHERE fk_projet=" . $this->id; dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); + if (!$resql) + { + $this->errors[] = $this->db->lasterror(); + $error++; + } $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet"; $sql.= " WHERE rowid=" . $this->id; dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); + if (!$resql) + { + $this->errors[] = $this->db->lasterror(); + $error++; + } $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_extrafields"; $sql.= " WHERE fk_object=" . $this->id; dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); $resql = $this->db->query($sql); + if (!$resql) + { + $this->errors[] = $this->db->lasterror(); + $error++; + } - if ($resql) + if (empty($error)) { // We remove directory $projectref = dol_sanitizeFileName($this->ref); @@ -496,9 +516,8 @@ class Project extends CommonObject $res = @dol_delete_dir_recursive($dir); if (!$res) { - $this->error = 'ErrorFailToDeleteDir'; - $this->db->rollback(); - return 0; + $this->errors[] = 'ErrorFailToDeleteDir'; + $error++; } } } @@ -512,18 +531,25 @@ class Project extends CommonObject if ($result < 0) { $error++; - $this->errors = $interface->errors; + foreach ($interface->errors as $errmsg ) { + dol_syslog(get_class($this) . "::delete " . $errmsg, LOG_ERR); + $this->errors[] =$errmsg; + } } // End call triggers } + } - dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); + if (empty($error)) { $this->db->commit(); return 1; } else { - $this->error = $this->db->lasterror(); + foreach ( $this->errors as $errmsg ) { + dol_syslog(get_class($this) . "::delete " . $errmsg, LOG_ERR); + $this->error .= ($this->error ? ', ' . $errmsg : $errmsg); + } dol_syslog(get_class($this) . "::delete " . $this->error, LOG_ERR); $this->db->rollback(); return -1; diff --git a/htdocs/projet/fiche.php b/htdocs/projet/fiche.php index f1f360a3f81..d1295ae99b4 100644 --- a/htdocs/projet/fiche.php +++ b/htdocs/projet/fiche.php @@ -64,7 +64,7 @@ $result = restrictedArea($user, 'projet', $object->id); $extralabels=$extrafields->fetch_name_optionals_label($object->table_element); $date_start=dol_mktime(0,0,0,GETPOST('projectmonth','int'),GETPOST('projectday','int'),GETPOST('projectyear','int')); -$date_end=dol_mktime(0,0,0,GETPOST('projectendmonth','int'),GETPOST('projectendday','int'),GETPOST('projectendyear','int'));; +$date_end=dol_mktime(0,0,0,GETPOST('projectendmonth','int'),GETPOST('projectendday','int'),GETPOST('projectendyear','int')); /* -- GitLab