Пример #1
0
        public static async Task gerarMeuPedido()
        {
            UserDialogs.Instance.ShowLoading("Carregando...");
            try
            {
                var regraUsuario = UsuarioFactory.create();
                var usuarioAtual = regraUsuario.pegarAtual();

                var regraPedido = PedidoFactory.create();
                var pedidos     = await regraPedido.listar(usuarioAtual.Id);

                var pedidoListaPage = new PedidoListaPage
                {
                    Title   = "Meus Pedidos",
                    Pedidos = pedidos
                };
                pedidoListaPage.AoSelecionar += (sender, pedido) => {
                    var pedidoPage = new PedidoPage
                    {
                        Pedido = pedido
                    };
                    ((Page)sender).Navigation.PushAsync(pedidoPage);
                };
                UserDialogs.Instance.HideLoading();
                //((RootPage)App.Current.MainPage).PaginaAtual = pedidoListaPage;
                ((RootPage)App.Current.MainPage).PushAsync(pedidoListaPage);
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
            }
        }
Пример #2
0
        protected async virtual Task atualizandoDado()
        {
            var regraUsuario = UsuarioFactory.create();
            var usuarioAtual = regraUsuario.pegarAtual();

            if (usuarioAtual == null)
            {
                UserDialogs.Instance.HideLoading();
                UserDialogs.Instance.Alert("Não está logado.", "Erro", "Fechar");
                return;
            }
            var usuario = await regraUsuario.pegar(usuarioAtual.Id);

            regraUsuario.gravarAtual(usuario);
            _usuarioPage.Usuario = usuario;
            var enderecos = new List <EnderecoInfo>();

            foreach (var endereco in usuario.Enderecos)
            {
                enderecos.Add(endereco);
            }
            _enderecoListaPage.Enderecos = enderecos;

            var regraCartao = CartaoFactory.create();
            var cartoes     = await regraCartao.listar(usuario.Id);

            _cartaoListaPage.Cartoes = cartoes;
            return;
        }
Пример #3
0
        protected override async Task executar()
        {
            if (_verificando)
            {
                return;
            }
            _verificando = true;
            try
            {
                var dataAtual = DateTime.Now;
                if (dataAtual.Subtract(_ultimaExecucao).TotalMilliseconds > DuracaoExecucao)
                {
                    var regraUsuario = UsuarioFactory.create();
                    var usuario      = regraUsuario.pegarAtual();
                    if (usuario != null)
                    {
                        var regraMensagem = MensagemFactory.create();
                        var avisos        = await regraMensagem.listarAviso(usuario.Id);

                        foreach (var aviso in avisos)
                        {
                            var rootPage = (RootPage)App.Current.MainPage;
                            //CrossLocalNotifications.Current.Show(rootPage.NomeApp, aviso.Assunto);
                            CrossLocalNotifications.Current.Show(rootPage.NomeApp, aviso.Mensagem);
                        }
                    }
                    _ultimaExecucao = dataAtual;
                    System.Diagnostics.Debug.WriteLine("Verificando avisos: " + dataAtual.ToString("HH:mm:ss"));
                }
            }
            finally {
                _verificando = false;
            }
            return;
        }
Пример #4
0
        public static PagamentoInfo gerar(PedidoInfo pedido)
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();
            var pagamento    = new PagamentoInfo
            {
                IdUsuario   = usuario.Id,
                Cpf         = usuario.CpfCnpj,
                Cep         = pedido.Cep,
                Logradouro  = pedido.Logradouro,
                Complemento = pedido.Complemento,
                Numero      = pedido.Numero,
                Bairro      = pedido.Bairro,
                Cidade      = pedido.Cidade,
                Uf          = pedido.Uf,
                Situacao    = SituacaoPagamentoEnum.Aberto
            };

            foreach (var item in pedido.Itens)
            {
                pagamento.Itens.Add(new PagamentoItemInfo
                {
                    Descricao  = item.Produto.Nome,
                    Quantidade = item.Quantidade,
                    Valor      = (item.Produto.ValorPromocao > 0) ? item.Produto.ValorPromocao : item.Produto.Valor
                });
            }
            return(pagamento);
        }
Пример #5
0
        public static Usuario getUserById(string user)
        {
            MySqlConnection connection = new MySqlConnection(connecString);
            MySqlCommand    command    = connection.CreateCommand();

            connection.Open();
            command.CommandText = "select * from usuarios where userName='******';";
            Usuario newUsuario = null;

            try
            {
                MySqlDataReader reader = command.ExecuteReader();
                while (reader.Read())
                {
                    newUsuario = UsuarioFactory.create(reader);
                }
            }
            catch (Exception e)
            {
                string message = e.Message;
            }



            return(newUsuario);
        }
Пример #6
0
        /*
         * public static Page gerarLogin(Action<UsuarioInfo> aoLogar)
         * {
         *  var loginPage = new LoginPage
         *  {
         *      Title = "Login"
         *  };
         *  loginPage.AoLogar += (sender, usuario) =>
         *  {
         *      var regraLoja = LojaFactory.create();
         *      var loja = regraLoja.pegarAtual();
         *
         *      if (loja != null)
         *      {
         *          atualizarRootPage(ProdutoUtils.gerarProdutoListaDestaque(), false);
         *      }
         *      else
         *      {
         *          if (usuario.Enderecos.Count > 0)
         *          {
         *              var endereco = usuario.Enderecos[0];
         *              LojaUtils.gerarLojaLista(endereco);
         *          }
         *          else
         *          {
         *              EnderecoUtils.gerarBuscaPorCep((endereco) => {
         *                  LojaUtils.gerarLojaLista(endereco);
         *              });
         *          }
         *      }
         *  };
         *  return loginPage;
         * }
         */

        public static void carregarUsuario(Action <UsuarioInfo> aoSelecionar)
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            if (usuario == null || (usuario != null && usuario.Id <= 0))
            {
                var usuarioSelecionaPage = new UsuarioSelecionaPage
                {
                    Title   = "Crie / Use sua conta",
                    Usuario = usuario
                };
                usuarioSelecionaPage.AoSelecionar += (sender, usuarioRetorno) =>
                {
                    if (App.Current.MainPage is RootPage)
                    {
                        ((RootPage)App.Current.MainPage).atualizarMenu();
                    }
                    aoSelecionar?.Invoke(usuarioRetorno);
                };
                if (App.Current.MainPage is RootPage)
                {
                    ((RootPage)App.Current.MainPage).PushAsync(usuarioSelecionaPage);
                }
                else
                {
                    App.Current.MainPage = App.gerarRootPage(usuarioSelecionaPage);
                    //App.Current.MainPage = new IconNavigationPage(usuarioSelecionaPage);
                }
            }
            else
            {
                aoSelecionar?.Invoke(usuario);
            }
        }
