/// <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)); }
/// <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)); }
/// <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(); }
/// <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)); }
/// <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(); }