コード例 #1
0
        public int Adicionar(PedidoBO pedido)
        {
            var query = new StringBuilder();

            query.Append("INSERT INTO pedido (cliente_id, valor_bruto, valor_liquido, valor_desconto, pedido_situacao_id, sincronizar) ");
            query.Append("VALUES (@cliente_id, @valor_bruto, @valor_liquido, @valor_desconto, @pedido_situacao_id, @sincronizar); SELECT SCOPE_IDENTITY();");

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Chronos.Windows.Connection"].ToString()))
            {
                conn.Open();

                var cmd = new SqlCommand(query.ToString(), conn);

                cmd.Parameters.AddWithValue("@cliente_id", pedido.ClienteId);
                cmd.Parameters.AddWithValue("@valor_bruto", pedido.ValorBruto);
                cmd.Parameters.AddWithValue("@valor_liquido", pedido.ValorLiquido);
                cmd.Parameters.AddWithValue("@valor_desconto", pedido.ValorDesconto);
                cmd.Parameters.AddWithValue("@pedido_situacao_id", pedido.PedidoSituacaoId);
                cmd.Parameters.AddWithValue("@sincronizar", pedido.Sincronizar);

                int id = Convert.ToInt32(cmd.ExecuteScalar());
                //cmd.ExecuteNonQuery();
                return(id);
            }
        }
コード例 #2
0
        public ActionResult FinalizarPedido(string id_transacao = "")
        {
            Pedido  pedido  = (Pedido)HttpContext.Session["pedido"];
            Usuario usuario = (Usuario)HttpContext.Session["usuario"];

            if (pedido == null && usuario != null)
            {
                pedido = PedidoBO.ObterPedidoUsuario(usuario.Id);
            }
            if (!string.IsNullOrEmpty(id_transacao) && pedido != null && pedido.Id != 0)
            {
                pedido             = PedidoBO.ObterPedido(pedido.Id);
                pedido.Sacola      = SacolaBO.ObterSacola(pedido.SacolaId);
                pedido.IdTransacao = id_transacao;
                PedidoBO.EditarPedido(pedido);
            }
            HttpContext.Session["pedido"]   = null;
            HttpContext.Session["sacola"]   = null;
            ViewBag.ValorProdutoSelecionado = 0;
            ViewBag.QtdeProdutoSelecionado  = 0;
            ViewBag.ProdutosSacola          = "";
            ViewBag.Usuario = usuario;

            return(View("", pedido));
        }
コード例 #3
0
        private void btnAdicionar_Click(object sender, EventArgs e)
        {
            if (cboCliente.SelectedValue != null && cboCliente.SelectedItem is ClienteBO &&
                cboProduto.SelectedItem != null && cboProduto.SelectedItem is ProdutoBO &&
                (!string.IsNullOrWhiteSpace(txtQuantidade.Text) && decimal.Parse(txtQuantidade.Text) > 0)
                )
            {
                var cliente = (ClienteBO)cboCliente.SelectedItem;
                var produto = (ProdutoBO)cboProduto.SelectedItem;

                var pedido = new PedidoBO();
                pedido.Id          = this.id;
                pedido.ClienteId   = cliente.Id;
                pedido.Sincronizar = true;

                var pedidoItem = new PedidoItemBO();
                pedidoItem.Id            = 0;
                pedidoItem.PedidoId      = this.id;
                pedidoItem.ProdutoId     = produto.Id;
                pedidoItem.Quantidade    = decimal.Parse(txtQuantidade.Text);
                pedidoItem.ValorUnitario = produto.Preco;
                pedidoItem.ValorBruto    = (pedidoItem.ValorUnitario * pedidoItem.Quantidade);
                pedidoItem.ValorDesconto = !string.IsNullOrWhiteSpace(txtValorDesconto.Text) ? decimal.Parse(txtValorDesconto.Text) : 0;
                pedidoItem.ValorLiquido  = (pedidoItem.ValorBruto - pedidoItem.ValorDesconto);

                var itens = new PedidoItemCO().Adicionar(pedido, pedidoItem);

                this.id = pedido.Id;
                this.CarregarItens(itens);
                this.CarregarTotais(pedido);
                this.LimparProduto();
                cboProduto.Focus();
            }
        }
