40 #include "gncOrderP.h"
45 #define _GNC_MOD_NAME GNC_ID_ORDER
49 #define TABLE_NAME "orders"
50 #define TABLE_VERSION 1
52 #define MAX_ID_LEN 2048
53 #define MAX_NOTES_LEN 2048
54 #define MAX_REFERENCE_LEN 2048
59 {
"id", CT_STRING, MAX_ID_LEN,
COL_NNUL,
"id" },
60 {
"notes", CT_STRING, MAX_NOTES_LEN,
COL_NNUL,
"notes" },
61 {
"reference", CT_STRING, MAX_REFERENCE_LEN,
COL_NNUL,
"reference" },
62 {
"active", CT_BOOLEAN, 0,
COL_NNUL,
"order" },
63 {
"date_opened", CT_TIMESPEC, 0,
COL_NNUL,
"date-opened" },
64 {
"date_closed", CT_TIMESPEC, 0,
COL_NNUL,
"date-closed" },
65 {
"owner", CT_OWNERREF, 0,
COL_NNUL, NULL, ORDER_OWNER },
75 g_return_val_if_fail( be != NULL, NULL );
76 g_return_val_if_fail( row != NULL, NULL );
79 pOrder = gncOrderLookup( be->
book, guid );
82 pOrder = gncOrderCreate( be->
book );
85 qof_instance_mark_clean( QOF_INSTANCE(pOrder) );
96 g_return_if_fail( be != NULL );
100 gnc_sql_statement_dispose( stmt );
101 if ( result != NULL )
106 row = gnc_sql_result_get_first_row( result );
107 while ( row != NULL )
109 GncOrder* pOrder = load_single_order( be, row );
110 if ( pOrder != NULL )
112 list = g_list_append( list, pOrder );
114 row = gnc_sql_result_get_next_row( result );
116 gnc_sql_result_dispose( result );
132 g_return_if_fail( be != NULL );
145 g_return_val_if_fail( inst != NULL, FALSE );
146 g_return_val_if_fail( GNC_IS_ORDER(inst), FALSE );
147 g_return_val_if_fail( be != NULL, FALSE );
154 order_should_be_saved(
GncOrder *order )
158 g_return_val_if_fail( order != NULL, FALSE );
161 id = gncOrderGetID( order );
162 if (
id == NULL || *
id ==
'\0' )
171 write_single_order(
QofInstance *term_p, gpointer data_p )
175 g_return_if_fail( term_p != NULL );
176 g_return_if_fail( GNC_IS_ORDER(term_p) );
177 g_return_if_fail( data_p != NULL );
179 if ( s->is_ok && order_should_be_saved( GNC_ORDER(term_p) ) )
181 s->is_ok = save_order( s->be, term_p );
190 g_return_val_if_fail( be != NULL, FALSE );
209 g_return_if_fail( be != NULL );
210 g_return_if_fail( row != NULL );
211 g_return_if_fail( pObject != NULL );
212 g_return_if_fail( table_row != NULL );
214 val = gnc_sql_row_get_value_at_col_name( row, table_row->
col_name );
215 if ( val != NULL && G_VALUE_HOLDS_STRING( val ) && g_value_get_string( val ) != NULL )
218 order = gncOrderLookup( be->
book, &guid );
223 qof_instance_increase_editlevel (pObject);
225 qof_instance_decrease_editlevel (pObject);
229 (*setter)( pObject, (
const gpointer)order );
234 PWARN(
"Order ref '%s' not found", g_value_get_string( val ) );
247 gnc_order_sql_initialize(
void )
251 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)
#define G_LOG_DOMAIN
Functions providing the SX List as a plugin page.
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 gnc_sql_add_objectref_guid_col_info_to_list(const GncSqlBackend *be, const GncSqlColumnTableEntry *table_row, GList **pList)
#define PWARN(format, args...)
const GncGUID * gnc_sql_load_guid(const GncSqlBackend *be, GncSqlRow *row)
load and save order data to SQL
load and save owner data to SQL
void gnc_sql_add_gvalue_objectref_guid_to_slist(const GncSqlBackend *be, QofIdTypeConst obj_name, const gpointer pObject, const GncSqlColumnTableEntry *table_row, GSList **pList)
void gnc_sql_slots_load_for_list(GncSqlBackend *be, GList *list)
void qof_object_foreach(QofIdTypeConst type_name, QofBook *book, QofInstanceForeachCB cb, gpointer user_data)
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
gboolean gnc_sql_commit_standard_item(GncSqlBackend *be, QofInstance *inst, const gchar *tableName, QofIdTypeConst obj_name, const GncSqlColumnTableEntry *col_table)
void(* QofSetterFunc)(gpointer, gpointer)
const gchar * QofLogModule