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

@ -544,26 +544,47 @@ class Contrat extends CommonObject
*/ */
function delete($user,$langs='',$conf='') function delete($user,$langs='',$conf='')
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."contrat"; $this->db->begin();
$sql.= " WHERE rowid=".$this->id;
$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); $resql=$this->db->query($sql);
if ($resql) if ($resql)
{ {
// Appel des triggers $sql = "DELETE FROM ".MAIN_DB_PREFIX."contrat";
include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php"); $sql.= " WHERE rowid=".$this->id;
$interface=new Interfaces($this->db);
$result=$interface->run_triggers('CONTRACT_DELETE',$this,$user,$langs,$conf);
// Fin appel triggers
return 1; dolibarr_syslog("Contrat::delete contrat sql=".$sql);
} $resql=$this->db->query($sql);
else if ($resql)
{ {
$this->error=$this->db->error(); // Appel des triggers
return -1; include_once(DOL_DOCUMENT_ROOT . "/interfaces.class.php");
} $interface=new Interfaces($this->db);
} $result=$interface->run_triggers('CONTRACT_DELETE',$this,$user,$langs,$conf);
// Fin appel triggers
$this->db->commit();
return 1;
}
else
{
$this->error=$this->db->error();
dolibarr_syslog("Contrat::delete ERROR ".$this->error);
$this->db->rollback();
return -1;
}
}
else
{
$this->error=$this->db->error();
dolibarr_syslog("Contrat::delete ERROR ".$this->error);
$this->db->rollback();
return -2;
}
}
/** /**

View File

@ -285,9 +285,16 @@ 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);
Header("Location: index.php"); if ($result >= 0)
return; {
Header("Location: index.php");
return;
}
else
{
$mesg='<div class="error">'.$contrat->error.'</div>';
}
} }
} }