예제 #1
0
        async void NovoPedido(object sender, EventArgs e)
        {
            try
            {
                if (!CrossConnectivity.Current.IsConnected)
                {
                    await DisplayAlert("Alerta!", "Sem conexão com à Internet.", "OK");

                    return;
                }
                if (GlobalVariables.GlobalClientePedido.IdCliente == 0)
                {
                    await DisplayAlert("Alerta!", "Id do cliente inválido.", "OK");

                    return;
                }
                if (GlobalVariables.GlobalFuncionarioLogado.IdFuncionario == 0)
                {
                    await DisplayAlert("Alerta!", "Id do vendedor inválido.", "OK");

                    return;
                }

                PedidoService srvPedido  = new PedidoService();
                PedidoModel   novoPedido = new PedidoModel();

                // Verifica se existe pedido em aberto
                novoPedido = await srvPedido.BuscaPedidoEmAbertoPorIdCliente(GlobalVariables.GlobalClientePedido.IdCliente);

                if (novoPedido != null && novoPedido.IdPedido > 0)
                {
                    // Carrega pedido
                    GlobalVariables.GlobalPedido          = novoPedido;
                    GlobalVariables.GlobalPedido.IdPedido = novoPedido.IdPedido;
                    GlobalVariables.formaPagamento        = novoPedido.IdPagamento;
                    List <PedidoItemModel> items = await Item.BuscaItemPorIdPedido(novoPedido.IdPedido);

                    if (items.Count > 0)
                    {
                        ped_items.Clear();
                        foreach (PedidoItemModel itm in items)
                        {
                            ped_items.Add(itm);
                        }
                        CarregaItensPedido(items);
                    }

                    CalculaQtdItemPedido();
                    CalculaVlrPedido();
                    CalculaDescPedido();
                    CalculaTotalPedido();

                    PedidoItemService srvPedidoItem = new PedidoItemService();
                    var descPedido = await srvPedidoItem.RetornaPercentualDescPedido(GlobalVariables.GlobalPedido.IdPedido);

                    ECpercDesc.Text = descPedido.ToString();

                    CarregaPagamento();

                    CurrentPage = Children[1];
                }
                else
                {
                    // Insere novo pedido se não existir
                    novoPedido.IdFilial          = 1;
                    novoPedido.IdLote            = 0;
                    novoPedido.IdCliente         = GlobalVariables.GlobalClientePedido.IdCliente;
                    novoPedido.IdFuncionario     = GlobalVariables.GlobalFuncionarioLogado.IdFuncionario;
                    novoPedido.IdPagamento       = GlobalVariables.formaPagamento;
                    novoPedido.IdStatus          = 1;
                    novoPedido.Sessao            = "";
                    novoPedido.Parcelas          = 0;
                    novoPedido.Data              = DateTime.Now.ToString("yyyyMMdd hh:MM:ss");
                    novoPedido.DataEmissao       = novoPedido.Data;
                    novoPedido.Itens             = 0;
                    novoPedido.ValorBruto        = 0;
                    novoPedido.ValorDesconto     = 0;
                    novoPedido.ValorDescontoDist = 0;
                    novoPedido.ValorLiquido      = 0;
                    novoPedido.Obs = "Pedido inserido via App";
                    novoPedido.IdTransportadora = 1;
                    novoPedido.DataEntrega      = null;
                    novoPedido.DescontoGeral    = 0;

                    var inseriu = await srvPedido.NovoPedido(novoPedido);

                    if (inseriu > 0)
                    {
                        novoPedido = new PedidoModel();
                        novoPedido = await srvPedido.BuscaPedidoPorIdPedido(inseriu);

                        // Carrega pedido
                        GlobalVariables.GlobalPedido          = novoPedido;
                        GlobalVariables.GlobalPedido.IdPedido = novoPedido.IdPedido;
                        CalculaQtdItemPedido();
                        CalculaVlrPedido();
                        CalculaDescPedido();
                        CalculaTotalPedido();
                        CurrentPage = Children[1];
                    }
                    else
                    {
                        GlobalVariables.GlobalPedido          = null;
                        GlobalVariables.GlobalPedido.IdPedido = 0;
                    }
                }
            }
            catch (Exception)
            {
            }
        }