43 #include "gncEmployeeP.h"
47 #define _GNC_MOD_NAME GNC_ID_EMPLOYEE
51 #define MAX_USERNAME_LEN 2048
52 #define MAX_ID_LEN 2048
53 #define MAX_LANGUAGE_LEN 2048
54 #define MAX_ACL_LEN 2048
56 #define TABLE_NAME "employees"
57 #define TABLE_VERSION 2
62 {
"username", CT_STRING, MAX_USERNAME_LEN,
COL_NNUL,
"username" },
63 {
"id", CT_STRING, MAX_ID_LEN,
COL_NNUL,
"id" },
64 {
"language", CT_STRING, MAX_LANGUAGE_LEN,
COL_NNUL,
"language" },
65 {
"acl", CT_STRING, MAX_ACL_LEN,
COL_NNUL,
"acl" },
66 {
"active", CT_BOOLEAN, 0,
COL_NNUL,
"active" },
67 {
"currency", CT_COMMODITYREF, 0,
COL_NNUL,
"currency" },
68 {
"ccard_guid", CT_ACCOUNTREF, 0, 0,
"credit-card-account" },
69 {
"workday", CT_NUMERIC, 0,
COL_NNUL,
"workday" },
70 {
"rate", CT_NUMERIC, 0,
COL_NNUL,
"rate" },
71 {
"addr", CT_ADDRESS, 0, 0,
"address" },
81 g_return_val_if_fail( be != NULL, NULL );
82 g_return_val_if_fail( row != NULL, NULL );
85 pEmployee = gncEmployeeLookup( be->
book, guid );
86 if ( pEmployee == NULL )
88 pEmployee = gncEmployeeCreate( be->
book );
91 qof_instance_mark_clean( QOF_INSTANCE(pEmployee) );
102 g_return_if_fail( be != NULL );
106 gnc_sql_statement_dispose( stmt );
107 if ( result != NULL )
112 row = gnc_sql_result_get_first_row( result );
113 while ( row != NULL )
115 GncEmployee* pEmployee = load_single_employee( be, row );
116 if ( pEmployee != NULL )
118 list = g_list_append( list, pEmployee );
120 row = gnc_sql_result_get_next_row( result );
122 gnc_sql_result_dispose( result );
138 g_return_if_fail( be != NULL );
145 else if ( version == 1 )
151 PINFO(
"Employees table upgraded from version 1 to version %d\n", TABLE_VERSION);
163 gboolean is_ok = TRUE;
165 g_return_val_if_fail( inst != NULL, FALSE );
166 g_return_val_if_fail( GNC_IS_EMPLOYEE(inst), FALSE );
167 g_return_val_if_fail( be != NULL, FALSE );
169 emp = GNC_EMPLOYEE(inst);
171 is_infant = qof_instance_get_infant( inst );
184 if ( op != OP_DB_DELETE )
187 is_ok = gnc_sql_save_commodity( be, gncEmployeeGetCurrency( emp ) );
218 g_return_val_if_fail( employee != NULL, FALSE );
221 id = gncEmployeeGetID( employee );
222 if (
id == NULL || *
id ==
'\0' )
231 write_single_employee(
QofInstance *term_p, gpointer data_p )
235 g_return_if_fail( term_p != NULL );
236 g_return_if_fail( GNC_IS_EMPLOYEE(term_p) );
237 g_return_if_fail( data_p != NULL );
239 if ( s->is_ok && employee_should_be_saved( GNC_EMPLOYEE(term_p) ) )
241 s->is_ok = save_employee( s->be, term_p );
250 g_return_val_if_fail( be != NULL, FALSE );
261 gnc_employee_sql_initialize(
void )
265 GNC_SQL_BACKEND_VERSION,
269 create_employee_tables,
gboolean qof_object_register_backend(QofIdTypeConst type_name, const char *backend_name, gpointer be_data)
const GncGUID * qof_instance_get_guid(gconstpointer)
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...)
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
const GncGUID * gnc_sql_load_guid(const GncSqlBackend *be, GncSqlRow *row)
gboolean gnc_sql_set_table_version(GncSqlBackend *be, const gchar *table_name, gint version)
void gnc_sql_slots_load_for_list(GncSqlBackend *be, GList *list)
load and save employee data to SQL
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