Пример #7
0
        private async void creditoOnlineClicked(object sender, EventArgs e)
        {
            if (Pagamento == null)
            {
                await DisplayAlert("Erro", "Nenhum pagamento informado!", "Fechar");

                return;
            }
            UserDialogs.Instance.ShowLoading("Carregando...");
            try
            {
                Pagamento.Tipo = TipoPagamentoEnum.CreditoOnline;

                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();

                var regraCartao = CartaoFactory.create();
                var cartoes     = await regraCartao.listar(usuario.Id);

                if (cartoes != null && cartoes.Count() > 0)
                {
                    var cartaoListaPage = new CartaoListaPage()
                    {
                        Title     = "Meus Cartões",
                        Pagamento = Pagamento,
                        Cartoes   = cartoes
                    };
                    cartaoListaPage.AoEfetuarPagamento += (s2, pagamento) => {
                        AoEfetuarPagamento?.Invoke(sender, pagamento);
                    };
                    await Navigation.PushAsync(cartaoListaPage);
                }
                else
                {
                    var cartaoPage = new CartaoPage
                    {
                        Title      = "Cartão de Crédito",
                        UsaCredito = true,
                        UsaDebito  = false,
                        Pagamento  = Pagamento
                    };
                    cartaoPage.AoEfetuarPagamento += (s2, pagamento) =>
                    {
                        AoEfetuarPagamento?.Invoke(sender, pagamento);
                    };
                    await Navigation.PushAsync(cartaoPage);
                }
                UserDialogs.Instance.HideLoading();
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                await DisplayAlert("Erro", erro.Message, "Entendi");
            }
        }
Пример #8
0
        private void inicializarComponente()
        {
            _Email = new Entry
            {
                Placeholder       = "Preencha o seu email.",
                Keyboard          = Keyboard.Email,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };
            _RecuperarSenha = new Button()
            {
                Margin            = new Thickness(0, 10, 0, 0),
                Text              = "ENVIAR SENHA PARA O EMAIL",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Style             = Estilo.Current[Estilo.BTN_PRINCIPAL]
            };
            _RecuperarSenha.Clicked += async(sender, e) =>
            {
                if (validaProximo())
                {
                    UserDialogs.Instance.ShowLoading("Aguarde...");
                    if (await UsuarioFactory.create().recuperarSenha(new UsuarioNovaSenhaInfo {
                        Email = _Email.Text
                    }))
                    {
                        UserDialogs.Instance.HideLoading();
                        //await UserDialogs.Instance.AlertAsync("A senha foi enviada para o seu email", "Sucesso !", "Ok");
                        await DisplayAlert("Sucesso", "A senha foi enviada para o seu email", "Entendi");

                        await Navigation.PopToRootAsync();
                    }
                    else
                    {
                        UserDialogs.Instance.HideLoading();
                        //UserDialogs.Instance.Alert("Ocorreu uma falha ao enviar a senha. Verifique se o email informado está correto.", "Falha", "Ok");
                        await DisplayAlert("Erro", "Ocorreu uma falha ao enviar a senha. Verifique se o email informado está correto.", "Entendi");
                    }
                }
            };
            _ResetarSenha = new Button()
            {
                Margin            = new Thickness(0, 10, 0, 0),
                Text              = "ALTERAR A SENHA",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Style             = Estilo.Current[Estilo.BTN_PADRAO]
            };
            _ResetarSenha.Clicked += (sender, e) => {
                if (validaProximo())
                {
                    Navigation.PushAsync(new ResetaSenhaPage(_Email.Text));
                }
            };
        }
Пример #9
0
        private void inicializarComponente()
        {
            _SenhaAntiga = new Entry
            {
                Placeholder       = "Senha antiga",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                IsPassword        = true
            };
            _NovaSenha = new Entry
            {
                Placeholder       = "Nova senha",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                IsPassword        = true
            };
            _ConfirmaNovaSenha = new Entry
            {
                Placeholder       = "Repita a nova senha",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                IsPassword        = true
            };
            _ResetaSenha = new Button()
            {
                Margin            = new Thickness(0, 10, 0, 0),
                Text              = "RESETAR MINHA SENHA",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill,
                Style             = Estilo.Current[Estilo.BTN_PRINCIPAL]
            };
            _ResetaSenha.Clicked += async(sender, e) =>
            {
                if (validaResete())
                {
                    UserDialogs.Instance.ShowLoading("Aguarde...");
                    if (await UsuarioFactory.create().resetarSenha(new UsuarioNovaSenhaInfo {
                        Email = _Email, Senha = _NovaSenha.Text, SenhaAntiga = _SenhaAntiga.Text
                    }))
                    {
                        UserDialogs.Instance.HideLoading();
                        //await UserDialogs.Instance.AlertAsync("Sua senha foi resetada", "Sucesso !", "Ok");
                        await DisplayAlert("Sucesso", "Sua senha foi resetada", "Fechar");

                        await Navigation.PopToRootAsync();
                    }
                    else
                    {
                        UserDialogs.Instance.HideLoading();
                        //UserDialogs.Instance.Alert("Ocorreu uma falha ao resetar a senha. Tente novamente mais tarde.", "Falha", "Ok");
                        await DisplayAlert("Erro", "Ocorreu uma falha ao resetar a senha. Tente novamente mais tarde.", "Entendi");
                    }
                }
            };
        }