コード例 #4
0
        public ActionResult RelatorioPedido()
        {
            Usuario admin = (Usuario)HttpContext.Session["admin"];

            if (admin == null)
            {
                return(View("Login"));
            }

            var viewer = new Microsoft.Reporting.WebForms.ReportViewer();

            viewer.ProcessingMode         = Microsoft.Reporting.WebForms.ProcessingMode.Local;
            viewer.LocalReport.ReportPath = Request.MapPath(Request.ApplicationPath) + @"report/RelatorioPedido.rdlc";

            ReportDataSource datasource = new ReportDataSource();

            datasource.Name  = "DataSet1";
            datasource.Value = PedidoBO.ListarTodosPedidos();
            viewer.LocalReport.DataSources.Add(datasource);
            viewer.SizeToReportContent = true;
            viewer.Width         = System.Web.UI.WebControls.Unit.Pixel(800);
            viewer.Height        = System.Web.UI.WebControls.Unit.Pixel(1200);
            ViewBag.ReportViewer = viewer;

            return(View("Relatorio"));
        }
コード例 #5
0
        private void CriarPedido(string cpf = "", long idPedido = 0)
        {
            Sacola  sacola  = (Sacola)HttpContext.Session["sacola"];
            Usuario usuario = (Usuario)HttpContext.Session["usuario"];

            if (usuario != null && String.IsNullOrEmpty(usuario.Cpf))
            {
                usuario = UsuarioBO.ObterUsuario(usuario.Email);
            }
            if (usuario == null || !UsuarioBO.ExisteUsuario(usuario.Email))
            {
                usuario = CriarUsuario();
            }


            Pedido pedido = new Pedido();

            pedido.Id      = idPedido;
            pedido.Data    = DateTime.Now.Day.ToString().PadLeft(2, '0') + "/" + DateTime.Now.Month.ToString().PadLeft(2, '0') + "/" + DateTime.Now.Year;
            pedido.Hora    = DateTime.Now.Hour.ToString().PadLeft(2, '0') + ":" + DateTime.Now.Minute.ToString().PadLeft(2, '0');
            pedido.Usuario = usuario;
            pedido.Sacola  = sacola;
            foreach (SacolaProduto sacProd in pedido.Sacola.Produtos)
            {
                sacProd.Id        = 0;
                sacProd.ProdutoId = sacProd.Produto.Id;
            }
            pedido.Sacola.Id = 0;
            PedidoBO.GravarPedido(pedido);
            pedido.SacolaId = pedido.Sacola.Id;
            PedidoBO.EditarPedido(pedido);

            HttpContext.Session["pedido"]  = pedido;
            HttpContext.Session["usuario"] = usuario;
        }
コード例 #6
0
        public ActionResult EstadoPreparando(string ID)
        {
            PedidoBO ObjBO = new PedidoBO();

            ObjBO.ID = int.Parse(ID);
            ObjModel.EstadoPreparando(ObjBO);
            return(RedirectToAction("DashBoard", "DashBoard"));
        }
コード例 #7
0
        public int EstadoEntregado(PedidoBO ObjBO)
        {
            SqlCommand cmd = new SqlCommand("UPDATE PEDIDO SET IDESTADO = 3 WHERE ID = @ID");

            cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ObjBO.ID;
            cmd.CommandType = CommandType.Text;
            return(ObjConex.EjecutarComando(cmd));
        }
コード例 #8
0
        public ActionResult Eliminar(string ID)
        {
            PedidoBO ObjBO = new PedidoBO();

            ObjBO.ID = int.Parse(ID);
            ObjModel.Eliminar(ObjBO);
            return(RedirectToAction("DasBoard", "DashBoard"));
        }
コード例 #9
0
        private void CarregarTotais(PedidoBO pedido)
        {
            txtTotaisValorBruto.Text    = pedido.ValorBruto.ToString();
            txtTotaisValorDesconto.Text = pedido.ValorDesconto.ToString();
            txtTotaisValorLiquido.Text  = pedido.ValorLiquido.ToString();

            this.HabilitaControles();
        }
