예제 #1
0
        public List <DataAccess.Pedido> ObtenerListaPedidosCallCenter()
        {
            List <DataAccess.Pedido> pedidos = new List <DataAccess.Pedido>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    DataAccess.Estatus estatusCancelado  = context.Estatus.Where(b => b.NombreEstatus == "Cancelado").FirstOrDefault();
                    DataAccess.Estatus estatusFinalizado = context.Estatus.Where(b => b.NombreEstatus == "Finalizado").FirstOrDefault();

                    pedidos = context.Pedido.Where(b => b.Estatus != estatusCancelado.idEstatus && b.Estatus != estatusFinalizado.idEstatus && context.PedidoDomicilio.Where(p => p.idPedido == b.idPedido).FirstOrDefault() != null).ToList();
                    foreach (var pedido in pedidos)
                    {
                        pedido.PedidoProducto = pedido.PedidoProducto;
                        pedido.Estatus1       = pedido.Estatus1;
                    }
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #2
0
        public List <DataAccess.Pedido> ObtenerPedidosPorFecha(DateTime inicial, DateTime final)
        {
            List <DataAccess.Pedido> pedidos = new List <DataAccess.Pedido>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    foreach (var pedido in context.Pedido)
                    {
                        if (pedido.FechaPedido >= inicial && pedido.FechaPedido <= final)
                        {
                            pedido.PedidoProducto = pedido.PedidoProducto;
                            foreach (var pedidoProducto in pedido.PedidoProducto)
                            {
                                pedidoProducto.ProductoVenta = pedidoProducto.ProductoVenta;
                            }
                            pedido.Estatus1 = pedido.Estatus1;
                            pedidos.Add(pedido);
                        }
                    }
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #3
0
        public ResultadoOperacionEnum.ResultadoOperacion AsignarEntrega(int id, String Repartidor)
        {
            ResultadoOperacionEnum.ResultadoOperacion resultado = new ResultadoOperacionEnum.ResultadoOperacion();
            using (var context = new PizzaEntities())
            {
                try
                {
                    int Estatus = context.Estatus.Where(b => b.NombreEstatus == "En Camino").FirstOrDefault().idEstatus;

                    var tempPedido = context.Pedido
                                     .Where(b => b.idPedido == id)
                                     .FirstOrDefault();
                    var tempPedidoDomicilio = context.PedidoDomicilio.Where(b => b.idPedido == id).FirstOrDefault();


                    tempPedidoDomicilio.HoraSalida = DateTime.Now;
                    tempPedidoDomicilio.Repartidor = Repartidor;
                    tempPedido.Estatus             = Estatus;

                    context.SaveChanges();

                    resultado = ResultadoOperacionEnum.ResultadoOperacion.Exito;
                }
                catch (EntityException)
                {
                    resultado = ResultadoOperacionEnum.ResultadoOperacion.FalloSQL;
                }
                return(resultado);
            }
        }
예제 #4
0
 public DataAccess.Pedido GetPedidoConProductoPorId(int id)
 {
     DataAccess.Pedido pedido = new DataAccess.Pedido();
     using (var context = new PizzaEntities())
     {
         try
         {
             pedido = context.Pedido.Where(b => b.idPedido == id).FirstOrDefault();
             if (pedido == null)
             {
                 throw new InstanceNotFoundException();
             }
             pedido.PedidoProducto = pedido.PedidoProducto;
             pedido.Estatus1       = pedido.Estatus1;
             foreach (var pedidoProducto in pedido.PedidoProducto)
             {
                 pedidoProducto.ProductoVenta = pedidoProducto.ProductoVenta;
             }
         }
         catch (EntityException)
         {
             throw new EntityException("Error al conectar a la bd");
         }catch (InstanceNotFoundException)
         {
             throw new InstanceNotFoundException("No se encontro el pedido");
         }
     }
     return(pedido);
 }
예제 #5
0
 public List <pizzas> GetAll()
 {
     using (var db = new PizzaEntities())
     {
         return(db.pizzas.ToList());
     }
 }
예제 #6
0
        public ResultadoOperacionEnum.ResultadoOperacion CambiarProductosDePedido(int pedido, List <DataAccess.PedidoProducto> productos)
        {
            ResultadoOperacionEnum.ResultadoOperacion resultado = ResultadoOperacionEnum.ResultadoOperacion.FallaDesconocida;
            using (var context = new PizzaEntities())
            {
                try
                {
                    var tempPedido = context.Pedido.Where(b => b.idPedido == pedido).FirstOrDefault();
                    for (int i = 0; i < tempPedido.PedidoProducto.Count; i++)
                    {
                        context.PedidoProducto.Remove(context.PedidoProducto.Where(b => b.idPedido == tempPedido.idPedido).First()); //Buscar otra forma de hacerlo
                    }
                    foreach (var producto in productos)
                    {
                        PedidoProducto tempPedidoProducto = new PedidoProducto()
                        {
                            Precio          = producto.Precio,
                            idPedido        = producto.idPedido,
                            Cantidad        = producto.Cantidad,
                            idProductoVenta = producto.ProductoVenta.idProductoVenta
                        };
                        context.PedidoProducto.Add(tempPedidoProducto);
                    }
                    context.SaveChanges();

                    resultado = ResultadoOperacionEnum.ResultadoOperacion.Exito;
                }
                catch (EntityException)
                {
                    resultado = ResultadoOperacionEnum.ResultadoOperacion.FalloSQL;
                }
            }
            return(resultado);
        }
예제 #7
0
        public List <DataAccess.Pedido> ObtenerListaPedidosDisponiblesMesero()
        {
            List <DataAccess.Pedido> pedidos = new List <DataAccess.Pedido>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    DataAccess.Estatus estatusCancelado  = context.Estatus.Where(b => b.NombreEstatus == "Cancelado").FirstOrDefault();
                    DataAccess.Estatus estatusFinalizado = context.Estatus.Where(b => b.NombreEstatus == "Finalizado").FirstOrDefault();
                    pedidos = context.Pedido.Where(b => b.Estatus != estatusCancelado.idEstatus && b.Estatus != estatusFinalizado.idEstatus).ToList();
                    foreach (var pedido in pedidos)
                    {
                        pedido.PedidoProducto = pedido.PedidoProducto;
                        pedido.Estatus1       = pedido.Estatus1;
                    }
                    for (int i = 0; i < pedidos.Count; i++)
                    {
                        if (EsADomicilio(pedidos[i].idPedido))
                        {
                            pedidos.Remove(pedidos[i]);
                            i--;
                        }
                    }
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #8
0
        public List <DataAccess.Pedido> ObtenerListaPedidosDisponiblesCocina()
        {
            List <DataAccess.Pedido> pedidos = new List <DataAccess.Pedido>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    DataAccess.Estatus estatusEnEspera      = context.Estatus.Where(b => b.NombreEstatus == "En Espera").FirstOrDefault();
                    DataAccess.Estatus estatusEnPreparacion = context.Estatus.Where(b => b.NombreEstatus == "En Preparación").FirstOrDefault();
                    pedidos = context.Pedido.Where(b => b.Estatus == estatusEnEspera.idEstatus || b.Estatus == estatusEnPreparacion.idEstatus).ToList();
                    foreach (var pedido in pedidos)
                    {
                        pedido.PedidoProducto = pedido.PedidoProducto;
                        pedido.Estatus1       = pedido.Estatus1;
                    }
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #9
0
        public DataAccess.Producto GetProductoPorID(int id)
        {
            DataAccess.Producto resultado = new DataAccess.Producto();
            using (var context = new PizzaEntities())
            {
                try
                {
                    resultado = context.Producto.Where(b => b.idProducto == id).FirstOrDefault();
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener el producto");
                }
            }

            return(resultado);
        }
예제 #10
0
        public List <DataAccess.ProductoInventario> ObtenerProductoInventario(int id)
        {
            List <DataAccess.ProductoInventario> resultado = new List <DataAccess.ProductoInventario>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    resultado = context.ProductoInventario.Where(b => b.Inventario == id).ToList();
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(resultado);
        }
예제 #11
0
        public List <DataAccess.PedidoProducto> ObtenerListaPedidoProducto(int id)
        {
            List <DataAccess.PedidoProducto> pedidos = new List <DataAccess.PedidoProducto>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    pedidos = context.PedidoProducto.Where(b => b.idPedido == id).ToList();
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #12
0
        public DataAccess.Estatus ObtenerEstatusPorId(int id)
        {
            DataAccess.Estatus resultado = new DataAccess.Estatus();
            using (var context = new PizzaEntities())
            {
                try
                {
                    var tempEstatus = context.Estatus
                                      .Where(b => b.idEstatus == id)
                                      .FirstOrDefault();

                    resultado = tempEstatus;
                }
                catch (EntityException)
                {
                    throw new Exception("No se pudo obtener el estatus");
                }
                return(resultado);
            }
        }
예제 #13
0
        public bool EsADomicilio(int id)
        {
            bool resultado = false;

            using (var context = new PizzaEntities())
            {
                try
                {
                    var tempPedidoDomicilio = context.PedidoDomicilio.Where(b => b.idPedido == id).FirstOrDefault();
                    if (tempPedidoDomicilio != null)
                    {
                        resultado = true;
                    }
                }
                catch (EntityException)
                {
                    throw new EntityException("Error no identificado");
                }
                return(resultado);
            }
        }
예제 #14
0
        public List <DataAccess.Pedido> ObtenerListaPedidos()
        {
            List <DataAccess.Pedido> pedidos = new List <DataAccess.Pedido>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    foreach (var item in context.Pedido)
                    {
                        item.Estatus1 = item.Estatus1;
                        pedidos.Add(item);
                    }
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #15
0
        public ResultadoOperacionEnum.ResultadoOperacion PonerEnPreparacion(int id)
        {
            ResultadoOperacionEnum.ResultadoOperacion resultado = new ResultadoOperacionEnum.ResultadoOperacion();
            using (var context = new PizzaEntities())
            {
                try
                {
                    int Estatus = context.Estatus.Where(b => b.NombreEstatus == "En Preparación").FirstOrDefault().idEstatus;

                    var tempPedido = context.Pedido
                                     .Where(b => b.idPedido == id)
                                     .FirstOrDefault();
                    foreach (var item in tempPedido.PedidoProducto)
                    {
                        var tempInventario = context.Inventario.Where(b => b.Producto == item.idProductoVenta).FirstOrDefault();
                        if (tempInventario.ExistenciaTotal < item.Cantidad)
                        {
                            throw new ArgumentException("El inventario no cuenta con la cantidad para despachar este pedido");
                        }
                        else
                        {
                            tempInventario.ExistenciaTotal -= item.Cantidad;
                        }
                    }

                    tempPedido.Estatus = Estatus;

                    context.SaveChanges();

                    resultado = ResultadoOperacionEnum.ResultadoOperacion.Exito;
                }
                catch (EntityException)
                {
                    resultado = ResultadoOperacionEnum.ResultadoOperacion.FalloSQL;
                }
                return(resultado);
            }
        }
예제 #16
0
        public ResultadoOperacionEnum.ResultadoOperacion CambiarEstadoPedido(Pedido pedido, DataAccess.Estatus estatus)
        {
            ResultadoOperacionEnum.ResultadoOperacion resultado = new ResultadoOperacionEnum.ResultadoOperacion();
            using (var context = new PizzaEntities())
            {
                try
                {
                    var tempPedido = context.Pedido
                                     .Where(b => b.idPedido == pedido.idPedido)
                                     .FirstOrDefault();

                    tempPedido.Estatus = estatus.idEstatus;
                    context.SaveChanges();

                    resultado = ResultadoOperacionEnum.ResultadoOperacion.Exito;
                }
                catch (EntityException)
                {
                    resultado = ResultadoOperacionEnum.ResultadoOperacion.FalloSQL;
                }
                return(resultado);
            }
        }
예제 #17
0
        public List <DataAccess.Pedido> ObtenerPedidosPorRangoCocinero(int rango, int pagina)
        {
            List <DataAccess.Pedido> pedidos = new List <DataAccess.Pedido>();

            using (var context = new PizzaEntities())
            {
                try
                {
                    pedidos = context.Pedido
                              .Where(b => b.Estatus1.NombreEstatus == "En espera" || b.Estatus1.NombreEstatus == "En preparación")
                              .OrderBy(b => b.FechaPedido)
                              .Skip(rango * pagina)
                              .Take(rango)
                              .ToList();
                }
                catch (EntityException)
                {
                    throw new Exception("Error al obtener los pedidos");
                }
            }

            return(pedidos);
        }
예제 #18
0
        public ActionResult AddOrEditCustomer(string id = null)
        {
            PizzaEntities         _entities   = new PizzaEntities();
            List <SelectListItem> _employees  = new List <SelectListItem>();
            CustomerDTO           customerDTO = new CustomerDTO();
            CustomerBLL           customerBLL = new CustomerBLL();

            try
            {
                customerDTO = customerBLL.AddOrEditCustomer(id);

                _employees = _entities.Employees.ToList().Select(s => new SelectListItem
                {
                    Value = Convert.ToString(s.Employee_UID),
                    Text  = s.EmployeeName
                }).ToList();

                ViewBag.Employees = _employees;
            }
            catch (Exception ex)
            {
            }
            return(View(customerDTO));
        }