README for Payroll Perl Modules
Created by James A. Pattie, Xperience, Inc. 10/11/2002
Copyright 2002-2003, Xperience, Inc. http://www.pcxperience.com/

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 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 payroll-VERSION.tar.gz
	cd payroll-VERSION
	perl Makefile.PL
	make
	(as root)
	make install
        (if you want the process_payroll script installed)
        cp process_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 libpayroll-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 development/testing only on Perl 5.6.1 but will
hopefully be able to move to 5.8.0 and newer versions of XML::LibXML in the
near future.  Testing is now being done using Debian and perl 5.8.0 and 
everything works just fine!

