GnuCash c935c2f+
Loading...
Searching...
No Matches
Files | Macros | Functions

Files

file  gncVendor.h
 Vendor Interface.
 

Macros

#define GNC_ID_VENDOR   "gncVendor"
 
#define GNC_TYPE_VENDOR   (gnc_vendor_get_type ())
 
#define GNC_VENDOR(o)    (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_VENDOR, GncVendor))
 
#define GNC_VENDOR_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_VENDOR, GncVendorClass))
 
#define GNC_IS_VENDOR(o)    (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_VENDOR))
 
#define GNC_IS_VENDOR_CLASS(k)    (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_VENDOR))
 
#define GNC_VENDOR_GET_CLASS(o)    (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_VENDOR, GncVendorClass))
 
#define VENDOR_ID   "id"
 
#define VENDOR_NAME   "name"
 
#define VENDOR_ADDR   "addr"
 
#define VENDOR_NOTES   "vendor_notes"
 
#define VENDOR_TERMS   "vendor_terms"
 
#define VENDOR_TAX_INC   "vendor_tax_included"
 
#define VENDOR_ACTIVE   "vendor_is_active"
 
#define VENDOR_TAX_OVERRIDE   "override_tax_table"
 
#define VENDOR_TAX_TABLE   "vendor_tax_table"
 
#define gncVendorGetBook(X)   qof_instance_get_book (QOF_INSTANCE(X))
 deprecated functions
 
#define gncVendorGetGUID(X)   qof_instance_get_guid (QOF_INSTANCE(X))
 
#define gncVendorRetGUID(X)   (X ? *(qof_instance_get_guid (QOF_INSTANCE(X))) : *(guid_null()))
 
#define gncVendorLookupDirect(G, B)   gncVendorLookup((B),&(G))
 

Functions

GType gnc_vendor_get_type (void)
 
GncVendor * gncVendorCreate (QofBook *book)
 
void gncVendorDestroy (GncVendor *vendor)
 
void gncVendorAddJob (GncVendor *vendor, GncJob *job)
 
void gncVendorRemoveJob (GncVendor *vendor, GncJob *job)
 
void gncVendorBeginEdit (GncVendor *vendor)
 
void gncVendorCommitEdit (GncVendor *vendor)
 
int gncVendorCompare (const GncVendor *a, const GncVendor *b)
 XXX should be renamed to RetJobList to be consistent with other usage, since caller must free the copied list.
 
gboolean gncVendorEqual (const GncVendor *a, const GncVendor *b)
 Test support function, used by test-dbi-business-stuff.c.
 
gboolean gncVendorIsDirty (const GncVendor *vendor)
 

Set Functions

void gncVendorSetID (GncVendor *vendor, const char *id)
 
void gncVendorSetName (GncVendor *vendor, const char *name)
 
void gncVendorSetNotes (GncVendor *vendor, const char *notes)
 
void gncVendorSetTerms (GncVendor *vendor, GncBillTerm *terms)
 
void gncVendorSetTaxIncluded (GncVendor *vendor, GncTaxIncluded taxincl)
 
void gncVendorSetCurrency (GncVendor *vendor, gnc_commodity *currency)
 
void gncVendorSetActive (GncVendor *vendor, gboolean active)
 
void gncVendorSetTaxTableOverride (GncVendor *vendor, gboolean override)
 
void gncVendorSetTaxTable (GncVendor *vendor, GncTaxTable *table)
 

Get Functions

const char * gncVendorGetID (const GncVendor *vendor)
 
const char * gncVendorGetName (const GncVendor *vendor)
 
GncAddressgncVendorGetAddr (const GncVendor *vendor)
 
const char * gncVendorGetNotes (const GncVendor *vendor)
 
GncBillTerm * gncVendorGetTerms (const GncVendor *vendor)
 
GncTaxIncluded gncVendorGetTaxIncluded (const GncVendor *vendor)
 
gnc_commodity * gncVendorGetCurrency (const GncVendor *vendor)
 
gboolean gncVendorGetActive (const GncVendor *vendor)
 
