Fix: Debuggage fonction categorie et réecriture de certaines fonctions:
Code plus simple, avec moins de requete. Une dizaine de fonctions remplacées par une seule nommée get_full_arbo().
This commit is contained in:
parent
6e46ed4e31
commit
b1a0de9797
File diff suppressed because it is too large
Load Diff
@ -36,9 +36,9 @@ if (!$user->rights->categorie->lire) accessforbidden();
|
|||||||
* Affichage page accueil
|
* Affichage page accueil
|
||||||
*/
|
*/
|
||||||
|
|
||||||
llxHeader("","",$langs->trans("Categories"));
|
llxHeader("","",$langs->trans("ProductsCategoriesArea"));
|
||||||
$html = new Form($db);
|
$html = new Form($db);
|
||||||
print_fiche_titre($langs->trans("CategoriesArea"));
|
print_fiche_titre($langs->trans("ProductsCategoriesArea"));
|
||||||
|
|
||||||
print '<table border="0" width="100%" class="notopnoleftnoright">';
|
print '<table border="0" width="100%" class="notopnoleftnoright">';
|
||||||
|
|
||||||
@ -93,35 +93,105 @@ if($_POST['catname'])
|
|||||||
print "</table>";
|
print "</table>";
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Catégories principales
|
|
||||||
*/
|
|
||||||
print '<table class="noborder" width="100%">';
|
|
||||||
print '<tr class="liste_titre"><td>'.$langs->trans("AllCats").'</td><td>'.$langs->trans("Desc").'</td></tr>';
|
|
||||||
|
|
||||||
$c->get_categories_arbo();
|
|
||||||
$cate_arbo = $c->get_arbo_each_cate();
|
|
||||||
|
|
||||||
if (is_array($cate_arbo))
|
|
||||||
{
|
|
||||||
$var=true;
|
|
||||||
foreach($cate_arbo as $key => $value)
|
|
||||||
{
|
|
||||||
$var = ! $var;
|
|
||||||
print "\t<tr ".$bc[$var].">\n";
|
|
||||||
print '<td><a href="viewcat.php?id='.$value[1].'">'.$value[0].'</a></td>';
|
|
||||||
print "\t</td>\n";
|
|
||||||
print '<td>'.$c->get_desc($value[1]).'</td>';
|
|
||||||
print "\t</td>\n";
|
|
||||||
print "\t</tr>\n";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
print "</table>";
|
|
||||||
|
|
||||||
|
|
||||||
print '</td></tr></table>';
|
print '</td></tr></table>';
|
||||||
|
|
||||||
|
print '<br>';
|
||||||
|
|
||||||
|
|
||||||
|
// Charge tableau des categories
|
||||||
|
$cate_arbo = $c->get_full_arbo();
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Catégories en javascript
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
if ($conf->use_javascript)
|
||||||
|
{
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre"><td>'.$langs->trans("AllCats").'</td></tr>';
|
||||||
|
|
||||||
|
print '<tr><td>';
|
||||||
|
|
||||||
|
require_once(DOL_DOCUMENT_ROOT.'/includes/treemenu/TreeMenu.php');
|
||||||
|
|
||||||
|
$menu = new HTML_TreeMenu();
|
||||||
|
$icon = 'folder.gif';
|
||||||
|
$expandedIcon = 'folder-expanded.gif';
|
||||||
|
|
||||||
|
// Création noeud racine
|
||||||
|
$node=array();
|
||||||
|
$currentnode=-1;
|
||||||
|
$node[$currentnode] = new HTML_TreeNode(
|
||||||
|
array('text' => $langs->trans("AllCats"), 'link' => '', 'icon' => $icon, 'expandedIcon' => $expandedIcon, 'expanded' => true)
|
||||||
|
//,array('onclick' => "alert('foo'); return false", 'onexpand' => "alert('Expanded')")
|
||||||
|
);
|
||||||
|
$node1 = new HTML_TreeNode(
|
||||||
|
array('text' => $langs->trans("AllCats"), 'link' => '', 'icon' => $icon, 'expandedIcon' => $expandedIcon, 'expanded' => true)
|
||||||
|
//,array('onclick' => "alert('foo'); return false", 'onexpand' => "alert('Expanded')")
|
||||||
|
);
|
||||||
|
|
||||||
|
// Ajoute id_mere sur tableau cate_arbo
|
||||||
|
foreach ($cate_arbo as $key => $val)
|
||||||
|
{
|
||||||
|
|
||||||
|
print 'x '.$cate_arbo[$key]['id'].' '.$cate_arbo[$key]['level'].' '.$cate_arbo[$key]['id_mere'].'<br>';
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
$node1->addItem(new HTML_TreeNode(array('text' => "Second level, item y", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
|
||||||
|
$node1_1 = $node1->addItem(new HTML_TreeNode(array('text' => "Second level", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
|
||||||
|
$node1_1_1 = $node1_1->addItem(new HTML_TreeNode(array('text' => "Third level", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
|
||||||
|
$node1_1_1_1 = $node1_1_1->addItem(new HTML_TreeNode(array('text' => "Fourth level", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
|
||||||
|
$node1_1_1_1->addItem(new HTML_TreeNode(array('text' => "Fifth level", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon, 'cssClass' => 'treeMenuBold')));
|
||||||
|
$node1_1->addItem(new HTML_TreeNode(array('text' => "Third Level, item 2", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
|
||||||
|
$node1->addItem(new HTML_TreeNode(array('text' => "Second level, item 3", 'link' => $_SERVER["PHP_SELF"], 'icon' => $icon, 'expandedIcon' => $expandedIcon)));
|
||||||
|
$menu->addItem($node1);
|
||||||
|
|
||||||
|
// Affiche arbre
|
||||||
|
print '<script src="'.DOL_URL_ROOT.'/includes/treemenu/TreeMenu.js" language="JavaScript" type="text/javascript"></script>';
|
||||||
|
|
||||||
|
$treeMenu = new HTML_TreeMenu_DHTML($menu, array('images' => DOL_URL_ROOT.'/includes/treemenu/images', 'defaultClass' => 'treeMenuDefault', false));
|
||||||
|
$treeMenu->printMenu();
|
||||||
|
|
||||||
|
//$listBox = new HTML_TreeMenu_Listbox($menu, array('linkTarget' => '_self'));
|
||||||
|
//$listBox->printMenu();
|
||||||
|
|
||||||
|
print '</td></tr>';
|
||||||
|
|
||||||
|
print "</table>";
|
||||||
|
print '<br>';
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Catégories principales en HTML pure
|
||||||
|
*/
|
||||||
|
if (1 == 1)
|
||||||
|
{
|
||||||
|
print '<table class="noborder" width="100%">';
|
||||||
|
print '<tr class="liste_titre"><td>'.$langs->trans("AllCats").'</td><td>'.$langs->trans("Desc").'</td></tr>';
|
||||||
|
|
||||||
|
if (is_array($cate_arbo))
|
||||||
|
{
|
||||||
|
$var=true;
|
||||||
|
foreach($cate_arbo as $key => $value)
|
||||||
|
{
|
||||||
|
$var = ! $var;
|
||||||
|
print "\t<tr ".$bc[$var].">\n";
|
||||||
|
print '<td><a href="viewcat.php?id='.$cate_arbo[$key]['id'].'">'.$cate_arbo[$key]['fulllabel'].'</a></td>';
|
||||||
|
print '<td>'.$c->get_desc($cate_arbo[$key]['id']).'</td>';
|
||||||
|
print "\t</td>\n";
|
||||||
|
print "\t</tr>\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
print "</table>";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$db->close();
|
$db->close();
|
||||||
|
|
||||||
llxFooter('$Date$ - $Revision$');
|
llxFooter('$Date$ - $Revision$');
|
||||||
|
|||||||
@ -1190,31 +1190,37 @@ class Form
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* \brief Retourne la ou les listes déroulante des catégories en fonction du nombre choisi
|
* \brief Retourne la ou les listes déroulante des catégories en fonction
|
||||||
* \param selected nombre de catégorie à créer
|
* du nombre choisi
|
||||||
|
* \param selected nombre de catégorie à créer
|
||||||
*/
|
*/
|
||||||
function select_all_categories($selected='',$select_name="")
|
function select_all_categories($selected='',$select_name="")
|
||||||
{
|
{
|
||||||
global $langs;
|
global $langs;
|
||||||
$langs->load("categorie");
|
$langs->load("categorie");
|
||||||
if($select_name=="")
|
|
||||||
$select_name="catMere";
|
if ($select_name=="") $select_name="catMere";
|
||||||
|
|
||||||
$cat = new Categorie ($this -> db);
|
$cat = new Categorie ($this -> db);
|
||||||
$cat->get_categories_arbo();
|
$cate_arbo = $cat->get_full_arbo();
|
||||||
$cate_arbo = $cat->get_arbo_each_cate();
|
|
||||||
$output = '<select name="'.$select_name.'">'; //creation des categories meres
|
$output = '<select name="'.$select_name.'">';
|
||||||
$output.= '<option value="-1" id="choix"> </option>';
|
$output.= '<option value="-1" id="choix"> </option>';
|
||||||
|
|
||||||
if ($cate_arbo)
|
if ($cate_arbo)
|
||||||
{
|
{
|
||||||
foreach($cate_arbo as $key => $value)
|
foreach($cate_arbo as $key => $value)
|
||||||
{
|
{
|
||||||
if($value[1] == $selected)
|
if ($cate_arbo[$key]['fulllabel'] == $selected)
|
||||||
|
{
|
||||||
$add = "selected='true' ";
|
$add = "selected='true' ";
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
$add = "";
|
$add = "";
|
||||||
$output.= '<option '.$add.'value="'.$value[1].'">'.$value[0].'</option>';
|
}
|
||||||
|
$output.= '<option '.$add.'value="'.$cate_arbo[$key]['id'].'">'.$cate_arbo[$key]['fulllabel'].'</option>';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -200,7 +200,8 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
|
|||||||
'DB_ERROR_NOSUCHFIELD',
|
'DB_ERROR_NOSUCHFIELD',
|
||||||
'DB_ERROR_NO_FOREIGN_KEY_TO_DROP',
|
'DB_ERROR_NO_FOREIGN_KEY_TO_DROP',
|
||||||
'DB_ERROR_CANNOT_CREATE', // Qd contrainte deja existante
|
'DB_ERROR_CANNOT_CREATE', // Qd contrainte deja existante
|
||||||
'DB_ERROR_CANT_DROP_PRIMARY_KEY'
|
'DB_ERROR_CANT_DROP_PRIMARY_KEY',
|
||||||
|
'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS'
|
||||||
);
|
);
|
||||||
if (in_array($errno,$okerror))
|
if (in_array($errno,$okerror))
|
||||||
{
|
{
|
||||||
@ -208,8 +209,8 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<tr><td valign="top">'.$langs->trans("Request").' '.($i+1).'</td>';
|
print '<tr><td valign="top" colspan="2">';
|
||||||
print '<td valign="top">'.$langs->trans("Error")." ".$db->errno()." ".$sql."<br>".$db->error()."</td>";
|
print '<div class="error">'.$langs->trans("Error")." ".$db->errno().": ".$sql."<br>".$db->error()."</font></td>";
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
dolibarr_install_syslog($langs->trans("Request").' '.($i+1)." ".$langs->trans("Error")." ".$db->errno()." ".$sql."<br>".$db->error());
|
dolibarr_install_syslog($langs->trans("Request").' '.($i+1)." ".$langs->trans("Error")." ".$db->errno()." ".$sql."<br>".$db->error());
|
||||||
$error++;
|
$error++;
|
||||||
@ -234,7 +235,7 @@ if (! isset($_GET["action"]) || $_GET["action"] == "upgrade")
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<tr><td>'.$langs->trans("ProcessMigrateScript").'</td>';
|
print '<tr><td>'.$langs->trans("ProcessMigrateScript").'</td>';
|
||||||
print '<td align="right"><div class="error">'.$langs->trans("KO").'</div></td></tr>';
|
print '<td align="right"><font class="error">'.$langs->trans("KO").'</font></td></tr>';
|
||||||
$ok = 0;
|
$ok = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -7,6 +7,7 @@ In=Dans
|
|||||||
AddIn=Ajouter dans
|
AddIn=Ajouter dans
|
||||||
modify=modifier
|
modify=modifier
|
||||||
CategoriesArea=Espace catégories
|
CategoriesArea=Espace catégories
|
||||||
|
ProductsCategoriesArea=Espace catégories de produits et services
|
||||||
MainCats=Catégories principales
|
MainCats=Catégories principales
|
||||||
SubCats=Sous-catégories
|
SubCats=Sous-catégories
|
||||||
CatStatistics=Statistiques
|
CatStatistics=Statistiques
|
||||||
|
|||||||
@ -77,6 +77,7 @@ class DoliDb
|
|||||||
1061 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
|
1061 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
|
||||||
1062 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
|
1062 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
|
||||||
1064 => 'DB_ERROR_SYNTAX',
|
1064 => 'DB_ERROR_SYNTAX',
|
||||||
|
1068 => 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS',
|
||||||
1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
|
1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
|
||||||
1091 => 'DB_ERROR_NOSUCHFIELD',
|
1091 => 'DB_ERROR_NOSUCHFIELD',
|
||||||
1100 => 'DB_ERROR_NOT_LOCKED',
|
1100 => 'DB_ERROR_NOT_LOCKED',
|
||||||
|
|||||||
@ -76,6 +76,7 @@ class DoliDb
|
|||||||
1061 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
|
1061 => 'DB_ERROR_KEY_NAME_ALREADY_EXISTS',
|
||||||
1062 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
|
1062 => 'DB_ERROR_RECORD_ALREADY_EXISTS',
|
||||||
1064 => 'DB_ERROR_SYNTAX',
|
1064 => 'DB_ERROR_SYNTAX',
|
||||||
|
1068 => 'DB_ERROR_PRIMARY_KEY_ALREADY_EXISTS',
|
||||||
1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
|
1075 => 'DB_ERROR_CANT_DROP_PRIMARY_KEY',
|
||||||
1091 => 'DB_ERROR_NOSUCHFIELD',
|
1091 => 'DB_ERROR_NOSUCHFIELD',
|
||||||
1100 => 'DB_ERROR_NOT_LOCKED',
|
1100 => 'DB_ERROR_NOT_LOCKED',
|
||||||
|
|||||||
@ -36,12 +36,47 @@ require_once(DOL_DOCUMENT_ROOT."/categories/categorie.class.php");
|
|||||||
|
|
||||||
$langs->load("categories");
|
$langs->load("categories");
|
||||||
|
|
||||||
$mesg = '';
|
|
||||||
|
|
||||||
if (!$user->rights->produit->lire) accessforbidden();
|
if (!$user->rights->produit->lire) accessforbidden();
|
||||||
|
|
||||||
$types[0] = $langs->trans("Product");
|
$mesg = '';
|
||||||
$types[1] = $langs->trans("Service");
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Actions
|
||||||
|
*/
|
||||||
|
|
||||||
|
//on veut supprimer une catégorie
|
||||||
|
if ($_REQUEST["removecat"] && $user->rights->produit->creer)
|
||||||
|
{
|
||||||
|
$product = new Product($db);
|
||||||
|
if ($_REQUEST["ref"]) $result = $product->fetch('',$_REQUEST["ref"]);
|
||||||
|
if ($_REQUEST["id"]) $result = $product->fetch($_REQUEST["id"]);
|
||||||
|
|
||||||
|
$cat = new Categorie($db,$_REQUEST["removecat"]);
|
||||||
|
$result=$cat->del_product($product);
|
||||||
|
}
|
||||||
|
|
||||||
|
//on veut ajouter une catégorie
|
||||||
|
if (isset($_REQUEST["catMere"]) && $_REQUEST["catMere"]>=0 && $user->rights->produit->creer)
|
||||||
|
{
|
||||||
|
$product = new Product($db);
|
||||||
|
if ($_REQUEST["ref"]) $result = $product->fetch('',$_REQUEST["ref"]);
|
||||||
|
if ($_REQUEST["id"]) $result = $product->fetch($_REQUEST["id"]);
|
||||||
|
|
||||||
|
$cat = new Categorie($db,$_REQUEST["catMere"]);
|
||||||
|
$result=$cat->add_product($product);
|
||||||
|
if ($result >= 0)
|
||||||
|
{
|
||||||
|
$mesg='<div class="ok">'.$langs->trans("Added").'</div>';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$mesg='<div class="error">'.$langs->trans("Error").' '.$cat->error.'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Creation de l'objet produit correspondant à l'id
|
* Creation de l'objet produit correspondant à l'id
|
||||||
@ -54,6 +89,8 @@ if ($_GET["id"] || $_GET["ref"])
|
|||||||
|
|
||||||
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
llxHeader("","",$langs->trans("CardProduct".$product->type));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
$html = new Form($db);
|
$html = new Form($db);
|
||||||
|
|
||||||
|
|
||||||
@ -62,24 +99,6 @@ $html = new Form($db);
|
|||||||
*/
|
*/
|
||||||
if ($_GET["id"] || $_GET["ref"])
|
if ($_GET["id"] || $_GET["ref"])
|
||||||
{
|
{
|
||||||
//on veut supprimer une catégorie
|
|
||||||
if ($_REQUEST["removecat"] && $user->rights->produit->creer)
|
|
||||||
{
|
|
||||||
$cat = new Categorie($db,$_REQUEST["removecat"]);
|
|
||||||
$cat->del_product($product);
|
|
||||||
}
|
|
||||||
|
|
||||||
//on veut ajouter une catégorie
|
|
||||||
if (isset($_REQUEST["catMere"]) && $_REQUEST["catMere"]>=0 && $user->rights->produit->creer)
|
|
||||||
{
|
|
||||||
$cat = new Categorie($db,$_REQUEST["catMere"]);
|
|
||||||
$cat->add_product($product);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* En mode visu
|
|
||||||
*/
|
|
||||||
|
|
||||||
$head=product_prepare_head($product);
|
$head=product_prepare_head($product);
|
||||||
$titre=$langs->trans("CardProduct".$product->type);
|
$titre=$langs->trans("CardProduct".$product->type);
|
||||||
dolibarr_fiche_head($head, 'category', $titre);
|
dolibarr_fiche_head($head, 'category', $titre);
|
||||||
@ -189,7 +208,6 @@ if ($_GET["id"] || $_GET["ref"])
|
|||||||
print "</td>";
|
print "</td>";
|
||||||
|
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -793,11 +793,11 @@ if ($_GET["id"] && $_GET["action"] == '' && $product->status)
|
|||||||
|
|
||||||
|
|
||||||
// Propals
|
// Propals
|
||||||
if($user->rights->propale->creer)
|
if($conf->propal->enabled && $user->rights->propale->creer)
|
||||||
{
|
{
|
||||||
$langs->load("propal");
|
$langs->load("propal");
|
||||||
|
|
||||||
print '<tr><td width="50%" valign="top">';
|
print '<tr class="liste_titre"><td width="50%" valign="top">';
|
||||||
print_titre($langs->trans("AddToMyProposals")) . '</td>';
|
print_titre($langs->trans("AddToMyProposals")) . '</td>';
|
||||||
|
|
||||||
if ($user->rights->commercial->client->voir)
|
if ($user->rights->commercial->client->voir)
|
||||||
@ -807,7 +807,7 @@ if ($_GET["id"] && $_GET["action"] == '' && $product->status)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
print '<td width="50%" valign="top"></td>';
|
print '<td width="50%" valign="top"> </td>';
|
||||||
}
|
}
|
||||||
|
|
||||||
print '</tr>';
|
print '</tr>';
|
||||||
@ -907,11 +907,11 @@ if ($_GET["id"] && $_GET["action"] == '' && $product->status)
|
|||||||
|
|
||||||
|
|
||||||
// Commande
|
// Commande
|
||||||
if($user->rights->commande->creer)
|
if($conf->commande->enabled && $user->rights->commande->creer)
|
||||||
{
|
{
|
||||||
$langs->load("orders");
|
$langs->load("orders");
|
||||||
|
|
||||||
print '<tr><td width="50%" valign="top">';
|
print '<tr class="liste_titre"><td width="50%" valign="top">';
|
||||||
print_titre($langs->trans("AddToMyOrders")) . '</td>';
|
print_titre($langs->trans("AddToMyOrders")) . '</td>';
|
||||||
|
|
||||||
if ($user->rights->commercial->client->voir)
|
if ($user->rights->commercial->client->voir)
|
||||||
@ -1016,11 +1016,11 @@ if ($_GET["id"] && $_GET["action"] == '' && $product->status)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Factures
|
// Factures
|
||||||
if($user->rights->facture->creer)
|
if($conf->facture->enabled && $user->rights->facture->creer)
|
||||||
{
|
{
|
||||||
$langs->load("bills");
|
$langs->load("bills");
|
||||||
|
|
||||||
print '<tr><td width="50%" valign="top">';
|
print '<tr class="liste_titre"><td width="50%" valign="top">';
|
||||||
print_titre($langs->trans("AddToMyBills"));
|
print_titre($langs->trans("AddToMyBills"));
|
||||||
|
|
||||||
if ($user->rights->commercial->client->voir)
|
if ($user->rights->commercial->client->voir)
|
||||||
|
|||||||
@ -348,3 +348,15 @@ insert into llx_action_def (rowid,code,titre,description,objet_type) values (3,'
|
|||||||
|
|
||||||
|
|
||||||
drop table if exists llx_sqltables;
|
drop table if exists llx_sqltables;
|
||||||
|
|
||||||
|
|
||||||
|
ALTER IGNORE TABLE llx_categorie_product DROP FOREIGN KEY llx_categorie_product_ibfk_1;
|
||||||
|
ALTER IGNORE TABLE llx_categorie_product DROP FOREIGN KEY llx_categorie_product_ibfk_2;
|
||||||
|
ALTER IGNORE TABLE llx_categorie_product DROP FOREIGN KEY llx_categorie_product_ibfk_3;
|
||||||
|
ALTER IGNORE TABLE llx_categorie_product DROP FOREIGN KEY llx_categorie_product_ibfk_4;
|
||||||
|
ALTER IGNORE TABLE llx_categorie_product DROP FOREIGN KEY llx_categorie_product_ibfk_5;
|
||||||
|
|
||||||
|
ALTER TABLE llx_categorie_product ADD CONSTRAINT fk_categorie_product_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid);
|
||||||
|
ALTER TABLE llx_categorie_product ADD CONSTRAINT fk_categorie_product_product_rowid FOREIGN KEY (fk_product) REFERENCES llx_product (rowid);
|
||||||
|
|
||||||
|
ALTER TABLE llx_categorie_product ADD PRIMARY KEY (fk_categorie, fk_product);
|
||||||
|
|||||||
@ -19,9 +19,9 @@
|
|||||||
--
|
--
|
||||||
-- ============================================================================
|
-- ============================================================================
|
||||||
|
|
||||||
|
ALTER TABLE llx_categorie_product ADD PRIMARY KEY (fk_categorie, fk_product);
|
||||||
ALTER TABLE llx_categorie_product ADD INDEX idx_categorie_product_fk_categorie (fk_categorie);
|
ALTER TABLE llx_categorie_product ADD INDEX idx_categorie_product_fk_categorie (fk_categorie);
|
||||||
ALTER TABLE llx_categorie_product ADD INDEX idx_categorie_product_fk_product (fk_product);
|
ALTER TABLE llx_categorie_product ADD INDEX idx_categorie_product_fk_product (fk_product);
|
||||||
|
|
||||||
ALTER TABLE llx_categorie_product ADD FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid);
|
ALTER TABLE llx_categorie_product ADD CONSTRAINT fk_categorie_product_categorie_rowid FOREIGN KEY (fk_categorie) REFERENCES llx_categorie (rowid);
|
||||||
ALTER TABLE llx_categorie_product ADD FOREIGN KEY (fk_product) REFERENCES llx_product (rowid);
|
ALTER TABLE llx_categorie_product ADD CONSTRAINT fk_categorie_product_product_rowid FOREIGN KEY (fk_product) REFERENCES llx_product (rowid);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user