Exemplo n.º 1
0
        public bool NovoPedidoMesa()
        {
            var num      = new NumeroView();
            var controle = NovoControle();

            if (controle == null)
            {
                return(false);
            }
            num.ShowDialog();

            if (num.Value != 0)
            {
                Entity = new PedidoRestaurante()
                {
                    Local    = LocalPedidoRestaurante.Mesa,
                    Mesa     = num.Value,
                    Controle = controle
                };
            }
            else
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 2
0
        public async Task <IActionResult> Edit(int id, [Bind("IDPedidoRestaurante,Quantidade,EstadoEntrega,DataEntrega,IDFamilias,IDInstituicoes,IDRefeicoesRestaurante,IDVoluntarios")] PedidoRestaurante pedidoRestaurante)
        {
            if (id != pedidoRestaurante.IDPedidoRestaurante)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(pedidoRestaurante);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!PedidoRestauranteExists(pedidoRestaurante.IDPedidoRestaurante))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IDFamilias"]             = new SelectList(_context.Familias, "IDFamilias", "Email", pedidoRestaurante.IDFamilias);
            ViewData["IDInstituicoes"]         = new SelectList(_context.Instituicoes, "IDInstituicoes", "Email", pedidoRestaurante.IDInstituicoes);
            ViewData["IDRefeicoesRestaurante"] = new SelectList(_context.RefeicoesRestaurante, "IDRefeicoesRestaurante", "Nome", pedidoRestaurante.IDRefeicoesRestaurante);
            ViewData["IDVoluntarios"]          = new SelectList(_context.Voluntarios, "IDVoluntarios", "Email", pedidoRestaurante.IDVoluntarios);
            return(View(pedidoRestaurante));
        }
Exemplo n.º 3
0
 private PedidoRestaurante AjustarSequencia(PedidoRestaurante pedido)
 {
     for (int i = 0; i < pedido.Produtos.Count; i++)
     {
         pedido.Produtos[i].Sequencia = i + 1;
     }
     return(pedido);
 }
Exemplo n.º 4
0
        public static IList <ProdutoPedido> GetProdutosDeComposicao(PedidoRestaurante pedido)
        {
            var prods = new List <ProdutoPedido>();

            foreach (var composicao in pedido.Produtos)
            {
                foreach (var prod in composicao.Composicao)
                {
                    prod.Valor /= composicao.Composicao.Count;
                    prods.Add(prod);
                }
            }
            return(prods);
        }
Exemplo n.º 5
0
        public static void ParcialMesa(PedidoRestaurante pedido)
        {
            if (pedido.Local == LocalPedidoRestaurante.Mesa)
            {
                decimal valorPedido = 0;
                var     parcial     = NewLine + "                PARCIAL DA MESA" + NewLine + NewLine;
                parcial += "Mesa: " + pedido.Mesa + "              Caixa: " + Settings.Default.Caixa + "" + NewLine;
                parcial += "Sq.    Descricao" + NewLine;
                parcial += "Valor            Qtd.              Total" + NewLine;
                parcial += "===============================================" + NewLine;
                foreach (var prod in pedido.Produtos)
                {
                    if (prod.Produto.Tipo == TipoProduto.Mercadoria)
                    {
                        parcial += prod.Produto.Descricao + NewLine;

                        parcial += "R$" + AlinharADireita(
                            FormataNumero(prod.ValorUnitario, 2), 10);
                        parcial += "  x  " + AlinharADireita(
                            FormataNumero(prod.Quantidade, 3), 5);
                        parcial += "             R$" + AlinharADireita(
                            FormataNumero(prod.Valor, 2), 10) + NewLine;
                        valorPedido += prod.Valor;
                    }
                    else
                    {
                        foreach (var comp in prod.Composicao)
                        {
                            parcial += comp.Produto.Descricao + NewLine;
                            // Valores do produto.
                            parcial += "R$" + AlinharADireita(
                                FormataNumero(prod.ValorUnitario, 2), 10);
                            parcial += "  x  " + AlinharADireita(
                                FormataNumero(prod.Quantidade / prod.Composicao.Count, 3), 5);
                            parcial += "             R$" + AlinharADireita(
                                FormataNumero(prod.Valor, 2), 10) + NewLine;
                            valorPedido += prod.Valor;
                        }
                    }
                }
                parcial += "===============================================" + NewLine;
                parcial += NewLine + "Total dos produtos:                R$" + AlinharADireita(
                    FormataNumero(valorPedido, 2), 10) + "" + NewLine + NewLine;
                //parcial = FinalizaComanda(parcial);
                //FinalizaComanda(parcial);
                // Comanda a impressão na impressora fiscal.
                Imprimir(parcial, true);
            }
        }
