Better error return for project delete method

This commit is contained in:
Florian HENRY 2014-05-07 15:11:46 +02:00
parent 40577ab445
commit 45e134bfef
2 changed files with 34 additions and 8 deletions

View File

@ -465,26 +465,46 @@ class Project extends CommonObject
dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task"; $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_task";
$sql.= " WHERE fk_projet=" . $this->id; $sql.= " WHERE fk_projet=" . $this->id;
dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet"; $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet";
$sql.= " WHERE rowid=" . $this->id; $sql.= " WHERE rowid=" . $this->id;
dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
$sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_extrafields"; $sql = "DELETE FROM " . MAIN_DB_PREFIX . "projet_extrafields";
$sql.= " WHERE fk_object=" . $this->id; $sql.= " WHERE fk_object=" . $this->id;
dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if (!$resql)
{
$this->errors[] = $this->db->lasterror();
$error++;
}
if ($resql) if (empty($error))
{ {
// We remove directory // We remove directory
$projectref = dol_sanitizeFileName($this->ref); $projectref = dol_sanitizeFileName($this->ref);
@ -496,9 +516,8 @@ class Project extends CommonObject
$res = @dol_delete_dir_recursive($dir); $res = @dol_delete_dir_recursive($dir);
if (!$res) if (!$res)
{ {
$this->error = 'ErrorFailToDeleteDir'; $this->errors[] = 'ErrorFailToDeleteDir';
$this->db->rollback(); $error++;
return 0;
} }
} }
} }
@ -512,18 +531,25 @@ class Project extends CommonObject
if ($result < 0) if ($result < 0)
{ {
$error++; $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 // End call triggers
} }
}
dol_syslog(get_class($this) . "::delete sql=" . $sql, LOG_DEBUG); if (empty($error)) {
$this->db->commit(); $this->db->commit();
return 1; return 1;
} }
else 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); dol_syslog(get_class($this) . "::delete " . $this->error, LOG_ERR);
$this->db->rollback(); $this->db->rollback();
return -1; return -1;

View File

@ -64,7 +64,7 @@ $result = restrictedArea($user, 'projet', $object->id);
$extralabels=$extrafields->fetch_name_optionals_label($object->table_element); $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_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'));
/* /*