From fb23364511fad2b8fff7b801a343cd5b90fffdd6 Mon Sep 17 00:00:00 2001
From: Regis Houssin <regis@dolibarr.fr>
Date: Mon, 23 Jul 2012 16:10:54 +0200
Subject: [PATCH] Fix: uniformize code

---
 htdocs/admin/modules.php                      |   2 +-
 htdocs/comm/mailing/fiche.php                 |   2 +-
 .../{ => commissions}/admin/commissions.php   |  57 +++----
 htdocs/commissions/index.php                  | 158 ++++++++++--------
 htdocs/commissions/lib/commissions.lib.php    |   2 +-
 htdocs/core/class/html.form.class.php         |  12 +-
 htdocs/core/modules/modCommissions.class.php  |  18 +-
 htdocs/core/modules/modMargin.class.php       |  57 +------
 htdocs/expedition/fiche.php                   |   6 +-
 htdocs/filefunc.inc.php                       |   2 +-
 htdocs/install/lib/repair.lib.php             |  46 ++---
 htdocs/langs/fr_FR/commissions.lang           |   8 +-
 htdocs/{ => margin}/admin/margin.php          |   8 +-
 htdocs/margin/agentMargins.php                | 107 ++++++------
 htdocs/margin/customerMargins.php             |  82 ++++-----
 htdocs/margin/lib/margins.lib.php             |   2 +-
 htdocs/margin/productMargins.php              | 106 ++++++------
 htdocs/margin/tabs/productMargins.php         |  44 ++---
 htdocs/margin/tabs/thirdpartyMargins.php      |  18 +-
 htdocs/product/ajaxproducts.php               |   6 +-
 htdocs/theme/amarok/img/commissions.png       | Bin 1676 -> 0 bytes
 htdocs/theme/amarok/img/marges.png            | Bin 1851 -> 0 bytes
 .../{object_marges.png => object_margin.png}  | Bin
 htdocs/theme/auguria/img/commissions.png      | Bin 1676 -> 0 bytes
 htdocs/theme/auguria/img/marges.png           | Bin 1851 -> 0 bytes
 .../{object_marges.png => object_margin.png}  | Bin
 htdocs/theme/auguria/style.css.php            |   4 +-
 htdocs/theme/bureau2crea/img/commissions.png  | Bin 1676 -> 0 bytes
 htdocs/theme/bureau2crea/img/marges.png       | Bin 1851 -> 0 bytes
 .../{object_marges.png => object_margin.png}  | Bin
 htdocs/theme/bureau2crea/style.css.php        |   4 +-
 htdocs/theme/cameleo/img/commissions.png      | Bin 1676 -> 0 bytes
 htdocs/theme/cameleo/img/marges.png           | Bin 1851 -> 0 bytes
 .../{object_marges.png => object_margin.png}  | Bin
 htdocs/theme/cameleo/style.css.php            |   4 +-
 htdocs/theme/eldy/img/commissions.png         | Bin 1676 -> 0 bytes
 htdocs/theme/eldy/img/marges.png              | Bin 1851 -> 0 bytes
 htdocs/theme/eldy/img/menus/marges.png        | Bin 1851 -> 0 bytes
 .../{object_marges.png => object_margin.png}  | Bin
 htdocs/theme/eldy/style.css.php               |   4 +-
 htdocs/user/class/user.class.php              |   4 +-
 htdocs/webservices/server_invoice.php         |   2 +-
 42 files changed, 357 insertions(+), 408 deletions(-)
 rename htdocs/{ => commissions}/admin/commissions.php (65%)
 rename htdocs/{ => margin}/admin/margin.php (97%)
 delete mode 100644 htdocs/theme/amarok/img/commissions.png
 delete mode 100644 htdocs/theme/amarok/img/marges.png
 rename htdocs/theme/amarok/img/{object_marges.png => object_margin.png} (100%)
 delete mode 100644 htdocs/theme/auguria/img/commissions.png
 delete mode 100644 htdocs/theme/auguria/img/marges.png
 rename htdocs/theme/auguria/img/{object_marges.png => object_margin.png} (100%)
 delete mode 100644 htdocs/theme/bureau2crea/img/commissions.png
 delete mode 100644 htdocs/theme/bureau2crea/img/marges.png
 rename htdocs/theme/bureau2crea/img/{object_marges.png => object_margin.png} (100%)
 delete mode 100644 htdocs/theme/cameleo/img/commissions.png
 delete mode 100644 htdocs/theme/cameleo/img/marges.png
 rename htdocs/theme/cameleo/img/{object_marges.png => object_margin.png} (100%)
 delete mode 100644 htdocs/theme/eldy/img/commissions.png
 delete mode 100644 htdocs/theme/eldy/img/marges.png
 delete mode 100644 htdocs/theme/eldy/img/menus/marges.png
 rename htdocs/theme/eldy/img/{object_marges.png => object_margin.png} (100%)

diff --git a/htdocs/admin/modules.php b/htdocs/admin/modules.php
index e0eb74f6aca..8c39f3a8fe7 100644
--- a/htdocs/admin/modules.php
+++ b/htdocs/admin/modules.php
@@ -200,7 +200,7 @@ print $langs->trans("TotalNumberOfActivatedModules",($nbofactivatedmodules-1));
 if ($nbofactivatedmodules <= 1) print ' '.img_warning($langs->trans("YouMustEnableOneModule"));
 print '<br>'."\n";
 
-print "<br>\n";
+print "<br>\n";
 
 $h = 0;
 
diff --git a/htdocs/comm/mailing/fiche.php b/htdocs/comm/mailing/fiche.php
index 7f070c07df5..f39c64d872d 100644
--- a/htdocs/comm/mailing/fiche.php
+++ b/htdocs/comm/mailing/fiche.php
@@ -928,7 +928,7 @@ else
 				print '<br><br></div>';
 			}
 
-			if (! empty($mesgembedded)) dol_htmloutput_mesg($mesgembedded,'','warning',1);
+			if (! empty($mesgembedded)) dol_htmloutput_mesg($mesgembedded,'','warning',1);
 
 			// Affichage formulaire de TEST
 			if ($action == 'test')
diff --git a/htdocs/admin/commissions.php b/htdocs/commissions/admin/commissions.php
similarity index 65%
rename from htdocs/admin/commissions.php
rename to htdocs/commissions/admin/commissions.php
index 64e618633ac..a48f6ead1ca 100644
--- a/htdocs/admin/commissions.php
+++ b/htdocs/commissions/admin/commissions.php
@@ -1,5 +1,5 @@
 <?php
-/* Copyright (C) 2012      Christophe Battarel  <christophe.battarel@altairis.fr>
+/* Copyright (C) 2012	Christophe Battarel	<christophe.battarel@altairis.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -12,9 +12,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- * or see http://www.gnu.org/
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /**
@@ -23,33 +21,24 @@
  *		\brief      Page to setup advanced commissions module
  */
 
-$res=@include("../main.inc.php");					// For root directory
-
+include("../../main.inc.php");
 require_once(DOL_DOCUMENT_ROOT."/commissions/lib/commissions.lib.php");
 require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
 
 $langs->load("admin");
 $langs->load("commissions");
 
-if (!$user->admin)
-accessforbidden();
+if (! $user->admin) accessforbidden();
 
-// init
-if ($conf->global->COMMISSION_BASE == "") {
-  if ($conf->marges->enabled)
-    $conf->global->COMMISSION_BASE = "MARGES";
-  else
-    $conf->global->COMMISSION_BASE = "CA";
-}
 
 /*
  * Action
  */
-if (isset($_POST['commissionBase']))
+if (GETPOST('commissionBase'))
 {
-    if (dolibarr_set_const($db, 'COMMISSION_BASE', $_POST['commissionBase'], 'string', 0, '', $conf->entity) > 0)
+    if (dolibarr_set_const($db, 'COMMISSION_BASE', GETPOST('commissionBase'), 'string', 0, '', $conf->entity) > 0)
     {
-          $conf->global->COMMISSION_BASE = $_POST['commissionBase'];
+          $conf->global->COMMISSION_BASE = GETPOST('commissionBase');
     }
     else
     {
@@ -57,9 +46,9 @@ if (isset($_POST['commissionBase']))
     }
 }
 
-if (isset($_POST['productCommissionRate']))
+if (GETPOST('productCommissionRate'))
 {
-    if (dolibarr_set_const($db, 'PRODUCT_COMMISSION_RATE', $_POST['productCommissionRate'], 'rate', 0, '', $conf->entity) > 0)
+    if (dolibarr_set_const($db, 'PRODUCT_COMMISSION_RATE', GETPOST('productCommissionRate'), 'rate', 0, '', $conf->entity) > 0)
     {
     }
     else
@@ -68,9 +57,9 @@ if (isset($_POST['productCommissionRate']))
     }
 }
 
-if (isset($_POST['serviceCommissionRate']))
+if (GETPOST('serviceCommissionRate'))
 {
-    if (dolibarr_set_const($db, 'SERVICE_COMMISSION_RATE', $_POST['serviceCommissionRate'], 'rate', 0, '', $conf->entity) > 0)
+    if (dolibarr_set_const($db, 'SERVICE_COMMISSION_RATE', GETPOST('serviceCommissionRate'), 'rate', 0, '', $conf->entity) > 0)
     {
     }
     else
@@ -91,7 +80,7 @@ $linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToM
 print_fiche_titre($langs->trans("commissionsSetup"),$linkback,'setup');
 
 
-$head = commissions_admin_prepare_head($adh);
+$head = commissions_admin_prepare_head();
 
 dol_fiche_head($head, 'parameters', $langs->trans("Commissions"), 0, 'commissions');
 
@@ -111,21 +100,21 @@ $form = new Form($db);
 
 print '<form method="post">';
 
-// COMMISSION BASE (CA / MARGES)
+// COMMISSION BASE (TURNOVER / MARGIN)
 $var=!$var;
 print '<tr '.$bc[$var].'>';
 print '<td>'.$langs->trans("CommissionBase").'</td>';
 print '<td align="left">';
-print '<input type="radio" name="commissionBase" value="CA" ';
-if ($conf->global->COMMISSION_BASE == "CA")
+print '<input type="radio" name="commissionBase" value="TURNOVER" ';
+if (isset($conf->global->COMMISSION_BASE) && $conf->global->COMMISSION_BASE == "TURNOVER")
   print 'checked';
 print ' />';
-print $langs->trans("CommissionBasedOnCA");
+print $langs->trans("CommissionBasedOnTurnover");
 print '<br/>';
-print '<input type="radio" name="commissionBase" value="MARGES" ';
-if (!$conf->marges->enabled)
+print '<input type="radio" name="commissionBase" value="MARGIN" ';
+if (empty($conf->margin->enabled))
   print 'disabled';
-elseif ($conf->global->COMMISSION_BASE == "MARGES")
+elseif (isset($conf->global->COMMISSION_BASE) && $conf->global->COMMISSION_BASE == "MARGIN")
   print 'checked';
 print ' />';
 print $langs->trans("CommissionBasedOnMargins");
@@ -141,7 +130,7 @@ $var=!$var;
 print '<tr '.$bc[$var].'>';
 print '<td>'.$langs->trans("ProductCommissionRate").'</td>';
 print '<td align="left">';
-print '<input type="text" name="productCommissionRate" value="'.$conf->global->PRODUCT_COMMISSION_RATE.'" size=6 />&nbsp; %';
+print '<input type="text" name="productCommissionRate" value="'.(! empty($conf->global->PRODUCT_COMMISSION_RATE)?$conf->global->PRODUCT_COMMISSION_RATE:'').'" size=6 />&nbsp; %';
 print '</td>';
 print '<td>'.$langs->trans('ProductCommissionRateDetails').'</td>';
 print '</tr>';
@@ -151,7 +140,7 @@ $var=!$var;
 print '<tr '.$bc[$var].'>';
 print '<td>'.$langs->trans("ServiceCommissionRate").'</td>';
 print '<td align="left">';
-print '<input type="text" name="serviceCommissionRate" value="'.$conf->global->SERVICE_COMMISSION_RATE.'" size=6 />&nbsp; %';
+print '<input type="text" name="serviceCommissionRate" value="'.(! empty($conf->global->SERVICE_COMMISSION_RATE)?$conf->global->SERVICE_COMMISSION_RATE:'').'" size=6 />&nbsp; %';
 print '</td>';
 print '<td>'.$langs->trans('ServiceCommissionRateDetails').'</td>';
 print '</tr>';
@@ -169,7 +158,7 @@ print '<br>';
 
 print '</form>';
 
-$db->close();
 
-llxFooter('$Date: 2011/07/31 22:23:21 $ - $Revision: 1.6 $');
+llxFooter();
+$db->close();
 ?>
diff --git a/htdocs/commissions/index.php b/htdocs/commissions/index.php
index 65e2ad70b21..c6988f19b8d 100644
--- a/htdocs/commissions/index.php
+++ b/htdocs/commissions/index.php
@@ -48,10 +48,12 @@ $offset = $conf->liste_limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
+$startdate=$enddate='';
+
 if (!empty($_POST['startdatemonth']))
-  $startdate  = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['startdatemonth'],  $_POST['startdateday'],  $_POST['startdateyear']));
+  $startdate = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['startdatemonth'],  $_POST['startdateday'],  $_POST['startdateyear']));
 if (!empty($_POST['enddatemonth']))