gboolean gncVendorGetTaxTableOverride (const GncVendor *vendor)
 
GncTaxTablegncVendorGetTaxTable (const GncVendor *vendor)
 

Detailed Description

Macro Definition Documentation

◆ GNC_ID_VENDOR

#define GNC_ID_VENDOR   "gncVendor"

Definition at line 46 of file gncVendor.h.

◆ GNC_IS_VENDOR

#define GNC_IS_VENDOR (   o)     (G_TYPE_CHECK_INSTANCE_TYPE ((o), GNC_TYPE_VENDOR))

Definition at line 54 of file gncVendor.h.

117{
118 QOF_BOOK_RETURN_ENTITY(book, guid, GNC_ID_VENDOR, GncVendor);
119}
120
121#define VENDOR_ID "id"
122#define VENDOR_NAME "name"
123#define VENDOR_ADDR "addr"
124#define VENDOR_NOTES "vendor_notes"
125#define VENDOR_TERMS "vendor_terms"
126#define VENDOR_TAX_INC "vendor_tax_included"
127#define VENDOR_ACTIVE "vendor_is_active"
128#define VENDOR_TAX_OVERRIDE "override_tax_table"
129#define VENDOR_TAX_TABLE "vendor_tax_table"
130
132#define gncVendorGetBook(X) qof_instance_get_book (QOF_INSTANCE(X))
133#define gncVendorGetGUID(X) qof_instance_get_guid (QOF_INSTANCE(X))
134#define gncVendorRetGUID(X) (X ? *(qof_instance_get_guid (QOF_INSTANCE(X))) : *(guid_null()))
135#define gncVendorLookupDirect(G,B) gncVendorLookup((B),&(G))
137gboolean gncVendorEqual(const GncVendor *a, const GncVendor *b);
138gboolean gncVendorIsDirty (const GncVendor *vendor);
139
140#ifdef __cplusplus
141}
142#endif
143
144#endif /* GNC_VENDOR_H_ */
#define QOF_BOOK_RETURN_ENTITY(book, guid, e_type, c_type)
Encapsulates all the information about a dataset manipulated by QOF.
Definition qofbook.h:101
gboolean gncVendorEqual(const GncVendor *a, const GncVendor *b)
Test support function, used by test-dbi-business-stuff.c.
Definition gncVendor.c:804

◆ GNC_IS_VENDOR_CLASS

#define GNC_IS_VENDOR_CLASS (   k)     (G_TYPE_CHECK_CLASS_TYPE ((k), GNC_TYPE_VENDOR))

Definition at line 56 of file gncVendor.h.

◆ GNC_TYPE_VENDOR

#define GNC_TYPE_VENDOR   (gnc_vendor_get_type ())

Definition at line 49 of file gncVendor.h.

◆ GNC_VENDOR

#define GNC_VENDOR (   o)     (G_TYPE_CHECK_INSTANCE_CAST ((o), GNC_TYPE_VENDOR, GncVendor))

Definition at line 50 of file gncVendor.h.

◆ GNC_VENDOR_CLASS

#define GNC_VENDOR_CLASS (   k)     (G_TYPE_CHECK_CLASS_CAST((k), GNC_TYPE_VENDOR, GncVendorClass))

Definition at line 52 of file gncVendor.h.

◆ GNC_VENDOR_GET_CLASS

#define GNC_VENDOR_GET_CLASS (   o)     (G_TYPE_INSTANCE_GET_CLASS ((o), GNC_TYPE_VENDOR, GncVendorClass))

Definition at line 58 of file gncVendor.h.

◆ gncVendorGetBook

#define gncVendorGetBook (   X)    qof_instance_get_book (QOF_INSTANCE(X))

deprecated functions

Definition at line 132 of file gncVendor.h.

◆ gncVendorGetGUID

#define gncVendorGetGUID (   X)    qof_instance_get_guid (QOF_INSTANCE(X))

Definition at line 133 of file gncVendor.h.

◆ gncVendorLookupDirect

