After keeping track of payroll data at Mobify by hand and a collection of awful software for the last few years I finally snapped and wrote a Django app that does it in a less usability challenged way.
CPC is written with the province of British Columbia in mind but could quite easily be abstracted to cover any province[s].
This baby is meant to be run as a full fledged Django project. Sync your DB and rock and role. Add some employees and then follow the "add" link for the employee list page...
Completing the T4 Slip: http://www.cra-arc.gc.ca/tx/bsnss/tpcs/pyrll/rtrns/t4/slps/cmpltng-eng.html
What is a payroll account?
http://www.cra-arc.gc.ca/tx/bsnss/tpcs/pyrll/hwpyrllwrks/stps/ccnt/wht-eng.html
BN + RP 0001 EG. 12345 6789RP 0001
Box 29 - Employment code - usually nothing http://www.cra-arc.gc.ca/tx/bsnss/tpcs/pyrll/rtrns/t4/slps/cmpltng/bx29-eng.html
...