Ir para conteúdo

POWERED BY:

Arquivado

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

mestre fyoda

Calcular Frete

Recommended Posts

frete.asp

<%On Error Resume Next'================================================= ====== Rafael Fernandes D Orazio - CLASSE SEDEX'================================================= ====== Class Sedex Function doCalculoSedex(ByVal ServicoCodigo, ByVal CepOrigem, ByVal CepDestino, ByVal Peso, ByVal MaoPropria, ByVal ValorDeclarado,ByVal AvisoRecebimento) 'Declaração das variáveis/objetos Dim Retorno Dim URL Dim objXmlHttp Dim objXmlDoc 'Inicialização dos objetos/variáveis Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP") Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument") Set doCalculoSedex = New SedexInfo 'Validando as variáveis If ServicoCodigo = "" Then 	ServicoCodigo = 40010 End If Peso = Replace(Peso, ",", ".") If MaoPropria = "" Then MaoPropria = "N" End If ValorDeclarado = Replace(ValorDeclarado, ",", ".") If AvisoRecebimento = "" Then AvisoRecebimento = "N" End If 'Montando a URL para busca no site URL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=Xml" URL = URL & "&servico=" & ServicoCodigo URL = URL & "&cepOrigem=" & CepOrigem URL = URL & "&cepDestino=" & CepDestino URL = URL & "&peso=" & Peso URL = URL & "&MaoPropria=" & MaoPropria URL = URL & "&valorDeclarado=" & ValorDeclarado URL = URL & "&avisoRecebimento=" & AvisoRecebimento objXMLHttp.Open "GET", URL, False objXMLHttp.Send VAL'response.write URL & VAL & "<BR>"'Verificando se a busca foi bem sucedida If objXmlHttp.statusText = "OK" Then objXmlDoc.loadXML(objXmlHttp.responseText) 'Verificando se o retorno foi bem sucediido If TypeName(objXmlDoc) = "DOMDocument" Then doCalculoSedex.Versao = objXmlDoc.selectSingleNode("//calculo_precos//versao_arquivo").text doCalculoSedex.ServicoCodigo = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//servico").text doCalculoSedex.ServicoNome = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//servico_nome").text doCalculoSedex.UFOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//uf_origem").text doCalculoSedex.LocalOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//local_origem").text doCalculoSedex.CEPOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//cep_origem").text doCalculoSedex.UFDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//uf_destino").text doCalculoSedex.LocalDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//local_destino").text doCalculoSedex.CEPDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//cep_destino").text doCalculoSedex.Peso = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//peso").text doCalculoSedex.MaoPropria = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//mao_propria").text doCalculoSedex.AvisoRecebimento = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//aviso_recebimento").text doCalculoSedex.ValorDeclarado = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//valor_declarado").text doCalculoSedex.TarifaValorDeclarado = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//tarifa_valor_declarado").text doCalculoSedex.PrecoPostal = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//preco_postal").text doCalculoSedex.ErroCodigo = objXmlDoc.selectSingleNode("//calculo_precos//erro//codigo").text doCalculoSedex.ErroDescricao = objXmlDoc.selectSingleNode("//calculo_precos//erro//descricao").text Else doCalculoSedex.ErroCodigo = "1001" doCalculoSedex.ErroDescricao = "Não foi possível consultar à base dos correios neste momento." End If Else doCalculoSedex.ErroCodigo = objXmlHttp.status doCalculoSedex.ErroDescricao = objXmlHttp.statusText End If 'Destruindo os objetos Set objXmlDoc = Nothing Set objXmlHttp = Nothing End Function End Class '----------------------------------------------------- 'Classe com os Atributos do Sedex '----------------------------------------------------- Class SedexInfo Public Versao Public ServicoCodigo Public ServicoNome Public UFOrigem Public LocalOrigem Public CEPOrigem Public UFDestino Public LocalDestino Public CEPDestino Public Peso Public MaoPropria Public AvisoRecebimento Public ValorDeclarado Public TarifaValorDeclarado Public PrecoPostal Public ErroCodigo Public ErroDescricao End Class %>

 

 

calcula_frete.asp

 

