Exemplo n.º 1
0
        public static Page gerarCarrinho(Action <PedidoInfo> AoSelecionarEndereco)
        {
            var carrinhoPage = new CarrinhoPage
            {
                Title = "Meu carrinho"
            };

            carrinhoPage.AoFinalizar += (s1, produtos) =>
            {
                var regraUsuario = UsuarioFactory.create();
                var usuario      = regraUsuario.pegarAtual();
                if (usuario != null && usuario.Id > 0)
                {
                    if (usuario.Enderecos.Count > 0)
                    {
                        var enderecoListaPage = EnderecoUtils.gerarEnderecoLista((endereco) =>
                        {
                            AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco));
                        });
                        enderecoListaPage.Title = "Local de entrega";
                        ((Page)s1).Navigation.PushAsync(enderecoListaPage);
                    }
                    else
                    {
                        var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                        {
                            usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                            var regraLogin = UsuarioFactory.create();
                            regraLogin.gravarAtual(usuario);

                            AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco));
                        });
                        ((Page)s1).Navigation.PushAsync(cepPage);
                    }
                }
                else
                {
                    if (usuario == null)
                    {
                        usuario = new UsuarioInfo();
                    }
                    var usuarioCadastroPage = UsuarioFormPageFactory.create();
                    usuarioCadastroPage.Title        = "Cadastre-se";
                    usuarioCadastroPage.Gravar       = true;
                    usuarioCadastroPage.Usuario      = usuario;
                    usuarioCadastroPage.AoCadastrar += (s2, usuario2) =>
                    {
                        var cepPage = EnderecoUtils.gerarBuscaPorCep((endereco) =>
                        {
                            usuario.Enderecos.Add(UsuarioEnderecoInfo.clonar(endereco));
                            var regraLogin = UsuarioFactory.create();
                            regraLogin.gravarAtual(usuario);

                            AoSelecionarEndereco(PedidoUtils.gerar(produtos, endereco));
                        });
                        ((Page)s2).Navigation.PushAsync(cepPage);
                    };
                    ((Page)s1).Navigation.PushAsync(usuarioCadastroPage);
                }
            };
            return(carrinhoPage);
        }
Exemplo n.º 2
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);
        }
