diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index d87de10d8cd2c6fd156d6f5e73a4380d70322a58..7aa197be58f8e94e9f11ebcc6bc7821df81ecfeb 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -4213,25 +4213,26 @@ function getCurrencySymbol($currency_code)
  *
  *  @param		int	$vatrate			VAT Rate
  *  @param		int	$number             Number of localtax (1 / 2)
- *  @return		int      				Type of local tax (1 to 7 / 0 if not found)
+ *  @param		int	$thirdparty         company object
+ *  @return		array      				array(Type of local tax (1 to 7 / 0 if not found), rate or amount of localtax)
  */
 
-function getTypeOfLocalTaxFromRate($vatrate, $number)
+function getTypeOfLocalTaxFromRate($vatrate, $number, $thirdparty)
 {
-	global $db, $mysoc;
-	
+	global $db;
+
 	// Search local taxes
-	$sql  = "SELECT t.localtax1_type, t.localtax2_type";
+	$sql  = "SELECT t.localtax1, t.localtax1_type, t.localtax2, t.localtax2_type";
 	$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-	$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
+	$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$thirdparty->country_code."'";
 	$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
 
 	$resql=$db->query($sql);
 	if ($resql)
 	{
 		$obj = $db->fetch_object($resql);
-  		if ($number == 1) return $obj->localtax1_type;
-  		elseif ($number == 2) return $obj->localtax2_type;
+  		if ($number == 1) return array($obj->localtax1_type, $obj->localtax1);
+  		elseif ($number == 2) return array($obj->localtax2_type, $obj->localtax2);
 	}
 
 	return 0;
diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
index 7f7eb6aeb721f1a2afd826aee6ec0e64890bfa10..95d920158416922f02a9bc64e8f357e697f33ebf 100644
--- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
+++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
@@ -376,41 +376,19 @@ class pdf_einstein extends ModelePDFCommandes
 					$vatrate=(string) $object->lines[$i]->tva_tx;
 
 					// TODO : store local taxes types into object lines and remove this
+					$localtax1_array=getTypeOfLocalTaxFromRate($vatrate,1,$mysoc);
+					$localtax2_array=getTypeOfLocalTaxFromRate($vatrate,2,$mysoc);
 					if (empty($localtax1_type))
-						$localtax1_type=getTypeOfLocalTaxFromRate($vatrate,1);
+						$localtax1_type = $localtax1_array[0];
 					if (empty($localtax2_type))
-						$localtax2_type=getTypeOfLocalTaxFromRate($vatrate,2);
+						$localtax2_type = $localtax2_array[0];
 					//end TODO
 
 				    // retrieve global local tax
 					if ($localtax1_type == '7')
-					{
-						$sql  = "SELECT t.localtax1";
-						$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-						$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
-						$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
-
-						$resql=$db->query($sql);
-						if ($resql)
-						{
-							$obj = $db->fetch_object($resql);
-							$localtax1_rate = $obj->localtax1;
-						}
-					}
+						$localtax1_rate = $localtax1_array[1];
 					if ($localtax2_type == '7')
-					{
-						$sql  = "SELECT t.localtax2";
-						$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-						$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
-						$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
-
-						$resql=$db->query($sql);
-						if ($resql)
-						{
-							$obj = $db->fetch_object($resql);
-							$localtax2_rate = $obj->localtax2;
-						}
-					}
+						$localtax2_rate = $localtax2_array[1];
 
 					if ($localtax1ligne != 0 || $localtax1_type == '7')
 						$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
index 2db960300e8c2b54d242e74a6188d392a54ba830..c7d603f062266f1ca49ffacba8a9aeea9e47f7f2 100755
--- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
+++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
@@ -378,41 +378,19 @@ class pdf_crabe extends ModelePDFFactures
 					$vatrate=(string) $object->lines[$i]->tva_tx;
 					
 					// TODO : store local taxes types into object lines and remove this
+					$localtax1_array=getTypeOfLocalTaxFromRate($vatrate,1,$mysoc);
+					$localtax2_array=getTypeOfLocalTaxFromRate($vatrate,2,$mysoc);
 					if (empty($localtax1_type))
-						$localtax1_type=getTypeOfLocalTaxFromRate($vatrate,1);
+						$localtax1_type = $localtax1_array[0];
 					if (empty($localtax2_type))
-						$localtax2_type=getTypeOfLocalTaxFromRate($vatrate,2);
+						$localtax2_type = $localtax2_array[0];
 					//end TODO
-					
+
 				    // retrieve global local tax
 					if ($localtax1_type == '7')
-					{
-						$sql  = "SELECT t.localtax1";
-						$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-						$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
-						$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
-
-						$resql=$db->query($sql);
-						if ($resql)
-						{
-							$obj = $db->fetch_object($resql);
-							$localtax1_rate = $obj->localtax1;
-						}
-					}
+						$localtax1_rate = $localtax1_array[1];
 					if ($localtax2_type == '7')
-					{
-						$sql  = "SELECT t.localtax2";
-						$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-						$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
-						$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
-
-						$resql=$db->query($sql);
-						if ($resql)
-						{
-							$obj = $db->fetch_object($resql);
-							$localtax2_rate = $obj->localtax2;
-						}
-					}
+						$localtax2_rate = $localtax2_array[1];
 
 					if ($localtax1ligne != 0 || $localtax1_type == '7')
 						$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;
diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
index 49972bb9d8fa9ea09c4ca24acfc43231a275fab3..93a415bd7c1c5282e132ecdd18d5b0c5210edb62 100644
--- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php
+++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
@@ -374,41 +374,19 @@ class pdf_azur extends ModelePDFPropales
 
 					$vatrate=(string) $object->lines[$i]->tva_tx;
 					// TODO : store local taxes types into object lines and remove this
+					$localtax1_array=getTypeOfLocalTaxFromRate($vatrate,1,$mysoc);
+					$localtax2_array=getTypeOfLocalTaxFromRate($vatrate,2,$mysoc);
 					if (empty($localtax1_type))
-						$localtax1_type=getTypeOfLocalTaxFromRate($vatrate,1);
+						$localtax1_type = $localtax1_array[0];
 					if (empty($localtax2_type))
-						$localtax2_type=getTypeOfLocalTaxFromRate($vatrate,2);
+						$localtax2_type = $localtax2_array[0];
 					//end TODO
 
 				    // retrieve global local tax
 					if ($localtax1_type == '7')
-					{
-						$sql  = "SELECT t.localtax1";
-						$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-						$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
-						$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
-
-						$resql=$db->query($sql);
-						if ($resql)
-						{
-							$obj = $db->fetch_object($resql);
-							$localtax1_rate = $obj->localtax1;
-						}
-					}
+						$localtax1_rate = $localtax1_array[1];
 					if ($localtax2_type == '7')
-					{
-						$sql  = "SELECT t.localtax2";
-						$sql .= " FROM ".MAIN_DB_PREFIX."c_tva as t, ".MAIN_DB_PREFIX."c_pays as p";
-						$sql .= " WHERE t.fk_pays = p.rowid AND p.code = '".$mysoc->country_code."'";
-						$sql .= " AND t.taux = ".$vatrate." AND t.active = 1";
-
-						$resql=$db->query($sql);
-						if ($resql)
-						{
-							$obj = $db->fetch_object($resql);
-							$localtax2_rate = $obj->localtax2;
-						}
-					}
+						$localtax2_rate = $localtax2_array[1];
 
 					if ($localtax1ligne != 0 || $localtax1_type == '7')
 						$this->localtax1[$localtax1_type][$localtax1_rate]+=$localtax1ligne;