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;
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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
            });
        }
Exemple #9
0
        public Task <int> inserir(FreteInfo entrega)
        {
            var args = new List <object>();

            args.Add(entrega);
            return(queryPut <int>(GlobalUtils.URLAplicacao + "/api/frete/inserir", args.ToArray()));
        }
Exemple #10
0
        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);
        }
Exemple #11
0
        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
         }
     };
 }
Exemple #15
0
 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());
            };
        }
Exemple #22
0
        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);
            });
        }
Exemple #23
0
        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);
        }
Exemple #24
0
        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);
                }
            }
        }
Exemple #26
0
 public void gravarAtual(FreteInfo frete)
 {
     _freteAtual = frete;
     App.Current.Properties["frete"] = JsonConvert.SerializeObject(_freteAtual);
     App.Current.SavePropertiesAsync();
 }
Exemple #27
0
 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;
        }
Exemple #29
0
        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);
        }
Exemple #30
0
 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
             }
         }
     };
 }