Pessoal, preciso criar uma função para, a partir do custo calcular lucro e o preço de venda, digitando uma margem, com variaveis BigDecimal, enquanto digito numa pagina em xhtml.
Pq tem que ser numa página xhtml?
O cálculo independe de onde vai ser a saída, fera. O cálculo não muda.
Estou desenvolvendo um projeto java web com primefaces.
Você já tem a tela criada? Se sim, vc sabe como se comunicar com um managedbean chamando um método?
Sim, só não estou conseguindo fazer o método. Já tentei de varias formas.
<p:commandButton id="calcular" icon="ui-icon-calculator"
immediate="true" update="formCadastro" oncomplete="PF('dialogo').show();"
actionListener="#{produtoBean.calcular}" />
<p:outputLabel value="Lucro: R$" style="text-align:right;" />
<h:outputText value="#{produtoBean.produto.lucro}" maxlength="12" size="8">
<f:convertNumber locale="pt_BR" minFractionDigits="2" style="text-align:right;" />
</h:outputText>
<p:outputLabel value="P. Venda R$" style="text-align:right;" />
<h:outputText value="#{produtoBem.produto.pvenda}" />
MB
public void calcular() {
produto.setCusto(new BigDecimal("0.00"));
produto.setMargem(new BigDecimal("0.100"));
produto.setLucro(new BigDecimal("0.00"));
produto.setPvenda(new BigDecimal("0.00"));
produto.setLucro(produto.getCusto().multiply(produto.getMargem()));
}
Está para dessa forma.
<p:panelGrid columns="5">
<p:outputLabel for="custo" value="Custo em R$" />
<p:inputText id="custo" maxlength="12" size="8" style="text-align:right;" value="#{produtoBean.produto.custo}"
required="true" requiredMessage="O campo 'Custo' é obrigatório"
converterMessage="Informe um valor válido para o campo 'Preço''"
validatorMessage="Informe um valor entre 0,01 e 999.999,99 para o campo 'Custo'">
<f:validateDoubleRange minimum="0.01" maximum="9999.99" />
<f:convertNumber locale="pt_BR" minFractionDigits="2" />
</p:inputText>
<p:outputLabel for="margem" value="Margem(%):" />
<p:inputText id="margem" maxlength="8" size="8" style="text-align:right;" value="#{produtoBean.produto.margem}"
required="true" requiredMessage="O campo 'Margem' é obrigatório"
converterMessage="Informe um valor válido para o campo 'Preço''"
validatorMessage="Informe um valor entre 0,01 e 999,99 para o campo 'Margem'">
<f:validateDoubleRange minimum="0.01" maximum="9999.99" />
<f:convertNumber locale="pt_BR" minFractionDigits="2" />
</p:inputText>
<p:commandButton id="calcular" icon="ui-icon-calculator" immediate="true" update="formCadastro"
oncomplete="PF('dialogo').show();" actionListener="#{produtoBean.calcular}" />
<p:outputLabel value="Lucro: R$" style="text-align:right;" />
<h:outputText value="#{produtoBean.produto.lucro}" maxlength="12" size="8">
<f:convertNumber locale="pt_BR" minFractionDigits="2" style="text-align:right;" />
</h:outputText>
<p:outputLabel value="P. Venda R$" style="text-align:right;" />
<h:outputText value="#{produtoBem.produto.pvenda}" />
</p:panelGrid>