예제 #1
0
        /// <summary>
        /// Obtiene un cliente especifico segun su nombre
        /// </summary>
        /// <param name="nombre">Nombre del cliente a consultar</param>
        /// <returns>Cliente encontrado</returns>
        public Cliente ObtenerPorNombre(string nombre)
        {
            if (string.IsNullOrEmpty(nombre))
            {
                throw new OBMCateringException(Resources.ClientesBL_Validaciones_NombreNull);
            }

            Datos.ClientesDAL dalClientes = dal.ObtenerClientesDAL();
            Datos.Cliente     clienteDAL  = dalClientes.ObtenerPorNombre(nombre);

            return(Obtener(clienteDAL));
        }
예제 #2
0
        /// <summary>
        /// Obtiene un cliente especifico segun su numero de CUIT
        /// </summary>
        /// <param name="cuit">CUIT del cliente a consultar</param>
        /// <returns>Cliente encontrado</returns>
        public Cliente ObtenerPorCUIT(string cuit)
        {
            if (string.IsNullOrEmpty(cuit))
            {
                throw new OBMCateringException(Resources.BL_Validaciones_CUITNull);
            }

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

            return(Obtener(clienteDAL));
        }
예제 #3
0
        /// <summary>
        /// Obtiene la lista de clientes segun tipo de cliente dado
        /// </summary>
        /// <param name="tipo">Tipo de cliente a obtener</param>
        /// <returns>Listado de clientes</returns>
        public IEnumerable <Cliente> Obtener(TipoCliente tipo)
        {
            Datos.ClientesDAL dalClientes    = dal.ObtenerClientesDAL();
            Datos.TipoCliente tipoClienteDAL = dalClientes.ObtenerTipo(tipo.ToString());

            if (tipoClienteDAL == null)
            {
                throw new OBMCateringException(string.Format(Resources.ClientesBL_Validaciones_TipoInvalido, tipo));
            }

            IEnumerable <Datos.Cliente> clientesDAL = dalClientes.Obtener(tipoClienteDAL);

            return(Obtener(clientesDAL));
        }
예제 #4
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();
        }
예제 #5
0
        /// <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));
        }
예제 #6
0
        /// <summary>
        /// Obtiene el listado de ordenes de venta para un determinado cliente
        /// </summary>
        /// <param name="cliente">Cliente a obtener sus ordenes de venta</param>
        /// <returns>Listado de ordenes de venta</returns>
        public IEnumerable <OrdenVenta> Obtener(Cliente cliente)
        {
            if (cliente == null)
            {
                throw new OBMCateringException(Resources.BL_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.OrdenesVentaDAL          dalOrdenesVenta = dal.ObtenerOrdenesVentaDAL();
            IEnumerable <Datos.OrdenVenta> ordenesVentaDAL = dalOrdenesVenta.Obtener(clienteDAL);

            return(Obtener(ordenesVentaDAL));
        }
예제 #7
0
        /// <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();
        }