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); }
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)); }
private PedidoRestaurante AjustarSequencia(PedidoRestaurante pedido) { for (int i = 0; i < pedido.Produtos.Count; i++) { pedido.Produtos[i].Sequencia = i + 1; } return(pedido); }
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); }
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); } }
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); }
public bool NovoPedidoBalcao() { var controle = NovoControle(); if (controle == null) { return(false); } Entity = new PedidoRestaurante() { Local = LocalPedidoRestaurante.Balcao, Controle = NovoControle() }; return(true); }
public bool NovoPedidoEntrega() { var controle = NovoControle(); if (controle == null) { return(false); } Entity = new PedidoRestaurante() { Local = LocalPedidoRestaurante.Entrega, Controle = controle }; return(true); }
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)); }
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); }
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); }
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); }
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)); }
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); } } }
public PedidoRestauranteModel() { Entity = new PedidoRestaurante(); }
private void RemoveMesaFila(PedidoRestaurante mesaFilaRem) { FilaSalao.Remove(mesaFilaRem); }
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); }
private void RemoveEntrega(PedidoRestaurante entrega) { FilaEntrega.Remove(entrega); }
private void RemoveMesa(PedidoRestaurante mesa) { MesasAbertas.Remove(mesa); }