Olá pessoal. Sou novato no fórum e em programação.
Estou com o seguinte problema. Tenho uma loja virtual onde o cálculo do frete funcionava normalmente mas depois que o correio mudou a forma de cálculo do PAC, ele parou de funcionar somente este tipo de frete. Estou postando o código abaixo para ver se alguém pode me ajudar nisso.
Obrigado.
Nome do arquivo : frete.asp
<!-- #include file="conf_funcoes.asp" -->
<%
SELECT CASE request("acao")
'**********************************************************************************
'FUNO PARA CALCULAR O FRETE
'**********************************************************************************
CASE "calcular_frete"
Response.Charset="ISO-8859-1"
session("cep_entrega") = pform("cep")
Cn_cep
sql = "SELECT * FROM enderecos WHERE cep='"&session("cep_entrega")&"'"
set vr = cnx.execute(sql)
if vr.bof or vr.eof then
'ARQUIVO RESPONSVEL POR PEGAR O ENDEREO DO CEP DIGITADO
caminho="http://www.bronzebusiness.com.br/webservices/wscep.asmx/cep?strcep="&session("cep_entrega")&""
Set xml = Server.CreateObject("msxml2.DOMDocument.3.0")
xml.async = false
xml.setProperty "ServerHTTPRequest", true
xml.validateOnParse =false
xml.preserveWhiteSpace = false
folha = xml.Load(caminho)
If Not folha Then
endereco = "invalido"
bairro = "invalido"
cidade = "invalido"
estado = "invalido"
Else
Set logradouro = xml.getElementsByTagName("logradouro")
Set nome = xml.getElementsByTagName("nome")
Set bairro = xml.getElementsByTagName("bairro")
Set uf = xml.getElementsByTagName("UF")
Set cidade = xml.getElementsByTagName("cidade")
if logradouro.length > 0 then
endereco = logradouro.item(0).text & " " & nome.item(0).text
bairro = bairro.item(0).text
cidade = cidade.item(0).text
estado = uf.item(0).text
set gravar = cnx.execute("INSERT INTO enderecos (logradouro, cep, nome, bairro, cidade, uf) values ('"&logradouro.item(0).text&"', '"&session("cep_entrega")&"', '"&nome.item(0).text&"', '"&bairro&"', '"&cidade&"', '"&estado&"')")
else
endereco = "invalido"
bairro = "invalido"
cidade = "invalido"
estado = "invalido"
end if
end if
'aqui da funao
else
endereco = vr("logradouro") & " " & vr("nome")
bairro = vr("bairro")
cidade = vr("cidade")
estado = vr("uf")
end if
Des_cep
'pega todos os produtos comprados e calcula o peso
Conectar
set rs = conexao.execute("SELECT * FROM cesta WHERE compra='"&session("id_compra")&"'")
kg = 0
valor = 0
while not rs.eof
set pd = conexao.execute("SELECT preço, peso FROM produtos WHERE id='"&rs("produto")&"'")
kg = kg + (pd("peso") * rs("quantidade"))
valor = valor + (pd("preço") * rs("quantidade"))
rs.movenext
wend
Desconectar
'prepara os tens para calculo
um = formatnumber(kg,3)
peso = replace(um, ",", ".")
session("peso") = peso
cep_origem = dados("cep", "config_frete", "")
cep_destino = session("cep_entrega")
valor_declarado = replace(formatnumber(valor,2), ".", "")
'formas de entrega a ser calculadas
sedex_normal = dados("sedex", "config_frete", "")
sedex_acrescimo = dados("sedex_acrescimo", "config_frete", "")
sedex_seguro = dados("sedex_seguro", "config_frete", "")
sedex_10 = dados("sedex_10", "config_frete", "")
dez_acrescimo = dados("sedex_10_acrescimo", "config_frete", "")
dez_seguro = dados("sedex_10_seguro", "config_frete", "")
sedex_cobrar = dados("sedex_cobrar", "config_frete", "")
cobrar_acrescimo = dados("sedex_cobrar_acrescimo", "config_frete", "")
cobrar_seguro = dados("sedex_cobrar_seguro", "config_frete", "")
encomenda_normal = dados("encomenda_normal", "config_frete", "")
en_acrescimo = dados("en_acrescimo", "config_frete", "")
transportadora = dados("transportadora", "config_frete", "")
entrega_local = dados("entrega_local", "config_frete", "")
descricao_local = dados("descricao_entregalocal", "config_frete", "")
regiao_local = dados("regiao_entregalocal", "config_frete", "")
valor_local = dados("valor_entregalocal", "config_frete", "")
area_entregalocal = dados("area_entregalocal", "config_frete", "")
carta_registrada = dados("carta_registrada", "config_frete", "")
peso_cartaregistrada = dados("peso_cartaregistrada", "config_frete", "")
valor_cartaregistrada = dados("valor_cartaregistrada", "config_frete", "")
'identifica estado do cep de destino
If cep_destino >= 69900000 And cep_destino <= 69999999 Then
If cep_destino >= 69900000 And cep_destino <= 69920999 Then
session("estado_destino") = "Acre - Capital"
else
session("estado_destino") = "Acre - Interior"
end if
ElseIf cep_destino >= 57000000 And cep_destino <= 57999999 Then
If cep_destino >= 57000000 And cep_destino <= 57099999 Then
session("estado_destino") = "Alagoas - Capital"
else
session("estado_destino") = "Alagoas - Interior"
end if
ElseIf cep_destino >= 68900000 And cep_destino <= 68999999 Then
If cep_destino >= 68900000 And cep_destino <= 68909999 OR cep_destino >= 68925000 And cep_destino <= 68929999 Then
session("estado_destino") = "Amapa - Capital"
else
session("estado_destino") = "Amapa - Interior"
end if
ElseIf cep_destino >= 69000000 And cep_destino <= 69899999 Then
If cep_destino >= 69000000 And cep_destino <= 69099999 Then
session("estado_destino") = "Amazonas - Capital"
else
session("estado_destino") = "Amazonas - Interior"
end if
ElseIf cep_destino >= 40000000 And cep_destino <= 48999999 Then
If cep_destino >= 40000000 And cep_destino <= 43849999 OR cep_destino >= 44450000 And cep_destino <= 44470999 Then
session("estado_destino") = "Bahia - Capital"
else
session("estado_destino") = "Bahia - Interior"
end if
ElseIf cep_destino >= 60000000 And cep_destino <= 63999999 Then
If cep_destino >= 60000000 And cep_destino <= 61699999 OR cep_destino >= 61900000 And cep_destino <= 61939999 Then
session("estado_destino") = "Ceara - Capital"
else
session("estado_destino") = "Ceara - Interior"
end if
ElseIf cep_destino >= 70000000 And cep_destino <= 72799999 Then
If cep_destino >= 70000000 And cep_destino <= 72799999 OR cep_destino >= 73000999 And cep_destino <= 73699999 Then
session("estado_destino") = "Distrito Federal - Capital"
else
session("estado_destino") = "Distrito Federal - Interior"
end if
ElseIf cep_destino >= 29000000 And cep_destino <= 29999999 Then
If cep_destino >= 29000000 And cep_destino <= 29184999 Then
session("estado_destino") = "Espirito Santo - Capital"
else
session("estado_destino") = "Espirito Santo - Interior"
end if
ElseIf cep_destino >= 72800000 And cep_destino <= 76999999 Then
If cep_destino >= 74000000 And cep_destino <= 74999999 OR cep_destino >= 75250000 And cep_destino <= 75259999 Then
session("estado_destino") = "Goias - Capital"
else
session("estado_destino") = "Gias - Interior"
end if
ElseIf cep_destino >= 65000000 And cep_destino <= 65999999 Then
If cep_destino >= 65000000 And cep_destino <= 65099999 Then
session("estado_destino") = "Maranhao - Capital"
else
session("estado_destino") = "Maranhao - Interior"
end if
ElseIf cep_destino >= 78000000 And cep_destino <= 78899999 Then
If cep_destino >= 78000000 And cep_destino <= 78169999 Then
session("estado_destino") = "Mato Grosso - Capital"
else
session("estado_destino") = "Mato Grosso - Interior"
end if
ElseIf cep_destino >= 79000000 And cep_destino <= 79999999 Then
If cep_destino >= 79000000 And cep_destino <= 79124999 Then
session("estado_destino") = "Mato Grosso do Sul - Capital"
else
session("estado_destino") = "Mato Grosso do Sul - Interior"
end if
ElseIf cep_destino >= 30000000 And cep_destino <= 39999999 Then
If cep_destino >= 30000000 And cep_destino <= 34999999 Then
session("estado_destino") = "Minas Gerais - Capital"
else
session("estado_destino") = "Minas Gerais - Interior"
end if
ElseIf cep_destino >= 66000000 And cep_destino <= 68899999 Then
If cep_destino >= 66000000 And cep_destino <= 67999999 Then
session("estado_destino") = "Para - Capital"
else
session("estado_destino") = "Para - Interior"
end if
ElseIf cep_destino >= 58000000 And cep_destino <= 58999999 Then
If cep_destino >= 58000000 And cep_destino <= 58099999 Then
session("estado_destino") = "Paraiba - Capital"
else
session("estado_destino") = "Paraiba - Interior"
end if
ElseIf cep_destino >= 80000000 And cep_destino <= 87999999 Then
If cep_destino >= 80000000 And cep_destino <= 83189999 OR cep_destino >= 83300000 And cep_destino <= 83349999 OR cep_destino >= 83400000 And cep_destino <= 83749999 OR cep_destino >= 83800000 And cep_destino <= 83939999 Then
session("estado_destino") = "Parana - Capital"
else
session("estado_destino") = "Parana - Interior"
end if
ElseIf cep_destino >= 50000000 And cep_destino <= 56999999 Then
If cep_destino >= 50000000 And cep_destino <= 53989999 OR cep_destino >= 54000000 And cep_destino <= 54799999 Then
session("estado_destino") = "Pernambuco - Capital"
else
session("estado_destino") = "Pernambuco - Interior"
end if
ElseIf cep_destino >= 64000000 And cep_destino <= 64999999 Then
If cep_destino >= 64000000 And cep_destino <= 64999999 Then
session("estado_destino") = "Piaui - Capital"
else
session("estado_destino") = "Piaui - Interior"
end if
ElseIf cep_destino >= 20000000 And cep_destino <= 28999999 Then
If cep_destino >= 20000000 And cep_destino <= 23799999 OR cep_destino >= 24000000 And cep_destino <= 24799999 Then
session("estado_destino") = "Rio de Janeiro - Capital"
else
session("estado_destino") = "Rio de Janeiro - Interior"
end if
ElseIf cep_destino >= 59000000 And cep_destino <= 59999999 Then
If cep_destino >= 59000000 And cep_destino <= 59149999 Then
session("estado_destino") = "Rio Grande do Norte - Capital"
else
session("estado_destino") = "Rio Grande do Norte - Interior"
end if
ElseIf cep_destino >= 90000000 And cep_destino <= 99999999 Then
If cep_destino >= 90000000 And cep_destino <= 91999999 Then
session("estado_destino") = "Rio Grande do Sul - Capital"
else
session("estado_destino") = "Rio Grande do Sul - Interior"
end if
ElseIf cep_destino >= 78900000 And cep_destino <= 78999999 Then
If cep_destino >= 78900000 And cep_destino <= 78924999 Then
session("estado_destino") = "Rondonia - Capital"
else
session("estado_destino") = "Rondonia - Interior"
end if
ElseIf cep_destino >= 69300000 And cep_destino <= 69399999 Then
If cep_destino >= 69300000 And cep_destino <= 69339999 Then
session("estado_destino") = "Roraima - Capital"
else
session("estado_destino") = "Roraima - Interior"
end if
ElseIf cep_destino >= 77000000 And cep_destino <= 77999999 Then
If cep_destino >= 77000000 And cep_destino <= 77299999 Then
session("estado_destino") = "Tocantins - Capital"
else
session("estado_destino") = "Tocantins - Interior"
end if
ElseIf cep_destino >= 88000000 And cep_destino <= 89999999 Then
If cep_destino >= 88000000 And cep_destino <= 88149999 OR cep_destino >= 88160000 And cep_destino <= 888179999 Then
session("estado_destino") = "Santa Catarina - Capital"
else
session("estado_destino") = "Santa Catarina - Interior"
end if
ElseIf cep_destino >= 01000000 And cep_destino <= 19999999 Then
If cep_destino >= 01000000 And cep_destino <= 09999999 Then
session("estado_destino") = "são Paulo - Capital"
else
session("estado_destino") = "são Paulo - Interior"
end if
ElseIf cep_destino >= 49000000 And cep_destino <= 49999999 Then
If cep_destino >= 49000000 And cep_destino <= 49099999 Then
session("estado_destino") = "Sergipe - Capital"
else
session("estado_destino") = "Sergipe - Interior"
end if
End If
'calcula os fretes pelos correios
'41017 - Encomenda Normal
if encomenda_normal = "s" then
en_url = "http://www.correios.com.br/encomendas/precos/calculo.cfm?servico=41106&cepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&peso="& session("peso") &""
Set en = CreateObject("Microsoft.XMLHTTP")
en.open "post", en_url, false
en.send
en_valor = en.responseText
set en = nothing
p = right(en_valor,len(en_valor)-instr(en_valor,"Tarifa"))
s = right(p,len(p)-instr(p,"Tarifa"))
enc = replace(replace(left(right(s,len(s)-6),5),"&",""),".",",")
enc = replace(enc, "e", "")
enc = replace(enc, "r", "")
enc = replace(enc, "a", "")
enc = replace(enc, "u", "")
enc = replace(enc, "i", "")
enc = replace(enc, "r", "")
if en_acrescimo <> 0 and en_acrescimo <> "" then
ence = acrescimo(enc, en_acrescimo)
else
ence = enc
end if
session("en") = ence
end if
'40010 = Sedex Convencional
if sedex_normal = "s" then
if sedex_seguro = "s" then
adicional_sn = "&ValorDeclarado="&valor_declarado&""
end if
sn_url="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40010&CepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&Peso="& peso&""&adicional_sn&""
Set sn = CreateObject("Microsoft.XMLHTTP")
sn.open "post", sn_url,false
sn.send
sn_valor = sn.responseText
set sn = nothing
na = right(sn_valor,len(sn_valor)-instr(sn_valor,"Tarifa"))
nb = right(na,len(na)-instr(na,"Tarifa"))
nc = replace(replace(left(right(nb,len(nb)-6),5),"&",""),".",",")
nd = replace(replace(nc, "e", ""), "r", "")
if sedex_acrescimo <> 0 and sedex_acrescimo <> "" then
ne = acrescimo(nd, sedex_acrescimo)
else
ne = nd
end if
session("sn") = ne
end if
'40215 = Sedex 10
if sedex_10 = "s" then
if dez_seguro = "s" then
adicional_sd = "&ValorDeclarado="&valor_declarado&""
end if
sd_url="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40215&CepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&Peso="& peso&""&adicional_sd&""
Set sd = CreateObject("Microsoft.XMLHTTP")
sd.open "post", sd_url,false
sd.send
sd_valor = sd.responseText
set sd = nothing
da = right(sd_valor,len(sd_valor)-instr(sd_valor,"Tarifa"))
db = right(da,len(da)-instr(da,"Tarifa"))
dc = replace(replace(left(right(db,len(db)-6),5),"&",""),".",",")
dd = replace(replace(dc, "e", ""), "r", "")
if dez_acrescimo <> 0 and dez_acrescimo <> "" then
de = acrescimo(dd, dez_acrescimo)
else
de = dd
end if
session("sd") = de
end if
'40045 = Sedex Cobrar
if sedex_cobrar = "s" then
if cobrar_seguro = "s" then
adicional_sc = "&ValorDeclarado="&valor_declarado&""
end if
sc_url="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40045&CepDestino="& cep_destino &"&CepOrigem="& cep_origem &"&Peso="& peso&""&adicional_sc&""
Set sc = CreateObject("Microsoft.XMLHTTP")
sc.open "post", sc_url,false
sc.send
sc_valor = sc.responseText
set sc = nothing
ca = right(sc_valor,len(sc_valor)-instr(sc_valor,"Tarifa"))
cb = right(ca,len(ca)-instr(ca,"Tarifa"))
cc = replace(replace(left(right(cb,len(cb)-6),5),"&",""),".",",")
cd = replace(replace(cc, "e", ""), "r", "")
if cobrar_acrescimo <> 0 and cobrar_acrescimo <> "" then
ce = acrescimo(cd, dez_acrescimo)
else
ce = cd
end if
session("sc") = ce
end if
'Entrega Local
if entrega_local = "s" then
if session("estado_destino") = area_entregalocal then
session("motoboy") = True
else
session("motoboy") = False
end if
end if
id = 0
response.write session("estado_destino")%>
###<table width="100%" border="0" cellspacing="0" cellpadding="0">
<form action="oct_atu_compra.asp" method="post" name="seguir" id="seguir">
<tr>
<td height="30" ><table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td height="25" align="left"><span class="txtdetalhesopcao">Por favor, informe abaixo o endereço e a forma de entrega.</span> <br />
</td>
</tr>
<tr>
<td height="1" align="left" bgcolor="#CCCCCC"></td>
</tr>
<tr>
<td height="25" align="left" bgcolor="#FBFBFB" ><table width="100%" border="0" cellpadding="5" style="line-height:25px">
<tr>
<td><table width="100%" border="0">
<tr>
<td width="68" height="25" align="right"><span class="txtdetalhesopcao">Endereço:</span></td>
<td width="1283"><%if endereco<>"invalido" then
response.write endereco
end if%><input name="endereco" <% if endereco = "invalido" then%>type="text" class="caixas" size="50"<%else%>type="hidden" value="<%=endereco%>"<%end if%> id="endereco"/></td>
</tr>
<tr>
<td height="25" align="right"><span class="txtdetalhesopcao">Número:</span></td>
<td><input name="numero" class="caixas" type="text" id="numero" size="4" /></td>
</tr>
<tr>
<td height="25" align="right"><span class="txtdetalhesopcao">Compl.:</span></td>
<td><input name="complemento" class="caixas" type="text" id="complemento" /></td>
</tr>
<tr>
<td height="25" align="right"><span class="txtdetalhesopcao">Cep:</span></td>
<td><span class="txtdetalhesopcao"><%=session("cep_entrega")%></span></td>
</tr>
<tr>
<td height="25" align="right"><span class="txtdetalhesopcao">Bairro:</span></td>
<td><%if bairro<>"invalido" then
response.write bairro
end if%><input name="bairro" <% if bairro = "invalido" then%>type="text" class="caixas" size="50" <%else%>type="hidden" value="<%=bairro%>" <%end if%> id="bairro"/></td>
</tr>
<tr>
<td height="25" align="right"><span class="txtdetalhesopcao">Cidade:</span></td>
<td><%if cidade<>"invalido" then
response.write cidade
end if%><input name="cidade" <% if cidade = "invalido" then%>type="text" class="caixas" size="50"<%else%>type="hidden" value="<%=cidade%>"<%end if%> id="cidade"/></td>
</tr>
<tr>
<td height="25" align="right"><span class="txtdetalhesopcao">Estado:</span></td>
<td><%if estado<>"invalido" then
response.write estado
end if%><input name="estado" <% if estado = "invalido" then%>type="text" class="caixas" size="50"<%else%>type="hidden" value="<%=estado%>"<%end if%> id="estado"/></td>
</tr>
</table>
</td>
</tr>
</table></td>
</tr>
</table>
<p><span class="txtdetalhesopcao">Forma de Entrega: </span></p></td>
</tr>
<tr>
<td height="1" align="left" bgcolor="#CCCCCC"></td>
</tr>
<%if session("sn") <> 0 and sedex_normal="s" and session("sotransportadora") <> "Sim" then
id = id + 1 %>
<tr>
<td bgcolor="#FBFBFB"><table width="100%" border="0" cellpadding="5">
<tr><td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="sn" onClick="totalcompra('<%=FormatNumber(session("sn"),2)%>');" >
<span class="txtdetalhesopcao">Sedex - R$ <%=FormatNumber(session("sn"),2)%><br>
Prazo: Capital de todo Brasil: 02 a 03 dias. Interior de Todo Brasil: 03 a 04 dias.</span></td>
</tr>
<%end if%>
<%if session("sd") <> 0 and sedex_10="s" and session("sotransportadora") <> "Sim" then
id = id + 1 %>
<tr>
<td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="sd" onClick="totalcompra('<%=FormatNumber(session("sd"),2)%>');" >
<span class="txtdetalhesopcao">Sedex 10 - R$ <%=FormatNumber(session("sd"),2)%><br>
Prazo: Até as 10 horas do dia seguinte para pedidos efetuados até às 13:00 hs. </span></td>
</tr>
<%end if%>
<%if session("sc") <> 0 and sedex_cobrar="s" and session("sotransportadora") <> "Sim" then
id = id + 1 %>
<tr>
<td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="sc" onClick="totalcompra('<%=FormatNumber(session("sc"),2)%>');" >
<span class="txtdetalhesopcao"> Sedex à cobrar - R$ <%=FormatNumber(session("sc"),2)%><br>
Prazo: Capital de todo Brasil: 02 a 03 dias. Interior de Todo Brasil: 03 a 04 dias.</span></td>
</tr>
<%end if%>
<%if encomenda_normal = "s" and session("en") <> 0 and session("en") <> "" and session("sotransportadora") <> "Sim" then
id = id + 1 %>
<tr>
<td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="en" onClick="totalcompra('<%=FormatNumber(session("en"),2)%>');">
<span class="txtdetalhesopcao">Encomenda PAC - R$ <%=FormatNumber(session("en"),2)%><br>
Prazo: Capital de todo Brasil: 05 a 07 dias. Interior de Todo Brasil: 07 a 15 dias.</span></td>
</tr>
<%end if%>
<%if session("motoboy") = True and entrega_local = "s" and session("sotransportadora") <> "Sim" then
id = id + 1 %>
<tr>
<td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="el" onclick="totalcompra('<%=FormatNumber(valor_local,2)%>');" />
<span class="txtdetalhesopcao"><%=descricao_local%> - R$ <%=FormatNumber(valor_local,2)%><br>
<%=regiao_local%></span></td></tr>
<%
end if
if carta_registrada = "s" and session("sotransportadora") <> "Sim" and replace(formatnumber(peso_cartaregistrada,3), ",", ".") => session("peso") then
id = id + 1 %>
<tr>
<td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="cr" onClick="totalcompra('<%=FormatNumber(valor_cartaregistrada,2)%>');" >
<span class="txtdetalhesopcao">Carta Registrada - R$ <%=FormatNumber(valor_cartaregistrada,2)%><br>
Prazo: Para todo o Brasil de 15 a 25 dias.</span></td></tr><%end if
if transportadora = "s" then
id = id + 1 %>
<tr>
<td height="44" ><input style="border:none" name="frete" id="f<%=id%>" type="radio" value="tr" onclick="totalcompra('0');" />
<span class="txtdetalhesopcao">Transportadora<br />
O Valor e o Prazo será definido posteriormente por um atendente, buscando a melhor tarifa.</span></td>
</tr>
<%end if%>
</table></td>
</tr>
</form>
</table>
<%
END SELECT
%>
Pergunta
William Skaff
Olá pessoal. Sou novato no fórum e em programação.
Estou com o seguinte problema. Tenho uma loja virtual onde o cálculo do frete funcionava normalmente mas depois que o correio mudou a forma de cálculo do PAC, ele parou de funcionar somente este tipo de frete. Estou postando o código abaixo para ver se alguém pode me ajudar nisso.
Obrigado.
Nome do arquivo : frete.asp
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.