diff --git a/src/backend/gda/gnc-backend-gda.c b/src/backend/gda/gnc-backend-gda.c index bfd43a6818..39c1377fd3 100644 --- a/src/backend/gda/gnc-backend-gda.c +++ b/src/backend/gda/gnc-backend-gda.c @@ -328,9 +328,22 @@ save_prices( GncGdaBackend* be, QofBook* book ) gnc_pricedb_foreach_price( priceDB, save_price, be, TRUE ); } +static int +save_tx( Transaction* tx, gpointer data ) +{ + GncGdaBackend* be = (GncGdaBackend*)data; + + gnc_gda_save_transaction( be, QOF_INSTANCE(tx) ); + + return 0; +} + static void save_transactions( GncGdaBackend* be, QofBook* book ) { + xaccAccountTreeForEachTransaction( gnc_book_get_root_account( book ), + save_tx, + (gpointer)be ); } static void diff --git a/src/backend/gda/gnc-transaction-gda.c b/src/backend/gda/gnc-transaction-gda.c index 8c9fd91c93..aade58008b 100644 --- a/src/backend/gda/gnc-transaction-gda.c +++ b/src/backend/gda/gnc-transaction-gda.c @@ -515,8 +515,8 @@ save_splits( GncGdaBackend* be, const GUID* tx_guid, SplitList* pSplitList ) g_list_foreach( pSplitList, save_split_cb, &split_info ); } -static void -commit_transaction( GncGdaBackend* be, QofInstance* inst ) +void +gnc_gda_save_transaction( GncGdaBackend* be, QofInstance* inst ) { Transaction* pTx = GNC_TRANS(inst); const GUID* guid; @@ -716,7 +716,7 @@ gnc_gda_init_transaction_handler( void ) { GNC_GDA_BACKEND_VERSION, GNC_ID_TRANS, - commit_transaction, /* commit */ + gnc_gda_save_transaction, /* commit */ NULL, /* initial_load */ create_transaction_tables /* create tables */ }; diff --git a/src/backend/gda/gnc-transaction-gda.h b/src/backend/gda/gnc-transaction-gda.h index c060b7c605..d9b497de2d 100644 --- a/src/backend/gda/gnc-transaction-gda.h +++ b/src/backend/gda/gnc-transaction-gda.h @@ -34,5 +34,6 @@ void gnc_gda_init_transaction_handler( void ); void gnc_gda_transaction_commit_splits( GncGdaBackend* be, Transaction* pTx ); +void gnc_gda_save_transaction( GncGdaBackend* be, QofInstance* inst ); #endif /* GNC_TRANSACTION_GDA_H_ */