diff --git a/src/business/business-core/gncAddress.c b/src/business/business-core/gncAddress.c index dffd06ca79..dab549d922 100644 --- a/src/business/business-core/gncAddress.c +++ b/src/business/business-core/gncAddress.c @@ -20,8 +20,7 @@ struct _gncAddress { QofBook * book; - const GUID * parent_guid; - QofIdType parent_type; + QofEntity * parent; gboolean dirty; char * name; char * addr1; @@ -44,13 +43,13 @@ mark_address (GncAddress *address) { address->dirty = TRUE; - gnc_engine_generate_event (address->parent_guid, address->parent_type, GNC_EVENT_MODIFY); + gnc_engine_gen_event (address->parent, GNC_EVENT_MODIFY); } /* Create/Destroy functions */ GncAddress * -gncAddressCreate (QofBook *book, const GUID *parent, QofIdType ptype) +gncAddressCreate (QofBook *book, QofEntity *prnt) { GncAddress *addr; @@ -59,8 +58,7 @@ gncAddressCreate (QofBook *book, const GUID *parent, QofIdType ptype) addr = g_new0 (GncAddress, 1); addr->book = book; addr->dirty = FALSE; - addr->parent_guid = parent; - addr->parent_type = ptype; + addr->parent = prnt; addr->name = CACHE_INSERT (""); addr->addr1 = CACHE_INSERT (""); @@ -84,8 +82,7 @@ gncCloneAddress (GncAddress *from, QofBook *book) addr = g_new0 (GncAddress, 1); addr->book = book; addr->dirty = TRUE; - addr->parent_guid = from->parent_guid; - addr->parent_type = from->parent_type; + addr->parent = from->parent; addr->name = CACHE_INSERT (from->name); addr->addr1 = CACHE_INSERT (from->addr1); diff --git a/src/business/business-core/gncAddress.h b/src/business/business-core/gncAddress.h index bb76b45267..5334ce5d08 100644 --- a/src/business/business-core/gncAddress.h +++ b/src/business/business-core/gncAddress.h @@ -8,13 +8,14 @@ #define GNC_ADDRESS_H_ #include "qofbook.h" +#include "qofid.h" #define GNC_ADDRESS_MODULE_NAME "gncAddress" typedef struct _gncAddress GncAddress; /* Create/Destroy functions */ -GncAddress * gncAddressCreate (QofBook *book, const GUID *parent, QofIdType ptype); +GncAddress * gncAddressCreate (QofBook *book, QofEntity *parent); /** make a copy of the address, but associate it with a different book */ GncAddress * gncCloneAddress (GncAddress *from, QofBook *book); diff --git a/src/business/business-core/gncCustomer.c b/src/business/business-core/gncCustomer.c index 874f958a07..598ee9feb8 100644 --- a/src/business/business-core/gncCustomer.c +++ b/src/business/business-core/gncCustomer.c @@ -113,14 +113,14 @@ GncCustomer *gncCustomerCreate (QofBook *book) cust->id = CACHE_INSERT (""); cust->name = CACHE_INSERT (""); cust->notes = CACHE_INSERT (""); - cust->addr = gncAddressCreate (book, &cust->inst.entity.guid, _GNC_MOD_NAME); + cust->addr = gncAddressCreate (book, &cust->inst.entity); cust->taxincluded = GNC_TAXINCLUDED_USEGLOBAL; cust->active = TRUE; cust->jobs = NULL; cust->discount = gnc_numeric_zero(); cust->credit = gnc_numeric_zero(); - cust->shipaddr = gncAddressCreate (book, &cust->inst.entity.guid, _GNC_MOD_NAME); + cust->shipaddr = gncAddressCreate (book, &cust->inst.entity); gnc_engine_gen_event (&cust->inst.entity, GNC_EVENT_CREATE); diff --git a/src/business/business-core/gncEmployee.c b/src/business/business-core/gncEmployee.c index 8e0374822d..0db6628a1f 100644 --- a/src/business/business-core/gncEmployee.c +++ b/src/business/business-core/gncEmployee.c @@ -100,7 +100,7 @@ GncEmployee *gncEmployeeCreate (QofBook *book) employee->username = CACHE_INSERT (""); employee->language = CACHE_INSERT (""); employee->acl = CACHE_INSERT (""); - employee->addr = gncAddressCreate (book, &employee->inst.entity.guid, _GNC_MOD_NAME); + employee->addr = gncAddressCreate (book, &employee->inst.entity); employee->workday = gnc_numeric_zero(); employee->rate = gnc_numeric_zero(); employee->active = TRUE; diff --git a/src/business/business-core/gncVendor.c b/src/business/business-core/gncVendor.c index 9cf2a1cbeb..9e06d6ae33 100644 --- a/src/business/business-core/gncVendor.c +++ b/src/business/business-core/gncVendor.c @@ -103,7 +103,7 @@ GncVendor *gncVendorCreate (QofBook *book) vendor->id = CACHE_INSERT (""); vendor->name = CACHE_INSERT (""); vendor->notes = CACHE_INSERT (""); - vendor->addr = gncAddressCreate (book, &vendor->inst.entity.guid, _GNC_MOD_NAME); + vendor->addr = gncAddressCreate (book, &vendor->inst.entity); vendor->taxincluded = GNC_TAXINCLUDED_USEGLOBAL; vendor->active = TRUE; vendor->jobs = NULL; diff --git a/src/business/business-core/test/test-address.c b/src/business/business-core/test/test-address.c index a15e345ff5..ae4d7df59a 100644 --- a/src/business/business-core/test/test-address.c +++ b/src/business/business-core/test/test-address.c @@ -17,13 +17,18 @@ test_string_fcn (GncAddress *address, const char *message, static void test_address (void) { + QofEntity ent; GncAddress *address; QofBook *book = qof_book_new (); + ent.e_type = "asdf"; + ent.guid = *guid_null(); + /* Test creation/destruction */ { - do_test (gncAddressCreate (NULL, NULL, NULL) == NULL, "address create NULL"); - address = gncAddressCreate (book, NULL, "x"); + do_test (gncAddressCreate (NULL, NULL) == NULL, "address create NULL"); + + address = gncAddressCreate (book, &ent); do_test (address != NULL, "address create"); gncAddressDestroy (address); @@ -32,7 +37,7 @@ test_address (void) /* Test setting routines */ { - address = gncAddressCreate (book, NULL, "x"); + address = gncAddressCreate (book, &ent); test_string_fcn (address, "Name", gncAddressSetName, gncAddressGetName); test_string_fcn (address, "Addr1", gncAddressSetAddr1, gncAddressGetAddr1); test_string_fcn (address, "Addr2", gncAddressSetAddr2, gncAddressGetAddr2);