/** Does this object refer to a specific object */ static gboolean impl_refers_to_object(const QofInstance* inst, const QofInstance* ref) { GncTaxTable* tt; g_return_val_if_fail(inst != NULL, FALSE); g_return_val_if_fail(GNC_IS_TAXTABLE(inst), FALSE); tt = GNC_TAXTABLE(inst); if (GNC_IS_ACCOUNT(ref)) { GList* node; for (node = tt->entries; node != NULL; node = node->next) { GncTaxTableEntry* tte = node->data; if (tte->account == GNC_ACCOUNT(ref)) { return TRUE; } } } return FALSE; }
static void gnc_taxtable_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { GncTaxTable *tt; g_return_if_fail(GNC_IS_TAXTABLE(object)); tt = GNC_TAXTABLE(object); switch (prop_id) { case PROP_NAME: gncTaxTableSetName(tt, g_value_get_string(value)); break; case PROP_INVISIBLE: if (g_value_get_boolean(value)) { gncTaxTableMakeInvisible(tt); } break; case PROP_REFCOUNT: gncTaxTableSetRefcount(tt, g_value_get_uint64(value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; } }
/* build a list of tax tables that are grandchildren or bogus (empty entry list). */ static void taxtable_scrub_cb (QofInstance * table_p, gpointer list_p) { GncTaxTable *table = GNC_TAXTABLE(table_p); GList **list = list_p; if (taxtable_is_grandchild(table) || gncTaxTableGetEntries(table) == NULL) *list = g_list_prepend(*list, table); }
static gpointer get_child( gpointer pObject, const QofParam* param ) { GncTaxTable* tt = GNC_TAXTABLE(pObject); g_return_val_if_fail( pObject != NULL, NULL ); g_return_val_if_fail( GNC_IS_TAXTABLE(pObject), NULL ); return gncTaxTableGetChild( tt ); }
bool GncSqlTaxTableBackend::commit (GncSqlBackend* sql_be, QofInstance* inst) { GncTaxTable* tt; const GncGUID* guid; E_DB_OPERATION op; gboolean is_infant; gboolean is_ok; g_return_val_if_fail (inst != NULL, FALSE); g_return_val_if_fail (GNC_IS_TAXTABLE (inst), FALSE); g_return_val_if_fail (sql_be != NULL, FALSE); tt = GNC_TAXTABLE (inst); is_infant = qof_instance_get_infant (inst); if (qof_instance_get_destroying (inst)) { op = OP_DB_DELETE; } else if (sql_be->pristine() || is_infant) { op = OP_DB_INSERT; } else { op = OP_DB_UPDATE; } is_ok = sql_be->do_db_operation(op, TT_TABLE_NAME, GNC_ID_TAXTABLE, tt, tt_col_table); if (is_ok) { // Now, commit or delete any slots and tax table entries guid = qof_instance_get_guid (inst); if (!qof_instance_get_destroying (inst)) { is_ok = gnc_sql_slots_save (sql_be, guid, is_infant, inst); if (is_ok) { is_ok = save_tt_entries (sql_be, guid, gncTaxTableGetEntries (tt)); } } else { is_ok = gnc_sql_slots_delete (sql_be, guid); if (is_ok) { is_ok = delete_all_tt_entries (sql_be, guid); } } } return is_ok; }
/** Return displayable name */ static gchar* impl_get_display_name(const QofInstance* inst) { GncTaxTable* tt; g_return_val_if_fail(inst != NULL, FALSE); g_return_val_if_fail(GNC_IS_TAXTABLE(inst), FALSE); tt = GNC_TAXTABLE(inst); return g_strdup_printf("Tax table %s", tt->name); }
static void compare_single_taxtable( QofInstance* inst, gpointer user_data ) { CompareInfoStruct* info = (CompareInfoStruct*)user_data; GncTaxTable* tt_1 = GNC_TAXTABLE(inst); GncTaxTable* tt_2 = gncTaxTableLookup( info->book_2, qof_instance_get_guid(inst) ); if (!gncTaxTableEqual( tt_1, tt_2 )) { info->result = FALSE; } }
static void set_invisible( gpointer data, gboolean value ) { GncTaxTable* tt = GNC_TAXTABLE(data); g_return_if_fail( data != NULL ); g_return_if_fail( GNC_IS_TAXTABLE(data) ); if ( value ) { gncTaxTableMakeInvisible( tt ); } }
/** Does this object refer to a specific object */ static gboolean impl_refers_to_object(const QofInstance* inst, const QofInstance* ref) { GncCustomer* cust; g_return_val_if_fail(inst != NULL, FALSE); g_return_val_if_fail(GNC_IS_CUSTOMER(inst), FALSE); cust = GNC_CUSTOMER(inst); if (GNC_IS_BILLTERM(ref)) { return (cust->terms == GNC_BILLTERM(ref)); } else if (GNC_IS_TAXTABLE(ref)) { return (cust->taxtable == GNC_TAXTABLE(ref)); } return FALSE; }
/** Does this object refer to a specific object */ static gboolean impl_refers_to_object(const QofInstance* inst, const QofInstance* ref) { GncEntry* entry; g_return_val_if_fail(inst != NULL, FALSE); g_return_val_if_fail(GNC_IS_ENTRY(inst), FALSE); entry = GNC_ENTRY(inst); if (GNC_IS_ACCOUNT(ref)) { Account* acc = GNC_ACCOUNT(ref); return (entry->i_account == acc || entry->b_account == acc); } else if (GNC_IS_TAXTABLE(ref)) { GncTaxTable* tt = GNC_TAXTABLE(ref); return (entry->i_tax_table == tt || entry->b_tax_table == tt); } return FALSE; }
static void tt_set_parent( gpointer data, gpointer value ) { GncTaxTable* tt; GncTaxTable* parent; QofBook* pBook; GncGUID* guid = (GncGUID*)value; g_return_if_fail( data != NULL ); g_return_if_fail( GNC_IS_TAXTABLE(data) ); tt = GNC_TAXTABLE(data); pBook = qof_instance_get_book( QOF_INSTANCE(tt) ); if ( guid != NULL ) { parent = gncTaxTableLookup( pBook, guid ); if ( parent != NULL ) { gncTaxTableSetParent( tt, parent ); gncTaxTableSetChild( parent, tt ); } } }
static /*@ null @*//*@ dependent @*/ gpointer bt_get_parent( gpointer pObject ) { const GncTaxTable* tt; const GncTaxTable* pParent; const GncGUID* parent_guid; g_return_val_if_fail( pObject != NULL, NULL ); g_return_val_if_fail( GNC_IS_TAXTABLE(pObject), NULL ); tt = GNC_TAXTABLE(pObject); pParent = gncTaxTableGetParent( tt ); if ( pParent == NULL ) { parent_guid = NULL; } else { parent_guid = qof_instance_get_guid( QOF_INSTANCE(pParent) ); } return (gpointer)parent_guid; }