예제 #1
0
        public ActionResult DetailsEncerrado(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PedidoFinal_usuario pedidoFinal_usuario = db.PedidoFinal_usuario.Find(id);

            if (pedidoFinal_usuario == null)
            {
                return(HttpNotFound());
            }

            EnvioFornecedor envioFornecedor = db.EnvioFornecedor.Where(t => t.idPedido == pedidoFinal_usuario.idPedido).FirstOrDefault();

            //dados fornecedor
            Produto_fornecedor prodForn   = db.Produto_fornecedor.Find(pedidoFinal_usuario.Produto_fornecedor_idProduto_fornecedor);
            Fornecedor         fornecedor = db.Fornecedor.Find(prodForn.Fornecedor_idFornecedor);
            String             cepForn    = fornecedor.CEP;

            //valor de custo
            Veiculo veiculo = db.Veiculo.Find(envioFornecedor.idVeiculo);

            double.TryParse(veiculo.custo_frete, out double custoPKM);

            //dados armazem
            Produto_armazem prodArm    = db.Produto_armazem.Find(prodForn.idProduto_fornecedor);
            Armazem         armazem    = db.Armazem.Find(prodArm.Armazem_idArmazem);
            String          cepArmazem = armazem.CEP;

            //carrega o xml
            CalculaFreteController calculaFrete = new CalculaFreteController();
            XElement xml = calculaFrete.CalculaDistancia(cepForn, cepArmazem);

            String origem    = string.Format("Origem: {0}", xml.Element("origin_address").Value);
            String destino   = string.Format("Destino: {0}", xml.Element("destination_address").Value);
            String distancia = string.Format("Distancia: {0}", xml.Element("row").Element("element").Element("distance").Element("text").Value);
            String duracao   = string.Format("Duração: {0}", xml.Element("row").Element("element").Element("duration").Element("text").Value);


            var element = xml.Element("row").Element("element").Element("distance").Element("text").Value;
            var result  = System.Text.RegularExpressions.Regex.Split(element, " ");

            var    distance     = result[0];
            double distancaeInt = Convert.ToDouble(distance);

            double Custo      = distancaeInt * custoPKM;
            String custoTotal = "Frete: " + Custo.ToString();

            String valores = origem + "\n" + destino + "\n" + distancia + "\n" + duracao + "\n" + custoTotal;

            ViewBag.DadosFrete = valores;

            return(View(pedidoFinal_usuario));
        }
예제 #2
0
        // GET: PedidoFinalUsuario/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PedidoFinal_usuario pedidoFinal_usuario = db.PedidoFinal_usuario.Find(id);

            if (pedidoFinal_usuario == null)
            {
                return(HttpNotFound());
            }

            //dados fornecedor
            Produto_fornecedor prodForn   = db.Produto_fornecedor.Find(pedidoFinal_usuario.Produto_fornecedor_idProduto_fornecedor);
            Fornecedor         fornecedor = db.Fornecedor.Find(prodForn.Fornecedor_idFornecedor);
            String             cepForn    = fornecedor.CEP;

            //dados armazem
            Produto_armazem prodArm    = db.Produto_armazem.Find(prodForn.idProduto_fornecedor);
            Armazem         armazem    = db.Armazem.Find(prodArm.Armazem_idArmazem);
            String          cepArmazem = armazem.CEP;

            //carrega o xml
            CalculaFreteController calculaFrete = new CalculaFreteController();
            XElement xml = calculaFrete.CalculaDistancia(cepForn, cepArmazem);
            // Formatar a resposta

            /*
             * String valores = string.Format("Origem: {0} \n Destino: {1} \n Duração da Viagem: {2} \n Distância: {3}",
             *  //Pegar endereço de origem
             *  xml.Element("origin_address").Value,
             *  //Pegar endereço de destino
             *  xml.Element("destination_address").Value,
             *  //Pegar duração
             *  xml.Element("row").Element("element").Element("duration").Element("text").Value,
             *  //Pegar distância ente os dois pontos
             *  xml.Element("row").Element("element").Element("distance").Element("text").Value
             *  );*/
            String origem    = string.Format("Origem: {0}", xml.Element("origin_address").Value);
            String destino   = string.Format("Destino: {0}", xml.Element("destination_address").Value);
            String distancia = string.Format("Distancia: {0}", xml.Element("row").Element("element").Element("distance").Element("text").Value);
            String duracao   = string.Format("Duração: {0}", xml.Element("row").Element("element").Element("duration").Element("text").Value);
            String valores   = origem + "\n" + destino + "\n" + distancia + "\n" + duracao;

            ViewBag.DadosFrete = valores;

            return(View(pedidoFinal_usuario));
        }