Skip to content

Commit f71ddb7

Browse files
committed
Mortgage Assistant: Update the formula displayed on the repayment page
When the repayment schedule changes to reflect the change in periods and for compounded loans the periods per year.
1 parent 7226b67 commit f71ddb7

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

gnucash/gnome/assistant-loan.cpp

+21-8
Original file line numberDiff line numberDiff line change
@@ -1319,8 +1319,23 @@ loan_opt_page_complete( GtkAssistant *assistant, gpointer user_data )
13191319

13201320
/************************************************************************/
13211321

1322-
static
1323-
void
1322+
static void
1323+
update_repayment_formula_cb(GtkWidget *widget, gpointer user_data)
1324+
{
1325+
LoanAssistantData *ldd = static_cast<LoanAssistantData*> (user_data);
1326+
1327+
recurrenceListFree(&ldd->ld.repayment_schedule);
1328+
gnc_frequency_save_to_recurrence(ldd->repGncFreq,
1329+
&ldd->ld.repayment_schedule,
1330+
ldd->ld.repStartDate);
1331+
1332+
ldd->ld.repAmount = loan_get_pmt_formula(ldd);
1333+
if (!ldd->ld.repAmount.empty() )
1334+
gtk_entry_set_text(ldd->repAmtEntry, ldd->ld.repAmount.c_str());
1335+
1336+
}
1337+
1338+
static void
13241339
loan_rep_prep( GtkAssistant *assistant, gpointer user_data )
13251340
{
13261341
LoanAssistantData *ldd = static_cast<LoanAssistantData*> (user_data);
@@ -1339,7 +1354,10 @@ loan_rep_prep( GtkAssistant *assistant, gpointer user_data )
13391354

13401355
g_signal_handlers_block_by_func( ldd->repGncFreq,
13411356
(gpointer) loan_rep_page_valid_cb, ldd );
1342-
gnc_frequency_setup_recurrence(ldd->repGncFreq, ldd->ld.repayment_schedule, ldd->ld.repStartDate);
1357+
gnc_frequency_setup_recurrence(ldd->repGncFreq, ldd->ld.repayment_schedule,
1358+
ldd->ld.repStartDate);
1359+
g_signal_connect (ldd->repGncFreq, "changed",
1360+
G_CALLBACK (update_repayment_formula_cb), ldd);
13431361
g_signal_handlers_unblock_by_func( ldd->repGncFreq,
13441362
(gpointer) loan_rep_page_valid_cb, ldd );
13451363

@@ -1423,11 +1441,6 @@ loan_rep_page_save( GtkAssistant *assistant, gpointer user_data )
14231441

14241442
ldd->ld.repIntAcct =
14251443
gnc_account_sel_get_account( ldd->repIntToGAS );
1426-
1427-
recurrenceListFree(&ldd->ld.repayment_schedule);
1428-
gnc_frequency_save_to_recurrence(ldd->repGncFreq,
1429-
&ldd->ld.repayment_schedule,
1430-
ldd->ld.repStartDate);
14311444
}
14321445

14331446
/************************************************************************/

0 commit comments

Comments
 (0)