F
Mascara valor monetário
Bom dia, já procurei em diversos links do fórum aqui, porém não encontrei algo que dê certo ainda, meu problema é o seguinte, quero colocar a mascara de valor monetário, porém ao salvar no banco de dados oracle sempre dá invalid number, acho que precisaria colocar algo dentro do onSave, mas ainda não encontrei o que...
Se puderem me ajudar ficarei grato.
Se puderem me ajudar ficarei grato.
Obrigado por responder Ivan, eu tentei isso, ele realmente funciona, porém na hora de salvar aparece o erro (ORA-01722: invalid number).
No bd o formato é NUMBER(12,4).
Não trabalho com o Oracle, mas acho que se no Bom dia! está setado 4 casas decimais, vc deve enviar 4 casas decimais.
Tenta isso ou no onSave, crie uma função pra sempre enviar esses dados com 4 casas decimais, talvez isso die certo.
?php
$valor->setNumericMask(4,',','.', true);
?>
eita corretor do diabo rsrs não foi "bom dia" que eu quis dizer, foi "BD"
Cara, verifique o formato que chega lá no seu onSave para esse campo e ajuste com a função PHP str_replace(...) para o formato que o ORACLE recebe.
Pesquise também a forma de entrada desse tipo de dado usando especificamente o PDO, pois, é justamente nele quem você deve focar nesse caso.
Eu achei aqui uma recomendação para formatar o valor no formato que você precisa e fazer uma conversão tipo: $valor = (float) $valor_string_decimal_formatado.
Espero ter ajudado.
Obrigado por tentar ajudar pessoal, mas ainda não consegui. Vou mostrar como tem que ser e como está chegando.
Eu pegando o valor no input dessa forma:
quando clico para salvar no formulário na função AddMoneyItemMoney, ele está sendo salvo dessa maneira ==> 1234.56 porém no banco somente aceita se fosse 1234,56 com virgula, ai minha duvida é se eu tenho que colocar um replace ou number_format na função AddMoneyItemMoney ou no onSave, e como colocar...
Se puderem me dar uma luz ficarei muito agradecido. rs
Felipe,
Já tentou colocar o replace antes do store do objeto no OnSave ?
no método OnSave
....
$object->valorMoney = str_replace('.' , ',' , $object->valorMoney);
$object->store();
Cara, você não acha que é muito complicado? Acredito que haja coisas mais interessantes que você pode fazer na Internet, e negociar é uma delas. Acredito que isso pode ajudá-lo a ganhar mais dinheiro do que isso, então recomendo que você verifique esta página https://olymptrade.broker/pt-br/olymp-trade-login/ , leia todas as informações necessárias sobre negociação e comece a ganhar dinheiro.