diff --git a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php
index b8547c687f61fae038320cc740538a31461ff51c..641ceb43e8f5cf9a5f73bb7c63ba3fd6d82f5190 100644
--- a/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php
+++ b/htdocs/core/modules/expensereport/doc/pdf_standard.modules.php
@@ -1,5 +1,6 @@
 <?php
 /* Copyright (C) 2015 Laurent Destailleur    <eldy@users.sourceforge.net>
+ * Copyright (C) 2015 Alexandre Spangaro     <alexandre.spangaro@gmail.com>
  *
  * 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
@@ -23,16 +24,16 @@
  */
 
 require_once DOL_DOCUMENT_ROOT.'/core/modules/expensereport/modules_expensereport.php';
-require_once(DOL_DOCUMENT_ROOT."/product/class/product.class.php");
-require_once(DOL_DOCUMENT_ROOT."/core/lib/functions2.lib.php");
-require_once(DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php');
+require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/pdf.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
 require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
 
 
 
 /**
- *	Classe permettant de generer les factures au modele Crabe
+ *	Class to generate expense report based on standard model
  */
 class pdf_standard extends ModeleExpenseReport
 {
@@ -252,7 +253,7 @@ class pdf_standard extends ModeleExpenseReport
 				$tab_height = 110;
 				$tab_height_newpage = 110;
 
-				// Affiche notes
+				// Show notes
 				$notetoshow=empty($object->note_public)?'':$object->note_public;
 				if (! empty($conf->global->MAIN_ADD_SALE_REP_SIGNATURE_IN_NOTE))
 				{
@@ -308,7 +309,7 @@ class pdf_standard extends ModeleExpenseReport
 
 					$showpricebeforepagebreak=1;
 
-					// Piece comptable
+					// Accountancy piece
 					$pdf->SetFont('','', $default_font_size - 1);
 					$pdf->writeHTMLCell($this->posxcomment-$this->posxpiece-1, 3, $this->posxpiece-1, $curY, $piece_comptable, 0, 1);
 
@@ -334,17 +335,18 @@ class pdf_standard extends ModeleExpenseReport
 					$pdf->SetXY($this->posxtype, $curY);
 					$pdf->MultiCell($this->posxprojet-$this->posxtype-1, 3,$outputlangs->transnoentities($object->lines[$i]->type_fees_code), 0, 'C');
 
-					// Projet
+					// Project
 					$pdf->SetFont('','', $default_font_size - 1);
 					$pdf->SetXY($this->posxprojet, $curY);
 					$pdf->MultiCell($this->posxtva-$this->posxprojet-1, 3,$object->lines[$i]->projet_ref, 0, 'C');
 
 					// VAT Rate
+					$vat_rate = pdf_getlinevatrate($object, $i, $outputlangs, $hidedetails);
 					$pdf->SetFont('','', $default_font_size - 1);
 					$pdf->SetXY($this->posxtva, $curY);
-					$pdf->MultiCell($this->posxup-$this->posxtva-1, 3,vatrate($object->lines[$i]->vatrate,true), 0, 'R');
+					$pdf->MultiCell($this->posxup-$this->posxtva-1, 3,$vat_rate, 0, 'R');
 
-					// UP
+					// Unit price
 					$pdf->SetFont('','', $default_font_size - 1);
 					$pdf->SetXY($this->posxup, $curY);
 					$pdf->MultiCell($this->posxqty-$this->posxup-1, 3,price($object->lines[$i]->value_unit), 0, 'R');
@@ -354,7 +356,7 @@ class pdf_standard extends ModeleExpenseReport
 					$pdf->SetXY($this->posxqty, $curY);
 					$pdf->MultiCell($this->postotalttc-$this->posxqty, 3,$object->lines[$i]->qty, 0, 'C');
 
-					// TotalTTC
+					// Total with all taxes
 					$pdf->SetFont('','', $default_font_size - 1);
 					$pdf->SetXY($this->postotalttc-2, $curY);
 					$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 3, price($object->lines[$i]->total_ttc), 0, 'R');
@@ -439,6 +441,13 @@ class pdf_standard extends ModeleExpenseReport
 				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_ht), 1, 'R');
 				$pdf->SetFillColor(248,248,248);
 
