mirror of
https://github.com/Gnucash/gnucash.git
synced 2025-02-25 18:55:30 -06:00
Transaction members Timespec->time64
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
/***********************************************************************/
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user