[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)