コード例 #1
0
        /// <summary>
        /// Confirma una venta registrando sus ítems en el sistema.
        /// La venta debe poseer items.
        /// </summary>
        /// <param name="venta">La venta a registrar.</param>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        public void ConfirmarVenta(Venta venta)
        {
            if (venta.Items.Count.Equals(0)) {
                throw new ReglasNegocioException("La venta no contiene ningún ítem.");
            }

            BaseDatos db = new BaseDatos();
            try {
                db.Conectar();
                db.ComenzarTransaccion();

                string sql = "INSERT ItemsVenta (CodigoVenta, CodigoProducto, Cantidad) VALUES (@venta, @producto, @cantidad); SELECT @@IDENTITY";
                foreach (ItemVenta item in venta.Items) {
                    db.CrearComando(sql);
                    db.AsignarParametroEntero("@venta", venta.Codigo);
                    db.AsignarParametroEntero("@producto", item.Producto.Codigo);
                    db.AsignarParametroEntero("@cantidad", item.Cantidad);
                    item.Codigo = db.EjecutarEscalar();
                }
                db.ConfirmarTransaccion();
            } catch (BaseDatosException ex) {
                db.CancelarTransaccion();
                throw new ReglasNegocioException("Error al registrar la venta.", ex);
            } finally {
                db.Desconectar();
            }
        }
コード例 #2
0
        /// <summary>
        /// Inicia una nueva venta en el sistema.
        /// </summary>
        /// <returns>La venta iniciada.</returns>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        public Venta IniciarVenta()
        {
            Venta venta = new Venta();

            BaseDatos db = new BaseDatos();
            try {
                db.Conectar();
                string sql = "INSERT Ventas (Fecha) VALUES (DEFAULT); SELECT @@IDENTITY";
                db.CrearComando(sql);
                venta.Codigo = db.EjecutarEscalar();
            } catch (BaseDatosException ex) {
                throw new ReglasNegocioException("Error al iniciar la venta.", ex);
            } finally {
                db.Desconectar();
            }

            return venta;
        }