Пример #10
0
        public static EnderecoListaPage gerarEnderecoLista(Action <EnderecoInfo> aoSelecionar)
        {
            var enderecoListaPage = new EnderecoListaPage
            {
                Title = "Endereços"
            };

            enderecoListaPage.AoAtualizar += async(sender, enderecos) => {
                UserDialogs.Instance.ShowLoading("Carregando...");
                try
                {
                    var regraUsuario = UsuarioFactory.create();
                    var usuario      = regraUsuario.pegarAtual();
                    usuario.Enderecos.Clear();
                    foreach (var endereco in enderecos)
                    {
                        usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                    }
                    int idUsuario = usuario.Id;
                    if (idUsuario > 0)
                    {
                        await regraUsuario.alterar(usuario);
                    }
                    else
                    {
                        idUsuario = await regraUsuario.inserir(usuario);
                    }
                    var usuarioRemoto = await regraUsuario.pegar(idUsuario);

                    regraUsuario.gravarAtual(usuarioRemoto);

                    var usuarioEnderecos = new List <EnderecoInfo>();
                    foreach (var endereco in usuarioRemoto.Enderecos)
                    {
                        usuarioEnderecos.Add(endereco);
                    }
                    ((EnderecoListaPage)sender).Enderecos = usuarioEnderecos;

                    UserDialogs.Instance.HideLoading();
                }
                catch (Exception erro)
                {
                    UserDialogs.Instance.HideLoading();
                    UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                }
            };
            if (aoSelecionar != null)
            {
                enderecoListaPage.AoSelecionar += (sender, endereco) => {
                    aoSelecionar(endereco);
                };
            }
            return(enderecoListaPage);
        }
Пример #11
0
        private async void boletoClicked(object sender, EventArgs e)
        {
            if (Pagamento == null)
            {
                await DisplayAlert("Erro", "Nenhum pagamento informado!", "Fechar");

                return;
            }
            Pagamento.Tipo = TipoPagamentoEnum.Boleto;

            if (Pagamento.TemEndereco)
            {
                gerarBoleto(Pagamento);
            }
            else
            {
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                if (usuario.Enderecos.Count == 1)
                {
                    preencherEndereco(Pagamento, usuario.Enderecos[0]);
                    gerarBoleto(Pagamento);
                }
                else if (usuario.Enderecos.Count > 0)
                {
                    var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) =>
                    {
                        preencherEndereco(Pagamento, endereco);
                        gerarBoleto(Pagamento);
                    });
                    var enderecos = new List <EnderecoInfo>();
                    foreach (var endereco in usuario.Enderecos)
                    {
                        enderecos.Add(endereco);
                    }
                    enderecoListaPage.Enderecos = enderecos;
                    enderecoListaPage.Title     = "Endereço de Cobrança";
                    await Navigation.PushAsync(enderecoListaPage);
                }
                else
                {
                    var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                    {
                        usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                        var regraLogin = UsuarioFactory.create();
                        regraLogin.gravarAtual(usuario);

                        preencherEndereco(Pagamento, endereco);
                        gerarBoleto(Pagamento);
                    });
                    await Navigation.PushAsync(cepPage);
                }
            }
        }
Пример #12
0
 protected override async void OnAppearing()
 {
     base.OnAppearing();
     if (_Inicio)
     {
         _Inicio = false;
         UserDialogs.Instance.ShowLoading("carregando...");
         _EnderecoList.ItemsSource = UsuarioFactory.create().pegarAtual().Enderecos;
         UserDialogs.Instance.HideLoading();
     }
 }
Пример #13
0
        protected async override Task atualizandoDado()
        {
            await base.atualizandoDado();

            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            var regraPedido = PedidoFactory.create();

            _avaliacaoPage.Pedidos = await regraPedido.listarAvaliacao(0, usuario.Id);
        }
Пример #14
0
        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);
        }
Пример #15
0
        private async void enviarPagamento()
        {
            if (!validarCampo())
            {
                return;
            }
            UserDialogs.Instance.ShowLoading("Enviando...");
            try
            {
                var regraPagamento = PagamentoFactory.create();
                var regraCartao    = CartaoFactory.create();
                var regraUsuario   = UsuarioFactory.create();

                var usuario = regraUsuario.pegarAtual();

                Pagamento.Bandeira      = regraPagamento.pegarBandeiraPorNumeroCartao(_NumeroCartaoEntry.Text);
                Pagamento.DataExpiracao = regraCartao.pegarDataExpiracao((string)_ValidadeCartaoPicker.SelectedItem);
                Pagamento.IdUsuario     = usuario.Id;
                Pagamento.NomeCartao    = _NomeEntry.Text;
                Pagamento.NumeroCartao  = _NumeroCartaoEntry.TextOnlyNumber;
                Pagamento.Tipo          = _TipoSelecionado;
                Pagamento.CVV           = _CVCartaoEntry.Text;

                var retorno = await regraPagamento.pagar(Pagamento);

                if (retorno.Situacao == SituacaoPagamentoEnum.Pago || retorno.Situacao == SituacaoPagamentoEnum.AguardandoPagamento)
                {
                    var pagamento = await regraPagamento.pegar(retorno.IdPagamento);

                    if (retorno.Situacao == SituacaoPagamentoEnum.Pago)
                    {
                        var mensagem = "Foram debitados R$ {0} do seu cartão de crédito.";
                        var rootPage = (RootPage)App.Current.MainPage;
                        CrossLocalNotifications.Current.Show(rootPage.NomeApp, string.Format(mensagem, pagamento.ValorTotalStr));
                    }
                    UserDialogs.Instance.HideLoading();
                    AoEfetuarPagamento?.Invoke(this, pagamento);
                }
                else
                {
                    UserDialogs.Instance.HideLoading();
                    await DisplayAlert("Erro", retorno.Mensagem, "Entendi");
                }
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                await DisplayAlert("Erro", erro.Message, "Entendi");
            }
        }