-  $enddate  = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['enddatemonth'],  $_POST['enddateday'],  $_POST['enddateyear']));
+  $enddate = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['enddatemonth'],  $_POST['enddateday'],  $_POST['enddateyear']));
 
 /*
  * View
@@ -90,7 +92,7 @@ else {
   if (! $sortfield) $sortfield="u.login";
 }
 
-// Date d�but
+// Start date
 print '<td>'.$langs->trans('StartDate').'</td>';
 print '<td width="20%">';
 $form->select_date($startdate,'startdate','','',1,"sel",1,1);
@@ -106,22 +108,22 @@ print '</td></tr>';
 // Include unpayed invoices
 print '<tr><td>'.$langs->trans("IncludeUnpayedInvoices").'</td><td colspan="4">';
 print '<input id="selIncluded" type="checkbox" name="unpayed" ';
-if ($_REQUEST['unpayed'] == 'on')
+if (GETPOST('unpayed') == 'on')
   print 'checked ';
 print '/>';
 print '</td></tr>';
 
 
 // Total Margin
-if ($conf->global->COMMISSION_BASE == "MARGES") {
-  print '<tr style="font-weight: bold"><td>'.$langs->trans("TotalMargin").'</td><td colspan="4">';
-  print '<span id="totalBase"></span>'; // set by jquery (see below)
-  print '</td></tr>';
+if ($conf->global->COMMISSION_BASE == "MARGIN") {
+	print '<tr style="font-weight: bold"><td>'.$langs->trans("TotalMargin").'</td><td colspan="4">';
+	print '<span id="totalBase"></span>'; // set by jquery (see below)
+	print '</td></tr>';
 }
-elseif ($conf->global->COMMISSION_BASE == "CA") {
-  print '<tr style="font-weight: bold"><td>'.$langs->trans("CATotal").'</td><td colspan="4">';
-  print '<span id="totalBase"></span>'; // set by jquery (see below)
-  print '</td></tr>';
+elseif ($conf->global->COMMISSION_BASE == "TURNOVER") {
+	print '<tr style="font-weight: bold"><td>'.$langs->trans("TurnoverTotal").'</td><td colspan="4">';
+	print '<span id="totalBase"></span>'; // set by jquery (see below)
+	print '</td></tr>';
 }
 
 // Total Commission
@@ -135,13 +137,13 @@ print '</form>';
 $sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client, s.client, sc.fk_user as agent,";
 $sql.= " u.login,";
 $sql.= " f.facnumber, f.total as total_ht,";
-if ($conf->global->COMMISSION_BASE == "MARGES") {
-  $sql.= " sum(case d.product_type when 1 then 0 else (((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) end)  as productBase," ;
-  $sql.= " sum(case d.product_type when 1 then (((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) else 0 end) as serviceBase," ;
+if ($conf->global->COMMISSION_BASE == "MARGIN") {
+	$sql.= " sum(case d.product_type when 1 then 0 else (((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) end)  as productBase," ;
+	$sql.= " sum(case d.product_type when 1 then (((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) else 0 end) as serviceBase," ;
 }
-elseif ($conf->global->COMMISSION_BASE == "CA") {
-  $sql.= " sum(case d.product_type when 1 then 0 else (((d.subprice * (1 - d.remise_percent / 100))) * d.qty) end)  as productBase," ;
-  $sql.= " sum(case d.product_type when 1 then (((d.subprice * (1 - d.remise_percent / 100))) * d.qty) else 0 end) as serviceBase," ;
+elseif ($conf->global->COMMISSION_BASE == "TURNOVER") {
+	$sql.= " sum(case d.product_type when 1 then 0 else (((d.subprice * (1 - d.remise_percent / 100))) * d.qty) end)  as productBase," ;
+	$sql.= " sum(case d.product_type when 1 then (((d.subprice * (1 - d.remise_percent / 100))) * d.qty) else 0 end) as serviceBase," ;
 }
 $sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid";
 $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
@@ -152,13 +154,13 @@ $sql.= ", ".MAIN_DB_PREFIX."user as u";
 $sql.= " WHERE f.fk_soc = s.rowid";
 $sql.= " AND sc.fk_soc = f.fk_soc";
 $sql.= " AND sc.fk_user = u.rowid";
-if ($_REQUEST['unpayed'] == 'on')
+if (GETPOST('unpayed') == 'on')
   $sql.= " AND f.fk_statut > 0";
 else
   $sql.= " AND f.fk_statut > 1";
 $sql.= " AND s.entity = ".$conf->entity;
 $sql.= " AND d.fk_facture = f.rowid";
-if ($conf->global->COMMISSION_BASE == "MARGES")
+if ($conf->global->COMMISSION_BASE == "MARGIN")
   $sql.= " AND d.buy_price_ht IS NOT NULL AND d.buy_price_ht <> 0";
 if ($agentid > 0)
   $sql.= " AND sc.fk_user = $agentid";
@@ -178,37 +180,38 @@ if ($result)
 {
 	$num = $db->num_rows($result);
 
-  print '<br>';
-	print_barre_liste($langs->trans("CommissionDetails"),$page,$_SERVER["PHP_SELF"],"&amp;socid=$societe->id",$sortfield,$sortorder,'',$num,0,'');
+	print '<br>';
+	print_barre_liste($langs->trans("CommissionDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,'');
 
 	$i = 0;
 	print "<table class=\"noborder\" width=\"100%\">";
 
 	print '<tr class="liste_titre">';
 	if ($agentid > 0)
-   	print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;agentid=".$_REQUEST["agentid"],'align="center"',$sortfield,$sortorder);
-  else
-  	print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.login","","&amp;agentid=".$_REQUEST["agentid"],'align="center"',$sortfield,$sortorder);
-
-  // product commission
-  if ($conf->global->COMMISSION_BASE == "MARGES")
-	  print_liste_field_titre($langs->trans("ProductMargin"),$_SERVER["PHP_SELF"],"productBase","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-  elseif ($conf->global->COMMISSION_BASE == "CA")
-	  print_liste_field_titre($langs->trans("ProductCA"),$_SERVER["PHP_SELF"],"productBase","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-
-  print_liste_field_titre($langs->trans("CommissionRate"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("ProductCommission"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-
-  // service commission
-  if ($conf->global->COMMISSION_BASE == "MARGES")
-  	print_liste_field_titre($langs->trans("ServiceMargin"),$_SERVER["PHP_SELF"],"serviceBase","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-  elseif ($conf->global->COMMISSION_BASE == "CA")
-  	print_liste_field_titre($langs->trans("ServiceCA"),$_SERVER["PHP_SELF"],"serviceBase","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-
-	print_liste_field_titre($langs->trans("CommissionRate"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("ServiceCommission"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;agentid=".$agentid,'align="center"',$sortfield,$sortorder);
+	else
+		print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.login","","&amp;agentid=".$agentid,'align="center"',$sortfield,$sortorder);
+
+	// product commission
+	if ($conf->global->COMMISSION_BASE == "MARGIN")
+		print_liste_field_titre($langs->trans("ProductMargin"),$_SERVER["PHP_SELF"],"productBase","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	elseif ($conf->global->COMMISSION_BASE == "TURNOVER")
+		print_liste_field_titre($langs->trans("ProductTurnover"),$_SERVER["PHP_SELF"],"productBase","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+
+	print_liste_field_titre($langs->trans("CommissionRate"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("ProductCommission"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+
+	// service commission
+	if ($conf->global->COMMISSION_BASE == "MARGIN")
+		print_liste_field_titre($langs->trans("ServiceMargin"),$_SERVER["PHP_SELF"],"serviceBase","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	elseif ($conf->global->COMMISSION_BASE == "TURNOVER")
+		print_liste_field_titre($langs->trans("ServiceTurnover"),$_SERVER["PHP_SELF"],"serviceBase","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+
+	print_liste_field_titre($langs->trans("CommissionRate"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("ServiceCommission"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+
 	// total commission
-	print_liste_field_titre($langs->trans("TotalCommission"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("TotalCommission"),$_SERVER["PHP_SELF"],"","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
 
 	print "</tr>\n";
 
@@ -227,32 +230,39 @@ if ($result)
 
 			print "<tr $bc[$var]>";
 			if ($agentid > 0) {
-    		$companystatic->id=$objp->socid;
-    		$companystatic->nom=$objp->nom;
-    		$companystatic->client=$objp->client;
-        print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n";
-      }
-      else {
-  			$userstatic->id=$objp->agent;
-  			$userstatic->login=$objp->login;
-        print "<td>".$userstatic->getLoginUrl(1)."</td>\n";
-      }
-      // product commission
-      $productCommission = $conf->global->PRODUCT_COMMISSION_RATE * $objp->productBase / 100;
-			print "<td align=\"right\">".price($objp->productBase)."</td>\n";
-			print "<td align=\"right\">".price($conf->global->PRODUCT_COMMISSION_RATE)."</td>\n";
+				$companystatic->id=$objp->socid;
+				$companystatic->nom=$objp->nom;
+				$companystatic->client=$objp->client;
+				print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n";
+			}
+			else {
+				$userstatic->id=$objp->agent;
+				$userstatic->login=$objp->login;
+				print "<td>".$userstatic->getLoginUrl(1)."</td>\n";
+			}
+
+			// product commission
+			$productCommissionRate=(! empty($conf->global->PRODUCT_COMMISSION_RATE)?$conf->global->PRODUCT_COMMISSION_RATE:0);
+			$productBase=(! empty($objp->productBase)?$objp->productBase:0);
+			$productCommission = (! empty($productBase)?($productCommissionRate * $productBase / 100):0);
+			print "<td align=\"right\">".price($productBase)."</td>\n";
+			print "<td align=\"right\">".price($productCommissionRate)."</td>\n";
 			print "<td align=\"right\">".price($productCommission)."</td>\n";
-      // service commission
-      $serviceCommission = $conf->global->SERVICE_COMMISSION_RATE * $objp->serviceBase / 100;
-			print "<td align=\"right\">".price($objp->serviceBase)."</td>\n";
-			print "<td align=\"right\">".price($conf->global->SERVICE_COMMISSION_RATE)."</td>\n";
+
+			// service commission
+			$serviceCommissionRate=(! empty($conf->global->SERVICE_COMMISSION_RATE)?$conf->global->SERVICE_COMMISSION_RATE:0);
+			$serviceBase=(! empty($objp->serviceBase)?$objp->serviceBase:0);
+			$serviceCommission = (! empty($serviceBase)?($serviceCommissionRate * $serviceBase / 100):0);
+			print "<td align=\"right\">".price($serviceBase)."</td>\n";
+			print "<td align=\"right\">".price($serviceCommissionRate)."</td>\n";
 			print "<td align=\"right\">".price($serviceCommission)."</td>\n";
+
 			// total commission
 			print "<td align=\"right\">".price($productCommission + $serviceCommission)."</td>\n";
 			print "</tr>\n";
 			$i++;
-			$cumul_base_produit += $objp->productBase;
-			$cumul_base_service += $objp->serviceBase;
+			$cumul_base_produit += $productBase;
+			$cumul_base_service += $serviceBase;
 			$cumul_commission_produit += $productCommission;
 			$cumul_commission_service += $serviceCommission;
 		}
@@ -261,25 +271,25 @@ if ($result)
 	// affichage totaux commission
 	$var=!$var;
 	print '<tr '.$bc[$var].' style="border-top: 1px solid #ccc; font-weight: bold">';
-	if ($client)
-    print '<td colspan=2>';
-  else
-    print '<td>';
-  print $langs->trans('TotalCommission')."</td>";
-  // product commission
+	if (! empty($client))
+		print '<td colspan=2>';
+	else
+		print '<td>';
+	print $langs->trans('TotalCommission')."</td>";
+	// product commission
 	print "<td align=\"right\">".price($cumul_base_produit)."</td>\n";
-	print "<td align=\"right\">".price($conf->global->PRODUCT_COMMISSION_RATE)."</td>\n";
+	print "<td align=\"right\">".price((! empty($conf->global->PRODUCT_COMMISSION_RATE)?$conf->global->PRODUCT_COMMISSION_RATE:0))."</td>\n";
 	print "<td align=\"right\">".price($cumul_commission_produit)."</td>\n";
-  // service commission
+	// service commission
 	print "<td align=\"right\">".price($cumul_base_service)."</td>\n";
-	print "<td align=\"right\">".price($conf->global->SERVICE_COMMISSION_RATE)."</td>\n";
+	print "<td align=\"right\">".price((! empty($conf->global->SERVICE_COMMISSION_RATE)?$conf->global->SERVICE_COMMISSION_RATE:0))."</td>\n";
 	print "<td align=\"right\">".price($cumul_commission_service)."</td>\n";
 	// total commission
 	print "<td align=\"right\">".price($cumul_commission_produit + $cumul_commission_service)."</td>\n";
 
 	print "</tr>\n";
 
-  print "</table>";
+	print "</table>";
 }
 else
 {
diff --git a/htdocs/commissions/lib/commissions.lib.php b/htdocs/commissions/lib/commissions.lib.php
index ca71d41536c..89fba20a60c 100644
--- a/htdocs/commissions/lib/commissions.lib.php
+++ b/htdocs/commissions/lib/commissions.lib.php
@@ -42,7 +42,7 @@ function commissions_admin_prepare_head()
     // Entries must be declared in modules descriptor with line
     // $this->tabs = array('entity:+tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__');   to add new tab
     // $this->tabs = array('entity:-tabname:Title:@mymodule:/mymodule/mypage.php?id=__ID__');   to remove a tab
-    complete_head_from_modules($conf,$langs,$object,$head,$h,'commissionsadmin');
+    complete_head_from_modules($conf,$langs,'',$head,$h,'commissionsadmin');
 
     return $head;
 }
diff --git a/htdocs/core/class/html.form.class.php b/htdocs/core/class/html.form.class.php
index f94797cb679..b1c7383e32c 100644
--- a/htdocs/core/class/html.form.class.php
+++ b/htdocs/core/class/html.form.class.php
@@ -2184,7 +2184,7 @@ class Form
                         $more.='<input type="checkbox" class="flat" id="'.$input['name'].'" name="'.$input['name'].'"';
                         if (! is_bool($input['value']) && $input['value'] != 'false') $more.=' checked="checked"';
                         if (is_bool($input['value']) && $input['value']) $more.=' checked="checked"';
-                        if ($input['disabled']) $more.=' disabled="disabled"';
+                        if (isset($input['disabled'])) $more.=' disabled="disabled"';
                         $more.=' /></td>';
                         $more.='<td valign="top" align="left">&nbsp;</td>';
                         $more.='</tr>'."\n";
@@ -3067,11 +3067,11 @@ class Form
         if (preg_match('/^([0-9]+)\-([0-9]+)\-([0-9]+)\s?([0-9]+)?:?([0-9]+)?/',$set_time,$reg))
         {
             // Date format 'YYYY-MM-DD' or 'YYYY-MM-DD HH:MM:SS'
-            $syear = $reg[1];
-            $smonth = $reg[2];
-            $sday = $reg[3];
-            $shour = $reg[4];
-            $smin = $reg[5];
+            $syear	= (! empty($reg[1])?$reg[1]:'');
+            $smonth	= (! empty($reg[2])?$reg[2]:'');
+            $sday	= (! empty($reg[3])?$reg[3]:'');
+            $shour	= (! empty($reg[4])?$reg[4]:'');
+            $smin	= (! empty($reg[5])?$reg[5]:'');
         }
         elseif (strval($set_time) != '' && $set_time != -1)
         {
diff --git a/htdocs/core/modules/modCommissions.class.php b/htdocs/core/modules/modCommissions.class.php
index b03fa23c6d1..0dbaa7690d8 100644
--- a/htdocs/core/modules/modCommissions.class.php
+++ b/htdocs/core/modules/modCommissions.class.php
@@ -67,7 +67,7 @@ class modCommissions extends DolibarrModules
 		$this->dirs = array();
 
 		// Config pages. Put here list of php page names stored in admmin directory used to setup module.
-		$this->config_page_url = array("commissions.php");
+		$this->config_page_url = array("commissions.php@commissions");
 
 		// Dependencies
 		$this->depends = array("modFacture", "modMargin");		// List of modules id that must be enabled if this module is enabled
@@ -77,7 +77,7 @@ class modCommissions extends DolibarrModules
 		$this->langfiles = array("commissions");
 
 		// Constants
-		$this->const = array();			// List of particular constants to add when module is enabled
+		$this->const = array(0=>array('COMMISSION_BASE',"chaine","TURNOVER",'Default commission base',0));			// List of particular constants to add when module is enabled
 
 		// New pages on tabs
 		$this->tabs = array();
@@ -106,15 +106,15 @@ class modCommissions extends DolibarrModules
 
 		// left menu entry
 		$this->menu[$r]=array(
-				'fk_menu'=>0,			// Put 0 if this is a top menu
-    			'type'=>'top',			// This is a Top menu entry
+				'fk_menu'=>'fk_mainmenu=accountancy',			// Put 0 if this is a top menu
+    			'type'=>'left',			// This is a Top menu entry
     			'titre'=>'Commissions',
-    			'mainmenu'=>'commissions',
-    			'leftmenu'=>'0',		// Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
+    			'mainmenu'=>'accountancy',
+    			'leftmenu'=>'commissions',		// Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
     			'url'=>'/commissions/index.php',
-    			'langs'=>'commissions@commissions',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-    			'position'=>110,
-    			'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
+    			'langs'=>'commissions',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
+    			'position'=>200,
+    			'enabled'=>'$conf->commissions->enabled',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
     			'perms'=>'1',			// Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
     			'target'=>'',
     			'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
diff --git a/htdocs/core/modules/modMargin.class.php b/htdocs/core/modules/modMargin.class.php
index a14068f348e..f94193393fc 100644
--- a/htdocs/core/modules/modMargin.class.php
+++ b/htdocs/core/modules/modMargin.class.php
@@ -59,13 +59,13 @@ class modMargin extends DolibarrModules
 		$this->special = 0;
 		// Name of png file (without png) used for this module.
 		// Png file must be in theme/yourtheme/img directory under name object_pictovalue.png.
-		$this->picto='marges';
+		$this->picto='margin';
 
 		// Data directories to create when module is enabled.
 		$this->dirs = array('/margin/temp');
 
 		// Config pages. Put here list of php page names stored in admmin directory used to setup module.
-		$this->config_page_url = array("margin.php");
+		$this->config_page_url = array("margin.php@margin");
 
 		// Dependencies
 		$this->depends = array("modPropale", "modProduct");		// List of modules id that must be enabled if this module is enabled
@@ -98,62 +98,19 @@ class modMargin extends DolibarrModules
 
 		// left menu entry
 		$this->menu[$r]=array(
-				'fk_menu'=>0,			// Put 0 if this is a top menu
-    			'type'=>'top',			// This is a Top menu entry
+				'fk_menu'=>'fk_mainmenu=accountancy',			// Put 0 if this is a top menu
+    			'type'=>'left',			// This is a Top menu entry
     			'titre'=>'Margins',
-    			'mainmenu'=>'margins',
-    			'leftmenu'=>'1',		// Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
+    			'mainmenu'=>'accountancy',
+    			'leftmenu'=>'margins',		// Use 1 if you also want to add left menu entries using this descriptor. Use 0 if left menu entries are defined in a file pre.inc.php (old school).
     			'url'=>'/margin/index.php',
     			'langs'=>'margins',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
     			'position'=>100,
-    			'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
+    			'enabled'=>'$conf->margin->enabled',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
     			'perms'=>'1',			// Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
     			'target'=>'',
     			'user'=>2);				// 0=Menu for internal users, 1=external users, 2=both
 		$r++;
-
-		// top menu entry
-		$this->menu[$r]=array(
-				'fk_menu'=>'r=0',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
-    			'type'=>'left',			// This is a Left menu entry
-    			'titre'=>'ProductMargins',
-    			'mainmenu'=>'margins',
-    			'url'=>'/margin/productMargins.php',
-    			'langs'=>'margins',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-    			'position'=>100,
-    			'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
-    			'perms'=>'1',			// Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
-    			'target'=>'',
-    			'user'=>2);				// 0=Menu for internal users,1=external users, 2=both
-		$r++;
-
-		$this->menu[$r]=array(
-				'fk_menu'=>'r=0',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
-    			'type'=>'left',			// This is a Left menu entry
-    			'titre'=>'CustomerMargins',
-    			'mainmenu'=>'margins',
-    			'url'=>'/margin/customerMargins.php',
-    			'langs'=>'margins',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-    			'position'=>200,
-    			'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
-    			'perms'=>'1',			// Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
-    			'target'=>'',
-    			'user'=>2);				// 0=Menu for internal users,1=external users, 2=both
-		$r++;
-
-		$this->menu[$r]=array(
-				'fk_menu'=>'r=0',		// Use r=value where r is index key used for the parent menu entry (higher parent must be a top menu entry)
-    			'type'=>'left',			// This is a Left menu entry
-    			'titre'=>'AgentMargins',
-    			'mainmenu'=>'margins',
-    			'url'=>'/margin/agentMargins.php',
-    			'langs'=>'margins',	// Lang file to use (without .lang) by module. File must be in langs/code_CODE/ directory.
-    			'position'=>300,
-    			'enabled'=>'1',			// Define condition to show or hide menu entry. Use '$conf->monmodule->enabled' if entry must be visible if module is enabled.
-    			'perms'=>'1',			// Use 'perms'=>'$user->rights->monmodule->level1->level2' if you want your menu with a permission rules
-    			'target'=>'',
-    			'user'=>2);				// 0=Menu for internal users,1=external users, 2=both
-		$r++;
 	}
 
 	/**
diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php
index efa3d132d24..fc8c2ed7855 100644
--- a/htdocs/expedition/fiche.php
+++ b/htdocs/expedition/fiche.php
@@ -781,9 +781,9 @@ if ($action == 'create')
                     if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
                     {
                         // Show warehouse combo list
-                    	$ent = "entl".$indiceAsked;
-                    	$idl = "idl".$indiceAsked;
-                    	$tmpentrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
+                    	$ent = "entl".$indiceAsked;
+                    	$idl = "idl".$indiceAsked;
+                    	$tmpentrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
                         print $formproduct->selectWarehouses($tmpentrepot_id,'entl'.$indiceAsked,'',1,0,$line->fk_product);
                     	if ($tmpentrepot_id && $tmpentrepot_id == GETPOST('entrepot_id','int'))
                         {
diff --git a/htdocs/filefunc.inc.php b/htdocs/filefunc.inc.php
index ffa61de2c9c..f0471874ea4 100755
--- a/htdocs/filefunc.inc.php
+++ b/htdocs/filefunc.inc.php
@@ -77,7 +77,7 @@ if (! $result && ! empty($_SERVER["GATEWAY_INTERFACE"]))    // If install not do
 
 // Force PHP error_reporting setup (Dolibarr may report warning without this)
 if (! empty($dolibarr_strict_mode))
-{
+{
 	error_reporting(E_ALL | E_STRICT);
 }
 else
diff --git a/htdocs/install/lib/repair.lib.php b/htdocs/install/lib/repair.lib.php
index 05b06fda034..f7839e5dc49 100644
--- a/htdocs/install/lib/repair.lib.php
+++ b/htdocs/install/lib/repair.lib.php
@@ -117,30 +117,30 @@ function checkLinkedElements($sourcetype, $targettype)
 function clean_data_ecm_directories()
 {
 	global $db, $langs;
-
-	// Clean data from ecm_directories
-	$sql="SELECT rowid, label FROM ".MAIN_DB_PREFIX."ecm_directories";
-	$resql=$db->query($sql);
-	if ($resql)
-	{
-		while($obj=$db->fetch_object($resql))
-		{
-			$id=$obj->rowid;
-			$label=$obj->label;
-			$newlabel=dol_sanitizeFileName($label);
-			if ($label != $newlabel)
-			{
-				$sqlupdate="UPDATE ".MAIN_DB_PREFIX."ecm_directories set label='".$newlabel."' WHERE rowid=".$id;
-				print '<tr><td>'.$sqlupdate."</td></tr>\n";
+
+	// Clean data from ecm_directories
+	$sql="SELECT rowid, label FROM ".MAIN_DB_PREFIX."ecm_directories";
+	$resql=$db->query($sql);
+	if ($resql)
+	{
+		while($obj=$db->fetch_object($resql))
+		{
+			$id=$obj->rowid;
+			$label=$obj->label;
+			$newlabel=dol_sanitizeFileName($label);
+			if ($label != $newlabel)
+			{
+				$sqlupdate="UPDATE ".MAIN_DB_PREFIX."ecm_directories set label='".$newlabel."' WHERE rowid=".$id;
+				print '<tr><td>'.$sqlupdate."</td></tr>\n";
 				$resqlupdate=$db->query($sqlupdate);
-				if (! $resqlupdate) dol_print_error($db,'Failed to update');
-			}
-	
-		}
-	}
-	else dol_print_error($db,'Failed to run request');
-
-	return;
+				if (! $resqlupdate) dol_print_error($db,'Failed to update');
+			}
+	
+		}
+	}
+	else dol_print_error($db,'Failed to run request');
+
+	return;
 }
 
 ?>
diff --git a/htdocs/langs/fr_FR/commissions.lang b/htdocs/langs/fr_FR/commissions.lang
index 350b12a8099..97dd17d9cba 100644
--- a/htdocs/langs/fr_FR/commissions.lang
+++ b/htdocs/langs/fr_FR/commissions.lang
@@ -23,14 +23,14 @@ ProductCommission=Commission / produits
 ServiceCommission=Commission / services
 
 CommissionBase=Base de calcul des commissions
-CommissionBasedOnCA=Commissions calculées sur le CA
+CommissionBasedOnTurnover=Commissions calculées sur le CA
 CommissionBasedOnMargins=Commissions calculées sur les marges
 CommissionBaseDetails=Définit le mode de calcul des commissions
 CommissionBasedOnMarginsDetails=Le calcul basé sur les marges nécessite l'activation du module marges.
 
-CATotal = Chiffre d'affaire réalisé HT
-ProductCA=CA HT / produits
-ServiceCA=CA HT / services
+TurnoverTotal = Chiffre d'affaire réalisé HT
+ProductTurnover=CA HT / produits
+ServiceTurnover=CA HT / services
 
 CommercialAgent=Agent commercial
 
diff --git a/htdocs/admin/margin.php b/htdocs/margin/admin/margin.php
similarity index 97%
rename from htdocs/admin/margin.php
rename to htdocs/margin/admin/margin.php
index 782d4df55e0..1396c8c13a0 100644
--- a/htdocs/admin/margin.php
+++ b/htdocs/margin/admin/margin.php
@@ -16,12 +16,12 @@
  */
 
 /**
- *      \file       /htdocs/admin/margin.php
+ *      \file       /htdocs/margin/admin/margin.php
  *		\ingroup    margin
  *		\brief      Page to setup margin module
  */
 
