private async void cartaoOfflineClicked(object sender, EventArgs e) { if (Pagamento == null) { await DisplayAlert("Erro", "Nenhum pagamento informado!", "Fechar"); return; } UserDialogs.Instance.ShowLoading("Enviando..."); try { Pagamento.Tipo = TipoPagamentoEnum.CartaoOffline; var regraPagamento = PagamentoFactory.create(); var retorno = await regraPagamento.pagar(Pagamento); Pagamento = await regraPagamento.pegar(retorno.IdPagamento); UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, Pagamento); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
private async void gerarBoleto(PagamentoInfo pagamento) { UserDialogs.Instance.ShowLoading("Gerando boleto..."); try { var regraPagamento = PagamentoFactory.create(); pagamento.DataVencimento = DateTime.Now.AddDays(3); var retorno = await regraPagamento.pagar(pagamento); if (retorno.Situacao == SituacaoPagamentoEnum.AguardandoPagamento) { this.Pagamento = await regraPagamento.pegar(retorno.IdPagamento); UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, this.Pagamento); } else { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(retorno.Mensagem, "Erro", "Fechar"); await DisplayAlert("Erro", retorno.Mensagem, "Entendi"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
private bool validarCampo() { if (String.IsNullOrEmpty(_NomeEntry.Text)) { DisplayAlert("Aviso", "Preencha o nome no cartão.", "Entendi"); return(false); } if (String.IsNullOrEmpty(_NumeroCartaoEntry.Text)) { DisplayAlert("Aviso", "Preencha o número do cartão.", "Entendi"); return(false); } var regraPagamento = PagamentoFactory.create(); /* * var bandeira = regraPagamento.pegarBandeiraPorNumeroCartao(_NumeroCartaoEntry.Text); * if (!bandeira.HasValue) { * * } */ if (_ValidadeCartaoPicker.SelectedItem == null) { DisplayAlert("Aviso", "Selecione a validade do cartão.", "Entendi"); return(false); } if (String.IsNullOrEmpty(_CVCartaoEntry.Text)) { DisplayAlert("Aviso", "Preencha o CVV.", "Entendi"); return(false); } return(true); }
private async void enviarPagamento() { if (!validarCampo()) { return; } UserDialogs.Instance.ShowLoading("Enviando..."); try { var regraPagamento = PagamentoFactory.create(); var regraCartao = CartaoFactory.create(); var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); Pagamento.Bandeira = regraPagamento.pegarBandeiraPorNumeroCartao(_NumeroCartaoEntry.Text); Pagamento.DataExpiracao = regraCartao.pegarDataExpiracao((string)_ValidadeCartaoPicker.SelectedItem); Pagamento.IdUsuario = usuario.Id; Pagamento.NomeCartao = _NomeEntry.Text; Pagamento.NumeroCartao = _NumeroCartaoEntry.TextOnlyNumber; Pagamento.Tipo = _TipoSelecionado; Pagamento.CVV = _CVCartaoEntry.Text; var retorno = await regraPagamento.pagar(Pagamento); if (retorno.Situacao == SituacaoPagamentoEnum.Pago || retorno.Situacao == SituacaoPagamentoEnum.AguardandoPagamento) { var pagamento = await regraPagamento.pegar(retorno.IdPagamento); if (retorno.Situacao == SituacaoPagamentoEnum.Pago) { var mensagem = "Foram debitados R$ {0} do seu cartão de crédito."; var rootPage = (RootPage)App.Current.MainPage; CrossLocalNotifications.Current.Show(rootPage.NomeApp, string.Format(mensagem, pagamento.ValorTotalStr)); } UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, pagamento); } else { UserDialogs.Instance.HideLoading(); await DisplayAlert("Erro", retorno.Mensagem, "Entendi"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
private async void cartaoListaItemTapped(object sender, ItemTappedEventArgs e) { if (e == null) { return; } var cartao = (CartaoInfo)((ListView)sender).SelectedItem; UserDialogs.Instance.ShowLoading("Enviando..."); try { var regraPagamento = PagamentoFactory.create(); _pagamento.Token = cartao.Token; _pagamento.CVV = cartao.CVV; _pagamento.Bandeira = cartao.Bandeira; var retorno = await regraPagamento.pagarComToken(_pagamento); if (retorno.Situacao == SituacaoPagamentoEnum.Pago) { var pagamento = await regraPagamento.pegar(retorno.IdPagamento); UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, pagamento); } else { UserDialogs.Instance.HideLoading(); await DisplayAlert("Erro", retorno.Mensagem, "Entendi"); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }
protected async void aceitarClicked(object sender, EventArgs e) { UserDialogs.Instance.ShowLoading("Efetuando pagamento..."); try { var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); if (motorista == null) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert("Você não é um motorista.", "Erro", "Entendi"); return; } var regraCartao = PagamentoCartaoFactory.create(); var cartoes = await regraCartao.listar(motorista.Id); if (cartoes != null && cartoes.Count > 0) { var pagamento = gerarPagamento(motorista, _frete, cartoes[0]); var regraPagamento = PagamentoFactory.create(); var retorno = await regraPagamento.pagarComToken(pagamento); if (retorno.Situacao == SituacaoPagamentoEnum.Pago) { pagamento = await regraPagamento.pegar(retorno.IdPagamento); var mensagem = "Foram debitados R$ {0} do seu cartão de crédito."; CrossLocalNotifications.Current.Show("Easy Barcos", string.Format(mensagem, pagamento.ValorTotalStr)); var regraFrete = FreteFactory.create(); _frete = await regraFrete.pegar(_frete.Id); _frete.IdPagamento = pagamento.IdPagamento; await regraFrete.alterar(_frete); UserDialogs.Instance.HideLoading(); AoAceitar?.Invoke(this, _frete); } else { UserDialogs.Instance.HideLoading(); await DisplayAlert("Erro", retorno.Mensagem, "Entendi"); } } else { UserDialogs.Instance.HideLoading(); var cartaoPage = new CartaoPage { UsaCredito = true, UsaDebito = false, TotalVisivel = true, Pagamento = gerarPagamento(motorista, _frete) }; cartaoPage.AoEfetuarPagamento += async(s2, pagamento) => { UserDialogs.Instance.ShowLoading("Atualizando frete..."); try { var regraFrete = FreteFactory.create(); _frete = await regraFrete.pegar(_frete.Id); _frete.IdPagamento = pagamento.IdPagamento; await regraFrete.alterar(_frete); UserDialogs.Instance.HideLoading(); AoAceitar?.Invoke(this, _frete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }; await Navigation.PushAsync(cartaoPage); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }
public void inicializarComponente() { _TituloLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.TITULO1], HorizontalTextAlignment = TextAlignment.Center }; _enderecoView = new EnderecoView { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, }; _enderecoView.SetBinding(EnderecoView.BindingContextProperty, new Binding(".")); _MetodoEntregaLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO], LineBreakMode = LineBreakMode.TailTruncation }; _MetodoEntregaLabel.SetBinding(Label.TextProperty, new Binding("EntregaStr")); _FormaPagamentoLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO], LineBreakMode = LineBreakMode.TailTruncation }; _FormaPagamentoLabel.SetBinding(Label.TextProperty, new Binding("PagamentoStr")); _TrocoParaLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _TrocoParaLabel.SetBinding(Label.TextProperty, new Binding("TrocoParaStr", stringFormat: "R${0}")); _ValorFreteLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _ValorFreteLabel.SetBinding(Label.TextProperty, new Binding("ValorFreteStr", stringFormat: "R${0}")); _ValorTotalLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _ValorTotalLabel.SetBinding(Label.TextProperty, new Binding("TotalStr", stringFormat: "R${0}")); _SituacaoLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, LineBreakMode = LineBreakMode.TailTruncation, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _SituacaoLabel.SetBinding(Label.TextProperty, new Binding("SituacaoStr")); _diaEntregaLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _diaEntregaLabel.SetBinding(Label.TextProperty, new Binding("DiaEntregaStr")); _horarioEntregaLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _horarioEntregaLabel.SetBinding(Label.TextProperty, new Binding("HorarioEntrega")); _mensagemRetiradaLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _mensagemRetiradaLabel.SetBinding(Label.TextProperty, new Binding("Loja.MensagemRetirada")); _ObservacaoLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO] }; _ObservacaoLabel.SetBinding(Label.TextProperty, new Binding("Observacao")); _PedidoView = new PedidoView { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, }; _PedidoView.SetBinding(PedidoView.BindingContextProperty, new Binding(".")); _ImprimirButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "Imprimir Boleto" }; _ImprimirButton.Clicked += async(sender, e) => { if (Pedido.Pagamento == null && !Pedido.IdPagamento.HasValue) { //UserDialogs.Instance.Alert("Pedido não possui pagamento vinculado.", "Erro", "Fechar"); await DisplayAlert("Erro", "Pedido não possui pagamento vinculado.", "Entendi"); return; } if (Pedido.Pagamento == null) { UserDialogs.Instance.ShowLoading("Carregando..."); try { var regraPagamento = PagamentoFactory.create(); var pagamento = await regraPagamento.pegar(Pedido.IdPagamento.Value); UserDialogs.Instance.HideLoading(); Pedido.Pagamento = pagamento; } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } } var boletoImprimePage = new BoletoImprimePage { Pagamento = Pedido.Pagamento }; await Navigation.PushAsync(boletoImprimePage); }; _AcompanhaButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_SUCESSO], Text = "Acompanhar no Mapa" }; _AcompanhaButton.Clicked += acompanharClicked; _CancelarButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_DANGER], Text = "Cancelar" }; _CancelarButton.Clicked += cancelarClicked; _AvaliarButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_SUCESSO], Text = "Avaliar" }; _AvaliarButton.Clicked += avaliarClicked; _horarioButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_SUCESSO], Text = "Definir horário de entrega" }; _horarioButton.Clicked += horarioClicked; _empresaLabel = new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, HorizontalTextAlignment = TextAlignment.Center, FontAttributes = FontAttributes.Bold, Margin = new Thickness(0, 0, 0, 3), Text = "Smart Tecnologia ®" }; _empresaLabel.SetBinding(Label.TextProperty, new Binding("Loja.Nome")); _rodapeLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, Margin = new Thickness(5, 0), Spacing = 0, Children = { new Label { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, HorizontalTextAlignment = TextAlignment.Center, Text = "Esse pedido foi feito em:", FontSize = 10 }, _empresaLabel } }; }
private void inicializarComponente() { _ValorTotalLabel = new Label { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_CAMPO], HorizontalTextAlignment = TextAlignment.Center, FontSize = 24 }; _ValorTotalLabel.SetBinding(Label.TextProperty, new Binding("ValorTotalStr", stringFormat: "R${0}")); _TrocoParaEntry = new Entry { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Keyboard = Keyboard.Numeric }; _ObservacaoEntry = new Entry { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_PADRAO] }; _ConcluirButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "FINALIZAR PEDIDO" }; _ConcluirButton.Clicked += async(sender, e) => { if (Pagamento == null) { await DisplayAlert("Erro", "Nenhum pagamento informando.", "Fechar"); return; } UserDialogs.Instance.ShowLoading("Enviando..."); try { var regraPagamento = PagamentoFactory.create(); Pagamento.Tipo = TipoPagamentoEnum.Dinheiro; Pagamento.Observacao = _ObservacaoEntry.Text; double trocoPara = 0; if (double.TryParse(_TrocoParaEntry.Text, out trocoPara)) { Pagamento.TrocoPara = trocoPara; } var retorno = await regraPagamento.pagar(Pagamento); Pagamento = await regraPagamento.pegar(retorno.IdPagamento); UserDialogs.Instance.HideLoading(); AoEfetuarPagamento?.Invoke(this, Pagamento); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar"); await DisplayAlert("Erro", erro.Message, "Entendi"); } }; }