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: 2025-02-07 16:25:45 Functions: 100.0 % 1 1
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: - 0 0

             Branch data     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                 :         175 : static inline GncCustomer * gncCustomerLookup (const QofBook *book, const GncGUID *guid)
     121                 :             : {
     122                 :         175 :     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