+				$posy+=5;
+				$pdf->SetXY(100, $posy);
+				$pdf->SetTextColor(0,0,60);
+				$pdf->MultiCell(60, 5, $outputlangs->transnoentities("TotalVAT"), 1,'L');
+				$pdf->SetXY(160, $posy);
+				$pdf->MultiCell($this->page_largeur - $this->marge_gauche - 160, 5, price($object->total_tva),1, 'R');
+
 				$posy+=5;
 				$pdf->SetXY(100, $posy);
 				$pdf->SetFont('','B', 10);
@@ -507,7 +516,7 @@ class pdf_standard extends ModeleExpenseReport
 		pdf_pagehead($pdf,$outputlangs,$this->page_hauteur);
 		*/
 
-	    // Filligrane brouillon
+	    // Draft watermark
 		if ($object->fk_statut==1 && ! empty($conf->global->EXPENSEREPORT_FREE_TEXT))
 		{
  			pdf_watermark($pdf,$outputlangs,$this->page_hauteur,$this->page_largeur,'mm',$conf->global->EXPENSEREPORT_FREE_TEXT);
@@ -551,25 +560,25 @@ class pdf_standard extends ModeleExpenseReport
 
 		$pdf->SetFont('','', $default_font_size -1);
 
-   		// Réf complète
+   		// Ref complete
    		$posy+=8;
    		$pdf->SetXY($posx,$posy);
    		$pdf->SetTextColor(0,0,60);
    		$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("Ref")." : " . $object->ref, '', 'L');
 
-   		// Date début période
+   		// Date start period
    		$posy+=5;
    		$pdf->SetXY($posx,$posy);
    		$pdf->SetTextColor(0,0,60);
    		$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("DateStart")." : " . ($object->date_debut>0?dol_print_date($object->date_debut,"day",false,$outpulangs):''), '', 'L');
 
-   		// Date fin période
+   		// Date end period
    		$posy+=5;
    		$pdf->SetXY($posx,$posy);
    		$pdf->SetTextColor(0,0,60);
    		$pdf->MultiCell($this->page_largeur-$this->marge_droite-$posx, 3, $outputlangs->transnoentities("DateEnd")." : " . ($object->date_fin>0?dol_print_date($object->date_fin,"day",false,$outpulangs):''), '', 'L');
 
-   		// Statut NDF
+   		// Status Expense Report
    		$posy+=6;
    		$pdf->SetXY($posx,$posy);
    		$pdf->SetFont('','B',18);
@@ -581,7 +590,7 @@ class pdf_standard extends ModeleExpenseReport
    		$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->address);
    		$carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->convToOutputCharset($this->emetteur->zip).' '.$outputlangs->convToOutputCharset($this->emetteur->town);
    		$carac_emetteur .= "\n";
-   		// Tel
+   		// Phone
    		if ($this->emetteur->phone) $carac_emetteur .= ($carac_emetteur ? "\n" : '' ).$outputlangs->transnoentities("Phone")." : ".$outputlangs->convToOutputCharset($this->emetteur->phone);
    		// Fax
    		if ($this->emetteur->fax) $carac_emetteur .= ($carac_emetteur ? ($this->emetteur->tel ? " - " : "\n") : '' ).$outputlangs->transnoentities("Fax")." : ".$outputlangs->convToOutputCharset($this->emetteur->fax);
@@ -734,46 +743,46 @@ class pdf_standard extends ModeleExpenseReport
 
 		$pdf->SetFont('','',8);
 
-		//Piece comptable
+		// Accountancy piece
 		$pdf->SetXY($this->posxpiece-1, $tab_top+1);
 		$pdf->MultiCell($this->posxdesc-$this->posxpiece-1,1,'','','R');
 
-		//Comments
+		// Comments
 		$pdf->line($this->posxdesc-1, $tab_top, $this->posxdesc-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxdesc-1, $tab_top+1);
 		$pdf->MultiCell($this->posxdate-$this->posxdesc-1,1,$outputlangs->transnoentities("Description"),'','L');
 
