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();
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #6
0
 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
         });
     }
 }
Beispiel #7
0
 public ComandaRepository(BD.BancoContext contexto)
 {
     _contexto = contexto;
 }
Beispiel #8
0
 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;
 }
Beispiel #13
0
        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);
        }
Beispiel #14
0
 public ParametroRepository(BD.BancoContext contexto)
 {
     _contexto = contexto;
 }