Budgets


Files

file  gnc-budget.h
 GnuCash Budgets.
file  gnc-plugin-page-budget.h
file  gnc-tree-model-budget.h
 provides some utilities for working with the list of budgets in a book.

Data Structures

struct  GncPluginPageBudget
struct  GncPluginPageBudgetClass

Defines

#define GNC_TYPE_BUDGET   (gnc_budget_get_type ())
#define GNC_BUDGET(o)   (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_BUDGET, GncBudget))
#define GNC_BUDGET_CLASS(k)   (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_BUDGET, GncBudgetClass))
#define GNC_IS_BUDGET(o)   (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_BUDGET))
#define GNC_IS_BUDGET_CLASS(k)   (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_BUDGET))
#define GNC_BUDGET_GET_CLASS(o)   (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_BUDGET, GncBudgetClass))
#define GNC_BUDGET_MAX_NUM_PERIODS_DIGITS   3
#define gnc_budget_return_guid(X)   (X ? *(qof_entity_get_guid(QOF_INSTANCE(X))) : *(guid_null()))
#define gnc_budget_lookup_direct(g, b)   gnc_budget_lookup(&(g),(b))
#define GNC_TYPE_PLUGIN_PAGE_BUDGET   (gnc_plugin_page_budget_get_type ())
#define GNC_PLUGIN_PAGE_BUDGET(obj)   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNC_TYPE_PLUGIN_PAGE_BUDGET, GncPluginPageBudget))
#define GNC_PLUGIN_PAGE_BUDGET_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST ((klass), GNC_TYPE_PLUGIN_PAGE_BUDGET, GncPluginPageBudgetClass))
#define GNC_IS_PLUGIN_PAGE_BUDGET(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNC_TYPE_PLUGIN_PAGE_BUDGET))
#define GNC_IS_PLUGIN_PAGE_BUDGET_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GNC_TYPE_PLUGIN_PAGE_BUDGET))
#define GNC_PLUGIN_PAGE_BUDGET_GET_CLASS(obj)   (G_TYPE_INSTANCE_GET_CLASS ((obj), GNC_TYPE_PLUGIN_PAGE_BUDGET, GncPluginPageBudgetClass))
#define GNC_PLUGIN_PAGE_BUDGET_NAME   "GncPluginPageBudget"

Typedefs

typedef gnc_budget_private GncBudget
typedef _GncBudgetClass GncBudgetClass

Enumerations

enum  { BUDGET_GUID_COLUMN, BUDGET_NAME_COLUMN, BUDGET_DESCRIPTION_COLUMN, BUDGET_LIST_NUM_COLS }

Functions

GType gnc_budget_get_type (void)
gboolean gnc_budget_register (void)
GncBudgetgnc_budget_new (QofBook *book)
void gnc_budget_destroy (GncBudget *budget)
void gnc_budget_begin_edit (GncBudget *bgt)
void gnc_budget_commit_edit (GncBudget *bgt)
const GUIDgnc_budget_get_guid (GncBudget *budget)
void gnc_budget_set_name (GncBudget *budget, const gchar *name)
const gchar * gnc_budget_get_name (GncBudget *budget)
void gnc_budget_set_description (GncBudget *budget, const gchar *description)
const gchar * gnc_budget_get_description (GncBudget *budget)
void gnc_budget_set_num_periods (GncBudget *budget, guint num_periods)
guint gnc_budget_get_num_periods (GncBudget *budget)
void gnc_budget_set_recurrence (GncBudget *budget, const Recurrence *r)
const Recurrencegnc_budget_get_recurrence (GncBudget *budget)
Timespec gnc_budget_get_period_start_date (GncBudget *budget, guint period_num)
void gnc_budget_set_account_period_value (GncBudget *budget, Account *account, guint period_num, gnc_numeric val)
void gnc_budget_unset_account_period_value (GncBudget *budget, Account *account, guint period_num)
gboolean gnc_budget_is_account_period_value_set (GncBudget *budget, Account *account, guint period_num)
gnc_numeric gnc_budget_get_account_period_value (GncBudget *budget, Account *account, guint period_num)
gnc_numeric gnc_budget_get_account_period_actual_value (GncBudget *budget, Account *account, guint period_num)
QofBookgnc_budget_get_book (GncBudget *budget)
GncBudgetgnc_budget_get_default (QofBook *book)
GncBudgetgnc_budget_lookup (const GUID *guid, QofBook *book)
GType gnc_plugin_page_budget_get_type (void)
GncPluginPagegnc_plugin_page_budget_new (GncBudget *budget)
void gnc_budget_gui_delete_budget (GncBudget *budget)
GtkTreeModel * gnc_tree_model_budget_new (QofBook *book)
void gnc_tree_view_budget_set_model (GtkTreeView *tv, GtkTreeModel *tm)
GncBudgetgnc_tree_model_budget_get_budget (GtkTreeModel *tm, GtkTreeIter *iter)
gboolean gnc_tree_model_budget_get_iter_for_budget (GtkTreeModel *tm, GtkTreeIter *iter, GncBudget *bgt)


Typedef Documentation

typedef struct gnc_budget_private GncBudget

The budget data.

Definition at line 70 of file gnc-budget.h.


Enumeration Type Documentation

anonymous enum

Todo:
This file is poorly named, since it covers both model and view.
Enumerator:
BUDGET_GUID_COLUMN 
BUDGET_NAME_COLUMN 
BUDGET_DESCRIPTION_COLUMN 
BUDGET_LIST_NUM_COLS 

