/// <summary>
        /// Obtiene el listado de ventas registradas en el sistema.
        /// </summary>
        /// <returns>El listado de ventas registradas.</returns>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        public List <Venta> ObtenerVentas()
        {
            List <Venta> ventas = new List <Venta>();

            try {
                string    sql = "SELECT Codigo, Fecha FROM Ventas";
                BaseDatos db  = new BaseDatos();
                db.Conectar();
                db.CrearComando(sql);
                DbDataReader datosVentas = db.EjecutarConsulta();

                Venta venta = null;
                while (datosVentas.Read())
                {
                    try {
                        venta        = new Venta();
                        venta.Codigo = datosVentas.GetInt32(0);
                        venta.Fecha  = datosVentas.GetDateTime(1);

                        List <ItemVenta> items = ObtenerItemsVenta(venta);
                        foreach (ItemVenta item in items)
                        {
                            venta.AgregarItem(item);
                        }

                        ventas.Add(venta);
                    } catch (InvalidCastException ex) {
                        throw new ReglasNegocioException("Los tipos no coinciden.", ex);
                    } catch (DataException ex) {
                        throw new ReglasNegocioException("Error de ADO.NET.", ex);
                    }
                }
                datosVentas.Close();
                db.Desconectar();
            } catch (BaseDatosException) {
                throw new ReglasNegocioException("Error al acceder a la base de datos para obtener las ventas.");
            } catch (ReglasNegocioException ex) {
                throw new ReglasNegocioException("Error a obtener las ventas. " + ex.Message);
            }
            return(ventas);
        }
        /// <summary>
        /// Obtiene los ítems de una venta.
        /// </summary>
        /// <param name="venta">La venta cuyos ítems se van a obtener.</param>
        /// <returns>Los ítems de la venta.</returns>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        private List <ItemVenta> ObtenerItemsVenta(Venta venta)
        {
            List <ItemVenta> items = new List <ItemVenta>();

            try {
                string    sql = "SELECT Codigo, Cantidad, CodigoProducto FROM ItemsVenta WHERE CodigoVenta=@venta";
                BaseDatos db  = new BaseDatos();
                db.Conectar();
                db.CrearComando(sql);
                db.AsignarParametroEntero("@venta", venta.Codigo);
                DbDataReader datosItems = db.EjecutarConsulta();

                ItemVenta         item         = null;
                CatalogoProductos catalogoProd = new CatalogoProductos();
                while (datosItems.Read())
                {
                    try {
                        Producto producto = catalogoProd.ObtenerProducto(datosItems.GetInt32(2));
                        item = new ItemVenta(datosItems.GetInt32(0), producto, datosItems.GetInt32(1));

                        venta.AgregarItem(item);
                    } catch (InvalidCastException ex) {
                        throw new ReglasNegocioException("Los tipos no coinciden.", ex);
                    } catch (DataException ex) {
                        throw new ReglasNegocioException("Error de ADO.NET.", ex);
                    }
                }
                datosItems.Close();
                db.Desconectar();
            } catch (BaseDatosException) {
                throw new ReglasNegocioException("Error al acceder a la base de datos para obtener los ítems de venta.");
            } catch (ReglasNegocioException ex) {
                throw new ReglasNegocioException("Error a obtener los ítems de venta. " + ex.Message);
            }
            return(items);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Obtiene los ítems de una venta.
        /// </summary>
        /// <param name="venta">La venta cuyos ítems se van a obtener.</param>
        /// <returns>Los ítems de la venta.</returns>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        private List<ItemVenta> ObtenerItemsVenta(Venta venta)
        {
            List<ItemVenta> items = new List<ItemVenta>();

            try {
                string sql = "SELECT Codigo, Cantidad, CodigoProducto FROM ItemsVenta WHERE CodigoVenta=@venta";
                BaseDatos db = new BaseDatos();
                db.Conectar();
                db.CrearComando(sql);
                db.AsignarParametroEntero("@venta", venta.Codigo);
                DbDataReader datosItems = db.EjecutarConsulta();

                ItemVenta item = null;
                CatalogoProductos catalogoProd = new CatalogoProductos();
                while (datosItems.Read()) {
                    try {
                        Producto producto = catalogoProd.ObtenerProducto(datosItems.GetInt32(2));
                        item = new ItemVenta(datosItems.GetInt32(0), producto, datosItems.GetInt32(1));

                        venta.AgregarItem(item);
                    } catch (InvalidCastException ex) {
                        throw new ReglasNegocioException("Los tipos no coinciden.", ex);
                    } catch (DataException ex) {
                        throw new ReglasNegocioException("Error de ADO.NET.", ex);
                    }
                }
                datosItems.Close();
                db.Desconectar();
            } catch (BaseDatosException) {
                throw new ReglasNegocioException("Error al acceder a la base de datos para obtener los ítems de venta.");
            } catch (ReglasNegocioException ex) {
                throw new ReglasNegocioException("Error a obtener los ítems de venta. " + ex.Message);
            }
            return items;
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Obtiene el listado de ventas registradas en el sistema.
        /// </summary>
        /// <returns>El listado de ventas registradas.</returns>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        public List<Venta> ObtenerVentas()
        {
            List<Venta> ventas = new List<Venta>();
            try {
                string sql = "SELECT Codigo, Fecha FROM Ventas";
                BaseDatos db = new BaseDatos();
                db.Conectar();
                db.CrearComando(sql);
                DbDataReader datosVentas = db.EjecutarConsulta();

                Venta venta = null;
                while (datosVentas.Read()) {
                    try {
                        venta = new Venta();
                        venta.Codigo = datosVentas.GetInt32(0);
                        venta.Fecha = datosVentas.GetDateTime(1);

                        List<ItemVenta> items = ObtenerItemsVenta(venta);
                        foreach (ItemVenta item in items) {
                            venta.AgregarItem(item);
                        }

                        ventas.Add(venta);
                    } catch (InvalidCastException ex) {
                        throw new ReglasNegocioException("Los tipos no coinciden.", ex);
                    } catch (DataException ex) {
                        throw new ReglasNegocioException("Error de ADO.NET.", ex);
                    }
                }
                datosVentas.Close();
                db.Desconectar();
            } catch (BaseDatosException) {
                throw new ReglasNegocioException("Error al acceder a la base de datos para obtener las ventas.");
            } catch (ReglasNegocioException ex) {
                throw new ReglasNegocioException("Error a obtener las ventas. " + ex.Message);
            }
            return ventas;
        }