-		//Date
+		// Date
 		$pdf->line($this->posxdate-1, $tab_top, $this->posxdate-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxdate-1, $tab_top+1);
 		$pdf->MultiCell($this->posxtype-$this->posxdate-1,2, $outputlangs->transnoentities("Date"),'','C');
 
-		//Type
+		// Type
 		$pdf->line($this->posxtype-1, $tab_top, $this->posxtype-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxtype-1, $tab_top+1);
 		$pdf->MultiCell($this->posxprojet-$this->posxtype-1,2, $outputlangs->transnoentities("Type"),'','C');
 
-		// Projet
+		// Project
 		$pdf->line($this->posxprojet-1, $tab_top, $this->posxprojet-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxprojet-1, $tab_top+1);
 		$pdf->MultiCell($this->posxtva-$this->posxprojet-1,2, $outputlangs->transnoentities("Project"),'','C');
 
-		//TVA
+		// VAT
 		$pdf->line($this->posxtva-1, $tab_top, $this->posxtva-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxtva-1, $tab_top+1);
 		$pdf->MultiCell($this->posxup-$this->posxtva-1,2, $outputlangs->transnoentities("VAT"),'','C');
 
-		//PU
+		// Unit price
 		$pdf->line($this->posxup-1, $tab_top, $this->posxup-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxup-1, $tab_top+1);
-		$pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("UP"),'','C');
+		$pdf->MultiCell($this->posxqty-$this->posxup-1,2, $outputlangs->transnoentities("PriceU"),'','C');
 
-		//QTY
+		// Quantity
 		$pdf->line($this->posxqty-1, $tab_top, $this->posxqty-1, $tab_top + $tab_height);
 		$pdf->SetXY($this->posxqty-1, $tab_top+1);
 		$pdf->MultiCell($this->postotalttc-$this->posxqty,2, $outputlangs->transnoentities("Qty"),'','R');
 
-		//TOTALTTC
+		// Total with all taxes
 		$pdf->line($this->postotalttc, $tab_top, $this->postotalttc, $tab_top + $tab_height);
 		$pdf->SetXY($this->postotalttc-1, $tab_top+1);
 		$pdf->MultiCell($this->page_largeur-$this->marge_droite-$this->postotalttc, 2, $outputlangs->transnoentities("TotalTTC"),'','R');
diff --git a/htdocs/expensereport/card.php b/htdocs/expensereport/card.php
index 385e5b86037c70c4db4ca4fdab4ec9a831b9d5da..f0ce82cfb6453315183b8aa25ec3e156855bf4e6 100644
--- a/htdocs/expensereport/card.php
+++ b/htdocs/expensereport/card.php
@@ -828,9 +828,8 @@ if ($action == "addline")
 
 	$object_ligne->fk_c_type_fees = GETPOST('fk_c_type_fees');
 
-	$vatrate=GETPOST('vatrate');
-	$object_ligne->fk_c_tva = $vatrate;
-	$object_ligne->vatrate = $vatrate;
+	$object_ligne->fk_c_tva = GETPOST('fk_c_tva');
+	$object_ligne->vatrate = GETPOST('vatrate');
 
 	$object_ligne->fk_projet = $fk_projet;
 
@@ -878,8 +877,8 @@ if ($action == "addline")
 		$type = 0;	// TODO What if service
 		$tmp = calcul_price_total($qty, $up, 0, $vatrate, 0, 0, 0, 'TTC', 0, $type);
 
-		$object_ligne->total_ttc = $tmp[2];
 		$object_ligne->vatrate = GETPOST('vatrate');
+		$object_ligne->total_ttc = $tmp[2];
 		$object_ligne->total_ht = $tmp[0];
 		$object_ligne->total_tva = $tmp[1];
 
@@ -950,8 +949,8 @@ if ($action == "updateligne" )
 
 	$rowid = $_POST['rowid'];
 	$type_fees_id = GETPOST('fk_c_type_fees');
-	$c_tva=GETPOST('vatrate');
-	$object_ligne->fk_c_tva = $c_tva;
+	$object_ligne->fk_c_tva = GETPOST('fk_c_tva');
+	$object_ligne->vatrate = GETPOST('vatrate');
 	$projet_id = $fk_projet;
 	$comments = GETPOST('comments');
 	$qty = GETPOST('qty');
