Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcelocardoso

somando errado

Recommended Posts

AMIGOS!!!

 

Rápidinho, Rapidinho....

 

Estou com este código aqui de carrinho de compras que FUNFA legal, ou seja; ele coloca o produto no carrinho, soma, aumenta a quantidade de produtos indicando quantos produtos foram aumentados no campo quantidade, e soma tudo direitinho...

 

CÓDIGO COMPLETO

<!--#include file="head.asp" --><%IF SESSION("CodigoDaVenda") = "" THEN   SET MaiorNumero = SERVER.CREATEOBJECT("ADODB.RECORDSET")	   MaiorNumero.OPEN "SELECT MAX(CodigoDoPedido) AS MAX_CodPedido FROM Pedidos", ObjCX		   IF IsNull(MaiorNumero("MAX_CodPedido")) THEN			  CodigoPedido_NOVO = 1			  ELSE 			  CodigoPedido_NOVO = MaiorNumero("MAX_CodPedido") + 1	   END IF  	   MaiorNumero.CLOSE   SET MaiorNumero = NOTHING   ObjCX.EXECUTE "INSERT INTO Pedidos (CodigoDoPedido) VALUES (" & CodigoPedido_NOVO & ")"   SESSION("CodigoDaVenda") = CodigoPedido_NOVOEND IFIF Request.QueryString("codproduto") <> "" THEN   SET ItensDoPedido = SERVER.CREATEOBJECT("ADODB.RECORDSET")	   ItensDoPedido.OPEN "SELECT * FROM PedidosItens WHERE CodigoDoPedido = " & Session("CodigoDaVenda") & " AND CodigoDoProduto = " & Request.QueryString("codproduto"), ObjCX		IF ItensDoPedido.EOF THEN	   ObjCX.EXECUTE "INSERT INTO PedidosItens (CodigoDoPedido, CodigoDoProduto, QuantidadeDoPedido) VALUES (" & Session("CodigoDaVenda") & ", " & Request.QueryString("codproduto") & ", 1)"	   END IF	   ItensDoPedido.CLOSEEND IFIF Request.Form <> "" THEN   ObjCX.EXECUTE "DELETE FROM PedidosItens WHERE CodigoDoPedido = " & Session("CodigoDaVenda")   FOR EACH Field_name IN Request.Form		   IF Field_name <> "B1" AND Request.Form(Field_name) <> "0" AND Trim(Request.Form(Field_name)) <> "" THEN		     SQL = "INSERT INTO PedidosItens (CodigoDoPedido, CodigoDoProduto, QuantidadeDoPedido) VALUES ("& Session("CodigoDaVenda") & ", " & Field_name & ", " & Request.Form(Field_name) & ")"		  ObjCX.EXECUTE SQL			  END IF			  NEXTEND IF%><a name="TOPO"></a>  <TR>	<TD>	<table width="722"  border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF">  <tr>	<td width="784">		<!--#include file="diretorio_incl/includes_cabecalho1.asp" -->		</td>  </tr>  <tr> 	<td> <table width="100%"  border="0" align="center" cellpadding="0" cellspacing="4">		<tr> 		  <td width="26%"></td>		  <td width="74%"></td>		</tr>		<tr> 		  <td valign="top">		<!--#include file="diretorio_incl/includes_sistema_busca.asp" -->		<!--#include file="diretorio_incl/includes_sistema_noticias.asp" -->		<!--#include file="diretorio_incl/includes_sistema_newsletter.asp" -->		</td><td valign="top"> <%'Selecionaremos os produtos das tabelas, para podermos apresentarmos na sacola de produtosSQLPedidos = "SELECT PedidosItens.*, Produtos.ProdutosNome, Produtos.ID, Produtos.ProdutosFabricante, "SQLPedidos = SQLPedidos & "Produtos.ProdutosValorPara,Produtos.ProdutosValorDe, Produtos.ProdutosImagemNormal "SQLPedidos = SQLPedidos & "FROM Produtos INNER JOIN PedidosItens "SQLPedidos = SQLPedidos & "ON Produtos.ID = PedidosItens.CodigoDoProduto "SQLPedidos = SQLPedidos & "WHERE PedidosItens.CodigoDoPedido = " & Session("CodigoDaVenda") & " AND Produtos.ID = PedidosItens.CodigoDoProduto"   SET ItensDoPedido = ObjCX.EXECUTE(SQLPedidos)	IF ItensDoPedido.EOF = TRUE THEN %>				<table width="100%" border="0" align="center" cellpadding="0" cellspacing="4">				  <tr> 					<td width="11%" height="27"> 					  <div align="center"><b><font color="#999999">Excluir</font></b></div></td>					<td width="78%" bgcolor="#F8F8F8"> <div align="center"><font color="#666666"> 						<b>Descriminação do(s) Produto(s)</b></font></div></td>					<td width="11%" bgcolor="#F8F8F1"> 					  <div align="CENTER"><font color="#000000"><b>Qtde</b></font></div></td>				  </tr>				</table>				<table width="100%" height="100%"  border="0" align="center" cellpadding="4" cellspacing="4">				  <tr> 					<td align="center" valign="middle"> <table width="98%" border="0" cellspacing="3" cellpadding="3">						<tr>						  <td> </td>						</tr>						<tr>						  <td height="120"> 							<div align="center"><font color="#3366CC"> <img src="diretorio_img/imagem_marcador_-_problema.gif" width="48" height="48"><br>							  <br>							  Não existem produtos no seu carrinho para 							  serem orçados!<br>							  </font></div></td>						</tr>						<tr>						  <td> </td>						</tr>					  </table></td>				  </tr>				</table><%Else%>				<form action="<%= REQUEST.ServerVariables("SCRIPT_NAME") %>" method="POST" name="frm" id="frm">				  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="4">					<tr> 					  <td width="11%" height="27"> <div align="center"><b><font color="#999999">Excluir</font></b></div></td>					  <td width="61%" bgcolor="#F8F8F8"><div align="center"><font color="#666666"> <b>Descriminação do(s) Produto(s)</b></font></div></td>					  <td width="19%" bgcolor="#F8F8F8"><div align="center"><font color="#000000"><b>Valor R$ </b></font></div></td>					  <td width="9%" bgcolor="#F8F8F1"> 						<div align="CENTER"><font color="#000000"><b>Qtde</b></font></div></td>					</tr>				  </table>				  <table width="100%" border="0" align="center" cellpadding="0" cellspacing="2" class="BORDA-B">					<tr> 					  <td><div align="center"></div></td>					</tr>				  </table><%	IF NOT ItensDoPedido.EOF THEN ItensDoPedido.MoveFirst			   Sub_Total = 0 WHILE NOT ItensDoPedido.EOF'Verificaremos se a imagem do produto existe ou não no banco de dados para vermos qual imagem exibiremos na tela IF IsEmpty(ItensDoPedido("ProdutosImagemNormal")) OR IsNull(ItensDoPedido("ProdutosImagemNormal")) THEN	  ImagemTratada = "diretorio_img/img_produtos/imagem_semproduto_pequena.jpg"	 'Caso contrário, exibimos abaixo	  ELSE	  ImagemTratada = ItensDoPedido("ProdutosImagemNormal") END IF%> <table width="100%" height="45" border="0" align="center" cellpadding="0" cellspacing="4" class="PRODBORDAB">					<tr> 					  <td width="11%"><div align="center"> 						  <label><a href="sacola_produtos_exclui_item.asp?codproduto=<%= ItensDoPedido("CodigoDoProduto")%>"><img src="diretorio_img/imagem_marcador_-_excluir.gif" alt="Deletar <%=ItensDoPedido("ProdutosNome")%>" width="16" height="16" border="0"></a></label>						</div></td>					  <td width="21%"><div align="center"><strong><font face="Arial" size="1"><img src="<%= ImagemTratada %>" alt="Imagem do Produto" width="100" height="100" border="0" align="absmiddle"></font></strong></div></td>					  <td width="40%"><div align="LEFT"><strong><font color="#2D75B0"><%= ItensDoPedido("ProdutosNome") %></font></strong> 						  <br>						  Fabricante: <%= ItensDoPedido("ProdutosFabricante") %>					  <br>						  ID: <%= ItensDoPedido("ID") %></div></td>					  <td width="19%"><div align="center"><span class="FONTE_XTRAS"><%=FormatCurrency(ItensDoPedido("ProdutosValorDe"))%></span></div></td>					  <td width="9%"> <div align="center"> 						  <input name="<%= ItensDoPedido("CodigoDoProduto") %>" type="text" id="<%= ItensDoPedido("CodigoDoProduto") %>" value="<%= ItensDoPedido("QuantidadeDoPedido") %>" size="2" maxlength="2">		 </div></td>	  </tr></table><%'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::'AQUI COMEÇA A CONFIGURAÇÃO DA SOMA DA CESTA DE PRODUTOS														  :'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::'Selecionaremos os produtos das tabelas, para podermos apresentarmos na sacola de produtos SET MiniCesta = ObjCX.Execute("SELECT PedidosItens.*, Produtos.* FROM Produtos INNER JOIN PedidosItens ON Produtos.ID = PedidosItens.CodigoDoProduto WHERE PedidosItens.CodigoDoPedido = " & SESSION("CodigoDaVenda") & " AND Produtos.ID = PedidosItens.CodigoDoProduto")			 'Iremos agora fazer um LOOP no banco para verificarmos se os produtos comprados terminaram IF NOT MiniCesta.EOF THEN MiniCesta.MoveFirst				 WHILE NOT MiniCesta.EOF'Calculamos agora o total e guardamos o valor das variaveis para podermos usar na CESTA TotalDasCompras = TotalDasCompras + MiniCesta("QuantidadeDoPedido") * MiniCesta("ProdutosValorDe") SomarQuantidade = SomarQuantidade + MiniCesta("QuantidadeDoPedido")									 MiniCesta.MoveNext											   Wend'Verificaremos a situação da variavel TotalDasCompras se está vazio ou não IF NOT TotalDasCompras = "" Then		Total = TotalDasCompras		Somar = SomarQuantidade   ELSE		Total = 0		Somar = 0 END IF	 '::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::'AQUI TERMINA A CONFIGURAÇÃO DA CESTA DE PRODUTOS														 :'::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::%><%'CALCULAMOS O SUBTOTAL E O PESO TOTAL DO PRODUTO Sub_Total = Sub_Total + ItensDoPedido("QuantidadeDoPedido") * ItensDoPedido("ProdutosValorDe")						 ItensDoPedido.MoveNext						 Wend						 ItensDoPedido.CLOSE	SESSION("SUB_TOTAL") = Sub_Total						   Sub_Total = Replace(Sub_Total, ",",".")	ObjCX.EXECUTE "UPDATE Pedidos SET OrcamentoSubTotal = " & Sub_Total & " WHERE CodigoDoPedido = " & Session("CodigoDaVenda")	ObjCX.CLOSE%><%END IF%><table width="100%" height="45" border="0" align="center" cellpadding="4" cellspacing="4">  <tr>	<td width="100%"><div align="right"><font color="#686A6F">Seu carrinho contém: ( <%= Somar %> ) produto(s) em andamento </font></div></td>  </tr></table><table width="100%" height="45" border="0" align="center" cellpadding="4" cellspacing="4" bgcolor="#F8F8F1">  <tr>	<td width="72%"><div align="right" class="NOTTITULO">Total do(s) produto(s):</div></td>	<td width="28%"><div align="center" class="FONTE_RS">	  <div align="right"><font color="#CC0000"><%=FormatCurrency(Total)%></font></div>	</div></td>  </tr></table><table width="100%" border="0" align="center" cellpadding="0" cellspacing="4">					<tr> 					  <td width="67%" height="32"> <div align="right"><font face="Arial, Helvetica, sans-serif"> 						  <input type="submit" value="Atualizar Qtde" name="B1" onClick="submit();this.value='Atualizando Qtde'">						  </font> </div></td>					</tr>				  </table>				</form>				<table border="0" cellpadding="4" cellspacing="4" width="499" align="center">				  <tr> 					<td height="52" align="center"> </td>					<td align="center"> </td>					<td align="center"> </td>				  </tr>				  <tr> 					<td align="center" width="170"> <a href="sacola_produtos_dados.asp" target="_parent"><img src="diretorio_img/imagem_marcador_-_finalizarcompras1.gif" alt="Finalizar compras" width="154" height="30" border="0"></a></td>					<td align="center" width="205"> <a href="page_produtos.asp" target="_parent"><img src="diretorio_img/imagem_marcador_-_continuar1.gif" alt="Continuar compras" width="154" height="30" border="0"></a></td>					<td align="center" width="205"><a href="sacola_produtos_exclui_tudo.asp" target="_parent"><img src="diretorio_img/imagem_marcador_-_excluircompras1.gif" alt="Excluir compras" width="154" height="30" border="0"></a></td>				  </tr>				  <tr> 					<td colspan="3" align="center"> </td>				  </tr>				  <tr>					<td colspan="3" align="center"> </td>				  </tr>				</table> </td>		</tr>	  </table> 	</td>  </tr></table><TBODY>	<TR> 	<TD><!--#include file="includes_cabecalho3.asp" --></BODY></HTML>
MEU PROBLEMA:

 

