Exemplo n.º 1
0
        private void LimpaFilaMesa(int mesa)
        {
            var listRem = FilaSalao.Where(x => x.Mesa == mesa);

            foreach (var m in listRem)
            {
                FilaSalao.Remove(m);
            }
        }
Exemplo n.º 2
0
        private void ConfirmarPedido()
        {
            try
            {
                if (CurrentItem == null)
                {
                    return;
                }
                if (CurrentItem.EntityRestaurante == null)
                {
                    return;
                }
                if (!CurrentItem.EntityRestaurante.Confirmado)
                {
                    switch (CurrentItem.EntityRestaurante.Local)
                    {
                    case LocalPedidoRestaurante.Mesa:
                        var mesaAberta = GetMesa(CurrentItem.EntityRestaurante.Mesa);
                        if (mesaAberta != null)
                        {
                            foreach (var prod in CurrentItem.Produtos)
                            {
                                mesaAberta.AddProduto(prod);
                            }
                        }
                        else
                        {
                            Collection.Add(CurrentItem);
                        }
                        break;

                    default:
                        switch (CurrentItem.EntityRestaurante.Local)
                        {
                        case LocalPedidoRestaurante.Balcao:
                            FilaSalao.Add(CurrentItem);
                            break;

                        case LocalPedidoRestaurante.Entrega:
                            FilaEntrega.Add(CurrentItem);
                            break;
                        }
                        break;
                    }
                    CurrentItem.ConfirmarPedido();
                    CurrentItem = null;
                }
            }
            catch (Exception ex)
            {
                CustomMessageBox.MensagemErro(ex.Message);
                Erp.Business.Utils.GerarLog(ex);
            }
        }
Exemplo n.º 3
0
        public StatusComando ConfirmarPedido(PedidoRestaurante pedido)
        {
            try
            {
                switch (pedido.Local)
                {
                case LocalPedidoRestaurante.Mesa:
                    var mesaAberta = GetMesa(pedido.Mesa);
                    if (mesaAberta != null)
                    {
                        // Valida todas as composições que estão entrando para verificar a integridade.
                        foreach (var produto in pedido.Produtos)
                        {
                            ComposicaoProdutoRepository.Validate(produto);
                        }
                        foreach (var prod in pedido.Produtos)
                        {
                            mesaAberta.Produtos.Add(prod);
                        }
                    }
                    else
                    {
                        MesasAbertas.Add(pedido);
                    }
                    break;

                default:
                    switch (pedido.Local)
                    {
                    case LocalPedidoRestaurante.Balcao:
                        FilaSalao.Add(pedido);
                        break;

                    case LocalPedidoRestaurante.Entrega:
                        FilaEntrega.Add(pedido);
                        break;
                    }
                    break;
                }
                pedido.Confirmado = true;
                return(StatusComando.ConcluidoSucesso);
            }
            catch (Exception ex)
            {
                LastException = ex.Message;
            }

            return(StatusComando.ConcluidoSucesso);
        }
Exemplo n.º 4
0
        public StatusComando CancelarItemComposicaoMesa(int mesa, Guid composicao, Guid produto)
        {
            try
            {
                var mesaAberta = GetMesa(mesa);
                if (mesaAberta == null)
                {
                    throw new Exception("A mesa não está aberta");
                }
                foreach (var m in FilaSalao.Where(x => x.Mesa == mesa))
                {
                    var comp = m.Produtos.SingleOrDefault(x => x.IdGuid == composicao);

                    if (comp == null)
                    {
                        continue;
                    }

                    if (m.StatusProducao == StatusProducaoPedido.Produzido)
                    {
                        throw new Exception("Pedido já produzido.");
                    }
                    var prod = comp.Composicao.SingleOrDefault(x => x.IdGuid == produto);
                    if (prod != null)
                    {
                        comp.Composicao.Remove(prod);
                    }
                }
                var compMesa = mesaAberta.Produtos.SingleOrDefault(x => x.IdGuid == composicao);
                if (compMesa != null)
                {
                    var prodMesa = compMesa.Composicao.SingleOrDefault(x => x.IdGuid == produto);
                    if (prodMesa != null)
                    {
                        compMesa.Composicao.Remove(prodMesa);
                    }
                    AjustarPrecoComposicao(compMesa);
                }

                return(StatusComando.ConcluidoSucesso);
            }
            catch (Exception ex)
            {
                LastException = ex.Message;
            }
            return(StatusComando.ErroExecucao);
        }
Exemplo n.º 5
0
 private void RemoveMesa(PedidoRestauranteModel mesa)
 {
     try
     {
         if (mesa.EntityRestaurante.Confirmado)
         {
             Collection.Remove(mesa);
         }
         if (CurrentItem != null && CurrentItem.EntityRestaurante.Mesa == mesa.EntityRestaurante.Mesa)
         {
             CurrentItem = null;
         }
         FilaSalao.Remove(mesa);
     }
     catch (Exception ex)
     {
         CustomMessageBox.MensagemErro(ex.Message);
         Erp.Business.Utils.GerarLog(ex);
     }
 }
