Transaction members Timespec->time64

This commit is contained in:
lmat
2017-12-31 07:37:02 -05:00
committed by Christopher Lam
parent 9a86dd222b
commit 1f050fd1e5
30 changed files with 262 additions and 369 deletions

View File

@@ -56,6 +56,13 @@ add_gnc_num (xmlNodePtr node, const gchar* tag, gnc_numeric num)
xmlAddChild (node, gnc_numeric_to_dom_tree (tag, &num));
}
static void
add_time64 (xmlNodePtr node, const gchar * tag, time64 time, gboolean always)
{
if (always || time)
xmlAddChild (node, time64_to_dom_tree (tag, time));
}
static void
add_timespec (xmlNodePtr node, const gchar* tag, Timespec tms, gboolean always)
{
@@ -172,10 +179,10 @@ gnc_transaction_dom_tree_create (Transaction* trn)
}
g_free (str);
add_timespec (ret, "trn:date-posted", xaccTransRetDatePostedTS (trn), TRUE);
add_time64 (ret, "trn:date-posted", xaccTransRetDatePosted (trn), TRUE);
add_timespec (ret, "trn:date-entered",
xaccTransRetDateEnteredTS (trn), TRUE);
add_time64 (ret, "trn:date-entered",
xaccTransRetDateEntered (trn), TRUE);
str = g_strdup (xaccTransGetDescription (trn));
if (str)
@@ -426,6 +433,16 @@ set_tran_string (xmlNodePtr node, Transaction* trn,
return TRUE;
}
static gboolean
set_tran_time64 (xmlNodePtr node, Transaction * trn,
void (*func) (Transaction *, time64))
{
time64 time = dom_tree_to_time64 (node);
if (!dom_tree_valid_time64 (time, node->name)) return FALSE;
func (trn, time);
return TRUE;
}
static inline gboolean
set_tran_date (xmlNodePtr node, Transaction* trn,
void (*func) (Transaction* trn, const Timespec* tm))
@@ -481,7 +498,7 @@ trn_date_posted_handler (xmlNodePtr node, gpointer trans_pdata)
struct trans_pdata* pdata = static_cast<decltype (pdata)> (trans_pdata);
Transaction* trn = pdata->trans;
return set_tran_date (node, trn, xaccTransSetDatePostedTS);
return set_tran_time64 (node, trn, xaccTransSetDatePostedSecs);
}
static gboolean
@@ -490,7 +507,7 @@ trn_date_entered_handler (xmlNodePtr node, gpointer trans_pdata)
struct trans_pdata* pdata = static_cast<decltype (pdata)> (trans_pdata);
Transaction* trn = pdata->trans;
return set_tran_date (node, trn, xaccTransSetDateEnteredTS);
return set_tran_time64 (node, trn, xaccTransSetDateEnteredSecs);
}
static gboolean

View File

@@ -277,10 +277,9 @@ equals_node_val_vs_kvp_frame (xmlNodePtr node, const KvpFrame* frm)
}
gboolean
equals_node_val_vs_date (xmlNodePtr node, const Timespec tm)
equals_node_val_vs_date (xmlNodePtr node, time64 time)
{
time64 time = dom_tree_to_time64 (node);
return time == tm.tv_sec;
return time == dom_tree_to_time64 (node);
}
/***********************************************************************/

View File

@@ -57,7 +57,7 @@ gboolean equals_node_val_vs_guid (xmlNodePtr node, const GncGUID* id);
gboolean equals_node_val_vs_commodity (xmlNodePtr node,
const gnc_commodity* com, QofBook*);
gboolean equals_node_val_vs_kvp_frame (xmlNodePtr node, const KvpFrame* frm);
gboolean equals_node_val_vs_date (xmlNodePtr node, const Timespec tm);
gboolean equals_node_val_vs_date (xmlNodePtr node, time64);
gboolean equals_node_val_vs_int (xmlNodePtr node, gint64 val);
gboolean equals_node_val_vs_boolean (xmlNodePtr node, gboolean val);

View File

@@ -287,14 +287,14 @@ node_and_transaction_equal (xmlNodePtr node, Transaction* trn)
}
else if (g_strcmp0 ((char*)mark->name, "trn:date-posted") == 0)
{
if (!equals_node_val_vs_date (mark, xaccTransRetDatePostedTS (trn)))
if (!equals_node_val_vs_date (mark, xaccTransRetDatePosted (trn)))
{
return "posted dates differ";
}
}
else if (g_strcmp0 ((char*)mark->name, "trn:date-entered") == 0)
{
if (!equals_node_val_vs_date (mark, xaccTransRetDateEnteredTS (trn)))
if (!equals_node_val_vs_date (mark, xaccTransRetDateEntered (trn)))
{
return "entered dates differ";
}