-include("../main.inc.php");
+include("../../main.inc.php");
 
 require_once(DOL_DOCUMENT_ROOT."/margin/lib/margins.lib.php");
 require_once(DOL_DOCUMENT_ROOT."/core/lib/admin.lib.php");
@@ -121,7 +121,7 @@ $form = new Form($db);
 
 // GLOBAL DISCOUNT MANAGEMENT
 $var=!$var;
-print "<form method=\"post\" action=\"marges.php\">";
+print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
 print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 print "<input type=\"hidden\" name=\"action\" value=\"typemarges\">";
 print '<tr '.$bc[$var].'>';
@@ -219,7 +219,7 @@ print '</tr>';
 
 // GLOBAL DISCOUNT MANAGEMENT
 $var=!$var;
-print "<form method=\"post\" action=\"marges.php\">";
+print '<form method="POST" action="'.$_SERVER['PHP_SELF'].'">';
 print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 print "<input type=\"hidden\" name=\"action\" value=\"remises\">";
 print '<tr '.$bc[$var].'>';
diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php
index f11db0f42f4..51327212ba7 100644
--- a/htdocs/margin/agentMargins.php
+++ b/htdocs/margin/agentMargins.php
@@ -39,12 +39,16 @@ $mesg = '';
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+if (! $sortorder) $sortorder="ASC";
+if (! $sortfield) $sortfield="s.nom";
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
 $offset = $conf->liste_limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