Exemplo n.º 6
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.º 7
0
        public bool NovoPedidoBalcao()
        {
            var controle = NovoControle();

            if (controle == null)
            {
                return(false);
            }
            Entity = new PedidoRestaurante()
            {
                Local    = LocalPedidoRestaurante.Balcao,
                Controle = NovoControle()
            };
            return(true);
        }
Exemplo n.º 8
0
        public bool NovoPedidoEntrega()
        {
            var controle = NovoControle();

            if (controle == null)
            {
                return(false);
            }
            Entity = new PedidoRestaurante()
            {
                Local    = LocalPedidoRestaurante.Entrega,
                Controle = controle
            };
            return(true);
        }
Exemplo n.º 9
0
        public async Task <IActionResult> Create([Bind("IDPedidoRestaurante,Quantidade,EstadoEntrega,DataEntrega,IDFamilias,IDInstituicoes,IDRefeicoesRestaurante,IDVoluntarios")] PedidoRestaurante pedidoRestaurante)
        {
            if (ModelState.IsValid)
            {
                _context.Add(pedidoRestaurante);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["IDFamilias"]             = new SelectList(_context.Familias, "IDFamilias", "Email", pedidoRestaurante.IDFamilias);
            ViewData["IDInstituicoes"]         = new SelectList(_context.Instituicoes, "IDInstituicoes", "Email", pedidoRestaurante.IDInstituicoes);
            ViewData["IDRefeicoesRestaurante"] = new SelectList(_context.RefeicoesRestaurante, "IDRefeicoesRestaurante", "Nome", pedidoRestaurante.IDRefeicoesRestaurante);
            ViewData["IDVoluntarios"]          = new SelectList(_context.Voluntarios, "IDVoluntarios", "Email", pedidoRestaurante.IDVoluntarios);
            return(View(pedidoRestaurante));
        }
Exemplo n.º 10
0
        public static bool LancarPagamentoRestaurante(PedidoRestaurante pedido)
        {
            var s = NHibernateHttpModule.Session;

            var totalProdutos    = PedidoRestauranteRepository.GetTotalProdutos(pedido);
            var totalMercadorias = PedidoRestauranteRepository.GetTotalMercadorias(pedido);
            var totalServicos    = PedidoRestauranteRepository.GetTotalServicos(pedido);

            foreach (PagamentoPedido pag in pedido.Pagamento)
            {
                LancarProdutos(pedido.ValorPedido, totalProdutos, pag);
                LancarMercadorias(pedido.ValorPedido, totalMercadorias, pag);
                LancarServicos(pedido.ValorPedido, totalServicos, pag);
            }
            return(true);
        }
Exemplo n.º 11
0
        public static bool FecharPedidoRestaurante(PedidoRestaurante pedido)
        {
            try
            {
                if (pedido.Produtos.Count == 0)
                {
                    throw new Exception("Informe ao menos um produto para poder fechar o pedido.");
                }


                foreach (var pag in pedido.Pagamento)
                {
                    pag.Pedido = pedido;
                }
                try
                {
                    if (!FecharPedidoRestaurante(pedido, GetProdutosDeComposicao(pedido), pedido.Pagamento))
                    {
                        return(false);
                    }
                    pedido.Coo = EcfHelper.Ecf.UltimoCupomEmitido();
                }
                catch (Exception ex)
                {
                    CustomMessageBox.MensagemErro(ex.Message + "\n O cupom fiscal será cancelado");

                    EcfHelper.Ecf.CancelarCupom();
                    throw;
                }
                //CustomMessageBox.MensagemInformativa("A impressão de cupom fiscal está desabilitada.");
            }
            catch (Exception ex)
            {
                MessageBox.Show("Erro ao gravar pedido.\n" + ex.Message + "\n" +
                                "Mensagem do erro: " + ex.InnerException);
                return(false);
            }
            return(true);
        }
Exemplo n.º 12
0
        private static string CriarCabecalho(PedidoRestaurante pedido)
        {
            string com = "";

            com = "Controle: " + pedido.Controle.Controle + "        ";

            if (pedido.Local == LocalPedidoRestaurante.Balcao)
            {
                com += "Balcão" + NewLine;
            }
            if (pedido.Local == LocalPedidoRestaurante.Mesa)
            {
                com += "Mesa: " + pedido.Mesa + NewLine;
            }
            if (pedido.Local == LocalPedidoRestaurante.Entrega)
            {
                com += "Entrega" + NewLine;
            }
            com += "Qtd.    Descricao" + NewLine;
            com += "------------------------------------------------" + NewLine;
            return(com);
        }
Exemplo n.º 13
0
        public PedidoRestaurante CalcularPedido(PedidoRestaurante pedido)
        {
            foreach (var prod in pedido.Produtos)
            {
                VerificaComposicao(prod);
            }
            decimal total = 0;

            if (pedido.Produtos == null)
            {
                return(pedido);
            }
            int cont = 1;

            foreach (var composicaoProduto in pedido.Produtos)
            {
                composicaoProduto.Sequencia = cont;
                composicaoProduto.Valor     = composicaoProduto.Quantidade * composicaoProduto.ValorUnitario;
                total += composicaoProduto.Valor;
                cont  += 1;
            }
            pedido.ValorPedido = total;
            return(AjustarSequencia(pedido));
        }
Exemplo n.º 14
0
        public static void ImprimirPedido(PedidoRestaurante pedido)
        {
            ComandosImpressao = new Dictionary <string, string>();
            foreach (var composicaoProduto in pedido.Produtos)
            {
                _produtoAtual = "";
                if (composicaoProduto.Produto.SubGrupo.ImprimeEmComandaRestaurante)
                {
                    var imprime    = composicaoProduto.Produto.SubGrupo.ImprimeEmComandaRestaurante;
                    var impressora = composicaoProduto.Produto.SubGrupo.Impressora;


                    if (composicaoProduto.Produto.Ippt == Ippt.Terceiros)
                    {
                        ImprimeProduto(
                            composicaoProduto.Produto,
                            composicaoProduto.Quantidade);
                    }
                    else
                    {
                        foreach (var produto in composicaoProduto.Composicao)
                        {
                            ImprimeProduto(
                                produto.Produto,
                                composicaoProduto.Quantidade / composicaoProduto.Composicao.Count);
                        }
                    }
                    if (imprime && ComandosImpressao.ContainsKey(impressora))
                    {
                        ComandosImpressao.TryGetValue(impressora, out _comandaAtual);
                        _comandaAtual += _produtoAtual;
                        ComandosImpressao.Remove(impressora);
                        ComandosImpressao.Add(impressora, _comandaAtual);
                    }
                    else
                    {
                        _comandaAtual = CriarCabecalho(pedido) + _produtoAtual;
                        ComandosImpressao.Add(impressora, _comandaAtual);
                    }
                }
            }
            foreach (var item in ComandosImpressao.Keys)
            {
                try
                {
                    ComandosImpressao.TryGetValue(item, out _comandaAtual);

                    if (pedido.Observacoes != null && !pedido.Observacoes.Equals(""))
                    {
                        _comandaAtual += pedido.Observacoes + NewLine;
                    }
                    _comandaAtual = FinalizaComanda(_comandaAtual);
                    Imprimir(_comandaAtual, item);
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao imprimir comanda.\nMensagem do erro: " +
                                    ex.Message);
                }
            }
        }
Exemplo n.º 15
0
 public PedidoRestauranteModel()
 {
     Entity = new PedidoRestaurante();
 }
Exemplo n.º 16
0
 private void RemoveMesaFila(PedidoRestaurante mesaFilaRem)
 {
     FilaSalao.Remove(mesaFilaRem);
 }
Exemplo n.º 17
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.º 18
0
 private void RemoveEntrega(PedidoRestaurante entrega)
 {
     FilaEntrega.Remove(entrega);
 }
Exemplo n.º 19
0
 private void RemoveMesa(PedidoRestaurante mesa)
 {
     MesasAbertas.Remove(mesa);
 }