Fix: bug sur la création des catégories

This commit is contained in:
Regis Houssin 2007-11-16 13:21:03 +00:00
parent ccdc535d21
commit 10bcacc831
3 changed files with 17 additions and 12 deletions

View File

@ -326,7 +326,7 @@ class Categorie
} }
/** /**
* Ajout d'un produit à la catégorie * Ajout d'un objet à la catégorie
* retour : 1 : OK * retour : 1 : OK
* -1 : erreur SQL * -1 : erreur SQL
* -2 : id non renseign * -2 : id non renseign
@ -338,7 +338,7 @@ class Categorie
return -2; return -2;
} }
$sql = "INSERT INTO ".MAIN_DB_PREFIX."categorie_".$type." (fk_categorie, fk_".$type.")"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."categorie_".$type." (fk_categorie, fk_".($type=='fournisseur'?'societe':$type).")";
$sql .= " VALUES (".$this->id.", ".$obj->id.")"; $sql .= " VALUES (".$this->id.", ".$obj->id.")";
if ($this->db->query($sql)) if ($this->db->query($sql))
@ -362,7 +362,7 @@ class Categorie
{ {
$sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_".$type; $sql = "DELETE FROM ".MAIN_DB_PREFIX."categorie_".$type;
$sql .= " WHERE fk_categorie = ".$this->id; $sql .= " WHERE fk_categorie = ".$this->id;
$sql .= " AND fk_".$type." = ".$obj->id; $sql .= " AND fk_".($type=='fournisseur'?'societe':$type)." = ".$obj->id;
if ($this->db->query($sql)) if ($this->db->query($sql))
{ {
@ -868,7 +868,7 @@ class Categorie
$sql = "SELECT ct.fk_categorie"; $sql = "SELECT ct.fk_categorie";
$sql.= " FROM ".MAIN_DB_PREFIX."categorie_".$type." as ct"; $sql.= " FROM ".MAIN_DB_PREFIX."categorie_".$type." as ct";
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON ct.fk_categorie = c.rowid"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON ct.fk_categorie = c.rowid";
$sql.= " WHERE ct.fk_".$type." = ".$id." AND c.type = ".$typeid; $sql.= " WHERE ct.fk_".($type=='fournisseur'?'societe':$type)." = ".$id." AND c.type = ".$typeid;
$res = $this->db->query ($sql); $res = $this->db->query ($sql);
if ($res) if ($res)

View File

@ -34,11 +34,14 @@ require_once(DOL_DOCUMENT_ROOT."/categories/categorie.class.php");
$langs->load("categories"); $langs->load("categories");
$user->getrights();
$mesg=isset($_GET["mesg"])?'<div class="ok">'.$_GET["mesg"].'</div>':''; $mesg=isset($_GET["mesg"])?'<div class="ok">'.$_GET["mesg"].'</div>':'';
if ($_REQUEST["socid"]) if ($_REQUEST["socid"])
{ {
$type = 'societe'; if ($_REQUEST["typeid"] == 1) $type = 'fournisseur';
if ($_REQUEST["typeid"] == 2) $type = 'societe';
$objectid = isset($_REQUEST["socid"])?$_REQUEST["socid"]:''; $objectid = isset($_REQUEST["socid"])?$_REQUEST["socid"]:'';
} }
else if ($_REQUEST["id"] || $_REQUEST["ref"]) else if ($_REQUEST["id"] || $_REQUEST["ref"])
@ -186,11 +189,11 @@ if ($_GET["socid"])
if ($mesg) print($mesg); if ($mesg) print($mesg);
if ($soc->client) formCategory($db,$soc,$type,2); if ($soc->client) formCategory($db,$soc,'societe',2);
if ($soc->client && $soc->fournisseur) print '<br><br>'; if ($soc->client && $soc->fournisseur) print '<br><br>';
if ($soc->fournisseur) formCategory($db,$soc,$type,1); if ($soc->fournisseur) formCategory($db,$soc,'fournisseur',1);
} }
else if ($_GET["id"] || $_GET["ref"]) else if ($_GET["id"] || $_GET["ref"])
{ {
@ -262,11 +265,11 @@ function formCategory($db,$object,$type,$typeid)
if ($typeid == 0) $title = $langs->trans("ProductsCategoriesShort"); if ($typeid == 0) $title = $langs->trans("ProductsCategoriesShort");
if ($typeid == 1) $title = $langs->trans("SuppliersCategoriesShort"); if ($typeid == 1) $title = $langs->trans("SuppliersCategoriesShort");
if ($typeid == 2) $title = $langs->trans("CustomersCategoriesShort"); if ($typeid == 2) $title = $langs->trans("CustomersCategoriesShort");
if ($type == 'societe') if ($type == 'societe' || $type == 'fournisseur')
{ {
$nameId = 'socid'; $nameId = 'socid';
} }
else else if ($type == 'product')
{ {
$nameId = 'id'; $nameId = 'id';
} }
@ -277,6 +280,7 @@ function formCategory($db,$object,$type,$typeid)
print '<br>'; print '<br>';
print_fiche_titre($title); print_fiche_titre($title);
print '<form method="post" action="'.DOL_URL_ROOT.'/categories/categorie.php?'.$nameId.'='.$object->id.'">'; print '<form method="post" action="'.DOL_URL_ROOT.'/categories/categorie.php?'.$nameId.'='.$object->id.'">';
print '<input type="hidden" name="typeid" value="'.$typeid.'">';
print '<table class="noborder" width="100%">'; print '<table class="noborder" width="100%">';
print '<tr class="liste_titre"><td>'; print '<tr class="liste_titre"><td>';
print $langs->trans("ClassifyInCategory").' '; print $langs->trans("ClassifyInCategory").' ';
@ -318,9 +322,10 @@ function formCategory($db,$object,$type,$typeid)
// Lien supprimer // Lien supprimer
print '<td align="right">'; print '<td align="right">';
if ($user->rights->$type->creer) $module = ($type=='fournisseur'?'societe':$type);
if ($user->rights->$module->creer)
{ {
print "<a href= '".DOL_URL_ROOT."/categories/categorie.php?".$nameId."=".$object->id."&amp;removecat=".$cat->id."'>"; print "<a href= '".DOL_URL_ROOT."/categories/categorie.php?".$nameId."=".$object->id."&amp;typeid=".$typeid."&amp;removecat=".$cat->id."'>";
print img_delete($langs->trans("DeleteFromCat")).' '; print img_delete($langs->trans("DeleteFromCat")).' ';
print $langs->trans("DeleteFromCat")."</a>"; print $langs->trans("DeleteFromCat")."</a>";
} }

View File

@ -96,7 +96,7 @@ if ($search_ville)
} }
$sql .= " AND ca.year > (date_format(now(),'%Y') - 5)"; $sql .= " AND ca.year > (date_format(now(),'%Y') - 5)";
$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit+1, $offset); $sql .= " ORDER BY ".$sortfield $sortorder $db->plimit($conf->liste_limit+1, $offset);
dolibarr_syslog("fourn/stats.php sql=".$sql); dolibarr_syslog("fourn/stats.php sql=".$sql);
$resql = $db->query($sql); $resql = $db->query($sql);