Commit 09f7e6c1 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Formules : gestion du LEFT et des %

parent ba323424
Loading
Loading
Loading
Loading
+1 −1
Changes for composer.json: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -17,7 +17,7 @@
        "unicaen/code"                                : "6.0.8",
        "unicaen/import"                              : "6.0.1",
        "unicaen/tbl"                                 : "6.0.1",
        "unicaen/open-document"                       : "6.0.1",
        "unicaen/open-document"                       : "6.0.2",
        "unicaen/siham"                               : "6.0.2",
        "unicaen/vue"                                 : "dev-master",
        "laminas/laminas-cache-storage-adapter-memory": "2.1.x-dev",
+16 −0
Changes for module/Application/src/Model/FormuleCalcul.php: 16 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -875,6 +875,7 @@ END FORMULE_" . $this->getName() . ";";

        $trads = [
            '&' => '||',
            '%' => '/ 100',
        ];

        $op = $term['name'];
@@ -975,6 +976,7 @@ END FORMULE_" . $this->getName() . ";";
            'SUMIF'             => 'traductionFunctionSumIf',
            'MID'               => 'traductionFunctionMid',
            'COM.MICROSOFT.IFS' => 'traductionFunctionIfs',
            'LEFT'              => 'traductionFunctionLeft',
        ];

        if (array_key_exists($term['name'], $functions)) {
@@ -1227,6 +1229,20 @@ END FORMULE_" . $this->getName() . ";";



    private function traductionFunctionLeft(array &$expr, int $i): string
    {
        $term = $expr[$i];

        $string = $this->traductionExpr($term['exprs'][0]);
        $length = $this->traductionExpr($term['exprs'][1]);

        $plsql = "SUBSTR($string, 1, $length)";

        return $plsql;
    }



    private function indent(string $plsql, int $levels = 1): string
    {