Laurent Destailleur 2008-10-01 19:37:54 +00:00
parent be5826057e
commit ecb4128496
2 changed files with 33 additions and 2 deletions

View File

@ -854,7 +854,11 @@ class Categorie
}
/**
* Retourne les catégories contenant le produit $id
* Return list of categories linked to element of type $type with id $typeid
* @param id Id of element
* @param type Type of link ('customer','fournisseur','societe'...)
* @param typeid Type id of link (0,1,2...)
* @return array List of category objects
*/
function containing ($id,$type,$typeid)
{

View File

@ -700,8 +700,35 @@ class Societe extends CommonObject
if ( $this->db->begin())
if ($this->db->begin())
{
// Added by Matelli (see http://matelli.fr/showcases/patchs-dolibarr/fix-third-party-deleting.html)
// Removing every "categorie" link with this company
require_once(DOL_DOCUMENT_ROOT."/categories/categorie.class.php");
$static_cat = new Categorie($this->db);
$toute_categs = array();
// Fill $toute_categs array with an array of (type => array of ("Categorie" instance))
if ($this->client || $this->prospect)
{
$toute_categs ['societe'] = $static_cat->containing($this->id,'societe',2);
}
if ($this->fournisseur)
{
$toute_categs ['fournisseur'] = $static_cat->containing($this->id,'fournisseur',1);
}
// Remove each "Categorie"
foreach ($toute_categs as $type => $categs_type)
{
foreach ($categs_type as $cat)
{
$cat->del_type($this, $type);
}
}
// Remove contacts
$sql = "DELETE from ".MAIN_DB_PREFIX."socpeople";
$sql.= " WHERE fk_soc = " . $id;
if ($this->db->query($sql))