Exemplo n.º 6
0
 private void FecharPedido()
 {
     try
     {
         if (CurrentItem == null)
         {
             return;
         }
         if (CurrentItem.EntityRestaurante.Local == LocalPedidoRestaurante.Mesa)
         {
             var ped = GetMesa(CurrentItem.EntityRestaurante.Mesa);
             FecharMesa();
             if (ped == null)
             {
                 return;
             }
             if (!ped.IsPagamentoCancelado)
             {
                 Collection.Remove(ped);
                 FilaSalao.Remove(ped);
                 CurrentItem = null;
             }
         }
         else
         {
             var ped = GetEntrega(CurrentItem.EntityRestaurante.Controle.Controle);
             FecharEntrega();
             if (!ped.IsPagamentoCancelado)
             {
                 FilaEntrega.Remove(ped);
                 CurrentItem = null;
             }
         }
         OnAcaoConcluida();
     }
     catch (Exception ex)
     {
         CustomMessageBox.MensagemErro(ex.Message);
         Erp.Business.Utils.GerarLog(ex);
     }
 }
Exemplo n.º 7
0
 public StatusComando CancelarMesa(int mesa)
 {
     try
     {
         var pedidosProduzidos = FilaSalao.Where(x => x.Mesa == mesa && x.StatusProducao == StatusProducaoPedido.Produzido);
         if (pedidosProduzidos.Count() != 0)
         {
             LastException = "Há pedidos produzidos para esta mesa. Só é possível o cancelamento com a senha do gerênte";
             return(StatusComando.SolicitacaoAdministrador);
         }
         var m = GetMesa(mesa);
         if (m != null)
         {
             RemoveMesa(m);
             LimpaFilaMesa(mesa);
         }
         return(StatusComando.ConcluidoSucesso);
     }
     catch (Exception ex)
     {
         LastException = ex.Message;
     }
     return(StatusComando.ErroExecucao);
 }
Exemplo n.º 8
0
 private void RemoveMesaFila(PedidoRestaurante mesaFilaRem)
 {
     FilaSalao.Remove(mesaFilaRem);
 }
Exemplo n.º 9
0
        public StatusComando CancelarItemMesa(int mesa, ComposicaoProduto composicao)
        {
            try
            {
                ComposicaoProduto comp = null;

                // Cancela o item na fila.
                PedidoRestaurante mesaFilaRem = null;
                foreach (var mesaFila in FilaSalao.Where(x => x.Mesa == mesa))
                {
                    comp = null;
                    foreach (var prod in mesaFila.Produtos.Where(prod => prod.IdGuid == composicao.IdGuid))
                    {
                        // Verifica se o pedido já foi produzido.
                        if (mesaFila.StatusProducao == StatusProducaoPedido.Produzido)
                        {
                            LastException = "O ítem já foi produzido. Somente o gerênte pode cancelar o item.";
                            return(StatusComando.SolicitacaoAdministrador);
                        }
                        comp = prod;
                    }
                    if (comp != null)
                    {
                        mesaFila.Produtos.Remove(comp);
                        // Se o pedido na fila não tiver mais produtos remove da fila.
                        if (mesaFila.Produtos.Count == 0)
                        {
                            mesaFilaRem = mesaFila;
                        }
                    }
                }
                // Remove o pedido por completo da fila caso tenha sido marcado para exclusão.
                if (mesaFilaRem != null)
                {
                    RemoveMesaFila(mesaFilaRem);
                }

                var m = GetMesa(mesa);
                if (m == null)
                {
                    throw new Exception(string.Format("A mesa {0} não foi encontrada.", mesa));
                }
                // Cancela o item na mesa.
                foreach (var prod in m.Produtos.Where(prod => prod.IdGuid == composicao.IdGuid))
                {
                    comp = prod;
                }
                if (comp != null)
                {
                    m.Produtos.Remove(comp);
                    AjustarPrecoComposicao(comp);
                }
                // Se não houver mais produtos na mesa cancela-o.
                if (m.Produtos.Count == 0)
                {
                    CancelarMesa(mesa);
                }
                return(StatusComando.ConcluidoSucesso);
            }
            catch (Exception ex)
            {
                LastException = ex.Message;
            }
            return(StatusComando.ErroExecucao);
        }
Exemplo n.º 10
0
 public IList <PedidoRestaurante> GetPedidosGarcon(int idGarcon)
 {
     return(FilaSalao.Where(x => x.Garcon.Id == idGarcon).ToList());
 }