<!--#include file="frete.asp"--><%Dim objSedex ,objInfo Dim cepOrigemSet objSedex = New Sedex Set objInfo = New SedexInfo cepOrigem = "05204140"Session("cep")  = "05204-140"Session("pesodopedido") = "30"Set objInfo = objSedex.doCalculoSedex("", cepOrigem, Session("cep"), Session("pesodopedido"), "N", "", "N") 	If objInfo.ErroCodigo = "0" Then 				'DADOS DE RETORNO DO CORREIO 		'Response.Write "Serviço: <b>" & objInfo.ServicoNome & "</b><br />" 		'Response.Write "UF Origem: <b>" & objInfo.UFOrigem & "</b><br />" 		'Response.Write "Local Origem: <b>" & objInfo.LocalOrigem & "</b><br />" 		'Response.Write "CEP Origem: <b>" & objInfo.CEPOrigem & "</b><hr />" 		'Response.Write "UF Destino: <b>" & objInfo.UFDestino & "</b><br />" 		'Response.Write "Local Destino: <b>" & objInfo.LocalDestino & "</b><br />" 		'Response.Write "CEP Destino: <b>" & objInfo.CEPDestino & "</b><hr />" 		'Response.Write "Peso: <b>" & objInfo.Peso & "</b><br />" 		'Response.Write "Mao Propria: <b>" & objInfo.MaoPropria & "</b><br />" 		'Response.Write "Valor Declarado: <b>" & objInfo.ValorDeclarado & "</b><br />" 		'Response.Write "Tarifa Valor Declarado: <b>" & objInfo.TarifaValorDeclarado & "</b><br />" 	Else 		'CASO O CEP SEJA INVÁLIDO EXECUTA O ELSE		Response.Write "<script> alert('Cep inválido'); </script>"	End If

Se der algum erro posta ai porque tive que excluir muitos comandos, pois ja tinha desenvolvido o script com ajax, e sem querer pode ter passado algum erro :).

 

mas ai está a minha colaboração !

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentei utilizar o script abaixo e reproduziu o seguinte resultado:

 

Serviço: SEDEX

UF Origem: SP

Local Origem: Interior

CEP Origem: 14076150

--------------------------------------------------------------------------------

UF Destino: SP

Local Destino: Capital

CEP Destino: 05204140

--------------------------------------------------------------------------------

Peso: 30

Mao Propria: 0

Valor Declarado: 0

Tarifa Valor Declarado: 0

 

o Valor da tarifa saiu zerado. Tentei passar como parametro o valor declarado e mesmo assim a tarifa saiu com valor zerado....

 

O que eu estou fazendo de errado? Qual o significado de Valor Declarado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

então....acredito que não.....pois do jeito que eu peguei o código eu somente separei os arquivos...

dentro do arquivo calcula_frete.asp eu tentei alterar o valor de parametro valor declarado na chamada da função mas tb não deu certo....

 

abaixo estou mandando do jeito que eu deixei:

 

calcula_frete.asp

 

 

<!--#include file="frete.asp"-->

<%
Dim objSedex ,objInfo
Dim cepOrigem

Set objSedex = New Sedex
Set objInfo = New SedexInfo

cepOrigem = "14076150"
Session("cep")  = "05204-140"
Session("pesodopedido") = "30"


Set objInfo = objSedex.doCalculoSedex("", cepOrigem, Session("cep"), Session("pesodopedido"), "N", "", "N")

	If objInfo.ErroCodigo = "0" Then

		'DADOS DE RETORNO DO CORREIO
		Response.Write "Serviço: <b>" & objInfo.ServicoNome & "</b><br />"
		Response.Write "UF Origem: <b>" & objInfo.UFOrigem & "</b><br />"
		Response.Write "Local Origem: <b>" & objInfo.LocalOrigem & "</b><br />"
		Response.Write "CEP Origem: <b>" & objInfo.CEPOrigem & "</b><hr />"
		Response.Write "UF Destino: <b>" & objInfo.UFDestino & "</b><br />"
		Response.Write "Local Destino: <b>" & objInfo.LocalDestino & "</b><br />"
		Response.Write "CEP Destino: <b>" & objInfo.CEPDestino & "</b><hr />"
		Response.Write "Peso: <b>" & objInfo.Peso & "</b><br />"
		Response.Write "Mao Propria: <b>" & objInfo.MaoPropria & "</b><br />"
		Response.Write "Valor Declarado: <b>" & objInfo.ValorDeclarado & "</b><br />"
		Response.Write "Tarifa Valor Declarado: <b>" & objInfo.TarifaValorDeclarado & "</b><br />"

	Else

		'CASO O CEP SEJA INVÁLIDO EXECUTA O ELSE
		Response.Write "<script> alert('Cep inválido'); </script>"

	End If
