diff --git a/ChangeLog b/ChangeLog
index 7113b325833670bc1af6a933897dfe101537164e..ff8a576300804ab83e1528831bb4f00d829f87cc 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -240,6 +240,11 @@ FIX [ bug #3288 ] Tasks box is not properly drawn
 FIX [ bug #3211 ] Outstading bill amount of a client showed wrong amounts
 FIX [ bug #3321 ] Users with certain permissions were shown a "forbidden access" page even if they had the rights
 FIX [ bug #3426 ] Unable to create an invoice from a contract with extrafields
+FIX [ bug #3431 ] Invoice bank account is not respected
+FIX [ bug #3432 ] Spaces should be removed from IBAN when formatting it
+FIX [ bug #3358 ] Tasks box does not work with PostgreSQL
+FIX [ bug #3383 ] Company name is overlapped with company direction in PDF models
+FIX [ bug #3460 ] Bank account is not saved when creating a customer invoice and facing an error message
 
 NEW: Created new ContratLigne::insert function
 
diff --git a/htdocs/accountancy/admin/account.php b/htdocs/accountancy/admin/account.php
index bff9dbe426588f5bf219865f13069c36c99ab9d5..0bf37a7753e4851dda89767db2171754093151df 100644
--- a/htdocs/accountancy/admin/account.php
+++ b/htdocs/accountancy/admin/account.php
@@ -173,11 +173,12 @@ if ($result) {
 	print '</td>';
 	print '</tr>';
 	
-	$var = true;
+	$var = false;
 	
 	$accountstatic=new AccountingAccount($db);
 	
-	while ( $i < min($num, $limit) ) {
+	while ( $i < min($num, $limit) ) 
+	{
 		$obj = $db->fetch_object($resql);
 		
 		$accountstatic->id=$obj->rowid;
diff --git a/htdocs/accountancy/admin/export.php b/htdocs/accountancy/admin/export.php
index 3da29bd9cc134c8d29d839b9117d59f1fd53ccd2..856670e18e23b98fe9eba953dbc5b975e0c3f896 100644
--- a/htdocs/accountancy/admin/export.php
+++ b/htdocs/accountancy/admin/export.php
@@ -99,12 +99,13 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup
 
 $head = admin_accounting_prepare_head();
 
-dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron');
 
 print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
 print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
 print '<input type="hidden" name="action" value="update">';
 
+dol_fiche_head($head, 'export', $langs->trans("Configuration"), 0, 'cron');
+
 print '<table class="noborder" width="100%">';
 $var = true;
 
@@ -169,7 +170,9 @@ if ($num)
 	print "</table>\n";
 }
 
-print '<br><div style="text-align:center"><input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Modify')) . '" name="button"></div>';
+dol_fiche_end();
+
+print '<div class="center"><input type="submit" class="button" value="' . dol_escape_htmltag($langs->trans('Modify')) . '" name="button"></div>';
 
 print '</form>';
 
diff --git a/htdocs/accountancy/admin/index.php b/htdocs/accountancy/admin/index.php
index fc8994c4836b19231783083a4ea7282097a693c5..44b2268dc0607cd0d8958dcfd386800a031ca914 100644
--- a/htdocs/accountancy/admin/index.php
+++ b/htdocs/accountancy/admin/index.php
@@ -157,12 +157,13 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup
 
 $head = admin_accounting_prepare_head($accounting);
 
-dol_fiche_head($head, 'general', $langs->trans("Configuration"), 0, 'cron');
 
 print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
 print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
 print '<input type="hidden" name="action" value="update">';
 
+dol_fiche_head($head, 'general', $langs->trans("Configuration"), 0, 'cron');
+
 print '<table class="noborder" width="100%">';
 
 // Cas du parametre ACCOUNTING_MODE
@@ -291,7 +292,11 @@ print '</tr>';
 
 print "</table>\n";
 
-print '<br /><br /><div style="text-align:center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
+dol_fiche_end();
+
+print '<div class="center"><input type="submit" class="button" value="'.$langs->trans('Modify').'" name="button"></div>';
+
 print '</form>';
+
 llxFooter();
 $db->close();
diff --git a/htdocs/accountancy/admin/journaux.php b/htdocs/accountancy/admin/journal.php
similarity index 95%
rename from htdocs/accountancy/admin/journaux.php
rename to htdocs/accountancy/admin/journal.php
index e2359ebd8ee1e866bc28b314c6c822ad01504d47..e1d4894788aedc929748825ed2dc5f12e803e3d7 100644
--- a/htdocs/accountancy/admin/journaux.php
+++ b/htdocs/accountancy/admin/journal.php
@@ -22,7 +22,7 @@
  */
 
 /**
- * \file		htdocs/accountancy/admin/journaux.php
+ * \file		htdocs/accountancy/admin/journal.php
  * \ingroup		Accounting Expert
  * \brief		Setup page to configure accounting expert module
  */
@@ -87,12 +87,12 @@ print_fiche_titre($langs->trans('ConfigAccountingExpert'),$linkback,'title_setup
 
 $head = admin_accounting_prepare_head(null);
 
-dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron');
-
 print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
 print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
 print '<input type="hidden" name="action" value="update">';
 
+dol_fiche_head($head, 'journal', $langs->trans("Configuration"), 0, 'cron');
+
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
 print '<td colspan="3">' . $langs->trans('Journaux') . '</td>';
@@ -115,10 +115,9 @@ foreach ( $list as $key ) {
 
 print "</table>\n";
 
-print '<br /><div style="text-align:center"><input type="submit" class="button" value="' . $langs->trans('Modify') . '" name="button"></div>';
-print '</form>';
 
-print '<br />';
+print '<br>';
+
 
 print '<table class="noborder" width="100%">';
 print '<tr class="liste_titre">';
@@ -164,9 +163,12 @@ $db->free($resql);
 
 print "</table>\n";
 
-print '</div>';
+dol_fiche_end();
+
+print '<div class="center"><input type="submit" class="button" value="' . $langs->trans('Modify') . '" name="button"></div>';
+
+print '</form>';
 
-print '<br>';
 
 llxFooter();
 $db->close();
\ No newline at end of file
diff --git a/htdocs/accountancy/admin/productaccount.php b/htdocs/accountancy/admin/productaccount.php
index 315c9f553255800012786fec51e64cc32307f07c..9898064f6d5ec7ffb695f4690667cb88b01d396e 100644
--- a/htdocs/accountancy/admin/productaccount.php
+++ b/htdocs/accountancy/admin/productaccount.php
@@ -287,8 +287,9 @@ if ($result) {
 		print '<th align="left">' . $langs->trans("Accountancy_code_sell_suggest") . '</td>';
 	}
 	// print_liste_field_titre('');
-	print '<td align="center">' . $langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label>/<label id="unselect-all">' . $langs->trans('None') . '</label>' . '</td>';
+	print_liste_field_titre($langs->trans("Ventilate") . '<br><label id="select-all">' . $langs->trans('All') . '</label> / <label id="unselect-all">' . $langs->trans('None') . '</label>');
 	print '</tr>';
+	
 	print '<tr class="liste_titre">';
 	print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_ref" value="' . $search_ref . '"></td>';
 	print '<td class="liste_titre"><input type="text" class="flat" size="20" name="search_label" value="' . $search_label . '"></td>';
@@ -359,7 +360,7 @@ if ($result) {
 			// print '<td align="left">' . $compta_prodbuy . '</td>';
 			// TODO: we shoul set a user defined value to adjust user square / wide screen size
 			// $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
-			print '<td align="center">';
+			print '<td align="left">';
 			print $form->select_account($compta_prodbuy_id, 'codeventil_'.$product_static->id, 1);
 			print '</td>';
 		} else {
@@ -369,7 +370,7 @@ if ($result) {
 			// TODO: replace by select
 			// TODO: we shoul set a user defined value to adjust user square / wide screen size
 			// $trunclenghform = defined('ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT') ? ACCOUNTING_LENGTH_DESCRIPTION_ACCOUNT : 50;
-			print '<td align="center">';
+			print '<td align="left">';
 			print $form->select_account($compta_prodsell_id,  'codeventil_'.$product_static->id, 1);
 			print '</td>';
 		}
diff --git a/htdocs/accountancy/journal/bankjournal.php b/htdocs/accountancy/journal/bankjournal.php
index f4d6400449fb8c55bae7603e7a402fdd0cd0a0bc..250d90016795b8330ab41bcadd2ac4d96d2dc9d2 100644
--- a/htdocs/accountancy/journal/bankjournal.php
+++ b/htdocs/accountancy/journal/bankjournal.php
@@ -571,7 +571,7 @@ else
 
 	// Title
 	print '<tr>';
-	print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
+	print '<td width="110">'.$langs->trans("ReportName").'</td>';
 	print '<td colspan="3">'.$namereport.'</td>';
 	print '</td>';
 	print '</tr>';
@@ -588,7 +588,7 @@ else
 
 	// Description
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("ReportDescription").'</td>';
+	print '<td>'.$langs->trans("ReportDescription").'</td>';
 	print '<td colspan="3">'.$description.'</td>';
 	print '</tr>';
 
diff --git a/htdocs/commande/orderstoinvoice.php b/htdocs/commande/orderstoinvoice.php
index e75a9dda73b679c4bbfc53062973682163c98b13..cb3ede38f2488f4485608ab868b2e10e2928c0fc 100644
--- a/htdocs/commande/orderstoinvoice.php
+++ b/htdocs/commande/orderstoinvoice.php
@@ -394,6 +394,9 @@ if ($action == 'create' && !$error)
 	print '<input type="hidden" name="origin" value="'.GETPOST('origin').'">';
 	print '<input type="hidden" name="originid" value="'.GETPOST('originid').'">';
 	print '<input type="hidden" name="autocloseorders" value="'.GETPOST('autocloseorders').'">';
+	
+	dol_fiche_head();
+	
 	print '<table class="border" width="100%">';
 
 	// Ref
@@ -495,16 +498,20 @@ if ($action == 'create' && !$error)
 		$i++;
 	}
 
+	dol_fiche_end();
+	
 	// Button "Create Draft"
-	print '<br><div class="center"><input type="submit" class="button" name="bouton" value="'.$langs->trans('CreateDraft').'" /></div>';
+	print '<div class="center"><input type="submit" class="button" name="bouton" value="'.$langs->trans('CreateDraft').'" /></div>';
 	print "</form>\n";
 
 	print '</td></tr>';
 	print "</table>\n";
+	
+	
 }
 
-//Mode liste
-if (($action != 'create' && $action != 'add') && !$error)
+// Mode liste
+if (($action != 'create' && $action != 'add') || ($action == 'create' && $error))
 {
 	llxHeader();
 	?>
diff --git a/htdocs/compta/facture.php b/htdocs/compta/facture.php
index 33734d2a84ba9dc31a90c95586f1581f0732cffb..a4a3c8a1e83c4ba026ab9b1192b08cb63d0df66d 100644
--- a/htdocs/compta/facture.php
+++ b/htdocs/compta/facture.php
@@ -2242,6 +2242,10 @@ if ($action == 'create')
 	print '</td></tr>';
 
     // Bank Account
+	if (isset($_POST['fk_account'])) {
+		$fk_account = $_POST['fk_account'];
+	}
+
     print '<tr><td>' . $langs->trans('BankAccount') . '</td><td colspan="2">';
     $form->select_comptes($fk_account, 'fk_account', 0, '', 1);
     print '</td></tr>';
diff --git a/htdocs/core/boxes/box_task.php b/htdocs/core/boxes/box_task.php
index 8ee42c4473151de4ea369beb9ab5d626f0ad5085..d6a65884ffb5ba74f8fac03b1431c60033e8921c 100644
--- a/htdocs/core/boxes/box_task.php
+++ b/htdocs/core/boxes/box_task.php
@@ -82,7 +82,7 @@ class box_task extends ModeleBoxes
 
 			$sql = "SELECT pt.fk_statut, count(pt.rowid) as nb, sum(ptt.task_duration) as durationtot, sum(pt.planned_workload) as plannedtot";
 			$sql.= " FROM ".MAIN_DB_PREFIX."projet_task as pt, ".MAIN_DB_PREFIX."projet_task_time as ptt";
-			$sql.= " WHERE DATE_FORMAT(pt.datec,'%Y') = ".date("Y")." ";
+			$sql.= " WHERE DATE_FORMAT(pt.datec,'%Y') = '".date("Y")."' ";
 			$sql.= " AND pt.rowid = ptt.fk_task";
 			$sql.= " GROUP BY pt.fk_statut ";
 			$sql.= " ORDER BY pt.fk_statut DESC";
diff --git a/htdocs/core/lib/accounting.lib.php b/htdocs/core/lib/accounting.lib.php
index 196dcfe0997b2f9c988b499491fe6d8f9fa42bf2..6e6da6bd6861ede6c3eef4030a4a09c46eb0cd64 100644
--- a/htdocs/core/lib/accounting.lib.php
+++ b/htdocs/core/lib/accounting.lib.php
@@ -47,12 +47,12 @@ function admin_accounting_prepare_head(AccountingAccount $object=null)
 	// $this->tabs = array('entity:-tabname); to remove a tab
 	complete_head_from_modules($conf, $langs, $object, $head, $h, 'accounting_admin');
 
-	$head[$h][0] = dol_buildpath('/accountancy/admin/journaux.php', 1);
+	$head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/journal.php';
 	$head[$h][1] = $langs->trans("Journaux");
 	$head[$h][2] = 'journal';
 	$h ++;
 
-	$head[$h][0] = dol_buildpath('/accountancy/admin/export.php', 1);
+	$head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/export.php';
 	$head[$h][1] = $langs->trans("Export");
 	$head[$h][2] = 'export';
 	$h ++;
@@ -75,7 +75,7 @@ function accounting_prepare_head(AccountingAccount $object)
 	$h = 0;
 	$head = array ();
 
-	$head[$h][0] = dol_buildpath('/accountancy/admin/card.php', 1) . '?id=' . $object->id;
+	$head[$h][0] = DOL_URL_ROOT.'/accountancy/admin/card.php?id=' . $object->id;
 	$head[$h][1] = $langs->trans("Card");
 	$head[$h][2] = 'card';
 	$h ++;
diff --git a/htdocs/core/lib/pdf.lib.php b/htdocs/core/lib/pdf.lib.php
index da5be96151924fdd129fe7d2e3e7011d46e393f9..8beae962d0927759a88f4ff9ac6982ba19938fb7 100644
--- a/htdocs/core/lib/pdf.lib.php
+++ b/htdocs/core/lib/pdf.lib.php
@@ -676,7 +676,8 @@ function pdf_bank(&$pdf,$outputlangs,$curx,$cury,$account,$onlynumber=0,$default
 	if ($account->getCountryCode() == 'IN') $ibankey="IFSC";
 	if (! empty($account->iban))
 	{
-		$ibanDisplay_temp = $outputlangs->convToOutputCharset($account->iban);
+		//Remove whitespaces to ensure we are dealing with the format we expect
+		$ibanDisplay_temp = str_replace(' ', '', $outputlangs->convToOutputCharset($account->iban));
 		$ibanDisplay = "";
 
 		for($i = 0; $i < dol_strlen($ibanDisplay_temp); $i++)
diff --git a/htdocs/core/lib/report.lib.php b/htdocs/core/lib/report.lib.php
index 79ab5fe0eadd1f2d642a19d4b36bcd099af8c439..8946449d5aceb12b222aa5b7094745c6e8f3efb2 100644
--- a/htdocs/core/lib/report.lib.php
+++ b/htdocs/core/lib/report.lib.php
@@ -61,7 +61,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
 
 	// Ligne de titre
 	print '<tr>';
-	print '<td valign="top" width="110">'.$langs->trans("ReportName").'</td>';
+	print '<td width="110">'.$langs->trans("ReportName").'</td>';
 	if (! $variantexxx) print '<td colspan="3">';
 	else print '<td>';
 	print $nom;
@@ -73,7 +73,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
 	if ($calcmode)
 	{
 		print '<tr>';
-		print '<td valign="top" width="110">'.$langs->trans("CalculationMode").'</td>';
+		print '<td width="110">'.$langs->trans("CalculationMode").'</td>';
 		if (! $variante) print '<td colspan="3">';
 		else print '<td>';
 		print $calcmode;
@@ -94,7 +94,7 @@ function report_header($nom,$variante,$period,$periodlink,$description,$builddat
 
 	// Ligne de description
 	print '<tr>';
-	print '<td valign="top">'.$langs->trans("ReportDescription").'</td>';
+	print '<td>'.$langs->trans("ReportDescription").'</td>';
 	print '<td colspan="3">'.$description.'</td>';
 	print '</tr>';
 
diff --git a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
index 20a80cb8be10041b2c5fa5a1b056daa379a3f656..cc1e6aeedcaf03f52d4787f62d19682f0a664da5 100644
--- a/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
+++ b/htdocs/core/modules/commande/doc/pdf_einstein.modules.php
@@ -1325,9 +1325,11 @@ class pdf_einstein extends ModelePDFCommandes
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 
diff --git a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php
index 5afc0fe5c463a578f788162466b9eee45ed2db1a..603f151fbfdd2290efe66e6078b0e86cd8a059fd 100644
--- a/htdocs/core/modules/commande/doc/pdf_proforma.modules.php
+++ b/htdocs/core/modules/commande/doc/pdf_proforma.modules.php
@@ -1217,9 +1217,11 @@ class pdf_proforma extends ModelePDFCommandes
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 
diff --git a/htdocs/core/modules/contract/doc/pdf_strato.modules.php b/htdocs/core/modules/contract/doc/pdf_strato.modules.php
index 150529ae30d5f55f9eb9d2cbefac1ade03de8f8d..21944afad4f5408d276c54774f59f24d68afe56e 100644
--- a/htdocs/core/modules/contract/doc/pdf_strato.modules.php
+++ b/htdocs/core/modules/contract/doc/pdf_strato.modules.php
@@ -647,9 +647,11 @@ class pdf_strato extends ModelePDFContract
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $this->recipient->name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($this->recipient->name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 	}
diff --git a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
index 3f4315f640cbd914f115c40693d732a3bb7e20ff..107dbb783b95382a5b093e4db8f0135e24d7090c 100644
--- a/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_merou.modules.php
@@ -650,9 +650,11 @@ class pdf_merou extends ModelePdfExpedition
 		$pdf->SetXY($blDestX,$Yoff);
 		$pdf->MultiCell($blW,3, $carac_client_name, 0, 'L');
 
+		$posy = $pdf->getY();
+
 		// Show recipient information
-		$pdf->SetFont('','', $default_font_size - 3);
-		$pdf->SetXY($blDestX,$Yoff+(dol_nboflines_bis($carac_client_name,50)*4));
-		$pdf->MultiCell($blW,2, $carac_client, 0, 'L');
+		$pdf->SetFont('','', $default_font_size - 1);
+		$pdf->SetXY($posx+2,$posy);
+		$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 	}
 }
diff --git a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
index 5123f713a6e0e4cb92662f5719a2b2997f3f1ac1..e90e11a952d6faeb6493e5ade5d4f782d917e0e7 100644
--- a/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
+++ b/htdocs/core/modules/expedition/doc/pdf_rouget.modules.php
@@ -694,9 +694,11 @@ class pdf_rouget extends ModelePdfExpedition
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 
diff --git a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
index a38d64ba826b9f7f7db129e1a48a0f5dbed91909..48be2c907c8947b71b4eca2e920b7f3538074d43 100644
--- a/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
+++ b/htdocs/core/modules/facture/doc/pdf_crabe.modules.php
@@ -958,9 +958,9 @@ class pdf_crabe extends ModelePDFFactures
 			// If payment mode not forced or forced to VIR, show payment with BAN
 			if (empty($object->mode_reglement_code) || $object->mode_reglement_code == 'VIR')
 			{
-				if (! empty($object->fk_bank) || ! empty($conf->global->FACTURE_RIB_NUMBER))
+				if (! empty($object->fk_account) || ! empty($conf->global->FACTURE_RIB_NUMBER))
 				{
-					$bankid=(empty($object->fk_bank)?$conf->global->FACTURE_RIB_NUMBER:$object->fk_bank);
+					$bankid=(empty($object->fk_account)?$conf->global->FACTURE_RIB_NUMBER:$object->fk_account);
 					$account = new Account($this->db);
 					$account->fetch($bankid);
 
@@ -1611,11 +1611,13 @@ class pdf_crabe extends ModelePDFFactures
 			// Show recipient name
 			$pdf->SetXY($posx+2,$posy+3);
 			$pdf->SetFont('','B', $default_font_size);
-			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
+			$pdf->MultiCell($widthrecbox, 2, $carac_client_name, 0, 'L');
+
+			$posy = $pdf->getY();
 
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 
diff --git a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
index 116cab79185b72c370c27f63b6a6b07aa8a9ea78..98485be3207dc5817752fc7e59283c7b3aceff21 100644
--- a/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
+++ b/htdocs/core/modules/fichinter/doc/pdf_soleil.modules.php
@@ -641,9 +641,11 @@ class pdf_soleil extends ModelePDFFicheinter
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 	}
diff --git a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
index b6f674e424df03f6db18f8339a4c8a38f28fe442..747401be88c2e4479b5cbb23760de6f4d21de81e 100644
--- a/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
+++ b/htdocs/core/modules/livraison/doc/pdf_typhon.modules.php
@@ -875,9 +875,11 @@ class pdf_typhon extends ModelePDFDeliveryOrder
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 
diff --git a/htdocs/core/modules/propale/doc/pdf_azur.modules.php b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
index c3da51fc4c4f18a9c7b87a735322cd56b3cb0bdc..d54b175750c2babfcd91d17304ea31b2f1264e0c 100644
--- a/htdocs/core/modules/propale/doc/pdf_azur.modules.php
+++ b/htdocs/core/modules/propale/doc/pdf_azur.modules.php
@@ -1517,9 +1517,11 @@ class pdf_azur extends ModelePDFPropales
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 
diff --git a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
index 9445d71ce8ab0c5cf3c4af09936db0c96cab7be2..265d43ca1fcfbcfadc14083b469fa1a871c02430 100644
--- a/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
+++ b/htdocs/core/modules/supplier_invoice/pdf/pdf_canelle.modules.php
@@ -1132,9 +1132,11 @@ class pdf_canelle extends ModelePDFSuppliersInvoices
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 	}
diff --git a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
index 8e126dcd18d329c6e241054efaa48738ea56a1c8..b2ca0ee0a602210aaaa7fe978d1817ac23df3018 100644
--- a/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
+++ b/htdocs/core/modules/supplier_order/pdf/pdf_muscadet.modules.php
@@ -1184,9 +1184,11 @@ class pdf_muscadet extends ModelePDFSuppliersOrders
 			$pdf->SetFont('','B', $default_font_size);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client_name, 0, 'L');
 
+			$posy = $pdf->getY();
+
 			// Show recipient information
 			$pdf->SetFont('','', $default_font_size - 1);
-			$pdf->SetXY($posx+2,$posy+4+(dol_nboflines_bis($carac_client_name,50)*4));
+			$pdf->SetXY($posx+2,$posy);
 			$pdf->MultiCell($widthrecbox, 4, $carac_client, 0, 'L');
 		}
 	}
diff --git a/htdocs/holiday/card.php b/htdocs/holiday/card.php
index 23c78641462761112146bfb664bbad9f0596f607..ebda47dd196878d9049ec4fd182458397b820317 100644
--- a/htdocs/holiday/card.php
+++ b/htdocs/holiday/card.php
@@ -51,11 +51,12 @@ $now=dol_now();
  * Actions
  */
 
+// If create a request
 if ($action == 'create')
 {
 	$cp = new Holiday($db);
 
-    // Si pas le droit de créer une demande
+    // If no right to create a request
     if (($userid == $user->id && empty($user->rights->holiday->write)) || ($userid != $user->id && empty($user->rights->holiday->write_all)))
     {
     	$error++;
@@ -83,21 +84,21 @@ if ($action == 'create')
 	    $description = trim(GETPOST('description'));
 	    $userID = GETPOST('userID');
 
-	    // Si pas de date de début
+	    // If no start date
 	    if (empty($date_debut))
 	    {
 	        header('Location: card.php?action=request&error=nodatedebut');
 	        exit;
 	    }
 
-	    // Si pas de date de fin
+	    // If no end date
 	    if (empty($date_fin))
 	    {
 	        header('Location: card.php?action=request&error=nodatefin');
 	        exit;
 	    }
 
-	    // Si date de début après la date de fin
+	    // If start date after end date
 	    if ($date_debut > $date_fin)
 	    {
 	        header('Location: card.php?action=request&error=datefin');
@@ -112,7 +113,7 @@ if ($action == 'create')
 	        exit;
 	    }
 
-	    // Si aucun jours ouvrés dans la demande
+	    // If there is no Business Days within request 
 	    $nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday);
 	    if($nbopenedday < 0.5)
 	    {
@@ -120,7 +121,7 @@ if ($action == 'create')
 	        exit;
 	    }
 
-	    // Si pas de validateur choisi
+	    // If no validator designated
 	    if ($valideur < 1)
 	    {
 	        header('Location: card.php?action=request&error=Valideur');
@@ -137,7 +138,7 @@ if ($action == 'create')
 
 		$verif = $cp->create($user);
 
-	    // Si pas d'erreur SQL on redirige vers la fiche de la demande
+	    // If no SQL error we redirect to the request card
 	    if ($verif > 0)
 	    {
 			$db->commit();
@@ -149,7 +150,7 @@ if ($action == 'create')
 		{
 	    	$db->rollback();
 
-	        // Sinon on affiche le formulaire de demande avec le message d'erreur SQL
+	        // Otherwise we display the request form with the SQL error message
 	        header('Location: card.php?action=request&error=SQL_Create&msg='.$cp->error);
 	        exit;
 	    }
@@ -169,7 +170,7 @@ if ($action == 'update')
 	else if ($starthalfday == 'afternoon') $halfday=-1;
 	else if ($endhalfday == 'morning') $halfday=1;
 
-    // Si pas le droit de modifier une demande
+    // If no right to modify a request 
     if (! $user->rights->holiday->write)
     {
         header('Location: card.php?action=request&error=CantUpdate');
@@ -181,40 +182,40 @@ if ($action == 'update')
 
 	$canedit=(($user->id == $cp->fk_user && $user->rights->holiday->write) || ($user->id != $cp->fk_user && $user->rights->holiday->write_all));
 
-	// Si en attente de validation
+	// If under validation
     if ($cp->statut == 1)
     {
-        // Si c'est le créateur ou qu'il a le droit de tout lire / modifier
+        // If this is the requestor or has read/write rights
         if ($canedit)
         {
             $valideur = $_POST['valideur'];
             $description = trim($_POST['description']);
 
-            // Si pas de date de début
+            // If no start date
             if (empty($_POST['date_debut_'])) {
                 header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=nodatedebut');
                 exit;
             }
 
-            // Si pas de date de fin
+            // If no end date
             if (empty($_POST['date_fin_'])) {
                 header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=nodatefin');
                 exit;
             }
 
-            // Si date de début après la date de fin
+            // If start date after end date
             if ($date_debut > $date_fin) {
                 header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=datefin');
                 exit;
             }
 
-            // Si pas de valideur choisi
+            // If no validator designated
             if ($valideur < 1) {
                 header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=Valideur');
                 exit;
             }
 
-            // Si pas de jours ouvrés dans la demande
+            // If there is no Business Days within request
             $nbopenedday=num_open_day($date_debut_gmt, $date_fin_gmt, 0, 1, $halfday);
             if ($nbopenedday < 0.5)
             {
@@ -237,7 +238,7 @@ if ($action == 'update')
             }
             else
            {
-                // Sinon on affiche le formulaire de demande avec le message d'erreur SQL
+                // Otherwise we display the request form with the SQL error message
                 header('Location: card.php?id='.$_POST['holiday_id'].'&action=edit&error=SQL_Create&msg='.$cp->error);
                 exit;
             }
@@ -248,7 +249,7 @@ if ($action == 'update')
     }
 }
 
-// Si suppression de la demande
+// If delete of request
 if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights->holiday->delete)
 {
 	$error=0;
@@ -260,7 +261,7 @@ if ($action == 'confirm_delete' && GETPOST('confirm') == 'yes' && $user->rights-
 
 	$canedit=(($user->id == $cp->fk_user && $user->rights->holiday->write) || ($user->id != $cp->fk_user && $user->rights->holiday->write_all));
 
-	// Si c'est bien un brouillon
+    // If this is a rough draft
 	if ($cp->statut == 1 || $cp->statut == 3)
 	{
 		// Si l'utilisateur à le droit de lire cette demande, il peut la supprimer