diff --git a/htdocs/adherents/class/adherent.class.php b/htdocs/adherents/class/adherent.class.php
index 87a9b14877e..13a6bdea810 100644
--- a/htdocs/adherents/class/adherent.class.php
+++ b/htdocs/adherents/class/adherent.class.php
@@ -1520,7 +1520,12 @@ class Adherent extends CommonObject
$lien = '';
$lienfin='';
}
-
+ if ($option == 'category')
+ {
+ $lien = '';
+ $lienfin='';
+ }
+
$picto='user';
$label=$langs->trans("ShowMember");
diff --git a/htdocs/categories/categorie.php b/htdocs/categories/categorie.php
index ddc7079c786..ec2a2b49d63 100644
--- a/htdocs/categories/categorie.php
+++ b/htdocs/categories/categorie.php
@@ -99,7 +99,7 @@ $error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->e
if (empty($reshook))
{
- //Suppression d'un objet d'une categorie
+ // Remove element from category
if ($removecat > 0)
{
if ($type==0 && ($user->rights->produit->creer || $user->rights->service->creer))
@@ -113,17 +113,20 @@ if (empty($reshook))
{
$object = new Societe($db);
$result = $object->fetch($objectid);
+ $elementtype = 'fournisseur';
}
if ($type==2 && $user->rights->societe->creer)
{
$object = new Societe($db);
$result = $object->fetch($objectid);
+ $elementtype = 'societe';
}
if ($type == 3 && $user->rights->adherent->creer)
{
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
$object = new Adherent($db);
$result = $object->fetch($objectid);
+ $elementtype = 'member';
}
$cat = new Categorie($db);
$result=$cat->fetch($removecat);
@@ -507,7 +510,7 @@ function formCategory($db,$object,$typeid,$socid=0)
//print $c->getNomUrl(1);
print img_object('','category').' '.$way."";
- // Lien supprimer
+ // Link to delete from category
print '
';
$permission=0;
if ($typeid == 0) $permission=($user->rights->produit->creer || $user->rights->service->creer);
diff --git a/htdocs/categories/class/categorie.class.php b/htdocs/categories/class/categorie.class.php
index 96c111f2dc0..377c06fd8d8 100644
--- a/htdocs/categories/class/categorie.class.php
+++ b/htdocs/categories/class/categorie.class.php
@@ -420,6 +420,7 @@ class Categorie
$sql .= " WHERE fk_categorie = ".$this->id;
$sql .= " AND fk_".($type=='fournisseur'?'societe':$type)." = ".$obj->id;
+ dol_syslog(get_class($this).'::del_type sql='.$sql);
if ($this->db->query($sql))
{
return 1;
diff --git a/htdocs/categories/viewcat.php b/htdocs/categories/viewcat.php
index f174f5f4a60..57cffd387de 100644
--- a/htdocs/categories/viewcat.php
+++ b/htdocs/categories/viewcat.php
@@ -36,6 +36,7 @@ $ref=GETPOST('ref');
$type=GETPOST('type');
$action=GETPOST('action');
$confirm=GETPOST('confirm');
+$removeelem = GETPOST('removeelem','int');
if ($id == "")
{
@@ -61,6 +62,40 @@ $type=$object->type;
* Actions
*/
+// Remove element from category
+if ($id > 0 && $removeelem > 0)
+{
+ if ($type==0 && ($user->rights->produit->creer || $user->rights->service->creer))
+ {
+ require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
+ $tmpobject = new Product($db);
+ $result = $tmpobject->fetch($removeelem);
+ $elementtype = 'product';
+ }
+ if ($type==1 && $user->rights->societe->creer)
+ {
+ $tmpobject = new Societe($db);
+ $result = $tmpobject->fetch($removeelem);
+ $elementtype = 'fournisseur';
+ }
+ if ($type==2 && $user->rights->societe->creer)
+ {
+ $tmpobject = new Societe($db);
+ $result = $tmpobject->fetch($removeelem);
+ $elementtype = 'societe';
+ }
+ if ($type == 3 && $user->rights->adherent->creer)
+ {
+ require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
+ $tmpobject = new Adherent($db);
+ $result = $tmpobject->fetch($removeelem);
+ $elementtype = 'member';
+ }
+
+ $result=$object->del_type($tmpobject,$elementtype);
+ if ($result < 0) dol_print_error('',$object->error);
+}
+
if ($user->rights->categorie->supprimer && $action == 'confirm_delete' && $confirm == 'yes')
{
if ($object->delete($user) >= 0)
@@ -214,7 +249,7 @@ if ($object->type == 0)
{
print " ";
print "\n";
- print '| '.$langs->trans("ProductsAndServices")." | \n";
+ print '| '.$langs->trans("ProductsAndServices")." | \n";
if (count($prods) > 0)
{
@@ -224,10 +259,24 @@ if ($object->type == 0)
$var=!$var;
print "\t\n";
print '| ';
- if ($prod->type == 1) print img_object($langs->trans("ShowService"),"service");
- else print img_object($langs->trans("ShowProduct"),"product");
- print " ".$prod->ref." | \n";
+ print $prod->getNomUrl(1,'category');
+ print "\n";
print ''.$prod->libelle." | \n";
+ // Link to delete from category
+ print '';
+ $typeid=$object->type;
+ $permission=0;
+ if ($typeid == 0) $permission=($user->rights->produit->creer || $user->rights->service->creer);
+ if ($typeid == 1) $permission=$user->rights->societe->creer;
+ if ($typeid == 2) $permission=$user->rights->societe->creer;
+ if ($typeid == 3) $permission=$user->rights->adherent->creer;
+ if ($permission)
+ {
+ print "id."&type=".$typeid."&removeelem=".$prod->id."'>";
+ print img_delete($langs->trans("DeleteFromCat")).' ';
+ print $langs->trans("DeleteFromCat")."";
+ }
+ print ' | ';
print " \n";
}
}
@@ -249,8 +298,8 @@ if ($object->type == 1)
else
{
print " ";
- print "\n";
- print "| ".$langs->trans("Suppliers")." | \n";
+ print ''."\n";
+ print '| '.$langs->trans("Suppliers")." | \n";
if (count($socs) > 0)
{
@@ -261,9 +310,24 @@ if ($object->type == 1)
print "\t\n";
print '| ';
- print $soc->getNomUrl(1);
+ print $soc->getNomUrl(1,'category_supplier');
print " | \n";
-
+ // Link to delete from category
+ print '';
+ $typeid=$object->type;
+ $permission=0;
+ if ($typeid == 0) $permission=($user->rights->produit->creer || $user->rights->service->creer);
+ if ($typeid == 1) $permission=$user->rights->societe->creer;
+ if ($typeid == 2) $permission=$user->rights->societe->creer;
+ if ($typeid == 3) $permission=$user->rights->adherent->creer;
+ if ($permission)
+ {
+ print "id."&type=".$typeid."&removeelem=".$soc->id."'>";
+ print img_delete($langs->trans("DeleteFromCat")).' ';
+ print $langs->trans("DeleteFromCat")."";
+ }
+ print ' | ';
+
print " \n";
}
}
@@ -285,8 +349,8 @@ if($object->type == 2)
else
{
print " ";
- print "\n";
- print "| ".$langs->trans("Customers")." | \n";
+ print ''."\n";
+ print '| '.$langs->trans("Customers")." | \n";
if (count($socs) > 0)
{
@@ -298,9 +362,23 @@ if($object->type == 2)
$var=!$var;
print "\t\n";
print '| ';
- print $soc->getNomUrl(1);
+ print $soc->getNomUrl(1,'category');
print " | \n";
-
+ // Link to delete from category
+ print '';
+ $typeid=$object->type;
+ $permission=0;
+ if ($typeid == 0) $permission=($user->rights->produit->creer || $user->rights->service->creer);
+ if ($typeid == 1) $permission=$user->rights->societe->creer;
+ if ($typeid == 2) $permission=$user->rights->societe->creer;
+ if ($typeid == 3) $permission=$user->rights->adherent->creer;
+ if ($permission)
+ {
+ print "id."&type=".$typeid."&removeelem=".$soc->id."'>";
+ print img_delete($langs->trans("DeleteFromCat")).' ';
+ print $langs->trans("DeleteFromCat")."";
+ }
+ print ' | ';
print " \n";
}
}
@@ -326,7 +404,7 @@ if ($object->type == 3)
{
print " ";
print " |