static void qofBillTermSetType (GncBillTerm *term, const char *type_label) { GncBillTermType type; type = GncBillTermTypefromString(type_label); gncBillTermSetType(term, type); }
static gboolean billterm_prox_data_handler (xmlNodePtr node, gpointer billterm_pdata) { struct billterm_pdata *pdata = billterm_pdata; g_return_val_if_fail (node, FALSE); g_return_val_if_fail (gncBillTermGetType (pdata->term) == 0, FALSE); gncBillTermSetType (pdata->term, GNC_TERM_TYPE_PROXIMO); return dom_tree_to_prox_data (node, pdata); }
static gboolean billterm_days_data_handler (xmlNodePtr node, gpointer billterm_pdata) { struct billterm_pdata* pdata = static_cast<decltype (pdata)> (billterm_pdata); g_return_val_if_fail (node, FALSE); g_return_val_if_fail (gncBillTermGetType (pdata->term) == 0, FALSE); gncBillTermSetType (pdata->term, GNC_TERM_TYPE_DAYS); return dom_tree_to_days_data (node, pdata); }
/* build a list of bill terms that are grandchildren or bogus (empty entry list). */ static void billterm_scrub_cb (QofInstance *term_p, gpointer list_p) { GncBillTerm *term = GNC_BILLTERM(term_p); GList **list = list_p; if (billterm_is_grandchild(term)) { *list = g_list_prepend(*list, term); } else if (!gncBillTermGetType(term)) { GncBillTerm *t = gncBillTermGetParent(term); if (t) { /* Fix up the broken "copy" function */ gchar guidstr[GUID_ENCODING_LENGTH+1]; guid_to_string_buff(qof_instance_get_guid(QOF_INSTANCE(term)),guidstr); PWARN("Fixing broken child billterm: %s", guidstr); gncBillTermBeginEdit(term); gncBillTermSetType(term, gncBillTermGetType(t)); gncBillTermSetDueDays (term, gncBillTermGetDueDays(t)); gncBillTermSetDiscountDays (term, gncBillTermGetDiscountDays(t)); gncBillTermSetDiscount (term, gncBillTermGetDiscount(t)); gncBillTermSetCutoff (term, gncBillTermGetCutoff(t)); gncBillTermCommitEdit(term); } else { /* No parent? Must be a standalone */ *list = g_list_prepend(*list, term); } } }