Galera,
Estou fazendo um procedimento para que o usuário possa aumentar ou diminuir o preço dos produtos, em porcentagem. A consulta ficou linda.
Olha como eu fiz.
Na minha lista de produtos, e coloquei dois forms. Um para aumentar e outro para diminuir.
<h3>Reajuste de preços</h3>
<table align="center">
<tr>
<td>
<form id="atualizaForm"action="<c:url value="/produtoEmpresa/acrescimo/${empresaWeb.id}"/>" method="GET">
<label>Acréscimo em (%)</label>
<input type="text" name="porcentagem" value="${porcentagem }" ></input>
<button>Atualizar</button>
</form>
</td>
<td>
<form id="atualizaForm"action="<c:url value="/produtoEmpresa/decrescimo/${empresaWeb.id}"/>" method="GET">
<label>Decréscimo em (%)</label>
<input type="text" name="porcentagem" value="${porcentagem }"></input>
<button>Atualizar</button>
</form>
</td>
</tr>
</table>
<label><b>* Coloque apenas números, sem o simbolo (%).</b></label>
<br />
Fiz um controller, que recebe esse dados,faz a consulta no banco de dados e retorna a lista de produtos com os novos preços.
// Atualizar Preço - Aumentar em porcentagem
@Business
@Get("/produtoEmpresa/acrescimo/{id}")
public List<ProdutoEmpresa> atualizaprecoparacima(double porcentagem,
Long id) {
return dao.atualizarprecoparacima(porcentagem, id);
}
// Atualizar Preço - Diminuir em porcentagem
@Business
@Get("/produtoEmpresa/decrescimo/{id}")
public List<ProdutoEmpresa> atualizaprecoparabaixo(double porcentagem,
Long id) {
return dao.atualizarprecoparabaixo(porcentagem, id);
}
E meu dao.
//Atualiza preço para cima - consulta DAO
public List<ProdutoEmpresa> atualizarprecoparacima(double porcentagem, Long id) {
return session
.createSQLQuery(
"select id, ativo,quantidade_estoque,cod_empresa,cod_produto,(preco+(preco*"
+ porcentagem
+ "/100))"
+ "as preco from ProdutoEmpresa where cod_empresa="
+ id + ";").addEntity(ProdutoEmpresa.class)
.list();
}
//Atualiza preço para baixo - consulta DAO
public List<ProdutoEmpresa> atualizarprecoparabaixo(double porcentagem,
Long id) {
return session
.createSQLQuery(
"select id, ativo,quantidade_estoque,cod_empresa,cod_produto,(preco-(preco*"
+ porcentagem
+ "/100))"
+ "as preco from ProdutoEmpresa where cod_empresa="
+ id + ";").addEntity(ProdutoEmpresa.class)
.list();
}
Ele mostra esse dados na página
Minhaaplicação.com.br/produtoEmpresa/acrescimo/4?porcentagem=30
Sendo /4 o id da empresa
e ?porcentagem=30 o valor em porcentagem.
Ele mostra tudo certinho.
Só que eu quero um UPDATE não um select, e quando rodo.
session.createSQLQuery("UPDATE ProdutoEmpresa set preco=preco-(preco*"+porcentagem+"/100) where cod_empresa="+id);
Não acontece nada.
Já tentei assim. Mas também não funciona.
Transaction tx = session.beginTransaction();
session.update("UPDATE ProdutoEmpresa set preco=preco-(preco*"+porcentagem+"/100) where cod_empresa="+id);
tx.commit();
Desde já agradeço a ajuda!
Valeus!