From 82dda362c56fe4b7dc3f10e0250dc4372ae7218f Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Wed, 23 May 2012 10:50:38 +0200
Subject: [PATCH] Fix: [ bug #409 ] List of vat rates for supplier prices must
 use the seller country.

---
 .../install/mysql/migration/3.1.0-3.2.0.sql   |  2 ++
 htdocs/product/fournisseurs.php               | 19 +++++++++++--------
 2 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/htdocs/install/mysql/migration/3.1.0-3.2.0.sql b/htdocs/install/mysql/migration/3.1.0-3.2.0.sql
index 64db6d9bd87..3f0de9e92d3 100755
--- a/htdocs/install/mysql/migration/3.1.0-3.2.0.sql
+++ b/htdocs/install/mysql/migration/3.1.0-3.2.0.sql
@@ -452,3 +452,5 @@ ALTER TABLE llx_facture_fourn ADD COLUMN extraparams varchar(255) AFTER import_k
 ALTER TABLE llx_boxes ADD COLUMN maxline integer NULL;
 
 ALTER TABLE llx_commande_fournisseur ADD COLUMN date_livraison date NULL;
+
+ALTER TABLE llx_product_fournisseur_price MODIFY fk_product_fournisseur integer DEFAULT 0;
diff --git a/htdocs/product/fournisseurs.php b/htdocs/product/fournisseurs.php
index 5a06d6fae25..0194d896f82 100644
--- a/htdocs/product/fournisseurs.php
+++ b/htdocs/product/fournisseurs.php
@@ -1,6 +1,6 @@
 <?php
 /* Copyright (C) 2001-2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2011 Laurent Destailleur  <eldy@users.sourceforge.net>
+ * Copyright (C) 2004-2012 Laurent Destailleur  <eldy@users.sourceforge.net>
  * Copyright (C) 2004      Eric Seigne          <eric.seigne@ryxeo.com>
  * Copyright (C) 2005-2012 Regis Houssin        <regis@dolibarr.fr>
  * Copyright (C) 2010-2011 Juanjo Menent        <jmenent@2byte.es>
@@ -92,7 +92,7 @@ if ($action == 'updateprice' && $_POST["cancel"] <> $langs->trans("Cancel"))
     $ref_fourn=GETPOST("ref_fourn");
     if (empty($ref_fourn)) $ref_fourn=GETPOST("search_ref_fourn");
     $quantity=GETPOST("qty");
-    $tva_tx=GETPOST('tva_tx','alpha');
+    $tva_tx=price2num(GETPOST('tva_tx','alpha'));
 
 	if (empty($quantity))
 	{
@@ -282,7 +282,7 @@ if ($id || $ref)
 					$events=array();
 					$events[]=array('method' => 'getVatRates', 'url' => dol_buildpath('/core/ajax/vatrates.php',1), 'htmlname' => 'tva_tx', 'params' => array());
 					print $form->select_company(GETPOST("id_fourn"),'id_fourn','fournisseur=1',1,0,0,$events);
-					
+
 					if (is_object($hookmanager))
 					{
 						$parameters=array('filtre'=>"fournisseur=1",'html_name'=>'id_fourn','selected'=>GETPOST("id_fourn"),'showempty'=>1,'prod_id'=>$product->id);
@@ -299,14 +299,17 @@ if ($id || $ref)
 				}
 				else
 				{
-					print '<input class="flat" name="ref_fourn" size="12" value="'.($_POST["ref_fourn"]?$_POST["ref_fourn"]:'').'">';
+					print '<input class="flat" name="ref_fourn" size="12" value="'.(GETPOST("ref_fourn")?GETPOST("ref_fourn"):'').'">';
 				}
 				print '</td>';
 				print '</tr>';
-				
+
 				// Vat rate
 				print '<tr><td class="fieldrequired">'.$langs->trans("VATRate").'</td>';
-				print '<td colspan="3">'.$form->load_tva('tva_tx',$product->tva_tx,$supplier,$mysoc).'</td></tr>';
+				print '<td colspan="3">';
+				//print $form->load_tva('tva_tx',$product->tva_tx,$supplier,$mysoc);    // Do not use list here as it may be any vat rates for any country
+				print '<input type="text" class="flat" size="5" name="tva_tx" value="'.vatrate(GETPOST("tva_tx")?GETPOST("tva_tx"):$product->tva_tx).'">';
+				print '</td></tr>';
 
 				// Availability
 				if (! empty($conf->global->FOURN_PRODUCT_AVAILABILITY))
@@ -332,7 +335,7 @@ if ($id || $ref)
 					print '<input class="flat" name="qty" size="5" value="'.$quantity.'">';
 				}
 				print '</td>';
-				
+
 				// Price qty min
 				print '<td class="fieldrequired">'.$langs->trans("PriceQtyMin").'</td>';
 				print '<td><input class="flat" name="price" size="8" value="'.($_POST["price"]?$_POST["price"]:(isset($product->fourn_price)?price($product->fourn_price):'')).'">';
@@ -420,7 +423,7 @@ if ($id || $ref)
 						print '<td align="right">';
 						print $productfourn->fourn_qty;
 						print '</td>';
-						
+
 						// VAT rate
 						print '<td align="right">';
 						print vatrate($productfourn->fourn_tva_tx,true);
-- 
GitLab