Ir para conteúdo

POWERED BY:

Arquivado

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

brunocampos

O que estou fazendo de errado nesse código?

Recommended Posts

Olá pessoal, acredito que só quem tem uma grande experiência em ASP, ou até pelo menos tenha feito isso mais vezes. Trata-se de um sistema de pedidos online, utilizando BD, no fim do processo preciso enviar um e-mail com os produtos selecionados pelo cliente, e armazenados no carrinho do BD. Com ajuda de amigos aqui do Fórum cheguei ao seguinte código, mas ele precisa ser refinado para funcionar.

 

Alguém poderia checar o que está errado ou não é possível ser feito dessa maneira? É um caso muito urgente, para essa semana ainda... Espero contar com vcs amigos.

 

Vou colocar minhas dúvidas sobre o código em vermelho, acho que assim explico melhor. Lá vai!

 

<%

'Arquivo pars gerar variáveis dinâmicas e enviá-las para os e-mails necessários.

'Abrindo conexao

Set conexao = Server.CreateObject("ADODB.Connection")

conexao.open = "gondola"

 

If Request.Form("formapagamento") = "cartao" then

If Request.Form("tipocartao") = "visa" then

tipopaga = Response.Write("Cartão de Crédito")

nomecard = Response.Write("Visa")

numbcard = Request.Form("visa_numero")

valicard = Request.Form("visa_validade")

codscard = ""

Elseif Request.Form("tipocartao") = "americam" then

tipopaga = Response.Write("Cartão de Crédito")

nomecard = Response.Write("Americam Express")

numbcard = Request.Form("amex_numero")

valicard = ""

codscard = Request.Form("amex_codseguranca")

Elseif Request.Form("tipocartao") = "mastercard" then

tipopaga = Response.Write("Cartão de Crédito")

nomecard = Response.Write("Mastercard")

numbcard = Request.Form("master_numero")

valicard = Request.Form("master_validade")

codseguranca = Request.Form("master_codseguranca")

End if

Elseif Request.Form("formapagamento") = "cheque" then

tipopaga = Response.Write("Cheque")

Elseif Request.Form("formapagamento") = "dinheiro" then

If Request.Form("troco") = "Não" then

tipopaga = Response.Write("Dinheiro")

necetroc = Response.Write("Não")

Elseif Request.Form("troco") = "Sim" then

tipopaga = Response.Write("Dinheiro")

necetroc = Response.Write("Sim")

valotroc = Request.Form("troco_valor")

End if

End if

 

'Declarando variáveis fixas, servem para informações gerais do cliente

Dim nome_cliente, endereco_cliente, fone_cliente, cod_cliente

 

nome_cliente = Session("nome")

endereco_cliente = Session("logradouro") & ", " & Session("numero") & " - " & Session("bairro") & " - " & Session("cep")

fone_cliente = Session("telefone")

cod_cliente = Session("cod_cliente")

 

'Buscando informações no BD, agora vem a parte boa!

SQL = "SELECT nome_produto, quantidade, carrinho.preco_unitario, carrinho.cod_carrinho, carrinho.cod_complemento, nome_categoria, nome_complemento, preco_complemento"

SQL = SQL & "FROM Carrinho, Produtos, Categorias, Complementos WHERE Produtos.cod_categoria = Categorias.cod_categoria"

SQL = SQL & "AND Complementos.cod_complemento = Carrinho.cod_complemento AND Produtos.cod_produto = carrinho.cod_produto AND carrinho.cod_cliente = " & Session("cod_cliente")

Set RS = conexao.execute(SQL)

 

'Declarando variáveis para cálculo

preco_unitario = RS("preco_unitario")

quantidade = RS("quantidade")

complemento = RS("preco_complemento")

 

'Declarando as taxas de entrega que geram mais uma variável

If Session("Bairro") = "Prado" then

taxa = 3.00

Elseif Session("Bairro") = "Jaqueira" then

taxa = 3.00

Elseif Session("Bairro") = "Campo Grande" then

taxa = 3.00

Elseif Session("Bairro") = "Madalena" then

taxa = 3.00

Elseif Session("Bairro") = "Cordeiro" then

taxa = 4.50

Elseif Session("Bairro") = "Beberibe" then

taxa = 3.00

Elseif Session("Bairro") = "Zumbi" then

taxa = 4.50

Elseif Session("Bairro") = "Ilha do Retiro" then

taxa = 3.00

Elseif Session("Bairro") = "Casa Amarela" then

taxa = 3.00

Elseif Session("Bairro") = "Parnamirim" then

taxa = 3.00

Elseif Session("Bairro") = "Bonji" then

