From e6ee060121b7b5565faedfe145aac00d6400a96c Mon Sep 17 00:00:00 2001 From: lmat Date: Sun, 31 Dec 2017 21:11:29 -0500 Subject: [PATCH] Adding bill term time64 function --- gnucash/gnome/dialog-date-close.c | 6 +++--- libgnucash/engine/gncBillTerm.c | 12 ++++++------ libgnucash/engine/gncBillTerm.h | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/gnucash/gnome/dialog-date-close.c b/gnucash/gnome/dialog-date-close.c index 0701b9a88d..5c22725955 100644 --- a/gnucash/gnome/dialog-date-close.c +++ b/gnucash/gnome/dialog-date-close.c @@ -92,7 +92,7 @@ gnc_dialog_date_close_ok_cb (GtkWidget *widget, gpointer user_data) if (ddc->date) { if (ddc->terms) - *(ddc->ts) = gncBillTermComputeDueDate (ddc->terms, *(ddc->ts2)); + ddc->ts->tv_sec = gncBillTermComputeDueDate (ddc->terms, ddc->ts2->tv_sec); else *(ddc->ts) = gnc_date_edit_get_date_ts (GNC_DATE_EDIT (ddc->date)); } @@ -185,10 +185,10 @@ post_date_changed_cb (GNCDateEdit *gde, gpointer d) { DialogDateClose *ddc = d; Timespec post_date; - Timespec due_date; + Timespec due_date = {0,0}; post_date = gnc_date_edit_get_date_ts (gde); - due_date = gncBillTermComputeDueDate (ddc->terms, post_date); + due_date.tv_sec = gncBillTermComputeDueDate (ddc->terms, post_date.tv_sec); gnc_date_edit_set_time_ts (GNC_DATE_EDIT (ddc->date), due_date); } diff --git a/libgnucash/engine/gncBillTerm.c b/libgnucash/engine/gncBillTerm.c index 3b6eeb0004..525d8f1295 100644 --- a/libgnucash/engine/gncBillTerm.c +++ b/libgnucash/engine/gncBillTerm.c @@ -820,14 +820,14 @@ compute_time (const GncBillTerm *term, Timespec post_date, int days) return res; } -Timespec -gncBillTermComputeDueDate (const GncBillTerm *term, Timespec post_date) +time64 +gncBillTermComputeDueDate (const GncBillTerm *term, time64 post_date) { - Timespec res = post_date; - if (!term) return res; - - return compute_time (term, post_date, term->due_days); + Timespec pass = {post_date, 0}; + if (!term) return post_date; + return compute_time (term, pass, term->due_days).tv_sec; } + /* Package-Private functions */ static void _gncBillTermCreate (QofBook *book) diff --git a/libgnucash/engine/gncBillTerm.h b/libgnucash/engine/gncBillTerm.h index 88a62ff7b5..d2ccded1ac 100644 --- a/libgnucash/engine/gncBillTerm.h +++ b/libgnucash/engine/gncBillTerm.h @@ -164,7 +164,7 @@ gboolean gncBillTermIsFamily (const GncBillTerm *a, const GncBillTerm *b); /* functions to compute dates from Bill Terms */ /* Compute the due date and discount dates from the post date */ -Timespec gncBillTermComputeDueDate (const GncBillTerm *term, Timespec post_date); +time64 gncBillTermComputeDueDate (const GncBillTerm *term, time64 post_date); /* deprecated */ #define gncBillTermGetGUID(x) qof_instance_get_guid (QOF_INSTANCE(x))