diff --git a/htdocs/commande/commande.class.php b/htdocs/commande/commande.class.php index 509c83a7697..a2393413c26 100644 --- a/htdocs/commande/commande.class.php +++ b/htdocs/commande/commande.class.php @@ -19,12 +19,14 @@ * $Id$ * $Source$ */ + /** \file htdocs/commande/commande.class.php \ingroup commande \brief Fichier des classes de commandes \version $Revision$ */ + require_once(DOL_DOCUMENT_ROOT."/product.class.php"); /** @@ -734,18 +736,19 @@ class Commande */ function update_line($rowid, $desc, $pu, $qty, $remise_percent=0, $tva_tx) { - dolibarr_syslog('Commande::UpdateLine'); + dolibarr_syslog("Commande::UpdateLine $rowid, $desc, $pu, $qty, $remise_percent=0, $tva_tx"); if ($this->brouillon) { $this->db->begin(); - if (strlen(trim($qty))==0) - { - $qty=1; - } + + // Nettoyage paramètres + $pu=price2num($pu); + if (strlen(trim($qty))==0) $qty=1; $remise = 0; - $price = ereg_replace(',','.',$pu); + $price = $pu; $subprice = $price; - if (trim(strlen($remise_percent)) > 0) + $remise_percent=trim($remise_percent); + if ($remise_percent > 0) { $remise = round(($pu * $remise_percent / 100), 2); $price = $pu - $remise; @@ -756,7 +759,7 @@ class Commande } $sql = 'UPDATE '.MAIN_DB_PREFIX.'commandedet'; - $sql.= " SET description='".addslashes($desc)."',price=$price,subprice=$subprice,"; + $sql.= " SET description='".addslashes($desc)."',price='$price',subprice='$subprice',"; $sql.= " remise=$remise,remise_percent=$remise_percent,qty=$qty,tva_tx='".$tva_tx."'"; $sql.= ' WHERE rowid = '.$rowid; diff --git a/htdocs/lib/functions.inc.php b/htdocs/lib/functions.inc.php index b7aa25561a8..af0952548cc 100644 --- a/htdocs/lib/functions.inc.php +++ b/htdocs/lib/functions.inc.php @@ -1524,10 +1524,10 @@ function print_duree_select($prefix) /** - \brief Fonction qui retourne un montant monétaire formaté - \param amount montant a formater - \param html formatage html ou pas (0 par defaut) - \remarks fonction utilisée dans les pdf et les pages html + \brief Fonction qui retourne un montant monétaire formaté + \remarks Fonction utilisée dans les pdf et les pages html + \param amount montant a formater + \param html formatage html ou pas (0 par defaut) */ function price($amount, $html=0) @@ -1546,6 +1546,19 @@ function price($amount, $html=0) } +/** + \brief Fonction qui retourne un numérique depuis un montant formaté + \remarks Fonction à appeler sur montants saisi avant un insert + \param amount montant a formater +*/ +function price2num($amount) +{ + $amount=ereg_replace(',','.',$amount); + $amount=ereg_replace(' ','',$amount); + return $amount; +} + + /** \brief Fonction qui convertit des euros en francs \param euros somme en euro à convertir