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.