Пример #16
0
        public static Page gerarCadastro(Action <UsuarioInfo> aoCadastrar, bool usaRoot = true)
        {
            var regraUsuario        = UsuarioFactory.create();
            var usuario             = regraUsuario.pegarAtual();
            var usuarioCadastroPage = UsuarioFormPageFactory.create();

            usuarioCadastroPage.Title        = "Cadastre-se";
            usuarioCadastroPage.Gravar       = true;
            usuarioCadastroPage.Usuario      = usuario;
            usuarioCadastroPage.AoCadastrar += (sender, e) => {
                aoCadastrar?.Invoke(e);
                //var destaquePage = ProdutoUtils.gerarProdutoListaDestaque();
                //pushAsync(destaquePage, usaRoot);
            };
            return(usuarioCadastroPage);
        }
Пример #17
0
        private void acompanharClicked(object sender, EventArgs e)
        {
            var regraUsuario = UsuarioFactory.create();
            var usuario      = regraUsuario.pegarAtual();

            var regraMotorista = MotoristaFactory.create();
            var motorista      = regraMotorista.pegarAtual();

            if (motorista != null)
            {
                CaronaUtils.acompanharComoMotorista(Frete);
            }
            else
            {
                CaronaUtils.acompanharComoCliente(Frete);
            }
        }
Пример #18
0
        protected virtual async Task executarLogin()
        {
            var regraUsuario = UsuarioFactory.create();
            var id_usuario   = await regraUsuario.logar(Email, Senha);

            var usuario = await regraUsuario.pegar(id_usuario);

            if (usuario != null)
            {
                regraUsuario.gravarAtual(usuario);
                executarEventoLogar(usuario);
            }
            else
            {
                string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", id_usuario);
                await DisplayAlert("Aviso", mensagem, "Fechar");
            }
        }
Пример #19
0
        private async Task <UsuarioInfo> enviarUsuario(UsuarioInfo usuario)
        {
            var regraUsuario = UsuarioFactory.create();

            UserDialogs.Instance.ShowLoading("Enviando...");
            try
            {
                var id_usuario = 0;
                if (usuario.Id > 0)
                {
                    await regraUsuario.alterar(usuario);

                    id_usuario = usuario.Id;
                }
                else
                {
                    id_usuario = await regraUsuario.inserir(usuario);
                }
                var usuarioCadastrado = await regraUsuario.pegar(id_usuario);

                UserDialogs.Instance.HideLoading();
                if (usuarioCadastrado != null)
                {
                    regraUsuario.gravarAtual(usuarioCadastrado);
                    return(usuarioCadastrado);
                }
                else
                {
                    string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", id_usuario);
                    await DisplayAlert("Aviso", mensagem, "Fechar");
                }
            }
            catch (Exception erro)
            {
                UserDialogs.Instance.HideLoading();
                //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                await DisplayAlert("Erro", erro.Message, "Entendi");
            }
            return(null);
        }
Пример #20
0
        public static PedidoInfo gerar(IList <ProdutoInfo> produtos, EnderecoInfo endereco = null)
        {
            var regraUsuario = UsuarioFactory.create();
            var regraLoja    = LojaFactory.create();

            var usuario = regraUsuario.pegarAtual();
            var loja    = regraLoja.pegarAtual();

            var pedido = new PedidoInfo {
                IdLoja         = loja.Id,
                IdUsuario      = (usuario != null) ? usuario.Id : 0,
                ValorFrete     = 0,
                TrocoPara      = 0,
                FormaPagamento = FormaPagamentoEnum.Dinheiro,
                Situacao       = Model.SituacaoEnum.AguardandoPagamento
            };

            if (endereco != null)
            {
                pedido.Cep         = endereco.Cep;
                pedido.Logradouro  = endereco.Logradouro;
                pedido.Complemento = endereco.Complemento;
                pedido.Numero      = endereco.Numero;
                pedido.Bairro      = endereco.Bairro;
                pedido.Cidade      = endereco.Cidade;
                pedido.Uf          = endereco.Uf;
                pedido.Latitude    = endereco.Latitude;
                pedido.Longitude   = endereco.Longitude;
            }
            foreach (var produto in produtos)
            {
                pedido.Itens.Add(new PedidoItemInfo
                {
                    IdProduto  = produto.Id,
                    Produto    = produto,
                    Quantidade = produto.QuantidadeCarrinho
                });
            }
            return(pedido);
        }