コード例 #10
0
        public int Eliminar(PedidoBO ObjBO)
        {
            SqlCommand cmd = new SqlCommand("DELETE FROM [dbo].[PEDIDO] WHERE ID = @ID");

            cmd.Parameters.Add("@ID", SqlDbType.Int).Value = ObjBO.ID;
            cmd.CommandType = CommandType.Text;
            return(ObjConex.EjecutarComando(cmd));
        }
コード例 #11
0
        public HttpResponseMessage GetPedidos(string usuario)
        {
            PedidoModel objPedido = new PedidoModel();
            var         pedidos   = objPedido.ObtenerPedidoGeneral();

            List <PedidoBO> pedidoslist = new List <PedidoBO>();

            if (pedidos.Rows.Count > 0)
            {
                foreach (DataRow p in pedidos.Rows)
                {
                    PedidoBO pedido = new PedidoBO();

                    pedido.Usuario     = p["NOMBRE"].ToString();
                    pedido.ESTADO      = bool.Parse(p["ESTADO"].ToString());
                    pedido.TOTAL       = double.Parse(p["TOTAL"].ToString());
                    pedido.FECHAPEDIDO = DateTime.Parse(p["FECHAPEDIDO"].ToString());
                    pedido.HORAPEDIDO  = TimeSpan.Parse(p["HORAPEDIDO"].ToString());
                    pedido.HORAENTREGA = TimeSpan.Parse(p["HORAENTREGA"].ToString());
                    pedido.ID          = int.Parse(p["ID"].ToString());

                    var detalles = objPedido.ObtenerDetallePedido(pedido.ID);

                    pedido.DETALLES = new List <DetallePedidoBO>();
                    foreach (DataRow dp in detalles.Rows)
                    {
                        DetallePedidoBO detalle = new DetallePedidoBO();

                        detalle.ID     = int.Parse(dp["ID"].ToString());
                        detalle.NOMBRE = dp["NOMBRE"].ToString();
                        detalle.PRECIO = dp["PRECIO"].ToString();

                        pedido.DETALLES.Add(detalle);
                    }


                    pedidoslist.Add(pedido);
                }

                var response = this.Request.CreateResponse(HttpStatusCode.OK);
                response.Content = new StringContent(JsonConvert.SerializeObject(pedidoslist), Encoding.UTF8, "application/json");

                return(response);
            }
            var responsee = this.Request.CreateResponse(HttpStatusCode.InternalServerError);

            responsee.Content = new StringContent(JsonConvert.SerializeObject("NO ITEMS"), Encoding.UTF8, "application/json");

            return(responsee);
        }
コード例 #12
0
        public ActionResult PesquisaPedido(PesquisaAdmin pesquisa)
        {
            Usuario admin = (Usuario)HttpContext.Session["admin"];

            if (admin == null)
            {
                return(new RedirectResult("~/Admin/Admin/Login"));
            }
            string        data        = pesquisa.Data.Replace("/", "");
            List <Pedido> listaPedido = PedidoBO.ListarPedido(data.Substring(4, 4), data.Substring(2, 2), data.Substring(0, 2), true);

            ViewBag.ListaPedido = listaPedido.OrderByDescending(c => c.Id);
            if (listaPedido == null || listaPedido.Count == 0)
            {
                TempData["Erro"] = "Pesquisa não retornou resultados.";
            }
            return(View("PesquisaPedido", pesquisa));
        }
コード例 #13
0
        private List <PedidoBO> CarregarPedidos(DataTable pedidos)
        {
            var result = new List <PedidoBO>();

            foreach (DataRow dr in pedidos.Rows)
            {
                var pedido = new PedidoBO();
                pedido.Id               = int.Parse(dr["id"].ToString());
                pedido.ClienteId        = int.Parse(dr["cliente_id"].ToString());
                pedido.ValorBruto       = decimal.Parse(dr["valor_bruto"].ToString());
                pedido.ValorLiquido     = decimal.Parse(dr["valor_liquido"].ToString());
                pedido.ValorDesconto    = decimal.Parse(dr["valor_desconto"].ToString());
                pedido.PedidoSituacaoId = int.Parse(dr["pedido_situacao_id"].ToString());

                result.Add(pedido);
            }

            return(result);
        }