#define gncVendorLookupDirect (   G,
 
)    gncVendorLookup((B),&(G))

Definition at line 135 of file gncVendor.h.

◆ gncVendorRetGUID

#define gncVendorRetGUID (   X)    (X ? *(qof_instance_get_guid (QOF_INSTANCE(X))) : *(guid_null()))

Definition at line 134 of file gncVendor.h.

◆ VENDOR_ACTIVE

#define VENDOR_ACTIVE   "vendor_is_active"

Definition at line 127 of file gncVendor.h.

◆ VENDOR_ADDR

#define VENDOR_ADDR   "addr"

Definition at line 123 of file gncVendor.h.

◆ VENDOR_ID

#define VENDOR_ID   "id"

Definition at line 121 of file gncVendor.h.

◆ VENDOR_NAME

#define VENDOR_NAME   "name"

Definition at line 122 of file gncVendor.h.

◆ VENDOR_NOTES

#define VENDOR_NOTES   "vendor_notes"

Definition at line 124 of file gncVendor.h.

◆ VENDOR_TAX_INC

#define VENDOR_TAX_INC   "vendor_tax_included"

Definition at line 126 of file gncVendor.h.

◆ VENDOR_TAX_OVERRIDE

#define VENDOR_TAX_OVERRIDE   "override_tax_table"

Definition at line 128 of file gncVendor.h.

◆ VENDOR_TAX_TABLE

#define VENDOR_TAX_TABLE   "vendor_tax_table"

Definition at line 129 of file gncVendor.h.

◆ VENDOR_TERMS

#define VENDOR_TERMS   "vendor_terms"

Definition at line 125 of file gncVendor.h.

Function Documentation

◆ gncVendorAddJob()

void gncVendorAddJob ( GncVendor *  vendor,
GncJob *  job 
)

Definition at line 729 of file gncVendor.c.

730{
731 if (!vendor) return;
732 if (!job) return;
733
734 if (g_list_index(vendor->jobs, job) == -1)
735 vendor->jobs = g_list_insert_sorted (vendor->jobs, job,
736 (GCompareFunc)gncJobCompare);
737
738 qof_event_gen (&vendor->inst, QOF_EVENT_MODIFY, NULL);
739}
void qof_event_gen(QofInstance *entity, QofEventId event_id, gpointer event_data)
Invoke all registered event handlers using the given arguments.
Definition qofevent.cpp:231

◆ gncVendorBeginEdit()

void gncVendorBeginEdit ( GncVendor *  vendor)

Definition at line 762 of file gncVendor.c.

763{
764 qof_begin_edit(&vendor->inst);
765}
gboolean qof_begin_edit(QofInstance *inst)
begin_edit

◆ gncVendorCommitEdit()

void gncVendorCommitEdit ( GncVendor *  vendor)

Definition at line 785 of file gncVendor.c.

786{
787 if (!qof_commit_edit (QOF_INSTANCE(vendor))) return;
788 qof_commit_edit_part2 (&vendor->inst, gncVendorOnError,
789 gncVendorOnDone, vendor_free);
790}
gboolean qof_commit_edit_part2(QofInstance *inst, void(*on_error)(QofInstance *, QofBackendError), void(*on_done)(QofInstance *), void(*on_free)(QofInstance *))
part2 – deal with the backend
gboolean qof_commit_edit(QofInstance *inst)
commit_edit helpers

◆ gncVendorCompare()

int gncVendorCompare ( const GncVendor *  a,
const GncVendor *  b 
)

XXX should be renamed to RetJobList to be consistent with other usage, since caller must free the copied list.

Definition at line 795 of file gncVendor.c.

796{
797 if (!a && !b) return 0;
798 if (!a && b) return 1;
799 if (a && !b) return -1;
800
801 return(strcmp(a->name, b->name));
802}

◆ gncVendorCreate()

GncVendor * gncVendorCreate ( QofBook book)

Definition at line 453 of file gncVendor.c.

