Boa tarde,
Senhores, eu possuo uma tela onde o usuário informa o valor total e a quantidade de prestações.
Ao informar a quantidade de prestações, o sistema calcula o valor da parcela.
chama o listener no bean:
<p:outputLabel for="qtdeParcela" value="#{bundle.qtdeParcela}" />
<p:inputText id="qtdeParcela" value="#{contratoBean.contrato.qtdeParcela}" maxlength="2" requiredMessage="#{bundle.qtdeParcela_required}" required="true" style="width:100px;">
<f:validateLongRange minimum="1" maximum="12"/>
<p:ajax event="blur" listener="#{contratoBean.calculaValorParcela()}" update="valorParcela"></p:ajax>
</p:inputText>
método no bean:
public void calculaValorParcela(){
if(this.contrato.getValorNegociado() == null || this.contrato.getQtdeParcela() == null)
return;
BigDecimal parcela = BigDecimal.valueOf(this.contrato.getValorNegociado().doubleValue() / this.contrato.getQtdeParcela());
this.contrato.setValorParcela(parcela);
}
Até ai tudo legal, está calculando certinho. Pensando em facilitar um pouco e melhorar a usabilidade da aplicação, acrescentei o código abaixo para formatar automaticamente os valores inseridos pelo usuario,
mas aparentemente, essa função formatadora está causando algum problema, pois o valor da prestação não calcula mais.
<script type="text/javascript">
$(document).ready(function(){
$("input.dinheiro").maskMoney({showSymbol:true, symbol:"R$", decimal:",", thousands:""});
$("input.porcentagem").maskMoney({showSymbol:true, symbol:"%", decimal:",", thousands:""});
});
</script>
Continua chamando o Bean, caso tenha sido o valor negociado que tenha disparado a ação, o valor vai, caso tenha sido a quantidade de parcelas, o valor da parcela vai, sempre assim, ou vai um ou outro, parece que o ready está matando o binding.
se alguém tiver alguma idéia, me ajude!