Jump to content
Fórum Script Brasil
  • 0

(Resolvido) erro frete correios


marcelo oli

Question

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

4 answers to this question

Recommended Posts

  • 0

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

  • 0

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

  • 0

amigo -#Alea#-

fiz algumas alteraçoes e deu certo

muito obrigado mesmo pela ajuda

valeu

segue 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

Guest
This topic is now closed to further replies.


  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...