Пример #1
0
        /// <summary>
        /// Determina si existe una receta segun su nombre
        /// </summary>
        /// <param name="nombre">Nombre de la receta a buscar</param>
        /// <returns>Valor que determina si la receta fue encontrada o no</returns>
        public bool Existe(string nombre)
        {
            if (string.IsNullOrEmpty(nombre))
            {
                throw new OBMCateringException(Resources.RecetasBL_Validaciones_NombreNull);
            }

            Datos.RecetasDAL dalRecetas = dal.ObtenerRecetasDAL();
            Datos.Receta     recetaDAL  = dalRecetas.ObtenerPorNombre(nombre);

            return(recetaDAL != null);
        }
Пример #2
0
        /// <summary>
        /// Actualiza la informacion de una receta dentro del sistema
        /// Los datos que podran actualizarse son su estado, sus detalles o informacion y sus ingredientes
        /// </summary>
        /// <param name="receta">Receta a actualizar</param>
        public void Actualizar(Receta receta)
        {
            ValidarReceta(receta);

            if (receta.Ingredientes == null || receta.Ingredientes.Count == 0)
            {
                throw new OBMCateringException(Resources.RecetasBL_Validaciones_SinIngredientes);
            }

            EstadoReceta estado;

            if (receta.Ingredientes.Count == 0)
            {
                estado = EstadoReceta.SinIngredientes;
            }
            else
            {
                bool preciosFaltantes = preciosIngredientesBL.HayFaltantes(receta);

                if (preciosFaltantes)
                {
                    estado = EstadoReceta.SinPrecio;
                }
                else
                {
                    estado = EstadoReceta.Activa;
                }
            }

            Datos.RecetasDAL dalRecetas = dal.ObtenerRecetasDAL();
            Datos.Receta     recetaDAL  = dalRecetas.ObtenerPorNombre(receta.Nombre);

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

            Datos.EstadoReceta estadoDAL = dalRecetas.ObtenerEstado(estado.ToString());

            if (estadoDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.OrdenesCompraBL_Validaciones_EstadoInvalido, estado));
            }

            recetaDAL.Detalle = receta.Detalle;
            recetaDAL.Estado  = estadoDAL;

            foreach (IngredienteReceta ingredienteReceta in receta.Ingredientes)
            {
                Datos.IngredienteReceta ingredienteRecetaDAL = BuscarIngredienteReceta(ingredienteReceta.Ingrediente, recetaDAL);
                Datos.UnidadMedida      unidadMedidaDAL      = dalRecetas.ObtenerUnidad(ingredienteReceta.Unidad.ToString());

                if (ingredienteRecetaDAL == null)
                {
                    Datos.Ingrediente ingredienteDAL = PrepararIngrediente(ingredienteReceta.Ingrediente);

                    ingredienteRecetaDAL = new Datos.IngredienteReceta
                    {
                        Ingrediente = ingredienteDAL,
                        Cantidad    = ingredienteReceta.Cantidad,
                        Unidad      = unidadMedidaDAL
                    };

                    recetaDAL.Ingredientes.Add(ingredienteRecetaDAL);
                }
                else
                {
                    ingredienteRecetaDAL.Cantidad = ingredienteReceta.Cantidad;
                    ingredienteRecetaDAL.Unidad   = unidadMedidaDAL;
                }
            }

            dalRecetas.Actualizar(recetaDAL);
            dal.Guardar();

            if (estado == EstadoReceta.SinPrecio)
            {
                preciosIngredientesBL.CrearFaltantes(receta);
            }
        }