GnuCash  5.6-150-g038405b370+
Files | Data Structures | Macros | Enumerations | Functions

Define an object to track tax properties for invoices. More...

Files

file  gncTaxTable.h
 Tax Table programming interface.
 

Data Structures

struct  GncAccountValue
 
struct  GncTaxTable
 modtime is the internal date of the last modtime
See libgnucash/engine/TaxTableBillTermImmutability.txt for an explanation of the following
Code that handles refcount, parent, child, invisible and children is identical to that in ::GncBillTerm More...
 
struct  GncTaxTableEntry
 

Macros

#define GNC_ID_TAXTABLE   "gncTaxTable"
 
#define GNC_TYPE_TAXTABLE   (gnc_taxtable_get_type ())
 
#define GNC_TAXTABLE(o)   (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_TAXTABLE, GncTaxTable))
 
#define GNC_TAXTABLE_CLASS(k)   (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_TAXTABLE, GncTaxTableClass))
 
#define GNC_IS_TAXTABLE(o)   (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_TAXTABLE))
 
#define GNC_IS_TAXTABLE_CLASS(k)   (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_TAXTABLE))
 
#define GNC_TAXTABLE_GET_CLASS(o)   (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_TAXTABLE, GncTaxTableClass))
 
#define GNC_TT_NAME   "tax table name"
 QOF parameter definitions.
 
#define GNC_TT_REFCOUNT   "reference count"
 
#define gncTaxTableGetGUID(x)   qof_instance_get_guid(QOF_INSTANCE(x))
 
#define gncTaxTableRetGUID(x)   (x ? *(qof_instance_get_guid(QOF_INSTANCE(x))) : *(guid_null()))
 
#define gncTaxTableLookupDirect(G, B)   gncTaxTableLookup((B), &(G))
 

Enumerations

enum  GncAmountType { GNC_AMT_TYPE_VALUE = 1, GNC_AMT_TYPE_PERCENT }
 How to interpret the amount. More...
 
enum  GncTaxIncluded { GNC_TAXINCLUDED_YES = 1, GNC_TAXINCLUDED_NO, GNC_TAXINCLUDED_USEGLOBAL }
 How to interpret the TaxIncluded. More...
 

Functions

GType gnc_taxtable_get_type (void)
 
const char * gncAmountTypeToString (GncAmountType type)
 
gboolean gncAmountStringToType (const char *str, GncAmountType *type)
 
const char * gncTaxIncludedTypeToString (GncTaxIncluded type)
 
gboolean gncTaxIncludedStringToType (const char *str, GncTaxIncluded *type)
 
void gncTaxTableAddEntry (GncTaxTable *table, GncTaxTableEntry *entry)
 
void gncTaxTableRemoveEntry (GncTaxTable *table, GncTaxTableEntry *entry)
 
void gncTaxTableChanged (GncTaxTable *table)
 
void gncTaxTableBeginEdit (GncTaxTable *table)
 
void gncTaxTableCommitEdit (GncTaxTable *table)
 
gboolean gncTaxTableEqual (const GncTaxTable *a, const GncTaxTable *b)
 
int gncTaxTableCompare (const GncTaxTable *a, const GncTaxTable *b)
 
int gncTaxTableEntryCompare (const GncTaxTableEntry *a, const GncTaxTableEntry *b)
 
gboolean gncTaxTableEntryEqual (const GncTaxTableEntry *a, const GncTaxTableEntry *b)
 
GList * gncAccountValueAdd (GList *list, Account *acc, gnc_numeric value)
 This will add value to the account-value for acc, creating a new list object if necessary.
 
GList * gncAccountValueAddList (GList *l1, GList *l2)
 Merge l2 into l1. More...
 
gnc_numeric gncAccountValueTotal (GList *list)
 return the total for this list
 
void gncAccountValueDestroy (GList *list)
 Destroy a list of accountvalues.
 

Create/Destroy Functions

GncTaxTablegncTaxTableCreate (QofBook *book)
 
void gncTaxTableDestroy (GncTaxTable *table)
 
GncTaxTableEntrygncTaxTableEntryCreate (void)
 
void gncTaxTableEntryDestroy (GncTaxTableEntry *entry)
 

Set Functions

