//Páginas public IActionResult Menu() { try { var carrinho = _reposCarrinho.Buscar(_sessao.UsuarioSessao().IdCliente); var produtos = new List <Produto>(); foreach (var item in carrinho) { produtos.Add(_reposProduto.Buscar(item.IdProduto)); } ViewBag.Quantidade = carrinho.ToDictionary(i => i.IdProduto, i => i.Quantidade); ViewBag.Endereco = _reposCliente.BuscaEndereco(_sessao.UsuarioSessao().IdCliente); ViewBag.Estados = new string[] { "AC", "AL", "AM", "AP", "BA", "CE", "DF", "ES", "GO", "MA", "MG", "MS", "MT", "PA", "PB", "PE", "PI", "PR", "RJ", "RN", "RO", "RR", "RS", "SC", "SE", "SP", "TO" }; return(View(produtos)); } catch (Exception erro) { GerarLogErro(erro, (byte)Global.Entidade.Carrinho, (byte)Global.Acao.Visualizar); throw new Exception(Global.Mensagem.FalhaBanco); } }
public IActionResult PagamentoBoleto(EnderecoCliente endereco, Frete frete) { try { var carrinho = _reposCarrinho.Buscar(_sessao.UsuarioSessao().IdCliente); var produtos = new List <Produto>(); var total = 0.0F; foreach (var item in carrinho) { var produto = _reposProduto.Buscar(item.IdProduto); produtos.Add(produto); total += produto.Valor * item.Quantidade; } total += frete.Valor; var transacao = PreparaTranscao(endereco, frete, produtos, carrinho); transacao.PaymentMethod = PaymentMethod.Boleto; transacao.Amount = Convert.ToInt32(total.ToString("C").Replace("R$", "").Replace(".", "").Replace(",", "")); transacao.Save(); if (transacao.Id != "0") { var pedido = new Pedido { IdTransacao = Convert.ToUInt32(transacao.Id), FormaPagamento = (byte)Global.Pagamento.Boleto, Total = total, DataCriacao = DateTime.Now, DataAtualizacao = DateTime.Now, Situacao = (byte)Global.Pedido.Aguardando, Boleto = new Boleto { DataExpiracao = Convert.ToDateTime(transacao.BoletoExpirationDate), Url = transacao.BoletoUrl, CodigoBarras = transacao.BoletoBarcode }, Endereco = new EnderecoPedido { Nome = endereco.Nome, Cep = endereco.Cep, Logradouro = endereco.Logradouro, Numero = endereco.Numero, Bairro = endereco.Bairro, Cidade = endereco.Cidade, Uf = endereco.Uf, Complemento = endereco.Complemento ?? "" } }; pedido.Cliente = _reposCliente.Buscar(_sessao.UsuarioSessao().IdCliente); pedido.Frete = frete; pedido.Produto = new List <ProdutoHistorico>(); foreach (var item in produtos) { pedido.Produto.Add(new ProdutoHistorico { IdProduto = item.IdProduto, IdUsuario = item.IdUsuario, Nome = item.Nome, Valor = item.Valor, Situacao = (byte)Global.Produto.Aguardando, CodRastreamento = "", PrazoEntrega = Convert.ToDateTime("0001/01/01"), DataAtualizacao = DateTime.Now, Quantidade = carrinho.FirstOrDefault(c => c.IdProduto == item.IdProduto).Quantidade }); } _reposCarrinho.RemoverTodos(_sessao.UsuarioSessao().IdCliente); if (_reposPedido.Registrar(pedido) > 0) { GerarLog((byte)Global.Entidade.Pedido, (byte)Global.Acao.Inserir, pedido.IdPedido); return(Json(Convert.ToInt32(transacao.Id))); } return(BadRequest($"{Global.Mensagem.FalhaPedido} {transacao.Id}")); } return(BadRequest(Global.Mensagem.FalhaTransacao)); } catch (Exception erro) { GerarLogErro(erro, (byte)Global.Entidade.Pedido, (byte)Global.Acao.Inserir); return(BadRequest(Global.Mensagem.FalhaBanco)); } }