GnuCash  5.6-150-g038405b370+
Macros | Typedefs | Enumerations | Functions

Business Entry Interface. More...

#include <glib.h>
#include "gncBusiness.h"
#include "gncInvoice.h"
#include "gncOrder.h"
#include "gncTaxTable.h"
#include "gncOwner.h"

Go to the source code of this file.

Macros

#define GNC_ID_ENTRY   "gncEntry"
 
#define GNC_TYPE_ENTRY   (gnc_entry_get_type ())
 
#define GNC_ENTRY(o)   (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_ENTRY, GncEntry))
 
#define GNC_ENTRY_CLASS(k)   (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_ENTRY, GncEntryClass))
 
#define GNC_IS_ENTRY(o)   (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_ENTRY))
 
#define GNC_IS_ENTRY_CLASS(k)   (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_ENTRY))
 
#define GNC_ENTRY_GET_CLASS(o)   (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_ENTRY, GncEntryClass))
 
#define ENTRY_DATE   "date"
 
#define ENTRY_DATE_ENTERED   "date-entered"
 
#define ENTRY_DESC   "desc"
 
#define ENTRY_ACTION   "action"
 
#define ENTRY_NOTES   "notes"
 
#define ENTRY_QTY   "qty"
 
#define ENTRY_IPRICE   "iprice"
 
#define ENTRY_IACCT   "invoice-account"
 
#define ENTRY_BACCT   "bill-account"
 
#define ENTRY_BPRICE   "bprice"
 
#define ENTRY_BILLABLE   "billable?"
 
#define ENTRY_BILLTO   "bill-to"
 
#define ENTRY_ORDER   "order"
 
#define ENTRY_INVOICE   "invoice"
 
#define ENTRY_BILL   "bill"
 
#define ENTRY_INV_DISC_TYPE   "discount-type"
 
#define ENTRY_INV_DISC_HOW   "discount-method"
 
#define ENTRY_INV_TAXABLE   "invoice-taxable"
 
#define ENTRY_BILL_TAXABLE   "bill-taxable"
 
#define ENTRY_INV_TAX_INC   "invoice-tax-included"
 
#define ENTRY_BILL_TAX_INC   "bill-tax-included"
 
#define ENTRY_INV_DISCOUNT   "invoice-discount"
 
#define ENTRY_BILL_PAY_TYPE   "bill-payment-type"
 
#define gncEntryGetGUID(x)   qof_instance_get_guid(QOF_INSTANCE(x))
 

Typedefs

typedef GList AccountValueList
 

Enumerations

enum  GncEntryPaymentType { GNC_PAYMENT_CASH = 1, GNC_PAYMENT_CARD }
 
enum  GncDiscountHow { GNC_DISC_PRETAX = 1, GNC_DISC_SAMETIME, GNC_DISC_POSTTAX }
 

Functions

GType gnc_entry_get_type (void)
 
const char * gncEntryDiscountHowToString (GncDiscountHow how)
 How to apply the discount and taxes. More...
 
gboolean gncEntryDiscountStringToHow (const char *str, GncDiscountHow *how)
 
const char * gncEntryPaymentTypeToString (GncEntryPaymentType type)
 
gboolean gncEntryPaymentStringToType (const char *str, GncEntryPaymentType *type)
 
void gncEntryCopy (const GncEntry *src, GncEntry *dest, gboolean add_entry)
 
GncOrder * gncEntryGetOrder (const GncEntry *entry)
 
GncInvoice * gncEntryGetInvoice (const GncEntry *entry)
 
GncInvoice * gncEntryGetBill (const GncEntry *entry)
 
gboolean gncEntryIsOpen (const GncEntry *entry)
 
void gncEntryBeginEdit (GncEntry *entry)
 
void gncEntryCommitEdit (GncEntry *entry)
 
int gncEntryCompare (const GncEntry *a, const GncEntry *b)
 
Create/Destroy Functions
GncEntry * gncEntryCreate (QofBook *book)
 
void gncEntryDestroy (GncEntry *entry)
 