コード例 #14
0
        public ActionResult PesquisaUsuario(PesquisaAdmin pesquisa)
        {
            Usuario admin = (Usuario)HttpContext.Session["admin"];

            if (admin == null)
            {
                return(new RedirectResult("~/Admin/Admin/Login"));
            }
            Usuario usuario = UsuarioBO.ObterUsuario(pesquisa.Usuario);

            if (usuario == null)
            {
                TempData["Erro"] = "Pesquisa não retornou resultados.";
            }
            usuario.ListaPedido = PedidoBO.ListarPedidoUsuario(usuario.Id);
            usuario.ListaPedido = usuario.ListaPedido.OrderByDescending(c => c.Id).ToList();
            ViewBag.Usuario     = usuario;
            return(View("PesquisaUsuario", pesquisa));
        }
コード例 #15
0
        public ActionResult ListadoGeneral()
        {
            PedidoModel objPedido = new PedidoModel();
            var         pedidos   = objPedido.ObtenerPedidoGeneral();

            List <PedidoBO> pedidoslist = new List <PedidoBO>();

            foreach (DataRow p in pedidos.Rows)
            {
                PedidoBO pedido = new PedidoBO();

                pedido.Usuario     = p["NOMBRE"].ToString();
                pedido.ESTADO      = bool.Parse(p["ESTADO"].ToString());
                pedido.TOTAL       = double.Parse(p["TOTAL"].ToString());
                pedido.FECHAPEDIDO = DateTime.Parse(p["FECHAPEDIDO"].ToString());
                pedido.HORAPEDIDO  = TimeSpan.Parse(p["HORAPEDIDO"].ToString());
                pedido.HORAENTREGA = TimeSpan.Parse(p["HORAENTREGA"].ToString());
                pedido.ID          = int.Parse(p["ID"].ToString());

                var detalles = objPedido.ObtenerDetallePedido(pedido.ID);

                pedido.DETALLES = new List <DetallePedidoBO>();
                foreach (DataRow dp in detalles.Rows)
                {
                    DetallePedidoBO detalle = new DetallePedidoBO();

                    detalle.ID     = int.Parse(dp["ID"].ToString());
                    detalle.NOMBRE = dp["NOMBRE"].ToString();
                    detalle.PRECIO = dp["PRECIO"].ToString();

                    pedido.DETALLES.Add(detalle);
                }


                pedidoslist.Add(pedido);
            }
            return(View(pedidoslist.ToList()));
        }
コード例 #16
0
        public List <PedidoItemBO> Adicionar(PedidoBO pedido, PedidoItemBO pedidoItem)
        {
            pedido.PedidoSituacaoId = 1;

            if (pedido.Id == 0)
            {
                pedido.Id = new PedidoCO().Adicionar(pedido);
            }

            pedidoItem.PedidoId = pedido.Id;

            var itens = this.PedidoItemPorPedidoId(pedido.Id);

            this.AdicionaItem(pedidoItem);
            itens.Add(pedidoItem);

            pedido.ValorBruto    = itens.Sum(f => f.ValorBruto);
            pedido.ValorDesconto = itens.Sum(f => f.ValorDesconto);
            pedido.ValorLiquido  = itens.Sum(f => f.ValorLiquido);

            new PedidoDAO().AtualizarTotais(pedido);
            return(itens);
        }
