public async Task <JsonResult> GetPedido(int codPedido) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { var peds = await _rep.GetPedidosAbertos(codPedido); var ped = peds.FirstOrDefault(); ped.DescricaoFormaPagamento = Util.GetDescricaoFormaPagamentoPedido(ped.FormaPagamento); result.data = ped; result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public ServiceResultViewModel GetClassesFromTron() { ServiceResultViewModel result = new ServiceResultViewModel { Succeeded = true, Errors = new List <string>(), data = null }; try { TronSolutionData.Context.TronSolutionConnection tron = new TronSolutionConnection(); var query = from classe in tron.CLASSE_ITEMCARDAPIO where tron.ITEM_CARDAPIO.Any(i => (i.CD_CLASSEITEMCARDAPIO == classe.CD_CLASSEITEMCARDAPIO)) orderby classe.CD_CLASSEITEMCARDAPIO select new ClasseItemCardapioViewModel { CodClasse = classe.CD_CLASSEITEMCARDAPIO, DescricaoClasse = classe.DS_CLASSEITEMCARDAPIO }; result.data = query.ToList(); tron.Dispose(); tron = null; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(result); }
public async Task <JsonResult> GetPedido(DateTime?dataInicio, DateTime?dataFim) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { var peds = await _rep.GetPedidosConsulta(dataInicio, dataFim); foreach (var ped in peds) { ped.DescricaoFormaPagamento = Util.GetDescricaoFormaPagamentoPedido(ped.FormaPagamento); } result.data = peds; result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public ServiceResultViewModel GetItensFromTron() { ServiceResultViewModel result = new ServiceResultViewModel { Succeeded = true, Errors = new List <string>(), data = null }; try { TronSolutionData.Context.TronSolutionConnection tron = new TronSolutionConnection(); var query = from item in tron.ITEM_CARDAPIO join emp in tron.ITEM_CARDAPIOXEMPRESA on item.CD_ITEMCARDAPIO equals emp.CD_ITEMCARDAPIO where item.CD_CLASSEITEMCARDAPIO != null && emp.VALOR_VENDA != null && (item.PODE_TELE_ENTREGA != null && item.PODE_TELE_ENTREGA.Value == 1) orderby item.CD_ITEMCARDAPIO select new ItemCardapioViewModel { CodItemCardapio = item.CD_ITEMCARDAPIO, Ativo = (emp.ATIVO == null || emp.ATIVO.Value == 0 ? false : true), CodClasse = item.CD_CLASSEITEMCARDAPIO.Value, Nome = item.DS_ITEMCARDAPIO, Preco = (Double)emp.VALOR_VENDA.Value }; result.data = query.ToList(); tron.Dispose(); tron = null; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(result); }
public async Task <JsonResult> GetPedidosAbertos() { var result = new ServiceResultViewModel(true, new List <string>(), null); try { result.data = await _rep.GetPedidosAbertos(null); foreach (var ped in result.data) { ped.DescricaoFormaPagamento = Util.GetDescricaoFormaPagamentoPedido(ped.FormaPagamento); } result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public ServiceResultViewModel GetDadosTron() { ServiceResultViewModel retorno = new ServiceResultViewModel(true, null, null); ServiceResultViewModel retornoClasses; ServiceResultViewModel retornoItens = bo.GetItensFromTron(); if (retornoItens.Succeeded) { retornoClasses = bo.GetClassesFromTron(); if (retornoClasses.Succeeded) { retorno.Succeeded = true; retorno.data = new { Classes = retornoClasses.data, Itens = retornoItens.data }; } else { return(retornoClasses); } } else { return(retornoItens); } return(retorno); }
public async Task <JsonResult> AplicaDesconto(PedidoViewModel pedido) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { await _rep.AplicaDescontoPedido(pedido); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> GetPedidoAberto(string loginUsuario) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { result.data = await _rep.GetPedidoAberto(loginUsuario, ""); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> AbreFechaLoja(bool aberta) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { await ParametroRepository.AbreFechaCasa(aberta); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> AvancarPedido(PedidoViewModel pedido) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { await _rep.AlteraSituacaoPedido(pedido.CodPedido, pedido.Situacao, pedido.MotivoCancelamento, pedido.FeedbackCliente); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> AlteraTempoMedioEspera(int tempo) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { await ParametroRepository.AlteraTempoMedioEspera(tempo); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public JsonResult GetCardapio() { var result = new ServiceResultViewModel(true, new List <string>(), null); try { result.data = _rep.GetCardapio(); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> SolicitarSincronismoTronSolution(List <ItemCardapioViewModel> itensTron, List <ClasseItemCardapioViewModel> classesTron) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { //result.data = await _rep.GetPedidosAbertos(null); result.data = await _rep.ExecutaIntegracaoTronSolution(itensTron, classesTron); result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> GravarObservacao(ObservacaoProducaoViewModel obs, String modoCadastro) { var result = new ServiceResultViewModel(true, new List <string>(), null); try { var observacao = await _rep.GravarObservacao(obs, modoCadastro); result.Succeeded = true; result.data = observacao; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
public async Task <JsonNetResult> GetUsuarioByPhone(string telefone) { var result = new ServiceResultViewModel(true, new List <string>(), null); if (telefone.Length < 14) { result.Succeeded = false; result.Errors.Add("O telefone não está preenchido corretamente"); return(new JsonNetResult { Data = result }); } ApplicationDbContext contexto = new ApplicationDbContext(); var user = contexto.DadosUsuarios.Where(u => u.Telefone == telefone).FirstOrDefault(); UsuarioViewModel usuario = new UsuarioViewModel(); if (user != null) { if (!String.IsNullOrEmpty(user.DataNascimento)) { user.DataNascimento = user.DataNascimento.Substring(0, 2) + "/" + user.DataNascimento.Substring(2, 2) + "/" + user.DataNascimento.Substring(4); } UsuarioCopy.DBToViewModel(user, usuario); } else { usuario.ClienteNovo = true; usuario.Telefone = telefone; usuario.Estado = "MG"; usuario.Cidade = "Cataguases"; } result.data = usuario; return(new JsonNetResult { Data = result }); }
public async Task <JsonResult> GetObservacoes() { var result = new ServiceResultViewModel(true, new List <string>(), null); try { var obss = await _rep.GetObservacoes(); result.data = obss; result.Succeeded = true; } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }
//Este método já recebe o pedido com os itens filtrados somente para a porta desejada public ServiceResultViewModel ImprimeItensProducao(PedidoViewModel pedido) { //declaração da variável para retorno das funções int iRetorno = 0; List <PortaPedido> portasPedido = DividePorPorta(pedido); ServiceResultViewModel result = new ServiceResultViewModel { Succeeded = true, Errors = new List <string>(), data = null }; ImpressaoBematech4200 MP2032 = new ImpressaoBematech4200(); string comandoQuebraLinha = "\r\n"; //imprime os pedidos nas impressoras de produção try { //Função para configurar o modelo da impressora iRetorno = ImpressaoBematech4200.ConfiguraModeloImpressora((int)ImpressaoBematech4200.ModeloImpressora.MP4200TH); if (iRetorno != 1) { throw new Exception("Parâmetro de modelo de impressora inválido. "); } foreach (var portaPedido in portasPedido) { bool sucesso = false; int count = 0; //Abrindo a porta while (!sucesso && count < 3) { iRetorno = ImpressaoBematech4200.IniciaPorta(portaPedido.Porta); if (iRetorno != 1) { //se falhou, aguarda 3 segundos para tentar novamente System.Threading.Thread.Sleep(3000); } else { sucesso = true; } count++; } if (!sucesso) { throw new Exception("Falha ao abrir a porta de impressão de produção " + portaPedido.Porta + "."); } iRetorno = ImpressaoBematech4200.SelecionaQualidadeImpressao((int)ImpressaoBematech4200.QualidadeImpressao.Baixa); switch (iRetorno) { case 0: throw new Exception("Falha na comunicação com a impressora na porta " + portaPedido.Porta + " ao definir a qualidade da impressão."); break; case -4: throw new Exception("Parâmetro inválido com a impressora na porta " + portaPedido.Porta + " ao definir a qualidade da impressão."); break; case -5: throw new Exception("Modelo de impressora inválido na porta " + portaPedido.Porta + " ao definir a qualidade da impressão."); break; } //CABECALHO string texto = "================================================"; texto += comandoQuebraLinha; texto += " PEDIDO DELIVERY NR " + pedido.CodPedido; texto += comandoQuebraLinha; texto += "================================================"; texto += comandoQuebraLinha; texto += DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); texto += comandoQuebraLinha; texto += "------------------------------------------------"; texto += comandoQuebraLinha; texto += "Produto Qtd"; texto += comandoQuebraLinha; texto += "------------------------------------------------"; texto += comandoQuebraLinha; //ImpressaoBematech4200.FormataTX("================================================", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.FormataTX(" PEDIDO DELIVERY NR " + pedido.CodPedido, (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.FormataTX("================================================", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); ////iRetorno = ImpressaoBematech4200.FormataTX("Restaurante " + DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado); //ImpressaoBematech4200.FormataTX(DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"), (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); ////iRetorno = ImpressaoBematech4200.FormataTX("Comanda: XXXX", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Ativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado); ////iRetorno = ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length); //ImpressaoBematech4200.FormataTX("------------------------------------------------", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.FormataTX("Produto Qtd", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.FormataTX("------------------------------------------------", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); int i = 0; //ITENS foreach (ItemPedidoViewModel item in portaPedido.Itens) { texto += item.DescricaoItem + RetornaEspacosCompletar(item.DescricaoItem, PedidoBusiness.QtdMaximaCaracteresLinha, 2) + item.Quantidade.ToString("00"); texto += comandoQuebraLinha; //ImpressaoBematech4200.FormataTX(item.DescricaoItem + RetornaEspacosCompletar(item.DescricaoItem) + item.Quantidade.ToString("00"), (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); if (item.Obs != null && item.Obs.Count > 0) { var obsString = RetornaStringDeObs(item.Obs); //ImpressaoBematech4200.FormataTX("OBSERVACAO: ", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.FormataTX(obsString, (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Ativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); texto += "OBSERVACAO: "; texto += obsString; texto += comandoQuebraLinha; } if (item.extras != null && item.extras.Count > 0) { var extrasString = RetornaStringDeExtras(item.extras, false); //ImpressaoBematech4200.FormataTX("EXTRAS: ", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.FormataTX(extrasString, (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Ativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); texto += "EXTRAS: "; texto += extrasString; texto += comandoQuebraLinha; } if (i < pedido.Itens.Count) { //ImpressaoBematech4200.FormataTX("------------------------------------------------", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaPedido.Porta); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaPedido.Porta); texto += "------------------------------------------------"; texto += comandoQuebraLinha; } i = i + 1; } ImpressaoBematech4200.BematechTX(texto).ValidaRetornoImpressora(portaPedido.Porta); //Aciona a guilhotina para cortar o papel iRetorno = ImpressaoBematech4200.AcionaGuilhotina(1); switch (iRetorno) { case 0: throw new Exception("Falha na comunicação com a impressora na porta " + portaPedido.Porta + " ao acionar a guilhotina."); break; case -2: throw new Exception("Parâmetro inválido com a impressora na porta " + portaPedido.Porta + " ao acionar a guilhotina."); break; } //Fechar a porta utilizada iRetorno = ImpressaoBematech4200.FechaPorta(); if (iRetorno != 1) { throw new Exception("Falha ao fechar a porta de impressão de produção " + portaPedido.Porta + "."); } } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); ImpressaoBematech4200.FechaPorta(); } return(result); }
//Este método recebe o pedido completo para impressão da comanda public ServiceResultViewModel ImprimeComandaPedido(PedidoViewModel pedido) { //declaração da variável para retorno das funções int iRetorno = 0; pedido.DescricaoFormaPagamento = BrasaoUtil.getDescricaoFormaPagamentoPedido(pedido.FormaPagamento); ServiceResultViewModel result = new ServiceResultViewModel { Succeeded = true, Errors = new List <string>(), data = null }; ImpressaoBematech4200 MP2032 = new ImpressaoBematech4200(); string comandoQuebraLinha = "\r\n"; //imprime os pedidos nas impressoras de produção try { //Função para configurar o modelo da impressora iRetorno = ImpressaoBematech4200.ConfiguraModeloImpressora((int)ImpressaoBematech4200.ModeloImpressora.MP4200TH); if (iRetorno != 1) { throw new Exception("Parâmetro de modelo de impressora inválido. "); } if (pedido.PortaImpressaoComandaEntrega != "") { var portaComanda = pedido.PortaImpressaoComandaEntrega; bool sucesso = false; int count = 0; //Abrindo a porta while (!sucesso && count < 3) { iRetorno = ImpressaoBematech4200.IniciaPorta(portaComanda); if (iRetorno != 1) { //se falhou, aguarda 3 segundos para tentar novamente System.Threading.Thread.Sleep(3000); } else { sucesso = true; } count++; } if (!sucesso) { throw new Exception("Falha ao abrir a porta de impressão de produção " + portaComanda + "."); } iRetorno = ImpressaoBematech4200.SelecionaQualidadeImpressao((int)ImpressaoBematech4200.QualidadeImpressao.Baixa); switch (iRetorno) { case 0: throw new Exception("Falha na comunicação com a impressora na porta " + portaComanda + " ao definir a qualidade da impressão."); break; case -4: throw new Exception("Parâmetro inválido com a impressora na porta " + portaComanda + " ao definir a qualidade da impressão."); break; case -5: throw new Exception("Modelo de impressora inválido na porta " + portaComanda + " ao definir a qualidade da impressão."); break; } ImpressaoBematech4200.FormataTX(" RELATORIO GERENCIAL", (int)ImpressaoBematech4200.TipoLetraImpressao.Elite, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Ativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); //CABECALHO string texto = "================================================"; texto += comandoQuebraLinha; texto += " PEDIDO DELIVERY NR " + pedido.CodPedido; texto += comandoQuebraLinha; texto += "================================================"; texto += comandoQuebraLinha; texto += DateTime.Now.ToString("dd/MM/yyyy HH:mm:ss"); texto += comandoQuebraLinha; texto += "Cliente: " + pedido.DadosCliente.Nome; texto += comandoQuebraLinha; texto += " NÃO É DOCUMENTO FISCAL "; texto += comandoQuebraLinha; texto += "Endereco: " + pedido.DadosCliente.Logradouro + ", " + pedido.DadosCliente.Numero; texto += comandoQuebraLinha; if (!String.IsNullOrEmpty(pedido.DadosCliente.Complemento)) { texto += "Complemento: " + pedido.DadosCliente.Complemento; texto += comandoQuebraLinha; } texto += "Bairro: " + pedido.DadosCliente.Bairro; texto += comandoQuebraLinha; texto += "Telefone: " + pedido.DadosCliente.Telefone; texto += comandoQuebraLinha; if (!String.IsNullOrEmpty(pedido.DadosCliente.Referencia)) { texto += pedido.DadosCliente.Referencia; texto += comandoQuebraLinha; } texto += "------------------------------------------------"; texto += comandoQuebraLinha; texto += "QTD DESCRICAO P.UNIT TOTAL "; texto += comandoQuebraLinha; texto += "------------------------------------------------"; texto += comandoQuebraLinha; int i = 0; //ITENS foreach (ItemPedidoViewModel item in pedido.Itens) { texto += FormataComEspacos(item.Quantidade.ToString("00"), 5) + FormataComEspacos(item.DescricaoItem, 24) + FormataComEspacos(item.PrecoUnitario.ToString("C"), 10) + FormataComEspacos(item.ValorTotalItem.ToString("C"), 9); texto += comandoQuebraLinha; //ImpressaoBematech4200.FormataTX(item.DescricaoItem + RetornaEspacosCompletar(item.DescricaoItem) + item.Quantidade.ToString("00"), (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); if (item.Obs != null && item.Obs.Count > 0) { var obsString = RetornaStringDeObs(item.Obs); //ImpressaoBematech4200.FormataTX("OBSERVACAO: ", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); //ImpressaoBematech4200.FormataTX(obsString, (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Ativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); texto += " OBSERVACAO: "; texto += obsString; texto += comandoQuebraLinha; } if (item.extras != null && item.extras.Count > 0) { var extrasString = RetornaStringDeExtras(item.extras, true); //ImpressaoBematech4200.FormataTX("EXTRAS: ", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); //ImpressaoBematech4200.FormataTX(extrasString, (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Ativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); texto += " EXTRAS: "; texto += extrasString; texto += comandoQuebraLinha; } if (i < pedido.Itens.Count) { //ImpressaoBematech4200.FormataTX("------------------------------------------------", (int)ImpressaoBematech4200.TipoLetraImpressao.Normal, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Desativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); //ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); texto += "------------------------------------------------"; texto += comandoQuebraLinha; } i = i + 1; } if (pedido.TaxaEntrega > 0) { var qtdTx = 1; texto += FormataComEspacos(qtdTx.ToString("00"), 5) + FormataComEspacos("Taxa entrega", 24) + FormataComEspacos(pedido.TaxaEntrega.ToString("C"), 10) + FormataComEspacos(pedido.TaxaEntrega.ToString("C"), 9); texto += comandoQuebraLinha; texto += "------------------------------------------------"; texto += comandoQuebraLinha; } ImpressaoBematech4200.BematechTX(texto).ValidaRetornoImpressora(portaComanda); texto = ""; ImpressaoBematech4200.FormataTX(" TOTAL: " + pedido.ValorTotal.ToString("C"), (int)ImpressaoBematech4200.TipoLetraImpressao.Elite, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Ativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); if (pedido.ValorDesconto != null && pedido.ValorDesconto > 0) { texto += "Desconto: " + pedido.ValorDesconto.Value.ToString("C"); texto += comandoQuebraLinha; var valorComDesconto = pedido.ValorTotal - pedido.ValorDesconto.Value; texto += "Total c/ desconto: " + valorComDesconto.ToString("C"); texto += comandoQuebraLinha; } texto += "================================================"; texto += comandoQuebraLinha; texto += " NÃO É DOCUMENTO FISCAL "; texto += comandoQuebraLinha; texto += "================================================"; texto += comandoQuebraLinha; texto += " FORMA DE PAGAMENTO "; texto += comandoQuebraLinha; texto += pedido.DescricaoFormaPagamento; if (!String.IsNullOrEmpty(pedido.BandeiraCartao)) { texto += " - " + pedido.BandeiraCartao; texto += comandoQuebraLinha; } if (pedido.FormaPagamento == "D" && pedido.Troco != null) { texto += " - Troco: " + pedido.Troco.Value.ToString("C"); texto += comandoQuebraLinha; } texto += "================================================"; texto += comandoQuebraLinha; ImpressaoBematech4200.BematechTX(texto).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.FormataTX(" AGUADE A EMISSAO", (int)ImpressaoBematech4200.TipoLetraImpressao.Elite, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Ativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.FormataTX(" DO CUPOM FISCAL", (int)ImpressaoBematech4200.TipoLetraImpressao.Elite, (int)ImpressaoBematech4200.ItalicoImpressao.Desativado, (int)ImpressaoBematech4200.SublinhadoImpressao.Desativado, (int)ImpressaoBematech4200.ExpandidoImpressao.Ativado, (int)ImpressaoBematech4200.NegritoImpressao.Desativado).ValidaRetornoImpressora(portaComanda); ImpressaoBematech4200.ComandoTX(comandoQuebraLinha, comandoQuebraLinha.Length).ValidaRetornoImpressora(portaComanda); //Aciona a guilhotina para cortar o papel iRetorno = ImpressaoBematech4200.AcionaGuilhotina(1); switch (iRetorno) { case 0: throw new Exception("Falha na comunicação com a impressora na porta " + portaComanda + " ao acionar a guilhotina."); break; case -2: throw new Exception("Parâmetro inválido com a impressora na porta " + portaComanda + " ao acionar a guilhotina."); break; } //Fechar a porta utilizada iRetorno = ImpressaoBematech4200.FechaPorta(); if (iRetorno != 1) { throw new Exception("Falha ao fechar a porta de impressão de produção " + portaComanda + "."); } } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); ImpressaoBematech4200.FechaPorta(); } return(result); }
public async Task <JsonResult> GravarPedido(PedidoViewModel pedidoViewModel) { var result = new ServiceResultViewModel(true, new List <string>(), null); if (pedidoViewModel.DadosCliente.Telefone.Length < 14) { result.Succeeded = false; result.Errors.Add("O telefone não está preenchido corretamente"); return(new JsonNetResult { Data = result }); } if (pedidoViewModel.PedidoExterno && pedidoViewModel.CodPedido <= 0) { try { //var ped = _rep.GetPedidoAberto("", pedidoViewModel.DadosCliente.Telefone).Result; var ped = BrasaoHamburgueria.Helper.AsyncHelpers.RunSync <PedidoViewModel>(() => _rep.GetPedidoAberto("", pedidoViewModel.DadosCliente.Telefone)); if (ped != null) { result.Succeeded = false; result.Errors.Add("O cliente " + pedidoViewModel.DadosCliente.Telefone + " possui o pedido " + ped.CodPedido + " em aberto. Finalize-o antes de fazer outro pedido para este cliente."); return(new JsonNetResult { Data = result }); } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } } try { //primeiro verifica se a casa está aberta para delivery if (!pedidoViewModel.PedidoExterno && !ParametroRepository.CasaAberta() && pedidoViewModel.CodPedido <= 0) { var horarioFuncionamento = ParametroRepository.GetHorarioAbertura(); result.Succeeded = false; result.Errors.Add("No momento estamos fechados. Abriremos " + horarioFuncionamento.DiaSemana + " das " + horarioFuncionamento.Abertura.ToString("HH:mm") + " às " + horarioFuncionamento.Fechamento.ToString("HH:mm") + "."); } else { result.data = await _rep.GravaPedido(pedidoViewModel, User.Identity.GetUserName()); if (pedidoViewModel.DadosCliente.ClienteNovo) { try { ApplicationDbContext contexto = new ApplicationDbContext(); Usuario usu = new Usuario(); UsuarioViewModel usuVm = new UsuarioViewModel(); PropertyCopy.Copy(pedidoViewModel.DadosCliente, usuVm); UsuarioCopy.ViewModelToDB(usuVm, usu); usu.UsuarioExterno = true; contexto.DadosUsuarios.Add(usu); contexto.SaveChanges(); } catch (Exception ex) { //nao faz nada porque o pedido foi gravado e sao transacoes diferentes } result.Succeeded = true; } else if (pedidoViewModel.DadosCliente.Salvar) { try { ApplicationDbContext contexto = new ApplicationDbContext(); string userName = User.Identity.GetUserName(); var usu = contexto.DadosUsuarios.Where(d => d.Email == userName).FirstOrDefault(); if (usu != null) { UsuarioViewModel usuVm = new UsuarioViewModel(); PropertyCopy.Copy(pedidoViewModel.DadosCliente, usuVm); UsuarioCopy.ViewModelToDB(usuVm, usu); contexto.SaveChanges(); } } catch (Exception ex) { //nao faz nada porque o pedido foi gravado e sao transacoes diferentes } } } } catch (Exception ex) { result.Succeeded = false; result.Errors.Add(ex.Message); } return(new JsonNetResult { Data = result }); }