[GNC] Payroll add-on, module, software?

John Ralls jralls at ceridwen.us
Thu Jul 26 11:21:23 EDT 2018



> On Jul 26, 2018, at 4:36 AM, Mike or Penny Novack <stepbystepfarm at dialup4less.com> wrote:
> 
> On 7/25/2018 8:20 PM, John Ralls wrote:
> 
>> GnuCash is actually very modular (perhaps a little too much, there are parts of it that are modules and probably shouldn't be). I wouldn't say it's easy, nothing in programming GnuCash seems to be easy, but it's possible for a third party developer to create a payroll module for their jurisdiction and for users in that jurisdiction to add it to their GnuCash installations. But in 20 years no third party developer has ever expressed any interest in creating a GnuCash plugin. Regards, John Ralls 
> 
> "Plug ins" (feeds) have TWO parts. Sender and receiver. As I understand the issues (decades of experience in software design) there are TWO parts to a "plug", can think of as male (sender) and female) receiver. It is the receiver that needs to be responsible for input editing of feeds and THAT is a good sized project all by itself << do not accept a feed that will not work, how to report this to sender, etc. >>
> 
> Saying that no third party has expressed interest in writing something that would send a feed to gnucash ignores that gnucash does not have the capability of (properly) dealing with batch feeds.

“Plugins” are generally regarded as code modules that extend a program’s functionality. Maf’s already mentioned the business modules, though those have since been integrated into the engine. The various importers are plugins that implement what I think you mean by feeds: They take data in a different form and convert it to GnuCash data.

A payroll module could be implemented either way: As a plugin that implements all of the payroll functions required for a particular jurisdiction and stores that data directly in the GnuCash database (though that would also require modifying the GnuCash backend modules to properly store the data) or as a separate program that maintains all of the HR stuff and just sends the financial transactions to GnuCash. That could be accomplished either by writing a GnuCash plugin to implement a new data format, by having the program emit the transactions in one of the forms already supported by GnuCash (e.g. ofx-direct), or by using the GnuCash API in C, Python, or Scheme and accessing GnuCash’s backend directly.

Regards,
John Ralls



More information about the gnucash-user mailing list