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->prec=2; + $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); + $this->prec=2; $text->value=round($value??"0",2); $min_size=(noalyss_strlen($value)<10)?10:strlen($value)+1; $text->size=$min_size;