@@ -1008,9 +1007,9 @@ if ($action == "updateligne" )
 
 
 /*
- * Generer ou regenerer le document PDF
+ * Generate or regenerate the PDF document
  */
-if ($action == 'builddoc')	// En get ou en post
+if ($action == 'builddoc')	// GET or POST
 {
 	$depl = new ExpenseReport($db, 0, $_GET['id']);
 	$depl->fetch($id);
@@ -1528,7 +1527,7 @@ else
 
 				// Fetch Lines of current expense report
 				$sql = 'SELECT fde.rowid, fde.fk_expensereport, fde.fk_c_type_fees, fde.fk_projet, fde.date,';
-				$sql.= ' fde.fk_c_tva as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,';
+				$sql.= ' fde.fk_c_tva as fk_c_tva, fde.tva_tx as vatrate, fde.comments, fde.qty, fde.value_unit, fde.total_ht, fde.total_tva, fde.total_ttc,';
 				$sql.= ' ctf.code as type_fees_code, ctf.label as type_fees_libelle,';
 				$sql.= ' pjt.rowid as projet_id, pjt.title as projet_title, pjt.ref as projet_ref';
 				$sql.= ' FROM '.MAIN_DB_PREFIX.'expensereport_det as fde';
@@ -1639,7 +1638,7 @@ else
 									$formproject->select_projects(-1, $objp->fk_projet,'fk_projet', 0, 0, 0, 1);
 									print '</td>';
 
-									// Sélect type
+									// Select type
 									print '<td style="text-align:center;">';
 									select_type_fees_id($objp->type_fees_code,'fk_c_type_fees');
 									print '</td>';
@@ -1651,7 +1650,7 @@ else
 
 									// VAT
 									print '<td style="text-align:right;">';
-									print $form->load_tva('fk_c_tva', (isset($_POST["fk_c_tva"])?$_POST["fk_c_tva"]:$objp->vatrate), $mysoc, '');
+									print $form->load_tva('vatrate', (isset($_POST["vatrate"])?$_POST["vatrate"]:$objp->vatrate), $mysoc, '');
 									print '</td>';
 
 									// Unit price
@@ -1659,7 +1658,7 @@ else
 									print '<input type="text" size="6" name="value_unit" value="'.$objp->value_unit.'" />';
 									print '</td>';
 
-									// Qty
+									// Quantity
 									print '<td style="text-align:right;">';
 									print '<input type="text" size="4" name="qty" value="'.$objp->qty.'" />';
 									print '</td>';
@@ -1744,7 +1743,7 @@ else
 						print '</select>';
 						print '</td>';
 
-						// Prix unitaire
+						// Unit price
 						print '<td style="text-align:right;">';
 						print '<input type="text" size="6" name="value_unit" value="'.GETPOST('value_unit').'">';
 						print '</td>';
@@ -1805,7 +1804,7 @@ if ($action != 'create' && $action != 'edit')
 	{
 		if ($object->fk_user_author == $user->id)
 		{
-			// Modifier
+			// Modify
 			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>';
 
 			// Validate
@@ -1816,7 +1815,7 @@ if ($action != 'create' && $action != 'edit')
 
 			if ($user->rights->expensereport->supprimer)
 			{
-				// Supprimer
+				// Delete
 				print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
 			}
 		}
@@ -1831,7 +1830,7 @@ if ($action != 'create' && $action != 'edit')
 	{
 		if ($user->id == $object->fk_user_author || $user->id == $object->fk_user_valid)
 		{
-			// Modifier
+			// Modify
 			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=edit&id='.$id.'">'.$langs->trans('Modify').'</a>';
 
 			// Brouillonner (le statut refusée est identique à brouillon)
@@ -1841,7 +1840,7 @@ if ($action != 'create' && $action != 'edit')
 
 			if ($user->rights->expensereport->supprimer)
 			{
-				// Supprimer
+				// Delete
 				print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
 			}
 		}
@@ -1874,9 +1873,9 @@ if ($action != 'create' && $action != 'edit')
 	{
 		//if($object->fk_user_validator==$user->id)
 		//{
-			// Valider
+			// Validate
 			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=validate&id='.$id.'">'.$langs->trans('Approve').'</a>';
-			// Refuser
+			// Deny
 			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=refuse&id='.$id.'">'.$langs->trans('Deny').'</a>';
 		//}
 
@@ -1888,7 +1887,7 @@ if ($action != 'create' && $action != 'edit')
 
 		if($user->rights->expensereport->supprimer)
 		{
-			// Supprimer
+			// Delete
 			print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
 		}
 	}
@@ -1899,7 +1898,7 @@ if ($action != 'create' && $action != 'edit')
 	*/
 	if ($user->rights->expensereport->to_paid && $object->fk_statut == 5)
 	{
-		// Payer
+		// Pay
 		print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=paid&id='.$id.'">'.$langs->trans('TO_PAID').'</a>';
 
 		// Cancel
@@ -1910,7 +1909,7 @@ if ($action != 'create' && $action != 'edit')
 
 		if($user->rights->expensereport->supprimer)
 		{
-			// Supprimer
+			// Delete
 			print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
 		}
 	}
@@ -1922,11 +1921,11 @@ if ($action != 'create' && $action != 'edit')
 	*/
 	if ($user->rights->expensereport->approve && $user->rights->expensereport->to_paid && $object->fk_statut==6)
 	{
-		// Annuler
+		// Cancel
 		print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=cancel&id='.$id.'">'.$langs->trans('Cancel').'</a>';
 		if($user->rights->expensereport->supprimer)
 		{
-			// Supprimer
+			// Delete
 			print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
 		}
 	}
@@ -1944,7 +1943,7 @@ if ($action != 'create' && $action != 'edit')
 			print '<a class="butAction" href="'.$_SERVER["PHP_SELF"].'?action=brouillonner&id='.$id.'">'.$langs->trans('ReOpen').'</a>';
 		}
 
-		// Supprimer
+		// Delete
 		print '<a class="butActionDelete" href="'.$_SERVER["PHP_SELF"].'?action=delete&id='.$id.'">'.$langs->trans('Delete').'</a>';
 
 	}
@@ -1959,7 +1958,7 @@ print '</div>';
 print '<div style="width:50%">';
 
 /*
- * Documents generes
+ * Generate documents
  */
 if($user->rights->expensereport->export && $object->fk_statut>0 && $action != 'edit')
 {
diff --git a/htdocs/expensereport/class/expensereport.class.php b/htdocs/expensereport/class/expensereport.class.php
index 1a0a94f026677e684d48968db8b5c3613b2b1b22..d6b767da849e93219621be7be80a00fa2502ea92 100644
--- a/htdocs/expensereport/class/expensereport.class.php
+++ b/htdocs/expensereport/class/expensereport.class.php
@@ -539,7 +539,6 @@ class ExpenseReport extends CommonObject
 			$line->total_tva=20;
 			$line->total_ttc=120;
 			$line->qty=1;
-			$line->fk_c_tva=20;
 			$line->vatrate=20;
 			$line->value_unit=120;
 			$line->fk_expensereport=0;
@@ -1207,7 +1206,7 @@ class ExpenseReport extends CommonObject
 			$this->db->begin();
 
 			// Select du taux de tva par rapport au code
-			$sql = "SELECT t.taux as taux_tva";
+			$sql = "SELECT t.taux as vatrate";
 			$sql.= " FROM ".MAIN_DB_PREFIX."c_tva as t";
 			$sql.= " WHERE t.rowid = ".$c_tva;
 			$result = $this->db->query($sql);
@@ -1217,7 +1216,7 @@ class ExpenseReport extends CommonObject
 			$total_ttc	= $qty*$value_unit;
 			$total_ttc 	= number_format($total_ttc,2,'.','');
 
-			$tx_tva = $objp_tva->taux_tva/100;
+			$tx_tva = $objp_tva->vatrate/100;
 			$tx_tva	= $tx_tva + 1;
 			$total_ht 	= $total_ttc/$tx_tva;
 			$total_ht 	= number_format($total_ht,2,'.','');