canada payroll

Mark Jenkins mark at parit.ca
Fri May 5 13:11:24 EDT 2017


We were actually doing this kind of thing at ParIT with http://bokeep.org .

We had a Canadian payroll plugin to BoKeep and BoKeep had a backend plugin
to GnuCash that used the python bindings. It was use cases like this and an
end-of-day close out for a care-bookstore that motivated us to create the
python bindings.

Similar to what you said about csv, for the payroll functionality we had a
structured python text file for entering in the employees and hours, extra
deductions, re-imbursements, and vacation pay draws instead of a full blown
GUI.
Example:
http://hg.savannah.nongnu.org/hgweb/bokeep/file/d1e51d35beee/payroll_example_data_files/payday_data.py

Relevant screenshot:
http://www.nongnu.org/bokeep/screenshots/bokeep_payroll_transaction_in_gnucash.png

We even had end of year T4 export to the government documented XML format
and a seperate part that could take a month or quarter's worth of
deductions and employer contributions and create a transaction against the
chequing account for the Canada Revenue Agency (CRA) remit.

Unfortunately we've stopped maintaining this project for several years now.
I did actually use this to run ParIT's payroll the end of 2016 when we
switched to having our new staff use a payroll provider. Up until then I
was actually still using Ubuntu 12.04 and the gnucash and python-gnucash
packages from that release because there were changes with GnuCash 2.6 or
later 2.4 releases that were incompatible with BoKeep's GnuCash support and
I didn't have the time to get BoKeep updated and compatible again. That's
the biggest thing anyone wanting to revive this would need to fix. Other
fixes needed:
 * Support for provinces other than Manitoba, which is the only one we ever
had working as it was the only itch we ever had to scratch, and we kept it
up to date every year up to 2016
 * Bringing the federal and Manitoba tax rates up to date for 2017 (easy
task, look at how small patch sets for 2013-2016 were)
 * Using a compatible version of ZODB is another potential challenge

Eventually, moving BoKeep to GTK3 compatible python bindings (uses GTK2)
and even python3 would be necessary to avoid having these dependencies
become too difficult to install. (not a problem right now)

Unfortunately the BoKeep project wasn't something we were able to
sustaining resources behind, including letting people know we had put it
out there! As the lead developer, I've moved on to other work outside of
ParIT. Would be cool if others carried this forward. Folks could try to
entice me into some consulting at some point...


Code was published to a mercurial repository,
http://hg.savannah.nongnu.org/hgweb/bokeep/

But I also put up a git mirror here:
https://github.com/paritworkercoop/bokeep-mirror


Mark Jenkins


More information about the gnucash-user mailing list