Tenho a classe funcionario, e na minha página jsf posso alterar o salário de funcionarios…
Então fiz a página com um rich:extandedDataTable e utilizei o inplaceInput para poder realizar as alterações…
<rich:column sortBy="#{objeto.salarioMensal}" filterBy="#{objeto.salarioMensal}"
label="Salário Fixo (R$)" filterEvent="onkeyup" width="200px" style="text-align:center">
<f:facet name="header">
<h:outputText value="Salário Fixo (R$)" />
</f:facet>
<rich:inplaceInput id="salarioFixo"
viewClass="salarioFixo" onfocus="setPriceMasc(this)"
changedClass="salarioFixo" layout="block"
value="#{objeto.salarioMensal}" openOnEdit="true"
editEvent="ondblclick">
<a4j:support event="onviewactivated" reRender="salarioFixo"
action="#{mbManutencaoMontagemFolhaPagamento.addToList(objeto)}" />
</rich:inplaceInput>
</rich:column>
Chamo o método via ajax para adicionar o objeto a uma lista de espera, pois os dados só serão salvos no banco de dados após o úsuario apertar o botao que chama o método responssável por alterar os dados…
[code]public void addToList(Funcionario obj) {
//Adicionando a minha list
getListaFuncionariosAlterar().add(obj);
/**
* Até aqui o valor do bigdecimal ainda continua normal
* Por exemplo se setei no jsf 0.05 ele continua 0.05
*/
}[/code]
[size=18]
Quando o usúario chama o método de realizar as alterações o BigDecimal passa de 0.05 para 5[/size]
public void alterarDados(){
for(Funcionario obj : getListaFuncionariosAlterar()){
getFuncionarioService().merge(obj);
}
}