taxa = 3.00

Elseif Session("Bairro") = "Boa Vista" then

taxa = 3.00

Elseif Session("Bairro") = "Espinheiro" then

taxa = 3.00

Elseif Session("Bairro") = "Torre" then

taxa = 3.00

Elseif Session("Bairro") = "Cajueiro" then

taxa = 4.50

Elseif Session("Bairro") = "Tamarineira" then

taxa = 3.00

Elseif Session("Bairro") = "Santana" then

taxa = 3.00

Elseif Session("Bairro") = "Caxangá" then

taxa = 3.00

Elseif Session("Bairro") = "Coelhos" then

taxa = 4.50

Elseif Session("Bairro") = "Poço" then

taxa = 3.00

Elseif Session("Bairro") = "Arruda" then

taxa = 3.00

Elseif Session("Bairro") = "Casa Forte" then

taxa = 3.00

Elseif Session("Bairro") = "Hipódromo" then

taxa = 3.00

Elseif Session("Bairro") = "Apipucos" then

taxa = 3.00

Elseif Session("Bairro") = "Rosarinho" then

taxa = 3.00

Elseif Session("Bairro") = "Aflitos" then

taxa = 3.00

Elseif Session("Bairro") = "Derby" then

taxa = 3.00

Elseif Session("Bairro") = "Encruzilhada" then

taxa = 3.00

Elseif Session("Bairro") = "Ilha do Leite" then

taxa = 3.00

Elseif Session("Bairro") = "Monteiro" then

taxa = 3.00

Elseif Session("Bairro") = "Torreão" then

taxa = 3.00

Elseif Session("Bairro") = "Paissandú" then

taxa = 3.00

End If

 

'Criando corpo do e-mail, muita calma nessa hora!

strMensagem = "<html><head><body>"

strMensagem = strMensagem & "<table width=450 border=0 cellspacing=0 cellpading=1 align=left>"

strMensagem = strMensagem & "<tr><td width=380><font face=Arial size=2 color=#666666><b>Itens pedidos</b></font></td><td width=70><font face=Arial size=2 color=#666666><b>Valor</b></font></td></tr>"

strMensagem = strMensagem & While Not RS.EOF & "<tr><td><font face=Arial size=1 color=#000000>" & RS("nome_produto") & "</font></td><td><font face=Arial size=1 color=#000000>R$ " & total = preco_unitario + complemento * quantidade

strMensagem = strMensagem & "</td></tr>" & totalGeral = totalGeral + total + taxa & RS.MoveNext & Wend

strMensagem = strMensagem & "<tr><td><br><br><font face=Arail size=2 color=#000000>Confira os dados acima!</font></td></tr></table>"

strMensagem = strMensagem & "</body></html>"

 

'Enviando e-mail via CDONTS

Set objEmail = Server.CreateObject ("CDONTS.NewMail")

objEmail.From = "Bruno Campos"

objEmail.To = "brunocampos@yahoo.com"

objEmail.Subject = "Teste La Gondola"

objEmail.body = strMensagem

objEmail.BodyFormat = 0

objEmail.Importance = 1

objEmail.MailFormat = 0

objEmail.Send

Set objEmail = Nothing

 

'Redireciona para fim de tudo

Response.redirect("fim_pedido.asp")

 

'Fecha conexao

conexao.Close

%>

 

Peço desculpas pelo código mal escrito, estou fazendo o possível para melhorá-lo ao longo do processo. Espero que alguém possa me ajudar aqui!

 

Valeu!

Bruno Campos

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, brunocampos.

 

tente desmembrar o while e não atribuir valores e somá-los e/ou concatenálos da forma como está fazendo.

atribua as hierarquias das variáves e coloque entre aspas.

 

strMensagem = strMensagemWhile Not RS.EOFstrMensagem = strMensagem & "<tr><td><font face=Arial size=1 color=#000000>" & RS("nome_produto") & "</font></td><td><font face=Arial size=1 color=#000000>R$ "total = preco_unitario + complemento * quantidadestrMensagem = strMensagem & total & "</td></tr>"totalGeral = totalGeral + total + taxastrMensagem = strMensagem & totalGeralif not Rs.EOF then RS.MoveNextWend
outra coisa: você concatenou o RS.MoveNext e o WEnd com o valor da string.

 

só uma dica: para carrinho de compras, particularmente falando, é melhor usar session. se o usuário sai no meio do processo, não serão armazenadas informações desnecessárias.

 

té! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza alack!Puts, então no código abaixo, creio que foi você que fez, está o método correto dessa ação? Tentarei seguir suas dicas amigão!Valeu mesmo! :D Bruno Campos

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.