Clean line extrafields when deleting supplier order

This commit is contained in:
Marc Guenneugues 2020-04-23 18:27:06 +02:00
parent 6819255b76
commit 64d877bc7b

View File

@ -1994,6 +1994,17 @@ class CommandeFournisseur extends CommonOrder
// End call triggers
}
$main = MAIN_DB_PREFIX . 'commande_fournisseurdet';
$ef = $main . "_extrafields";
$sql = "DELETE FROM $ef WHERE fk_object IN (SELECT rowid FROM $main WHERE fk_commande = " . $this->id . ")";
dol_syslog(get_class($this)."::delete extrafields lines", LOG_DEBUG);
if (!$this->db->query($sql))
{
$this->error = $this->db->lasterror();
$this->errors[] = $this->db->lasterror();
$error++;
}
$sql = "DELETE FROM ".MAIN_DB_PREFIX."commande_fournisseurdet WHERE fk_commande =".$this->id;
dol_syslog(get_class($this)."::delete", LOG_DEBUG);
if (!$this->db->query($sql))
@ -3700,6 +3711,14 @@ class CommandeFournisseurLigne extends CommonOrderLine
$this->db->begin();
// extrafields
$result = $this->deleteExtraFields();
if ($result < 0)
{
$this->db->rollback();
return -1;
}
$sql = 'DELETE FROM '.MAIN_DB_PREFIX."commande_fournisseurdet WHERE rowid=".$this->id;
dol_syslog(__METHOD__, LOG_DEBUG);