示例#1
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();
        }
示例#2
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));
        }
示例#3
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();
        }