/*----------------------------------------------------------------*/ 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; }
/* ================================================================= */ template<> void GncSqlColumnTableEntryImpl<CT_BUDGETREF>::load (const GncSqlBackend* sql_be, GncSqlRow& row, QofIdTypeConst obj_name, gpointer pObject) const noexcept { load_from_guid_ref(row, obj_name, pObject, [sql_be](GncGUID* g){ return gnc_budget_lookup (g, sql_be->book()); }); }
GncBudget * gnc_tree_model_budget_get_budget(GtkTreeModel *tm, GtkTreeIter *iter) { GncBudget *bgt; GValue gv = { 0 }; GncGUID *guid; gtk_tree_model_get_value(tm, iter, BUDGET_GUID_COLUMN, &gv); guid = (GncGUID *) g_value_get_pointer(&gv); g_value_unset(&gv); bgt = gnc_budget_lookup(guid, gnc_get_current_book()); return bgt; }