-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello,
Invoices and bills were sharing the same counter. Unfortunately it's a legal requirement in Belgium to have a separate numbering for those. This patch fixes that. There was already a request for this on bugzilla: http://bugzilla.gnome.org/show_bug.cgi?id=327218. I attached my patch there too. This is my first patch for gnucash. Don't shoot me for forgetting about something ;) Please CC me, I'm not on this list. Alex -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.3 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGCHGyrCFWJqEhh1cRAmXuAJwMX3hfBa31LVcebKKCAJIj8h6/7gCbBI0r TNrDXMr69842tTMBRgGbhVw= =Yj5l -----END PGP SIGNATURE-----
Index: src/business/business-core/gncInvoiceP.h =================================================================== --- src/business/business-core/gncInvoiceP.h (revision 15756) +++ src/business/business-core/gncInvoiceP.h (working copy) @@ -32,9 +32,10 @@ #include "Account.h" #include "Transaction.h" #include "gnc-lot.h" +#include "gncOwner.h" gboolean gncInvoiceRegister (void); -gint64 gncInvoiceNextID (QofBook *book); +gint64 gncInvoiceNextID (QofBook *book, GncOwner *owner); void gncInvoiceSetPostedAcc (GncInvoice *invoice, Account *acc); void gncInvoiceSetPostedTxn (GncInvoice *invoice, Transaction *txn); void gncInvoiceSetPostedLot (GncInvoice *invoice, GNCLot *lot); Index: src/business/business-core/gncInvoice.c =================================================================== --- src/business/business-core/gncInvoice.c (revision 15756) +++ src/business/business-core/gncInvoice.c (working copy) @@ -1587,7 +1587,19 @@ return qof_object_register (&gncInvoiceDesc); } -gint64 gncInvoiceNextID (QofBook *book) +gint64 gncInvoiceNextID (QofBook *book, GncOwner *owner) { - return qof_book_get_counter (book, _GNC_MOD_NAME); + gint64 nextID; + switch(gncOwnerGetType(owner)) { + case GNC_OWNER_CUSTOMER: + nextID = qof_book_get_counter (book, "gncInvoice"); + break; + case GNC_OWNER_VENDOR: + nextID = qof_book_get_counter (book, "gncBill"); + break; + default: + nextID = qof_book_get_counter (book, _GNC_MOD_NAME); + break; + } + return nextID; } Index: src/business/business-gnome/dialog-invoice.c =================================================================== --- src/business/business-gnome/dialog-invoice.c (revision 15756) +++ src/business/business-gnome/dialog-invoice.c (working copy) @@ -344,8 +344,12 @@ /* Check the ID; set one if necessary */ res = gtk_entry_get_text (GTK_ENTRY (iw->id_entry)); if (safe_strcmp (res, "") == 0) { + /* Invoices and bills have separate counters. + Therefore we pass the GncOwer to gncInvoiceNextID + so it knows whether we are creating a bill + or an invoice. */ string = g_strdup_printf ("%.6" G_GINT64_FORMAT, - gncInvoiceNextID(iw->book)); + gncInvoiceNextID(iw->book, &(iw->owner))); gtk_entry_set_text (GTK_ENTRY (iw->id_entry), string); g_free(string); }
_______________________________________________ gnucash-devel mailing list gnucash-devel@gnucash.org https://lists.gnucash.org/mailman/listinfo/gnucash-devel