private void inicializarComponente() { _EnviarProdutoButton = new PrincipalButton("fa-credit-card", "Pagar com\nCartão"); _EnviarProdutoButton.AoClicar += async(sender, e) => { var ret = await new PagamentoBLL().listarCartao(); if (ret.Count > 0) { // Rodrigo Landim - 16/03 //Navigation.PushAsync(new CartaoListaPage(_Info, ret)); } else { // Rodrigo Landim - 16/03 //Navigation.PushAsync(new CartaoPage(_Info)); } }; _RastrearMercadoriaButton = new PrincipalButton("fa-money", "Pagar em\nDinheiro"); _RastrearMercadoriaButton.AoClicar += async(sender, e) => { UserDialogs.Instance.ShowLoading("Enviando..."); _Info.Situacao = FreteSituacaoEnum.ProcurandoMotorista; await FreteFactory.create().alterar(_Info); UserDialogs.Instance.HideLoading(); Navigation.PopToRootAsync(); }; }
public static void acompanharComoCliente(FreteInfo frete) { var regraFrete = FreteFactory.create(); regraFrete.gravarAtual(frete); var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando }; var acompanhaPage = new MapaAcompanhaPage { Title = "Acompanhar viagem", Duracao = frete.Duracao, DuracaoVisivel = situacoes.Contains(frete.Situacao) }; acompanhaPage.Appearing += acompanhaAppearing; acompanhaPage.Disappearing += (sender, e) => { CaronaUtils.Acompanhando = false; }; ((RootPage)App.Current.MainPage).PushAsync(acompanhaPage); }
public async Task continuaPedidoAsync() { UserDialogs.Instance.ShowLoading("Enviando..."); try{ if (validaPedido()) { var reader = new StreamReader(this._Imagem); byte[] bytedata = System.Text.Encoding.UTF8.GetBytes(reader.ReadToEnd()); _FreteInfo.FotoBase64 = Convert.ToBase64String(bytedata); _FreteInfo.Observacao = _Observacao.Text; var idProduto = await FreteFactory.create().inserir(_FreteInfo); var retInfo = await FreteFactory.create().pegar(idProduto); UserDialogs.Instance.HideLoading(); Navigation.PushAsync(new FreteForm4Page(retInfo)); } else { UserDialogs.Instance.HideLoading(); DisplayAlert("Atenção", "Dados inválidos, verifique todas as entradas.", "Entendi"); } } catch (Exception e) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert(e.Message); } }
private static async void atualizarMapa(MapaAcompanhaPage acompanhaPage, FreteInfo frete) { var regraFrete = FreteFactory.create(); var retorno = await regraFrete.atualizar(frete.Id); if (retorno != null) { Device.BeginInvokeOnMainThread(() => { var mapaRota = new MapaRotaInfo { Distancia = retorno.Distancia, DistanciaStr = retorno.DistanciaStr, Tempo = retorno.Tempo, TempoStr = retorno.TempoStr, PolylineStr = retorno.Polyline, PosicaoAtual = new Mapa.Model.LocalInfo { Latitude = retorno.Latitude, Longitude = retorno.Longitude }, Polyline = MapaUtils.decodePolyline(retorno.Polyline) }; if (string.IsNullOrEmpty(retorno.Polyline)) { mapaRota.Polyline = new List <Position>(); foreach (var local in frete.Locais) { mapaRota.Polyline.Add(new Position(local.Latitude, local.Longitude)); } } acompanhaPage.atualizarMapa(mapaRota); }); } }
private async System.Threading.Tasks.Task aceitaFreteAsync() { UserDialogs.Instance.ShowLoading("Confirmando..."); try { //var ret = await FreteFactory.create().aceitar(true, _Info.IdFrete, new MotoristaBLL().pegarAtual().Id); var ret = await FreteFactory.create().aceitar(new AceiteEnvioInfo { IdFrete = _Info.IdFrete, IdMotorista = new MotoristaBLL().pegarAtual().Id, Aceite = true }); if (ret.Aceite) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.AlertAsync("Frete aceito com sucesso", "Sucesso", "Entendi"); Navigation.PopAsync(); } else { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.AlertAsync(ret.Mensagem, "Falha", "Entendi"); } } catch (Exception e) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.AlertAsync("Erro ao confirmar o frete", "Falha", "Entendi"); } }
private void inicializarComponente() { _freteListView = new ListView(); _freteListView.HasUnevenRows = true; _freteListView.RowHeight = -1; _freteListView.SeparatorVisibility = SeparatorVisibility.None; _freteListView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); _freteListView.ItemTemplate = new DataTemplate(typeof(FreteCell)); _freteListView.ItemTapped += async(sender, e) => { if (e == null || _Historico) { return; } FreteInfo entrInfo = (FreteInfo)((ListView)sender).SelectedItem; if (entrInfo.Situacao == FreteSituacaoEnum.PegandoEncomenda || entrInfo.Situacao == FreteSituacaoEnum.Entregando || entrInfo.Situacao == FreteSituacaoEnum.Entregue) { var retEntr = await FreteFactory.create().atualizar(entrInfo.Id); if (retEntr.IdMotorista == new UsuarioBLL().pegarAtual().Id) { var retMot = await new MotoristaBLL().listarPedidosAsync(); Navigation.PushAsync(new AcompanhaFreteMotoristaPage(retMot)); } else { Navigation.PushAsync(new AcompanhaFretePage(retEntr)); } } }; }
public static async void buscarFreteComoMotorista(bool carregando = true) { if (carregando) { UserDialogs.Instance.ShowLoading("carregando..."); } try { var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); var regraFrete = FreteFactory.create(); var fretes = await regraFrete.listar(0, 0, FreteSituacaoEnum.ProcurandoMotorista); var freteListaPage = new FreteListaPage { Title = "Buscar atendimentos", Fretes = fretes, FiltroBotao = false, NovoBotao = false }; if (carregando) { UserDialogs.Instance.HideLoading(); } ((RootPage)App.Current.MainPage).PushAsync(freteListaPage); } catch (Exception e) { if (carregando) { UserDialogs.Instance.HideLoading(); } await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi"); } }
public async Task <List <FreteInfo> > listarFreteAsync() { var ret = await FreteFactory.create().listar(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); var aux = ret.Where(x => x.IdMotorista == motorista.Id); if (aux != null) { foreach (var entrega in aux) { entrega.MostraP = true; } } var auxEstados = new List <FreteLocalInfo>(); foreach (var entrega in ret) { foreach (var local in entrega.Locais) { auxEstados.Add(local); } } _filtro.Estados = auxEstados.GroupBy(x => x.Uf).Select(y => y.First()).Where(a => a.Uf != null).Select(z => z.Uf).ToList(); return(ret); }
public static async void listarMeuFreteComoMotorista() { UserDialogs.Instance.ShowLoading("carregando..."); try { var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); var regraFrete = FreteFactory.create(); var fretes = await regraFrete.listar(0, motorista.Id); var freteListaPage = new FreteListaPage { Title = "Meus atendimentos", Fretes = fretes, FiltroBotao = false, NovoBotao = false }; UserDialogs.Instance.HideLoading(); ((RootPage)App.Current.MainPage).PushAsync(freteListaPage); } catch (Exception e) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi"); } }
private async System.Threading.Tasks.Task confirmaPegaEntregaAsync() { UserDialogs.Instance.ShowLoading("Aguarde..."); try { var infoEntrega = await FreteFactory.create().pegar(_IdFrete); infoEntrega.Situacao = FreteSituacaoEnum.EntregaConfirmada; try { await FreteFactory.create().alterar(infoEntrega); _Situacao = infoEntrega.Situacao; UserDialogs.Instance.HideLoading(); if (_Situacao == FreteSituacaoEnum.EntregaConfirmada) { _AcaoButton.Text = "Entreguei a encomenda"; _AcaoButton.IsEnabled = false; await UserDialogs.Instance.AlertAsync("Entrega confirmada"); Navigation.PopToRootAsync(); } } catch (Exception e) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert("Ocorreu um erro ao tentar alterar a situação da entrega", "Falha"); } } catch (Exception e) { UserDialogs.Instance.HideLoading(); } }
public static async void atualizarPosicao(GPSLocalInfo local) { try { //var regraFrete = FreteFactory.create(); //var frete = regraFrete.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); //if (motorista != null && frete != null) if (motorista != null) { var retorno = await regraMotorista.atualizar(new MotoristaEnvioInfo { IdMotorista = motorista.Id, Latitude = local.Latitude, Longitude = local.Longitude, CodDisponibilidade = 1 }); if (AcompanhaPageAtual != null) { var mapaRota = new MapaRotaInfo { Distancia = retorno.Distancia.HasValue ? retorno.Distancia.Value : 0, DistanciaStr = retorno.DistanciaStr, Tempo = retorno.Tempo.HasValue ? retorno.Tempo.Value : 0, TempoStr = retorno.TempoStr, PolylineStr = retorno.Polyline, PosicaoAtual = new Mapa.Model.LocalInfo { Latitude = local.Latitude, Longitude = local.Longitude }, Polyline = MapaUtils.decodePolyline(retorno.Polyline) }; if (string.IsNullOrEmpty(retorno.Polyline) && retorno.IdFrete.HasValue) { var regraFrete = FreteFactory.create(); var frete = await regraFrete.pegar(retorno.IdFrete.Value); mapaRota.Polyline = new List <Position>(); foreach (var freteLocal in frete.Locais) { mapaRota.Polyline.Add(new Position(freteLocal.Latitude, freteLocal.Longitude)); } } if (AcompanhaPageAtual != null) { AcompanhaPageAtual.atualizarMapa(mapaRota); } } } } catch (Exception erro) { UserDialogs.Instance.Alert(erro.Message, "Erro", "Entendi"); } }
private async void aceitar(FreteInfo frete) { var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); if (motorista == null) { await UserDialogs.Instance.AlertAsync("Você não é um motorista.", "Erro", "Entendi"); return; } var aceitePage = new AceitePage { Frete = frete }; aceitePage.AoAceitar += async(sender, f) => { UserDialogs.Instance.ShowLoading("aceitando..."); try { var regraFrete = FreteFactory.create(); var retorno = await regraFrete.aceitar(new AceiteEnvioInfo { IdFrete = frete.Id, IdMotorista = motorista.Id, Aceite = true }); if (retorno != null) { if (retorno.Aceite) { var novoFrete = await regraFrete.pegar(retorno.IdFrete); UserDialogs.Instance.HideLoading(); AoAtualizarTela?.Invoke(this, novoFrete); } else { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(retorno.Mensagem, "Erro", "Entendi"); } } else { UserDialogs.Instance.HideLoading(); } } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }; await Navigation.PushAsync(aceitePage); }
private async void mostraDadosEntrega() { UserDialogs.Instance.ShowLoading("Carregando..."); var ret = await FreteFactory.create().pegar(_IdFrete); UserDialogs.Instance.HideLoading(); UserDialogs.Instance.Alert( "Usuário: " + ret.Usuario.Nome + "\nTelefone: " + ret.Usuario.Telefone + "\nObservação: " + ret.Observacao, "Dados da entrega", "Fechar"); }
private static bool executarAcompanhamento(MapaAcompanhaPage acompanhaPage) { var regraFrete = FreteFactory.create(); var frete = regraFrete.pegarAtual(); if (frete == null) { return(false); } atualizarMapa(acompanhaPage, frete); return(CaronaUtils.Acompanhando); }
private void _avaliarClicked(object sender, EventArgs e) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var descricao = ""; var frete = this.Frete; if (frete.IdUsuario == usuario.Id) { descricao = "Como você avalia o motorista?"; } else if (frete.IdMotorista == usuario.Id) { descricao = "Como você avalia o cliente?"; } var avaliePage = new AvaliePage { Descricao = descricao }; avaliePage.AoAvaliar += async(s1, nota) => { UserDialogs.Instance.ShowLoading("carregando..."); try { var regraFrete = FreteFactory.create(); frete = await regraFrete.pegar(this.Frete.Id); if (frete.IdUsuario == usuario.Id) { frete.NotaMotorista = nota; } else if (frete.IdMotorista == usuario.Id) { frete.NotaFrete = nota; } await regraFrete.alterar(frete); UserDialogs.Instance.HideLoading(); await Navigation.PopAsync(); AoAtualizarTela?.Invoke(this, frete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }; Navigation.PushAsync(avaliePage); }
public async Task <List <FreteInfo> > listarFreteAsync() { var ret = await FreteFactory.create().listar(); if (_Historico) { ret = ret.Where(x => x.Situacao == FreteSituacaoEnum.Cancelado || x.Situacao == FreteSituacaoEnum.EntregaConfirmada).ToList(); } else { ret = ret.Where(x => x.Situacao != FreteSituacaoEnum.Cancelado && x.Situacao != FreteSituacaoEnum.EntregaConfirmada).ToList(); } return(ret); }
private void inicializarComponente() { _EnviarButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Margin = new Thickness(8, 0), Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "Procurar Motorista" }; _EnviarButton.Clicked += async(sender, e) => { UserDialogs.Instance.ShowLoading("Enviando..."); _Info.Situacao = FreteSituacaoEnum.ProcurandoMotorista; await FreteFactory.create().alterar(_Info); UserDialogs.Instance.HideLoading(); Navigation.PopToRootAsync(); }; _CustomMap = new CustomMap { MapType = MapType.Street, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Fill }; var pontos = MapsUtils.DecodePolyline(_Info.Polyline); foreach (var ponto in pontos) { _CustomMap.RouteCoordinates.Add(ponto); } foreach (var pin in _Info.Locais) { _CustomMap.Pins.Add(new Pin() { Position = new Position(pin.Latitude, pin.Longitude), Label = getTextItem(pin.Tipo) }); } var aux = _Info.Locais.First(); var midleLat = pontos.Average(x => x.Latitude); var midleLon = pontos.Average((x => x.Longitude)); var degressLat = Math.Abs(pontos.Max(x => x.Latitude) - pontos.Min(x => x.Latitude)); var degressLon = Math.Abs(pontos.Max(x => x.Longitude) - pontos.Min(x => x.Longitude)); _CustomMap.MoveToRegion(new MapSpan(new Position(midleLat, midleLon), degressLat + (degressLat * 0.2), degressLon + (degressLon * 0.2))); }
private async void alterar(FreteInfo frete) { UserDialogs.Instance.ShowLoading("carregando..."); try { var regraFrete = FreteFactory.create(); await regraFrete.alterarSituacao(frete.Id, frete.Situacao); BindingContext = await regraFrete.pegar(frete.Id); UserDialogs.Instance.HideLoading(); //atualizarTela(this.Frete); AoAtualizarTela?.Invoke(this, frete); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }
private async System.Threading.Tasks.Task negaFreteAsync() { UserDialogs.Instance.ShowLoading("Negando..."); try { //var ret = await FreteFactory.create().aceitar(false, _Info.IdFrete, new MotoristaBLL().pegarAtual().Id); var ret = await FreteFactory.create().aceitar(new AceiteEnvioInfo { IdFrete = _Info.IdFrete, IdMotorista = new MotoristaBLL().pegarAtual().Id, Aceite = true }); UserDialogs.Instance.HideLoading(); Navigation.PopAsync(); } catch (Exception e) { UserDialogs.Instance.HideLoading(); AtualizacaoFrete.setConfirm(false); } }
public async Task iniciaAsync(FreteRetornoInfo info) { if ((info.Latitude + ";" + info.Longitude) != _LastLatLon) { Device.BeginInvokeOnMainThread(async() => { if (_FreteInfo == null) { _FreteInfo = await FreteFactory.create().pegar(info.IdFrete); } apresentaInfo(info, new Position(info.Latitude, info.Longitude)); }); _LastLatLon = (info.Latitude + ";" + info.Longitude); } task = Task.Factory.StartNew(async() => { await Task.Delay(delay); var retInfo = await FreteFactory.create().atualizar(_IdFrete); await iniciaAsync(retInfo); }); }
private void inicializarComponente() { _ObservacaoEntry = new Entry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Placeholder = "Qual a carga?" }; _TipoVeiculoLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Children = { criarTipoVeiculoEntry() } }; _AddTipoVeiculoButton = new Button() { Text = "Adicionar outro tipo de veículo", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], FontSize = 12 }; _AddTipoVeiculoButton.Clicked += (sender, e) => { _TipoVeiculoLayout.Children.Add(criarTipoVeiculoEntry()); }; _CarroceriaLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Children = { criarCarroceriaEntry() } }; _AddCarroceriaButton = new Button() { Text = "Adicionar outro tipo de carroceria", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], FontSize = 12 }; _AddCarroceriaButton.Clicked += (sender, e) => { _CarroceriaLayout.Children.Add(criarCarroceriaEntry()); }; _PesoEntry = new Entry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Peso em Toneladas" }; _EmBlocoSwitch = new Switch { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, IsToggled = false }; _EmBlocoSwitch.Toggled += (object sender, ToggledEventArgs e) => { if (e.Value) { _AlturaEntry.IsEnabled = false; _LarguraEntry.IsEnabled = false; _ProfundidadeEntry.IsEnabled = false; } else { _AlturaEntry.IsEnabled = true; _LarguraEntry.IsEnabled = true; _ProfundidadeEntry.IsEnabled = true; } }; _LarguraEntry = new Entry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Largura total (m)" }; _AlturaEntry = new Entry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Altura total (m)" }; _ProfundidadeEntry = new Entry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Comprimento total (m)" }; _LocalRetirada = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; if (!_Edit) { _LocalRetirada.Children.Add(getEnderecoRetirada()); } /*_AdicionarRetirardaButton = new Button * { * VerticalOptions = LayoutOptions.Start, * HorizontalOptions = LayoutOptions.Fill, * Style = Estilo.Current[Estilo.BTN_PADRAO], * Text = "Adicionar mais um endereço" * }; * _AdicionarRetirardaButton.Clicked += (sender, e) => { * _LocalRetirada.Children.Add(getEnderecoRetirada()); * };*/ _LocalEntrega = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; if (!_Edit) { _LocalEntrega.Children.Add(getEnderecoEntrega()); } /*_AdicionarEntregaButton = new Button * { * VerticalOptions = LayoutOptions.Start, * HorizontalOptions = LayoutOptions.Fill, * Style = Estilo.Current[Estilo.BTN_PADRAO], * Text = "Adicionar mais um endereço" * }; * _AdicionarEntregaButton.Clicked += (sender, e) => { * _LocalEntrega.Children.Add(getEnderecoEntrega()); * };*/ _DataRetirada = new DatePicker { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_DATA] }; _HoraRetirada = new TimePicker { WidthRequest = 100, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_TEMPO] }; _DataEntrega = new DatePicker { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_DATA] }; _HoraEntrega = new TimePicker { WidthRequest = 100, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_TEMPO] }; _UsaDataEntrega = new Switch { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, IsToggled = false }; _UsaDataEntrega.Toggled += (sender, e) => { if (e.Value) { _ContainerDataEntregaAux.Children.Remove(_ContainerDataEntregaConteudo); } else { _ContainerDataEntregaAux.Children.Add(_ContainerDataEntregaConteudo); } }; _PrecoEntry = new Entry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Valor do Frete" }; _ValorACombinar = new Switch { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, IsToggled = false }; _ValorACombinar.Toggled += (object sender, ToggledEventArgs e) => { if (e.Value) { _PrecoEntry.IsEnabled = false; } else { _PrecoEntry.IsEnabled = true; } }; _EnviarButton = new Button { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = !_Edit ? "SALVAR" : "ATUALIZAR" }; _EnviarButton.Clicked += async(sender, e) => { var regraEntrega = FreteFactory.create(); UserDialogs.Instance.ShowLoading("Enviando..."); try { if (!_Edit) { var id_frete = await regraEntrega.inserir(Frete); UserDialogs.Instance.HideLoading(); await DisplayAlert("Aviso", "Frete cadastro com sucesso.", "Fechar"); } else { await regraEntrega.alterar(Frete); UserDialogs.Instance.HideLoading(); await DisplayAlert("Aviso", "Frete atualizado com sucesso.", "Fechar"); } await Navigation.PopAsync(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); UserDialogs.Instance.ShowError(erro.Message, 8000); } }; }
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 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); }
public async static void inicializar() { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); if (usuario == null) { return; } UserDialogs.Instance.ShowLoading("carregando..."); try { var regraFrete = FreteFactory.create(); var fretes = await regraFrete.listar(usuario.Id, usuario.Id); if (fretes.Count() > 0) { var frete = regraFrete.pegarAtual(); var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando }; var freteAtual = ( from f in fretes where (frete == null || f.Id == frete.Id) && situacoes.Contains(f.Situacao) select f ).FirstOrDefault(); if (freteAtual != null) { regraFrete.gravarAtual(freteAtual); } else { regraFrete.limparAtual(); } } else { regraFrete.limparAtual(); } var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); var freteInfo = regraFrete.pegarAtual(); if (motorista != null) { if (motorista.Situacao == MotoristaSituacaoEnum.AguardandoAprovacao) { UserDialogs.Instance.Alert("Conta de motorista aguardando aprovação!", "Aviso", "Entendi"); } else { if (freteInfo != null) { CaronaUtils.acompanharComoMotorista(freteInfo); } else { CaronaUtils.buscarFreteComoMotorista(false); } } } else { if (freteInfo != null) { CaronaUtils.acompanharComoCliente(freteInfo); } else { CaronaUtils.criar(); } } UserDialogs.Instance.HideLoading(); } catch (Exception e) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(e.Message, "Erro", "Entendi"); } }
protected override void OnBindingContextChanged() { base.OnBindingContextChanged(); var frete = (FreteInfo)BindingContext; var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); var regraFrete = FreteFactory.create(); var freteAtual = regraFrete.pegarAtual(); _mainLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { new IconImage { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, //Icon = "fa-truck", Icon = "fa-ship", IconSize = 20, WidthRequest = 20, IconColor = Estilo.Current.PrimaryColor }, _SituacaoLabel } }); if (frete != null && !string.IsNullOrEmpty(frete.EnderecoDestino)) { _mainLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { new IconImage { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Icon = "fa-map-marker", IconSize = 16, WidthRequest = 20, IconColor = Estilo.Current.PrimaryColor }, _OrigemLabel } }); } _mainLayout.Children.Add(gerarAtributo(frete)); if (frete != null && !string.IsNullOrEmpty(frete.Dimensao)) { _mainLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { new IconImage { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Icon = "fa-arrows-alt", IconSize = 16, WidthRequest = 20, IconColor = Estilo.Current.PrimaryColor }, _DimensaoLabel } }); } if (motorista != null) { _mainLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { new IconImage { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Icon = "fa-user", IconSize = 16, WidthRequest = 20, IconColor = Estilo.Current.PrimaryColor }, new Label { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, FontAttributes = FontAttributes.Bold, TextColor = Estilo.Current.PrimaryColor, Text = frete.Usuario.Nome } } }); if (freteAtual != null && freteAtual.Id == frete.Id && frete.IdMotorista == motorista.Id) { _mainLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { new IconImage { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Icon = "fa-truck", IconSize = 16, WidthRequest = 20, IconColor = Estilo.Current.PrimaryColor }, new Label { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, FontAttributes = FontAttributes.Bold, TextColor = Estilo.Current.PrimaryColor, Text = "Em Andamento" } } }); } } else if (frete.IdMotorista > 0) { _mainLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { new IconImage { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Icon = "fa-user", IconSize = 16, WidthRequest = 20, IconColor = Estilo.Current.PrimaryColor }, new Label { HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, FontAttributes = FontAttributes.Bold, TextColor = Estilo.Current.PrimaryColor, Text = frete.Motorista.Usuario.Nome } } }); } }
private void inicializarComponente() { _PassageiroEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Placeholder = "Qtd. Passageiros", Keyboard = Keyboard.Numeric, ErrorDisplay = ErrorDisplay.None }; _ObservacaoEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Placeholder = "Qual a carga?", ErrorDisplay = ErrorDisplay.None }; _TipoVeiculoLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Children = { criarTipoVeiculoEntry() } }; _UsaCargaSwitch = new Switch { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, IsToggled = false }; _UsaCargaSwitch.Toggled += (sender, e) => { _cargaStackLayout.Children.Clear(); if (e.Value) { _cargaStackLayout.Children.Add(new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.TITULO2], Text = "Informações de carga:" }); _cargaStackLayout.Children.Add(_PesoEntry); _cargaStackLayout.Children.Add(_AlturaEntry); _cargaStackLayout.Children.Add(_ProfundidadeEntry); _cargaStackLayout.Children.Add(_LarguraEntry); } }; _cargaStackLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _PesoEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Peso em Toneladas", ErrorDisplay = ErrorDisplay.None }; _LarguraEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Largura total (m)", ErrorDisplay = ErrorDisplay.None }; _AlturaEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Altura total (m)", ErrorDisplay = ErrorDisplay.None }; _ProfundidadeEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Comprimento total (m)", ErrorDisplay = ErrorDisplay.None }; _AgendandoSwitch = new Switch { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Start, IsToggled = false }; _AgendandoSwitch.Toggled += (sender, e) => { _agendadoStackLayout.Children.Clear(); if (e.Value) { _agendadoStackLayout.Children.Add(new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Text = "Data hora da Retirada:", Style = Estilo.Current[Estilo.LABEL_CONTROL] }); _agendadoStackLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Children = { new IconImage { Icon = "fa-calendar", HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.ICONE_PADRAO] }, _DataRetiradaPicker, new IconImage { Icon = "fa-clock-o", HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.ICONE_PADRAO] }, _HoraRetiradaPicker } }); _agendadoStackLayout.Children.Add(new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Text = "Data hora máxima para entrega:", Style = Estilo.Current[Estilo.LABEL_CONTROL] }); _agendadoStackLayout.Children.Add(new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Children = { new IconImage { Icon = "fa-calendar", HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.ICONE_PADRAO] }, _DataEntregaPicker, new IconImage { Icon = "fa-clock-o", HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.ICONE_PADRAO] }, _HoraEntregaPicker } }); } }; _agendadoStackLayout = new StackLayout { Orientation = StackOrientation.Vertical, VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill }; _DataRetiradaPicker = new DatePicker { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_DATA] }; _HoraRetiradaPicker = new TimePicker { WidthRequest = 100, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_TEMPO] }; _DataEntregaPicker = new DatePicker { HorizontalOptions = LayoutOptions.FillAndExpand, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_DATA] }; _HoraEntregaPicker = new TimePicker { WidthRequest = 100, HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.ENTRY_TEMPO] }; _PrecoEntry = new XfxEntry { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Keyboard = Keyboard.Numeric, Style = Estilo.Current[Estilo.ENTRY_PADRAO], Placeholder = "Valor do Frete", ErrorDisplay = ErrorDisplay.None }; _EnviarButton = new Button { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "SALVAR" }; _EnviarButton.Clicked += async(sender, e) => { var regraFrete = FreteFactory.create(); UserDialogs.Instance.ShowLoading("Enviando..."); try { var frete = this.Frete; definirTipoPorOrdem(frete); var id_frete = await regraFrete.inserir(frete); frete = await regraFrete.pegar(id_frete); UserDialogs.Instance.HideLoading(); AoCadastrar?.Invoke(this, frete); //await DisplayAlert("Aviso", "Frete cadastro com sucesso.", "Fechar"); //await Navigation.PopAsync(); } catch (Exception erro) { UserDialogs.Instance.HideLoading(); await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi"); } }; }
/* * private string getImagemCaminhao(int? codCaminhao) * { * switch (codCaminhao) * { * case 1: * return "Veiculo_01.png"; * case 2: * return "Veiculo_02.png"; * case 3: * return "Veiculo_03.png"; * case 4: * return "Veiculo_04.png"; * case 5: * return "Veiculo_05.png"; * case 6: * return "Veiculo_06.png"; * case 7: * return "Veiculo_07.png"; * case 8: * return "Veiculo_08.png"; * case 9: * return "Veiculo_09.png"; * default: * return "Veiculo_01.png"; * } * } */ private void inicializarComponente() { _Titulo = new Label { Text = _frete.TituloFreteMotoristaLbl, Style = Estilo.Current[Estilo.TITULO1] }; _Origem = new Label { Text = _frete.EnderecoOrigem, Style = Estilo.Current[Estilo.LABEL_CONTROL] }; _DivisoriaOrigemDestino = new IconImage { IconSize = 20, Margin = new Thickness(10, 0, 10, 0), Icon = "fa-arrow-right" }; _Destino = new Label { Text = _frete.EnderecoDestino, Style = Estilo.Current[Estilo.LABEL_CONTROL] }; _DataSaida = new Label { Text = _frete.DataRetiradaStr, Style = Estilo.Current[Estilo.LABEL_CONTROL] }; _DivisoriaData = new IconImage { IconSize = 20, Margin = new Thickness(10, 0, 10, 0), Icon = "fa-arrow-right" }; _DataChegada = new Label { Text = _frete.DataEntregaStr, Style = Estilo.Current[Estilo.LABEL_CONTROL] }; _Valor = new Label { Text = string.Format("Valor do frete: {0:N}", _frete.Preco), Style = Estilo.Current[Estilo.LABEL_CONTROL] }; _Confirmar = new Button() { Text = "Quero esta carga !", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.BTN_SUCESSO] }; if (_frete.MostraP) { selecionado = true; _Confirmar.Text = "Deixar de pedir carga"; } _Confirmar.Clicked += async(sender, e) => { var test = await UserDialogs.Instance.ConfirmAsync((selecionado ? "Você tem certeza que quer deixa a carga ? ": "Você tem certeza que quer esta carga ?"), "Atenção", "Confirmo !", "Voltar"); if (test) { if (!selecionado) { UserDialogs.Instance.ShowLoading("Aceitando..."); //await FreteFactory.create().aceitar(true, _frete.Id, new MotoristaBLL().pegarAtual().Id); await FreteFactory.create().aceitar(new AceiteEnvioInfo { IdFrete = _frete.Id, IdMotorista = new MotoristaBLL().pegarAtual().Id, Aceite = true }); UserDialogs.Instance.HideLoading(); _Confirmar.Text = "Deixar de pedir carga"; selecionado = true; } else { UserDialogs.Instance.ShowLoading("Liberando..."); _frete.Situacao = FreteSituacaoEnum.ProcurandoMotorista; await FreteFactory.create().alterar(_frete); UserDialogs.Instance.HideLoading(); _Confirmar.Text = "Quero esta carga !"; selecionado = false; } } }; }
private void inicializarComponente() { _AcaoButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Margin = new Thickness(8, 0), Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = (_Situacao == FreteSituacaoEnum.PegandoEncomenda ? "Peguei a encomenda" : "Entreguei a encomenda") }; _AcaoButton.Clicked += (sender, e) => { confirmaPegaEntregaAsync(); }; _AbrirRota = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Margin = new Thickness(8, 0), Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "Ver rota externamente" }; _AbrirRota.Clicked += (sender, e) => { _PickerRota.Focus(); }; _PickerRota = new Picker() { ItemsSource = new List <string>() { "Waze", "Maps" }, HeightRequest = 0, IsVisible = false }; _PickerRota.SelectedIndexChanged += async(sender2, e2) => { UserDialogs.Instance.ShowLoading("Aguarde..."); var infoEntrega = await FreteFactory.create().pegar(_IdFrete); UserDialogs.Instance.HideLoading(); switch ((string)_PickerRota.SelectedItem) { case "Maps": Device.OpenUri(new Uri("http://maps.google.com/maps?daddr=" + infoEntrega.EnderecoDestino)); break; case "Waze": Device.OpenUri(new Uri("waze://?q=" + infoEntrega.EnderecoDestino)); break; } }; _ContatoButton = new Button { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Margin = new Thickness(8, 0), Style = Estilo.Current[Estilo.BTN_PRINCIPAL], Text = "Ver dados do pedido" }; _ContatoButton.Clicked += (sender, e) => { mostraDadosEntrega(); }; _Distancia = new Label() { VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, HeightRequest = 22, Margin = new Thickness(8, 0), FontSize = 18, TextColor = Color.Black }; _Tempo = new Label() { VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, Margin = new Thickness(8, 0), HeightRequest = 22, FontSize = 18, TextColor = Color.Black }; _CustomMap = new CustomMap { MapType = MapType.Street, VerticalOptions = LayoutOptions.FillAndExpand, HorizontalOptions = LayoutOptions.Fill, IsShowingUser = true }; }