diff --git a/htdocs/compta/resultat/result.php b/htdocs/compta/resultat/result.php index 3f3e14e2d61..856eb8a5fe8 100644 --- a/htdocs/compta/resultat/result.php +++ b/htdocs/compta/resultat/result.php @@ -339,60 +339,81 @@ if ($modecompta == 'CREANCES-DETTES') { } $result = strtr($formula, $vars); + $result = str_replace('--', '+', $result); - //var_dump($result); - //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, '1'); - //var_dump($r); - - print ''.price($r).''; - - // Year N - $code = $cat['code']; // code of categorie ('VTE', 'MAR', ...) - $sommes[$code]['NP'] += $r; - - // Current fiscal year (N) - if (is_array($sommes) && !empty($sommes)) { - foreach ($sommes as $code => $det) { - $vars[$code] = $det['N']; - } - } - - $result = strtr($formula, $vars); - - //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, 1); - - print ''.price($r).''; - $sommes[$code]['N'] += $r; - - // Detail by month - foreach ($months as $k => $v) { - if (($k + 1) >= $date_startmonth) { - foreach ($sommes as $code => $det) { - $vars[$code] = $det['M'][$k]; + if (preg_match('/[a-z]/i', $result)) { + $r = 'Error bad formula: '.$result; + $rshort = 'Err'; + print ''.$rshort.''; + print ''.$rshort.''; + // Detail by month + foreach ($months as $k => $v) { + if (($k + 1) >= $date_startmonth) { + print ''.$rshort.''; } - $result = strtr($formula, $vars); - - //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, 1); - - print ''.price($r).''; - $sommes[$code]['M'][$k] += $r; } - } - foreach ($months as $k => $v) { - if (($k + 1) < $date_startmonth) { - foreach ($sommes as $code => $det) { - $vars[$code] = $det['M'][$k]; + foreach ($months as $k => $v) { + if (($k + 1) < $date_startmonth) { + print ''.$rshort.''; } - $result = strtr($formula, $vars); + } + } else { + //var_dump($result); + //$r = $AccCat->calculate($result); + $r = dol_eval($result, 1, 1, '1'); + //var_dump($r); - //$r = $AccCat->calculate($result); - $r = dol_eval($result, 1, 1, 1); + print ''.price($r).''; - print ''.price($r).''; - $sommes[$code]['M'][$k] += $r; + // Year N + $code = $cat['code']; // code of categorie ('VTE', 'MAR', ...) + $sommes[$code]['NP'] += $r; + + // Current fiscal year (N) + if (is_array($sommes) && !empty($sommes)) { + foreach ($sommes as $code => $det) { + $vars[$code] = $det['N']; + } + } + + $result = strtr($formula, $vars); + + //$r = $AccCat->calculate($result); + $r = dol_eval($result, 1, 1, 1); + + print ''.price($r).''; + $sommes[$code]['N'] += $r; + + // Detail by month + foreach ($months as $k => $v) { + if (($k + 1) >= $date_startmonth) { + foreach ($sommes as $code => $det) { + $vars[$code] = $det['M'][$k]; + } + $result = strtr($formula, $vars); + + //$r = $AccCat->calculate($result); + $r = dol_eval($result, 1, 1, 1); + + print ''.price($r).''; + $sommes[$code]['M'][$k] += $r; + } + } + + + foreach ($months as $k => $v) { + if (($k + 1) < $date_startmonth) { + foreach ($sommes as $code => $det) { + $vars[$code] = $det['M'][$k]; + } + $result = strtr($formula, $vars); + + //$r = $AccCat->calculate($result); + $r = dol_eval($result, 1, 1, 1); + + print ''.price($r).''; + $sommes[$code]['M'][$k] += $r; + } } }