Пример #21
0
        public static async void listarMeuFreteComoCliente()
        {
            UserDialogs.Instance.ShowLoading("carregando...");
            try
            {
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                var regraFrete   = FreteFactory.create();
                var fretes       = await regraFrete.listar(usuario.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");
            }
        }
Пример #22
0
        public static IList <MenuItemInfo> gerarMenu()
        {
            var regraUsuario = UsuarioFactory.create();
            var regraLoja    = LojaFactory.create();

            var loja = regraLoja.pegarAtual();

            var  usuario    = regraUsuario.pegarAtual();
            bool estaLogado = usuario != null && usuario.Id > 0;

            var menus = new List <MenuItemInfo>();

            //if (regraLoja.podeMudarLoja())
            //{
            menus.Add(new MenuItemInfo
            {
                IconeFA  = "fa-home",
                Titulo   = "Lojas",
                aoClicar = (sender, e) =>
                {
                    LojaUtils.inicializarLojaLista();
                    //((RootPage)Current.MainPage).PaginaAtual = lojaPage;
                }
            });

            /*
             * menus.Add(new MenuItemInfo
             * {
             *  IconeFA = "fa-home",
             *  Titulo = "Seguimentos",
             *  aoClicar = async (sender, e) =>
             *  {
             *      var telaInicialPage = await LojaUtils.gerarTelaInicial();
             *      ((RootPage)Current.MainPage).PaginaAtual = telaInicialPage;
             *  }
             * });
             */
            //}

            if (loja != null)
            {
                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-bars",
                    Titulo   = "Categorias",
                    aoClicar = (sender, e) =>
                    {
                        var categoriaPage           = CategoriaPageFactory.create();
                        categoriaPage.BannerVisivel = BannerUtils.Ativo;
                        categoriaPage.Title         = "Categorias";
                        ((RootPage)Current.MainPage).PaginaAtual = categoriaPage;
                    }
                });

                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-shopping-bag",
                    Titulo   = "Lista de Compras",
                    aoClicar = (sender, e) =>
                    {
                        var listaCompraPage = new ListaCompraPage {
                            Title = "Lista de Compras"
                        };
                        ((RootPage)Current.MainPage).PushAsync(listaCompraPage);
                    }
                });

                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-dollar",
                    Titulo   = "Em promoção",
                    aoClicar = (sender, e) =>
                    {
                        ((RootPage)Current.MainPage).PaginaAtual = ProdutoUtils.gerarProdutoListaPromocao();
                    }
                });

                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-search",
                    Titulo   = "Buscar",
                    aoClicar = (sender, e) =>
                    {
                        ((RootPage)Current.MainPage).PaginaAtual = ProdutoUtils.gerarProdutoBusca();
                    }
                });

                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-shopping-cart",
                    Titulo   = "Meu Carrinho",
                    aoClicar = (sender, e) =>
                    {
                        ((RootPage)Current.MainPage).PushAsync(CarrinhoUtils.gerarCarrinhoParaEntrega());
                    }
                });
            }

            if (!estaLogado)
            {
                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-user",
                    Titulo   = "Entrar",
                    aoClicar = (sender, e) =>
                    {
                        var loginPage = new LoginPage
                        {
                            Title = "Login"
                        };
                        loginPage.AoLogar += (s, u) =>
                        {
                            var destaquePage = ProdutoUtils.gerarProdutoListaDestaque();
                            ((RootPage)Current.MainPage).PaginaAtual = destaquePage;
                        };
                        ((RootPage)Current.MainPage).PushAsync(loginPage);
                    }
                });
                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-user-plus",
                    Titulo   = "Criar Conta",
                    aoClicar = (sender, e) =>
                    {
                        ((RootPage)Current.MainPage).PaginaAtual = LoginUtils.gerarCadastro((u) => {
                            var destaquePage = ProdutoUtils.gerarProdutoListaDestaque();
                            ((RootPage)Current.MainPage).PaginaAtual = destaquePage;
                        });
                    }
                });
            }
            else
            {
                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-user",
                    Titulo   = "Alterar Conta",
                    aoClicar = (sender, e) =>
                    {
                        ((RootPage)Current.MainPage).PaginaAtual = new PedidoUsuarioGerenciaPage();
                    }
                });

                menus.Add(new MenuItemInfo
                {
                    IconeFA  = "fa-shopping-basket",
                    Titulo   = "Meus Pedidos",
                    aoClicar = async(sender, e) =>
                    {
                        await PedidoUtils.gerarMeuPedido();
                    }
                });
            }

            menus.Add(new MenuItemInfo
            {
                IconeFA  = "fa-map-marker",
                Titulo   = "Raio de Busca",
                aoClicar = (sender, e) =>
                {
                    var raioBuscaPage = new RaioBuscaPage
                    {
                        Title      = "Mudar Raio de Busca",
                        BotaoTexto = "Gravar"
                    };
                    raioBuscaPage.AoAvancar += (s2, e2) => {
                        raioBuscaPage.DisplayAlert("Sucesso", "Raio alterado com sucesso.", "Entendi");
                    };
                    ((RootPage)Current.MainPage).PushAsync(raioBuscaPage);
                }
            });

            menus.Add(new MenuItemInfo
            {
                IconeFA  = "fa-comment",
                Titulo   = "Fale Conosco",
                aoClicar = (sender, e) =>
                {
                    Device.OpenUri(new Uri("mailto:[email protected]"));
                }
            });

            menus.Add(new MenuItemInfo
            {
                IconeFA  = "fa-remove",
                Titulo   = "Sair",
                aoClicar = async(sender, e) =>
                {
                    var regraCarrinho = CarrinhoFactory.create();
                    regraCarrinho.limpar();
                    var regraLogin = UsuarioFactory.create();
                    await LojaFactory.create().limparAtual();
                    await regraLogin.limparAtual();
                    App.inicilizarApp();
                    //App.verificarSeguimento();
                    //Current.MainPage = new NavigationPage(App.gerarBuscaCep());
                }
            });

            return(menus);
        }
        private async void CadastroClicked(object sender, EventArgs e)
        {
            var usuario = Usuario;

            var regraUsuario = UsuarioFactory.create();

            /*
             * var antt = usuario.Preferencias.Where(x => x.Chave == "ANTT").FirstOrDefault();
             * if (!String.IsNullOrEmpty(_ANTTEntry.Text)) {
             *  if (antt != null) {
             *      antt.Valor = _ANTTEntry.Text;
             *  }
             *  else {
             *      usuario.Preferencias.Add(new UsuarioPreferenciaInfo {
             *          Chave = "ANTT",
             *          Valor = _ANTTEntry.Text
             *      });
             *  }
             * }
             */

            if (Gravar)
            {
                UserDialogs.Instance.ShowLoading("Enviando...");
            }
            try
            {
                if (String.IsNullOrEmpty(_CNHEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha a CNH", "Fechar");

                    return;
                }

                /*
                 * var regraUsuario = UsuarioFactory.create();
                 * _usuario.Preferencias.Add(new UsuarioPreferenciaInfo
                 * {
                 *  Chave = "ANTT",
                 *  Valor = _ANTTEntry.Text
                 * });
                 */
                TipoVeiculoInfo    tipo       = (TipoVeiculoInfo)_TipoVeiculoEntry.Value;
                TipoCarroceriaInfo carroceria = (TipoCarroceriaInfo)_CarroceriaEntry.Value;

                var motorista = new MotoristaInfo
                {
                    Id       = _usuario.Id,
                    IdTipo   = tipo.Id,
                    Placa    = _PlacaEntry.Text,
                    Veiculo  = _VeiculoEntry.Text,
                    ANTT     = _ANTTEntry.Text,
                    Situacao = MotoristaSituacaoEnum.Ativo
                };
                if (carroceria != null)
                {
                    motorista.IdCarroceria = carroceria.Id;
                }

                if (Gravar)
                {
                    await regraUsuario.alterar(_usuario);

                    var regraMotorista = MotoristaFactory.create();
                    var motorista      = new MotoristaInfo
                    {
                        Id       = _usuario.Id,
                        Usuario  = _usuario,
                        IdTipo   = tipo.Id,
                        CNH      = _CNHEntry.Text,
                        Placa    = _PlacaEntry.Text,
                        ANTT     = _ANTTEntry.Text,
                        Situacao = MotoristaSituacaoEnum.Ativo,
                    };
                    if (carroceria != null)
                    {
                        motorista.IdCarroceria = carroceria.Id;
                    }
                    if (motorista.Id > 0)
                    {
                        await regraMotorista.alterar(motorista);
                    }
                    else
                    {
                        motorista.Id = await regraMotorista.inserir(motorista);
                    }
                    motorista = await regraMotorista.pegar(motorista.Id);

                    /*
                     * var motoristaAtual = await regraMotorista.pegar(_usuario.Id);
                     * if (motoristaAtual != null)
                     * {
                     *  await regraMotorista.alterar(motorista);
                     * }
                     * else
                     * {
                     *  await regraMotorista.inserir(motorista);
                     * }
                     */
                    //var usuarioCadastrado = await regraUsuario.pegar(_usuario.Id);
                    //motorista = await regraMotorista.pegar(_usuario.Id);
                    var regraUsuario = UsuarioFactory.create();
                    regraUsuario.gravarAtual(motorista.Usuario);
                    regraMotorista.gravarAtual(motorista);
                    UserDialogs.Instance.HideLoading();
                    AoCompletar?.Invoke(this, motoristaCadastrado);
                }
                else
                {
                    //UserDialogs.Instance.HideLoading();
                    AoCompletar?.Invoke(this, motorista);
                }
            }
            catch (Exception erro)
            {
                if (Gravar)
                {
                    UserDialogs.Instance.HideLoading();
                }
                await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
            }
        }
Пример #24
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);
        }
