public static PagamentoMetodoPage gerarPagamento(Action <PagamentoInfo> aoPagar) { var pagamentoMetodoPage = new PagamentoMetodoPage { Title = "Forma de Pagamento" }; pagamentoMetodoPage.AoEfetuarPagamento += (sender, pagamento) => { aoPagar?.Invoke(pagamento); }; return(pagamentoMetodoPage); }
public static Page gerarCarrinhoParaPagamento() { return(gerarCarrinho((pedido) => { var pagamento = PagamentoUtils.gerar(pedido); var regraLoja = LojaFactory.create(); var loja = regraLoja.pegarAtual(); var pagamentoMetodoPage = new PagamentoMetodoPage { Title = "Forma de Pagamento", Pagamento = pagamento, UsaCredito = loja.AceitaCreditoOnline, UsaDebito = loja.AceitaDebitoOnline, UsaDinheiro = loja.AceitaDinheiro, UsaBoleto = loja.AceitaBoleto }; ((RootPage)App.Current.MainPage).PushAsync(pagamentoMetodoPage); })); }
public static void gerarPagamento(FreteInfo frete, Action <FreteInfo> aoEfetuarPagamento) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var pgtoInicial = new PagamentoInfo { Cpf = usuario.CpfCnpj, IdUsuario = usuario.Id }; pgtoInicial.Itens.Add(new PagamentoItemInfo { Descricao = "Frete", Quantidade = 1, Valor = frete.Preco }); var metodoPagamento = new PagamentoMetodoPage { Pagamento = pgtoInicial, UsaCredito = true, UsaDebito = false, UsaBoleto = false, UsaDinheiro = true }; metodoPagamento.AoEfetuarPagamento += async(sender, pagamento) => { frete.IdPagamento = pagamento.IdPagamento; UserDialogs.Instance.ShowLoading("Processando pagamento..."); try { var regraFrete = FreteFactory.create(); switch (pagamento.Situacao) { case SituacaoPagamentoEnum.Pago: frete.Situacao = FreteSituacaoEnum.ProcurandoMotorista; break; case SituacaoPagamentoEnum.Cancelado: frete.Situacao = FreteSituacaoEnum.Cancelado; break; default: frete.Situacao = FreteSituacaoEnum.AguardandoPagamento; break; } var id_frete = frete.Id; if (id_frete > 0) { await regraFrete.alterar(frete); } else { id_frete = await regraFrete.inserir(frete); } var novoFrete = await regraFrete.pegar(id_frete); UserDialogs.Instance.HideLoading(); aoEfetuarPagamento?.Invoke(novoFrete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } UserDialogs.Instance.HideLoading(); }; ((RootPage)App.Current.MainPage).PushAsync(metodoPagamento); }