/*----------------------------------------------------------------*/ static GncBudget* load_single_budget (GncSqlBackend* sql_be, GncSqlRow& row) { const GncGUID* guid; GncBudget* pBudget = NULL; Recurrence* r; g_return_val_if_fail (sql_be != NULL, NULL); guid = gnc_sql_load_guid (sql_be, row); if (guid != NULL) { pBudget = gnc_budget_lookup (guid, sql_be->book()); } if (pBudget == NULL) { pBudget = gnc_budget_new (sql_be->book()); } gnc_budget_begin_edit (pBudget); gnc_sql_load_object (sql_be, row, GNC_ID_BUDGET, pBudget, col_table); load_budget_amounts (sql_be, pBudget); r = gnc_sql_recurrence_load (sql_be, gnc_budget_get_guid (pBudget)); if (r != NULL) { gnc_budget_set_recurrence (pBudget, r); g_free (r); } gnc_budget_commit_edit (pBudget); return pBudget; }
static gboolean budget_recurrence_handler (xmlNodePtr node, gpointer bgt) { Recurrence* r; if ((r = dom_tree_to_recurrence (node)) == NULL) return FALSE; gnc_budget_set_recurrence (GNC_BUDGET (bgt), r); g_free (r); return TRUE; }