Exemplo n.º 3
0
        public static Page gerarCarrinhoParaEntrega()
        {
            var carrinhoPage = new CarrinhoPage
            {
                Title = "Meu carrinho"
            };

            carrinhoPage.AoFinalizar += (s1, produtos) =>
            {
                LoginUtils.carregarUsuario((usuario) => {
                    var metodoEntregaPage = PedidoUtils.gerarEntregaMetodo(async(pedido) => {
                        if (await UserDialogs.Instance.ConfirmAsync("Deseja fechar o pedido?", "Aviso", "Sim", "Não", null))
                        {
                            var pagamentoMetodoPage = PagamentoUtils.gerarPagamento(async(pagamento) => {
                                UserDialogs.Instance.ShowLoading("Enviando...");
                                try
                                {
                                    pedido.IdPagamento = pagamento.IdPagamento;
                                    switch (pagamento.Tipo)
                                    {
                                    case TipoPagamentoEnum.CreditoOnline:
                                        pedido.FormaPagamento = FormaPagamentoEnum.CreditoOnline;
                                        break;

                                    case TipoPagamentoEnum.DebitoOnline:
                                        pedido.FormaPagamento = FormaPagamentoEnum.DebitoOnline;
                                        break;

                                    case TipoPagamentoEnum.Boleto:
                                        pedido.FormaPagamento = FormaPagamentoEnum.Boleto;
                                        break;

                                    case TipoPagamentoEnum.Dinheiro:
                                        pedido.FormaPagamento = FormaPagamentoEnum.Dinheiro;
                                        pedido.TrocoPara      = pagamento.TrocoPara;
                                        break;

                                    case TipoPagamentoEnum.CartaoOffline:
                                        pedido.FormaPagamento = FormaPagamentoEnum.CartaoOffline;
                                        break;
                                    }
                                    switch (pagamento.Situacao)
                                    {
                                    case SituacaoPagamentoEnum.Pago:
                                        pedido.Situacao = Pedido.Model.SituacaoEnum.Preparando;
                                        break;

                                    case SituacaoPagamentoEnum.AguardandoPagamento:
                                        pedido.Situacao = Pedido.Model.SituacaoEnum.AguardandoPagamento;
                                        break;

                                    default:
                                        pedido.Situacao = Pedido.Model.SituacaoEnum.Pendente;
                                        break;
                                    }
                                    var regraPedido = PedidoFactory.create();
                                    int idPedido    = pedido.Id;
                                    if (idPedido > 0)
                                    {
                                        await regraPedido.alterar(pedido);
                                    }
                                    else
                                    {
                                        idPedido = await regraPedido.inserir(pedido);
                                    }
                                    var pedidoFechado = await regraPedido.pegar(idPedido);
                                    var regraCarrinho = CarrinhoFactory.create();
                                    regraCarrinho.limpar();

                                    if (pedidoFechado.Entrega == EntregaEnum.RetiradaMapeada)
                                    {
                                        AcompanhamentoUtils.iniciarAcompanhamento(pedidoFechado);
                                    }

                                    if (pedidoFechado.Entrega == EntregaEnum.Entrega && pedido.Situacao != Pedido.Model.SituacaoEnum.AguardandoPagamento)
                                    {
                                        var regraHorario = PedidoHorarioFactory.create();
                                        var horarios     = await regraHorario.listar(pedidoFechado.IdLoja);
                                        if (horarios.Count > 1)
                                        {
                                            var horarioEntregaPage = new HorarioEntregaPage()
                                            {
                                                Title = "Horário de Entrega",
                                                //Pedido = pedidoFechado,
                                                Horarios = horarios
                                            };
                                            horarioEntregaPage.AoSelecionar += async(s2, horario) =>
                                            {
                                                UserDialogs.Instance.ShowLoading("Enviando...");
                                                try
                                                {
                                                    pedidoFechado.DiaEntrega     = horarioEntregaPage.DiaEntrega;
                                                    pedidoFechado.HorarioEntrega = horario;
                                                    pedidoFechado.Avisar         = false;

                                                    await regraPedido.alterar(pedidoFechado);
                                                    ((RootPage)App.Current.MainPage).PaginaAtual = new PedidoPage
                                                    {
                                                        Pedido = pedidoFechado
                                                    };
                                                    UserDialogs.Instance.HideLoading();
                                                }
                                                catch (Exception erro)
                                                {
                                                    UserDialogs.Instance.HideLoading();
                                                    UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                                                }
                                            };
                                            UserDialogs.Instance.HideLoading();
                                            ((RootPage)App.Current.MainPage).PushAsync(horarioEntregaPage);
                                        }
                                        else
                                        {
                                            UserDialogs.Instance.HideLoading();
                                            ((RootPage)App.Current.MainPage).PaginaAtual = new PedidoPage {
                                                Pedido = pedidoFechado
                                            };
                                        }
                                    }
                                    else
                                    {
                                        UserDialogs.Instance.HideLoading();
                                        ((RootPage)App.Current.MainPage).PaginaAtual = new PedidoPage {
                                            Pedido = pedidoFechado
                                        };
                                    }
                                }
                                catch (Exception erro)
                                {
                                    UserDialogs.Instance.HideLoading();
                                    UserDialogs.Instance.Alert(erro.Message, "Erro", "Fechar");
                                }
                            });
                            var regraLoja = LojaFactory.create();
                            var loja      = regraLoja.pegarAtual();
                            pagamentoMetodoPage.UsaCredito  = loja.AceitaCreditoOnline;
                            pagamentoMetodoPage.UsaDebito   = loja.AceitaDebitoOnline;
                            pagamentoMetodoPage.UsaDinheiro = loja.AceitaDinheiro;
                            pagamentoMetodoPage.UsaBoleto   = loja.AceitaBoleto;
                            pagamentoMetodoPage.Pagamento   = PagamentoUtils.gerar(pedido);

                            ((RootPage)App.Current.MainPage).PushAsync(pagamentoMetodoPage);
                        }
                    });
                    metodoEntregaPage.Pedido = PedidoUtils.gerar(produtos);
                    ((RootPage)App.Current.MainPage).PushAsync(metodoEntregaPage);
                });
            };
            return(carrinhoPage);
        }