Definition at line 38 of file gnc-tree-model-budget.h.


Function Documentation

void gnc_budget_destroy ( GncBudget budget  ) 

Deletes the given budget object.

Definition at line 144 of file gnc-budget.c.

00145 {
00146     g_return_if_fail(GNC_IS_BUDGET(budget));
00147     gnc_budget_begin_edit(budget);
00148     qof_instance_set_dirty(&budget->inst);
00149     qof_instance_set_destroying(budget, TRUE);
00150     gnc_budget_commit_edit(budget);
00151 }

QofBook* gnc_budget_get_book ( GncBudget budget  ) 

Get the book that this budget is associated with.

Definition at line 388 of file gnc-budget.c.

00389 {
00390     g_return_val_if_fail(GNC_IS_BUDGET(budget), NULL);
00391     return qof_instance_get_book(&budget->inst);
00392 }

Timespec gnc_budget_get_period_start_date ( GncBudget budget,
guint  period_num 
)

Set/Get the starting date of the Budget

Definition at line 369 of file gnc-budget.c.

00370 {
00371     Timespec ts;
00372     timespecFromTime_t(
00373         &ts,  recurrenceGetPeriodTime(&budget->recurrence, period_num, FALSE));
00374     return ts;
00375 }

GncBudget* gnc_budget_new ( QofBook book  ) 

Creates and initializes a Budget.

Definition at line 117 of file gnc-budget.c.

00118 {
00119     GncBudget* budget;
00120     GDate date;
00121     g_return_val_if_fail(book, NULL);
00122 
00123     ENTER(" ");
00124     budget = g_object_new(GNC_TYPE_BUDGET, NULL);
00125     qof_instance_init_data (&budget->inst, GNC_ID_BUDGET, book);
00126 
00127     g_date_set_time_t(&date, time(NULL));
00128     g_date_subtract_days(&date, g_date_get_day(&date)-1);
00129     recurrenceSet(&budget->recurrence, 1, PERIOD_MONTH, &date);
00130 
00131         gnc_budget_begin_edit(budget);
00132     gnc_budget_set_name(budget, _("Unnamed Budget"));
00133     gnc_budget_set_description(budget, "");
00134     gnc_budget_set_num_periods(budget, 12);
00135         gnc_budget_commit_edit(budget);
00136 
00137     qof_event_gen( &budget->inst, QOF_EVENT_CREATE , NULL);
00138 
00139     LEAVE(" ");
00140     return budget;
00141 }

void gnc_budget_set_description ( GncBudget budget,
const gchar *  description 
)

Set/Get the description of the Budget

Definition at line 174 of file gnc-budget.c.

00175 {
00176     g_return_if_fail(GNC_IS_BUDGET(budget));
00177     g_return_if_fail(description);
00178 
00179     gnc_budget_begin_edit(budget);
00180     CACHE_REPLACE(budget->description, description);
00181     qof_instance_set_dirty(&budget->inst);
00182     gnc_budget_commit_edit(budget);
00183 
00184     qof_event_gen( &budget->inst, QOF_EVENT_MODIFY, NULL);
00185 }

void gnc_budget_set_name ( GncBudget budget,
const gchar *  name 
)

Set/Get the name of the Budget

Definition at line 154 of file gnc-budget.c.

00155 {
00156     g_return_if_fail(GNC_IS_BUDGET(budget) && name);
00157 
00158     gnc_budget_begin_edit(budget);
00159     CACHE_REPLACE(budget->name, name);
00160     qof_instance_set_dirty(&budget->inst);
00161     gnc_budget_commit_edit(budget);
00162 
00163     qof_event_gen( &budget->inst, QOF_EVENT_MODIFY, NULL);
00164 }

void gnc_budget_set_num_periods ( GncBudget budget,
guint  num_periods 
)

Set/Get the number of periods in the Budget

Definition at line 222 of file gnc-budget.c.

00223 {
00224     g_return_if_fail(GNC_IS_BUDGET(budget));
00225 
00226     gnc_budget_begin_edit(budget);
00227     budget->num_periods = num_periods;
00228     qof_instance_set_dirty(&budget->inst);
00229     gnc_budget_commit_edit(budget);
00230 
00231     qof_event_gen( &budget->inst, QOF_EVENT_MODIFY, NULL);
00232 }

GncPluginPage* gnc_plugin_page_budget_new ( GncBudget budget  ) 

Create a new "budget" plugin page.

Returns:
The newly created plugin page.

Definition at line 226 of file gnc-plugin-page-budget.c.

00227 {
00228     GncPluginPageBudget *plugin_page;
00229     GncPluginPageBudgetPrivate *priv;
00230 
00231     g_return_val_if_fail(GNC_IS_BUDGET(budget), NULL);
00232     ENTER(" ");
00233     plugin_page = g_object_new(GNC_TYPE_PLUGIN_PAGE_BUDGET, NULL);
00234 
00235     priv = GNC_PLUGIN_PAGE_BUDGET_GET_PRIVATE(plugin_page);
00236     priv->budget = budget;
00237     priv->key = *gnc_budget_get_guid(budget);
00238     LEAVE("new budget page %p", plugin_page);
00239     return GNC_PLUGIN_PAGE(plugin_page);
00240 }


Generated on Thu Jul 3 05:07:16 2008 for GnuCash by  doxygen 1.5.2