From fd37ee997d7cef61db82cdd226ca8cac31f4be75 Mon Sep 17 00:00:00 2001 From: Robert Fewell <14uBobIT@gmail.com> Date: Thu, 12 Jan 2023 14:32:14 +0000 Subject: [PATCH 1/2] Fix getting xaccAccountGetReconcilePostponeBalance Change the G_VALUE from a INT64 to BOXED. --- libgnucash/engine/Account.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libgnucash/engine/Account.cpp b/libgnucash/engine/Account.cpp index c9fe32b7a6..81a5ea1f7b 100644 --- a/libgnucash/engine/Account.cpp +++ b/libgnucash/engine/Account.cpp @@ -4878,7 +4878,7 @@ xaccAccountGetReconcilePostponeBalance (const Account *acc, g_return_val_if_fail(GNC_IS_ACCOUNT(acc), FALSE); qof_instance_get_path_kvp (QOF_INSTANCE(acc), &v, {KEY_RECONCILE_INFO, KEY_POSTPONE, "balance"}); - if (G_VALUE_HOLDS_INT64 (&v)) + if (G_VALUE_HOLDS_BOXED (&v)) { bal = *(gnc_numeric*)g_value_get_boxed (&v); if (bal.denom) From 6df866f8769269ecab27889fa535a1341e8898c9 Mon Sep 17 00:00:00 2001 From: Robert Fewell <14uBobIT@gmail.com> Date: Thu, 12 Jan 2023 14:34:30 +0000 Subject: [PATCH 2/2] Add tests for the reconcile account functions --- libgnucash/engine/test/utest-Account.cpp | 55 +++++++++++++++--------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/libgnucash/engine/test/utest-Account.cpp b/libgnucash/engine/test/utest-Account.cpp index 093bc60a99..fb792148c9 100644 --- a/libgnucash/engine/test/utest-Account.cpp +++ b/libgnucash/engine/test/utest-Account.cpp @@ -1089,6 +1089,11 @@ test_gnc_account_kvp_setters_getters (Fixture *fixture, gconstpointer pData) { Account *account = xaccMallocAccount (gnc_account_get_book (fixture->acct)); xaccAccountSetType (account, ACCT_TYPE_EQUITY); + gnc_numeric post_balance = gnc_numeric_create (2345, 100); + gnc_numeric returned_post_balance; + time64 date = gnc_time (nullptr); + time64 returned_date; + int prev_months, prev_days; // equity_type getter/setter g_assert (xaccAccountGetIsOpeningBalance (account) == FALSE); @@ -1231,6 +1236,35 @@ test_gnc_account_kvp_setters_getters (Fixture *fixture, gconstpointer pData) xaccAccountSetNotes (account, nullptr); g_assert_cmpstr (xaccAccountGetNotes (account), ==, nullptr); + // Reconcile getter/setter + date = date - (60*60*24*7); // -7 days + xaccAccountSetReconcileLastDate (account, date); + xaccAccountGetReconcileLastDate (account, &returned_date); + g_assert (date == returned_date); + + date = date + (60*60*24*2); // +2 days + xaccAccountSetReconcilePostponeDate (account, date); + xaccAccountGetReconcilePostponeDate (account, &returned_date); + g_assert (date == returned_date); + + g_assert (xaccAccountGetReconcilePostponeBalance (account, &returned_post_balance) == false); + xaccAccountSetReconcilePostponeBalance (account, post_balance); + g_assert (xaccAccountGetReconcilePostponeBalance (account, &returned_post_balance) == true); + g_assert_cmpint (gnc_numeric_compare (post_balance, returned_post_balance), ==, 0); + + xaccAccountClearReconcilePostpone (account); + g_assert (xaccAccountGetReconcilePostponeBalance (account, &returned_post_balance) == false); + + g_assert (xaccAccountGetReconcileLastInterval (account, &prev_months, &prev_days) == false); + xaccAccountSetReconcileLastInterval (account, 2, 6); + g_assert (xaccAccountGetReconcileLastInterval (account, &prev_months, &prev_days) == true); + g_assert (prev_months == 2); + g_assert (prev_days == 6); + + g_assert (xaccAccountGetReconcileChildrenStatus (account) == false); //default + xaccAccountSetReconcileChildrenStatus (account, true); + g_assert (xaccAccountGetReconcileChildrenStatus (account) == true); + // STOCK_ACCOUNT tests from now on xaccAccountSetType (account, ACCT_TYPE_STOCK); @@ -2555,26 +2589,7 @@ test_xaccAccountType_Compatibility (void) g_assert_cmpint (check2->hits, ==, 1); g_free (msg2); } -/* More KVP getters & setters - * xaccAccountGetReconcileLastDate - * xaccAccountSetReconcileLastDate - * xaccAccountGetReconcilePostponeDate - * xaccAccountSetReconcilePostponeDate - * xaccAccountGetReconcilePostponeBalance - * xaccAccountSetReconcilePostponeBalance - * xaccAccountClearReconcilePostpone - * xaccAccountGetAutoInterestXfer - * xaccAccountSetAutoInterestXfer - * xaccAccountGetLastNum - * xaccAccountSetLastNum - * xaccAccountSetReconcileChildrenStatus - * xaccAccountGetReconcileChildrenStatus - * xaccAccountGetReconcileLastInterval - * xaccAccountSetReconcileLastInterval - * dxaccAccountSetPriceSrc - * dxaccAccountSetQuoteTZ - * dxaccAccountGetQuoteTZ - */ + /* finder_help_function static void finder_help_function (const Account *acc, const char *description,// 3