dolibarr-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Dolibarr-dev] Bug arrondis prix unitaires


From: Yannick Warnier
Subject: Re: [Dolibarr-dev] Bug arrondis prix unitaires
Date: Thu, 29 Mar 2007 17:35:44 +0100

Le mardi 27 mars 2007 à 10:22 +0200, Rodolphe Quiedeville a écrit :
> Yannick Warnier a écrit :
> > Salut,
> > 
> > Pour ceux qui n'ont pas suivi le bug 17811
> > http://savannah.nongnu.org/bugs/?17811
> > 
> > Je propose de faire la modification suivante dans le code, modification
> > qui pourrait (si mal configurée) apporter pas mal d'effets de bord dans
> > Dolibarr.
> > 
> > Le problème étant que les décimales ne sont pas toujours arrondies comme
> > on le voudrait, et que le nombre de décimales à utiliser pour les
> > calculs intermédiaires dépend souvent du type de produits que l'on veut
> > vendre.
> > 
> > Ainsi, la solution que je propose est la suivante:
> > 1) on ajoute deux variables de configuration globales (modifiables
> > uniquement par l'admin) qui donnent un nombre de décimales par défaut
> > selon le type de montant:
> > $show_3_decimals_if_smaller_than = 1; 
> > $show_4_decimals_if_smaller_than = 0.5;
> > 
> > 2) le code de la fonction price(), qui est l'endroit où l'on effectue
> > les arrondis jusqu'ici, deviendrait du type:
> > 
> > ...
> > // On pose par defaut 2 decimales 
> > $decimal = 2; 
> > $amount = ereg_replace(',','.',$amount); 
> > $abs = abs($amount); 
> > if($abs < $show_4_decimals_if_smaller_than){ 
> >   $decimal = 4; 
> > }elseif($abs < $show_3_decimals_if_smaller_than){ 
> >   $decimal = 3; 
> > }
> > // ensuite la fonction price() arrondit en fonction de $decimal
> > ...
> > 
> > 3) On pourrait également (dans un second temps) proposer des paramètres
> > à la fonction price() qui permettent de modifier le nombre de chiffres
> > après la virgule au cas par cas.
> > 
> > Je ne pense pas qu'il y ait une seule monnaie au monde qui propose une
> > écriture à plus de 4 décimales mais je me trompe peut-être...
> 
> Attention à bien différencier la notion de décimale dans le prix final 
> et le prix unitaire. 5 décimales sont intéressantes quand on vent des 
> produits par 100 000 pièces, la cinquième décimale devient alors une 
> dizaine dans le prix finales.
> 
> Mes 2 cents

Merci pour tes 2 cents.

Je n'ai pas eu le temps de faire le développement en soi et je serai
incapable de le faire avant dimanche, mais que ça n'empêche pas qui veut
de faire une 2.1 RC1 ou même une release stable.

Je réglerai le problème dimanche, promis.

Yannick





reply via email to

[Prev in Thread] Current Thread [Next in Thread]