Пример #25
0
        private void inicializarComponente()
        {
            _NomeEntry = new Entry
            {
                Placeholder       = "Nome",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };
            _SobrenomeEntry = new Entry
            {
                Placeholder       = "Sobrenome",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };
            _EmailEntry = new Entry
            {
                Placeholder       = "Email",
                Keyboard          = Keyboard.Email,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };
            _CelularEntry = new Entry
            {
                Placeholder       = "Celular",
                Keyboard          = Keyboard.Telephone,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };


            _FotoCNHButton = new FotoImageButton()
            {
                HorizontalOptions = LayoutOptions.Fill,
                VerticalOptions   = LayoutOptions.Start,
                Source            = "FotoCNH.png"
            };


            _SenhaEntry = new Entry
            {
                Placeholder       = "Preencha sua senha",
                IsPassword        = true,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };
            _ConfirmaEntry = new Entry
            {
                Placeholder       = "Confirme sua senha",
                IsPassword        = true,
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };

            _CadastroButton = new Button()
            {
                Text = "CADASTRAR",
                HorizontalOptions = LayoutOptions.Fill,
                VerticalOptions   = LayoutOptions.Start,
                Style             = Estilo.Current[Estilo.BTN_PRINCIPAL]
            };
            _CadastroButton.Clicked += async(sender, e) =>
            {
                if (_NomeEntry != null && string.IsNullOrEmpty(_NomeEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha o seu nome.", "Fechar");

                    return;
                }
                if (_SobrenomeEntry != null && string.IsNullOrEmpty(_SobrenomeEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha o seu sobrenome.", "Fechar");

                    return;
                }
                if (_CelularEntry != null && string.IsNullOrEmpty(_CelularEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha o seu celular.", "Fechar");

                    return;
                }
                if (_EmailEntry != null && string.IsNullOrEmpty(_EmailEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha o seu email.", "Fechar");

                    return;
                }
                if (_SenhaEntry != null && string.IsNullOrEmpty(_SenhaEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha a senha.", "Fechar");

                    return;
                }
                if (_ConfirmaEntry != null && string.IsNullOrEmpty(_ConfirmaEntry.Text))
                {
                    await DisplayAlert("Aviso", "Preencha a confirmação de senha.", "Fechar");

                    return;
                }
                if (_SenhaEntry != null && _ConfirmaEntry != null && string.Compare(_SenhaEntry.Text, _ConfirmaEntry.Text) != 0)
                {
                    await DisplayAlert("Aviso", "A senha não está batendo com a confirmação.", "Fechar");

                    return;
                }


                var regraUsuario = UsuarioFactory.create();
                var usuario      = new UsuarioInfo
                {
                    Nome     = _NomeEntry.Text + " " + _SobrenomeEntry.Text,
                    Email    = _EmailEntry.Text,
                    Telefone = _CelularEntry.Text,
                    Senha    = _SenhaEntry.Text,
                    Situacao = SituacaoEnum.Ativo
                };
                UserDialogs.Instance.ShowLoading("Enviando...");
                try
                {
                    var id_usuario = await regraUsuario.inserir(usuario);

                    var usuarioCadastrado = await regraUsuario.pegar(id_usuario);

                    regraUsuario.gravarAtual(usuarioCadastrado);
                    UserDialogs.Instance.HideLoading();
                    if (usuarioCadastrado != null)
                    {
                        regraUsuario.gravarAtual(usuarioCadastrado);
                        //App.Current.MainPage = new NavigationPage(new PrincipalPage());
                    }
                    else
                    {
                        string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", id_usuario);
                        await DisplayAlert("Aviso", mensagem, "Fechar");
                    }
                }
                catch (Exception erro)
                {
                    UserDialogs.Instance.HideLoading();
                    //UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                    await DisplayAlert("Erro", erro.Message, "Fechar");
                }
            };
        }
Пример #26
0
        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;
        }
        /*
         * private async void abrirHorarioEntrega(PedidoInfo pedido) {
         *  UserDialogs.Instance.ShowLoading("Carregando horários de entrega...");
         *  try
         *  {
         *      var regraHorario = PedidoHorarioFactory.create();
         *      var horarios = await regraHorario.listar(Pedido.IdLoja);
         *      if (horarios.Count > 1)
         *      {
         *          var horarioEntregaPage = new HorarioEntregaPage()
         *          {
         *              Title = "Horário de Entrega",
         *              Horarios = horarios
         *          };
         *          horarioEntregaPage.AoSelecionar += (s2, horario) =>
         *          {
         *              Pedido.DiaEntrega = horarioEntregaPage.DiaEntrega;
         *              Pedido.HorarioEntrega = horario.Horario;
         *              definirEntrega(Pedido);
         *          };
         *          UserDialogs.Instance.HideLoading();
         *          await Navigation.PushAsync(horarioEntregaPage);
         *      }
         *      else
         *      {
         *          UserDialogs.Instance.HideLoading();
         *          definirEntrega(Pedido);
         *      }
         *  }
         *  catch (Exception erro)
         *  {
         *      UserDialogs.Instance.HideLoading();
         *      UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
         *      //await DisplayAlert("Erro", erro.Message, "Entendi");
         *  }
         * }
         */

        protected virtual void inicializarComponente()
        {
            _entregaButton = new MenuButton {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Icon  = "fa-motorcycle",
                Text  = "Receber em\nCasa",
                Style = Estilo.Current[Estilo.BTN_ROOT]
            };
            _entregaButton.Click += async(sender, e) => {
                Pedido.Entrega = EntregaEnum.Entrega;
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();

                /*
                 * if (usuario.Enderecos.Count == 1)
                 * {
                 *  var endereco = usuario.Enderecos[0];
                 *  Pedido.Cep = endereco.Cep;
                 *  Pedido.Logradouro = endereco.Logradouro;
                 *  Pedido.Complemento = endereco.Complemento;
                 *  Pedido.Numero = endereco.Numero;
                 *  Pedido.Bairro = endereco.Bairro;
                 *  Pedido.Cidade = endereco.Cidade;
                 *  Pedido.Uf = endereco.Uf;
                 *  Pedido.Latitude = endereco.Latitude;
                 *  Pedido.Longitude = endereco.Longitude;
                 *
                 *  definirEntrega(Pedido);
                 * }
                 */
                if (usuario.Enderecos.Count > 0)
                {
                    var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) => {
                        Pedido.Cep         = endereco.Cep;
                        Pedido.Logradouro  = endereco.Logradouro;
                        Pedido.Complemento = endereco.Complemento;
                        Pedido.Numero      = endereco.Numero;
                        Pedido.Bairro      = endereco.Bairro;
                        Pedido.Cidade      = endereco.Cidade;
                        Pedido.Uf          = endereco.Uf;
                        Pedido.Latitude    = endereco.Latitude;
                        Pedido.Longitude   = endereco.Longitude;

                        //abrirHorarioEntrega(Pedido);
                        definirEntrega(Pedido);
                    });
                    var enderecos = new List <EnderecoInfo>();
                    foreach (var endereco in usuario.Enderecos)
                    {
                        enderecos.Add(endereco);
                    }
                    enderecoListaPage.Enderecos = enderecos;
                    await Navigation.PushAsync(enderecoListaPage);
                }
                else
                {
                    var cepPage = EnderecoUtils.gerarBuscaPorCep(async(endereco) =>
                    {
                        UserDialogs.Instance.ShowLoading("Atualizando endereço...");
                        try
                        {
                            var regraLogin = UsuarioFactory.create();
                            usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                            await regraLogin.alterar(usuario);
                            regraLogin.gravarAtual(usuario);

                            Pedido.Cep         = endereco.Cep;
                            Pedido.Logradouro  = endereco.Logradouro;
                            Pedido.Complemento = endereco.Complemento;
                            Pedido.Numero      = endereco.Numero;
                            Pedido.Bairro      = endereco.Bairro;
                            Pedido.Cidade      = endereco.Cidade;
                            Pedido.Uf          = endereco.Uf;
                            Pedido.Latitude    = endereco.Latitude;
                            Pedido.Longitude   = endereco.Longitude;

                            var regraHorario = PedidoHorarioFactory.create();
                            var horarios     = await regraHorario.listar(Pedido.IdLoja);
                            if (horarios.Count > 1)
                            {
                                var horarioEntregaPage = new HorarioEntregaPage()
                                {
                                    Title    = "Horário de Entrega",
                                    Horarios = horarios
                                };
                                horarioEntregaPage.AoSelecionar += (s2, e2) =>
                                {
                                    definirEntrega(Pedido);
                                };
                                UserDialogs.Instance.HideLoading();
                                await Navigation.PushAsync(horarioEntregaPage);
                            }
                            else
                            {
                                UserDialogs.Instance.HideLoading();
                                definirEntrega(Pedido);
                            }
                        }
                        catch (Exception erro)
                        {
                            UserDialogs.Instance.HideLoading();
                            UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                            //await DisplayAlert("Erro", erro.Message, "Entendi");
                        }
                    }, false);
                    await Navigation.PushAsync(cepPage);
                }
            };
            _retirarNoLocalButton = new MenuButton
            {
                HorizontalOptions = LayoutOptions.FillAndExpand,
                VerticalOptions   = LayoutOptions.Start,
                Icon  = "fa-home",
                Text  = "Retirar na Loja",
                Style = Estilo.Current[Estilo.BTN_ROOT]
            };
            _retirarNoLocalButton.Click += (sender, e) => {
                Pedido.Entrega = EntregaEnum.RetirarNaLoja;
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                if (usuario.Enderecos.Count == 1)
                {
                    var endereco = usuario.Enderecos[0];
                    Pedido.Cep         = endereco.Cep;
                    Pedido.Logradouro  = endereco.Logradouro;
                    Pedido.Complemento = endereco.Complemento;
                    Pedido.Numero      = endereco.Numero;
                    Pedido.Bairro      = endereco.Bairro;
                    Pedido.Cidade      = endereco.Cidade;
                    Pedido.Uf          = endereco.Uf;
                    Pedido.Latitude    = endereco.Latitude;
                    Pedido.Longitude   = endereco.Longitude;
                }
                definirEntrega(Pedido);
            };
        }
Пример #28
0
        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);
                }
            }
        }
