From 2c4a04ac8adf1331c0b0d6abf5a9d806c3433067 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Sat, 1 Oct 2016 19:23:44 +0200
Subject: [PATCH] FIX #5818

---
 htdocs/contrat/class/contrat.class.php | 36 ++++++++++++--------------
 1 file changed, 16 insertions(+), 20 deletions(-)

diff --git a/htdocs/contrat/class/contrat.class.php b/htdocs/contrat/class/contrat.class.php
index f88afb0eb07..0a26bfb748c 100644
--- a/htdocs/contrat/class/contrat.class.php
+++ b/htdocs/contrat/class/contrat.class.php
@@ -904,6 +904,7 @@ class Contrat extends CommonObject
 		}
 		if (! $paramsok) return -1;
 
+		
 		$this->db->begin();
 
 		$now=dol_now();
@@ -1179,7 +1180,6 @@ class Contrat extends CommonObject
 		$error=0;
 
 		// Clean parameters
-
 		if (isset($this->ref)) $this->ref=trim($this->ref);
 		if (isset($this->ref_customer)) $this->ref_customer=trim($this->ref_customer);
 		if (isset($this->ref_supplier)) $this->ref_supplier=trim($this->ref_supplier);
@@ -1197,14 +1197,11 @@ class Contrat extends CommonObject
 		if (isset($this->import_key)) $this->import_key=trim($this->import_key);
 		//if (isset($this->extraparams)) $this->extraparams=trim($this->extraparams);
 
-
-
 		// Check parameters
 		// Put here code to add a control on parameters values
 
 		// Update request
-		$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET";
-
+    	$sql = "UPDATE ".MAIN_DB_PREFIX."contrat SET";
 		$sql.= " ref=".(isset($this->ref)?"'".$this->db->escape($this->ref)."'":"null").",";
 		$sql.= " ref_customer=".(isset($this->ref_customer)?"'".$this->db->escape($this->ref_customer)."'":"null").",";
 		$sql.= " ref_supplier=".(isset($this->ref_supplier)?"'".$this->db->escape($this->ref_supplier)."'":"null").",";
@@ -1225,8 +1222,6 @@ class Contrat extends CommonObject
 		$sql.= " note_public=".(isset($this->note_public)?"'".$this->db->escape($this->note_public)."'":"null").",";
 		$sql.= " import_key=".(isset($this->import_key)?"'".$this->db->escape($this->import_key)."'":"null")."";
 		//$sql.= " extraparams=".(isset($this->extraparams)?"'".$this->db->escape($this->extraparams)."'":"null")."";
-
-
 		$sql.= " WHERE rowid=".$this->id;
 
 		$this->db->begin();
@@ -1300,19 +1295,18 @@ class Contrat extends CommonObject
 			$this->db->begin();
 
 			// Clean parameters
-			$remise_percent=price2num($remise_percent);
-			$qty=price2num($qty);
-			if (! $qty) $qty=1;
-			if (! $info_bits) $info_bits=0;
-			if (! $pu_ht)  $pu_ht=0;
-			if (! $pu_ttc) $pu_ttc=0;
-
 			$pu_ht=price2num($pu_ht);
 			$pu_ttc=price2num($pu_ttc);
 			$pa_ht=price2num($pa_ht);
 			$txtva=price2num($txtva);
 			$txlocaltax1=price2num($txlocaltax1);
 			$txlocaltax2=price2num($txlocaltax2);
+			$remise_percent=price2num($remise_percent);
+			$qty=price2num($qty);
+			if (empty($qty)) $qty=1;
+			if (empty($info_bits)) $info_bits=0;
+			if (empty($pu_ht) || ! is_numeric($pu_ht))  $pu_ht=0;
+			if (empty($pu_ttc)) $pu_ttc=0;
 
 			if ($price_base_type=='HT')
 			{
@@ -1380,15 +1374,17 @@ class Contrat extends CommonObject
 			if ($date_start > 0) { $sql.= ",date_ouverture_prevue"; }
 			if ($date_end > 0)   { $sql.= ",date_fin_validite"; }
 			$sql.= ", fk_unit";
-			$sql.= ") VALUES ($this->id, '', '" . $this->db->escape($desc) . "',";
+			$sql.= ") VALUES (";
+			$sql.= $this->id.", '', '" . $this->db->escape($desc) . "',";
 			$sql.= ($fk_product>0 ? $fk_product : "null").",";
-			$sql.= " '".$qty."',";
-			$sql.= " '".$txtva."',";
-			$sql.= " '".$txlocaltax1."',";
-			$sql.= " '".$txlocaltax2."',";
+			$sql.= " ".$qty.",";
+			$sql.= " ".$txtva.",";
+			$sql.= " ".$txlocaltax1.",";
+			$sql.= " ".$txlocaltax2.",";
 			$sql.= " '".$localtax1_type."',";
 			$sql.= " '".$localtax2_type."',";
-			$sql.= " ".price2num($remise_percent).",".price2num($pu_ht).",";
+			$sql.= " ".price2num($remise_percent).",";
+			$sql.= " ".price2num($pu_ht).",";
 			$sql.= " ".price2num($total_ht).",".price2num($total_tva).",".price2num($total_localtax1).",".price2num($total_localtax2).",".price2num($total_ttc).",";
 			$sql.= " '".$info_bits."',";
 			$sql.= " ".price2num($price).",".price2num($remise).",";
-- 
GitLab