Atualização de preço por porcentagem - Taglib e Hibernate

0 respostas
1

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>
	&lt;label&gt;<b>* Coloque apenas números, sem o simbolo (%).</b>&lt;/label&gt;
	<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&lt;ProdutoEmpresa&gt; atualizaprecoparacima(double porcentagem,
			Long id) {
		return dao.atualizarprecoparacima(porcentagem, id);
	}

	// Atualizar Preço - Diminuir em porcentagem
	@Business
	@Get("/produtoEmpresa/decrescimo/{id}")
	public List&lt;ProdutoEmpresa&gt; atualizaprecoparabaixo(double porcentagem,
			Long id) {
		return dao.atualizarprecoparabaixo(porcentagem, id);
	}

E meu dao.

//Atualiza preço para cima - consulta DAO
	public List&lt;ProdutoEmpresa&gt; 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&lt;ProdutoEmpresa&gt; 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!

Criado 16 de janeiro de 2013
Respostas 0
Participantes 1