コード例 #1
0
        private async Task <ValorPrazoFrete> CalcularValorPrazoFrete(String cepDestino, String tipoFrete, Pacote pacote)
        {
            var cepOrigem        = _configuration.GetValue <String>("Frete:CepOrigem");
            var maoPropria       = _configuration.GetValue <String>("Frete:MaoPropria");
            var avisoRecebimento = _configuration.GetValue <String>("Frete:AvisoRecebimento");
            var diametro         = Math.Max(Math.Max(pacote.Comprimento, pacote.Largura), pacote.Altura);


            cResultado resultado = await _servico.CalcPrecoPrazoAsync("", "", tipoFrete, cepOrigem, cepDestino, pacote.Peso.ToString(), 1, pacote.Comprimento, pacote.Altura, pacote.Largura, diametro, maoPropria, 0, avisoRecebimento);

            if (resultado.Servicos[0].Erro == "0")
            {
                var valorLimpo = resultado.Servicos[0].Valor.Replace(".", "");
                var valorFinal = double.Parse(valorLimpo);

                return(new ValorPrazoFrete()
                {
                    TipoFrete = TipoFreteConstant.GetNames(tipoFrete),
                    CodTipoFrete = tipoFrete,
                    Prazo = int.Parse(resultado.Servicos[0].PrazoEntrega),
                    Valor = valorFinal
                });
            }
            else if (resultado.Servicos[0].Erro == "008")
            {
                //Ex.: SEDEX10 - não entrega naquela região
                return(null);
            }
            else
            {
                throw new Exception("Erro: " + resultado.Servicos[0].MsgErro);
            }
        }
コード例 #2
0
        public async Task <ValorPrazoFrete> CalcularValorPrazoFrete(string cepDestino, string tipoFrete, Pacote pacote)
        {
            var cepOrigem        = _configuration.GetValue <String>("Frete:CepOrigem");
            var maoPropria       = _configuration.GetValue <String>("Frete:MaoPropria");
            var avisoRecebimento = _configuration.GetValue <String>("Frete:AvisoRecebimento");
            var diametro         = Math.Max(Math.Max(pacote.Comprimento, pacote.Largura), pacote.Altura);

            //

            cResultado resultado = await _servico.CalcPrecoPrazoAsync("", "", tipoFrete, cepOrigem, cepDestino, pacote.Peso.ToString(), 1, pacote.Comprimento, pacote.Altura, pacote.Largura, diametro, maoPropria, 0, avisoRecebimento);

            if (resultado.Servicos[0].Erro == "0")
            {
                //Deu certo - implementar um resultado - valor e prazo de entrega, tipo frete

                return(new ValorPrazoFrete()
                {
                    TipoFrete = TipoFreteConstante.GetNames(tipoFrete),
                    CodigoTipoFrete = tipoFrete,
                    Prazo = int.Parse(resultado.Servicos[0].PrazoEntrega),
                    Valor = double.Parse(resultado.Servicos[0].Valor.Replace(".", ""))
                });
            }
            else if (resultado.Servicos[0].Erro == "008" || resultado.Servicos[0].Erro == "-888")
            {
                //Exempo de codigo para n possuir entrega na região, ex: SEDEX10
                return(null);
            }
            else
            {
                //Deu ruim
                throw new Exception("Erro: " + resultado.Servicos[0].MsgErro);
            }
        }
コード例 #3
0
        private async Task <ValorPrazoFrete> CalcularValorPrazoFrete(String cepDestino, String tipoFrete, PacoteFrete pacoteFrete)
        {
            var cepOrigem        = _configuration.GetValue <string>("Frete:cepOrigem");
            var maoPropria       = _configuration.GetValue <string>("Frete:maoPropria");
            var avisoRecebimento = _configuration.GetValue <string>("Frete:avisoRecebimento");
            var diametro         = Math.Max(Math.Max(pacoteFrete.Comprimento, pacoteFrete.Largura), pacoteFrete.Altura);

            cResultado resultado = await _servico.CalcPrecoPrazoAsync("", "", tipoFrete, cepOrigem, cepDestino, pacoteFrete.Peso.ToString(), 1, pacoteFrete.Comprimento,
                                                                      pacoteFrete.Altura, pacoteFrete.Largura, diametro, maoPropria, 0, avisoRecebimento);

            if (resultado.Servicos[0].Erro == "0")
            {
                return(new ValorPrazoFrete()
                {
                    TipoFrete = int.Parse(tipoFrete),
                    Prazo = int.Parse(resultado.Servicos[0].PrazoEntrega),
                    Valor = double.Parse(resultado.Servicos[0].Valor.Replace(".", "").Replace(",", ".")),
                });
            }
            else
            {
                return(new ValorPrazoFrete()
                {
                });
                //("Erro: " + resultado.Servicos[0].MsgErro);
            }
        }
コード例 #4
0
        public async Task <ValueDeadlineFreight> CalculateValueDeadLineFreight(string cepDestiny, string typeFreight, Package package)
        {
            var cepOrigem        = _configuration.GetValue <string>("Freight:CepOrigem");
            var maoPropria       = _configuration.GetValue <string>("Freight:MaoPropria");
            var avisoRecebimento = _configuration.GetValue <string>("Freight:AvisoRecebimento");
            var diametro         = Math.Max(Math.Max(package.Length, package.Width), package.Height);

            cResultado result = await _service.CalcPrecoPrazoAsync("",
                                                                   "",
                                                                   typeFreight,
                                                                   cepOrigem,
                                                                   cepDestiny,
                                                                   package.Weight.ToString(),
                                                                   1,
                                                                   package.Length,
                                                                   package.Height,
                                                                   package.Width,
                                                                   diametro,
                                                                   maoPropria,
                                                                   0,
                                                                   avisoRecebimento);

            if (result.Servicos[0].Erro == "0")
            {
                var cleanValue = result.Servicos[0].Valor.Replace(".", "");
                var finalValue = double.Parse(cleanValue);


                return(new ValueDeadlineFreight()
                {
                    TypeFreight = TypeFreightConstant.GetNames(typeFreight),
                    ServiceCode = typeFreight,
                    Deadline = int.Parse(result.Servicos[0].PrazoEntrega),
                    Value = finalValue
                });
            }
            else if (result.Servicos[0].Erro == "008" || result.Servicos[0].Erro == "-888")
            {
                //SEDEX10 - Don't delivery in region
                return(null);
            }
            else
            {
                throw new Exception("Erro" + result.Servicos[0].MsgErro);
            }
        }