diff --git a/ChangeLog b/ChangeLog
index e221e29f09745c05f3f92939f434596215d7eae5..88fdeafe29bbee8f634584cee838cd83543f941c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -65,6 +65,7 @@ For developers:
        action buttons into an element.
 - New: Normalize code for barcode generation to match other modules.
 - New: Uniformize code for contacts forms.
+- New: Add some hooks for financial reports.
 
 WARNING: Following change may create regression for some external modules, but was necessary to make
 Dolibarr better:
@@ -116,6 +117,7 @@ Fix: [ bug #1280 ] service with not end of date was tagged as expired.
 Fix: [ bug #1295 ] Error when creating an agenda extrafield with a number as reference
 Fix: [ bug #1306 ] Fatal error when adding an external calendar
 New: Added es_CL language
+Fix: Margin tabs bad data show
 
 ***** ChangeLog for 3.5 compared to 3.4.* *****
 For users:
diff --git a/htdocs/compta/localtax/clients.php b/htdocs/compta/localtax/clients.php
index 72b02194bc15b6ea7e8cc1e3d63ea191aed32b2f..097a89c3918a80bd5c09de455b444a45986a643c 100644
--- a/htdocs/compta/localtax/clients.php
+++ b/htdocs/compta/localtax/clients.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2011	Juanjo Menent <jmenent@2byte.es>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -153,6 +154,17 @@ print "<td align=\"right\">".$vatcust."</td>";
 print "</tr>\n";
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'sell');
+
+$action = "tvaclient";
+$object = &$coll_list;
+$parameters["mode"] = $modetax;
+$parameters["start"] = $date_start;
+$parameters["end"] = $date_end;
+$parameters["direction"] = 'sell';
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+
 if (is_array($coll_list))
 {
 	$var=true;
@@ -160,7 +172,7 @@ if (is_array($coll_list))
 	$i = 1;
 	foreach($coll_list as $coll)
 	{
-		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2>0)
+		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2!=0)
 		{
 			$var=!$var;
 			$intra = str_replace($find,$replace,$coll->tva_intra);
@@ -222,6 +234,8 @@ print "</tr>\n";
 $company_static=new Societe($db);
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
+$parameters["direction"] = 'buy';
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if (is_array($coll_list))
 {
 	$var=true;
@@ -229,7 +243,7 @@ if (is_array($coll_list))
 	$i = 1;
 	foreach($coll_list as $coll)
 	{
-		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2>0)
+		if(($min == 0 or ($min > 0 && $coll->amount > $min)) && $coll->localtax2!=0)
 		{
 			$var=!$var;
 			$intra = str_replace($find,$replace,$coll->tva_intra);
diff --git a/htdocs/compta/localtax/index.php b/htdocs/compta/localtax/index.php
index aaa36a7edd7ecb06565e2063218bbf76f600d53d..25f0e95fd5c01e3bee330b18ff263d97219d2de1 100644
--- a/htdocs/compta/localtax/index.php
+++ b/htdocs/compta/localtax/index.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2011 		Juanjo Menent		<jmenent@2byte.es>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -134,6 +135,15 @@ for ($m = 1 ; $m < 13 ; $m++ )
 {
     $coll_listsell = vat_by_date($db, $y, 0, 0, 0, $modetax, 'sell', $m);
     $coll_listbuy = vat_by_date($db, $y, 0, 0, 0, $modetax, 'buy', $m);
+    
+    $action = "tva";
+    $object = array(&$coll_listsell, &$coll_listbuy);
+    $parameters["mode"] = $modetax;
+    $parameters["year"] = $y;
+    $parameters["month"] = $m;
+    // Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+    $hookmanager->initHooks(array('externalbalance'));
+    $reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
     if (! is_array($coll_listbuy) && $coll_listbuy == -1)
     {
@@ -181,7 +191,7 @@ for ($m = 1 ; $m < 13 ; $m++ )
         print '<td align="right">'.$langs->trans("SubTotal").':</td>';
         print '<td class="nowrap" align="right">'.price($subtotalcoll).'</td>';
         print '<td class="nowrap" align="right">'.price($subtotalpaye).'</td>';
-        print '<td class="nowrap" align="right">'.price($subtotalpaye).'</td>';
+        print '<td class="nowrap" align="right">'.price($subtotal).'</td>';
         print '<td>&nbsp;</td></tr>';
         $i = 0;
         $subtotalcoll=0; $subtotalpaye=0; $subtotal=0;
diff --git a/htdocs/compta/resultat/clientfourn.php b/htdocs/compta/resultat/clientfourn.php
index d28f457fb2b3e11cfac1302aac239b340162eaf1..15722966004483e78dd0b34be7bc157d79279ed2 100644
--- a/htdocs/compta/resultat/clientfourn.php
+++ b/htdocs/compta/resultat/clientfourn.php
@@ -2,6 +2,7 @@
 /* Copyright (C) 2002-2006 Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -729,6 +730,16 @@ if ($mysoc->tva_assuj != 'franchise')	// Assujeti
     print '</tr>';
 }
 
+$action = "balanceclient";
+$object = array(&$total_ht, &$total_ttc);
+$parameters["mode"] = $modecompta;
+$parameters["date_start"] = $date_start;
+$parameters["date_end"] = $date_end;
+$parameters["bc"] = $bc;
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+print $hookmanager->resPrint;
 
 if ($mysoc->tva_assuj != 'franchise')	// Assujeti
 {
diff --git a/htdocs/compta/resultat/index.php b/htdocs/compta/resultat/index.php
index e4ead871b421ca4b41b6a087fb9ea3714b3312ef..a56551f234b676cb158e29bc6048080061776d95 100644
--- a/htdocs/compta/resultat/index.php
+++ b/htdocs/compta/resultat/index.php
@@ -2,6 +2,7 @@
 /* Copyright (C) 2003      Rodolphe Quiedeville <rodolphe@quiedeville.org>
  * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2012 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -461,8 +462,12 @@ if ($result) {
 } else {
 	dol_print_error($db);
 }
-
-
+$action = "balance";
+$object = array(&$encaiss, &$encaiss_ttc, &$decaiss, &$decaiss_ttc);
+$parameters["mode"] = $modecompta;
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
 /*
  * Show result array
diff --git a/htdocs/compta/tva/clients.php b/htdocs/compta/tva/clients.php
index fbde15845418b698adb12819c63faa656543f9ad..84857a351302f5bcb977ffae816b40ae71f75356 100644
--- a/htdocs/compta/tva/clients.php
+++ b/htdocs/compta/tva/clients.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2006      Yannick Warnier      <ywarnier@beeznest.org>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -185,6 +186,17 @@ print "<td align=\"right\">".$vatcust."</td>";
 print "</tr>\n";
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'sell');
+
+$action = "tvaclient";
+$object = &$coll_list;
+$parameters["mode"] = $modetax;
+$parameters["start"] = $date_start;
+$parameters["end"] = $date_end;
+$parameters["direction"] = 'sell';
+// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+$hookmanager->initHooks(array('externalbalance'));
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+
 if (is_array($coll_list))
 {
 	$var=true;
@@ -263,6 +275,9 @@ print "</tr>\n";
 $company_static=new Societe($db);
 
 $coll_list = vat_by_thirdparty($db,0,$date_start,$date_end,$modetax,'buy');
+
+$parameters["direction"] = 'buy';
+$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 if (is_array($coll_list))
 {
 	$var=true;
diff --git a/htdocs/compta/tva/index.php b/htdocs/compta/tva/index.php
index 4bab6f143d115d28a0bed447c30662f166dd945c..91094e7b52d1994a82e3b1146e9610d86afe6279 100644
--- a/htdocs/compta/tva/index.php
+++ b/htdocs/compta/tva/index.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2005-2009 Regis Houssin        <regis.houssin@capnetworks.com>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -153,6 +154,15 @@ for ($m = 1 ; $m < 13 ; $m++ )
 {
     $coll_listsell = vat_by_date($db, $y, 0, 0, 0, $modetax, 'sell', $m);
     $coll_listbuy = vat_by_date($db, $y, 0, 0, 0, $modetax, 'buy', $m);
+    
+    $action = "tva";
+    $object = array(&$coll_listsell, &$coll_listbuy);
+    $parameters["mode"] = $modetax;
+    $parameters["year"] = $y;
+    $parameters["month"] = $m;
+    // Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+    $hookmanager->initHooks(array('externalbalance'));
+    $reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
 
     if (! is_array($coll_listbuy) && $coll_listbuy == -1)
     {
diff --git a/htdocs/compta/tva/quadri_detail.php b/htdocs/compta/tva/quadri_detail.php
index cc084655bf0a850db3e7d72c1573e5db10628487..b39befd8ad67c1ba4f981ba1639a4f56cb56e3ad 100644
--- a/htdocs/compta/tva/quadri_detail.php
+++ b/htdocs/compta/tva/quadri_detail.php
@@ -3,6 +3,7 @@
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2004-2013 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2006-2007 Yannick Warnier      <ywarnier@beeznest.org>
+ * Copyright (C) 2014	   Ferran Marcet        <fmarcet@2byte.es>
  *
  * 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
@@ -318,7 +319,16 @@ else
 	print '<td align="right">'.$langs->trans("AmountHTVATRealReceived").'</td>';
 	print '<td align="right">'.$vatcust.'</td>';
 	print '</tr>';
-
+	
+	$action = "tvadetail";
+	$parameters["mode"] = $modetax;
+	$parameters["start"] = $date_start;
+	$parameters["end"] = $date_end;
+	$object = array(&$x_coll, &$x_paye, &$x_both);
+	// Initialize technical object to manage hooks of expenses. Note that conf->hooks_modules contains array array
+	$hookmanager->initHooks(array('externalbalance'));
+	$reshook=$hookmanager->executeHooks('addStatisticLine',$parameters,$object,$action);    // Note that $action and $object may have been modified by some hooks
+	
 	foreach(array_keys($x_coll) as $rate)
 	{
 		$subtot_coll_total_ht = 0;
diff --git a/htdocs/core/boxes/box_ficheinter.php b/htdocs/core/boxes/box_ficheinter.php
index 81cba912dffca8fef8c04df879d35f2a4afec2fb..cc7464ec3e99f328f689adb0e58e94b6450e4569 100644
--- a/htdocs/core/boxes/box_ficheinter.php
+++ b/htdocs/core/boxes/box_ficheinter.php
@@ -72,8 +72,10 @@ class box_ficheinter extends ModeleBoxes
 			$sql.= ", ".MAIN_DB_PREFIX."fichinter as f";
 			$sql.= " WHERE f.fk_soc = s.rowid ";
 			$sql.= " AND f.entity = ".$conf->entity;
-			if (! $user->rights->societe->client->voir)
+			if (! $user->rights->societe->client->voir && !$user->societe_id)
 				$sql .= " AND s.rowid = sc.fk_soc AND sc.fk_user = " .$user->id;
+			if($user->societe_id)	$sql.= " AND s.rowid = ".$user->societe_id;
+
 			$sql.= " ORDER BY f.tms DESC";
 			$sql.= $db->plimit($max, 0);
 
diff --git a/htdocs/core/lib/project.lib.php b/htdocs/core/lib/project.lib.php
index 7838a3597d1c851a1d4be401cfeb07d9c839a43b..9316c2bcf68c35e02e4b1e288a93e187734d0776 100644
--- a/htdocs/core/lib/project.lib.php
+++ b/htdocs/core/lib/project.lib.php
@@ -342,12 +342,12 @@ function projectLinesa(&$inc, $parent, &$lines, &$level, $var, $showproject, &$t
 
 				// Date start
 				print '<td align="center">';
-				print dol_print_date($lines[$i]->date_start,'day');
+				print dol_print_date($lines[$i]->date_start,'dayhour');
 				print '</td>';
 
 				// Date end
 				print '<td align="center">';
-				print dol_print_date($lines[$i]->date_end,'day');
+				print dol_print_date($lines[$i]->date_end,'dayhour');
 				print '</td>';
 
 				// Planned Workload (in working hours)
@@ -500,12 +500,12 @@ function projectLinesb(&$inc, $parent, $lines, &$level, &$projectsrole, &$tasksr
 
 			// Date start
 			print '<td align="center">';
-			print dol_print_date($lines[$i]->date_start,'day');
+			print dol_print_date($lines[$i]->date_start,'dayhour');
 			print '</td>';
 
 			// Date end
 			print '<td align="center">';
-			print dol_print_date($lines[$i]->date_end,'day');
+			print dol_print_date($lines[$i]->date_end,'dayhour');
 			print '</td>';
 
 			// Planned Workload
diff --git a/htdocs/expedition/class/expeditionbatch.class.php b/htdocs/expedition/class/expeditionbatch.class.php
index cf57929ca0f23bfe85e7f4685b34fc13d488ed99..e361548309d4b1e16538375ad26a081a26e9507a 100644
--- a/htdocs/expedition/class/expeditionbatch.class.php
+++ b/htdocs/expedition/class/expeditionbatch.class.php
@@ -17,7 +17,7 @@
  */
 
 /**
- *  \file       expedtion/class/productbatch.class.php
+ *  \file       expedition/class/productbatch.class.php
  *  \ingroup    productbatch
  *  \brief      This file implements CRUD method for managing product's shipment
  *				with batch record 
diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php
index bfc444faf56ca2cd22de801980b044c2efedfc40..7ed44102a4cf9115fffb8bb3a4d3fd92c0e7b145 100644
--- a/htdocs/expedition/fiche.php
+++ b/htdocs/expedition/fiche.php
@@ -856,7 +856,7 @@ if ($action == 'create')
                     if (($line->product_type == 1 && empty($conf->global->STOCK_SUPPORTS_SERVICES)) || $defaultqty < 0) $defaultqty=0;
                 }
 
-				if (empty($conf->productbatch->enabled) ||  ! $product->hasbatch()) {
+				if (empty($conf->productbatch->enabled) ||  ! ($product->hasbatch() and is_array($product->stock_warehouse[GETPOST('entrepot_id','int')] ))) {
                 // Quantity to send
                 print '<td align="center">';
                 if ($line->product_type == 0 || ! empty($conf->global->STOCK_SUPPORTS_SERVICES))
@@ -897,27 +897,27 @@ if ($action == 'create')
                 print "</tr>\n";
 
                 // Show subproducts of product
-                if (! empty($conf->global->PRODUIT_SOUSPRODUITS) && $line->fk_product > 0)
-                {
-                    $product->get_sousproduits_arbo();
-                    $prods_arbo = $product->get_arbo_each_prod($qtyProdCom);
-                    if(count($prods_arbo) > 0)
-                    {
-                        foreach($prods_arbo as $key => $value)
-                        {
-                            //print $value[0];
-                            $img='';
-                            if ($value['stock'] < $value['stock_alert'])
-                            {
-                                $img=img_warning($langs->trans("StockTooLow"));
-                            }
-                            print "<tr ".$bc[$var]."><td>&nbsp; &nbsp; &nbsp; ->
-                                <a href=\"".DOL_URL_ROOT."/product/fiche.php?id=".$value['id']."\">".$value['fullpath']."
-                                </a> (".$value['nb'].")</td><td align=\"center\"> ".$value['nb_total']."</td><td>&nbsp</td><td>&nbsp</td>
-                                <td align=\"center\">".$value['stock']." ".$img."</td></tr>";
-                        }
-                    }
-                }
+					if (! empty($conf->global->PRODUIT_SOUSPRODUITS) && $line->fk_product > 0)
+					{
+						$product->get_sousproduits_arbo();
+						$prods_arbo = $product->get_arbo_each_prod($qtyProdCom);
+						if(count($prods_arbo) > 0)
+						{
+							foreach($prods_arbo as $key => $value)
+							{
+								//print $value[0];
+								$img='';
+								if ($value['stock'] < $value['stock_alert'])
+								{
+									$img=img_warning($langs->trans("StockTooLow"));
+								}
+								print "<tr ".$bc[$var]."><td>&nbsp; &nbsp; &nbsp; ->
+									<a href=\"".DOL_URL_ROOT."/product/fiche.php?id=".$value['id']."\">".$value['fullpath']."
+									</a> (".$value['nb'].")</td><td align=\"center\"> ".$value['nb_total']."</td><td>&nbsp</td><td>&nbsp</td>
+									<td align=\"center\">".$value['stock']." ".$img."</td></tr>";
+							}
+						}
+					}
 				} else {
 					print '<td></td><td></td></tr>';
 					$subj=0;
diff --git a/htdocs/install/mysql/tables/llx_stock_mouvement.sql b/htdocs/install/mysql/tables/llx_stock_mouvement.sql
index ed87b77def6ddeedc40f519e545553f3c91e3816..c3546ca3635fb36a35247cd8e79cf7d0378aeb09 100644
--- a/htdocs/install/mysql/tables/llx_stock_mouvement.sql
+++ b/htdocs/install/mysql/tables/llx_stock_mouvement.sql
@@ -29,4 +29,6 @@ create table llx_stock_mouvement
   type_mouvement  smallint,
   fk_user_author  integer,
   label           varchar(128)
+  fk_origin       integer,
+  origintype      varchar(32)
 )ENGINE=innodb;
diff --git a/htdocs/langs/fr_BE/main.lang b/htdocs/langs/fr_BE/main.lang
index cc4d012cd2e1dde91ac46493997e9744ea79ffc9..430736a6bcac050a8d39509912fbc282db070dda 100644
--- a/htdocs/langs/fr_BE/main.lang
+++ b/htdocs/langs/fr_BE/main.lang
@@ -1,6 +1,6 @@
 # Dolibarr language file - fr_BE - main
 SeparatorDecimal=,
-SeparatorThousand=None
+SeparatorThousand= 
 FormatDateShort=%d/%m/%Y
 FormatDateShortInput=%d/%m/%Y
 FormatDateShortJava=dd/MM/yyyy
diff --git a/htdocs/margin/agentMargins.php b/htdocs/margin/agentMargins.php
index b7c5b8d4701f82a6f4e070cec5bcc4b47e3af64b..cc8f4d067eb814c2a2a15f75d48fbe9b0bfb50dd 100644
--- a/htdocs/margin/agentMargins.php
+++ b/htdocs/margin/agentMargins.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2012-2013	Christophe Battarel	<christophe.battarel@altairis.fr>
+ * Copyright (C) 2014		Ferran Marcet		<fmarcet@2byte.es>
  *
  * 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
@@ -130,11 +131,14 @@ if ($agentid > 0) {
 	else
 	    $sql .= " AND sc.fk_user = ".$agentid;
 }
-if (!empty($startdate)) $sql.= " AND f.datef >= '".$db->idate($startdate)."'";
-if (!empty($enddate))   $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
+if (!empty($startdate))
+  $sql.= " AND f.datef >= '".$db->idate($startdate)."'";
+if (!empty($enddate))
+  $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
 $sql .= " AND d.buy_price_ht IS NOT NULL";
 if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0";
-$sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname";
+if($agentid) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, u.rowid, u.login, u.lastname, u.firstname";
+else $sql.= " GROUP BY u.rowid, u.login, u.lastname, u.firstname";
 $sql.= " ORDER BY ".$sortfield." ".$sortorder;
 // TODO: calculate total to display then restore pagination
 //$sql.= $db->plimit($conf->liste_limit +1, $offset);
diff --git a/htdocs/margin/customerMargins.php b/htdocs/margin/customerMargins.php
index e9a0bbfe102319c2a594585508b8c1e74ea5b024..e522604079431eb898fde90c2f865d5f7fcd37dc 100644
--- a/htdocs/margin/customerMargins.php
+++ b/htdocs/margin/customerMargins.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2012-2013	Christophe Battarel	<christophe.battarel@altairis.fr>
+ * Copyright (C) 2014		Ferran Marcet		<fmarcet@2byte.es>
  *
  * 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
@@ -172,13 +173,18 @@ $sql.= " WHERE f.fk_soc = s.rowid";
 $sql.= " AND f.fk_statut > 0";
 $sql.= " AND s.entity = ".$conf->entity;
 $sql.= " AND d.fk_facture = f.rowid";
-if ($client) $sql.= " AND f.fk_soc = ".$socid;
-if (!empty($startdate)) $sql.= " AND f.datef >= '".$db->idate($startdate)."'";
-if (!empty($enddate)) $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
+if ($client)
+  $sql.= " AND f.fk_soc = ".$socid;
+if (!empty($startdate))
+  $sql.= " AND f.datef >= '".$db->idate($startdate)."'";
+if (!empty($enddate))
+  $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
 $sql .= " AND d.buy_price_ht IS NOT NULL";
-if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0";
-$sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut";
-$sql.= " ORDER BY ".$sortfield." ".$sortorder;
+if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)
+	$sql .= " AND d.buy_price_ht <> 0";
+if ($client) $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut";
+else $sql.= " GROUP BY s.rowid, s.nom, s.code_client, s.client";
+$sql.= " ORDER BY $sortfield $sortorder ";
 // TODO: calculate total to display then restore pagination
 //$sql.= $db->plimit($conf->liste_limit +1, $offset);
 
diff --git a/htdocs/margin/productMargins.php b/htdocs/margin/productMargins.php
index c4ba7b54c2098360b54afe338f31a73da180b995..3152b8387b6a398c5abfac927b21c51aea905fbf 100644
--- a/htdocs/margin/productMargins.php
+++ b/htdocs/margin/productMargins.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2012-2013	Christophe Battarel	<christophe.battarel@altairis.fr>
+ * Copyright (C) 2014		Ferran Marcet		<fmarcet@2byte.es>
  *
  * 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
@@ -178,12 +179,19 @@ $sql.= " AND f.fk_soc = s.rowid";
 $sql.= " AND d.fk_product = p.rowid";
 $sql.= " AND f.fk_statut > 0";
 $sql.= " AND d.fk_facture = f.rowid";
-if ($id > 0) $sql.= " AND d.fk_product =".$id;
-if (!empty($startdate)) $sql.= " AND f.datef >= '".$db->idate($startdate)."'";
-if (!empty($enddate)) $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
+if ($id > 0)
+	$sql.= " AND d.fk_product =".$id;
+if (!empty($startdate))
+  $sql.= " AND f.datef >= '".$db->idate($startdate)."'";
+if (!empty($enddate))
+  $sql.= " AND f.datef <= '".$db->idate($enddate)."'";
 $sql .= " AND d.buy_price_ht IS NOT NULL";
-if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1) $sql .= " AND d.buy_price_ht <> 0";
-$sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, d.fk_product, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut";
+if (isset($conf->global->ForceBuyingPriceIfNull) && $conf->global->ForceBuyingPriceIfNull == 1)
+	$sql .= " AND d.buy_price_ht <> 0";
+if ($id > 0)
+  $sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref, d.fk_product, f.rowid, f.facnumber, f.total, f.datef, f.paye, f.fk_statut";
+else 
+	$sql.= " GROUP BY p.label, p.rowid, p.fk_product_type, p.ref";
 $sql.= " ORDER BY ".$sortfield." ".$sortorder;
 // TODO: calculate total to display then restore pagination
 //$sql.= $db->plimit($conf->liste_limit +1, $offset);
diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php
index ee3f0b6563963bbdb2f82f1f2cb04072d07bd332..9c6e9d80594298d43bb31e736bd893eff024e7e1 100644
--- a/htdocs/product/stock/mouvement.php
+++ b/htdocs/product/stock/mouvement.php
@@ -537,8 +537,8 @@ if ($resql)
     		$productidselected=$key;
     		$productlabelselected=$val;
     	}
-		$datebefore=dol_get_first_day($year, $month?$month:1, true);
-		$dateafter=dol_get_last_day($year, $month?$month:12, true);
+		$datebefore=dol_get_first_day($year?$year:strftime("%Y",time()), $month?$month:1, true);
+		$dateafter=dol_get_last_day($year?$year:strftime("%Y",time()), $month?$month:12, true);
     	$balancebefore=$movement->calculateBalanceForProductBefore($productidselected, $datebefore);
     	$balanceafter=$movement->calculateBalanceForProductBefore($productidselected, $dateafter);
 
diff --git a/htdocs/projet/tasks.php b/htdocs/projet/tasks.php
index db473165d54214bb88ed7a495562f197e31aeb86..33520901f168fe8a82048521ca9401bbea2c5a47 100644
--- a/htdocs/projet/tasks.php
+++ b/htdocs/projet/tasks.php
@@ -83,8 +83,8 @@ if ($action == 'createtask' && $user->rights->projet->creer)
 {
 	$error=0;
 
-	$date_start = dol_mktime(0,0,0,$_POST['dateomonth'],$_POST['dateoday'],$_POST['dateoyear']);
-	$date_end = dol_mktime(0,0,0,$_POST['dateemonth'],$_POST['dateeday'],$_POST['dateeyear']);
+	$date_start = dol_mktime($_POST['dateohour'],$_POST['dateomin'],0,$_POST['dateomonth'],$_POST['dateoday'],$_POST['dateoyeassskr'],'user');
+	$date_end = dol_mktime($_POST['dateehour'],$_POST['dateemin'],0,$_POST['dateemonth'],$_POST['dateeday'],$_POST['dateeyear'],'user');
 
 	if (empty($_POST["cancel"]))
 	{
@@ -232,12 +232,12 @@ if ($id > 0 || ! empty($ref))
 
 	// Date start
 	print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
-	print dol_print_date($object->date_start,'day');
+	print dol_print_date($object->date_start,'dayhour');
 	print '</td></tr>';
 
 	// Date end
 	print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
-	print dol_print_date($object->date_end,'day');
+	print dol_print_date($object->date_end,'dayhour');
 	print '</td></tr>';
 
 	// Other options
@@ -302,12 +302,12 @@ if ($action == 'create' && $user->rights->projet->creer && (empty($object->socie
 
 	// Date start
 	print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
-	print $form->select_date(($date_start?$date_start:''),'dateo',0,0,0,'',1,1);
+	print $form->select_date(($date_start?$date_start:''),'dateo',1,1,0,'',1,1);
 	print '</td></tr>';
 
 	// Date end
 	print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
-	print $form->select_date(($date_end?$date_end:-1),'datee',0,0,0,'',1,1);
+	print $form->select_date(($date_end?$date_end:-1),'datee',1,1,0,'',1,1);
 	print '</td></tr>';
 
 	// planned workload
diff --git a/htdocs/projet/tasks/task.php b/htdocs/projet/tasks/task.php
index 5e16715445c4706bb0b1b5c3dfcb7ff981c78f16..1dc4edf7ee8fa26aad88a7c481421ac9dce7292e 100644
--- a/htdocs/projet/tasks/task.php
+++ b/htdocs/projet/tasks/task.php
@@ -83,8 +83,8 @@ if ($action == 'update' && ! $_POST["cancel"] && $user->rights->projet->creer)
 		$object->description = $_POST['description'];
 		$object->fk_task_parent = $task_parent;
 		$object->planned_workload = $planned_workload;
-		$object->date_start = dol_mktime(0,0,0,$_POST['dateomonth'],$_POST['dateoday'],$_POST['dateoyear']);
-		$object->date_end = dol_mktime(0,0,0,$_POST['dateemonth'],$_POST['dateeday'],$_POST['dateeyear']);
+		$object->date_start = dol_mktime($_POST['dateohour'],$_POST['dateomin'],0,$_POST['dateomonth'],$_POST['dateoday'],$_POST['dateoyear'],'user');
+		$object->date_end = dol_mktime($_POST['dateehour'],$_POST['dateemin'],0,$_POST['dateemonth'],$_POST['dateeday'],$_POST['dateeyear'],'user');
 		$object->progress = $_POST['progress'];
 
 		// Fill array 'array_options' with data from add form
@@ -322,12 +322,12 @@ if ($id > 0 || ! empty($ref))
 
 			// Date start
 			print '<tr><td>'.$langs->trans("DateStart").'</td><td>';
-			print $form->select_date($object->date_start,'dateo');
+			print $form->select_date($object->date_start,'dateo',1,1);
 			print '</td></tr>';
 
 			// Date end
 			print '<tr><td>'.$langs->trans("DateEnd").'</td><td>';
-			print $form->select_date($object->date_end?$object->date_end:-1,'datee');
+			print $form->select_date($object->date_end?$object->date_end:-1,'datee',1,1);
 			print '</td></tr>';
 
 			// Planned workload
@@ -411,12 +411,12 @@ if ($id > 0 || ! empty($ref))
 
 			// Date start
 			print '<tr><td>'.$langs->trans("DateStart").'</td><td colspan="3">';
-			print dol_print_date($object->date_start,'day');
+			print dol_print_date($object->date_start,'dayhour');
 			print '</td></tr>';
 
 			// Date end
 			print '<tr><td>'.$langs->trans("DateEnd").'</td><td colspan="3">';
-			print dol_print_date($object->date_end,'day');
+			print dol_print_date($object->date_end,'dayhour');
 			print '</td></tr>';
 
 			// Planned workload