44 #include "gncBillTermP.h"
45 #include "gncVendorP.h"
46 #include "gncTaxTableP.h"
52 #define _GNC_MOD_NAME GNC_ID_VENDOR
56 #define MAX_NAME_LEN 2048
57 #define MAX_ID_LEN 2048
58 #define MAX_NOTES_LEN 2048
59 #define MAX_TAX_INC_LEN 2048
61 #define TABLE_NAME "vendors"
62 #define TABLE_VERSION 1
67 {
"name", CT_STRING, MAX_NAME_LEN,
COL_NNUL,
"name" },
68 {
"id", CT_STRING, MAX_ID_LEN,
COL_NNUL,
"id" },
69 {
"notes", CT_STRING, MAX_NOTES_LEN,
COL_NNUL,
"notes" },
70 {
"currency", CT_COMMODITYREF, 0,
COL_NNUL,
"currency" },
71 {
"active", CT_BOOLEAN, 0,
COL_NNUL,
"active" },
72 {
"tax_override", CT_BOOLEAN, 0,
COL_NNUL,
"tax-table-override" },
73 {
"addr", CT_ADDRESS, 0, 0,
"address" },
74 {
"terms", CT_BILLTERMREF, 0, 0,
"terms" },
75 {
"tax_inc", CT_STRING, MAX_TAX_INC_LEN, 0,
"tax-included-string" },
76 {
"tax_table", CT_TAXTABLEREF, 0, 0,
"tax-table" },
86 g_return_val_if_fail( be != NULL, NULL );
87 g_return_val_if_fail( row != NULL, NULL );
90 pVendor = gncVendorLookup( be->
book, guid );
91 if ( pVendor == NULL )
93 pVendor = gncVendorCreate( be->
book );
96 qof_instance_mark_clean( QOF_INSTANCE(pVendor) );
107 g_return_if_fail( be != NULL );
111 gnc_sql_statement_dispose( stmt );
112 if ( result != NULL )
117 row = gnc_sql_result_get_first_row( result );
118 while ( row != NULL )
120 GncVendor* pVendor = load_single_vendor( be, row );
121 if ( pVendor != NULL )
123 list = g_list_append( list, pVendor );
125 row = gnc_sql_result_get_next_row( result );
127 gnc_sql_result_dispose( result );
143 g_return_if_fail( be != NULL );
160 gboolean is_ok = TRUE;
162 g_return_val_if_fail( inst != NULL, FALSE );
163 g_return_val_if_fail( GNC_IS_VENDOR(inst), FALSE );
164 g_return_val_if_fail( be != NULL, FALSE );
166 v = GNC_VENDOR(inst);
168 is_infant = qof_instance_get_infant( inst );
181 if ( op != OP_DB_DELETE )
184 is_ok = gnc_sql_save_commodity( be, gncVendorGetCurrency( v ) );
210 vendor_should_be_saved(
GncVendor *vendor )
214 g_return_val_if_fail( vendor != NULL, FALSE );
217 id = gncVendorGetID( vendor );
218 if (
id == NULL || *
id ==
'\0' )
227 write_single_vendor(
QofInstance *term_p, gpointer data_p )
231 g_return_if_fail( term_p != NULL );
232 g_return_if_fail( GNC_IS_VENDOR(term_p) );
233 g_return_if_fail( data_p != NULL );
235 if ( s->is_ok && vendor_should_be_saved( GNC_VENDOR(term_p) ) )
237 s->is_ok = save_vendor( s->be, term_p );
246 g_return_val_if_fail( be != NULL, FALSE );
257 gnc_vendor_sql_initialize(
void )
261 GNC_SQL_BACKEND_VERSION,
265 create_vendor_tables,
gboolean qof_object_register_backend(QofIdTypeConst type_name, const char *backend_name, gpointer be_data)
load and save vendor data to SQL
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 data to SQL
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
load and save accounts data to SQL
const GncGUID * gnc_sql_load_guid(const GncSqlBackend *be, GncSqlRow *row)
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)
gboolean gnc_sql_slots_delete(GncSqlBackend *be, const GncGUID *guid)
load and save address data to SQL
gboolean gnc_sql_do_db_operation(GncSqlBackend *be, E_DB_OPERATION op, const gchar *table_name, QofIdTypeConst obj_name, gpointer pObject, const GncSqlColumnTableEntry *table)
Commodity handling public routines.
gboolean gnc_sql_slots_save(GncSqlBackend *be, const GncGUID *guid, gboolean is_infant, KvpFrame *pFrame)
const gchar * QofLogModule
load and save tax table data to SQL