MAS só que tem um problema que é quando ADICIONO outro produto no carrinho, aí ele já soma para 4 produtos, sendo que eu tinha apenas 1 produto e acrescentei mais 1, somando pela lógica, seria 2 produtos apenas no carrinho, OK... mas o safado SOMA como se tivesse 4 produtos e não 2.

 

O código todo funciona, mas começou a dar este tipo de problema quando fui tentar acrescentar o código para SOMAR o valor dos produtos.

 

 

PODEM ME AJUDAR, pois acho que deve ser simples, pois ainda estou aprendendo a mexer com carrinhos de compras....

 

Aguardo o retorno dos amigos.

 

Muito obrigado!

 

 

Que Deus Abençoe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dei uma lida rápida, vou tar algumas opiniões:Primeiro tente mudar essa linha:SomarQuantidade = SomarQuantidade + MiniCesta("QuantidadeDoPedido")para:SomarQuantidade = cint(SomarQuantidade) + cint(MiniCesta("QuantidadeDoPedido"))se não funcionar, verifique no seu BD se há registros com o mesmo ID do SESSION("CodigoDaVenda")... minha opinião é que ele está fazendo contas com registros q você não viu, mas que estão láou senão, poe um response.write MiniCesta("QuantidadeDoPedido") abaixo da linha que coloquei acima, e veja se o problema é no BD ou na sua somanão posso ajudar muito agora pois estou de saida[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hei ULTRA!

 

Beleza.....

 

1) Fiz oque você me passou primeiro usando aquela parte com o CInt - não funcionou

2) Depois coloquei o response.write e me mostrou 111 com o response.write.... e continuou dando o mesmo erro.

3) Olhei no banco, e constatei que está tudo OK, vejam na imagem abaixo:

Imagem Postada

 

E no código fica assim:

Imagem Postada

 

 

Me ajuda aí amigo, como posso resolver isso???

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.