Commit 075fe6ce2f4dcb3e03358d163396f5d73f401fc5

Authored by Lucas D'Avila
1 parent 8541bcd9
Exists in master

Alterado tabela de arredondamento, para somente arrendondar notas caso tenha sid…

…o definido opções de arredondamento, do contrário a nota somente será limitado a 2 casas decimais sem qualquer arredondamento
ieducar/modules/TabelaArredondamento/Model/Tabela.php
@@ -31,6 +31,7 @@ @@ -31,6 +31,7 @@
31 31
32 require_once 'CoreExt/Entity.php'; 32 require_once 'CoreExt/Entity.php';
33 require_once 'App/Model/IedFinder.php'; 33 require_once 'App/Model/IedFinder.php';
  34 +require_once 'lib/Portabilis/Utils/Float.php';
34 35
35 /** 36 /**
36 * TabelaArredondamento_Model_Tabela class. 37 * TabelaArredondamento_Model_Tabela class.
@@ -117,24 +118,32 @@ class TabelaArredondamento_Model_Tabela extends CoreExt_Entity @@ -117,24 +118,32 @@ class TabelaArredondamento_Model_Tabela extends CoreExt_Entity
117 . 'arredondamento deve estar entre 0 e 10.'); 118 . 'arredondamento deve estar entre 0 e 10.');
118 } 119 }
119 120
120 - if (0 == count($this->_tabelaValores)) {  
121 - $this->_tabelaValores = $this->getDataMapper()->findTabelaValor($this);  
122 - }  
123 -  
124 - // Multiplicador para transformar os números em uma escala inteira.  
125 - $scale = pow(10, $this->_precision); 121 + /* Inicializa o retorno com o valor recebido (limitando a para uma casa decimal),
  122 + o qual será retornado caso não tenha sido definido opcoes na tabela de arredondamento,
  123 + do contrário será arredondado a nota conforme opções da tabela de arredondamento. */
  124 + $return = Portabilis_Utils_Float::limitDecimal($value, array('limit' => 1));
126 125
127 - // Escala o valor para se tornar comparável  
128 - $value = $this->getFloat($value) * $scale; 126 + // carrega tabela de arredondamento, caso ainda não tenha sido carregada.
  127 + if (0 == count($this->_tabelaValores))
  128 + $this->_tabelaValores = $this->getDataMapper()->findTabelaValor($this);
129 129
130 - $return = 0;  
131 - foreach ($this->_tabelaValores as $tabelaValor) {  
132 - if ($value >= ($tabelaValor->valorMinimo * $scale) &&  
133 - $value <= ($tabelaValor->valorMaximo * $scale)) { 130 + // somente será arredondado a nota, caso tenha sido definido opções de arredondamento, na respectiva tabela.
  131 + if (count($this->_tabelaValores) > 0) {
  132 + // Multiplicador para transformar os números em uma escala inteira.
  133 + $scale = pow(10, $this->_precision);
  134 +
  135 + // Escala o valor para se tornar comparável
  136 + $value = $this->getFloat($value) * $scale;
  137 +
  138 + $return = 0;
  139 + foreach ($this->_tabelaValores as $tabelaValor) {
  140 + if ($value >= ($tabelaValor->valorMinimo * $scale) &&
  141 + $value <= ($tabelaValor->valorMaximo * $scale)) {
  142 + $return = $tabelaValor->nome;
  143 + break;
  144 + }
134 $return = $tabelaValor->nome; 145 $return = $tabelaValor->nome;
135 - break;  
136 } 146 }
137 - $return = $tabelaValor->nome;  
138 } 147 }
139 148
140 return $return; 149 return $return;