LCOV - code coverage report
Current view: top level - libgnucash/engine - gncCustomer.h (source / functions) Coverage Total Hit
Test: gnucash.info Lines: 100.0 % 2 2
Test Date: 2026-11-02 18:19:43 Functions: 100.0 % 1 1
Legend: Lines:     hit not hit

            Line data    Source code
       1              : /********************************************************************\
       2              :  * gncCustomer.h -- the Core Customer Interface                     *
       3              :  *                                                                  *
       4              :  * This program is free software; you can redistribute it and/or    *
       5              :  * modify it under the terms of the GNU General Public License as   *
       6              :  * published by the Free Software Foundation; either version 2 of   *
       7              :  * the License, or (at your option) any later version.              *
       8              :  *                                                                  *
       9              :  * This program is distributed in the hope that it will be useful,  *
      10              :  * but WITHOUT ANY WARRANTY; without even the implied warranty of   *
      11              :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    *
      12              :  * GNU General Public License for more details.                     *
      13              :  *                                                                  *
      14              :  * You should have received a copy of the GNU General Public License*
      15              :  * along with this program; if not, contact:                        *
      16              :  *                                                                  *
      17              :  * Free Software Foundation           Voice:  +1-617-542-5942       *
      18              :  * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
      19              :  * Boston, MA  02110-1301,  USA       gnu@gnu.org                   *
      20              :  *                                                                  *
      21              : \********************************************************************/
      22              : /** @addtogroup Business
      23              :     @{ */
      24              : /** @addtogroup Customer
      25              :     @{ */
      26              : /** @file gncCustomer.h
      27              :     @brief Core Customer Interface
      28              :     @author Copyright (C) 2001,2002 Derek Atkins <warlord@MIT.EDU>
      29              : */
      30              : 
      31              : #ifndef GNC_CUSTOMER_H_
      32              : #define GNC_CUSTOMER_H_
      33              : 
      34              : /** @struct GncCustomer
      35              : 
      36              : credit, discount and shipaddr are unique to GncCustomer\n
      37              : id, name, notes, terms, addr, currency, taxtable, taxtable_override
      38              : taxincluded, active and jobs are identical to ::GncVendor.
      39              : 
      40              : @param  QofInstance     inst;
      41              : @param  char *          id;
      42              : @param  char *          name;
      43              : @param  char *          notes;
      44              : @param  GncBillTerm *   terms;
      45              : @param  GncAddress *    addr;
      46              : @param  gnc_commodity * currency;
      47              : @param  GncTaxTable*    taxtable;
      48              : @param  gboolean        taxtable_override;
      49              : @param  GncTaxIncluded  taxincluded;
      50              : @param  gboolean        active;
      51              : @param  GList *         jobs;
      52              : @param  gnc_numeric     credit;
      53              : @param  gnc_numeric     discount;
      54              : @param  GncAddress *    shipaddr;
      55              : 
      56              : */
      57              : typedef struct _gncCustomer GncCustomer;
      58              : typedef struct _gncCustomerClass GncCustomerClass;
      59              : 
      60              : #include "gncAddress.h"
      61              : #include "gncBillTerm.h"
      62              : #include "gncTaxTable.h"
      63              : #include "gncJob.h"
      64              : 
      65              : #ifdef __cplusplus
      66              : extern "C" {
      67              : #endif
      68              : 
      69              : #define GNC_ID_CUSTOMER       "gncCustomer"
      70              : 
      71              : /* --- type macros --- */
      72              : #define GNC_TYPE_CUSTOMER            (gnc_customer_get_type ())
      73              : #define GNC_CUSTOMER(o)              \
      74              :      (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_CUSTOMER, GncCustomer))
      75              : #define GNC_CUSTOMER_CLASS(k)        \
      76              :      (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_CUSTOMER, GncCustomerClass))
      77              : #define GNC_IS_CUSTOMER(o)           \
      78              :      (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_CUSTOMER))
      79              : #define GNC_IS_CUSTOMER_CLASS(k)     \
      80              :      (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_CUSTOMER))
      81              : #define GNC_CUSTOMER_GET_CLASS(o)    \
      82              :      (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_CUSTOMER, GncCustomerClass))
      83              : GType gnc_customer_get_type(void);
      84              : 
      85              : /** @name Create/Destroy Functions
      86              :  @{ */
      87              : GncCustomer *gncCustomerCreate (QofBook *book);
      88              : void gncCustomerDestroy (GncCustomer *customer);
      89              : void gncCustomerBeginEdit (GncCustomer *customer);
      90              : void gncCustomerCommitEdit (GncCustomer *customer);
      91              : /** @} */
      92              : 
      93              : /** @name Set Functions
      94              :  @{ */
      95              : 
      96              : void gncCustomerSetID (GncCustomer *customer, const char *id);
      97              : void gncCustomerSetName (GncCustomer *customer, const char *name);
      98              : void gncCustomerSetNotes (GncCustomer *customer, const char *notes);
      99              : void gncCustomerSetTerms (GncCustomer *customer, GncBillTerm *term);
     100              : void gncCustomerSetTaxIncluded (GncCustomer *customer, GncTaxIncluded taxincl);
     101              : void gncCustomerSetActive (GncCustomer *customer, gboolean active);
     102              : void gncCustomerSetDiscount (GncCustomer *customer, gnc_numeric discount);
     103              : void gncCustomerSetCredit (GncCustomer *customer, gnc_numeric credit);
     104              : void gncCustomerSetCurrency (GncCustomer *customer, gnc_commodity *currency);
     105              : 
     106              : void gncCustomerSetTaxTableOverride (GncCustomer *customer, gboolean override);
     107              : void gncCustomerSetTaxTable (GncCustomer *customer, GncTaxTable *table);
     108              : 
     109              : void gncCustomerAddJob (GncCustomer *customer, GncJob *job);
     110              : void gncCustomerRemoveJob (GncCustomer *customer, GncJob *job);
     111              : 
     112              : /** @} */
     113              : 
     114              : /** @name Get Functions
     115              :  @{ */
     116              : /** Return a pointer to the instance gncCustomer that is identified
     117              :  *  by the guid, and is residing in the book. Returns NULL if the
     118              :  *  instance can't be found.
     119              :  */
     120          215 : static inline GncCustomer * gncCustomerLookup (const QofBook *book, const GncGUID *guid)
     121              : {
     122          215 :     QOF_BOOK_RETURN_ENTITY(book, guid, GNC_ID_CUSTOMER, GncCustomer);
     123              : }
     124              : 
     125              : const char * gncCustomerGetID (const GncCustomer *customer);
     126              : const char * gncCustomerGetName (const GncCustomer *customer);
     127              : GncAddress * gncCustomerGetAddr (const GncCustomer *customer);
     128              : GncAddress * gncCustomerGetShipAddr (const GncCustomer *customer);
     129              : const char * gncCustomerGetNotes (const GncCustomer *customer);
     130              : GncBillTerm * gncCustomerGetTerms (const GncCustomer *customer);
     131              : GncTaxIncluded gncCustomerGetTaxIncluded (const GncCustomer *customer);
     132              : gboolean gncCustomerGetActive (const GncCustomer *customer);
     133              : gnc_numeric gncCustomerGetDiscount (const GncCustomer *customer);
     134              : gnc_numeric gncCustomerGetCredit (const GncCustomer *customer);
     135              : gnc_commodity * gncCustomerGetCurrency (const GncCustomer *customer);
     136              : 
     137              : gboolean gncCustomerGetTaxTableOverride (const GncCustomer *customer);
     138              : GncTaxTable* gncCustomerGetTaxTable (const GncCustomer *customer);
     139              : 
     140              : /** @} */
     141              : 
     142              : int gncCustomerCompare (const GncCustomer *a, const GncCustomer *b);
     143              : 
     144              : #define CUSTOMER_ID         "id"
     145              : #define CUSTOMER_NAME       "name"
     146              : #define CUSTOMER_ADDR       "addr"
     147              : #define CUSTOMER_SHIPADDR   "shipaddr"
     148              : #define CUSTOMER_NOTES      "notes"
     149              : #define CUSTOMER_DISCOUNT   "amount of discount"
     150              : #define CUSTOMER_CREDIT     "amount of credit"
     151              : #define CUSTOMER_TT_OVER    "tax table override"
     152              : #define CUSTOMER_TAX_INC    "customer_tax_included"
     153              : #define CUSTOMER_TERMS      "customer_terms"
     154              : #define CUSTOMER_ACTIVE     "customer_is_active"
     155              : #define CUSTOMER_SLOTS      "customer_values"
     156              : 
     157              : /** @deprecated functions, should be removed */
     158              : #define gncCustomerGetGUID(x) qof_instance_get_guid(QOF_INSTANCE(x))
     159              : #define gncCustomerRetGUID(x) (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null()))
     160              : #define gncCustomerGetBook(x) qof_instance_get_book(QOF_INSTANCE(x))
     161              : #define gncCustomerLookupDirect(g,b) gncCustomerLookup((b), &(g))
     162              : 
     163              : /** Test support function, used in gets-dbi-business-stuff.c */
     164              : gboolean gncCustomerEqual(const GncCustomer *a, const GncCustomer *b);
     165              : 
     166              : GList * gncCustomerGetJoblist (const GncCustomer *customer, gboolean show_all);
     167              : gboolean gncCustomerIsDirty (GncCustomer *customer);
     168              : 
     169              : #ifdef __cplusplus
     170              : }
     171              : #endif
     172              : 
     173              : 
     174              : #endif /* GNC_CUSTOMER_H_ */
     175              : /** @} */
     176              : /** @} */
        

Generated by: LCOV version 2.0-1