Fix: La suppression de contrat échouait si il existait des lignes contrat.

This commit is contained in:
Laurent Destailleur 2007-01-22 22:35:42 +00:00
parent d0d52ec7a7
commit 6804b213de
2 changed files with 48 additions and 20 deletions

View File

@ -543,10 +543,20 @@ class Contrat extends CommonObject
* \return int < 0 si erreur, > 0 si ok * \return int < 0 si erreur, > 0 si ok
*/ */
function delete($user,$langs='',$conf='') function delete($user,$langs='',$conf='')
{
$this->db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."contratdet";
$sql.= " WHERE fk_contrat=".$this->id;
dolibarr_syslog("Contrat::delete contratdet sql=".$sql);
$resql=$this->db->query($sql);
if ($resql)
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."contrat"; $sql = "DELETE FROM ".MAIN_DB_PREFIX."contrat";
$sql.= " WHERE rowid=".$this->id; $sql.= " WHERE rowid=".$this->id;
dolibarr_syslog("Contrat::delete contrat sql=".$sql);
$resql=$this->db->query($sql); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
@ -556,14 +566,25 @@ class Contrat extends CommonObject
$result=$interface->run_triggers('CONTRACT_DELETE',$this,$user,$langs,$conf); $result=$interface->run_triggers('CONTRACT_DELETE',$this,$user,$langs,$conf);
// Fin appel triggers // Fin appel triggers
$this->db->commit();
return 1; return 1;
} }
else else
{ {
$this->error=$this->db->error(); $this->error=$this->db->error();
dolibarr_syslog("Contrat::delete ERROR ".$this->error);
$this->db->rollback();
return -1; return -1;
} }
} }
else
{
$this->error=$this->db->error();
dolibarr_syslog("Contrat::delete ERROR ".$this->error);
$this->db->rollback();
return -2;
}
}
/** /**

View File

@ -285,10 +285,17 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes')
{ {
$contrat = new Contrat($db); $contrat = new Contrat($db);
$contrat->id = $_GET["id"]; $contrat->id = $_GET["id"];
$contrat->delete($user,$langs,$conf); $result=$contrat->delete($user,$langs,$conf);
if ($result >= 0)
{
Header("Location: index.php"); Header("Location: index.php");
return; return;
} }
else
{
$mesg='<div class="error">'.$contrat->error.'</div>';
}
}
} }