public void AtualizarEstado(string identificador, EstadoMesa estado, ref BD.BancoContext contexto) { var mesa = contexto.AGBO_TMESA.FirstOrDefault(m => m.ID_MESA == identificador && m.BOL_ATIVO); if (mesa != null) { mesa.COD_ESTADO = estado.RecuperarValor(); mesa.DTH_REGISTRO = DateTime.Now; contexto.SaveChanges(); } }
public string AbrirComanda(Pedido pedido, ref BD.BancoContext contexto) { string _identificadorcomanda = Guid.NewGuid().ToString(); contexto.AGBO_TCOMANDA.Add(new BD.Models.AGBO_TCOMANDA { COD_COMANDA = pedido.codigoComanda, DTH_REGISTRO = DateTime.Now, ID_COMANDA = _identificadorcomanda, ID_MESA = pedido.identificadorMesa, ID_MESA_ATENDENTE = pedido.identificadorMesaAtendente }); contexto.SaveChanges(); return(_identificadorcomanda); }
public string GerarAtendimento(string identificadorFuncionario, string identificadorMesa, string codigoChaveAcesso, string identificadorFilial, ref BancoContext contexto) { BD.BancoContext bdContexto = contexto; string identificador = Guid.NewGuid().ToString(); bdContexto.AGBO_TMESA_ATENDENTE.Add(new BD.Models.AGBO_TMESA_ATENDENTE { BOL_CORRENTE = true, COD_CHAVE_ACESSO = codigoChaveAcesso, DTH_REGISTRO = DateTime.Now, ID_FUNCIONARIO = identificadorFuncionario, ID_MESA = identificadorMesa, ID_MESA_ATENDENTE = identificador, ID_FILIAL = identificadorFilial }); bdContexto.SaveChanges(); return(identificador); }
public Models.PedidoSimplificado GuardarPedido(Pedido pedido) { Models.PedidoSimplificado _pedidoSimplificado = new PedidoSimplificado { identificadorComanda = pedido.identificadorComanda }; using (SqlConnection con = new SqlConnection(_configuration.GetConnectionString("DbContext"))) { con.Open(); using (SqlTransaction transaction = con.BeginTransaction()) { var context = new BD.BancoContext(transaction.Connection); context.Database.UseTransaction(transaction); try { if (string.IsNullOrEmpty(_pedidoSimplificado.identificadorComanda)) { _pedidoSimplificado.codigoComanda = GerarCodigoComanda(); _pedidoSimplificado.identificadorComanda = _comandaRepository.AbrirComanda(pedido, ref context); } _comandaRepository.FazerPedido(pedido.itensPedido, _pedidoSimplificado.identificadorComanda, ref context); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } } return(_pedidoSimplificado); }
public string GerarCodigoComanda(string identificadorFilial, string codigoPrefixo, string identificadorMesaAtendente, ref BD.BancoContext contexto) { string codigo = string.Empty; try { try { codigo = (from BD.Models.AGBO_TMESA_ATENDENTE ma in contexto.AGBO_TMESA_ATENDENTE where ma.ID_FILIAL == identificadorFilial select Convert.ToInt32(ma.COD_COMANDA)).Max().ToString(); codigo = Convert.ToString(Convert.ToInt32(codigo) + 1).PadLeft(6); } catch { codigo = "000001"; } var mesaAtendente = (from BD.Models.AGBO_TMESA_ATENDENTE ma in contexto.AGBO_TMESA_ATENDENTE where ma.ID_MESA_ATENDENTE == identificadorMesaAtendente select ma).FirstOrDefault(); if (mesaAtendente != null) { mesaAtendente.COD_COMANDA = codigo; contexto.SaveChanges(); } if (!string.IsNullOrEmpty(codigoPrefixo)) { codigo = string.Format("{0}-{1}", codigoPrefixo, codigo); } } catch (Exception ex) { _tentativasGerarComanda += 1; if (_tentativasGerarComanda > 3) { throw; } else { codigo = GerarCodigoComanda(identificadorFilial, codigoPrefixo, identificadorMesaAtendente, ref contexto); } } return(codigo); }
public void FazerPedido(List <ItemPedido> itemsPedido, string identificadorComanda, ref BD.BancoContext contexto) { foreach (var item in itemsPedido) { contexto.AGBO_TITEM_COMANDA.Add(new BD.Models.AGBO_TITEM_COMANDA { ID_COMANDA = identificadorComanda, DTH_REGISTRO = DateTime.Now, ID_ITEM_COMANDA = Guid.NewGuid().ToString(), ID_PRODUTO_FILIAL = item.identificadorProdutoFilial, NUM_QUANTIDADE = item.quantidade }); } }
public ComandaRepository(BD.BancoContext contexto) { _contexto = contexto; }
public MesaAtendenteRepository(BD.BancoContext contexto) { _contexto = contexto; }
public DispositivoRepository(BD.BancoContext contexto) { _contexto = contexto; }
public FilialRepository(BD.BancoContext contexto) { _contexto = contexto; }
public GrupoProdutoRepository(BD.BancoContext contexto) { _contexto = contexto; }
public EmpresaRepository(BD.BancoContext contexto) { _contexto = contexto; }
public string IniciarAtendimento(string identificadorMesa, string identificadorFilial, bool trabalhaPorMesa, string identificadorFuncionario, string codPrefixoComanda, bool trabalhaComComanda) { string codigoComanda = string.Empty; using (SqlConnection con = new SqlConnection(_configuration.GetConnectionString("DbContext"))) { con.Open(); using (SqlTransaction transaction = con.BeginTransaction()) { var context = new BD.BancoContext(transaction.Connection); context.Database.UseTransaction(transaction); if (trabalhaPorMesa) { if (_mesaRepository.MesaDisponivel(identificadorMesa)) { try { _mesaRepository.AtualizarEstado(identificadorMesa, Enumeradores.EstadoMesa.Ocupado, ref context); string identificadorMesaAtendente = _mesaAtendenteRepository.GerarAtendimento(identificadorFuncionario, identificadorMesa, _mesaAtendenteRepository.GerarChaveAcesso(), identificadorFilial, ref context); if (trabalhaComComanda) { codigoComanda = _comandaRepository.GerarCodigoComanda(identificadorFilial, codPrefixoComanda, identificadorMesaAtendente, ref context); } transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } else { throw new Execao.ExecaoNegocio(Enumeradores.CodigosErros.ErroNegocio, "Mesa não se encontra disponível para abertura."); } } else { try { string identificadorMesaAtendente = _mesaAtendenteRepository.GerarAtendimento(identificadorFuncionario, identificadorMesa, _mesaAtendenteRepository.GerarChaveAcesso(), identificadorFilial, ref context); codigoComanda = _comandaRepository.GerarCodigoComanda(identificadorFilial, codPrefixoComanda, identificadorMesaAtendente, ref context); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw; } } } } return(codigoComanda); }
public ParametroRepository(BD.BancoContext contexto) { _contexto = contexto; }