Fix deletion of category

This commit is contained in:
Laurent Destailleur 2017-07-05 01:23:42 +02:00
parent c1e747fa39
commit e7e4252244

View File

@ -447,9 +447,10 @@ class Categorie extends CommonObject
* Delete a category from database * Delete a category from database
* *
* @param User $user Object user that ask to delete * @param User $user Object user that ask to delete
* @param int $notrigger 1=Does not execute triggers, 0= execute triggers
* @return int <0 KO >0 OK * @return int <0 KO >0 OK
*/ */
function delete($user) function delete($user, $notrigger=0)
{ {
global $conf,$langs; global $conf,$langs;
@ -462,6 +463,14 @@ class Categorie extends CommonObject
$this->db->begin(); $this->db->begin();
if (! $error && ! $notrigger)
{
// Call trigger
$result=$this->call_trigger('CATEGORY_DELETE',$user);
if ($result < 0) $error++;
// End call triggers
}
/* FIX #1317 : Check for child category and move up 1 level*/ /* FIX #1317 : Check for child category and move up 1 level*/
if (! $error) if (! $error)
{ {
@ -580,12 +589,10 @@ class Categorie extends CommonObject
$this->error=$this->db->lasterror(); $this->error=$this->db->lasterror();
$error++; $error++;
} }
else }
{
// Removed extrafields // Removed extrafields
if (! $error) if (! $error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
{
if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
{ {
$result=$this->deleteExtraFields(); $result=$this->deleteExtraFields();
if ($result < 0) if ($result < 0)
@ -594,13 +601,6 @@ class Categorie extends CommonObject
dol_syslog(get_class($this)."::delete erreur ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::delete erreur ".$this->error, LOG_ERR);
} }
} }
}
// Call trigger
$result=$this->call_trigger('CATEGORY_DELETE',$user);
if ($result < 0) { $error++; }
// End call triggers
}
}
if (! $error) if (! $error)
{ {