|
GnuCash 2.3.0
|
Data Structures | |
| struct | GncAddress |
Files | |
| file | gncAddress.h |
an Address object | |
Defines | |
| #define | GNC_ADDRESS_MODULE_NAME "gncAddress" |
| #define | GNC_ID_ADDRESS GNC_ADDRESS_MODULE_NAME |
| #define | GNC_TYPE_ADDRESS (gnc_address_get_type ()) |
| #define | GNC_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_ADDRESS, GncAddress)) |
| #define | GNC_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_ADDRESS, GncAddressClass)) |
| #define | GNC_IS_ADDRESS(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_ADDRESS)) |
| #define | GNC_IS_ADDRESS_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_ADDRESS)) |
| #define | GNC_ADDRESS_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_ADDRESS, GncAddressClass)) |
| #define | ADDRESS_NAME "name" |
| #define | ADDRESS_ONE "number" |
| #define | ADDRESS_TWO "street" |
| #define | ADDRESS_THREE "locality" |
| #define | ADDRESS_FOUR "city" |
| #define | ADDRESS_PHONE "phone" |
| #define | ADDRESS_FAX "fax" |
| #define | ADDRESS_EMAIL "email" |
| #define | ADDRESS_OWNER "owner" |
Typedefs | |
| typedef struct _gncAddress | GncAddress |
| typedef struct _gncAddressClass | GncAddressClass |
Functions | |
| GType | gnc_address_get_type (void) |
| gboolean | gncAddressIsDirty (const GncAddress *addr) |
| int | gncAddressCompare (const GncAddress *a, const GncAddress *b) |
| compare two addresses | |
| gboolean | gncAddressEqual (const GncAddress *a, const GncAddress *b) |
| Deeply compare two addresses. | |
Create/Destroy functions | |
| GncAddress * | gncAddressCreate (QofBook *book, QofInstance *parent) |
| void | gncAddressDestroy (GncAddress *addr) |
| void | gncAddressBeginEdit (GncAddress *addr) |
| void | gncAddressCommitEdit (GncAddress *addr) |
Set functions | |
| void | gncAddressSetName (GncAddress *addr, const char *name) |
| void | gncAddressSetAddr1 (GncAddress *addr, const char *addr1) |
| void | gncAddressSetAddr2 (GncAddress *addr, const char *addr2) |
| void | gncAddressSetAddr3 (GncAddress *addr, const char *addr3) |
| void | gncAddressSetAddr4 (GncAddress *addr, const char *addr4) |
| void | gncAddressSetPhone (GncAddress *addr, const char *phone) |
| void | gncAddressSetFax (GncAddress *addr, const char *fax) |
| void | gncAddressSetEmail (GncAddress *addr, const char *email) |
| void | gncAddressClearDirty (GncAddress *address) |
Get Functions | |
| const char * | gncAddressGetName (const GncAddress *addr) |
| const char * | gncAddressGetAddr1 (const GncAddress *addr) |
| const char * | gncAddressGetAddr2 (const GncAddress *addr) |
| const char * | gncAddressGetAddr3 (const GncAddress *addr) |
| const char * | gncAddressGetAddr4 (const GncAddress *addr) |
| const char * | gncAddressGetPhone (const GncAddress *addr) |
| const char * | gncAddressGetFax (const GncAddress *addr) |
| const char * | gncAddressGetEmail (const GncAddress *addr) |
An address belongs to another object, determined by the GncOwner. It is the owner that assigns a name and identifier to the address. In effect, an address is just a building - to make it useful to GnuCash, it needs to be tied to a person. After all, you cannot invoice a building, you invoice a person working / living in the building.
QOF needs to handle all objects generically and to tie the address to an owner, QOF must be able to find each - as entities.
This allows QOF to follow the hierarchy of objects without having to call any application-specific routines.
To achieve this, new GncAddress routines have been added. An address is now created with a NULL parent and the parent set explicitly using the QOF object declaration. Whilst this adds functionality, it is important that a valid GncOwner entity is always set as a parent. This is an API issue - QOF will always set the parent provided that a suitable entity is passed to the qofAddressSetOwner routine. It is up to you to pass a suitable entity.
| int gncAddressCompare | ( | const GncAddress * | a, |
| const GncAddress * | b | ||
| ) |
compare two addresses
Definition at line 563 of file gncAddress.c.
{
if (!a && !b) return 0;
if (!a && b) return 1;
if (a && !b) return -1;
return safe_strcmp (a->name, b->name);
}
| gboolean gncAddressEqual | ( | const GncAddress * | a, |
| const GncAddress * | b | ||
| ) |
Deeply compare two addresses.
Definition at line 573 of file gncAddress.c.
{
if (a == NULL && b == NULL) return TRUE;
if (a == NULL || b == NULL) return FALSE;
g_return_val_if_fail(GNC_IS_ADDRESS(a), FALSE);
g_return_val_if_fail(GNC_IS_ADDRESS(b), FALSE);
if (safe_strcmp(a->name, b->name) != 0)
{
PWARN("names differ: %s vs %s", a->name, b->name);
return FALSE;
}
if (safe_strcmp(a->addr1, b->addr1) != 0)
{
PWARN("address lines 1 differ: %s vs %s", a->addr1, b->addr1);
return FALSE;
}
if (safe_strcmp(a->addr2, b->addr2) != 0)
{
PWARN("address lines 2 differ: %s vs %s", a->addr2, b->addr1);
return FALSE;
}
if (safe_strcmp(a->addr3, b->addr3) != 0)
{
PWARN("address lines 3 differ: %s vs %s", a->addr3, b->addr3);
return FALSE;
}
if (safe_strcmp(a->addr4, b->addr4) != 0)
{
PWARN("address lines 4 differ: %s vs %s", a->addr4, b->addr4);
return FALSE;
}
if (safe_strcmp(a->phone, b->phone) != 0)
{
PWARN("phone numbers differ: %s vs %s", a->phone, b->phone);
return FALSE;
}
if (safe_strcmp(a->fax, b->fax) != 0)
{
PWARN("fax numbers differ: %s vs %s", a->fax, b->fax);
return FALSE;
}
if (safe_strcmp(a->email, b->email) != 0)
{
PWARN("email addresses differ: %s vs %s", a->email, b->email);
return FALSE;
}
return TRUE;
}
1.7.4