+$startdate=$enddate='';
+
 if (!empty($_POST['startdatemonth']))
   $startdate  = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['startdatemonth'],  $_POST['startdateday'],  $_POST['startdateyear']));
 if (!empty($_POST['enddatemonth']))
@@ -68,30 +72,16 @@ print_fiche_titre($text);
 // Show tabs
 $head=marges_prepare_head($user);
 $titre=$langs->trans("Margins");
-$picto='marges';
+$picto='margin';
 dol_fiche_head($head, 'agentMargins', $titre, 0, $picto);
 
 print '<form method="post" name="sel">';
 print '<table class="border" width="100%">';
 
-if ($agentid > 0) {
-
-      print '<tr><td width="20%">'.$langs->trans('CommercialAgent').'</td>';
-      print '<td colspan="4">';
-      print $form->select_dolusers($selected=$agentid,$htmlname='agentid',$show_empty=1,$exclude='',$disabled=0,$include='',$enableonly='');
-      print '</td></tr>';
-
-      if (! $sortorder) $sortorder="ASC";
-      if (! $sortfield) $sortfield="s.nom";
-}
-else {
-  print '<tr><td width="20%">'.$langs->trans('CommercialAgent').'</td>';
-  print '<td colspan="4">';
-  print $form->select_dolusers($selected='',$htmlname='agentid',$show_empty=1,$exclude='',$disabled=0,$include='',$enableonly='');
-   print '</td></tr>';
-  if (! $sortorder) $sortorder="ASC";
-  if (! $sortfield) $sortfield="u.login";
-}
+print '<tr><td width="20%">'.$langs->trans('CommercialAgent').'</td>';
+print '<td colspan="4">';
+print $form->select_dolusers($agentid,'agentid',1);
+print '</td></tr>';
 
 // Start date
 print '<td>'.$langs->trans('StartDate').'</td>';
@@ -112,14 +102,14 @@ print '<span id="totalMargin"></span>'; // set by jquery (see below)
 print '</td></tr>';
 
 // Margin Rate
-if ($conf->global->DISPLAY_MARGIN_RATES) {
+if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
 	print '<tr style="font-weight: bold"><td>'.$langs->trans("MarginRate").'</td><td colspan="4">';
 	print '<span id="marginRate"></span>'; // set by jquery (see below)
 	print '</td></tr>';
 }
 
 // Mark Rate