454{
455 GncVendor *vendor;
456
457 if (!book) return NULL;
458
459 vendor = g_object_new (GNC_TYPE_VENDOR, NULL);
460 qof_instance_init_data (&vendor->inst, _GNC_MOD_NAME, book);
461
462 vendor->id = CACHE_INSERT ("");
463 vendor->name = CACHE_INSERT ("");
464 vendor->notes = CACHE_INSERT ("");
465 vendor->addr = gncAddressCreate (book, &vendor->inst);
466 vendor->taxincluded = GNC_TAXINCLUDED_USEGLOBAL;
467 vendor->active = TRUE;
468 vendor->jobs = NULL;
469 vendor->balance = NULL;
470
471 if (vend_qof_event_handler_id == 0)
472 vend_qof_event_handler_id = qof_event_register_handler (vend_handle_qof_events, NULL);
473
474 qof_event_gen (&vendor->inst, QOF_EVENT_CREATE, NULL);
475
476 return vendor;
477}
gint qof_event_register_handler(QofEventHandler handler, gpointer user_data)
Register a handler for events.
Definition qofevent.cpp:73
void qof_instance_init_data(QofInstance *inst, QofIdType type, QofBook *book)
Initialise the settings associated with an instance.
@ GNC_TAXINCLUDED_USEGLOBAL
use the global setting
Definition gncTaxTable.h:89

◆ gncVendorDestroy()

void gncVendorDestroy ( GncVendor *  vendor)

Definition at line 479 of file gncVendor.c.

480{
481 if (!vendor) return;
482 qof_instance_set_destroying(vendor, TRUE);
483 gncVendorCommitEdit (vendor);
484}

◆ gncVendorEqual()

gboolean gncVendorEqual ( const GncVendor *  a,
const GncVendor *  b 
)

Test support function, used by test-dbi-business-stuff.c.

Definition at line 804 of file gncVendor.c.

805{
806 if (a == NULL && b == NULL) return TRUE;
807 if (a == NULL || b == NULL) return FALSE;
808
809 g_return_val_if_fail(GNC_IS_VENDOR(a), FALSE);
810 g_return_val_if_fail(GNC_IS_VENDOR(b), FALSE);
811
812 if (g_strcmp0(a->id, b->id) != 0)
813 {
814 PWARN("IDs differ: %s vs %s", a->id, b->id);
815 return FALSE;
816 }
817
818 if (g_strcmp0(a->name, b->name) != 0)
819 {
820 PWARN("Names differ: %s vs %s", a->name, b->name);
821 return FALSE;
822 }
823
824 if (g_strcmp0(a->notes, b->notes) != 0)
825 {
826 PWARN("Notes differ");
827 return FALSE;
828 }
829
830 if (!gncBillTermEqual(a->terms, b->terms))
831 {
832 PWARN("BillTerms differ");
833 return FALSE;
834 }
835
836 if (!gncAddressEqual(a->addr, b->addr))
837 {
838 PWARN("Addresses differ");
839 return FALSE;
840 }
841
842 if (!gnc_commodity_equal(a->currency, b->currency))
843 {
844 PWARN("Currencies differ");
845 return FALSE;
846 }
847
848 if (!gncTaxTableEqual(a->taxtable, b->taxtable))
849 {
850 PWARN("Tax tables differ");
851 return FALSE;
852 }
853
854 if (a->taxtable_override != b->taxtable_override)
855 {
856 PWARN("Tax table override flags differ");
857 return FALSE;
858 }
859
860 if (a->taxincluded != b->taxincluded)
861 {
862 PWARN("Tax included flags differ");
863 return FALSE;
864 }
865
866 if (a->active != b->active)
867 {
868 PWARN("Active flags differ");
869 return FALSE;
870 }
871
872// GList * jobs;
873 return TRUE;
874}
gboolean gncAddressEqual(const GncAddress *a, const GncAddress *b)
Deeply compare two addresses.
Definition gncAddress.c:577
gboolean gncBillTermEqual(const GncBillTerm *a, const GncBillTerm *b)
Check if all internal fields of a and b match.
gboolean gnc_commodity_equal(const gnc_commodity *a, const gnc_commodity *b)
This routine returns TRUE if the two commodities are equal.
#define PWARN(format, args...)
Log a warning.
Definition qoflog.h:250

