Can remove an element from category when on category view.

This commit is contained in:
Laurent Destailleur 2013-04-21 23:44:33 +02:00
parent 5893fadb58
commit 1f0adfaff5
6 changed files with 133 additions and 18 deletions

View File

@ -1520,6 +1520,11 @@ class Adherent extends CommonObject
$lien = '<a href="'.DOL_URL_ROOT.'/adherents/card_subscriptions.php?rowid='.$this->id.'">'; $lien = '<a href="'.DOL_URL_ROOT.'/adherents/card_subscriptions.php?rowid='.$this->id.'">';
$lienfin='</a>'; $lienfin='</a>';
} }
if ($option == 'category')
{
$lien = '<a href="'.DOL_URL_ROOT.'/categories/categorie.php?id='.$this->id.'&type=3">';
$lienfin='</a>';
}
$picto='user'; $picto='user';
$label=$langs->trans("ShowMember"); $label=$langs->trans("ShowMember");

View File

@ -99,7 +99,7 @@ $error=$hookmanager->error; $errors=array_merge($errors, (array) $hookmanager->e
if (empty($reshook)) if (empty($reshook))
{ {
//Suppression d'un objet d'une categorie // Remove element from category
if ($removecat > 0) if ($removecat > 0)
{ {
if ($type==0 && ($user->rights->produit->creer || $user->rights->service->creer)) if ($type==0 && ($user->rights->produit->creer || $user->rights->service->creer))
@ -113,17 +113,20 @@ if (empty($reshook))
{ {
$object = new Societe($db); $object = new Societe($db);
$result = $object->fetch($objectid); $result = $object->fetch($objectid);
$elementtype = 'fournisseur';
} }
if ($type==2 && $user->rights->societe->creer) if ($type==2 && $user->rights->societe->creer)
{ {
$object = new Societe($db); $object = new Societe($db);
$result = $object->fetch($objectid); $result = $object->fetch($objectid);
$elementtype = 'societe';
} }
if ($type == 3 && $user->rights->adherent->creer) if ($type == 3 && $user->rights->adherent->creer)
{ {
require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php'; require_once DOL_DOCUMENT_ROOT.'/adherents/class/adherent.class.php';
$object = new Adherent($db); $object = new Adherent($db);
$result = $object->fetch($objectid); $result = $object->fetch($objectid);
$elementtype = 'member';
} }
$cat = new Categorie($db); $cat = new Categorie($db);
$result=$cat->fetch($removecat); $result=$cat->fetch($removecat);
@ -507,7 +510,7 @@ function formCategory($db,$object,$typeid,$socid=0)
//print $c->getNomUrl(1); //print $c->getNomUrl(1);
print img_object('','category').' '.$way."</td>"; print img_object('','category').' '.$way."</td>";
// Lien supprimer // Link to delete from category
print '<td align="right">'; print '<td align="right">';
$permission=0; $permission=0;
if ($typeid == 0) $permission=($user->rights->produit->creer || $user->rights->service->creer); if ($typeid == 0) $permission=($user->rights->produit->creer || $user->rights->service->creer);

View File

@ -420,6 +420,7 @@ class Categorie
$sql .= " WHERE fk_categorie = ".$this->id; $sql .= " WHERE fk_categorie = ".$this->id;
$sql .= " AND fk_".($type=='fournisseur'?'societe':$type)." = ".$obj->id; $sql .= " AND fk_".($type=='fournisseur'?'societe':$type)." = ".$obj->id;
dol_syslog(get_class($this).'::del_type sql='.$sql);
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
return 1; return 1;

View File

@ -36,6 +36,7 @@ $ref=GETPOST('ref');
$type=GETPOST('type'); $type=GETPOST('type');
$action=GETPOST('action'); $action=GETPOST('action');
$confirm=GETPOST('confirm'); $confirm=GETPOST('confirm');
$removeelem = GETPOST('removeelem','int');
if ($id == "") if ($id == "")
{ {
@ -61,6 +62,40 @@ $type=$object->type;
* Actions * 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 ($user->rights->categorie->supprimer && $action == 'confirm_delete' && $confirm == 'yes')
{ {
if ($object->delete($user) >= 0) if ($object->delete($user) >= 0)
@ -214,7 +249,7 @@ if ($object->type == 0)
{ {
print "<br>"; print "<br>";
print "<table class='noborder' width='100%'>\n"; print "<table class='noborder' width='100%'>\n";
print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("ProductsAndServices")."</td></tr>\n"; print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("ProductsAndServices")."</td></tr>\n";
if (count($prods) > 0) if (count($prods) > 0)
{ {
@ -224,10 +259,24 @@ if ($object->type == 0)
$var=!$var; $var=!$var;
print "\t<tr ".$bc[$var].">\n"; print "\t<tr ".$bc[$var].">\n";
print '<td nowrap="nowrap" valign="top">'; print '<td nowrap="nowrap" valign="top">';
if ($prod->type == 1) print img_object($langs->trans("ShowService"),"service"); print $prod->getNomUrl(1,'category');
else print img_object($langs->trans("ShowProduct"),"product"); print "</td>\n";
print " <a href='".DOL_URL_ROOT."/product/fiche.php?id=".$prod->id."'>".$prod->ref."</a></td>\n";
print '<td valign="top">'.$prod->libelle."</td>\n"; print '<td valign="top">'.$prod->libelle."</td>\n";
// Link to delete from category
print '<td align="right">';
$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 "<a href= '".$_SERVER['PHP_SELF']."?".(empty($socid)?'id':'socid')."=".$object->id."&amp;type=".$typeid."&amp;removeelem=".$prod->id."'>";
print img_delete($langs->trans("DeleteFromCat")).' ';
print $langs->trans("DeleteFromCat")."</a>";
}
print '</td>';
print "</tr>\n"; print "</tr>\n";
} }
} }
@ -249,8 +298,8 @@ if ($object->type == 1)
else else
{ {
print "<br>"; print "<br>";
print "<table class='noborder' width='100%'>\n"; print '<table class="noborder" width="100%">'."\n";
print "<tr class='liste_titre'><td>".$langs->trans("Suppliers")."</td></tr>\n"; print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Suppliers")."</td></tr>\n";
if (count($socs) > 0) if (count($socs) > 0)
{ {
@ -261,8 +310,23 @@ if ($object->type == 1)
print "\t<tr ".$bc[$var].">\n"; print "\t<tr ".$bc[$var].">\n";
print '<td nowrap="nowrap" valign="top">'; print '<td nowrap="nowrap" valign="top">';
print $soc->getNomUrl(1); print $soc->getNomUrl(1,'category_supplier');
print "</td>\n"; print "</td>\n";
// Link to delete from category
print '<td align="right">';
$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 "<a href= '".$_SERVER['PHP_SELF']."?".(empty($socid)?'id':'socid')."=".$object->id."&amp;type=".$typeid."&amp;removeelem=".$soc->id."'>";
print img_delete($langs->trans("DeleteFromCat")).' ';
print $langs->trans("DeleteFromCat")."</a>";
}
print '</td>';
print "</tr>\n"; print "</tr>\n";
} }
@ -285,8 +349,8 @@ if($object->type == 2)
else else
{ {
print "<br>"; print "<br>";
print "<table class='noborder' width='100%'>\n"; print '<table class="noborder" width="100%">'."\n";
print "<tr class='liste_titre'><td>".$langs->trans("Customers")."</td></tr>\n"; print '<tr class="liste_titre"><td colspan="2">'.$langs->trans("Customers")."</td></tr>\n";
if (count($socs) > 0) if (count($socs) > 0)
{ {
@ -298,9 +362,23 @@ if($object->type == 2)
$var=!$var; $var=!$var;
print "\t<tr ".$bc[$var].">\n"; print "\t<tr ".$bc[$var].">\n";
print '<td nowrap="nowrap" valign="top">'; print '<td nowrap="nowrap" valign="top">';
print $soc->getNomUrl(1); print $soc->getNomUrl(1,'category');
print "</td>\n"; print "</td>\n";
// Link to delete from category
print '<td align="right">';
$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 "<a href= '".$_SERVER['PHP_SELF']."?".(empty($socid)?'id':'socid')."=".$object->id."&amp;type=".$typeid."&amp;removeelem=".$soc->id."'>";
print img_delete($langs->trans("DeleteFromCat")).' ';
print $langs->trans("DeleteFromCat")."</a>";
}
print '</td>';
print "</tr>\n"; print "</tr>\n";
} }
} }
@ -326,7 +404,7 @@ if ($object->type == 3)
{ {
print "<br>"; print "<br>";
print "<table class='noborder' width='100%'>\n"; print "<table class='noborder' width='100%'>\n";
print '<tr class="liste_titre"><td colspan="3">'.$langs->trans("Member")."</td></tr>\n"; print '<tr class="liste_titre"><td colspan="4">'.$langs->trans("Member")."</td></tr>\n";
if (count($prods) > 0) if (count($prods) > 0)
{ {
@ -336,10 +414,25 @@ if ($object->type == 3)
$var=!$var; $var=!$var;
print "\t<tr ".$bc[$var].">\n"; print "\t<tr ".$bc[$var].">\n";
print '<td nowrap="nowrap" valign="top">'; print '<td nowrap="nowrap" valign="top">';
print $member->getNomUrl(1); $member->ref=$member->login;
print $member->getNomUrl(1,0,'category');
print "</td>\n"; print "</td>\n";
print '<td valign="top">'.$member->lastname."</td>\n"; print '<td valign="top">'.$member->lastname."</td>\n";
print '<td valign="top">'.$member->firstname."</td>\n"; print '<td valign="top">'.$member->firstname."</td>\n";
// Link to delete from category
print '<td align="right">';
$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 "<a href= '".$_SERVER['PHP_SELF']."?".(empty($socid)?'id':'socid')."=".$object->id."&amp;type=".$typeid."&amp;removeelem=".$member->id."'>";
print img_delete($langs->trans("DeleteFromCat")).' ';
print $langs->trans("DeleteFromCat")."</a>";
}
print "</tr>\n"; print "</tr>\n";
} }
} }

View File

@ -2412,6 +2412,10 @@ class Product extends CommonObject
$lien = '<a href="'.DOL_URL_ROOT.'/product/composition/fiche.php?id='.$this->id.'">'; $lien = '<a href="'.DOL_URL_ROOT.'/product/composition/fiche.php?id='.$this->id.'">';
$lienfin='</a>'; $lienfin='</a>';
} }
else if ($option == 'category')
{
$lien = '<a href="'.DOL_URL_ROOT.'/categories/categorie.php?id='.$this->id.'&type=0">';
}
else else
{ {
$lien = '<a href="'.DOL_URL_ROOT.'/product/fiche.php?id='.$this->id.'">'; $lien = '<a href="'.DOL_URL_ROOT.'/product/fiche.php?id='.$this->id.'">';

View File

@ -1455,6 +1455,15 @@ class Societe extends CommonObject
{ {
$lien = '<a href="'.DOL_URL_ROOT.'/fourn/fiche.php?socid='.$this->id; $lien = '<a href="'.DOL_URL_ROOT.'/fourn/fiche.php?socid='.$this->id;
} }
else if ($option == 'category')
{
$lien = '<a href="'.DOL_URL_ROOT.'/categories/categorie.php?id='.$this->id.'&type=2';
}
else if ($option == 'category_supplier')
{
$lien = '<a href="'.DOL_URL_ROOT.'/categories/categorie.php?id='.$this->id.'&type=1';
}
// By default // By default
if (empty($lien)) if (empty($lien))
{ {
@ -1462,7 +1471,7 @@ class Societe extends CommonObject
} }
// Add type of canvas // Add type of canvas
$lien.=(!empty($this->canvas)?'&amp;canvas='.$this->canvas:'').'">'; $lien.=(!empty($this->canvas)?'&canvas='.$this->canvas:'').'">';
$lienfin='</a>'; $lienfin='</a>';
if ($withpicto) $result.=($lien.img_object($langs->trans("ShowCompany").': '.$name,'company').$lienfin); if ($withpicto) $result.=($lien.img_object($langs->trans("ShowCompany").': '.$name,'company').$lienfin);