-if ($conf->global->DISPLAY_MARK_RATES) {
+if (! empty($conf->global->DISPLAY_MARK_RATES)) {
 	print '<tr style="font-weight: bold"><td>'.$langs->trans("MarkRate").'</td><td colspan="4">';
 	print '<span id="markRate"></span>'; // set by jquery (see below)
 	print '</td></tr>';
@@ -163,24 +153,25 @@ if ($result)
 {
 	$num = $db->num_rows($result);
 
-  print '<br>';
-	print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&amp;socid=$societe->id",$sortfield,$sortorder,'',$num,0,'');
+	print '<br>';
+	print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,'');
 
 	$i = 0;
 	print "<table class=\"noborder\" width=\"100%\">";
 
 	print '<tr class="liste_titre">';
 	if ($agentid > 0)
-   	print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;agentid=".$_REQUEST["agentid"],'align="center"',$sortfield,$sortorder);
-  else
-  	print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.login","","&amp;agentid=".$_REQUEST["agentid"],'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-	if ($conf->global->DISPLAY_MARGIN_RATES)
-		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
-	if ($conf->global->DISPLAY_MARK_RATES)
-		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;agentid=".$_REQUEST["agentid"],'align="right"',$sortfield,$sortorder);
+		print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;agentid=".$agentid,'align="center"',$sortfield,$sortorder);
+	else
+		print_liste_field_titre($langs->trans("CommercialAgent"),$_SERVER["PHP_SELF"],"u.login","","&amp;agentid=".$agentid,'align="center"',$sortfield,$sortorder);
+
+	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
+		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
+	if (! empty($conf->global->DISPLAY_MARK_RATES))
+		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;agentid=".$agentid,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$cumul_achat = 0;
@@ -188,34 +179,34 @@ if ($result)
 	$cumul_qty = 0;
 	if ($num > 0)
 	{
-		$var=True;
+		$var=true;
 		while ($i < $num && $i < $conf->liste_limit)
 		{
 			$objp = $db->fetch_object($result);
 
-			$marginRate = ($objp->buying_price != 0)?(100 * round($objp->marge / $objp->buying_price ,5)):'' ;
-			$markRate = ($objp->selling_price != 0)?(100 * round($objp->marge / $objp->selling_price ,5)):'' ;
+			$marginRate = ($objp->buying_price != 0)?(100 * round($objp->marge / $objp->buying_price ,5)):'';
+			$markRate = ($objp->selling_price != 0)?(100 * round($objp->marge / $objp->selling_price ,5)):'';
 
 			$var=!$var;
 
 			print "<tr $bc[$var]>";
 			if ($agentid > 0) {
-    		$companystatic->id=$objp->socid;
-    		$companystatic->nom=$objp->nom;
-    		$companystatic->client=$objp->client;
-        print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n";
-      }
-      else {
-  			$userstatic->id=$objp->agent;
-  			$userstatic->login=$objp->login;
-        print "<td>".$userstatic->getLoginUrl(1)."</td>\n";
-      }
+				$companystatic->id=$objp->socid;
+				$companystatic->nom=$objp->nom;
+				$companystatic->client=$objp->client;
+				print "<td>".$companystatic->getNomUrl(1,'customer')."</td>\n";
+			}
+			else {
+				$userstatic->id=$objp->agent;
+				$userstatic->login=$objp->login;
+				print "<td>".$userstatic->getLoginUrl(1)."</td>\n";
+			}
 			print "<td align=\"right\">".price($objp->selling_price)."</td>\n";
 			print "<td align=\"right\">".price($objp->buying_price)."</td>\n";
 			print "<td align=\"right\">".price($objp->marge)."</td>\n";
-			if ($conf->global->DISPLAY_MARGIN_RATES)
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 				print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-			if ($conf->global->DISPLAY_MARK_RATES)
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
 				print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 			print "</tr>\n";
 			$i++;
@@ -227,24 +218,24 @@ if ($result)
 	// affichage totaux marges
 	$var=!$var;
 	$totalMargin = $cumul_vente - $cumul_achat;
-	$marginRate = ($cumul_achat != 0)?(100 * round($totalMargin / $cumul_achat, 5)):'' ;
-	$markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):'' ;
+	$marginRate = ($cumul_achat != 0)?(100 * round($totalMargin / $cumul_achat, 5)):'';
+	$markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):'';
 	print '<tr '.$bc[$var].' style="border-top: 1px solid #ccc; font-weight: bold">';
-	if ($client)
-    print '<td colspan=2>';
-  else
-    print '<td>';
-  print $langs->trans('TotalMargin')."</td>";
+	if (! empty($client))
+		print '<td colspan=2>';
+	else
+		print '<td>';
+	print $langs->trans('TotalMargin')."</td>";
 	print "<td align=\"right\">".price($cumul_vente)."</td>\n";
 	print "<td align=\"right\">".price($cumul_achat)."</td>\n";
 	print "<td align=\"right\">".price($totalMargin)."</td>\n";
-	if ($conf->global->DISPLAY_MARGIN_RATES)
+	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 		print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-	if ($conf->global->DISPLAY_MARK_RATES)
+	if (! empty($conf->global->DISPLAY_MARK_RATES))
 		print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 	print "</tr>\n";
 
-  print "</table>";
+	print "</table>";
 }
 else
 {
diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php
index 979e67b6345..27c1e230a2f 100644
--- a/htdocs/margin/customerMargins.php
+++ b/htdocs/margin/customerMargins.php
@@ -42,12 +42,16 @@ $mesg = '';
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+if (! $sortorder) $sortorder="ASC";
+if (! $sortfield) $sortfield="s.nom";
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
 $offset = $conf->liste_limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
+$startdate=$enddate='';
+
 if (!empty($_POST['startdatemonth']))
   $startdate  = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['startdatemonth'],  $_POST['startdateday'],  $_POST['startdateyear']));
 if (!empty($_POST['enddatemonth']))
@@ -70,37 +74,35 @@ print_fiche_titre($text);
 // Show tabs
 $head=marges_prepare_head($user);
 $titre=$langs->trans("Margins");
-$picto='marges';
+$picto='margin';
 dol_fiche_head($head, 'customerMargins', $titre, 0, $picto);
 
 print '<form method="post" name="sel">';
 print '<table class="border" width="100%">';
 
-$client = null;
+$client = false;
 if ($socid > 0) {
 
-  $societe = new Societe($db, $socid);
-  $societe->fetch($socid);
-
-  if ($societe->client)
-  {
-      print '<tr><td width="20%">'.$langs->trans('ThirdPartyName').'</td>';
-      print '<td colspan="4">';
-      $form->form_thirdparty($_SERVER['PHP_SELF'].'?socid='.$socid,$socid,'socid', $filter='client=1',$showempty=1, $showtype=0, $forcecombo=1);
-      print '</td></tr>';
+	$soc = new Societe($db, $socid);
+	$soc->fetch($socid);
 
-      $client = true;
-      if (! $sortorder) $sortorder="DESC";
-      if (! $sortfield) $sortfield="f.datef";
-  }
+	if ($soc->client)
+	{
+		print '<tr><td width="20%">'.$langs->trans('ThirdPartyName').'</td>';
+		print '<td colspan="4">';
+		$form->form_thirdparty($_SERVER['PHP_SELF'].'?socid='.$socid,$socid,'socid','client=1',1,0,1);
+		print '</td></tr>';
+
+		$client = true;
+		if (! $sortorder) $sortorder="DESC";
+		if (! $sortfield) $sortfield="f.datef";
+	}
 }
