示例#1
0
        /// <summary>
        /// Cancela una venta.
        /// </summary>
        /// <param name="venta">La venta a cancelar.</param>
        /// <exception cref="ReglasNegocioException">Si ocurre un error de negocio.</exception>
        public void CancelarVenta(Venta venta)
        {
            BaseDatos db = new BaseDatos();
            try {
                db.Conectar();
                db.ComenzarTransaccion();

                string sql = "DELETE ItemsVenta WHERE Codigo = @codigo";
                foreach (ItemVenta item in venta.Items) {
                    db.CrearComando(sql);
                    db.AsignarParametroEntero("@codigo", item.Codigo);
                    db.EjecutarComando();
                }

                sql = "DELETE Ventas WHERE Codigo = @codigo";
                db.CrearComando(sql);
                db.AsignarParametroEntero("@codigo", venta.Codigo);
                db.EjecutarComando();

                db.ConfirmarTransaccion();
            } catch (BaseDatosException ex) {
                db.CancelarTransaccion();
                throw new ReglasNegocioException("Error al cancelar la venta.", ex);
            } finally {
                db.Desconectar();
            }
        }