PP
Calculos dinamicos em formulário
Boa Tarde
Estou tentando executar alguns cálculos dinâmicos em um formulário, porem quando utilizo multiplicações ou valores fracionados o calculo não acontece, abaixo segue as funções para calculo.
public static function onCalcula($param)
{
$leitura_anterior = (float) str_replace('.', ',', $param['leitura_anterior']);
$leitura_atual = (float) str_replace('.', ',', $param['leitura_atual']);
$obj->consumo = number_format( $leitura_atual - $leitura_anterior);
//$obj->total = number_format($consumo * $valor_metro);
TForm::sendData('form_DespesaAguaImovel', $obj);
}
public static function onCalculaTotal($param)
{
$valor_metro = (float) str_replace('.', ',', $param['valor_metro']);
$consumo = (float) str_replace('.', ',', $param['consumo']);
$tarifa_basica = (float) str_replace('.', ',', $param['tarifa_basica']);
$obj->total = (real) number_format(($consumo * $valor_metro) + $tarifa_basica);
TForm::sendData('form_DespesaAguaImovel', $obj);
}
Grato pela atenção
Estou tentando executar alguns cálculos dinâmicos em um formulário, porem quando utilizo multiplicações ou valores fracionados o calculo não acontece, abaixo segue as funções para calculo.
public static function onCalcula($param)
{
$leitura_anterior = (float) str_replace('.', ',', $param['leitura_anterior']);
$leitura_atual = (float) str_replace('.', ',', $param['leitura_atual']);
$obj->consumo = number_format( $leitura_atual - $leitura_anterior);
//$obj->total = number_format($consumo * $valor_metro);
TForm::sendData('form_DespesaAguaImovel', $obj);
}
public static function onCalculaTotal($param)
{
$valor_metro = (float) str_replace('.', ',', $param['valor_metro']);
$consumo = (float) str_replace('.', ',', $param['consumo']);
$tarifa_basica = (float) str_replace('.', ',', $param['tarifa_basica']);
$obj->total = (real) number_format(($consumo * $valor_metro) + $tarifa_basica);
TForm::sendData('form_DespesaAguaImovel', $obj);
}
Grato pela atenção
Pablo, veja:
Você deve fazer o replace do ponto pela vírgula por último, somente na hora da exibição, pois a vírgula não é reconhecida como separador decimal