void gncTaxTableSetName (GncTaxTable *table, const char *name)
 
void gncTaxTableIncRef (GncTaxTable *table)
 
void gncTaxTableDecRef (GncTaxTable *table)
 
void gncTaxTableEntrySetAccount (GncTaxTableEntry *entry, Account *account)
 
void gncTaxTableEntrySetType (GncTaxTableEntry *entry, GncAmountType type)
 
void gncTaxTableEntrySetAmount (GncTaxTableEntry *entry, gnc_numeric amount)
 

Get Functions

typedef GList GncTaxTableList
 
typedef GList GncTaxTableEntryList
 
GncTaxTablegncTaxTableLookupByName (QofBook *book, const char *name)
 
GncTaxTablegncTaxTableGetDefault (QofBook *book, GncOwnerType type)
 
GncTaxTableList * gncTaxTableGetTables (QofBook *book)
 
const char * gncTaxTableGetName (const GncTaxTable *table)
 
GncTaxTablegncTaxTableGetParent (const GncTaxTable *table)
 
GncTaxTablegncTaxTableReturnChild (GncTaxTable *table, gboolean make_new)
 
GncTaxTableEntryList * gncTaxTableGetEntries (const GncTaxTable *table)
 
gint64 gncTaxTableGetRefcount (const GncTaxTable *table)
 
time64 gncTaxTableLastModifiedSecs (const GncTaxTable *table)
 
AccountgncTaxTableEntryGetAccount (const GncTaxTableEntry *entry)
 
GncAmountType gncTaxTableEntryGetType (const GncTaxTableEntry *entry)
 
gnc_numeric gncTaxTableEntryGetAmount (const GncTaxTableEntry *entry)
 
#define gncTaxTableGetChild(t)   gncTaxTableReturnChild((t),FALSE)
 

Detailed Description

Define an object to track tax properties for invoices.

Note
A tax table added to an invoice is immutable, that is it can't change any more. To achieve that a tax table is copied when added to an invoice. This uses some internal fields to track this which are explained in Some notes on tracking fields in gncBillTerm and gncTaxTable objects.

Macro Definition Documentation

◆ gncTaxTableGetGUID

#define gncTaxTableGetGUID (   x)    qof_instance_get_guid(QOF_INSTANCE(x))
Deprecated:
routine

Definition at line 214 of file gncTaxTable.h.

Enumeration Type Documentation

◆ GncAmountType

How to interpret the amount.

You can interpret it as a VALUE or a PERCENT.

Enumerator
GNC_AMT_TYPE_VALUE 

tax is a number

GNC_AMT_TYPE_PERCENT 

tax is a percentage

Definition at line 78 of file gncTaxTable.h.

79 {
80  GNC_AMT_TYPE_VALUE = 1,
tax is a number
Definition: gncTaxTable.h:80
tax is a percentage
Definition: gncTaxTable.h:81
GncAmountType
How to interpret the amount.
Definition: gncTaxTable.h:78

◆ GncTaxIncluded

How to interpret the TaxIncluded.

Enumerator
GNC_TAXINCLUDED_YES 

tax is included

GNC_TAXINCLUDED_NO 

tax is not included

GNC_TAXINCLUDED_USEGLOBAL 

use the global setting

Definition at line 85 of file gncTaxTable.h.

86 {
tax is not included
Definition: gncTaxTable.h:88
GncTaxIncluded
How to interpret the TaxIncluded.
Definition: gncTaxTable.h:85
tax is included
Definition: gncTaxTable.h:87
use the global setting
Definition: gncTaxTable.h:89

Function Documentation

◆ gncAccountValueAddList()

GList* gncAccountValueAddList ( GList *  l1,
GList *  l2 
)

Merge l2 into l1.

l2 is not touched.

Definition at line 970 of file gncTaxTable.c.

971 {
972  GList *li;
973 
974  for (li = l2; li; li = li->next )
975  {
976  GncAccountValue *val = li->data;
977  l1 = gncAccountValueAdd (l1, val->account, val->value);
978  }
979 
980  return l1;
981 }
GList * gncAccountValueAdd(GList *list, Account *acc, gnc_numeric value)
This will add value to the account-value for acc, creating a new list object if necessary.
Definition: gncTaxTable.c:942