Generic (shared) data
void gncEntrySetDateGDate (GncEntry *entry, const GDate *date)
 Set the date of this entry.
 
void gncEntrySetDate (GncEntry *entry, time64 date)
 DEPRECATED - use gncEntrySetDateGDate() instead! (Because the time-of-day is a misleading extra information. More...
 
void gncEntrySetDateEntered (GncEntry *entry, time64 date)
 
void gncEntrySetDescription (GncEntry *entry, const char *desc)
 
void gncEntrySetAction (GncEntry *entry, const char *action)
 
void gncEntrySetNotes (GncEntry *entry, const char *notes)
 
void gncEntrySetQuantity (GncEntry *entry, gnc_numeric quantity)
 Set the internal quantity without any conversion. More...
 
void gncEntrySetDocQuantity (GncEntry *entry, gnc_numeric quantity, gboolean is_cn)
 Set the internal quantity converting from the quantity as visible on the physical document. More...
 
GDate gncEntryGetDateGDate (const GncEntry *entry)
 Returns the day of this entry.
 
time64 gncEntryGetDate (const GncEntry *entry)
 DEPRECATED - use gncEntryGetDateGDate() instead! (Because the time-of-day is a misleading extra information. More...
 
time64 gncEntryGetDateEntered (const GncEntry *entry)
 
const char * gncEntryGetDescription (const GncEntry *entry)
 
const char * gncEntryGetAction (const GncEntry *entry)
 
const char * gncEntryGetNotes (const GncEntry *notes)
 
gnc_numeric gncEntryGetQuantity (const GncEntry *entry)
 Get the quantity as stored internally. More...
 
gnc_numeric gncEntryGetDocQuantity (const GncEntry *entry, gboolean is_cn)
 Get the quantity as on the physical document. More...
 
Customer Invoices
void gncEntrySetInvAccount (GncEntry *entry, Account *acc)
 
void gncEntrySetInvPrice (GncEntry *entry, gnc_numeric price)
 
void gncEntrySetInvTaxable (GncEntry *entry, gboolean taxable)
 
void gncEntrySetInvTaxIncluded (GncEntry *entry, gboolean tax_included)
 
void gncEntrySetInvTaxTable (GncEntry *entry, GncTaxTable *table)
 
void gncEntrySetInvDiscount (GncEntry *entry, gnc_numeric discount)
 
void gncEntrySetInvDiscountType (GncEntry *entry, GncAmountType type)
 
void gncEntrySetInvDiscountHow (GncEntry *entry, GncDiscountHow how)
 
void qofEntrySetInvDiscType (GncEntry *entry, const char *type)
 
void qofEntrySetInvDiscHow (GncEntry *entry, const char *type)
 
AccountgncEntryGetInvAccount (const GncEntry *entry)
 
gnc_numeric gncEntryGetInvPrice (const GncEntry *entry)
 
gnc_numeric gncEntryGetPrice (const GncEntry *entry, const gboolean cust_doc, const gboolean net)
 
gnc_numeric gncEntryGetInvDiscount (const GncEntry *entry)
 
GncAmountType gncEntryGetInvDiscountType (const GncEntry *entry)
 
GncDiscountHow gncEntryGetInvDiscountHow (const GncEntry *entry)
 
char * qofEntryGetInvDiscType (const GncEntry *entry)
 
char * qofEntryGetInvDiscHow (const GncEntry *entry)
 
gboolean gncEntryGetInvTaxable (const GncEntry *entry)
 
gboolean gncEntryGetInvTaxIncluded (const GncEntry *entry)
 
GncTaxTablegncEntryGetInvTaxTable (const GncEntry *entry)
 
Vendor Bills (and Employee Expenses)
void gncEntrySetBillAccount (GncEntry *entry, Account *acc)
 
void gncEntrySetBillPrice (GncEntry *entry, gnc_numeric price)
 
void gncEntrySetBillTaxable (GncEntry *entry, gboolean taxable)
 
void gncEntrySetBillTaxIncluded (GncEntry *entry, gboolean tax_included)
 
void gncEntrySetBillTaxTable (GncEntry *entry, GncTaxTable *table)
 
void gncEntrySetBillable (GncEntry *entry, gboolean billable)
 
void gncEntrySetBillTo (GncEntry *entry, GncOwner *billto)
 
AccountgncEntryGetBillAccount (const GncEntry *entry)
 
gnc_numeric gncEntryGetBillPrice (const GncEntry *entry)
 
gboolean gncEntryGetBillTaxable (const GncEntry *entry)
 
gboolean gncEntryGetBillTaxIncluded (const GncEntry *entry)
 
GncTaxTablegncEntryGetBillTaxTable (const GncEntry *entry)
 
gboolean gncEntryGetBillable (const GncEntry *entry)
 
GncOwnergncEntryGetBillTo (GncEntry *entry)
 
GncEntryPaymentType gncEntryGetBillPayment (const GncEntry *entry)
 
employee-stuff
void gncEntrySetBillPayment (GncEntry *entry, GncEntryPaymentType type)
 
Getting Values

An entry has three important values:

  • entry value: the amount the merchant gets
  • tax value: the amount the government gets
  • discount value: the amount the customer saved

These values can be retrieved in several variants. Depending on how they will be used some sign reversals can be applied on the values:

  • Doc value: the value as listed on the document. This is usually a positive value, unless the document was a negative invoice/bill or negative credit note. Since credit note entry values are stored negatively internally, they will be sign-reversed before returning them.
  • Bal value: the value as it will impact the balance. Customer invoices and vendor credit notes have a positive influence on the balance, so these values will be positive. For vendor bills and customer credit notes, the values will be negative.

For tax there are TaxValue and TaxValues variants: the first one returns to total tax value for this entry, meaning the sum of all individual taxes. The second one returns a list of all the individual tax values for this entry. This list holds unrounded values only, there's no variant with rounded values.

Note that this list is not owned by the entry. When no longer needed, it should be freed with gncAccountValueDestroy.

Finally, there are rounded and unrounded variants of most of these functions.

gnc_numeric gncEntryGetDocValue (GncEntry *entry, gboolean round, gboolean is_cust_doc, gboolean is_cn)
 
gnc_numeric gncEntryGetDocTaxValue (GncEntry *entry, gboolean round, gboolean is_cust_doc, gboolean is_cn)
 
AccountValueList * gncEntryGetDocTaxValues (GncEntry *entry, gboolean is_cust_doc, gboolean is_cn)
 Careful: the returned list is NOT owned by the entry and should be freed by the caller.
 
gnc_numeric gncEntryGetDocDiscountValue (GncEntry *entry, gboolean round, gboolean is_cust_doc, gboolean is_cn)
 
gnc_numeric gncEntryGetBalValue (GncEntry *entry, gboolean round, gboolean is_cust_doc)
 
gnc_numeric gncEntryGetBalTaxValue (GncEntry *entry, gboolean round, gboolean is_cust_doc)
 
AccountValueList * gncEntryGetBalTaxValues (GncEntry *entry, gboolean is_cust_doc)
 Careful: the returned list is NOT owned by the entry and should be freed by the caller.
 
gnc_numeric gncEntryGetBalDiscountValue (GncEntry *entry, gboolean round, gboolean is_cust_doc)
 
void gncEntryComputeValue (gnc_numeric qty, gnc_numeric price, const GncTaxTable *tax_table, gboolean tax_included, gnc_numeric discount, GncAmountType discount_type, GncDiscountHow discount_how, int SCU, gnc_numeric *value, gnc_numeric *discount_value, GList **tax_values)
 Compute the Entry value, tax_value, and discount_value, based on the quantity, price, discount, tax_-table, and types. More...
 

Detailed Description

Business Entry Interface.

Author
Copyright (C) 2001,2002 Derek Atkins warlo.nosp@m.rd@M.nosp@m.IT.ED.nosp@m.U

Definition in file gncEntry.h.