noalyss-commit
[Top][All Lists]
Advanced

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

[Noalyss-commit] [noalyss] 01/03: Fix Bug : Prévision , erreur si on sou


From: Dany De Bontridder
Subject: [Noalyss-commit] [noalyss] 01/03: Fix Bug : Prévision , erreur si on soustrait un montant négatif
Date: Fri, 13 Aug 2021 13:34:45 -0400 (EDT)

sparkyx pushed a commit to branch master
in repository noalyss.

commit 7dfe35c8e89c645faa4bedf98b71a1ff3f499ef8
Author: Dany wm De Bontridder <danydb@noalyss.eu>
AuthorDate: Fri Aug 13 19:27:24 2021 +0200

    Fix Bug : Prévision , erreur si on soustrait un montant négatif
---
 include/lib/impress.class.php                 | 10 ++++++----
 unit-test/include/class/impressTest.class.php |  1 +
 2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/include/lib/impress.class.php b/include/lib/impress.class.php
index e597938..6089d96 100644
--- a/include/lib/impress.class.php
+++ b/include/lib/impress.class.php
@@ -107,7 +107,7 @@ class Impress
                 $amount=\Impress::compute_amount($p_cn,$line,$cond." 
".$p_sql,$cond_anc." ".$p_sql);
       
 
-                $p_formula=str_replace($x[0], $amount, $p_formula);
+                $p_formula=str_replace($x[0],"--(". $amount.")", $p_formula);
             }
         }
 
@@ -119,9 +119,11 @@ class Impress
              */
             $p_formula=remove_divide_zero($p_formula);
             $p_formula="\$result=".$p_formula.";";
-            
-            eval("$p_formula");
-
+            try {
+                eval("$p_formula");
+            } catch(Exception $e) {
+                return array("desc"=>"erreur","montant"=>'0');
+            }
             while (preg_match("/\[([0-9]+)(-[Tt]*)\]/", trim($p_label), $e)==1)
             {
                 $nom="!!".$e[1]."!!";
diff --git a/unit-test/include/class/impressTest.class.php 
b/unit-test/include/class/impressTest.class.php
index 62a5e87..c5ea2a7 100644
--- a/unit-test/include/class/impressTest.class.php
+++ b/unit-test/include/class/impressTest.class.php
@@ -247,6 +247,7 @@ class ImpressTest extends TestCase
              array("sum FOURNI1 Débit", "{FOURNI1-d}",221.43),
              array("sum FOURNI1 Débit", "{NOTEXIST-d}",0),
              array("sum FOURNI1 Débit", "{{NOTEXIST-d}}",0),
+             array("Double minus sign throw an error ParseError: syntax error, 
unexpected '--' (T_DEC) ", "[6%-S]-[6%-S]",0),
         );
         // ------ Periode ----------
         foreach ($a_formula as $formula) 



reply via email to

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