コード例 #17
0
        public void AtualizarTotais(PedidoBO pedido)
        {
            var query = new StringBuilder();

            query.Append(@"UPDATE pedido SET valor_bruto = @valor_bruto,
                                             valor_liquido = @valor_liquido, 
                                             valor_desconto = @valor_desconto
                          WHERE id = @id ");

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Chronos.Windows.Connection"].ToString()))
            {
                conn.Open();

                var cmd = new SqlCommand(query.ToString(), conn);

                cmd.Parameters.AddWithValue("@valor_bruto", pedido.ValorBruto);
                cmd.Parameters.AddWithValue("@valor_liquido", pedido.ValorLiquido);
                cmd.Parameters.AddWithValue("@valor_desconto", pedido.ValorDesconto);
                cmd.Parameters.AddWithValue("@id", pedido.Id);

                cmd.ExecuteNonQuery();
            }
        }
コード例 #18
0
 public int Adicionar(PedidoBO pedido)
 {
     return(new PedidoDAO().Adicionar(pedido));
 }
コード例 #19
0
        public ActionResult AtualizarStatus(PesquisaAdmin pesquisa)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            log.Debug("-------------------------------Atualizar Status");
            Usuario admin = (Usuario)HttpContext.Session["admin"];

            if (admin == null)
            {
                return(new RedirectResult("~/Admin/Admin/Login"));
            }
            List <Pedido> listaPedidosAlterados = new List <Pedido>();
            string        erro = "Não atualizou o dia: ";

            try
            {
                string data = pesquisa.Data.Replace("/", "");

                DateTime diaPesquisa = new DateTime(Int32.Parse(data.Substring(4, 4)), Int32.Parse(data.Substring(2, 2)), Int32.Parse(data.Substring(0, 2)));
                log.Debug("-------------------------------ListarPedido");
                List <Pedido> listaPedido = PedidoBO.ListarPedido(diaPesquisa.Year.ToString(), diaPesquisa.Month.ToString().PadLeft(2, '0'), diaPesquisa.Day.ToString().PadLeft(2, '0'), true);
                try
                {
                    log.Debug("-------------------------------Salvar1");
                    this.SalvarStatusAlterado(listaPedido, listaPedidosAlterados);
                }
                catch (Exception e)
                {
                    erro = erro + diaPesquisa + "/n";
                    log.Debug("-------------------------------Erro1:" + e.ToString());
                }
                listaPedido.Clear();
                DateTime diaPesquisa1 = diaPesquisa.AddDays(-1);
                listaPedido.AddRange(PedidoBO.ListarPedido(diaPesquisa1.Year.ToString(), diaPesquisa1.Month.ToString().PadLeft(2, '0'), diaPesquisa1.Day.ToString().PadLeft(2, '0'), true));
                try
                {
                    log.Debug("-------------------------------Salvar2");
                    this.SalvarStatusAlterado(listaPedido, listaPedidosAlterados);
                }
                catch (Exception e)
                {
                    log.Debug("-------------------------------Erro2:" + e.ToString());
                    erro = erro + diaPesquisa1 + "/n";
                }

                listaPedido.Clear();
                DateTime diaPesquisa2 = diaPesquisa.AddDays(-2);
                listaPedido.AddRange(PedidoBO.ListarPedido(diaPesquisa2.Year.ToString(), diaPesquisa2.Month.ToString().PadLeft(2, '0'), diaPesquisa2.Day.ToString().PadLeft(2, '0'), true));
                try
                {
                    log.Debug("-------------------------------Salvar3");
                    this.SalvarStatusAlterado(listaPedido, listaPedidosAlterados);
                }
                catch (Exception e)
                {
                    log.Debug("-------------------------------Erro3:" + e.ToString());
                    erro = erro + diaPesquisa2 + "/n";
                }
                listaPedido.Clear();

                DateTime diaPesquisa3 = diaPesquisa.AddDays(-3);
                listaPedido.AddRange(PedidoBO.ListarPedido(diaPesquisa3.Year.ToString(), diaPesquisa3.Month.ToString().PadLeft(2, '0'), diaPesquisa3.Day.ToString().PadLeft(2, '0'), true));
                try
                {
                    log.Debug("-------------------------------Salvar4");
                    this.SalvarStatusAlterado(listaPedido, listaPedidosAlterados);
                }
                catch (Exception e)
                {
                    log.Debug("-------------------------------Erro4:" + e.ToString());
                    erro = erro + diaPesquisa3 + "/n";
                }
                listaPedido.Clear();

                DateTime diaPesquisa4 = diaPesquisa.AddDays(-4);
                listaPedido.AddRange(PedidoBO.ListarPedido(diaPesquisa4.Year.ToString(), diaPesquisa4.Month.ToString().PadLeft(2, '0'), diaPesquisa4.Day.ToString().PadLeft(2, '0'), true));
                try
                {
                    log.Debug("-------------------------------Salvar5");
                    this.SalvarStatusAlterado(listaPedido, listaPedidosAlterados);
                }
                catch (Exception e)
                {
                    log.Debug("-------------------------------Erro5:" + e.ToString());
                    erro = erro + diaPesquisa4 + "/n";
                }
                listaPedido.Clear();

                DateTime diaPesquisa5 = diaPesquisa.AddDays(-5);
                listaPedido.AddRange(PedidoBO.ListarPedido(diaPesquisa5.Year.ToString(), diaPesquisa5.Month.ToString().PadLeft(2, '0'), diaPesquisa5.Day.ToString().PadLeft(2, '0'), true));
                try
                {
                    log.Debug("-------------------------------Salvar6");
                    this.SalvarStatusAlterado(listaPedido, listaPedidosAlterados);
                }
                catch (Exception e)
                {
                    log.Debug("-------------------------------Erro6:" + e.ToString());
                    erro = erro + diaPesquisa5 + "/n";
                }



                // https://dev.pagseguro.uol.com.br/docs/checkout-web-consulta#parametros-da-api

                /*
                 * https://ws.pagseguro.uol.com.br/v2/transactions/9E884542-81B3-4419-9A75-BCC6FB495EF1
                 *  [email protected]
                 *  &token=95112EE828D94278BD394E91C4388F20
                 * <transactionSearchResult>
                 *  <transactions>
                 *  <transaction>
                 *  <status>
                 * Codigo	Significado
                 * 1	Aguardando pagamento: o comprador iniciou a transação, mas até o momento o PagSeguro não recebeu nenhuma informação sobre o pagamento.
                 * 2	Em análise: o comprador optou por pagar com um cartão de crédito e o PagSeguro está analisando o risco da transação.
                 * 3	Paga: a transação foi paga pelo comprador e o PagSeguro já recebeu uma confirmação da instituição financeira responsável pelo processamento.
                 * 4	Disponível: a transação foi paga e chegou ao final de seu prazo de liberação sem ter sido retornada e sem que haja nenhuma disputa aberta.
                 * 5	Em disputa: o comprador, dentro do prazo de liberação da transação, abriu uma disputa.
                 * 6	Devolvida: o valor da transação foi devolvido para o comprador.
                 * 7	Cancelada: a transação foi cancelada sem ter sido finalizada.
                 * 8	Debitado: o valor da transação foi devolvido para o comprador.
                 * 9	Retenção temporária: o comprador abriu uma solicitação de chargeback junto à operadora do cartão de crédito.*/
                //XmlDocument doc = new XmlDocument();
                // XmlNodeList infoElem = doc.GetElementsByTagName("status");
            }
            catch (Exception e)
            {
                TempData["Erro"] = e.ToString();
            }
            AtualizarStatus statusObj = new AtualizarStatus();

            statusObj.HoraAtualizacao    = DateTime.Now;
            statusObj.UsuarioAlteracao   = admin;
            statusObj.NrPedidosAlterados = listaPedidosAlterados.Count;
            foreach (Pedido pedido in listaPedidosAlterados)
            {
                AtualizarStatusPedido asPedido = new AtualizarStatusPedido();
                asPedido.PedidoId        = pedido.Id;
                asPedido.Pedido          = pedido;
                asPedido.AtualizarStatus = statusObj;
                statusObj.ListaPedidosAlterados.Add(asPedido);
            }
            //statusObj.ListaPedidosAlterados = listaPedidosAlterados;
            AtualizarStatusBO.CriarAtualizacaoStatus(statusObj);
            ViewBag.Status = statusObj;
            foreach (Pedido pedido in listaPedidosAlterados)
            {
                if (pedido.Status.Equals("3"))
                {
                    this.EnviarEmailEnviarPedido(pedido);
                }
            }
            if (!string.IsNullOrEmpty(erro) && !erro.Equals("Não atualizou o dia: "))
            {
                TempData["Erro"] = erro;
            }
            TempData["Mensagem"] = " Atualizacao efetuada com sucesso. Foram alterados:" + listaPedidosAlterados.Count + " registros.";
            return(View("Status"));
        }
