37 #include "gnc-schedxaction-sql.h"
42 #include "Recurrence.h"
48 #include "splint-defs.h"
51 #define SCHEDXACTION_TABLE "schedxactions"
52 #define TABLE_VERSION 1
56 #define SX_MAX_NAME_LEN 2048
62 {
"name", CT_STRING, SX_MAX_NAME_LEN, 0,
"name" },
63 {
"enabled", CT_BOOLEAN, 0,
COL_NNUL,
"enabled" },
64 {
"start_date", CT_GDATE, 0, 0,
"start-date" },
65 {
"end_date", CT_GDATE, 0, 0,
"end-date" },
66 {
"last_occur", CT_GDATE, 0, 0,
"last-occurance-date" },
67 {
"num_occur", CT_INT, 0,
COL_NNUL,
"num-occurance" },
68 {
"rem_occur", CT_INT, 0,
COL_NNUL,
"rem-occurance" },
69 {
"auto_create", CT_BOOLEAN, 0,
COL_NNUL,
"auto-create" },
70 {
"auto_notify", CT_BOOLEAN, 0,
COL_NNUL,
"auto-create-notify" },
71 {
"adv_creation", CT_INT, 0,
COL_NNUL,
"advance-creation-days" },
72 {
"adv_notify", CT_INT, 0,
COL_NNUL,
"advance-reminder-days" },
73 {
"instance_count", CT_INT, 0,
COL_NNUL,
"instance-count" },
74 {
"template_act_guid", CT_ACCOUNTREF, 0,
COL_NNUL,
"template-account" },
88 g_return_val_if_fail( be != NULL, NULL );
89 g_return_val_if_fail( row != NULL, NULL );
92 g_assert( guid != NULL );
95 gnc_sx_begin_edit( pSx );
97 schedule = gnc_sql_recurrence_load_list( be, guid );
99 gnc_sx_commit_edit( pSx );
102 g_object_get(pSx,
"start-date", &start_date, NULL);
113 g_return_if_fail( be != NULL );
116 if ( stmt == NULL )
return;
118 gnc_sql_statement_dispose( stmt );
119 if ( result != NULL )
124 sxes = gnc_book_get_schedxactions( be->
book );
126 row = gnc_sql_result_get_first_row( result );
127 while ( row != NULL )
131 sx = load_single_sx( be, row );
134 gnc_sxes_add_sx( sxes, sx );
135 list = g_list_prepend( list, sx );
137 row = gnc_sql_result_get_next_row( result );
139 gnc_sql_result_dispose( result );
155 g_return_if_fail( be != NULL );
174 g_return_val_if_fail( be != NULL, FALSE );
175 g_return_val_if_fail( inst != NULL, FALSE );
176 g_return_val_if_fail( GNC_IS_SX(inst), FALSE );
180 is_infant = qof_instance_get_infant( inst );
195 if ( op == OP_DB_INSERT || op == OP_DB_UPDATE )
201 gnc_sql_recurrence_delete( be, guid );
207 if ( op == OP_DB_INSERT || op == OP_DB_UPDATE )
222 gnc_sql_init_schedxaction_handler(
void )
226 GNC_SQL_BACKEND_VERSION,
228 gnc_sql_save_schedxaction,
gboolean qof_object_register_backend(QofIdTypeConst type_name, const char *backend_name, gpointer be_data)
void gnc_sx_set_schedule(SchedXaction *sx, GList *schedule)
GList * gnc_sx_get_schedule(const SchedXaction *sx)
const GncGUID * qof_instance_get_guid(gconstpointer)
gint gnc_sql_get_table_version(const GncSqlBackend *be, const gchar *table_name)
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
load and save accounts data to SQL
GncSqlStatement * gnc_sql_create_select_statement(GncSqlBackend *be, const gchar *table_name)
gboolean qof_instance_get_destroying(gconstpointer ptr)
gboolean gnc_sql_create_table(GncSqlBackend *be, const gchar *table_name, gint table_version, const GncSqlColumnTableEntry *col_table)
load and save data to SQL
const GncGUID * gnc_sql_load_guid(const GncSqlBackend *be, GncSqlRow *row)
load and save accounts data to SQL
void gnc_sql_slots_load_for_list(GncSqlBackend *be, GList *list)
Anchor Scheduled Transaction info in a book. See src/doc/books.txt for design overview.
load and save data to SQL
void gnc_sql_transaction_load_tx_for_account(GncSqlBackend *be, Account *account)
GncSqlResult * gnc_sql_execute_select_statement(GncSqlBackend *be, GncSqlStatement *stmt)
void gnc_sql_load_object(const GncSqlBackend *be, GncSqlRow *row, QofIdTypeConst obj_name, gpointer pObject, const GncSqlColumnTableEntry *table)
gboolean gnc_sql_slots_delete(GncSqlBackend *be, const GncGUID *guid)
gboolean gnc_sql_do_db_operation(GncSqlBackend *be, E_DB_OPERATION op, const gchar *table_name, QofIdTypeConst obj_name, gpointer pObject, const GncSqlColumnTableEntry *table)
SchedXaction * xaccSchedXactionMalloc(QofBook *book)
Scheduled Transactions public handling routines.
gboolean gnc_sql_slots_save(GncSqlBackend *be, const GncGUID *guid, gboolean is_infant, KvpFrame *pFrame)
const gchar * QofLogModule