Example #1
0
        /// <summary>
        /// Obtiene el listado completo de recetas del sistema
        /// </summary>
        /// <returns>Listado de recetas</returns>
        public IEnumerable <Receta> Obtener()
        {
            Datos.RecetasDAL           dalRecetas = dal.ObtenerRecetasDAL();
            IEnumerable <Datos.Receta> recetasDAL = dalRecetas.Obtener();

            return(Obtener(recetasDAL));
        }
Example #2
0
        /// <summary>
        /// Obtiene el listado de recetas segun su estado
        /// </summary>
        /// <param name="estado">Estado de las recetas a obtener</param>
        /// <returns>Listado de recetas</returns>
        public IEnumerable <Receta> Obtener(EstadoReceta estado)
        {
            Datos.RecetasDAL           dalRecetas = dal.ObtenerRecetasDAL();
            IEnumerable <Datos.Receta> recetasDAL = dalRecetas.Obtener(estado.ToString());

            return(Obtener(recetasDAL));
        }
Example #3
0
        /// <summary>
        /// Crea una nueva orden de venta o pedido en el sistema
        /// Las ordenes de venta son la informacion central del sistema ya que a partir de ellas se mueve el negocio,
        /// se preparan recetas, se generan ordenes de compra, facturas, ordenes de pago, etc.
        /// </summary>
        /// <param name="ordenVenta">Orden de venta a crear</param>
        public void Crear(OrdenVenta ordenVenta)
        {
            ValidarOrdenVenta(ordenVenta);

            Datos.ClientesDAL dalClientes = dal.ObtenerClientesDAL();
            Datos.Cliente     clienteDAL  = dalClientes.Obtener(ordenVenta.Cliente.CUIT);

            if (clienteDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_ClienteInvalido, ordenVenta.Cliente.CUIT));
            }

            Datos.RecetasDAL    dalRecetas = dal.ObtenerRecetasDAL();
            List <Datos.Receta> recetasDAL = new List <Datos.Receta>();

            foreach (Receta receta in ordenVenta.Recetas)
            {
                Datos.Receta recetaDAL = dalRecetas.Obtener(receta.Id);

                if (recetaDAL == null)
                {
                    throw new OBMCateringException(string.Format(Resources.OrdenesVentaBL_Validaciones_RecetaInvalida, receta.Nombre));
                }

                recetasDAL.Add(recetaDAL);
            }

            Datos.OrdenVenta ordenVentaDAL = new Datos.OrdenVenta
            {
                FechaInicio = ordenVenta.FechaInicio,
                FechaFin    = ordenVenta.FechaFin,
                Comensales  = ordenVenta.Comensales,
                Precio      = ordenVenta.Precio,
                Aprobada    = ordenVenta.Aprobada,
                Cliente     = clienteDAL,
                Recetas     = recetasDAL
            };

            Datos.OrdenesVentaDAL dalOrdenesVenta = dal.ObtenerOrdenesVentaDAL();

            dalOrdenesVenta.Crear(ordenVentaDAL);
            dal.Guardar();
        }
Example #4
0
        /// <summary>
        /// Obtiene todas las recetas que contengan determinado ingrediente en su composicion
        /// </summary>
        /// <param name="ingrediente">Ingrediente a buscar dentro de las recetas</param>
        /// <returns>Listado de recetas</returns>
        public IEnumerable <Receta> Obtener(Ingrediente ingrediente)
        {
            if (ingrediente == null)
            {
                throw new OBMCateringException(Resources.BL_Validaciones_IngredienteNull);
            }

            Datos.IngredientesDAL dalIngredientes = dal.ObtenerIngredientesDAL();
            Datos.Ingrediente     ingredienteDAL  = dalIngredientes.Obtener(ingrediente.Nombre);

            if (ingredienteDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.BL_Validaciones_IngredienteInvalido, ingrediente.Nombre));
            }

            Datos.RecetasDAL           dalRecetas = dal.ObtenerRecetasDAL();
            IEnumerable <Datos.Receta> recetasDAL = dalRecetas.Obtener(ingredienteDAL);

            return(Obtener(recetasDAL));
        }
Example #5
0
        /// <summary>
        /// Analiza todas las recetas cuyo estado es "Sin Precio",
        /// y recorre nuevamente todos sus ingredientes para saber si ya fueron actualizados y si se les ha asignado un precio
        /// A cada receta que ahora contenga un precio calculable, se le actualizara su estado a "Activa"
        /// Mediante este metodo se activaran las recetas que se encontraban inactivas por falta de precio calculable
        /// </summary>
        public void ActualizarRecetasSinPrecio()
        {
            Datos.RecetasDAL     dalRecetas       = dal.ObtenerRecetasDAL();
            IEnumerable <Receta> recetasSinPrecio = Obtener(EstadoReceta.SinPrecio);

            foreach (Receta receta in recetasSinPrecio)
            {
                bool preciosFaltantes = preciosIngredientesBL.HayFaltantes(receta);

                if (!preciosFaltantes)
                {
                    Datos.Receta       recetaDAL = dalRecetas.Obtener(receta.Id);
                    Datos.EstadoReceta estadoDAL = dalRecetas.ObtenerEstado(EstadoReceta.Activa.ToString());

                    recetaDAL.Estado = estadoDAL;
                    dalRecetas.Actualizar(recetaDAL);
                }
            }

            dal.Guardar();
        }