forked from Wavyzz/dolibarr
Fix: add deleteObjectLinked function
This commit is contained in:
@@ -2320,38 +2320,26 @@ class Commande extends CommonObject
|
||||
dol_syslog("Commande::delete sql=".$sql);
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_syslog("CustomerOrder::delete error", LOG_ERR);
|
||||
dol_syslog(get_class($this)."::delete error", LOG_ERR);
|
||||
$error++;
|
||||
}
|
||||
|
||||
// Delete order
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commande WHERE rowid = ".$this->id;
|
||||
dol_syslog("Commande::delete sql=".$sql);
|
||||
dol_syslog(get_class($this)."::delete sql=".$sql, LOG_DEBUG);
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_syslog("CustomerOrder::delete error", LOG_ERR);
|
||||
dol_syslog(get_class($this)."::delete error", LOG_ERR);
|
||||
$error++;
|
||||
}
|
||||
|
||||
// Delete linked object
|
||||
// TODO deplacer dans le common
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$this->id;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
dol_syslog("Commande::delete sql=".$sql);
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_syslog("CustomerOrder::delete error", LOG_ERR);
|
||||
$error++;
|
||||
}
|
||||
$res = $this->deleteObjectLinked();
|
||||
if ($res < 0) $error++;
|
||||
|
||||
// Delete linked contacts
|
||||
$res = $this->delete_linked_contact();
|
||||
if ($res < 0)
|
||||
{
|
||||
dol_syslog("CustomerOrder::delete error", LOG_ERR);
|
||||
$error++;
|
||||
}
|
||||
if ($res < 0) $error++;
|
||||
|
||||
// On efface le repertoire de pdf provisoire
|
||||
$comref = dol_sanitizeFileName($this->ref);
|
||||
@@ -2381,7 +2369,7 @@ class Commande extends CommonObject
|
||||
}
|
||||
}
|
||||
|
||||
if ($error == 0)
|
||||
if (! $error)
|
||||
{
|
||||
// Appel des triggers
|
||||
include_once(DOL_DOCUMENT_ROOT . "/core/class/interfaces.class.php");
|
||||
|
||||
@@ -1130,12 +1130,12 @@ class Facture extends CommonObject
|
||||
|
||||
$error=0;
|
||||
$this->db->begin();
|
||||
|
||||
// Delete linked object
|
||||
$res = $this->deleteObjectLinked();
|
||||
if ($res < 0) $error++;
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$rowid;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
|
||||
if ($this->db->query($sql))
|
||||
if (! $error)
|
||||
{
|
||||
// If invoice was converted into a discount not yet consumed, we remove discount
|
||||
$sql = 'DELETE FROM '.MAIN_DB_PREFIX.'societe_remise_except';
|
||||
|
||||
@@ -294,7 +294,7 @@ abstract class CommonObject
|
||||
$sql.= " WHERE element_id =".$this->id;
|
||||
$sql.= " AND fk_c_type_contact IN (".$listId.")";
|
||||
|
||||
dol_syslog(get_class($this)."::delete_linked_contact sql=".$sql);
|
||||
dol_syslog(get_class($this)."::delete_linked_contact sql=".$sql, LOG_DEBUG);
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
return 1;
|
||||
@@ -1629,6 +1629,30 @@ abstract class CommonObject
|
||||
dol_print_error($this->db);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete all links between an object $this
|
||||
*
|
||||
* @return int >0 if OK, <0 if KO
|
||||
*/
|
||||
function deleteObjectLinked()
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$this->id;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
|
||||
dol_syslog(get_class($this)."::deleteObjectLinked sql=".$sql, LOG_DEBUG);
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->error=$this->db->lasterror();
|
||||
dol_syslog(get_class($this)."::deleteObjectLinked error=".$this->error, LOG_ERR);
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set statut of an object
|
||||
|
||||
@@ -761,16 +761,16 @@ class Expedition extends CommonObject
|
||||
|
||||
if ( $this->db->query($sql) )
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$this->id;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
// Delete linked object
|
||||
$res = $this->deleteObjectLinked();
|
||||
if ($res < 0) $error++;
|
||||
|
||||
if ( $this->db->query($sql) )
|
||||
if (! $error)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."expedition";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
if ( $this->db->query($sql) )
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$this->db->commit();
|
||||
|
||||
|
||||
@@ -585,16 +585,8 @@ class Fichinter extends CommonObject
|
||||
$this->db->begin();
|
||||
|
||||
// Delete linked object
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$this->id;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
dol_syslog("Fichinter::delete sql=".$sql);
|
||||
if (! $this->db->query($sql) )
|
||||
{
|
||||
dol_syslog("Fichinter::delete error", LOG_ERR);
|
||||
$this->error=$this->db->lasterror();
|
||||
$error++;
|
||||
}
|
||||
$res = $this->deleteObjectLinked();
|
||||
if ($res < 0) $error++;
|
||||
|
||||
// Delete linked contacts
|
||||
$res = $this->delete_linked_contact();
|
||||
|
||||
@@ -549,15 +549,18 @@ class Livraison extends CommonObject
|
||||
{
|
||||
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
|
||||
$this->db->begin();
|
||||
|
||||
$error=0;
|
||||
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."livraisondet";
|
||||
$sql.= " WHERE fk_livraison = ".$this->id;
|
||||
if ( $this->db->query($sql) )
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."element_element";
|
||||
$sql.= " WHERE fk_target = ".$this->id;
|
||||
$sql.= " AND targettype = '".$this->element."'";
|
||||
if ( $this->db->query($sql) )
|
||||
// Delete linked object
|
||||
$res = $this->deleteObjectLinked();
|
||||
if ($res < 0) $error++;
|
||||
|
||||
if (! $error)
|
||||
{
|
||||
$sql = "DELETE FROM ".MAIN_DB_PREFIX."livraison";
|
||||
$sql.= " WHERE rowid = ".$this->id;
|
||||
|
||||
Reference in New Issue
Block a user