◆ gncVendorGetActive()

gboolean gncVendorGetActive ( const GncVendor *  vendor)

Definition at line 704 of file gncVendor.c.

705{
706 if (!vendor) return FALSE;
707 return vendor->active;
708}

◆ gncVendorGetAddr()

GncAddress * gncVendorGetAddr ( const GncVendor *  vendor)

Definition at line 674 of file gncVendor.c.

675{
676 if (!vendor) return NULL;
677 return vendor->addr;
678}

◆ gncVendorGetCurrency()

gnc_commodity * gncVendorGetCurrency ( const GncVendor *  vendor)

Definition at line 698 of file gncVendor.c.

699{
700 if (!vendor) return NULL;
701 return vendor->currency;
702}

◆ gncVendorGetID()

const char * gncVendorGetID ( const GncVendor *  vendor)

Definition at line 662 of file gncVendor.c.

663{
664 if (!vendor) return NULL;
665 return vendor->id;
666}

◆ gncVendorGetName()

const char * gncVendorGetName ( const GncVendor *  vendor)

Definition at line 668 of file gncVendor.c.

669{
670 if (!vendor) return NULL;
671 return vendor->name;
672}

◆ gncVendorGetNotes()

const char * gncVendorGetNotes ( const GncVendor *  vendor)

Definition at line 680 of file gncVendor.c.

681{
682 if (!vendor) return NULL;
683 return vendor->notes;
684}

◆ gncVendorGetTaxIncluded()

GncTaxIncluded gncVendorGetTaxIncluded ( const GncVendor *  vendor)

Definition at line 692 of file gncVendor.c.

693{
694 if (!vendor) return GNC_TAXINCLUDED_USEGLOBAL;
695 return vendor->taxincluded;
696}

◆ gncVendorGetTaxTable()

GncTaxTable * gncVendorGetTaxTable ( const GncVendor *  vendor)

Definition at line 716 of file gncVendor.c.

717{
718 if (!vendor) return NULL;
719 return vendor->taxtable;
720}

◆ gncVendorGetTaxTableOverride()

gboolean gncVendorGetTaxTableOverride ( const GncVendor *  vendor)

Definition at line 710 of file gncVendor.c.

711{
712 if (!vendor) return FALSE;
713 return vendor->taxtable_override;
714}

◆ gncVendorGetTerms()

GncBillTerm * gncVendorGetTerms ( const GncVendor *  vendor)

Definition at line 686 of file gncVendor.c.

687{
688 if (!vendor) return 0;
689 return vendor->terms;
690}

◆ gncVendorIsDirty()

gboolean gncVendorIsDirty ( const GncVendor *  vendor)

Definition at line 877 of file gncVendor.c.

878{
879 if (!vendor) return FALSE;
880 return (qof_instance_get_dirty_flag(vendor)
881 || gncAddressIsDirty (vendor->addr));
882}
gboolean qof_instance_get_dirty_flag(gconstpointer ptr)
Retrieve the flag that indicates whether or not this object has been modified.

◆ gncVendorRemoveJob()

void gncVendorRemoveJob ( GncVendor *  vendor,
GncJob *  job 
)

Definition at line 741 of file gncVendor.c.

742{
743 GList *node;
744
745 if (!vendor) return;
746 if (!job) return;
747
748 node = g_list_find (vendor->jobs, job);
749 if (!node)
750 {
751 /* PERR ("split not in account"); */
752 }
753 else
754 {
755 vendor->jobs = g_list_remove_link (vendor->jobs, node);
756 g_list_free_1 (node);
757 }
758
759 qof_event_gen (&vendor->inst, QOF_EVENT_MODIFY, NULL);
760}

◆ gncVendorSetActive()

void gncVendorSetActive ( GncVendor *  vendor,
gboolean  active 
)

Definition at line 587 of file gncVendor.c.

