noalyss-commit
[Top][All Lists]
Advanced

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

[Noalyss-commit] [noalyss] 03/23: Fix CFGTVA : id cannot be a float


From: Dany De Bontridder
Subject: [Noalyss-commit] [noalyss] 03/23: Fix CFGTVA : id cannot be a float
Date: Sun, 26 Feb 2023 14:47:29 -0500 (EST)

sparkyx pushed a commit to branch master
in repository noalyss.

commit 336ba043121b9c02dae98c0988ca562d782bb166
Author: sparkyx <danydb@noalyss.eu>
AuthorDate: Tue Feb 7 17:04:11 2023 +0100

    Fix CFGTVA : id cannot be a float
---
 include/class/tva_rate_mtable.class.php | 11 +++++++++--
 include/lib/manage_table_sql.class.php  | 24 +++++++++++++++++++-----
 2 files changed, 28 insertions(+), 7 deletions(-)

diff --git a/include/class/tva_rate_mtable.class.php 
b/include/class/tva_rate_mtable.class.php
index b1e5ab62f..0eb277a8f 100644
--- a/include/class/tva_rate_mtable.class.php
+++ b/include/class/tva_rate_mtable.class.php
@@ -306,12 +306,19 @@ class Tva_Rate_MTable extends Manage_Table_SQL
         {
             $this->set_error("tva_both_side", _("Choix incorrect"));
         }
-
+        $flag = true;
+        if ( isNumber($this->table->tva_id) == 0 || $this->table->tva_id != 
round($this->table->tva_id) )
+        {
+            $this->set_error("tva_id",_("Valeur invalide"));
+            $flag=false;
+        }
         // Check if old tva_id was not overwritting something
-        if ( $this->previous_id != $this->table->tva_id && 
$cn->get_value("select count(*) from tva_rate where 
tva_id=$1",[$this->table->tva_id]) > 0)
+        if ( $flag && $this->previous_id != $this->table->tva_id && 
$cn->get_value("select count(*) from tva_rate where 
tva_id=$1",[$this->table->tva_id]) > 0)
         {
             $this->set_error("tva_id",_("Code TVA déjà utilisé"));
         }
+        // Check that tva_id is a integer not a float
+
         if ($this->count_error()!=0)
             return false;
         return true;
diff --git a/include/lib/manage_table_sql.class.php 
b/include/lib/manage_table_sql.class.php
index 75d82beb3..8776db174 100644
--- a/include/lib/manage_table_sql.class.php
+++ b/include/lib/manage_table_sql.class.php
@@ -443,12 +443,12 @@ function check()
             throw new Exception("invalid key $p_key");
 
         if (!in_array($p_value,
-                        array("text", "numeric", "numeric4","numeric6","date", 
"select", "timestamp","custom")))
+                        array("text", "numeric","numeric2", 
"numeric4","numeric6","date", "select", "timestamp","custom")))
             throw new Exception("invalid type $p_value");
 
         $this->a_type[$p_key]=$p_value;
         $this->a_select[$p_key]=$p_array;
-        if ( in_array($p_value ,array("numeric","numeric4","numeric6")) && 
$this->a_col_option[$p_key]=="") {
+        if ( in_array($p_value 
,array("numeric","numeric2","numeric4","numeric6")) && 
$this->a_col_option[$p_key]=="") {
             $this->a_col_option[$p_key]=' class="num" ';
         }
          
@@ -1027,9 +1027,13 @@ function check()
                 if (  $this->get_col_type($v) == 'text') {
                     echo td($p_row[$v],sprintf(' sorttable_customkey="X%s" 
',$p_row[$v]));
                 } elseif ( $this->get_col_type($v) == 'numeric') {
+                    echo td($p_row[$v],$this->a_col_option[$v]);
+                } elseif ( $this->get_col_type($v) == 'numeric2') {
                     echo td(nbm($p_row[$v],2),$this->a_col_option[$v]);
                 } elseif ( $this->get_col_type($v) == 'numeric4') {
                     echo td(nbm($p_row[$v],4),$this->a_col_option[$v]);
+                }  elseif ( $this->get_col_type($v) == 'numeric6') {
+                    echo td(nbm($p_row[$v],6),$this->a_col_option[$v]);
                 }  elseif ($this->get_col_type($v)=="custom") {
                     // For custom col
                     echo $this->display_row_custom($v,$p_row[$v],$pk_id);
@@ -1074,8 +1078,10 @@ function check()
                     // For custom col
                     echo $this->display_row_custom($v,$p_row[$v],$pk_id);
                 } elseif ( $this->get_col_type($v) == 'numeric') {
+                    echo td($p_row[$v],$this->a_col_option[$v]);
+                } elseif ( $this->get_col_type($v) == 'numeric2') {
                     echo td(nbm($p_row[$v],2),$this->a_col_option[$v]);
-                } elseif ( $this->get_col_type($v) == 'numeric4') {
+                }elseif ( $this->get_col_type($v) == 'numeric4') {
                     echo td(nbm($p_row[$v],4),$this->a_col_option[$v]);
                 }elseif ( $this->get_col_type($v) == 'numeric6') {
                     echo td(nbm($p_row[$v],6),$this->a_col_option[$v]);
@@ -1182,10 +1188,18 @@ function check()
                         $text->size=$min_size;
                         echo $text->input();
                     }
-                    elseif ($this->a_type[$key]=="numeric") // number 2 
decimale
+                    elseif ($this->a_type[$key]=="numeric") // number from db
+                    {
+                        $text=new INum($key);
+                        $text->value=$value;
+                        
$min_size=(noalyss_strlen($value)<10)?10:strlen($value)+1;
+                        $text->size=$min_size;
+                        echo $text->input();
+                    }
+                    elseif ($this->a_type[$key]=="numeric2") // number from db
                     {
                         $text=new INum($key);
-                        $text->prec=2;
+                        $this->prec=2;
                         $text->value=round($value??"0",2);
                         
$min_size=(noalyss_strlen($value)<10)?10:strlen($value)+1;
                         $text->size=$min_size;



reply via email to

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