Пример #29
0
        private void inicializarComponente()
        {
            _enderecoForm = new EnderecoMapaForm
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };
            _enderecoForm.Endereco = _Info;

            _salvarButton = new Button
            {
                Text  = "Salvar",
                Style = Estilo.Current[Estilo.BTN_PADRAO]
            };
            _salvarButton.Clicked += async(sender, e) =>
            {
                if (string.IsNullOrEmpty(_enderecoForm.Endereco.Cep))
                {
                    await DisplayAlert("Atenção", "Preencha o cep.", "Entendi");

                    return;
                }
                if (string.IsNullOrEmpty(_enderecoForm.Endereco.Uf))
                {
                    await DisplayAlert("Atenção", "Preencha a UF.", "Entendi");

                    return;
                }
                if (string.IsNullOrEmpty(_enderecoForm.Endereco.Cidade))
                {
                    await DisplayAlert("Atenção", "Preencha a cidade.", "Entendi");

                    return;
                }
                if (string.IsNullOrEmpty(_enderecoForm.Endereco.Logradouro))
                {
                    await DisplayAlert("Atenção", "Preencha a rua.", "Entendi");

                    return;
                }
                if (string.IsNullOrEmpty(_enderecoForm.Endereco.Numero))
                {
                    await DisplayAlert("Atenção", "Preencha o numero.", "Entendi");

                    return;
                }

                UserDialogs.Instance.ShowLoading("Enviando...");
                var usuarioFactor = UsuarioFactory.create();
                var usuario       = usuarioFactor.pegarAtual();
                if (_Info != null)
                {
                    var end    = UsuarioEnderecoInfo.clonar(_enderecoForm.Endereco);
                    var endOld = usuario.Enderecos.Where(x => x.Id == _Info.Id).FirstOrDefault();
                    end.Id = endOld.Id;
                    usuario.Enderecos.Remove(endOld);
                    usuario.Enderecos.Add(end);
                }
                else
                {
                    usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(_enderecoForm.Endereco));
                }
                await usuarioFactor.alterar(usuario);

                var usuarioCadastrado = await usuarioFactor.pegar(usuario.Id);

                usuarioFactor.gravarAtual(usuarioCadastrado);
                UserDialogs.Instance.HideLoading();

                Finished?.Invoke(this, _enderecoForm.Endereco);
                Navigation.PopAsync();
            };
        }
