From 7f70514f7e656c47682b06a207715ec6c8df8708 Mon Sep 17 00:00:00 2001 From: Geert Janssens Date: Sun, 20 Mar 2011 19:33:55 +0000 Subject: [PATCH] Add some convenience getter functions to gncOwner. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@20433 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/engine/gncOwner.c | 60 +++++++++++++++++++++++++++++++++++++++++++ src/engine/gncOwner.h | 3 +++ 2 files changed, 63 insertions(+) diff --git a/src/engine/gncOwner.c b/src/engine/gncOwner.c index fbe9c60eea..87b0f45f05 100644 --- a/src/engine/gncOwner.c +++ b/src/engine/gncOwner.c @@ -299,6 +299,26 @@ gboolean gncOwnerEqual (const GncOwner *a, const GncOwner *b) return (a->owner.undefined == b->owner.undefined); } +const char * gncOwnerGetID (const GncOwner *owner) +{ + if (!owner) return NULL; + switch (owner->type) + { + case GNC_OWNER_NONE: + case GNC_OWNER_UNDEFINED: + default: + return NULL; + case GNC_OWNER_CUSTOMER: + return gncCustomerGetID (owner->owner.customer); + case GNC_OWNER_JOB: + return gncJobGetID (owner->owner.job); + case GNC_OWNER_VENDOR: + return gncVendorGetID (owner->owner.vendor); + case GNC_OWNER_EMPLOYEE: + return gncEmployeeGetID (owner->owner.employee); + } +} + const char * gncOwnerGetName (const GncOwner *owner) { if (!owner) return NULL; @@ -319,6 +339,25 @@ const char * gncOwnerGetName (const GncOwner *owner) } } +GncAddress * gncOwnerGetAddr (const GncOwner *owner) +{ + if (!owner) return NULL; + switch (owner->type) + { + case GNC_OWNER_NONE: + case GNC_OWNER_UNDEFINED: + case GNC_OWNER_JOB: + default: + return NULL; + case GNC_OWNER_CUSTOMER: + return gncCustomerGetAddr (owner->owner.customer); + case GNC_OWNER_VENDOR: + return gncVendorGetAddr (owner->owner.vendor); + case GNC_OWNER_EMPLOYEE: + return gncEmployeeGetAddr (owner->owner.employee); + } +} + gnc_commodity * gncOwnerGetCurrency (const GncOwner *owner) { if (!owner) return NULL; @@ -339,6 +378,27 @@ gnc_commodity * gncOwnerGetCurrency (const GncOwner *owner) } } +gboolean gncOwnerGetActive (const GncOwner *owner) +{ + if (!owner) return FALSE; + switch (owner->type) + { + case GNC_OWNER_NONE: + case GNC_OWNER_UNDEFINED: + default: + return FALSE; + case GNC_OWNER_CUSTOMER: + return gncCustomerGetActive (owner->owner.customer); + case GNC_OWNER_VENDOR: + return gncVendorGetActive (owner->owner.vendor); + case GNC_OWNER_EMPLOYEE: + return gncEmployeeGetActive (owner->owner.employee); + /* Jobs don't really have an active status, so we consider them always active */ + case GNC_OWNER_JOB: + return TRUE; + } +} + const GncGUID * gncOwnerGetGUID (const GncOwner *owner) { if (!owner) return NULL; diff --git a/src/engine/gncOwner.h b/src/engine/gncOwner.h index eb5f1da7d9..c028607a8e 100644 --- a/src/engine/gncOwner.h +++ b/src/engine/gncOwner.h @@ -119,7 +119,10 @@ void gncOwnerCopy (const GncOwner *src, GncOwner *dest); gboolean gncOwnerEqual (const GncOwner *a, const GncOwner *b); int gncOwnerCompare (const GncOwner *a, const GncOwner *b); +const char * gncOwnerGetID (const GncOwner *owner); const char * gncOwnerGetName (const GncOwner *owner); +GncAddress * gncOwnerGetAddr (const GncOwner *owner); +gboolean gncOwnerGetActive (const GncOwner *owner); gnc_commodity * gncOwnerGetCurrency (const GncOwner *owner); /** Get the GncGUID of the immediate owner */