-if (!$client) {
-  print '<tr><td width="20%">'.$langs->trans('ThirdPartyName').'</td>';
-  print '<td colspan="4">';
-  $form->form_thirdparty($_SERVER['PHP_SELF'].'?socid='.$socid,null,'socid', $filter='client=1',$showempty=1, $showtype=0, $forcecombo=1);
-   print '</td></tr>';
-  if (! $sortorder) $sortorder="ASC";
-  if (! $sortfield) $sortfield="s.nom";
+else {
+	print '<tr><td width="20%">'.$langs->trans('ThirdPartyName').'</td>';
+	print '<td colspan="4">';
+	$form->form_thirdparty($_SERVER['PHP_SELF'].'?socid='.$socid,null,'socid','client=1',1,0,1);
+	print '</td></tr>';
 }
 
 // Start date
@@ -122,14 +124,14 @@ print '<span id="totalMargin"></span>'; // set by jquery (see below)
 print '</td></tr>';
 
 // Margin Rate
-if ($conf->global->DISPLAY_MARGIN_RATES) {
+if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
 	print '<tr style="font-weight: bold"><td>'.$langs->trans("MarginRate").'</td><td colspan="4">';
 	print '<span id="marginRate"></span>'; // set by jquery (see below)
 	print '</td></tr>';
 }
 
 // Mark Rate
-if ($conf->global->DISPLAY_MARK_RATES) {
+if (! empty($conf->global->DISPLAY_MARK_RATES)) {
 	print '<tr style="font-weight: bold"><td>'.$langs->trans("MarkRate").'</td><td colspan="4">';
 	print '<span id="markRate"></span>'; // set by jquery (see below)
 	print '</td></tr>';
@@ -169,25 +171,25 @@ if ($result)
 	$num = $db->num_rows($result);
 
   print '<br>';
-	print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&amp;socid=$societe->id",$sortfield,$sortorder,'',$num,0,'');
+	print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"",$sortfield,$sortorder,'',$num,0,'');
 
 	$i = 0;
 	print "<table class=\"noborder\" width=\"100%\">";
 
 	print '<tr class="liste_titre">';
-	if ($client) {
-  	print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$_REQUEST["socid"],'',$sortfield,$sortorder);
-  	print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder);
+	if (! empty($client)) {
+  	print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;socid=".$socid,'',$sortfield,$sortorder);
+  	print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;socid=".$socid,'align="center"',$sortfield,$sortorder);
   }
   else
-  	print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;socid=".$_REQUEST["socid"],'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-	if ($conf->global->DISPLAY_MARGIN_RATES)
-		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-	if ($conf->global->DISPLAY_MARK_RATES)
-		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
+  	print_liste_field_titre($langs->trans("Customer"),$_SERVER["PHP_SELF"],"s.nom","","&amp;socid=".$socid,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
+		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
+	if (! empty($conf->global->DISPLAY_MARK_RATES))
+		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;socid=".$socid,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$cumul_achat = 0;
@@ -224,9 +226,9 @@ if ($result)
 			print "<td align=\"right\">".price($objp->selling_price)."</td>\n";
 			print "<td align=\"right\">".price($objp->buying_price)."</td>\n";
 			print "<td align=\"right\">".price($objp->marge)."</td>\n";
-			if ($conf->global->DISPLAY_MARGIN_RATES)
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 				print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-			if ($conf->global->DISPLAY_MARK_RATES)
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
 				print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 			print "</tr>\n";
 			$i++;
@@ -249,9 +251,9 @@ if ($result)
 	print "<td align=\"right\">".price($cumul_vente)."</td>\n";
 	print "<td align=\"right\">".price($cumul_achat)."</td>\n";
 	print "<td align=\"right\">".price($totalMargin)."</td>\n";
-	if ($conf->global->DISPLAY_MARGIN_RATES)
+	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 		print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-	if ($conf->global->DISPLAY_MARK_RATES)
+	if (! empty($conf->global->DISPLAY_MARK_RATES))
 		print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 	print "</tr>\n";
 
diff --git a/htdocs/margin/lib/margins.lib.php b/htdocs/margin/lib/margins.lib.php
index 77368e80455..3456ee1e990 100644
--- a/htdocs/margin/lib/margins.lib.php
+++ b/htdocs/margin/lib/margins.lib.php
@@ -32,7 +32,7 @@ function marges_admin_prepare_head()
 	$h = 0;
 	$head = array();
 
-	$head[$h][0] = DOL_URL_ROOT."/admin/margin.php";
+	$head[$h][0] = DOL_URL_ROOT."/margin/admin/margin.php";
 	$head[$h][1] = $langs->trans("Parameters");
 	$head[$h][2] = 'parameters';
 	$h++;
diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php
index e43341ef7fc..ca6de009da3 100644
--- a/htdocs/margin/productMargins.php
+++ b/htdocs/margin/productMargins.php
@@ -47,12 +47,16 @@ $mesg = '';
 
 $sortfield = GETPOST("sortfield",'alpha');
 $sortorder = GETPOST("sortorder",'alpha');
+if (! $sortorder) $sortorder="ASC";
+if (! $sortfield) $sortfield="p.ref";
 $page = GETPOST("page",'int');
 if ($page == -1) { $page = 0; }
 $offset = $conf->liste_limit * $page;
 $pageprev = $page - 1;
 $pagenext = $page + 1;
 
+$startdate=$enddate='';
+
 if (!empty($_POST['startdatemonth']))
   $startdate  = date('Y-m-d', dol_mktime(12, 0, 0, $_POST['startdatemonth'], $_POST['startdateday'], $_POST['startdateyear']));
 if (!empty($_POST['enddatemonth']))
@@ -76,7 +80,7 @@ print_fiche_titre($text);
 // Show tabs
 $head=marges_prepare_head($user);
 $titre=$langs->trans("Margins");
-$picto='marges';
+$picto='margin';
 dol_fiche_head($head, 'productMargins', $titre, 0, $picto);
 
 print '<form method="post" name="sel">';
@@ -84,12 +88,9 @@ print '<table class="border" width="100%">';
 
 if ($id > 0) {
 
-  $societe = new Societe($db, $socid);
-  $societe->fetch($socid);
-
   print '<tr><td width="20%">'.$langs->trans('ChooseProduct/Service').'</td>';
   print '<td colspan="4">';
-  print $form->select_produits($selected=$id, $htmlname='id', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=1);
+  print $form->select_produits($id,'id','',20,0,1,2,'',1);
   print '</td></tr>';
 
   print '<tr><td width="20%">'.$langs->trans('AllProducts').'</td>';
@@ -99,12 +100,11 @@ if ($id > 0) {
   if (! $sortfield) $sortfield="f.datef";
 }
 else {
-  print '<tr><td width="20%">'.$langs->trans('ChooseProduct/Service').'</td>';
-  print '<td colspan="4">';
-  print $form->select_produits($selected='', $htmlname='id', $filtertype='', $limit=20, $price_level=0, $status=1, $finished=2, $selected_input_value='', $hidelabel=1);
-   print '</td></tr>';
-  if (! $sortorder) $sortorder="ASC";
-  if (! $sortfield) $sortfield="p.ref";
+	print '<tr><td width="20%">'.$langs->trans('ChooseProduct/Service').'</td>';
+	print '<td colspan="4">';
+	print $form->select_produits('','id','',20,0,1,2,'',1);
+	print '</td></tr>';
+
 }
 
 // Start date
@@ -126,14 +126,14 @@ print '<span id="totalMargin"></span>'; // set by jquery (see below)
 print '</td></tr>';
 
 // Margin Rate
-if ($conf->global->DISPLAY_MARGIN_RATES) {
+if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
 	print '<tr style="font-weight: bold"><td>'.$langs->trans("MarginRate").'</td><td colspan="4">';
 	print '<span id="marginRate"></span>'; // set by jquery (see below)
 	print '</td></tr>';
 }
 
 // Mark Rate
-if ($conf->global->DISPLAY_MARK_RATES) {
+if (! empty($conf->global->DISPLAY_MARK_RATES)) {
 	print '<tr style="font-weight: bold"><td>'.$langs->trans("MarkRate").'</td><td colspan="4">';
 	print '<span id="markRate"></span>'; // set by jquery (see below)
 	print '</td></tr>';
@@ -142,7 +142,7 @@ if ($conf->global->DISPLAY_MARK_RATES) {
 print "</table>";
 print '</form>';
 
-$sql = "SELECT distinct d.fk_product, p.label, p.rowid, p.fk_product_type, p.ref,";
+$sql = "SELECT DISTINCT d.fk_product, p.label, p.rowid, p.fk_product_type, p.ref,";
 $sql.= " f.facnumber, f.total as total_ht,";
 $sql.= " sum(d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price,";
 $sql.= " sum(d.buy_price_ht * d.qty) as buying_price, sum(((d.subprice * (1 - d.remise_percent / 100)) - d.buy_price_ht) * d.qty) as marge," ;
@@ -151,10 +151,10 @@ $sql.= " FROM ".MAIN_DB_PREFIX."societe as s";
 $sql.= ", ".MAIN_DB_PREFIX."product as p";
 $sql.= ", ".MAIN_DB_PREFIX."facture as f";
 $sql.= ", ".MAIN_DB_PREFIX."facturedet as d";
-$sql.= " WHERE f.fk_soc = s.rowid";
+$sql.= " WHERE f.entity = ".$conf->entity;
+$sql.= " AND f.fk_soc = s.rowid";
 $sql.= " AND d.fk_product = p.rowid";
 $sql.= " AND f.fk_statut > 0";
-$sql.= " AND s.entity = ".$conf->entity;
 $sql.= " AND d.fk_facture = f.rowid";
 if ($id > 0)
 	$sql.= " AND d.fk_product =".$id;
@@ -174,26 +174,26 @@ if ($result)
 {
 	$num = $db->num_rows($result);
 
-  print '<br>';
-	print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&amp;id=$product->id",$sortfield,$sortorder,'',$num,0,'');
+	print '<br>';
+	print_barre_liste($langs->trans("MarginDetails"),$page,$_SERVER["PHP_SELF"],"&amp;id=".$id,$sortfield,$sortorder,'',$num,0,'');
 
 	$i = 0;
 	print "<table class=\"noborder\" width=\"100%\">";
 
 	print '<tr class="liste_titre">';
 	if ($id > 0) {
-  	print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$_REQUEST["id"],'',$sortfield,$sortorder);
-  	print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$_REQUEST["id"],'align="center"',$sortfield,$sortorder);
+  	print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$id,'',$sortfield,$sortorder);
+  	print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","",'align="center"',$sortfield,$sortorder);
   }
   else
-  	print_liste_field_titre($langs->trans("ProductService"),$_SERVER["PHP_SELF"],"p.ref","","&amp;id=".$_REQUEST["id"],'align="center"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$_REQUEST["id"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;id=".$_REQUEST["id"],'align="right"',$sortfield,$sortorder);
-	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;id=".$_REQUEST["id"],'align="right"',$sortfield,$sortorder);
-	if ($conf->global->DISPLAY_MARGIN_RATES)
-		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;id=".$_REQUEST["id"],'align="right"',$sortfield,$sortorder);
-	if ($conf->global->DISPLAY_MARK_RATES)
-		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;id=".$_REQUEST["id"],'align="right"',$sortfield,$sortorder);
+  	print_liste_field_titre($langs->trans("ProductService"),$_SERVER["PHP_SELF"],"p.ref","","&amp;id=".$id,'align="center"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+	print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
+		print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
+	if (! empty($conf->global->DISPLAY_MARK_RATES))
+		print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;id=".$id,'align="right"',$sortfield,$sortorder);
 	print "</tr>\n";
 
 	$cumul_achat = 0;
@@ -213,29 +213,29 @@ if ($result)
 
 			print "<tr $bc[$var]>";
 			if ($id > 0) {
-        print '<td>';
-  			$invoicestatic->id=$objp->facid;
-  			$invoicestatic->ref=$objp->facnumber;
-  			print $invoicestatic->getNomUrl(1);
-  			print "</td>\n";
-  			print "<td align=\"center\">";
-  			print dol_print_date($db->jdate($objp->datef),'day')."</td>";
-      }
-      else {
+				print '<td>';
+				$invoicestatic->id=$objp->facid;
+				$invoicestatic->ref=$objp->facnumber;
+				print $invoicestatic->getNomUrl(1);
+				print "</td>\n";
+				print "<td align=\"center\">";
+				print dol_print_date($db->jdate($objp->datef),'day')."</td>";
+			}
+			else {
 				$product_static->type=$objp->fk_product_type;
-        $product_static->id=$objp->fk_product;
+				$product_static->id=$objp->fk_product;
 				$product_static->ref=$objp->ref;
-        $product_static->libelle=$objp->label;
+				$product_static->libelle=$objp->label;
 				$text=$product_static->getNomUrl(1);
 				$text.= ' - '.$objp->label;
-        print "<td>".$product_static->getNomUrl(1)."</td>\n";
-      }
+				print "<td>".$product_static->getNomUrl(1)."</td>\n";
+			}
 			print "<td align=\"right\">".price($objp->selling_price)."</td>\n";
 			print "<td align=\"right\">".price($objp->buying_price)."</td>\n";
 			print "<td align=\"right\">".price($objp->marge)."</td>\n";
-			if ($conf->global->DISPLAY_MARGIN_RATES)
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 				print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-			if ($conf->global->DISPLAY_MARK_RATES)
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
 				print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 			print "</tr>\n";
 			$i++;
@@ -251,20 +251,20 @@ if ($result)
 	$markRate = ($cumul_vente != 0)?(100 * round($totalMargin / $cumul_vente, 5)):'' ;
 	print '<tr '.$bc[$var].' style="border-top: 1px solid #ccc; font-weight: bold">';
 	if ($id > 0)
-    print '<td colspan=2>';
-  else
-    print '<td>';
-  print $langs->trans('TotalMargin')."</td>";
+		print '<td colspan=2>';
+	else
+		print '<td>';
+	print $langs->trans('TotalMargin')."</td>";
 	print "<td align=\"right\">".price($cumul_vente)."</td>\n";
 	print "<td align=\"right\">".price($cumul_achat)."</td>\n";
 	print "<td align=\"right\">".price($totalMargin)."</td>\n";
-	if ($conf->global->DISPLAY_MARGIN_RATES)
+	if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 		print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-	if ($conf->global->DISPLAY_MARK_RATES)
+	if (! empty($conf->global->DISPLAY_MARK_RATES))
 		print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 	print "</tr>\n";
 
-  print "</table>";
+	print "</table>";
 }
 else
 {
@@ -287,9 +287,9 @@ $(document).ready(function() {
      $("div.fiche form").submit();
   });
 
-	$("#totalMargin").html("<?php echo price($totalMargin); ?>");
-	$("#marginRate").html("<?php echo (($marginRate === '')?'n/a':price($marginRate)."%"); ?>");
-	$("#markRate").html("<?php echo (($markRate === '')?'n/a':price($markRate)."%"); ?>");
+  $("#totalMargin").html("<?php echo price($totalMargin); ?>");
+  $("#marginRate").html("<?php echo (($marginRate === '')?'n/a':price($marginRate)."%"); ?>");
+  $("#markRate").html("<?php echo (($markRate === '')?'n/a':price($markRate)."%"); ?>");
 
 });
 </script>
\ No newline at end of file
diff --git a/htdocs/margin/tabs/productMargins.php b/htdocs/margin/tabs/productMargins.php
index e13e6b036d8..9c452973710 100644
--- a/htdocs/margin/tabs/productMargins.php
+++ b/htdocs/margin/tabs/productMargins.php
@@ -80,7 +80,7 @@ if ($id > 0 || ! empty($ref))
 		$head=product_prepare_head($object, $user);
 		$titre=$langs->trans("CardProduct".$object->type);
 		$picto=($object->type==1?'service':'product');
-		dol_fiche_head($head, 'marges', $titre, 0, $picto);
+		dol_fiche_head($head, 'margin', $titre, 0, $picto);
 
 		print '<table class="border" width="100%">';
 
@@ -111,14 +111,14 @@ if ($id > 0 || ! empty($ref))
 		print '</td></tr>';
 
 		// Margin Rate
-		if ($conf->global->DISPLAY_MARGIN_RATES) {
+		if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
 			print '<tr style="font-weight: bold"><td>'.$langs->trans("MarginRate").'</td><td colspan="3">';
 			print '<span id="marginRate"></span>'; // set by jquery (see below)
 			print '</td></tr>';
 		}
 
 		// Mark Rate
-		if ($conf->global->DISPLAY_MARK_RATES) {
+		if (! empty($conf->global->DISPLAY_MARK_RATES)) {
 			print '<tr style="font-weight: bold"><td>'.$langs->trans("MarkRate").'</td><td colspan="3">';
 			print '<span id="markRate"></span>'; // set by jquery (see below)
 			print '</td></tr>';
@@ -128,7 +128,7 @@ if ($id > 0 || ! empty($ref))
 		print '</div>';
 
 
-		$sql = "SELECT distinct s.nom, s.rowid as socid, s.code_client,";
+		$sql = "SELECT DISTINCT s.nom, s.rowid as socid, s.code_client,";
 		$sql.= " f.facnumber, f.total as total_ht,";
 		$sql.= " (d.subprice * d.qty * (1 - d.remise_percent / 100)) as selling_price, (d.buy_price_ht * d.qty) as buying_price, d.qty, ((d.subprice - d.buy_price_ht) * d.qty) as marge," ;
 		$sql.= " f.datef, f.paye, f.fk_statut as statut, f.rowid as facid";
@@ -143,7 +143,7 @@ if ($id > 0 || ! empty($ref))
 		$sql.= " AND d.fk_facture = f.rowid";
 		$sql.= " AND d.fk_product =".$object->id;
 		if (!$user->rights->societe->client->voir && !$socid) $sql.= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
-		if ($socid) $sql.= " AND f.fk_soc = $socid";
+		if (! empty($socid)) $sql.= " AND f.fk_soc = $socid";
 		$sql.= " ORDER BY $sortfield $sortorder ";
 		$sql.= $db->plimit($conf->liste_limit +1, $offset);
 
@@ -158,19 +158,19 @@ if ($id > 0 || ! empty($ref))
 			print "<table class=\"noborder\" width=\"100%\">";
 
 			print '<tr class="liste_titre">';
-			print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$_GET["id"],'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$_GET["id"],'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$_GET["id"],'',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$_GET["id"],'align="center"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
-			if ($conf->global->DISPLAY_MARGIN_RATES)
-				print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
-			if ($conf->global->DISPLAY_MARK_RATES)
-				print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
-			print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;id=".$_GET["id"],'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("Invoice"),$_SERVER["PHP_SELF"],"f.facnumber","","&amp;id=".$object->id,'',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("Company"),$_SERVER["PHP_SELF"],"s.nom","","&amp;id=".$object->id,'',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("CustomerCode"),$_SERVER["PHP_SELF"],"s.code_client","","&amp;id=".$object->id,'',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("DateInvoice"),$_SERVER["PHP_SELF"],"f.datef","","&amp;id=".$object->id,'align="center"',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("Qty"),$_SERVER["PHP_SELF"],"d.qty","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
+				print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
+				print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
+			print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;id=".$object->id,'align="right"',$sortfield,$sortorder);
 			print "</tr>\n";
 
 			$cumul_achat = 0;
@@ -200,9 +200,9 @@ if ($id > 0 || ! empty($ref))
 					print "<td align=\"right\">".price($objp->buying_price)."</td>\n";
 					print "<td align=\"right\">".price($objp->qty)."</td>\n";
 					print "<td align=\"right\">".price($objp->marge)."</td>\n";
-					if ($conf->global->DISPLAY_MARGIN_RATES)
+					if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 						print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-					if ($conf->global->DISPLAY_MARK_RATES)
+					if (! empty($conf->global->DISPLAY_MARK_RATES))
 						print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 					print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>';
 					print "</tr>\n";
@@ -224,9 +224,9 @@ if ($id > 0 || ! empty($ref))
 			print "<td align=\"right\">".price($cumul_achat)."</td>\n";
 			print "<td align=\"right\">".price($cumul_qty)."</td>\n";
 			print "<td align=\"right\">".price($totalMargin)."</td>\n";
-			if ($conf->global->DISPLAY_MARGIN_RATES)
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 				print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-			if ($conf->global->DISPLAY_MARK_RATES)
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
 				print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 			print '<td align="right">&nbsp;</td>';
 			print "</tr>\n";
diff --git a/htdocs/margin/tabs/thirdpartyMargins.php b/htdocs/margin/tabs/thirdpartyMargins.php
index 2e94ed9b1e0..0ea0f42acad 100644
--- a/htdocs/margin/tabs/thirdpartyMargins.php
+++ b/htdocs/margin/tabs/thirdpartyMargins.php
@@ -71,7 +71,7 @@ if ($socid > 0)
 
     $head = societe_prepare_head($societe);
 
-    dol_fiche_head($head, 'marges', $langs->trans("ThirdParty"),0,'company');
+    dol_fiche_head($head, 'margin', $langs->trans("ThirdParty"),0,'company');
 
     print '<table class="border" width="100%">';
 
@@ -109,14 +109,14 @@ if ($socid > 0)
 		print '</td></tr>';
 
 		// Margin Rate
-		if ($conf->global->DISPLAY_MARGIN_RATES) {
+		if (! empty($conf->global->DISPLAY_MARGIN_RATES)) {
 			print '<tr style="font-weight: bold"><td>'.$langs->trans("MarginRate").'</td><td colspan="3">';
 			print '<span id="marginRate"></span>'; // set by jquery (see below)
 			print '</td></tr>';
 		}
 
 		// Mark Rate
-		if ($conf->global->DISPLAY_MARK_RATES) {
+		if (! empty($conf->global->DISPLAY_MARK_RATES)) {
 			print '<tr style="font-weight: bold"><td>'.$langs->trans("MarkRate").'</td><td colspan="3">';
 			print '<span id="markRate"></span>'; // set by jquery (see below)
 			print '</td></tr>';
@@ -158,9 +158,9 @@ if ($socid > 0)
 			print_liste_field_titre($langs->trans("SellingPrice"),$_SERVER["PHP_SELF"],"selling_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
 			print_liste_field_titre($langs->trans("BuyingPrice"),$_SERVER["PHP_SELF"],"buyng_price","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
 			print_liste_field_titre($langs->trans("Margin"),$_SERVER["PHP_SELF"],"marge","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-			if ($conf->global->DISPLAY_MARGIN_RATES)
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 				print_liste_field_titre($langs->trans("MarginRate"),$_SERVER["PHP_SELF"],"d.marge_tx","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
-			if ($conf->global->DISPLAY_MARK_RATES)
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
 				print_liste_field_titre($langs->trans("MarkRate"),$_SERVER["PHP_SELF"],"d.marque_tx","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
 			print_liste_field_titre($langs->trans("Status"),$_SERVER["PHP_SELF"],"f.paye,f.fk_statut","","&amp;socid=".$_REQUEST["socid"],'align="right"',$sortfield,$sortorder);
 			print "</tr>\n";
@@ -191,9 +191,9 @@ if ($socid > 0)
 					print "<td align=\"right\">".price($objp->selling_price)."</td>\n";
 					print "<td align=\"right\">".price($objp->buying_price)."</td>\n";
 					print "<td align=\"right\">".price($objp->marge)."</td>\n";
-					if ($conf->global->DISPLAY_MARGIN_RATES)
+					if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 						print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-					if ($conf->global->DISPLAY_MARK_RATES)
+					if (! empty($conf->global->DISPLAY_MARK_RATES))
 						print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 					print '<td align="right">'.$invoicestatic->LibStatut($objp->paye,$objp->statut,5).'</td>';
 					print "</tr>\n";
@@ -213,9 +213,9 @@ if ($socid > 0)
 			print "<td align=\"right\">".price($cumul_vente)."</td>\n";
 			print "<td align=\"right\">".price($cumul_achat)."</td>\n";
 			print "<td align=\"right\">".price($totalMargin)."</td>\n";
-			if ($conf->global->DISPLAY_MARGIN_RATES)
+			if (! empty($conf->global->DISPLAY_MARGIN_RATES))
 				print "<td align=\"right\">".(($marginRate === '')?'n/a':price($marginRate)."%")."</td>\n";
-			if ($conf->global->DISPLAY_MARK_RATES)
+			if (! empty($conf->global->DISPLAY_MARK_RATES))
 				print "<td align=\"right\">".(($markRate === '')?'n/a':price($markRate)."%")."</td>\n";
 			print '<td align="right">&nbsp;</td>';
 			print "</tr>\n";
diff --git a/htdocs/product/ajaxproducts.php b/htdocs/product/ajaxproducts.php
index 7f209839da5..1e99dcb7a8c 100644
--- a/htdocs/product/ajaxproducts.php
+++ b/htdocs/product/ajaxproducts.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2006      Andre Cianfarani     <acianfa@free.fr>
- * Copyright (C) 2005-2011 Regis Houssin        <regis@dolibarr.fr>
+ * Copyright (C) 2005-2012 Regis Houssin        <regis@dolibarr.fr>
  * Copyright (C) 2007-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -60,12 +60,12 @@ if (! isset($_GET['htmlname'])) return;
 $htmlname = $_GET['htmlname'];
 $match = preg_grep('/('.$htmlname.'[0-9]+)/',array_keys($_GET));
 sort($match);
-$idprod = $match[0];
+$idprod = (! empty($match[0]) ? $match[0] : '');
 
 if (! isset($_GET[$htmlname]) && ! isset($_GET[$idprod])) return;
 
 // When used from jQuery, the search term is added as GET param "term".
-$searchkey=$_GET[$idprod];
+$searchkey=(! empty($_GET[$idprod])?$_GET[$idprod]:'');
 if (empty($searchkey)) $searchkey=$_GET[$htmlname];
 $outjson=isset($_GET['outjson'])?$_GET['outjson']:0;
 
diff --git a/htdocs/theme/amarok/img/commissions.png b/htdocs/theme/amarok/img/commissions.png
deleted file mode 100644
index b1e139e3fbad0fd57430b5f2e9e2639a7ef92a8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1676
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
WL$*wD{RmJ10000<MNUMnLSTYIrX>mh

diff --git a/htdocs/theme/amarok/img/marges.png b/htdocs/theme/amarok/img/marges.png
deleted file mode 100644
index 4746f0fc7798c5e9341eacd320f00214a0cf887f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1851
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

diff --git a/htdocs/theme/amarok/img/object_marges.png b/htdocs/theme/amarok/img/object_margin.png
similarity index 100%
rename from htdocs/theme/amarok/img/object_marges.png
rename to htdocs/theme/amarok/img/object_margin.png
diff --git a/htdocs/theme/auguria/img/commissions.png b/htdocs/theme/auguria/img/commissions.png
deleted file mode 100644
index b1e139e3fbad0fd57430b5f2e9e2639a7ef92a8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1676
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
WL$*wD{RmJ10000<MNUMnLSTYIrX>mh

diff --git a/htdocs/theme/auguria/img/marges.png b/htdocs/theme/auguria/img/marges.png
deleted file mode 100644
index 4746f0fc7798c5e9341eacd320f00214a0cf887f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1851
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

diff --git a/htdocs/theme/auguria/img/object_marges.png b/htdocs/theme/auguria/img/object_margin.png
similarity index 100%
rename from htdocs/theme/auguria/img/object_marges.png
rename to htdocs/theme/auguria/img/object_margin.png
diff --git a/htdocs/theme/auguria/style.css.php b/htdocs/theme/auguria/style.css.php
index 40d0578c68e..b7340ef3e2b 100644
--- a/htdocs/theme/auguria/style.css.php
+++ b/htdocs/theme/auguria/style.css.php
@@ -320,7 +320,7 @@ $moduletomainmenu=array('user'=>'','syslog'=>'','societe'=>'companies','projet'=
 	'barcode'=>'','fckeditor'=>'','categorie'=>'',
 );
 $mainmenuused='home';
-foreach($conf->modules as $key => $val)
+foreach($conf->modules as $val)
 {
 	$mainmenuused.=','.(isset($moduletomainmenu[$val])?$moduletomainmenu[$val]:$val);
 }
@@ -331,7 +331,7 @@ $mainmenuusedarray=array();	// Disable
 
 $generic=1;
 $divalreadydefined=array('home','companies','products','commercial','accountancy','project','tools','members','shop','agenda','ecm','cashdesk');
-foreach($mainmenuusedarray as $key => $val)
+foreach($mainmenuusedarray as $val)
 {
 	if (empty($val) || in_array($val,$divalreadydefined)) continue;
 	//print "XXX".$val;
diff --git a/htdocs/theme/bureau2crea/img/commissions.png b/htdocs/theme/bureau2crea/img/commissions.png
deleted file mode 100644
index b1e139e3fbad0fd57430b5f2e9e2639a7ef92a8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1676
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
WL$*wD{RmJ10000<MNUMnLSTYIrX>mh

diff --git a/htdocs/theme/bureau2crea/img/marges.png b/htdocs/theme/bureau2crea/img/marges.png
deleted file mode 100644
index 4746f0fc7798c5e9341eacd320f00214a0cf887f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1851
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

diff --git a/htdocs/theme/bureau2crea/img/object_marges.png b/htdocs/theme/bureau2crea/img/object_margin.png
similarity index 100%
rename from htdocs/theme/bureau2crea/img/object_marges.png
rename to htdocs/theme/bureau2crea/img/object_margin.png
diff --git a/htdocs/theme/bureau2crea/style.css.php b/htdocs/theme/bureau2crea/style.css.php
index 6183a246a83..d8ab2f33920 100644
--- a/htdocs/theme/bureau2crea/style.css.php
+++ b/htdocs/theme/bureau2crea/style.css.php
@@ -383,7 +383,7 @@ $moduletomainmenu=array('user'=>'','syslog'=>'','societe'=>'companies','projet'=
 	'barcode'=>'','fckeditor'=>'','categorie'=>'',
 );
 $mainmenuused='home';
-foreach($conf->modules as $key => $val)
+foreach($conf->modules as $val)
 {
 	$mainmenuused.=','.(isset($moduletomainmenu[$val])?$moduletomainmenu[$val]:$val);
 }
@@ -394,7 +394,7 @@ $mainmenuusedarray=array();	// Disable
 
 $generic=1;
 $divalreadydefined=array('home','companies','products','commercial','accountancy','project','tools','members','shop','agenda','ecm','cashdesk');
-foreach($mainmenuusedarray as $key => $val)
+foreach($mainmenuusedarray as $val)
 {
 	if (empty($val) || in_array($val,$divalreadydefined)) continue;
 	//print "XXX".$val;
diff --git a/htdocs/theme/cameleo/img/commissions.png b/htdocs/theme/cameleo/img/commissions.png
deleted file mode 100644
index b1e139e3fbad0fd57430b5f2e9e2639a7ef92a8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1676
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
WL$*wD{RmJ10000<MNUMnLSTYIrX>mh

diff --git a/htdocs/theme/cameleo/img/marges.png b/htdocs/theme/cameleo/img/marges.png
deleted file mode 100644
index 4746f0fc7798c5e9341eacd320f00214a0cf887f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1851
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

diff --git a/htdocs/theme/cameleo/img/object_marges.png b/htdocs/theme/cameleo/img/object_margin.png
similarity index 100%
rename from htdocs/theme/cameleo/img/object_marges.png
rename to htdocs/theme/cameleo/img/object_margin.png
diff --git a/htdocs/theme/cameleo/style.css.php b/htdocs/theme/cameleo/style.css.php
index a63f1e04636..78121b403c0 100644
--- a/htdocs/theme/cameleo/style.css.php
+++ b/htdocs/theme/cameleo/style.css.php
@@ -467,7 +467,7 @@ $moduletomainmenu=array('user'=>'','syslog'=>'','societe'=>'companies','projet'=
 	'barcode'=>'','fckeditor'=>'','categorie'=>'',
 );
 $mainmenuused='home';
-foreach($conf->modules as $key => $val)
+foreach($conf->modules as $val)
 {
 	$mainmenuused.=','.(isset($moduletomainmenu[$val])?$moduletomainmenu[$val]:$val);
 }
@@ -476,7 +476,7 @@ $mainmenuusedarray=array_unique(explode(',',$mainmenuused));
 
 $generic=1;
 $divalreadydefined=array('home','companies','products','commercial','accountancy','project','tools','members','shop','agenda','ecm','bookmark','cashdesk','geoipmaxmind','gravatar','clicktodial','paypal','webservices');
-foreach($mainmenuusedarray as $key => $val)
+foreach($mainmenuusedarray as $val)
 {
 	if (empty($val) || in_array($val,$divalreadydefined)) continue;
 	//print "XXX".$val;
diff --git a/htdocs/theme/eldy/img/commissions.png b/htdocs/theme/eldy/img/commissions.png
deleted file mode 100644
index b1e139e3fbad0fd57430b5f2e9e2639a7ef92a8c..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1676
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
WL$*wD{RmJ10000<MNUMnLSTYIrX>mh

diff --git a/htdocs/theme/eldy/img/marges.png b/htdocs/theme/eldy/img/marges.png
deleted file mode 100644
index 4746f0fc7798c5e9341eacd320f00214a0cf887f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1851
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

diff --git a/htdocs/theme/eldy/img/menus/marges.png b/htdocs/theme/eldy/img/menus/marges.png
deleted file mode 100644
index 4746f0fc7798c5e9341eacd320f00214a0cf887f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 1851
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

diff --git a/htdocs/theme/eldy/img/object_marges.png b/htdocs/theme/eldy/img/object_margin.png
similarity index 100%
rename from htdocs/theme/eldy/img/object_marges.png
rename to htdocs/theme/eldy/img/object_margin.png
diff --git a/htdocs/theme/eldy/style.css.php b/htdocs/theme/eldy/style.css.php
index 326da714425..b8470e3c090 100644
--- a/htdocs/theme/eldy/style.css.php
+++ b/htdocs/theme/eldy/style.css.php
@@ -628,7 +628,7 @@ $moduletomainmenu=array('user'=>'','syslog'=>'','societe'=>'companies','projet'=
 	'barcode'=>'','fckeditor'=>'','categorie'=>'',
 );
 $mainmenuused='home';
-foreach($conf->modules as $key => $val)
+foreach($conf->modules as $val)
 {
 	$mainmenuused.=','.(isset($moduletomainmenu[$val])?$moduletomainmenu[$val]:$val);
 }
@@ -637,7 +637,7 @@ $mainmenuusedarray=array_unique(explode(',',$mainmenuused));
 
 $generic=1;
 $divalreadydefined=array('home','companies','products','commercial','accountancy','project','tools','members','shop','agenda','bookmark','cashdesk','ecm','geoipmaxmind','gravatar','clicktodial','paypal','webservices');
-foreach($mainmenuusedarray as $key => $val)
+foreach($mainmenuusedarray as $val)
 {
 	if (empty($val) || in_array($val,$divalreadydefined)) continue;
 	//print "XXX".$val;
diff --git a/htdocs/user/class/user.class.php b/htdocs/user/class/user.class.php
index fe6650d4203..a78b4a91f55 100644
--- a/htdocs/user/class/user.class.php
+++ b/htdocs/user/class/user.class.php
@@ -531,7 +531,7 @@ class User extends CommonObject
 
 				if ($perms)
 				{
-					if (! isset($this->rights)) $this->rights = (object) array(); // For avoid error
+					if (! isset($this->rights) || ! is_object($this->rights)) $this->rights = (object) array(); // For avoid error
 					if (! isset($this->rights->$module) || ! is_object($this->rights->$module)) $this->rights->$module = (object) array();
 					if ($subperms)
 					{
@@ -578,7 +578,7 @@ class User extends CommonObject
 
 				if ($perms)
 				{
-					if (! isset($this->rights)) $this->rights = (object) array(); // For avoid error
+					if (! isset($this->rights) || ! is_object($this->rights)) $this->rights = (object) array(); // For avoid error
 					if (! isset($this->rights->$module) || ! is_object($this->rights->$module)) $this->rights->$module = (object) array();
 					if ($subperms)
 					{
diff --git a/htdocs/webservices/server_invoice.php b/htdocs/webservices/server_invoice.php
index 9e67019dacc..1cc04f3c1a7 100755
--- a/htdocs/webservices/server_invoice.php
+++ b/htdocs/webservices/server_invoice.php
@@ -34,7 +34,7 @@ require_once(DOL_DOCUMENT_ROOT."/compta/facture/class/facture.class.php");
 
 dol_syslog("Call Dolibarr webservices interfaces");
 
-$langs->load("main");
+$langs->load("main");
 
 // Enable and test if module web services is enabled
 if (empty($conf->global->MAIN_MODULE_WEBSERVICES))
-- 
GitLab