diff --git a/htdocs/product/class/product.class.php b/htdocs/product/class/product.class.php index 6b53fea0347b4e7a29addfb0561411a45e3eb7d3..7ebe18358c643b35738c1a2fa6ce9d9f61a6db65 100644 --- a/htdocs/product/class/product.class.php +++ b/htdocs/product/class/product.class.php @@ -876,10 +876,26 @@ class Product extends CommonObject // End call triggers } - // Delete all child tables + // Delete from product_batch on product delete if (! $error) { - $elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price','product_batch'); + $sql = "DELETE FROM ".MAIN_DB_PREFIX.'product_batch'; + $sql.= " WHERE fk_product_stock IN ("; + $sql.= "SELECT rowid FROM ".MAIN_DB_PREFIX.'product_stock'; + $sql.= " WHERE fk_product = ".$id.")"; + dol_syslog(get_class($this).'::delete', LOG_DEBUG); + $result = $this->db->query($sql); + if (! $result) + { + $error++; + $this->errors[] = $this->db->lasterror(); + } + } + + // Delete all child tables + if (! $error) + { + $elements = array('product_fournisseur_price','product_price','product_lang','categorie_product','product_stock','product_customer_price'); // product_batch done before foreach($elements as $table) { if (! $error)