/// <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 el listado de facturas de determinado cliente /// </summary> /// <param name="cliente">Cliente para consultar sus facturas</param> /// <returns>Listado de facturas del cliente</returns> public IEnumerable <Factura> Obtener(Cliente cliente) { if (cliente == null) { throw new OBMCateringException(Resources.FacturasBL_Validaciones_ClienteNull); } Datos.ClientesDAL dalClientes = dal.ObtenerClientesDAL(); Datos.Cliente clienteDAL = dalClientes.Obtener(cliente.CUIT); if (clienteDAL == null) { throw new OBMCateringException(string.Format(Resources.BL_Validaciones_ClienteInvalido, cliente.CUIT)); } Datos.FacturasDAL dalFacturas = dal.ObtenerFacturasDAL(); IEnumerable <Datos.Factura> facturasDAL = dalFacturas.Obtener(clienteDAL); return(Obtener(facturasDAL)); }
/// <summary> /// Crea un nuevo cliente en el sistema /// </summary> /// <param name="cliente">Cliente a crear</param> public void Crear(Cliente cliente) { ValidarCliente(cliente); Datos.LocalidadesDAL dalLocalidades = dal.ObtenerLocalidadesDAL(); Datos.Localidad localidadDAL = dalLocalidades.Obtener(cliente.Localidad.Id); if (localidadDAL == null) { throw new OBMCateringException(string.Format(Resources.BL_Validaciones_LocalidadInvalida, cliente.Localidad.Nombre)); } Datos.ClientesDAL dalClientes = dal.ObtenerClientesDAL(); Datos.TipoCliente tipoClienteDAL = dalClientes.ObtenerTipo(cliente.Tipo.ToString()); if (tipoClienteDAL == null) { throw new OBMCateringException(string.Format(Resources.ClientesBL_Validaciones_TipoInvalido, cliente.Tipo)); } Datos.Cliente clienteDAL = new Datos.Cliente { CUIT = cliente.CUIT, Nombre = cliente.Nombre, Domicilio = cliente.Domicilio, Localidad = localidadDAL, CodigoPostal = cliente.CodigoPostal, Telefono = cliente.Telefono, Email = cliente.Email, Tipo = tipoClienteDAL, FechaAlta = cliente.FechaAlta, Activo = cliente.Activo }; dalClientes.Crear(clienteDAL); dal.Guardar(); }