marcelo oli Posted June 28, 2011 Report Share Posted June 28, 2011 ola, sou novo no forum e tb em programacao, estou com um problema para calcular o frete dos correios (sedex e pac), gostaria da ajuda de vocês.os problemas são no calculo do pac o valor é sempre o mesmo (R$ 12,90) e o valor do sedex não é calculado.segue o codigo abaixo:'41106 - Encomenda Normal url_correios="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=41106&CepDestino="& session("PesoTotalCep") &"&CepOrigem="& ceploja &"&Peso="& Session("PesoTotalFrete") &"&ValorDeclarado="& Replace(PesoValorTotal, ".", "") &"&MaoPropria="& mao_propria Set objXMLHTTP = CreateObject("Microsoft.XMLHTTP") objXMLHTTP.open "post", url_correios,false objXMLHTTP.send ValorBox = objXMLHTTP.responseText set objXMLHTTP = nothing p = right(valorbox,len(valorbox)-instr(valorbox,"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", "") if enc = "0rr" then session("frete_encomenda") = "não" else IF enc > 0.00 THEN IF enc > 10.90 THEN session("frete_encomenda") = enc / 2 IF session("frete_encomenda") < 10.90 THEN session("frete_encomenda") = 10.90 END IF ELSE session("frete_encomenda") = 10.90 END IF ELSE session("frete_encomenda") = enc END IF end if '40010 = Sedex Convencional url_correios="http://www.correios.com.br/encomendas/precos/calculo.cfm?Servico=40010&CepDestino="& session("PesoTotalCep") &"&CepOrigem="& ceploja &"&Peso="& Session("PesoTotalFrete") &"&ValorDeclarado="& Replace(PesoValorTotal, ".", "") &"&MaoPropria="& mao_propria Set objXMLHTTP = CreateObject("Microsoft.XMLHTTP") objXMLHTTP.open "post", url_correios,false objXMLHTTP.send ValorBox = objXMLHTTP.responseText set objXMLHTTP = nothing primeira_tarifa = right(valorbox,len(valorbox)-instr(valorbox,"Tarifa")) segunda_tarifa = right(primeira_tarifa,len(primeira_tarifa)-instr(primeira_tarifa,"Tarifa")) final_sedex = replace(replace(left(right(segunda_tarifa,len(segunda_tarifa)-6),5),"&",""),".",",") final_sedex = left(final_sedex,instr(final_sedex,"e")-1) If final_sedex = "0rr" Then session("frete_sedex") = "não" Else session("Frete_sedex") = final_sedex End if Link to comment Share on other sites More sharing options...
0 bareta Posted June 29, 2011 Report Share Posted June 29, 2011 qual a lógica desse trecho ?if enc = "0rr" then session("frete_encomenda") = "não" else IF enc > 0.00 THEN IF enc > 10.90 THEN session("frete_encomenda") = enc / 2 IF session("frete_encomenda") < 10.90 THEN session("frete_encomenda") = 10.90 END IF ELSE session("frete_encomenda") = 10.90 END IF ELSE session("frete_encomenda") = enc END IF end if Link to comment Share on other sites More sharing options...
0 marcelo oli Posted July 15, 2011 Author Report Share Posted July 15, 2011 pois é, não tem logica, rsrsrsrmas isso eu resolvo aqui, esta parte é mais pra usar ou não a encomendamas se puder me ajudar no restante... gostaria apenas de funcionar o calculo com o site dos correios Link to comment Share on other sites More sharing options...
0 -#Alea#- Posted July 19, 2011 Report Share Posted July 19, 2011 Não posso formatar o código seu por falta de tempo, mas tenho usado assim, coloquei valores reais, mas você pode carregar por uma variavel, lembre de sempre lipar os valores ,(virgulas) e .(pontos) if request.QueryString("acao")="atualizar" then quantidade = request.form("quantidade") total = 1960 * quantidade session("valor_total")=total session("quantidade")=quantidade session("valor")= formatnumber((session("frete") + session("valor_total")),2) end if if request.QueryString("acao")="frete" then url_correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa=&sDsSenha=&sCepOrigem=92120030&sCepDestino="&request.form("cepdestino")&"&nVlPeso=1&nCdFormato=1&nVlComprimento=25&nVlAltura=5&nVlLargura=5&sCdMaoPropria=n&nVlValorDeclarado=0&sCdAvisoRecebimento=S&nCdServico="&request.form("frete_tipo")&"&nVlDiametro=5&StrRetorno=xml" session("cep") = request.Form("cepdestino") if request.form("frete_tipo") = "41106" then session("frete_tipo") = "PAC Correiros" else session("frete_tipo") = "SEDEX" end if Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") objXMLHTTP.open "GET", url_correios,false objXMLHTTP.send "" ValorBox = objXMLHTTP.responseText set objXMLHTTP = nothing set objXMLHTTP = nothing Valor = InStr(ValorBox,"Valor") ValorF = MID(ValorBox,Valor+6,6) ValorF = Replace(ValorF,"<","") ValorF = Replace(ValorF,",",".") frete_total = ValorF frete_total = replace(frete_total,".",",") session("frete") = frete_total if request.form("frete_tipo") = "40010" then session("frete_tipo") = "Sedex" else session("frete_tipo") = "PAC Correios" end if session("valor")= formatnumber((frete_total + session("valor_total")),2) end if Link to comment Share on other sites More sharing options...
0 marcelo oli Posted July 20, 2011 Author Report Share Posted July 20, 2011 amigo -#Alea#-fiz algumas alteraçoes e deu certomuito obrigado mesmo pela ajudavaleusegue como ficou'41106 - Encomenda Normal url_correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa= &sDsSenha= &sCepOrigem="&ceploja&" &sCepDestino="&session("PesoTotalCep")&" &nVlPeso="&session("PesoTotalFrete")&" &nCdFormato=1 &nVlComprimento=25 &nVlAltura=5 &nVlLargura=5 &sCdMaoPropria=n &nVlValorDeclarado=0 &sCdAvisoRecebimento=N &nCdServico=41106 &nVlDiametro=5 &StrRetorno=xml" Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") objXMLHTTP.open "GET", url_correios,false objXMLHTTP.send "" ValorBox = objXMLHTTP.responseText set objXMLHTTP = nothing set objXMLHTTP = nothing Valor = InStr(ValorBox,"Valor") ValorF = MID(ValorBox,Valor+6,6) ValorF = Replace(ValorF,"<","") ValorF = Replace(ValorF,",",".") frete_total = ValorF frete_total = replace(frete_total,".",",") final_enc = frete_total If final_enc = "0,00/" Then session("frete_encomenda") = "não" Else session("Frete_encomenda") = final_enc End if '40010 = Sedex Convencional url_correios = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?nCdEmpresa= &sDsSenha= &sCepOrigem="&ceploja&" &sCepDestino="&session("PesoTotalCep")&" &nVlPeso="&session("PesoTotalFrete")&" &nCdFormato=1 &nVlComprimento=25 &nVlAltura=5 &nVlLargura=5 &sCdMaoPropria=n &nVlValorDeclarado=0 &sCdAvisoRecebimento=N &nCdServico=40010 &nVlDiametro=5 &StrRetorno=xml" Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP") objXMLHTTP.open "GET", url_correios,false objXMLHTTP.send "" ValorBox = objXMLHTTP.responseText set objXMLHTTP = nothing set objXMLHTTP = nothing Valor = InStr(ValorBox,"Valor") ValorF = MID(ValorBox,Valor+6,6) ValorF = Replace(ValorF,"<","") ValorF = Replace(ValorF,",",".") frete_total = ValorF frete_total = replace(frete_total,".",",") final_sedex = frete_total If final_sedex = "0,00/" Then session("frete_sedex") = "não" Else session("Frete_sedex") = final_sedex End if Link to comment Share on other sites More sharing options...
Question
marcelo oli
ola, sou novo no forum e tb em programacao, estou com um problema para calcular o frete dos correios (sedex e pac), gostaria da ajuda de vocês.
os problemas são no calculo do pac o valor é sempre o mesmo (R$ 12,90) e o valor do sedex não é calculado.
segue o codigo abaixo:
Link to comment
Share on other sites
4 answers to this question
Recommended Posts