コード例 #20
0
        public ActionResult PagSeguro()
        {
            log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            log.Debug("-------------------------------PagSeguro");
            Sacola  sacola  = (Sacola)HttpContext.Session["sacola"];
            Usuario usuario = (Usuario)HttpContext.Session["usuario"];
            Pedido  pedido  = (Pedido)HttpContext.Session["pedido"];
            string  code    = "";

            if (pedido == null)
            {
                pedido = new Pedido();
                long ultimoId = PedidoBO.ObterUltimoId();
                pedido.Id = long.Parse(PreencherId(ultimoId.ToString()));
            }

            try
            {
                //var url = "https://ws.pagseguro.uol.com.br/v2/checkout";
                var url     = "https://ws.sandbox.pagseguro.uol.com.br/v2/checkout";
                var content = "";
                content += "[email protected]";
                //content += "[email protected]";
                // content += "&token=a88fbdb1-2df5-45dc-af24-c7f64e303653b58a0b24483fb536ac84be8b536da9d9f8b9-10a6-4177-a75c-5ae7e249ad1c";
                content += "&token=5269A70FB9FD41D3A2BDD1C305B142AE";
                content += "&currency=BRL";
                content += "&reference=" + pedido.Id;



                string[] telefones = new string[2];
                string   ddd       = "(31)";
                string   tel       = "99304-7540";
                string   nome      = usuario.Nome;
                string   email     = "*****@*****.**";
                string   telefone  = ddd + tel;
                if (!String.IsNullOrWhiteSpace(telefone) && telefone.Contains(")") && telefone.Contains("-"))
                {
                    telefones = telefone.Split(')');
                    ddd       = telefones[0].Replace("(", "").Replace(")", "");
                    tel       = telefones[1].Replace(")", "").Replace("-", "");
                    //    content += "&reference = " + pedido.Id;
                    content += "&senderName=" + nome;
                    content += "&senderAreaCode=" + ddd;
                    content += "&senderPhone=" + tel;
                    content += "&senderEmail=" + email;
                    content += "&shippingType=2";
                    content += "&shippingCost=" + sacola.Sedex.ToString("N2").Replace(",", ".");
                    content += "&shippingAddressStreet=" + sacola.Rua;
                    content += "&shippingAddressNumber=" + sacola.NumeroEndereco;
                    content += "&shippingAddressDistrict=" + sacola.Bairro;
                    content += "&shippingAddressPostalCode=" + sacola.Cep;
                    content += "&shippingAddressCity=" + sacola.Cidade;
                    content += "&shippingAddressState=" + sacola.Estado;
                    content += "&shippingAddressCountry=BRA";
                    content  = RecuperarProdutos(content, sacola.Produtos);

                    var xmlResult = "";
                    var task      = new Task(() =>
                    {
                        xmlResult = RestService <String> .AccessTheWebAsync(url, content, "post").Result;
                    });
                    task.Start();
                    task.Wait();

                    if (!string.IsNullOrEmpty(xmlResult))
                    {
                        var _doc      = XDocument.Parse(xmlResult);
                        var hasErrors = _doc.Descendants("errors").Count() > 0;

                        if (!hasErrors)
                        {
                            log.Debug("-------------------------------PagSeguro - OK - Checkout Efetuado sem erros");
                            log.Debug("-------------------------------Criar Pedido");
                            CriarPedido(usuario.Email, pedido.Id);
                            log.Debug("-------------------------------Pedido - OK - Pedido criado sem Erros");
                            var checkout = _doc.Descendants("checkout");
                            code = checkout.FirstOrDefault().Element("code").Value;
                            //_navegacao.NavigateTo("PagSeguroUOL", code);
                            //  PagSeguro pagseguro = new PagSeguro();
                            //  pagseguro.Content = "https://pagseguro.uol.com.br/v2/checkout/payment.html?code=" + code;
                            //  HttpContext.Session["sacola"] = null;
                            //    return new RedirectResult(pagseguro.Content);
                            //    return View("Cart", sacola);
                        }
                        else
                        {
                            TempData["Erro"] = "Erro no Pag Seguro " + xmlResult;
                            log.Debug("-------------------------------Pedido - NOK " + xmlResult);
                        }
                    }
                }
                else
                {
                    // page.DisplayAlert("Erro", "Formato de telefone inválido(XX)XXXXX-XXXX.", "Ok");
                    TempData["Erro"]    = "Erro no Web Service";
                    ViewBag.Ocorrencias = "Erro no Pag Seguro ";
                    log.Debug("-------------------------------Pedido - NOK " + "Erro no Pag Seguro ");
                }
            }
            catch (Exception ex)
            {
                log.Debug("-------------------------------PagSeguro - NOK " + ex.ToString());
                TempData["Erro"] = ex.Message;
                return(new RedirectResult("~/Home/Cart"));
            }


            return(new RedirectResult("~/Home/Cart?listaProduto=''&code=" + code));
        }
