42 #if defined( S_SPLINT_S )
43 #include "splint-defs.h"
48 #define TABLE_NAME "lots"
49 #define TABLE_VERSION 2
51 static gpointer get_lot_account( gpointer pObject );
52 static void set_lot_account( gpointer pObject, gpointer pValue );
59 "account_guid", CT_ACCOUNTREF, 0, 0, NULL, NULL,
62 {
"is_closed", CT_BOOLEAN, 0,
COL_NNUL,
"is-closed" },
69 get_lot_account( gpointer pObject )
74 g_return_val_if_fail( pObject != NULL, NULL );
75 g_return_val_if_fail( GNC_IS_LOT(pObject), NULL );
77 lot = GNC_LOT(pObject);
83 set_lot_account( gpointer pObject, gpointer pValue )
88 g_return_if_fail( pObject != NULL && GNC_IS_LOT(pObject) );
89 g_return_if_fail( pValue == NULL || GNC_IS_ACCOUNT(pValue) );
91 lot = GNC_LOT(pObject);
92 pAccount = GNC_ACCOUNT(pValue);
93 if ( pAccount != NULL )
104 g_return_val_if_fail( be != NULL, NULL );
105 g_return_val_if_fail( row != NULL, NULL );
107 lot = gnc_lot_new( be->
book );
109 gnc_lot_begin_edit( lot );
111 gnc_lot_commit_edit( lot );
122 g_return_if_fail( be != NULL );
128 gnc_sql_statement_dispose( stmt );
129 if ( result != NULL )
131 GncSqlRow* row = gnc_sql_result_get_first_row( result );
134 while ( row != NULL )
136 load_single_lot( be, row );
137 row = gnc_sql_result_get_next_row( result );
139 gnc_sql_result_dispose( result );
141 sql = g_strdup_printf(
"SELECT DISTINCT guid FROM %s", TABLE_NAME );
154 g_return_if_fail( be != NULL );
162 else if ( version == 1 )
173 PINFO(
"Lots table upgraded from version 1 to version %d\n", TABLE_VERSION);
182 g_return_val_if_fail( be != NULL, FALSE );
183 g_return_val_if_fail( inst != NULL, FALSE );
184 g_return_val_if_fail( GNC_IS_LOT(inst), FALSE );
196 s->is_ok = commit_lot( s->be, inst );
205 g_return_val_if_fail( be != NULL, FALSE );
224 g_return_if_fail( be != NULL );
225 g_return_if_fail( row != NULL );
226 g_return_if_fail( pObject != NULL );
227 g_return_if_fail( table_row != NULL );
229 val = gnc_sql_row_get_value_at_col_name( row, table_row->
col_name );
230 if ( val != NULL && G_VALUE_HOLDS_STRING( val ) && g_value_get_string( val ) != NULL )
233 lot = gnc_lot_lookup( &guid, be->
book );
238 qof_instance_increase_editlevel (pObject);
240 qof_instance_decrease_editlevel (pObject);
244 g_return_if_fail( setter != NULL );
245 (*setter)( pObject, (
const gpointer)lot );
250 PWARN(
"Lot ref '%s' not found", g_value_get_string( val ) );
263 gnc_sql_init_lot_handler(
void )
267 GNC_SQL_BACKEND_VERSION,
gboolean qof_object_register_backend(QofIdTypeConst type_name, const char *backend_name, gpointer be_data)
gint gnc_sql_get_table_version(const GncSqlBackend *be, const gchar *table_name)
void gnc_sql_upgrade_table(GncSqlBackend *be, const gchar *table_name, const GncSqlColumnTableEntry *col_table)
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
#define PINFO(format, args...)
void gnc_sql_add_colname_to_list(const GncSqlColumnTableEntry *table_row, GList **pList)
load and save accounts data to SQL
GncSqlStatement * gnc_sql_create_select_statement(GncSqlBackend *be, const gchar *table_name)
gboolean string_to_guid(const gchar *string, GncGUID *guid)
gboolean gnc_sql_create_table(GncSqlBackend *be, const gchar *table_name, gint table_version, const GncSqlColumnTableEntry *col_table)
load and save data to SQL
void gnc_sql_register_col_type_handler(const gchar *colType, const GncSqlColumnTypeHandler *handler)
void xaccAccountInsertLot(Account *acc, GNCLot *lot)
void gnc_sql_add_objectref_guid_col_info_to_list(const GncSqlBackend *be, const GncSqlColumnTableEntry *table_row, GList **pList)
gpointer(* QofAccessFunc)(gpointer object, const QofParam *param)
void qof_collection_foreach(const QofCollection *, QofInstanceForeachCB, gpointer user_data)
#define PWARN(format, args...)
void gnc_sql_slots_load_for_sql_subquery(GncSqlBackend *be, const gchar *subquery, BookLookupFn lookup_fn)
Account handling public routines.
gboolean gnc_sql_set_table_version(GncSqlBackend *be, const gchar *table_name, gint version)
void gnc_sql_add_gvalue_objectref_guid_to_slist(const GncSqlBackend *be, QofIdTypeConst obj_name, const gpointer pObject, const GncSqlColumnTableEntry *table_row, GSList **pList)
load and save data to SQL
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)
const gchar * gobj_param_name
void(* QofInstanceForeachCB)(QofInstance *, gpointer user_data)
gboolean gnc_sql_commit_standard_item(GncSqlBackend *be, QofInstance *inst, const gchar *tableName, QofIdTypeConst obj_name, const GncSqlColumnTableEntry *col_table)
void(* QofSetterFunc)(gpointer, gpointer)
QofCollection * qof_book_get_collection(const QofBook *, QofIdType)
Account * gnc_lot_get_account(const GNCLot *lot)
const gchar * QofLogModule