README for Payroll Perl Modules Created by James A. Pattie, Xperience, Inc. 10/11/2002 Copyright 2002-2004, Xperience, Inc. http://www.pcxperience.com/ Business::Payroll is a series of Perl Modules that provides an API for working with multiple countries federal, state and local taxes. It also supports calculating mileage reimbursement values and can handle adjustment entries. The Business::Payroll module starts with an xml document in the Input format and if everything is successfull, outputs the results in the Output XML format. Currently only the US is supported and MO is the only supported state. We are not supporting any cities in MO yet. Federal Income, FICA, Medicare and Mileage Rates are all being calculated. We take into account the number of allowances people can claim and the fact that you can withhold more for federal and state. Federal Income tables are only available for any date >= 07/01/2001. To install from tarball: tar xvzf business-payroll-VERSION.tar.gz cd business-payroll-VERSION perl Makefile.PL make (as root) make install (if you want the scripts installed) cp process_payroll /usr/bin cp update_payroll /usr/bin To install from deb: Goto http://www.pcxperience.org/ for the apt/sources.list entries to use. apt-get update apt-get install libbusiness-payroll-perl See the payroll_test.pl script and input.xml file for a sample implementation. Use process_payroll (in the /usr/bin directory after a deb install, otherwise in your perl tree) to actually process payroll files for real. process_payroll will take the specified raw xml file and process it. If no errors occured, then you get the result on stdout. If you specify 2 file names the result will go into the second file. You can specify - (for the first file) and it will know to work with stdin. I.e. you can pipe the file to be processed. Ex. 'cat input.xml | process_payroll -' would process input.xml from the stdin and then output the result to stdout. REQUIREMENTS: The XML::LibXML code is known to work with the following versions and newer versions as well: libxml2 2.4.11 XML::SAX 0.10 XML::NamespaceSupport 1.07 XML::LibXML 1.51 File::Temp 0.12 We also have done all of our latest development/testing only on Perl 5.8.x using Debian testing, but it should hopefully still be able to work on Perl 5.6.1+. Notes to developers: If trying to make sure the code compiles and you are not testing in the installed directory, make a symlink for the Business subdir in the root of your source directory like: ln -s . Business Then doing 'perl -c Payroll.pm' will work as it knows where the Business:: namespace is.