コード例 #21
0
        public void SalvarStatusAlterado(List <Pedido> listaPedido, List <Pedido> listaPedidosAlterados)
        {
            log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
            log.Debug("-------------------------------SalvarStatusAlterado");
            foreach (Pedido pedido in listaPedido)
            {
                if (!string.IsNullOrEmpty(pedido.IdTransacao))
                {
                    if (pedido.Status == null || (!pedido.Status.Equals("7") && !pedido.Status.Equals("3")))
                    {
                        // var caminhoPagSeguro = "https://ws.pagseguro.uol.com.br/v3/transactions/" + pedido.IdTransacao+ "[email protected]&token=5269A70FB9FD41D3A2BDD1C305B142AE";
                        var caminhoPagSeguro = "https://ws.sandbox.pagseguro.uol.com.br/v3/transactions/" + pedido.IdTransacao + "[email protected]&token=5269A70FB9FD41D3A2BDD1C305B142AE";
                        var xmlResult        = "";
                        try
                        {
                            //  var task = new Task(() =>
                            // {
                            xmlResult = RestService <String> .AtualizarStatus(caminhoPagSeguro, "", "get");

                            // });
                            log.Debug("-------------------------------task Start");

                            // task.Start();
                            // task.Wait();

                            if (!string.IsNullOrEmpty(xmlResult))
                            {
                                var _doc      = XDocument.Parse(xmlResult);
                                var hasErrors = _doc.Descendants("errors").Count() > 0;

                                if (!hasErrors)
                                {
                                    XElement status = _doc.Descendants("status").FirstOrDefault();
                                    if (status != null && (pedido.Status == null || pedido.Status != null && !pedido.Status.Equals(status.Value)))
                                    {
                                        pedido.Status      = status.Value;
                                        pedido.StatusTexto = Pedido.PreencherStatus(int.Parse(pedido.Status));

                                        //ArquivoBO.GravarPedido(pedido);
                                        if (pedido.Status.Equals("3"))
                                        {
                                            pedido.ConfirmadoPagSeguro = true;
                                        }
                                        pedido.Alterado = true;
                                        listaPedidosAlterados.Add(pedido);
                                        // pedidosAlterados++;
                                    }
                                }
                                else
                                {
                                    TempData["Erro"] = "Erro no Pag Seguro " + xmlResult;
                                }
                            }
                        }catch (Exception e)
                        {
                            log.Debug("-------------------------------SalvarStatusAlterado task exception" + e.ToString());
                        }
                    }
                }
                else
                {
                    if (pedido.Status == null || !pedido.Status.Equals("7"))
                    {
                        pedido.Status      = "7";
                        pedido.StatusTexto = Pedido.PreencherStatus(int.Parse(pedido.Status));
                        //ArquivoBO.GravarPedido(pedido);
                        pedido.Alterado = true;
                        listaPedidosAlterados.Add(pedido);
                        // pedidosAlterados++;
                    }
                }
            }
            log.Debug("-------------------------------SalvarStatusAlterado Gravar Lista");
            try
            {
                PedidoBO.GravarStatusListaPedidoMesmoDia(listaPedido);
            }catch (Exception e)
            {
                log.Debug("-------------------------------Exception Gravar Lista" + e.ToString());
                throw e;
            }
        }