static void gncJobFree (GncJob *job) { if (!job) return; qof_event_gen (&job->inst, QOF_EVENT_DESTROY, NULL); CACHE_REMOVE (job->id); CACHE_REMOVE (job->name); CACHE_REMOVE (job->desc); switch (gncOwnerGetType (&(job->owner))) { case GNC_OWNER_CUSTOMER: gncCustomerRemoveJob (gncOwnerGetCustomer(&job->owner), job); break; case GNC_OWNER_VENDOR: gncVendorRemoveJob (gncOwnerGetVendor(&job->owner), job); break; default: break; } /* qof_instance_release (&job->inst); */ g_object_unref (job); }
void gncJobSetOwner (GncJob *job, GncOwner *owner) { if (!job) return; if (!owner) return; if (gncOwnerEqual (owner, &(job->owner))) return; switch (gncOwnerGetType (owner)) { case GNC_OWNER_CUSTOMER: case GNC_OWNER_VENDOR: break; default: PERR("Unsupported Owner type: %d", gncOwnerGetType(owner)); return; } gncJobBeginEdit (job); switch (gncOwnerGetType (&(job->owner))) { case GNC_OWNER_CUSTOMER: gncCustomerRemoveJob (gncOwnerGetCustomer(&job->owner), job); break; case GNC_OWNER_VENDOR: gncVendorRemoveJob (gncOwnerGetVendor(&job->owner), job); break; default: break; } gncOwnerCopy (owner, &(job->owner)); switch (gncOwnerGetType (&(job->owner))) { case GNC_OWNER_CUSTOMER: gncCustomerAddJob (gncOwnerGetCustomer(&job->owner), job); break; case GNC_OWNER_VENDOR: gncVendorAddJob (gncOwnerGetVendor(&job->owner), job); break; default: break; } mark_job (job); gncJobCommitEdit (job); }
static void gnc_plugin_business_cmd_customer_find_customer (GtkAction *action, GncMainWindowActionData *mw) { GncPluginBusiness *plugin; GncPluginBusinessPrivate *priv; GncCustomer*customer; g_return_if_fail (mw != NULL); g_return_if_fail (GNC_IS_PLUGIN_BUSINESS (mw->data)); plugin = GNC_PLUGIN_BUSINESS (mw->data); priv = GNC_PLUGIN_BUSINESS_GET_PRIVATE (plugin); customer = gncOwnerGetCustomer (priv->last_customer); gnc_customer_search (GTK_WINDOW (mw->window), customer, gnc_get_current_book ()); }
static void gnc_plugin_page_owner_tree_cmd_new_invoice (GtkAction *action, GncPluginPageOwnerTree *page) { GncPluginPageOwnerTreePrivate *priv; GncOwner current_owner; ENTER("action %p, page %p", action, page); priv = GNC_PLUGIN_PAGE_OWNER_TREE_GET_PRIVATE(page); switch (priv->owner_type) { case GNC_OWNER_NONE : case GNC_OWNER_UNDEFINED : gncOwnerInitUndefined(¤t_owner, NULL); break; case GNC_OWNER_CUSTOMER : { gncOwnerInitCustomer(¤t_owner, gncOwnerGetCustomer(gnc_plugin_page_owner_tree_get_current_owner (page)) ); break; } case GNC_OWNER_JOB : { gncOwnerInitJob(¤t_owner, gncOwnerGetJob(gnc_plugin_page_owner_tree_get_current_owner (page)) ); break; } case GNC_OWNER_VENDOR : { gncOwnerInitVendor(¤t_owner, gncOwnerGetVendor(gnc_plugin_page_owner_tree_get_current_owner (page)) ); break; } case GNC_OWNER_EMPLOYEE : { gncOwnerInitEmployee(¤t_owner, gncOwnerGetEmployee(gnc_plugin_page_owner_tree_get_current_owner (page)) ); break; } } if (gncOwnerGetType(¤t_owner) != GNC_OWNER_UNDEFINED) gnc_ui_invoice_new (¤t_owner, gnc_get_current_book()); LEAVE(" "); }
static void add_gvalue_owner_to_slist( const GncSqlBackend* be, QofIdTypeConst obj_name, const gpointer pObject, const GncSqlColumnTableEntry* table_row, GSList** pList ) { GValue* subfield_value; GncOwner* owner; gchar* buf; const GncGUID* guid; gchar guid_buf[GUID_ENCODING_LENGTH+1]; GncOwnerType type; QofInstance* inst = NULL; OwnerGetterFunc getter; g_return_if_fail( be != NULL ); g_return_if_fail( obj_name != NULL ); g_return_if_fail( pObject != NULL ); g_return_if_fail( table_row != NULL ); getter = (OwnerGetterFunc)gnc_sql_get_getter( obj_name, table_row ); owner = (*getter)( pObject ); if ( owner != NULL ) { buf = g_strdup_printf( "%s_type", table_row->col_name ); subfield_value = g_new0( GValue, 1 ); g_value_init( subfield_value, G_TYPE_INT ); type = gncOwnerGetType( owner ); g_value_set_int( subfield_value, type ); (*pList) = g_slist_append( (*pList), subfield_value ); g_free( buf ); buf = g_strdup_printf( "%s_guid", table_row->col_name ); subfield_value = g_new0( GValue, 1 ); switch ( type ) { case GNC_OWNER_CUSTOMER: inst = QOF_INSTANCE(gncOwnerGetCustomer( owner )); break; case GNC_OWNER_JOB: inst = QOF_INSTANCE(gncOwnerGetJob( owner )); break; case GNC_OWNER_VENDOR: inst = QOF_INSTANCE(gncOwnerGetVendor( owner )); break; case GNC_OWNER_EMPLOYEE: inst = QOF_INSTANCE(gncOwnerGetEmployee( owner )); break; default: PWARN("Invalid owner type: %d\n", type ); } g_value_init( subfield_value, G_TYPE_STRING ); if ( inst != NULL ) { guid = qof_instance_get_guid( inst ); if ( guid != NULL ) { (void)guid_to_string_buff( guid, guid_buf ); g_value_take_string( subfield_value, g_strdup_printf( "%s", guid_buf ) ); } } (*pList) = g_slist_append( (*pList), subfield_value ); g_free( buf ); } else { subfield_value = g_new0( GValue, 1 ); g_value_init( subfield_value, G_TYPE_STRING ); g_value_set_string( subfield_value, "NULL" ); (*pList) = g_slist_append( (*pList), subfield_value ); subfield_value = g_new0( GValue, 1 ); g_value_init( subfield_value, G_TYPE_STRING ); g_value_set_string( subfield_value, "NULL" ); (*pList) = g_slist_append( (*pList), subfield_value ); } }
static void gnc_tree_model_owner_get_value (GtkTreeModel *tree_model, GtkTreeIter *iter, int column, GValue *value) { GncTreeModelOwner *model = GNC_TREE_MODEL_OWNER (tree_model); GncOwner *owner; gboolean negative; /* used to set "deficit style" also known as red numbers */ gchar *string = NULL; g_return_if_fail (GNC_IS_TREE_MODEL_OWNER (model)); g_return_if_fail (iter != NULL); g_return_if_fail (iter->user_data != NULL); g_return_if_fail (iter->stamp == model->stamp); ENTER("model %p, iter %s, col %d", tree_model, iter_to_string(iter), column); owner = (GncOwner *) iter->user_data; switch (column) { case GNC_TREE_MODEL_OWNER_COL_NAME: g_value_init (value, G_TYPE_STRING); g_value_set_string (value, gncOwnerGetName (owner)); break; case GNC_TREE_MODEL_OWNER_COL_TYPE: g_value_init (value, G_TYPE_STRING); g_value_set_string (value, gncOwnerTypeToQofIdType (gncOwnerGetType (owner))); break; case GNC_TREE_MODEL_OWNER_COL_ID: g_value_init (value, G_TYPE_STRING); g_value_set_string (value, gncOwnerGetID (owner)); break; case GNC_TREE_MODEL_OWNER_COL_CURRENCY: g_value_init (value, G_TYPE_STRING); g_value_set_string (value, gnc_commodity_get_fullname(gncOwnerGetCurrency (owner))); break; case GNC_TREE_MODEL_OWNER_COL_ADDRESS_NAME: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetName (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_ADDRESS_1: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetAddr1 (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_ADDRESS_2: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetAddr2 (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_ADDRESS_3: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetAddr3 (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_ADDRESS_4: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetAddr4 (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_PHONE: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetPhone (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_FAX: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetFax (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_EMAIL: g_value_init (value, G_TYPE_STRING); string = g_strdup (gncAddressGetEmail (gncOwnerGetAddr (owner))); if (string) g_value_take_string (value, string); else g_value_set_static_string (value, ""); break; case GNC_TREE_MODEL_OWNER_COL_BALANCE: g_value_init (value, G_TYPE_STRING); string = gnc_ui_owner_get_print_balance(owner, &negative); g_value_take_string (value, string); break; case GNC_TREE_MODEL_OWNER_COL_BALANCE_REPORT: g_value_init (value, G_TYPE_STRING); string = gnc_ui_owner_get_print_report_balance(owner, &negative); g_value_take_string (value, string); break; case GNC_TREE_MODEL_OWNER_COL_COLOR_BALANCE: g_value_init (value, G_TYPE_STRING); string = gnc_ui_owner_get_print_balance(owner, &negative); gnc_tree_model_owner_set_color(model, negative, value); g_free(string); break; case GNC_TREE_MODEL_OWNER_COL_NOTES: g_value_init (value, G_TYPE_STRING); switch (gncOwnerGetType (owner)) { case GNC_OWNER_NONE: case GNC_OWNER_UNDEFINED: case GNC_OWNER_EMPLOYEE: case GNC_OWNER_JOB: default: g_value_set_static_string (value, ""); break; case GNC_OWNER_VENDOR: g_value_set_string (value, gncVendorGetNotes (gncOwnerGetVendor (owner))); break; case GNC_OWNER_CUSTOMER: g_value_set_string (value, gncCustomerGetNotes (gncOwnerGetCustomer (owner))); break; } break; case GNC_TREE_MODEL_OWNER_COL_ACTIVE: g_value_init (value, G_TYPE_BOOLEAN); g_value_set_boolean (value, gncOwnerGetActive (owner)); break; default: g_assert_not_reached (); } LEAVE(" "); }