588{
589 if (!vendor) return;
590 if (active == vendor->active) return;
591 gncVendorBeginEdit (vendor);
592 vendor->active = active;
593 mark_vendor (vendor);
594 gncVendorCommitEdit (vendor);
595}

◆ gncVendorSetCurrency()

void gncVendorSetCurrency ( GncVendor *  vendor,
gnc_commodity *  currency 
)

Definition at line 575 of file gncVendor.c.

576{
577 if (!vendor || !currency) return;
578 if (vendor->currency &&
579 gnc_commodity_equal (vendor->currency, currency))
580 return;
581 gncVendorBeginEdit (vendor);
582 vendor->currency = currency;
583 mark_vendor (vendor);
584 gncVendorCommitEdit (vendor);
585}

◆ gncVendorSetID()

void gncVendorSetID ( GncVendor *  vendor,
const char *  id 
)

Definition at line 523 of file gncVendor.c.

524{
525 if (!vendor) return;
526 if (!id) return;
527 SET_STR(vendor, vendor->id, id);
528 mark_vendor (vendor);
529 gncVendorCommitEdit (vendor);
530}

◆ gncVendorSetName()

void gncVendorSetName ( GncVendor *  vendor,
const char *  name 
)

Definition at line 532 of file gncVendor.c.

533{
534 if (!vendor) return;
535 if (!name) return;
536 SET_STR(vendor, vendor->name, name);
537 mark_vendor (vendor);
538 gncVendorCommitEdit (vendor);
539}

◆ gncVendorSetNotes()

void gncVendorSetNotes ( GncVendor *  vendor,
const char *  notes 
)

Definition at line 541 of file gncVendor.c.

542{
543 if (!vendor) return;
544 if (!notes) return;
545 SET_STR(vendor, vendor->notes, notes);
546 mark_vendor (vendor);
547 gncVendorCommitEdit (vendor);
548}

◆ gncVendorSetTaxIncluded()

void gncVendorSetTaxIncluded ( GncVendor *  vendor,
GncTaxIncluded  taxincl 
)

Definition at line 565 of file gncVendor.c.

566{
567 if (!vendor) return;
568 if (taxincl == vendor->taxincluded) return;
569 gncVendorBeginEdit (vendor);
570 vendor->taxincluded = taxincl;
571 mark_vendor (vendor);
572 gncVendorCommitEdit (vendor);
573}

◆ gncVendorSetTaxTable()

void gncVendorSetTaxTable ( GncVendor *  vendor,
GncTaxTable table 
)

Definition at line 607 of file gncVendor.c.

608{
609 if (!vendor) return;
610 if (vendor->taxtable == table) return;
611 gncVendorBeginEdit (vendor);
612 if (vendor->taxtable)
613 gncTaxTableDecRef (vendor->taxtable);
614 if (table)
615 gncTaxTableIncRef (table);
616 vendor->taxtable = table;
617 mark_vendor (vendor);
618 gncVendorCommitEdit (vendor);
619}

◆ gncVendorSetTaxTableOverride()

void gncVendorSetTaxTableOverride ( GncVendor *  vendor,
gboolean  override 
)

Definition at line 597 of file gncVendor.c.

598{
599 if (!vendor) return;
600 if (vendor->taxtable_override == override) return;
601 gncVendorBeginEdit (vendor);
602 vendor->taxtable_override = override;
603 mark_vendor (vendor);
604 gncVendorCommitEdit (vendor);
605}

◆ gncVendorSetTerms()

void gncVendorSetTerms ( GncVendor *  vendor,
GncBillTerm *  terms 
)

Definition at line 550 of file gncVendor.c.

551{
552 if (!vendor) return;
553 if (vendor->terms == terms) return;
554
555 gncVendorBeginEdit (vendor);
556 if (vendor->terms)
557 gncBillTermDecRef (vendor->terms);
558 vendor->terms = terms;
559 if (vendor->terms)
560 gncBillTermIncRef (vendor->terms);
561 mark_vendor (vendor);
562 gncVendorCommitEdit (vendor);
563}