%>







frete.asp





<%
On Error Resume Next

'================================================= ======

' Rafael Fernandes D Orazio - CLASSE SEDEX

'================================================= ======

Class Sedex



Function doCalculoSedex(ByVal ServicoCodigo, ByVal CepOrigem, ByVal CepDestino, ByVal Peso, ByVal MaoPropria, ByVal ValorDeclarado,ByVal AvisoRecebimento)

'Declaração das variáveis/objetos

Dim Retorno
Dim URL
Dim objXmlHttp
Dim objXmlDoc

'Inicialização dos objetos/variáveis
Set objXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
Set objXmlDoc = Server.CreateObject("MSXML2.DOMDocument")
Set doCalculoSedex = New SedexInfo

'Validando as variáveis

If ServicoCodigo = "" Then
	ServicoCodigo = 40010
End If

Peso = Replace(Peso, ",", ".")
If MaoPropria = "" Then

MaoPropria = "N"

End If

ValorDeclarado = Replace(ValorDeclarado, ",", ".")

If AvisoRecebimento = "" Then

AvisoRecebimento = "N"

End If



'Montando a URL para busca no site

URL = "http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=Xml"

URL = URL & "&servico=" & ServicoCodigo

URL = URL & "&cepOrigem=" & CepOrigem

URL = URL & "&cepDestino=" & CepDestino

URL = URL & "&peso=" & Peso

URL = URL & "&MaoPropria=" & MaoPropria

URL = URL & "&valorDeclarado=" & ValorDeclarado

URL = URL & "&avisoRecebimento=" & AvisoRecebimento

objXMLHttp.Open "GET", URL, False

objXMLHttp.Send VAL

'response.write URL & VAL & "<BR>"

'Verificando se a busca foi bem sucedida

If objXmlHttp.statusText = "OK" Then

objXmlDoc.loadXML(objXmlHttp.responseText)

'Verificando se o retorno foi bem sucediido

If TypeName(objXmlDoc) = "DOMDocument" Then

doCalculoSedex.Versao = objXmlDoc.selectSingleNode("//calculo_precos//versao_arquivo").text

doCalculoSedex.ServicoCodigo = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//servico").text

doCalculoSedex.ServicoNome = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//servico_nome").text

doCalculoSedex.UFOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//uf_origem").text

doCalculoSedex.LocalOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//local_origem").text

doCalculoSedex.CEPOrigem = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//cep_origem").text

doCalculoSedex.UFDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//uf_destino").text

doCalculoSedex.LocalDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//local_destino").text

doCalculoSedex.CEPDestino = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//cep_destino").text

doCalculoSedex.Peso = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//peso").text

doCalculoSedex.MaoPropria = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//mao_propria").text

doCalculoSedex.AvisoRecebimento = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//aviso_recebimento").text

doCalculoSedex.ValorDeclarado = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//valor_declarado").text

doCalculoSedex.TarifaValorDeclarado = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//tarifa_valor_declarado").text

doCalculoSedex.PrecoPostal = objXmlDoc.selectSingleNode("//calculo_precos//dados_postais//preco_postal").text

doCalculoSedex.ErroCodigo = objXmlDoc.selectSingleNode("//calculo_precos//erro//codigo").text

doCalculoSedex.ErroDescricao = objXmlDoc.selectSingleNode("//calculo_precos//erro//descricao").text

Else

doCalculoSedex.ErroCodigo = "1001"

doCalculoSedex.ErroDescricao = "Não foi possível consultar à base dos correios neste momento."

End If

Else

doCalculoSedex.ErroCodigo = objXmlHttp.status
doCalculoSedex.ErroDescricao = objXmlHttp.statusText

End If

'Destruindo os objetos

Set objXmlDoc = Nothing

Set objXmlHttp = Nothing

End Function

End Class



'-----------------------------------------------------

'Classe com os Atributos do Sedex

'-----------------------------------------------------

Class SedexInfo

Public Versao

Public ServicoCodigo

Public ServicoNome

Public UFOrigem

Public LocalOrigem

Public CEPOrigem

Public UFDestino

Public LocalDestino

Public CEPDestino

Public Peso

Public MaoPropria

Public AvisoRecebimento

Public ValorDeclarado

Public TarifaValorDeclarado

Public PrecoPostal

Public ErroCodigo

Public ErroDescricao

End Class
%>

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.