Fix: status not updated after reopen

This commit is contained in:
Regis Houssin 2012-03-15 06:59:27 +01:00
parent 5d0a8945c1
commit 942b1f2a19
2 changed files with 18 additions and 13 deletions

View File

@ -438,7 +438,6 @@ else if ($action == 'setstatut' && $user->rights->propale->cloturer)
{ {
$mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("CloseAs")).'</div>'; $mesg='<div class="error">'.$langs->trans("ErrorFieldRequired",$langs->transnoentities("CloseAs")).'</div>';
$action='statut'; $action='statut';
$action='statut';
} }
else else
{ {

View File

@ -1815,32 +1815,38 @@ abstract class CommonObject
} }
/** /**
* Set statut of an object * Set status of an object
* *
* @param int $statut Statut to set * @param int $status Status to set
* @param int $elementId Id of element to force (use this->id by default) * @param int $elementId Id of element to force (use this->id by default)
* @param string $elementType Type of element to force (use ->this->element by default) * @param string $elementType Type of element to force (use ->this->element by default)
* @return int <0 if KO, >0 if OK * @return int <0 if KO, >0 if OK
*/ */
function setStatut($statut,$elementId='',$elementType='') function setStatut($status,$elementId='',$elementType='')
{ {
$elementId = (!empty($elementId)?$elementId:$this->id); $elementId = (!empty($elementId)?$elementId:$this->id);
$elementTable = (!empty($elementType)?$elementType:$this->table_element); $elementTable = (!empty($elementType)?$elementType:$this->table_element);
$this->db->begin();
$sql = "UPDATE ".MAIN_DB_PREFIX.$elementTable; $sql = "UPDATE ".MAIN_DB_PREFIX.$elementTable;
$sql.= " SET fk_statut = ".$statut; $sql.= " SET fk_statut = ".$status;
$sql.= " WHERE rowid=".$elementId; $sql.= " WHERE rowid=".$elementId;
dol_syslog(get_class($this)."::setStatut sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::setStatut sql=".$sql, LOG_DEBUG);
$resql = $this->db->query($sql); if ($this->db->query($sql))
if (!$resql) {
{ $this->db->commit();
$this->error=$this->db->lasterror(); $this->statut = $status;
dol_syslog(get_class($this)."::setStatut ".$this->error, LOG_ERR); return 1;
return -1; }
else
{
$this->error=$this->db->lasterror();
dol_syslog(get_class($this)."::setStatut ".$this->error, LOG_ERR);
$this->db->rollback();
return -1;
} }
return 1;
} }