public SelecionaMetodoPagamento(FreteInfo info) { _Info = info; inicializarComponente(); Title = "Método de pagamento"; _mainLayout = new Grid { Margin = new Thickness(10, 10), RowSpacing = 10, ColumnSpacing = 10 }; _mainLayout.RowDefinitions.Add(new RowDefinition { Height = new GridLength(1, GridUnitType.Star) }); _mainLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); _mainLayout.ColumnDefinitions.Add(new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) }); _mainLayout.Children.Add(_EnviarProdutoButton, 0, 0); _mainLayout.Children.Add(_RastrearMercadoriaButton, 1, 0); Content = _mainLayout; }
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); }
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 Frame gerarCarga(FreteInfo frete) { int linha = 1; var gridLayout = new Grid { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, RowSpacing = 0 }; gridAdicionarTitulo(gridLayout, "CARGA"); if (frete.Peso > 0) { gridAdicionarLinha(gridLayout, "Peso:", frete.Peso.ToString("N2") + "Kg", ref linha); } if (string.IsNullOrEmpty(frete.Dimensao)) { gridAdicionarLinha(gridLayout, "Dimensões:", frete.Dimensao, ref linha); } return(new Frame { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilo.Current[Estilo.LISTA_FRAME_PADRAO], Margin = new Thickness(3, 6, 3, 0), Content = gridLayout }); }
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)); } } }; }
private Frame gerarData(FreteInfo frete) { int linha = 1; var gridLayout = new Grid { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, RowSpacing = 0 }; gridAdicionarTitulo(gridLayout, "AGENDAMENTO"); gridAdicionarLinha(gridLayout, "Criação:", frete.DataInclusaoStr, ref linha); gridAdicionarLinha(gridLayout, "Alteração:", frete.UltimaAlteracaoStr, ref linha); if (frete.DataRetirada.HasValue) { gridAdicionarLinha(gridLayout, "Retirada:", frete.DataRetiradaStr, ref linha); } if (frete.DataEntrega.HasValue) { gridAdicionarLinha(gridLayout, "Entrega:", frete.DataEntregaStr, ref linha); } return(new Frame { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilo.Current[Estilo.LISTA_FRAME_PADRAO], Margin = new Thickness(3, 6, 3, 0), Content = gridLayout }); }
private Frame gerarLocalizacao(FreteInfo frete) { int linha = 1; var gridLayout = new Grid { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, RowSpacing = 0 }; gridAdicionarTitulo(gridLayout, "LOCALIZAÇÃO"); if (!string.IsNullOrEmpty(frete.EnderecoOrigem)) { gridAdicionarLinha(gridLayout, "Origem:", frete.EnderecoOrigem, ref linha, TextAlignment.Start); } if (!string.IsNullOrEmpty(frete.EnderecoDestino)) { gridAdicionarLinha(gridLayout, "Destino:", frete.EnderecoDestino, ref linha, TextAlignment.Start); } return(new Frame { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilo.Current[Estilo.LISTA_FRAME_PADRAO], Margin = new Thickness(3, 6, 3, 0), Content = gridLayout }); }
private Frame gerarBasico(FreteInfo frete) { int linha = 1; var gridLayout = new Grid { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, RowSpacing = 0 }; gridAdicionarTitulo(gridLayout, "DADOS BÁSICOS"); if (frete.Preco > 0) { gridAdicionarLinha(gridLayout, "Preco:", "R$" + frete.Preco.ToString("N2"), ref linha); } if (frete.Distancia > 0) { gridAdicionarLinha(gridLayout, "Distância:", frete.DistanciaStr, ref linha); } if (frete.Tempo > 0) { gridAdicionarLinha(gridLayout, "Previsão:", frete.TempoStr, ref linha); } return(new Frame { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilo.Current[Estilo.LISTA_FRAME_PADRAO], Margin = new Thickness(3, 6, 3, 0), Content = gridLayout }); }
public Task <int> inserir(FreteInfo entrega) { var args = new List <object>(); args.Add(entrega); return(queryPut <int>(GlobalUtils.URLAplicacao + "/api/frete/inserir", args.ToArray())); }
private PagamentoInfo gerarPagamento(MotoristaInfo motorista, FreteInfo frete, PagamentoCartaoInfo cartao = null) { var pagamento = new PagamentoInfo { IdUsuario = motorista.Id, Situacao = SituacaoPagamentoEnum.Aberto, Tipo = TipoPagamentoEnum.Credito, Observacao = "15% da primeira hora" }; pagamento.Itens.Add(new PagamentoItemInfo { Descricao = "15% da primeira hora", Quantidade = 1, Valor = frete.Preco * 0.15 }); if (cartao != null) { pagamento.Bandeira = cartao.Bandeira; pagamento.Token = cartao.Token; pagamento.NomeCartao = cartao.Nome; pagamento.CVV = cartao.CVV; } return(pagamento); }
private void inicializarComponente() { _filtro = new FreteFiltroPage(); _freteListView = new ListView() { Style = Estilo.Current[Estilo.LISTA_PADRAO] }; _freteListView.HasUnevenRows = true; _freteListView.RowHeight = -1; _freteListView.SeparatorVisibility = SeparatorVisibility.Default; _freteListView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); _freteListView.ItemTemplate = new DataTemplate(typeof(FreteMotoristaCell)); _freteListView.ItemTapped += async(sender, e) => { if (e == null) { return; } FreteInfo entrInfo = (FreteInfo)((ListView)sender).SelectedItem; Navigation.PushAsync(new FreteAvisoPage(entrInfo)); }; }
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); }
public FreteAvisoPage(FreteInfo info) { _frete = info; Title = "Frete"; inicializarComponente(); Content = new ScrollView { Content = new StackLayout { Margin = 10, Children = { _Titulo, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { _Origem, _DivisoriaOrigemDestino, _Destino } }, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { _DataSaida, _DivisoriaData, _DataChegada } } } } }; var stckLayout = ((ScrollView)Content).Content; foreach (var veiculo in _frete.Veiculos) { ((StackLayout)stckLayout).Children.Add(getTipoVeiculoView(veiculo)); } ((StackLayout)stckLayout).Children.Add(_Valor); ((StackLayout)stckLayout).Children.Add(_Confirmar); }
public FreteForm2Page(FreteInfo FreteInfo) { _FreteInfo = FreteInfo; Title = "Escolha a rota"; inicializarComponente(); Content = new StackLayout { Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, Children = { gerarPainelDestino(), _EnviarButton } }; }
public FreteForm4Page(FreteInfo info) { _Info = info; inicializarComponente(); Title = "Resumo"; Content = new StackLayout() { VerticalOptions = LayoutOptions.Fill, HorizontalOptions = LayoutOptions.Fill, Children = { _CustomMap, new Label() { Text = "Distância: " + info.DistanciaLabel, VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, HeightRequest = 22, Margin = new Thickness(8, 0), FontSize = 18, TextColor = Color.Black }, new Label() { Text = "Tempo: " + info.TempoLabel, VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, Margin = new Thickness(8, 0), HeightRequest = 22, FontSize = 18, TextColor = Color.Black }, new Entry() { Placeholder = "Preço", VerticalOptions = LayoutOptions.End, HorizontalOptions = LayoutOptions.Fill, FontSize = 18, TextColor = Color.Black, Margin = new Thickness(8, 0,8, 10) }, _EnviarButton } }; }
public FreteForm3Page(FreteInfo FreteInfo) { _FreteInfo = FreteInfo; Title = "Foto do produto"; inicializarComponente(); Content = new StackLayout { Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Children = { _FotoProdutoButton, _Observacao, _EnviarButton } }; }
private void definirTipoPorOrdem(FreteInfo frete) { for (int i = 0; i < frete.Locais.Count(); i++) { if (i == 0) { frete.Locais[i].Tipo = FreteLocalTipoEnum.Saida; } else if (i == (frete.Locais.Count() - 1)) { frete.Locais[i].Tipo = FreteLocalTipoEnum.Destino; } else { frete.Locais[i].Tipo = FreteLocalTipoEnum.Parada; } } }
private void continuaPedido() { if (validaPedido()) { var infoPedido = new FreteInfo() { Altura = double.Parse(_AlturaEntry.Text), Largura = double.Parse(_LarguraEntry.Text), Peso = double.Parse(_PesoEntry.Text), Profundidade = double.Parse(_ProfundidadeEntry.Text), CodigoVeiculo = TipoVeiculoEnum.Caminhao, IdUsuario = new UsuarioBLL().pegarAtual().Id }; Navigation.PushAsync(new FreteForm2Page(infoPedido)); } else { DisplayAlert("Atenção", "Dados inválidos, verifique todas as entradas.", "Entendi"); } }
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 Frame gerarHorario(FreteInfo frete) { int linha = 1; var gridLayout = new Grid { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.Fill, RowSpacing = 0 }; gridAdicionarTitulo(gridLayout, "HORÁRIO"); if (frete.DataRetiradaExecutada.HasValue) { gridAdicionarLinha(gridLayout, "Retirada:", frete.DataRetiradaExecutadaStr, ref linha); } if (frete.DataEntregaExecutada.HasValue) { gridAdicionarLinha(gridLayout, "Entregue:", frete.DataEntregaExecutadaStr, ref linha); } var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando }; if (situacoes.Contains(frete.Situacao)) { gridAdicionarLinha(gridLayout, "Duração:", _duracaoLabel, ref linha); } return(new Frame { VerticalOptions = LayoutOptions.Start, HorizontalOptions = LayoutOptions.FillAndExpand, Style = Estilo.Current[Estilo.LISTA_FRAME_PADRAO], Margin = new Thickness(3, 6, 3, 0), Content = gridLayout }); }
/* * public async Task<List<FreteInfo>> listarFreteAsync() * { * var ret = await FreteFactory.create().listar(); * 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; * } */ private void inicializarComponente() { _freteListView = new ListView() { Style = Estilo.Current[Estilo.LISTA_PADRAO], HasUnevenRows = true, RowHeight = -1, ItemTemplate = new DataTemplate(typeof(FreteEmpresaCell)) }; _freteListView.SetBinding(ListView.ItemsSourceProperty, new Binding(".")); _freteListView.ItemTapped += async(sender, e) => { if (e == null) { return; } FreteInfo entrInfo = (FreteInfo)((ListView)sender).SelectedItem; if (entrInfo.Situacao == FreteSituacaoEnum.ProcurandoMotorista) { await Navigation.PushAsync(new FreteFormPage(entrInfo)); } _freteListView.SelectedItem = null; }; _NovoButton = new Button() { Text = "Novo frete", HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.End, Margin = 10, Style = Estilo.Current[Estilo.BTN_SUCESSO] }; _NovoButton.Clicked += (sender, e) => { Navigation.PushAsync(new FreteFormPage()); }; }
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); }); }
public static void criar() { var mapaPage = new MapaRotaPage { Title = "Selecione a rota", TituloPadrao = "Parte do trageto", IniciarEmPosicaoAtual = true }; mapaPage.AoSelecionar += (sender, posicoes) => { var frete = new FreteInfo(); foreach (var posicao in posicoes) { frete.Locais.Add(new FreteLocalInfo { Tipo = FreteLocalTipoEnum.Parada, Latitude = posicao.Latitude, Longitude = posicao.Longitude }); } var caronaPage = new CaronaFormPage { Title = "Nova carona", Frete = frete }; caronaPage.AoCadastrar += async(s2, f) => { await((Page)sender).Navigation.PushAsync(new FretePage { Title = frete.SituacaoStr, Frete = f }); }; ((RootPage)App.Current.MainPage).PushAsync(caronaPage); }; ((RootPage)App.Current.MainPage).PushAsync(mapaPage); }
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"); } }
private void atualizarTela(FreteInfo frete) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); switch (frete.Situacao) { case FreteSituacaoEnum.ProcurandoMotorista: if (motorista != null && frete.IdUsuario != motorista.Id) { _acaoButton.Text = "Quero essa viagem"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; case FreteSituacaoEnum.Aguardando: _acaoButton.Text = "Iniciar"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); break; case FreteSituacaoEnum.PegandoEncomenda: if (motorista != null && frete.IdMotorista == motorista.Id) { _acaoButton.Text = "Peguei a encomenda"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; case FreteSituacaoEnum.Entregando: if (motorista != null && frete.IdMotorista == motorista.Id) { _acaoButton.Text = "Entreguei!"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; case FreteSituacaoEnum.Entregue: if (usuario != null && frete.IdUsuario == usuario.Id) { _acaoButton.Text = "Confirmar entrega!"; _acaoButton.Style = Estilo.Current[Estilo.BTN_SUCESSO]; _mainLayout.Children.Add(_acaoButton); } break; } var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando }; if (situacoes.Contains(frete.Situacao)) { _mainLayout.Children.Add(_acompanharButton); } _mainLayout.Children.Add(_abrirRotaButton); situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.EntregaConfirmada, FreteSituacaoEnum.Entregue }; if (situacoes.Contains(frete.Situacao)) { if (frete.IdUsuario == usuario.Id && !(frete.NotaMotorista > 0)) { _avaliarButton.Text = "Avaliar Motorista"; _mainLayout.Children.Add(_avaliarButton); } else if (frete.IdMotorista == usuario.Id && !(frete.NotaFrete > 0)) { _avaliarButton.Text = "Avaliar Cliente"; _mainLayout.Children.Add(_avaliarButton); } } }
public void gravarAtual(FreteInfo frete) { _freteAtual = frete; App.Current.Properties["frete"] = JsonConvert.SerializeObject(_freteAtual); App.Current.SavePropertiesAsync(); }
public async Task limparAtual() { _freteAtual = null; App.Current.Properties.Remove("frete"); await App.Current.SavePropertiesAsync(); }
private void atualizarTela(FreteInfo frete) { var regraUsuario = UsuarioFactory.create(); var usuario = regraUsuario.pegarAtual(); var regraMotorista = MotoristaFactory.create(); var motorista = regraMotorista.pegarAtual(); _mainLayout.Children.Clear(); if (frete.RotaEncontrada) { if (!string.IsNullOrEmpty(frete.Polyline)) { _mainLayout.Children.Insert(0, _CustomMap); var posicoes = MapaUtils.decodePolyline(frete.Polyline); _CustomMap.Polyline = posicoes; } else { if (frete.Locais.Count() > 0) { _mainLayout.Children.Insert(0, _CustomMap); var posicoes = new List <Position>(); foreach (var local in frete.Locais) { posicoes.Add(new Position(local.Latitude, local.Longitude)); } _CustomMap.Polyline = posicoes; } } } else { if (frete.Locais.Count() > 0) { _mainLayout.Children.Insert(0, _CustomMap); var posicoes = new List <Position>(); foreach (var local in frete.Locais) { posicoes.Add(new Position(local.Latitude, local.Longitude)); } _CustomMap.Polyline = posicoes; } } if (frete.NotaFrete > 0 && frete.NotaMotorista > 0) { } else if (frete.NotaFrete > 0) { var nota = gerarNota(frete.NotaFrete); nota.Margin = new Thickness(3, 6, 3, 0); _mainLayout.Children.Add(nota); } else if (frete.NotaMotorista > 0) { var nota = gerarNota(frete.NotaMotorista); nota.Margin = new Thickness(3, 6, 3, 0); _mainLayout.Children.Add(nota); } if (!(string.IsNullOrEmpty(frete.EnderecoOrigem) && string.IsNullOrEmpty(frete.EnderecoDestino))) { _mainLayout.Children.Add(gerarLocalizacao(frete)); } _mainLayout.Children.Add(gerarBasico(frete)); _mainLayout.Children.Add(gerarData(frete)); var situacoes = new List <FreteSituacaoEnum>() { FreteSituacaoEnum.EntregaConfirmada, FreteSituacaoEnum.PegandoEncomenda, FreteSituacaoEnum.Entregando, FreteSituacaoEnum.Entregue }; if (situacoes.Contains(frete.Situacao)) { _mainLayout.Children.Add(gerarHorario(frete)); } if (frete.IdUsuario != usuario.Id) { _mainLayout.Children.Add(gerarUsuario(frete.Usuario, "RESPONSÁVEL")); } if (frete.Motorista != null && frete.Motorista.Usuario != null && frete.IdMotorista != usuario.Id) { _mainLayout.Children.Add(gerarUsuario(frete.Motorista.Usuario, "MOTORISTA")); } _mainLayout.Children.Add(_acaoView); _acaoView.Frete = frete; }
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 FreteFormPage(FreteInfo frete = null) { Title = "Novo Frete"; _Edit = frete != null; inicializarComponente(); Frete = frete; _ContainerDataEntregaConteudo = 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] }, _DataEntrega, new IconImage { Icon = "fa-clock-o", HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.ICONE_PADRAO] }, _HoraEntrega } }; _ContainerDataEntregaAux = new StackLayout { HorizontalOptions = LayoutOptions.Fill, Children = { _ContainerDataEntregaConteudo } }; Content = new ScrollView { Orientation = ScrollOrientation.Vertical, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Fill, Content = new StackLayout { Orientation = StackOrientation.Vertical, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Padding = new Thickness(3, 3), Children = { _ObservacaoEntry, _TipoVeiculoLayout, _AddTipoVeiculoButton, _CarroceriaLayout, _AddCarroceriaButton, _PesoEntry, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.TITULO2], Text = "Informações de carga:" }, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { _EmBlocoSwitch, new Label { HorizontalOptions = LayoutOptions.Center, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.LABEL_SWITCH], Text = "Carga em blocos, não se aplica" } } }, _AlturaEntry, _ProfundidadeEntry, _LarguraEntry, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.TITULO1], Text = "Informações de Endereços:" }, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.TITULO2], Text = "Local de Retirada:" }, _LocalRetirada, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Style = Estilo.Current[Estilo.TITULO2], Text = "Local de entrega:" }, _LocalEntrega, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Text = "Data hora da Retirada:", Style = Estilo.Current[Estilo.LABEL_CONTROL] }, 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] }, _DataRetirada, new IconImage { Icon = "fa-clock-o", HorizontalOptions = LayoutOptions.Start, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.ICONE_PADRAO] }, _HoraRetirada } }, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Text = "Data hora máxima para entrega:", Style = Estilo.Current[Estilo.LABEL_CONTROL] }, _ContainerDataEntregaAux, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { _UsaDataEntrega, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.LABEL_SWITCH], Text = "Não se aplica" } } }, _PrecoEntry, new StackLayout { Orientation = StackOrientation.Horizontal, HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Start, Spacing = 5, Children = { _ValorACombinar, new Label { HorizontalOptions = LayoutOptions.Fill, VerticalOptions = LayoutOptions.Center, Style = Estilo.Current[Estilo.LABEL_SWITCH], Text = "Valor à combinar" } } }, _EnviarButton } } }; }