Пример #30
0
        private void inicializarComponente()
        {
            _nomeEmpresaEntry = new Entry
            {
                Placeholder       = "Nome da Empresa",
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };

            _enderecoForm = new EnderecoListaForm
            {
                VerticalOptions   = LayoutOptions.Start,
                HorizontalOptions = LayoutOptions.Fill
            };

            _CadastroButton = new Button()
            {
                Text = "CADASTRAR",
                HorizontalOptions = LayoutOptions.Fill,
                VerticalOptions   = LayoutOptions.Start,
                Style             = Estilo.Current[Estilo.BTN_SUCESSO]
            };
            _CadastroButton.Clicked += async(sender, e) =>
            {
                var regraUsuario = UsuarioFactory.create();
                _usuario.Preferencias.Add(new UsuarioPreferenciaInfo {
                    Chave = "NOME_EMPRESA",
                    Valor = _nomeEmpresaEntry.Text
                });
                _usuario.Enderecos = new List <UsuarioEnderecoInfo>();
                foreach (var endereco in _enderecoForm.Enderecos)
                {
                    _usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                }

                UserDialogs.Instance.ShowLoading("Enviando...");
                try
                {
                    if (_usuario.Id > 0)
                    {
                        await regraUsuario.alterar(_usuario);
                    }
                    else
                    {
                        _usuario.Id = await regraUsuario.inserir(_usuario);
                    }
                    var usuarioCadastrado = await regraUsuario.pegar(_usuario.Id);

                    regraUsuario.gravarAtual(usuarioCadastrado);
                    UserDialogs.Instance.HideLoading();
                    if (usuarioCadastrado != null)
                    {
                        regraUsuario.gravarAtual(usuarioCadastrado);
                        AoCompletar?.Invoke(this, _usuario);
                    }
                    else
                    {
                        string mensagem = string.Format("Nenhum usuário encontrado com o ID {0}.", _usuario.Id);
                        await DisplayAlert("Aviso", mensagem, "Fechar");
                    }
                }
                catch (Exception erro)
                {
                    UserDialogs.Instance.HideLoading();
                    await UserDialogs.Instance.AlertAsync(erro.Message, "Erro", "Entendi");
                }
            };
        }